Posted on 2007-11-12 22:36:05-08 by monty416
problem bulding Enbugger 0.03 on Windows
Sorry if this is not the right place to ask for help on problems like this, but I'm having trouble building Enbugger-0.03 on Windows XP, using Perl 5.6.1. Here is the output of running "perl Makefile.PL", then "nmake".
C:\lib\perl5\Enbugger-0.03>perl Makefile.PL Checking if your kit is complete... Looks good 'LICENSE' is not a known MakeMaker parameter name. Writing Makefile for Enbugger C:\lib\perl5\Enbugger-0.03>"c:\Program Files\Microsoft Visual Studio 8\vc\bin\nmake.exe" Microsoft (R) Program Maintenance Utility Version 8.00.50727.42 Copyright (C) Microsoft Corporation. All rights reserved. cp Enbugger.pm blib\lib\Enbugger.pm C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib C:\Perl\lib\ExtUtils/xsubpp -typemap C:\P +erl\lib\ExtUtils\typemap Enbugger.xs > Enbugger.xsc && C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Per +l\lib -MExtUtils::Command -e mv Enbugger.xsc Enbugger.c cl -c -nologo -O1 -MD -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DPERL_IMP +LICIT_CONTEXT -DPERL_IMPLICIT_SYS -DPERL_MSVCRT_READFIX -O1 -MD -DNDEBUG -DVERSION=\"0.03\" -D +XS_VERSION=\"0.03\" -IC:\Perl\lib\CORE Enbugger.c Enbugger.c Running Mkbootstrap for Enbugger () C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -MExtUtils::Command -e chmod 644 Enbugger. +bs C:\Perl\bin\perl.exe "-IC:\Perl\lib" "-IC:\Perl\lib" -MExtUtils::Mksymlists -e "Mksymlists +('NAME' => 'Enbugger', 'DLBASE' => 'Enbugger', 'DL_FUNCS' => { }, 'FUNCLIST' => [], 'IMPORTS' => +{}, 'DL_VARS' => []);" link -out:blib\arch\auto\Enbugger\Enbugger.dll -dll -nologo -nodefaultlib -release -libpat +h:"C:\Perl\lib\CORE" -machine:x86 Enbugger.obj C:\Perl\lib\CORE\perl56.lib oldnames.lib kernel3 +2.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32. +lib netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib msvcr +t.lib -def:Enbugger.def Creating library blib\arch\auto\Enbugger\Enbugger.lib and object blib\arch\auto\Enbugger\Enbugge +r.exp Enbugger.obj : error LNK2019: unresolved external symbol _Perl_init_debugger referenced in function _boot_Enbugger blib\arch\auto\Enbugger\Enbugger.dll : fatal error LNK1120: 1 unresolved externals NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 8\VC\BIN\link.EXE"' : return +code '0x460' Stop.
I tried adding perl56.lib to the LDLOADLIBS line in the Makefile without success. Where is Perl_init_debugger (or _Perl_init_debugger) defined? Do I need an additional module? Any help would be appreciated. Thanks!
Direct Responses: 6445 | Write a response
Posted on 2007-11-13 07:32:46-08 by jjore in response to 6444
Re: problem bulding Enbugger 0.03 on Windows
I notice that 5.6.2 which should be close to 5.6.1 has the symbol Perl_init_debugger. I can't get a perl 5.6.2 to build on my machine. I guess 5.6.x is just too old. I can't support it. I guess if you figure out what's wrong you could send a patch and I'd apply it. Josh
Direct Responses: 6448 | Write a response
Posted on 2007-11-13 17:12:31-08 by monty416 in response to 6445
Re: problem bulding Enbugger 0.03 on Windows
Hmmm...I just upgraded to the ActiveState Perl 5.8.8 and get the same thing:
C:\lib\perl5\Enbugger-0.03>nmake Microsoft (R) Program Maintenance Utility Version 8.00.50727.42 Copyright (C) Microsoft Corporation. All rights reserved. cp Enbugger.pm blib\lib\Enbugger.pm C:\Perl\bin\perl.exe C:\Perl\lib\ExtUtils\xsubpp -typemap C:\Perl\lib\ExtUtils\typemap En +bugger.xs > Enbugger.xsc && C:\Perl\bin\perl.exe -MExtUtils::Command -e mv Enbugger.xsc Enbugger.c cl -c -nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCR +YPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLIC +IT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -DNDEBUG -O1 -DVERSION=\"0.03\" -DXS_VERSION +=\"0.03\" "-IC:\Perl\lib\CORE" Enbugger.c Enbugger.c Running Mkbootstrap for Enbugger () C:\Perl\bin\perl.exe -MExtUtils::Command -e chmod 644 Enbugger.bs C:\Perl\bin\perl.exe -MExtUtils::Mksymlists -e "Mksymlists('NAME'=>\"Enbugger\", 'DLBASE' +=> 'Enbugger', 'DL_FUNCS' => { }, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);" +link -out:blib\arch\auto\Enbugger\Enbugger.dll -dll -nologo -nodefaultlib -debug -opt:ref,icf -li +bpath:"C:\Perl\lib\CORE" -machine:x86 Enbugger.obj C:\Perl\lib\CORE\perl58.lib oldnames.lib ker +nel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleau +t32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib m +svcrt.lib -def:Enbugger.def Creating library blib\arch\auto\Enbugger\Enbugger.lib and object blib\arch\auto\Enbugger\Enbugge +r .exp Enbugger.obj : error LNK2019: unresolved external symbol _Perl_init_debugger referenced in function _boot_Enbugger blib\arch\auto\Enbugger\Enbugger.dll : fatal error LNK1120: 1 unresolved externals NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 8\VC\BIN\link.EXE"' : return +code '0x460' Stop.
Here's the output of "perl -V" if that helps:
c:\>perl -V Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Platform: osname=MSWin32, osvers=5.00, archname=MSWin32-x86-multi-thread uname='' config_args='undef' hint=recommended, useposix=true, d_sigaction=undef usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cl', ccflags ='-nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_D +E S_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_IM +P LICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX', optimize='-MD -Zi -DNDEBUG -O1', cppflags='-DWIN32' ccversion='12.00.8804', gccversion='', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=8 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='__int64', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='link', ldflags ='-nologo -nodefaultlib -debug -opt:ref,icf -libpath:"C:\Perl\lib\CORE" -m +a chine:x86' libpth=\lib libs= oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib s +h ell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib o +d bc32.lib odbccp32.lib msvcrt.lib perllibs= oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.l +i b shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.l +i b odbc32.lib odbccp32.lib msvcrt.lib libc=msvcrt.lib, so=dll, useshrplib=true, libperl=perl58.lib gnulibc_version='' Dynamic Linking: dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -debug -opt:ref,icf -libpath:"C:\Perl\li +b \CORE" -machine:x86' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS PERL_MALLOC_WRAP PL_OP_SLAB_ALLOC USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_SITECUSTOMIZE Locally applied patches: ActivePerl Build 822 [280952] Iin_load_module moved for compatibility with build 806 PerlEx support in CGI::Carp Less verbose ExtUtils::Install and Pod::Find Patch for CAN-2005-0448 from Debian with modifications Rearrange @INC so that 'site' is searched before 'perl' Partly reverted 24733 to preserve binary compatibility MAINT31223 plus additional changes 31490 Problem bootstraping Win32CORE 31324 Fix DynaLoader::dl_findfile() to locate .so files again 31214 Win32::GetLastError fails when first called 31211 Restore Windows NT support 31188 Problem killing a pseudo-forked child on Win32 29732 ANSIfy the PATH environment variable on Windows 27527,29868 win32_async_check() can loop indefinitely 26970 Make Passive mode the default for Net::FTP 26379 Fix alarm() for Windows 2003 24699 ICMP_UNREACHABLE handling in Net::Ping Built under MSWin32 Compiled at Jul 31 2007 19:34:48 @INC: C:/Perl/site/lib C:/Perl/lib .
Direct Responses: 6451 | Write a response
Posted on 2007-11-14 01:00:26-08 by jjore in response to 6448
Re: problem bulding Enbugger 0.03 on Windows
I notice the function that failed linking is _Perl_init_debugger while the source specifies Perl_init_debugger. Something about MSVC++ or ActiveState perl is doing that but I haven't the foggiest what that's about. Could you try using a CPP declaration in Enbugger.xs to paper over this? #define _Perl_init_debugger Perl_init_debugger
Direct Responses: 6465 | Write a response
Posted on 2007-11-16 18:47:13-08 by monty416 in response to 6451
Re: problem bulding Enbugger 0.03 on Windows
I think the leading underscore is put on automatically by MSVC as part of the __cdecl calling convention, and adding the #define won't help since it's a linking error and not a compile-time error. Regardless, I tried the #define and got the same problem... I then decided to look at the perl58.lib file for the symbol (since it seems like the only place on the link line that it could possibly be) and there doesn't seem to be a Perl_init_debugger defined, either with or without the leading underscore:
C:\> dumpbin /exports C:\Perl\lib\CORE\perl58.lib Microsoft (R) COFF/PE Dumper Version 8.00.50727.42 Copyright (C) Microsoft Corporation. All rights reserved. Dump of file C:\Perl\lib\CORE\perl58.lib File Type: LIBRARY Exports ordinal name _PL_AMG_names _PL_check _PL_fold _PL_fold_locale _PL_freq ...<bunch of lines deleted> _Perl_warn _Perl_warn_nocontext _Perl_warner _Perl_warner_nocontext _Perl_whichsig _Perl_win32_init _Perl_win32_term _Perl_yylex _RunPerl _boot_DynaLoader _boot_Win32CORE _init_Win32CORE _perl_alloc ...<more lines deleted...you get the idea>
I'm not determined to build this myself, I just want to use Enbugger on my Windows machine (*nix is not an option at the moment). Does anyone have a pre-built binary that will work for me that I can download and install?
Direct Responses: 8710 | Write a response
Posted on 2008-09-01 23:31:17-07 by ejh in response to 6465
Re: problem bulding Enbugger 0.03 on Windows
Did you ever get an answer. I am in the same boat. Thanks
Direct Responses: Write a response
Perl Weekly newsletter
A free weekly newsletter for people who are busy to read all the blogs. click here to check it out.