Why are the 32- and 64-bit cygwin1.dlls incompatible?
Thu Aug 22 15:22:00 GMT 2013
If you try something like this from a Cygwin 64 install:
you get an error like this:
3 [main] ls (8168) C:\cygwin32\bin\ls.exe: *** fatal error -
cygheap base mismatch detected - 0x0/0x612A0950.
It goes on to explain that this is due to trying to load an incompatible
My best guess is that this happens because the standard Windows DLL
search logic says "oh, I already have a CYGWIN1 module loaded, I will
use that one." And boom.
Yet, if that were truly what's going on, DLL redirection should fix
it. From Cygwin 64 again:
$ touch /cygdrive/c/cygwin32/bin/ls.exe.local
same complaint as before
Another oddity is that the inverse test succeeds. From Cygwin 32:
all my base
In another forum, Yaakov told me that Windows is supposed to be
taking CPU bitness into account here, which should be another way for it
to work without special help. I don't see mention of such a rule in
What is really going on here?
Understand, I'm not asking because I want it fixed. I mean, it'd be
*nice* if it were fixed, but I'm more interested in knowing why it is
the way it is.
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin