Fwd: [perl #58704] [BUG] t/src/compiler.t failures with VC++ / Win32

2009-01-07 Thread Tim Heckman



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

2008-09-09 Thread Tim Heckman
# 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

2008-09-09 Thread NotFound
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

2008-09-09 Thread Tim Heckman

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