Reputation: 2606
I seem to be having some issues trying to install the signatures module from CPAN using Strawberry Perl 5.10.1 on Windows XP.
I get some "undefined reference" errors during linking. I'm guessing that there is something wrong with my B::Hooks::Parser module, but reinstalling that one didn't fix my problem.
Here's the output:
cpan shell -- CPAN exploration and modules installation (v1.9452) Enter 'h' for help. cpan> install signatures Database was generated on Wed, 25 Nov 2009 20:22:23 GMT Running install for module 'signatures' Running make for F/FL/FLORA/signatures-0.06.tar.gz Checksum for C:\strawberry\cpan\sources\authors\id\F\FL\FLORA\signatures-0.06.tar.gz ok Scanning cache C:\strawberry\cpan\build for sizes ............................................................................DONE CPAN.pm: Going to build F/FL/FLORA/signatures-0.06.tar.gz Cannot determine perl version info from lib/signatures.pm Checking if your kit is complete... Looks good Writing Makefile for signatures cp lib/signatures.pm blib\lib/signatures.pm C:\strawberry\perl\bin\perl.exe "-Iinc" C:\strawberry\perl\lib\ExtUtils\xsubpp -typemap C:\strawberry\perl\lib\ExtUtils \typemap signatures.xs > signatures.xsc && C:\strawberry\perl\bin\perl.exe "-Iinc" -MExtUtils::Command -e "mv" -- signatures.xsc signatures.c gcc -c -IC:\strawberry\perl\site\lib\B\Hooks\OP\Check\Install -IC:\strawberry\perl\site\lib\B\Hooks\Parser\Install -IC: \strawberry\perl\site\lib\B\Hooks\OP\PPAddr\Install -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -DUSE_SITECUSTOMIZE -DPERL_IMPL ICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -DPERL_MSVCRT_READFIX -s -O2 -DVERSION=\"0.06\" -DXS_VER SION=\"0.06\" "-IC:\strawberry\perl\lib\CORE" signatures.c Running Mkbootstrap for signatures () C:\strawberry\perl\bin\perl.exe "-Iinc" -MExtUtils::Command -e "chmod" -- 644 signatures.bs C:\strawberry\perl\bin\perl.exe "-Iinc" -MExtUtils::Mksymlists \ -e "Mksymlists('NAME'=>\"signatures\", 'DLBASE' => 'signatures', 'DL_FUNCS' => { }, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);" dlltool --def signatures.def --output-exp dll.exp g++ -o blib\arch\auto\signatures\signatures.dll -Wl,--base-file -Wl,dll.base -mdll -s -L"C:\strawberry\perl\lib\CORE" -L "C:\strawberry\c\lib" signatures.o -Wl,--image-base,0x121d0000 C:\strawberry\perl\lib\CORE\libperl510.a C:\strawberry\perl\site\lib\auto\B\Hooks\OP\Check\Check.a C:\strawberry\perl\site\lib\auto\B\Hooks\Parser\Parser.a C:\strawberry\perl\site\lib\auto\B\Hooks\OP\PPAddr\PPAddr.a C:\strawberry\c\lib\libmoldname.a C:\strawberry\c\lib\libkernel32.a C:\strawberr y\c\lib\libuser32.a C:\strawberry\c\lib\libgdi32.a C:\strawberry\c\lib\libwinspool.a C:\strawberry\c\lib\libcomdlg32.a C:\strawberry\c\lib\libadvapi32.a C:\strawberry\c\lib\libshell32.a C:\strawberry\c\lib\libole32.a C:\strawberry\c\lib\lib oleaut32.a C:\strawberry\c\lib\libnetapi32.a C:\strawberry\c\lib\libuuid.a C:\strawberry\c\lib\libws2_32.a C:\strawberry \c\lib\libmpr.a C:\strawberry\c\lib\libwinmm.a C:\strawberry\c\lib\libversion.a C:\strawberry\c\lib\libodbc32.a C:\strawberry\c\lib\libodbccp32.a dll.exp signatures.o:signatures.c:(.text+0x23c):undefined reference to `hook_toke_skipspace' signatures.o:signatures.c:(.text+0x2b1):undefined reference to `hook_toke_skipspace' signatures.o:signatures.c:(.text+0x34b):undefined reference to `hook_toke_scan_word' signatures.o:signatures.c:(.text+0x4b9):undefined reference to `hook_toke_skipspace' signatures.o:signatures.c:(.text+0x4e2):undefined reference to `hook_toke_scan_str' signatures.o:signatures.c:(.text+0x4f5):undefined reference to `hook_parser_get_lex_stuff' signatures.o:signatures.c:(.text+0x508):undefined reference to `hook_parser_clear_lex_stuff' signatures.o:signatures.c:(.text+0x696):undefined reference to `hook_toke_skipspace' signatures.o:signatures.c:(.text+0x6cd):undefined reference to `hook_parser_get_linestr' signatures.o:signatures.c:(.text+0x8f2):undefined reference to `hook_toke_skipspace' signatures.o:signatures.c:(.text+0x966):undefined reference to `hook_toke_scan_word' signatures.o:signatures.c:(.text+0x9b3):undefined reference to `hook_toke_skipspace' signatures.o:signatures.c:(.text+0x9f7):undefined reference to `hook_toke_scan_str' signatures.o:signatures.c:(.text+0xa0a):undefined reference to `hook_parser_get_lex_stuff' signatures.o:signatures.c:(.text+0xa1d):undefined reference to `hook_parser_clear_lex_stuff' signatures.o:signatures.c:(.text+0xda4):undefined reference to `hook_parser_setup' signatures.o:signatures.c:(.text+0xf89):undefined reference to `hook_parser_teardown' collect2: ld returned 1 exit status dmake.EXE: Error code 129, while making 'blib\arch\auto\signatures\signatures.dll' FLORA/signatures-0.06.tar.gz C:\strawberry\c\bin\dmake.EXE -- NOT OK Running make test Can't test without successful make Running make install Make had returned bad status, install seems impossible Failed during this command: FLORA/signatures-0.06.tar.gz : make NO
I also did an 'nm' on my Parser.a library (in perl/site/auto/B/Hooks/parser) and I didn't find any symbols containing 'hook'
Has anyone else experienced this problem? Or did anyone else succeed in installing the signatures module?
Upvotes: 2
Views: 1079
Reputation: 5072
I can't fix it for you, but you're not the only one having this problem. There is a failure report by one of the heroic CPAN testers. My wild shot would be that if such missing symbols occur on win32, it's because the module is using non-exported symbols which get exposed on, say, Linux because things are a little less strict there. I don't have the sources handy to check, though.
Either way, it seems it's not something that's wrong on your system. It's something that needs fixing in the source. One of them.
Upvotes: 1