Corinna Vinschen
2013-03-05 14:30:07 UTC
Hi guys,
good news: Kai finished his first cut (pre-cleanup, pre-code comments)
version of his medium/large code model patch. I already generated a
complete new toolchain and it looks pretty good. The default code model
for Cygwin applications is "medium". This means, external code is
referenced as usual, external data is referenced via a (pseudo-)GOT
table similar to ELF files.
This raises the code size marginally (about 3 to 5%), but it allows to
access external variables in the entire 64 bit address range without the
requirement to declare these symbols as dllimport symbols.
While I was at it, I changed Cygwin so that "environ" is now a simple
external variable. The 32 bit code is rather convoluted, probably
because the original implementers couldn't export simple variables
way back when.
You're asking for the dowside? Here's the downside:
Our entire micro distro in ftp://cygwin.com/pub/cygwin/64bit/install
is for the birds. Almost no application will run anymore, unless it
gets rebuilt from scratch with the new toolchain.
Therefore I moved everything to ftp://cygwin.com/pub/cygwin/64bit/OLD
for now. I will upload new toolchains, dash, tcsh, coreutils etc. during
this week, parts of it already today, so we can build more packages
from scratch ASAP.
Ok, that's all folks,
Corinna
good news: Kai finished his first cut (pre-cleanup, pre-code comments)
version of his medium/large code model patch. I already generated a
complete new toolchain and it looks pretty good. The default code model
for Cygwin applications is "medium". This means, external code is
referenced as usual, external data is referenced via a (pseudo-)GOT
table similar to ELF files.
This raises the code size marginally (about 3 to 5%), but it allows to
access external variables in the entire 64 bit address range without the
requirement to declare these symbols as dllimport symbols.
While I was at it, I changed Cygwin so that "environ" is now a simple
external variable. The 32 bit code is rather convoluted, probably
because the original implementers couldn't export simple variables
way back when.
You're asking for the dowside? Here's the downside:
Our entire micro distro in ftp://cygwin.com/pub/cygwin/64bit/install
is for the birds. Almost no application will run anymore, unless it
gets rebuilt from scratch with the new toolchain.
Therefore I moved everything to ftp://cygwin.com/pub/cygwin/64bit/OLD
for now. I will upload new toolchains, dash, tcsh, coreutils etc. during
this week, parts of it already today, so we can build more packages
from scratch ASAP.
Ok, that's all folks,
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat