develooper Front page | perl.perl5.porters | Postings from December 2003

[PATCH] Re: perl @ 21830

Thread Previous | Thread Next
From:
Steve Hay
Date:
December 3, 2003 02:52
Subject:
[PATCH] Re: perl @ 21830
Message ID:
3FCDC08E.7080800@uk.radan.com
Steve Hay wrote:

>Now the bad news:  This snapshot doesn't build on WinXP/MSVC++ 6, which 
>explains the recent failures in my overnight smokes.  Running "nmake" 
>from within the win32/ subdir as usual gets down to making the B module 
>and then does this:
>
>=====
>Running Makefile.PL in B
>C:\Temp\perl-21830\win32\..\miniperl.exe 
>-IC:\Temp\perl-21830\win32\..\lib Makefile.PL INSTALLDIRS=perl PERL_CORE=1
>Writing Makefile for B::C
>Writing Makefile for B
>Making B
>nmake -nologo
>Warning: ..\..\lib\CORE/config.h out of date with ..\../config.sh; false
>Makefile out-of-date with respect to ..\..\lib\CORE\config.h
>Cleaning current config before rebuilding Makefile...
>        nmake -f Makefile.old clean > NUL || rem
>
>Microsoft (R) Program Maintenance Utility   Version 6.00.8168.0
>Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
>
>'..\..\miniperl.exe' is not recognized as an internal or external 
>command, operable program or batch file.
>        ..\..\miniperl.exe "-I..\..\lib" "-I..\..\lib" Makefile.PL 
>"INSTALLDIRS=perl" "PERL_CORE=1"
>Writing Makefile for B::C
>Writing Makefile for B
>==> Your Makefile has been rebuilt. <==
>==> Please rerun the make command.  <==
>        false
>'false' is not recognized as an internal or external command, operable 
>program or batch file.
>NMAKE : fatal error U1077: 'false' : return code '0x1'
>Stop.
>Unsuccessful make(B): code=512 at buildext.pl line 98.
>NMAKE : fatal error U1077: '..\miniperl.exe' : return code '0x2'
>Stop.
>=====
>  
>
I've found out what's wrong -- further up the build process I noticed this:

Running config_h.PL
Writing config.h
'config.h.new' and '../lib/CORE/config.h' are identical (not copied) at 
config_h.PL line 80

That's wrong -- config.h.new and ../lib/CORE/config.h are certainly not 
identical, it's just that File::Copy thinks they are since change 
21797.  This patch fixes it:

=====
--- lib\File\Copy.pm.orig    2003-11-30 11:36:00.000000000 +0000
+++ lib\File\Copy.pm    2003-12-03 10:24:05.524700100 +0000
@@ -78,7 +78,7 @@
     }
 
     if ((($Config{d_symlink} && $Config{d_readlink}) || $Config{d_link}) &&
-    !($^O eq 'Win32' || $^O eq 'os2' || $^O eq 'vms')) {
+    !($^O eq 'MSWin32' || $^O eq 'os2' || $^O eq 'vms')) {
     my @fs = stat($from);
     if (@fs) {
         my @ts = stat($to);
=====

However, the testsuite fails lib/File/Copy.t tests 14 and 28.  These 
relate to hard links.  The tests would be skipped if $Config{d_link} 
isn't true, but it is:

C:\Temp\perl-21830\t>perl -I..\lib -V:d_link
d_link='define';

But Copy.pm will never emit the "are identical" error that Copy.t is 
expecting because the error is emitted within the "if" block in the 
patch above, the conditional of which is always false on MSWin32.  Is it 
the module or the test that is wrong?

- Steve



------------------------------------------------
Radan Computational Ltd.

The information contained in this message and any files transmitted with it are confidential and intended for the addressee(s) only.  If you have received this message in error or there are any problems, please notify the sender immediately.  The unauthorized use, disclosure, copying or alteration of this message is strictly forbidden.  Note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of Radan Computational Ltd.  The recipient(s) of this message should check it and any attached files for viruses: Radan Computational will accept no liability for any damage caused by any virus transmitted by this email.


Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About