解决Cygwin中的“died waiting for dll loading”错误
在Cygwin中开发Rails,有时候需要执行SH命令,而这些命令调用DLL时经常会遇到类似的错误提示:
[main] ruby 4208 C:/cygwin/bin/ruby.exe: *** fatal error - unable to remap C:/cygwin/bin/cygssl-0.9.8.dll to
same address as parent(0×340000) != 0×4730000
[main] ruby 1752 fork: child 4208 - died waiting for dll loading, errno 11
具体原因不大清楚,解决方法如下:
CMD到Cygwin的bin路径下,执行ash命令,或者直接run这个命令;
在ash提示符后面运行/bin/rebaseall,注意要输入完整,如果只输入rebaseall,会提示找不到这个命令,而且这个命令只能在ash下面执行,不能在Cygwin下面执行。
现在打开Cygwin,应该一切正常了。
源文档 <http://shamrock.javaeye.com/blog/189411>
Vista Cygwin 1.7 编译Skyeye失败
2009-06-04 21:35
3 [main] perl 2416 D:/cygwin/bin/perl.exe: *** fatal error - unable to rem
ap //?/D:/cygwin/lib/perl5/5.10/i686-cygwin/auto/File/Glob/Glob.dll to same addr
ess as parent(0x1550000) != 0x1670000
> See this thread:
That's a common problem for non-XP 32-bit systems with perl5
You need to install the rebase package, and run rebaseall from ash.
ash
/usr/bin/rebaseall
/usr/bin/peflagsall /bin/peflagsall
Cygwin/Perl Fatal Error under Vista
Vista 的诡异
Cygwin (1.7.30) 与 Vista 不太兼容,运行 Perl 程序或 CPAN 更新时会出现大量的 remapping 错误:
6292236 [main] perl 4588 X:/cygwin/bin/perl.exe: *** fatal error - unable to
> remap X:/cygwin/lib/perl5/5.10/i686-cygwin/auto/File/Glob/Glob.dll to same
> address as parent(0x860000) != 0x14E0000
网上有不少相关的解决方法,主要是围绕 rebaseall 这个实用程序,即 Vista 的系统 DLL 可能和 Cygwin 的 DLL 映像基址有冲突(PE 的基址不是可重定向的嘛,也不知道是 Vista 的诡异还是 Cygwin/Perl 没有处理好这个问题,也可能是 cygwin 的 fork() 实现有问题,导致fork出来的进程必须和父进程共享同一个内存布局),总之用 rebaseall -b 0xXXXXXXXX ,从 0x40000000 到 0xA0000000都试遍了,就是不成功。后来我改了 -o 参数,原先默认是 0x10000,改成 0x100000 后就通过了,但不能对所有 DLL 都用这么大的偏移量,32位虚地址很快就会用光,所以我只对 lib/perl5/*.dll 应用了大偏移,如果仅针对 perl 的相关DLL,偏移可以用 0x20000, 即
find /usr/lib/perl5 -iname *.dll >>FILES.LST
rebase -vdb 0x70000000 -o 0x20000 -T FILES.LST
这样处理了之后就能用CPAN添加PERL模块了。
/usr/bin/autoconf-2.63: line 155: 4568 Segmentation fault (core dumped) ex
pr a : '/(a/)' > /dev/null 2>&1
2 [main] expr 6052 _cygtls::handle_exceptions: Error while dumping state (
probably corrupted stack)
源文档 <http://hi.baidu.com/oyez/blog/item/87902eddce8696d18d1029f6.html>