在Cygwin 1.7.11中构建Perl 5.6.2的步骤

Nic*_*zza 4 perl cygwin

我似乎无法在Cygwin 1.7.11中构建perl 5.6.2.

以下是我到目前为止所遵循的步骤.

从网站下载perl 5.6.2源代码并解压缩到某个文件夹"perl-5.6.2"

cd perl-5.6.2/bld
sh ../Configure -des -Dmksymlinks -Dprefix=/common/ndd/perl/5.6.2 -DDEBUGGING 2>&1
make 2>&1
make install 2>&1
Run Code Online (Sandbox Code Playgroud)

以下是此日志:

http://pastebin.com/pqLg4S7z

发生的事情是make创建"perl-5.6.2/bld/perl.exe",此文件每次都会生成一个中止信号.

这是在其上运行gdb的回溯.(注意:我使用-DDEBUGGING配置,因此应启用所有gcc调试标志.)

(gdb) run
Starting program: /openlogic/build/work/perl-5.6.2/bld/perl.exe
[New Thread 3348.0xf54]
[New Thread 3348.0x48c]

Program received signal SIGABRT, Aborted.
0x00000000 in ?? ()
(gdb) backtrace
#0  0x00000000 in ?? ()
#1  0x7792f8b1 in ntdll!RtlUpdateClonedSRWLock ()
   from /cygdrive/c/Windows/system32/ntdll.dll
#2  0x757f0a91 in WaitForSingleObjectEx ()
   from /cygdrive/c/Windows/syswow64/KERNELBASE.dll
#3  0x000000a8 in ?? ()
#4  0x00000000 in ?? ()
(gdb) quit
Run Code Online (Sandbox Code Playgroud)

这里id是在perl.exe上运行的ldd.exe命令

$ ldd /ndipiazza/build/work/perl-5.6.2/bld/perl.exe
        ntdll.dll => /cygdrive/c/Windows/SysWOW64/ntdll.dll (0x77910000)
        kernel32.dll => /cygdrive/c/Windows/syswow64/kernel32.dll (0x75cb0000)
        KERNELBASE.dll => /cygdrive/c/Windows/syswow64/KERNELBASE.dll (0x757e0000)
        libperl5_6_2.dll => /ndipiazza/build/work/perl-5.6.2/bld/libperl5_6_2.dll (0x66140000)
        cygcrypt-0.dll => /usr/bin/cygcrypt-0.dll (0x67db0000)
        cygwin1.dll => /usr/bin/cygwin1.dll (0x61000000)
        ??? => ??? (0x570000)
Run Code Online (Sandbox Code Playgroud)

任何人都可以看到为什么我会得到这个sigabrt?

编辑:这是Cygwin邮件列表中正在进行的讨论的链接:http://cygwin.com/ml/cygwin/2012-07/msg00368.html

dax*_*xim 5

5.6对于您的构建环境来说已经过时了.存在维护补丁.

我建议安装perlbrewpatchperl:

$ perlbrew install-patchperl
Run Code Online (Sandbox Code Playgroud)

哪个会DTRT.