Skip Menu |

This queue is for tickets about the version CPAN distribution.

Report information
The Basics
Id: 91870
Status: resolved
Priority: 0/
Queue: version

People
Owner: Nobody in particular
Requestors: BULKDD [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: unresolved external symbol boot_version__vxs
Commit https://bitbucket.org/jpeacock/version/commits/c2cc74f7ebf49c57504f914ede77c3d873e6d70c "Do not need vxs.xs any longer" looked suspicious to me. I tried to compile the head commit https://bitbucket.org/jpeacock/version/commits/8f1352c79510f2f9c9fc58e048dfc57286d28626/raw/ "Only need to compare the remaining string" and got this. ---------------------------------------------- C:\Documents and Settings\Owner\Desktop\cpan libs\jpeacock-version-8f1352c79510> perl makefile.pl Testing if you have a C compiler compilet-3N3Pj.c Creating library compilet.lib and object compilet.exp Generating code Finished generating code Generating a nmake-style Makefile Writing Makefile for version::vxs Writing MYMETA.yml and MYMETA.json Generating a nmake-style Makefile Writing Makefile for version Writing MYMETA.yml and MYMETA.json C:\Documents and Settings\Owner\Desktop\cpan libs\jpeacock-version-8f1352c79510> nmake test Microsoft (R) Program Maintenance Utility Version 7.10.3077 Copyright (C) Microsoft Corporation. All rights reserved. cp vperl/vpp.pm blib\lib/version/vpp.pm cp lib/version/regex.pm blib\lib/version/regex.pm cp lib/version.pm blib\lib/version.pm cp lib/version/Internals.pod blib\lib/version/Internals.pod cp lib/version.pod blib\lib/version.pod nmake -f Makefile all -nologo cp lib/version/vxs.pm ..\blib\lib\version\vxs.pm Running Mkbootstrap for version::vxs () C:\perl519\bin\perl.exe -MExtUtils::Command -e chmod -- 644 vxs.bs cl -c -nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -G7 -GL -DWIN32 -D_CONSOLE -DNO_STRICT -DPERL_TEXTMODE_SCRIPTS -DPERL_HASH_FUNC_ONE_AT_A_TIME -DPERL_IMPLI CIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -D_USE_32BIT_TIME_T -O1 -MD -Zi -DN DEBUG -G7 -GL -DVERSION=\"0.9906\" -DXS_VERSION=\"0.9906\" "-IC:\perl519\li b\CORE" vutil.c vutil.c c:\Documents and Settings\Owner\Desktop\cpan libs\jpeacock-version-8f1352c79510\ vutil\vutil.h(113) : warning C4005: 'is_LAX_VERSION' : macro redefinition c:\perl519\lib\CORE\handy.h(1545) : see previous definition of 'is_LAX_V ERSION' c:\Documents and Settings\Owner\Desktop\cpan libs\jpeacock-version-8f1352c79510\ vutil\vutil.h(115) : warning C4005: 'is_STRICT_VERSION' : macro redefinition c:\perl519\lib\CORE\handy.h(1548) : see previous definition of 'is_STRIC T_VERSION' C:\perl519\bin\perl.exe -MExtUtils::Mksymlists -e "Mksymlists('NAME'=>\ "version::vxs\", 'DLBASE' => 'vxs', 'DL_FUNCS' => { }, 'FUNCLIST' => [], 'IMPOR TS' => { }, 'DL_VARS' => []);" link -out:..\blib\arch\auto\version\vxs\vxs.dll -dll -nologo -nodefaultl ib -debug -opt:ref,icf -ltcg -libpath:"c:\perl519\lib\CORE" -machine:x86 vutil .obj C:\perl519\lib\CORE\perl519.lib oldnames.lib kernel32.lib user32.lib gdi3 2.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odb ccp32.lib comctl32.lib msvcrt.lib -def:vxs.def vxs.def : error LNK2001: unresolved external symbol boot_version__vxs vxs.def : error LNK2001: unresolved external symbol boot_version__vxs ..\blib\arch\auto\version\vxs\vxs.lib : fatal error LNK1120: 2 unresolved extern als LINK : fatal error LNK1141: failure during build of exports file NMAKE : fatal error U1077: 'link' : return code '0x475' Stop. NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio .NET 2003\ VC7\BIN\nmake.exe"' : return code '0x2' Stop. C:\Documents and Settings\Owner\Desktop\cpan libs\jpeacock-version-8f1352c79510> ---------------------------------------- boot_version__vxs AKA BOOT: is the only sub Dynaloader creates from a SO/DLL, so the rest of the XSUBs are registered from boot with newXS calls. This is how xsubpp and nearly all (but not all, see this tutorial module https://github.com/tsee/p5-XS-WithoutXS/blob/master/lib/XS/WithoutXS.pm ) other xs libs do it.
Reverted that changeset so that Windows is happy. I'll revisit this later, since clearly Linux is perfectly happy without that code, so I may make that O/S dependent.