Corinna Vinschen
2013-02-28 13:14:40 UTC
Hi 64 bit testers,
if you try vim and encounter a crash, it's easy to workaround.
The reason for this problem is what I already noted a couple of times in
this mailing list. Vim tries to access a variable in the ncurses DLL.
By default, the access to variables in the small code model (the only
one available for x86_64 gcc yet) is using pc-relative instructions with
32 bit displacement. However, in our case the DLL is located far beyond
the 32 bit displacement range, so the relocation creates invalid
displacements and the accessing assembler instruction crashes.
While Kai is working on extending gcc with medium and large code models,
this obviously doesn't help in the short term.
Here's the workaround: Rebase the DLLs in /bin to addresses below
0x180000000 for the time being. This avoids the invalid relocations
for now.
When the new GCC is finished, we will have to rebuild everything from
scratch anyway.
HTH,
Corinna
if you try vim and encounter a crash, it's easy to workaround.
The reason for this problem is what I already noted a couple of times in
this mailing list. Vim tries to access a variable in the ncurses DLL.
By default, the access to variables in the small code model (the only
one available for x86_64 gcc yet) is using pc-relative instructions with
32 bit displacement. However, in our case the DLL is located far beyond
the 32 bit displacement range, so the relocation creates invalid
displacements and the accessing assembler instruction crashes.
While Kai is working on extending gcc with medium and large code models,
this obviously doesn't help in the short term.
Here's the workaround: Rebase the DLLs in /bin to addresses below
0x180000000 for the time being. This avoids the invalid relocations
for now.
When the new GCC is finished, we will have to rebuild everything from
scratch anyway.
HTH,
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