Fwd: [perl #58704] [BUG] t/src/compiler.t failures with VC++ / Win32
Begin forwarded message: From: Tim Heckman theck...@panix.com Date: January 5, 2009 11:52:47 PM EST To: Reini Urban rur...@x-ray.at Cc: Ron Blaschke r...@rblasch.org, NotFound julian.notfo...@gmail.com, parrot-...@perl.org, bugs- bitbuc...@netlabs.develooper.com Subject: Re: [perl #58704] [BUG] t/src/compiler.t failures with VC+ + / Win32 Reini Urban wrote: I fixed now the PMCNULL fatal in the testsuite with r34982. http://www.parrotvm.org/svn/parrot/revision?rev=34982 The minor LIBPATH warning issue was fixed with r34981. http://www.parrotvm.org/svn/parrot/revision?rev=34981 Can somebody please confirm so we can resolve this ticket. These tests are passing on my system (using revision 34982) C:\work\parrotprove -v t/src/compiler.t t/src/compiler 1..5 ok 1 - Parrot Compile API Single call ok 2 - Parrot Compile API Multiple Calls ok 3 - Parrot Compile API Multiple 1st bad PIR ok 4 - Parrot Compile API Multiple 2nd bad PIR ok 5 - Parrot Compile API Multiple bad PIR ok All tests successful. Files=1, Tests=5, 4 wallclock secs ( 0.03 usr + 0.00 sys = 0.03 CPU) Result: PASS C:\work\parrotsvn info Path: . URL: https://svn.perl.org/parrot/trunk Repository Root: https://svn.perl.org/parrot Repository UUID: d31e2699-5ff4-0310-a27c-f18f2fbe73fe Revision: 34982 Node Kind: directory Schedule: normal Last Changed Author: rurban Last Changed Rev: 34982 Last Changed Date: 2009-01-05 07:54:29 -0500 (Mon, 05 Jan 2009) --Tim
[perl #58704] [BUG] t/src/compiler.t failures with VC++ / Win32
# New Ticket Created by Tim Heckman # Please include the string: [perl #58704] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=58704 Output of prove -v t\src\compiler.t is attached. The generated linker command is incorrect. The /L option doesn't work with the Microsoft linker link -nologo -nodefaultlib -debug -machine:x86 -debug t/src/compiler_2.obj src\parrot_config.obj -out:t\src\compiler_2.exe -Lblib\lib libparrot.lib kernel32.lib ws2_32.lib msvcrt.lib oldnames.lib But, if I run this command using the documented linker option of /LIBPATH it *still* fails. link -nologo -nodefaultlib -debug -machine:x86 -debug t/src/compiler_2.obj src\parrot_config.obj -out:t\src\compiler_2.exe /LIBPATH:blib\lib libparrot.lib kernel32.lib ws2_32.lib msvcrt.lib oldnames.lib The only way I've been able to make this command line work is like this: link -nologo -nodefaultlib -debug -machine:x86 -debug t/src/compiler_2.obj src\parrot_config.obj -out:t\src\compiler_2.exe blib\lib\libparrot.lib kernel32.lib ws2_32.lib msvcrt.lib oldnames.lib I am not sure why this is. C and C++ are not my areas of expertise, so I may be doing something wrong here. I have tried it with the Visual Studio tools for both 2005 (professional edition) and 2008 (express edition) with the same results. It looks like this would require a change to lib\Parrot\Test.pm to emit a Visual Studio-specific linker command line. This has been turning up in the Smolder reports since early August. See for example http://smolder.plusthree.com/app/public_projects/report_details/5249 The GCC toolchain on Win32 does not have these failures. See http://smolder.plusthree.com/app/public_projects/report_details/5251 --Tim t/src/compiler 1..6 ok 1 # SKIP compreg disabled/imcc_compile_pir() not exported # 'link -nologo -nodefaultlib -debug -machine:x86 -debug t/src/compiler_2.obj src\parrot_config.obj -out:t\src\compiler_2.exe -Lblib\lib libparrot.lib kernel32.lib ws2_32.lib msvcrt.lib oldnames.lib' failed with exit code 96 # Failed to build 't\src\compiler_2.exe': LINK : warning LNK4044: unrecognized option '/Lblib\lib'; ignored # compiler_2.obj : error LNK2001: unresolved external symbol _PMCNULL # t\src\compiler_2.exe : fatal error LNK1120: 1 unresolved externals # Failed test 'Parrot Compile API Single call' # at t/src/compiler.t line 112. not ok 2 - Parrot Compile API Single call # 'link -nologo -nodefaultlib -debug -machine:x86 -debug t/src/compiler_3.obj src\parrot_config.obj -out:t\src\compiler_3.exe -Lblib\lib libparrot.lib kernel32.lib ws2_32.lib msvcrt.lib oldnames.lib' failed with exit code 96 # Failed to build 't\src\compiler_3.exe': LINK : warning LNK4044: unrecognized option '/Lblib\lib'; ignored # compiler_3.obj : error LNK2001: unresolved external symbol _PMCNULL # t\src\compiler_3.exe : fatal error LNK1120: 1 unresolved externals # Failed test 'Parrot Compile API Multiple Calls' # at t/src/compiler.t line 194. not ok 3 - Parrot Compile API Multiple Calls # 'link -nologo -nodefaultlib -debug -machine:x86 -debug t/src/compiler_4.obj src\parrot_config.obj -out:t\src\compiler_4.exe -Lblib\lib libparrot.lib kernel32.lib ws2_32.lib msvcrt.lib oldnames.lib' failed with exit code 96 # Failed to build 't\src\compiler_4.exe': LINK : warning LNK4044: unrecognized option '/Lblib\lib'; ignored # compiler_4.obj : error LNK2001: unresolved external symbol _PMCNULL # t\src\compiler_4.exe : fatal error LNK1120: 1 unresolved externals # Failed test 'Parrot Compile API Multiple 1st bad PIR' # at t/src/compiler.t line 287. not ok 4 - Parrot Compile API Multiple 1st bad PIR # 'link -nologo -nodefaultlib -debug -machine:x86 -debug t/src/compiler_5.obj src\parrot_config.obj -out:t\src\compiler_5.exe -Lblib\lib libparrot.lib kernel32.lib ws2_32.lib msvcrt.lib oldnames.lib' failed with exit code 96 # Failed to build 't\src\compiler_5.exe': LINK : warning LNK4044: unrecognized option '/Lblib\lib'; ignored # compiler_5.obj : error LNK2001: unresolved external symbol _PMCNULL # t\src\compiler_5.exe : fatal error LNK1120: 1 unresolved externals # Failed test 'Parrot Compile API Multiple 2nd bad PIR' # at t/src/compiler.t line 380. not ok 5 - Parrot Compile API Multiple 2nd bad PIR # 'link -nologo -nodefaultlib -debug -machine:x86 -debug t/src/compiler_6.obj src\parrot_config.obj -out:t\src\compiler_6.exe -Lblib\lib libparrot.lib kernel32.lib ws2_32.lib msvcrt.lib oldnames.lib' failed with exit code 96 # Failed to build 't\src\compiler_6.exe': LINK : warning LNK4044: unrecognized option '/Lblib\lib'; ignored # compiler_6.obj : error LNK2001: unresolved external symbol _PMCNULL # t\src\compiler_6.exe : fatal error LNK1120: 1 unresolved externals # Failed test 'Parrot Compile API Multiple bad PIR' # at t/src/compiler.t line 472. # Looks like you failed 5 tests of 6. not ok 6 - Parrot
Re: [perl #58704] [BUG] t/src/compiler.t failures with VC++ / Win32
On Tue, Sep 9, 2008 at 5:23 AM, via RT Tim Heckman [EMAIL PROTECTED] wrote: # New Ticket Created by Tim Heckman # Please include the string: [perl #58704] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=58704 link -nologo -nodefaultlib -debug -machine:x86 -debug t/src/compiler_2.obj src\parrot_config.obj -out:t\src\compiler_2.exe -Lblib\lib libparrot.lib kernel32.lib ws2_32.lib msvcrt.lib oldnames.lib But, if I run this command using the documented linker option of /LIBPATH it *still* fails. link -nologo -nodefaultlib -debug -machine:x86 -debug t/src/compiler_2.obj src\parrot_config.obj -out:t\src\compiler_2.exe /LIBPATH:blib\lib libparrot.lib kernel32.lib ws2_32.lib msvcrt.lib oldnames.lib What are the error messages in this case? -- Salu2
Re: [perl #58704] [BUG] t/src/compiler.t failures with VC++ / Win32
NotFound wrote: On Tue, Sep 9, 2008 at 5:23 AM, via RT Tim Heckman [EMAIL PROTECTED] wrote: # New Ticket Created by Tim Heckman # Please include the string: [perl #58704] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=58704 link -nologo -nodefaultlib -debug -machine:x86 -debug t/src/compiler_2.obj src\parrot_config.obj -out:t\src\compiler_2.exe -Lblib\lib libparrot.lib kernel32.lib ws2_32.lib msvcrt.lib oldnames.lib But, if I run this command using the documented linker option of /LIBPATH it *still* fails. link -nologo -nodefaultlib -debug -machine:x86 -debug t/src/compiler_2.obj src\parrot_config.obj -out:t\src\compiler_2.exe /LIBPATH:blib\lib libparrot.lib kernel32.lib ws2_32.lib msvcrt.lib oldnames.lib What are the error messages in this case? It seems to ignore /LIBPATH C:\work\parrotlink -nologo -nodefaultlib -debug -machine:x86 -debug t/src/c ompiler_2.obj src\parrot_config.obj -out:t\src\compiler_2.exe /LIBPATH:blib\lib libparrot.lib kernel32.lib ws2_32.lib msvcrt.lib oldnames.lib compiler_2.obj : error LNK2001: unresolved external symbol _PMCNULL t\src\compiler_2.exe : fatal error LNK1120: 1 unresolved externals C:\work\parrot --Tim