RFC: Cygwin 64 bit?

Corinna Vinschen corinna-cygwin@cygwin.com
Fri Jul 8 20:22:00 GMT 2011

On Jul  8 15:06, Charles Wilson wrote:
> On 7/8/2011 2:06 PM, Corinna Vinschen wrote:
> > Something else I'm wondering about is this.
> > 
> > Right now the executable contains just the name of a DLL it is linked
> > against.  Does the PE/COFF format allow to store a relative path in the
> > executable?  Something like, say,  "..\\lib64\\libfoo.dll"?  If that is
> > possible (I have really no idea) wouldn't that allow to have the DLLs
> > in /usr/lib64, given that /usr/bin is in $PATH anyway?
> [...]
> The real question is, I suppose, what does the Runtime Loader /do/
> before it finally calls LoadLibraryEx[W], when presented with a relative
> pathname in an EXE's import table? (Or better still, what does ld.exe
> do, when linking against an import library that specifies a relative
> pathname -- that is, how to you embed a relative pathname INTO the exe's
> import table in the first place?)

This is the point, exactly.  If the loader really behaves like
LoadLibrary, and if we manage to put the relative ..\\lib64\\ path into
the executable, there should be no problem to keep DLLs in /usr/lib64,
and it would be no problem to stick to the "cyg" prefix for 64 bit DLLs.
The relative ..\\lib path could even be used for 32 bit DLLs in the long

Another interesting feature which needs testing...


Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat

More information about the Cygwin-developers mailing list