ldx
ldx

Reputation: 2606

How do I Install the signatures module on Strawberry Perl 5.10.1?

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

Answers (1)

tsee
tsee

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

Related Questions