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

[PATCH] Re: perl @ 21830

Thread Previous | Thread Next
Steve Hay
December 3, 2003 02:52
[PATCH] Re: perl @ 21830
Message ID:
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
>-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 ..\../; 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 
>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'
>Unsuccessful make(B): code=512 at line 98.
>NMAKE : fatal error U1077: '..\miniperl.exe' : return code '0x2'
I've found out what's wrong -- further up the build process I noticed this:

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

That's wrong -- 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\    2003-11-30 11:36:00.000000000 +0000
+++ lib\File\    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

But 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 Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About