On the rebasing problem of Emacs on Cygwin

From:

Angelo Graziosi

Subject:

On the rebasing problem of Emacs on Cygwin

Date:

Sat, 16 Dec 2006 10:29:28 +0100 (MET)

I want to report the following, hoping it can be useful for other users of
Emacs on Cygwin.
Usually, on Cygwin, one needs to rebase (the DLLs) if an application
aborts with a message like this example:
-------------
C:\cygwin\bin\python.exe: *** unable to remap C:\cygwin\bin\cygssl.dll to
same address as parent(0xDF0000) != 0xE00000
-------------
But, since Cygwin DLL 1.5.17 was released, after the rebasing, Emacs
hangs.
This happens for the current version 21.2-13 and the exp. ver. 21.3.50-2
on Cygwin.
And also for Emacs-CVS.
So I have found useful to build Emacs-CVS in this way
----------------------------------------------
LDFLAGS='-Wl,--enable-auto-import -Wl,--enable-auto-image-base' \
../configure --prefix=/usr/local/emacs-cvs
make LD='$(CC)' bootstrap
make LD='$(CC)' install
-----------------------------------------------
This makes Emacs independent of rebasing.
Note that it needs
LD='$(CC)'
in the bootstrap so that the GCC command line is
gcc ... -Wl,--enable-auto-import -Wl,--enable-auto-image-base ...
otherwise it would be
gcc ... -Wl,--image-base,0x20000000 -Wl,--enable-auto-import
-Wl,--enable-auto-image-base...
and Emacs would be built with the base address 0x20000000 and rebasing
Cygwin DLLs would cause the hanging.
Regards,
Angelo.