$ perl badcrabs.txt
ret=1849688064 glr=2
$ perl -MDigest::SHA1 badcrabs.txt
ret=0 glr=193
In depends.exe its now LDR: LdrRelocateImageWithBias() failed 0xc000007b
LDR: OldBase : 6E400000
LDR: NewBase : 00A90000
LDR: Diff : 0xffffffff92690000
LDR: NextOffset : 00CC9F90
LDR: *NextOffset : 0x302e
LDR: SizeOfBlock : 0x5c
Compared to -MDigest::SHA1 -MXML::LibXML LDR: LdrRelocateImageWithBias() failed 0xc000007b
LDR: OldBase : 6E400000
LDR: NewBase : 010A0000
LDR: Diff : 0xffffffff92ca0000
LDR: NextOffset : 012D9F90
LDR: *NextOffset : 0x302e
LDR: SizeOfBlock : 0x5c
Apparently LdrRelocate... errors happen ( Weird problem loading a dll with win32 LoadLibrary() function ) commonly with cygwin , and they recommend using some "rebaseall" shell script, and I saw they do some rebase-ing for MakeMaker/cygwin
So I look through my dlls $ perl -lne " chomp; print; print qx{objdump -x $_ |grep ImageBase }; " dlls.txt
and both Digest/SHA1/SHA1.dll and auto/XML/LibXML/LibXML.dll share ImageBase 6e400000
Not sure if this is a problem but http://www.sourceware.org/ml/cygwin-apps/2011-07/msg00002.html / http://www.sourceware.org/ml/cygwin/2010-07/msg00258.html / perl5140delta suggests this collision is the problem , so I'll need to rebase, so I try that with the default rebase-2.4.2 address
perl -pi.orig -e " s{^(LDDLFLAGS = )}{$1 -Wl,--image-base=0x70000000 }; " Makefile
and it worked!!!!!
*whew*
So from time to time I'll have to rebase a few dlls if I stick with this old OS
|