update: ok, step by step
- perl Makefile.PL
- dmake test :) and you notice this error pops up
- if you know which dll it is , edit MAKEFILE LDDLFLAGS add -Wl,--image-base=0x70000000 and dmake test again (0x70000000 is default rebase address)
and I'm pooped :)
See Re^3: if Digest::SHA1 loaded Can't load LibXML/LibXML.dll Invalid access to memory location, Re^11: if Digest::SHA1 loaded Can't load LibXML/LibXML.dll Invalid access to memory location
one way is specify the base by adding -Wl,--image-base=0x70000000 to LDDLFLAGS , when doing Makefile dance
This works well if you trigger the error during the test suite like I did
Another way (i've not tried) is using msdn rebase
or editbin.exe /REBASE
or http://cygwin.wikia.com/wiki/Rebaseall
If you got mingw.org you can mingw-get install msys-rebase and you'll need mingw-get install msys-dash for rebaseall (its a 224 line shell script)
I don't know where to get the sources, rebase -V doesn't say, I guess cygwin someplace I already posted before http://www.tishler.net/jason/software/rebase/
http://gmod.org/wiki/GBrowse_Cygwin_HOWTO#Rebaseall
I guess strawberry / citrusperl ought to package rebase.exe and a rebaseall.pl to go along with it
I don't remember now, but I've either read something about a way to have -enable-auto-image-base keep a database of image bases/ranges, so it issues a non conflicting imagebase/range (a free space)
or I thought about it/or patching MakeMaker (or CBuilder whatever) to do the same (keeping a database of image bases/ranges, and replace -enable-auto-image-base with -Wl,--image-base= ) for pre-vista operating systems
but the issue is kinda rare , I've only encountered it less than 6 times in many years, always on a perl install with ~ 1040 cpan distributions :) but only 200-400 dlls
so I suppose PAR-ed up rebaseall.pl packing rebase.exe ought to suffice, if we FAQ up the issue adequately, so folks know what to do :)
If citrusperl offered more binary packages for download (ala ppm), only one guy would have to rebaseall before releasing :) |