Skip Menu |

This queue is for tickets about the Scalar-List-Utils CPAN distribution.

Report information
The Basics
Id: 16199
Status: resolved
Priority: 0/
Queue: Scalar-List-Utils

People
Owner: Nobody in particular
Requestors: itatsumaki [...] hotmail.com
ron [...] savage.net.au
Cc:
AdminCc:

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



Subject: Util.obj : error LNK2001: unresolved external symbol _Perl_seed
Command: nmake Output: cp lib/List/Util.pm blib\lib\List\Util.pm cp lib/Scalar/Util.pm blib\lib\Scalar\Util.pm D:\Perl\bin\perl.exe -Iinc D:\Perl\lib\ExtUtils\xsubpp -typemap D:\Perl\lib\ExtUtils\typemap Util.xs > Util.xsc && D:\Perl\bin\perl.exe -Iinc -MExtUtils::Command -e mv Util.xsc Util.c cl -c -nologo -Gf -W3 -MD -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -DNDEBUG -O1 -DVERSION=\"1.18\" -DXS_VERSION=\"1.18\" "-ID:\Perl\lib\CORE" -DPERL_EXT Util.c Util.c Running Mkbootstrap for List::Util () D:\Perl\bin\perl.exe -Iinc -MExtUtils::Command -e chmod 644 Util.bs D:\Perl\bin\perl.exe -Iinc -MExtUtils::Mksymlists -e "Mksymlists('NAME'=>\"List::Util\", 'DLBASE' => 'Util', 'DL_FUNCS' => { }, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);" link -out:blib\arch\auto\List\Util\Util.dll -dll -nologo -nodefaultlib -release -libpath:"d:\Perl\lib\CORE" -machine:x86 Util.obj D:\Perl\lib\CORE\perl58.lib oldnames.lib kernel32.lib user32.lib gdi32.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 odbccp32.lib msvcrt.lib -def:Util.def Creating library blib\arch\auto\List\Util\Util.lib and object blib\arch\auto\List\Util\Util.exp Util.obj : error LNK2001: unresolved external symbol _Perl_seed blib\arch\auto\List\Util\Util.dll : fatal error LNK1120: 1 unresolved externals Errors: Microsoft (R) Program Maintenance Utility Version 6.00.9782.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. NMAKE : fatal error U1077: 'link' : return code '0x460' Stop. This is Perl V 5.8.7.
From: Graham Barr <gbarr [...] pobox.com>
Subject: Re: [cpan #16199] Util.obj : error LNK2001: unresolved external symbol _Perl_seed
Date: Sun, 4 Dec 2005 10:18:47 -0600
To: bug-Scalar-List-Utils [...] rt.cpan.org
RT-Send-Cc:
Can you please try changing line 315 in Util.xs from #if (PERL_VERSION < 8) || (PERL_VERSION == 8 && PERL_SUBVERSION <1) to #if (PERL_VERSION < 9) Graham.
Subject: XS Version compiles but doesn't install
This is Scalar-List-Utils-1.18 on AIX 5.2.0.0 using gcc 4.0.1 and Perl 5.8.7 A pretty detailed debugging session is available here: http://perlmonks.org/?node_id=516322 Briefly, when I install the make appears to go fine, and to make the XS version: $ perl -w Makefile.PL Name "Module::Install::AUTOLOAD" used only once: possible typo at inc/Module/Install.pm - /home/gbarr/perl/Module/Install.pm line 172. Subroutine new redefined at inc/Module/Install/Base.pm - /home/gbarr/perl/Module/Install/Base.pm line 29. Subroutine AUTOLOAD redefined at inc/Module/Install/Base.pm - /home/gbarr/perl/Module/Install/Base.pm line 47. Subroutine _top redefined at inc/Module/Install/Base.pm - /home/gbarr/perl/Module/Install/Base.pm line 58. Subroutine admin redefined at inc/Module/Install/Base.pm - /home/gbarr/perl/Module/Install/Base.pm line 69. Subroutine is_admin redefined at inc/Module/Install/Base.pm - /home/gbarr/perl/Module/Install/Base.pm line 74. Subroutine DESTROY redefined at inc/Module/Install/Base.pm - /home/gbarr/perl/Module/Install/Base.pm line 79. Subroutine new redefined at inc/Module/Install/Base.pm - /home/gbarr/perl/Module/Install/Base.pm line 84. Subroutine AUTOLOAD redefined at inc/Module/Install/Base.pm - /home/gbarr/perl/Module/Install/Base.pm line 85. Subroutine DESTROY redefined at inc/Module/Install/Base.pm - /home/gbarr/perl/Module/Install/Base.pm line 86. Checking if your kit is complete... Looks good Writing Makefile for List::Util $ make cp lib/List/Util.pm blib/lib/List/Util.pm cp lib/Scalar/Util.pm blib/lib/Scalar/Util.pm /db2blast/Paul/perl5.8.7/bin/perl -Iinc -e 'use ExtUtils::Mksymlists; \ Mksymlists("NAME" => "List::Util", "DL_FUNCS" => { }, "FUNCLIST" => [], "DL_VARS" => []);' /db2blast/Paul/perl5.8.7/bin/perl -Iinc /db2blast/Paul/perl5.8.7/lib/5.8.7/ExtUtils/xsubpp -typemap /db2blast/Paul/perl5.8.7/lib/5.8.7/ExtUtils/typemap Util.xs > Util.xsc && mv Util.xsc Util.c gcc -c -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGE_FILES -O -DVERSION=\"1.18\" -DXS_VERSION=\"1.18\" "-I/db2blast/Paul/perl5.8.7/lib/5.8.7/aix/CORE" -DPERL_EXT Util.c Running Mkbootstrap for List::Util () chmod 644 Util.bs rm -f blib/arch/auto/List/Util/Util.so gcc -Wl,-bhalt:4 -Wl,-bexpall -Wl,-G -Wl,-bnoentry -lc -L/usr/local/lib Util.o -o blib/arch/auto/List/Util/Util.so \ \ chmod 755 blib/arch/auto/List/Util/Util.so cp Util.bs blib/arch/auto/List/Util/Util.bs chmod 644 blib/arch/auto/List/Util/Util.bs Manifying blib/man3/List::Util.3 Manifying blib/man3/Scalar::Util.3 However, when I test it the XS version doesn't seem to be found: $ make test PERL_DL_NONLAZY=1 /db2blast/Paul/perl5.8.7/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/*.t t/00version.....ok t/blessed.......ok t/dualvar.......skipped all skipped: dualvar requires XS version t/first.........ok 2/17 skipped: Poor man's MULTICALL can't cope t/isvstring.....skipped all skipped: isvstring requires XS version But when I install it it appears that the XS version (or at least the .so file) is getting installed $ make install Installing /db2blast/Paul/perl5.8.7/lib/5.8.7/aix/auto/List/Util/Util.so Files found in blib/arch: installing files in blib/lib into architecture dependent library tree Writing /db2blast/Paul/perl5.8.7/lib/5.8.7/aix/auto/List/Util/.packlist Appending installation info to /db2blast/Paul/perl5.8.7/lib/5.8.7/aix/perllocal.pod But no matter what the XS code is not seen as available by other programs, as can be seen when I try to install things that depend on weaken, like Graph v0.69.
From: Graham Barr <gbarr [...] pobox.com>
Subject: Re: [cpan #16529] XS Version compiles but doesn't install
Date: Tue, 27 Dec 2005 07:18:24 -0600
To: bug-Scalar-List-Utils [...] rt.cpan.org
RT-Send-Cc:
Sorry for the slow reply. It looks like the dynamic loading is failing and so as a fallback it is using the perl-only code. Can you please try changing line 315 in Util.xs from #if (PERL_VERSION < 8) || (PERL_VERSION == 8 && PERL_SUBVERSION <1) to #if (PERL_VERSION < 9) Graham.
On Tue Dec 27 08:19:07 2005, gbarr@pobox.com wrote: The problem occurs just on Win32 and has been fixed in the core. The problem was that the function Perl_seed() wasn't getting exported correctly. I believe that this fix has been merged into 5.8.8-tobe.
Subject: Re: [rt.cpan.org #16199] Util.obj : error LNK2001: unresolved external symbol _Perl_seed
Date: Thu, 19 Jan 2006 11:46:28 -0600 (CST)
To: bug-Scalar-List-Utils [...] rt.cpan.org
From: "Graham Barr" <gbarr [...] pobox.com>
On Wed, January 18, 2006 8:54 pm, via RT wrote: Show quoted text
> > <URL: http://rt.cpan.org/Ticket/Display.html?id=16199 > > > On Tue Dec 27 08:19:07 2005, gbarr@pobox.com wrote: > > The problem occurs just on Win32 and has been fixed in the core. The > problem was that the function Perl_seed() wasn't getting exported > correctly. I believe that this fix has been merged into 5.8.8-tobe.
OK, so changing #if (PERL_VERSION < 8) || (PERL_VERSION == 8 && PERL_SUBVERSION <1) to #if (PERL_VERSION < 8) || (PERL_VERSION == 8 && PERL_SUBVERSION <8) should be sufficient as that will make perl prior to 5.8.8 call pp_rand the way it always used to Graham.
Subject: Re: [rt.cpan.org #16199] Util.obj : error LNK2001: unresolved external symbol _Perl_seed
Date: Tue, 24 Jan 2006 18:38:34 +1100
To: Graham Barr via RT <bug-Scalar-List-Utils [...] rt.cpan.org>
From: Ron Savage <ron [...] savage.net.au>
On Thu, 19 Jan 2006 14:50:06 -0500 (EST), Graham Barr via RT wrote: Hi Graham Show quoted text
V 1.18 does not have the problem, so I guess you can mark this one as Closed. -- Cheers Ron Savage, ron@savage.net.au on 24/01/2006 http://savage.net.au/index.html Let the record show: Microsoft is not an Australian company
On Tue Jan 24 02:42:39 2006, ron@savage.net.au wrote: Show quoted text
> V 1.18 does not have the problem, so I guess you can mark this one as > Closed.
Oops - I had this problem in V 1.18 (but NOT in 1.17) on AIX 5.3. I made the change to UTIL.xs and it worked. (see http://tinyurl.com/9uxwk where I bothered CLPMisc about this)
Subject: Re: [rt.cpan.org #16199] Util.obj : error LNK2001: unresolved external symbol _Perl_seed
Date: Wed, 25 Jan 2006 11:32:10 +1100
To: Guest via RT <bug-Scalar-List-Utils [...] rt.cpan.org>
From: Ron Savage <ron [...] savage.net.au>
On Tue, 24 Jan 2006 19:23:57 -0500 (EST), Guest via RT wrote: Hi V 1.18 has this #if (PERL_VERSION < 9) for line 315 of Util.xs, so someone has fixed it, right? -- Ron Savage ron@savage.net.au http://savage.net.au/index.html
Subject: Re: [rt.cpan.org #16199] Util.obj : error LNK2001: unresolved external symbol _Perl_seed
Date: Tue, 24 Jan 2006 19:45:31 -0600
To: bug-Scalar-List-Utils [...] rt.cpan.org
From: Graham Barr <gbarr [...] pobox.com>
On Jan 24, 2006, at 6:37 PM, ron@savage.net.au via RT wrote: Show quoted text
> > <URL: http://rt.cpan.org/Ticket/Display.html?id=16199 > > > On Tue, 24 Jan 2006 19:23:57 -0500 (EST), Guest via RT wrote: > > Hi > > V 1.18 has this > > #if (PERL_VERSION < 9) > > for line 315 of Util.xs, so someone has fixed it, right?
No, you must have edited that. 1.18 has #if (PERL_VERSION < 8) || (PERL_VERSION == 8 && PERL_SUBVERSION <1) There is a fix in 5.8.8 so that line will change to #if (PERL_VERSION < 8) || (PERL_VERSION == 8 && PERL_SUBVERSION <8) Graham.
On Tue Dec 27 08:19:07 2005, gbarr@pobox.com wrote: Show quoted text
> Sorry for the slow reply. It looks like the dynamic loading is > failing and so as a fallback it is using the perl-only code. > > Can you please try changing line 315 in Util.xs from > > #if (PERL_VERSION < 8) || (PERL_VERSION == 8 && PERL_SUBVERSION <1) > > to > > #if (PERL_VERSION < 9)
This worked for me on 5.8.6 cheers, Yves
Fixed in 1.19 (to be released soon)