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

[PATCH: perl@21138] bug fix for MakeMaker miniperl problem on all platforms, slight additional VMS cleanup

Thread Previous | Thread Next
From:
PPrymmer
Date:
September 9, 2003 12:42
Subject:
[PATCH: perl@21138] bug fix for MakeMaker miniperl problem on all platforms, slight additional VMS cleanup
Message ID:
OF3D3AAA31.2AB29A62-ON85256D9C.006AEBBE-85256D9C.006C2603@factset.com




Greetings,

I mentioned a bug with path names and an installed
perl in the archives at:

http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2003-09/msg00586.html

The enclosed patch seems to fix the problem on
x86 linux 2.4.18-14smp.  It also incorporates
several of Michael Schwern's recent excellent
suggestions to better address the unique needs
of the usevmsdebug build on VMS and removes
the 'ndbgperl' hardcoded hack.  Unfortunately I could
not remove the $nbdg variable hack - which must
remain there so as to pass these tests that
would otherwise fail:

lib/ExtUtils/t/basic.................FAILED at test 22
lib/ExtUtils/t/Constant..............FAILED at test 5
Failed 2 test scripts out of 728, 99.73% okay.

In sum this patch has been tested with:

x86 linux 2.4.18-14smp:

   sh Configure -Dprefix=/home/pprymmer/my/miniperl -des
   build of Text-CSV_XS 0.23 with installed
/home/pprymmer/my/miniperl/bin/perl
   seems to test OK.

Alpha VMS 7.3-1:

  @configure "-Dusevmsdebug" "-des"
  build of XS and non XS CPAN modules with installed perl seems OK

Alpha VMS 7.3-1

  @configue "-des"

A comparison of the PERL_ROOTs in the last two installations
shows that NDGPERLSHR.EXE is the only extra file in the former
(1631 files and dirs, versus 1630 files and dirs in the latter).

--- perl_built/lib/ExtUtils/MM_Unix.pm    2003-09-09 10:10:23.000000000 -0400
+++ perl/lib/ExtUtils/MM_Unix.pm    2003-09-09 11:33:00.000000000 -0400
@@ -2321,7 +2321,10 @@

     # Build up a set of file names (not command names).
     my $thisperl = $self->canonpath($^X);
-    $thisperl .= $Config{exe_ext} unless $thisperl =~ m/$Config{exe_ext}$/i;
+    $thisperl .= $Config{exe_ext} unless
+                # VMS might have a file version # at the end
+      $Is_VMS ? $thisperl =~ m/$Config{exe_ext}(;\d+)?$/i
+              : $thisperl =~ m/$Config{exe_ext}$/i;

     # We need a relative path to perl when in the core.
     $thisperl = $self->abs2rel($thisperl) if $self->{PERL_CORE};
@@ -2331,7 +2334,6 @@
     if ( $Is_VMS ) {
         if ( defined( $Config{usevmsdebug} ) ) {
             if ( $Config{usevmsdebug} eq 'define' ) {
-                push @perls, map { "$_$Config{exe_ext}" } ('ndbgperl');
                 $ndbg = 'ndbg';
             }
         }
@@ -2355,8 +2357,13 @@
     # supply switches with perl

     # Define 'FULLPERL' to be a non-miniperl (used in test: target)
-    ($self->{FULLPERL} = $self->{PERL}) =~ s/miniperl/${ndbg}perl/i
-     unless $self->{FULLPERL};
+    if( $self->{PERL_CORE} ) {
+        ($self->{FULLPERL} = $self->{PERL}) =~ s/miniperl/${ndbg}perl/i
+         unless $self->{FULLPERL};
+    }
+    else {
+        ($self->{FULLPERL} = $self->{PERL}) unless $self->{FULLPERL};
+    }

     # Little hack to get around VMS's find_perl putting "MCR" in front
     # sometimes.

And as an attachment:

(See attached file: perl_core.patch)

The above patch affects all MakeMaker platforms as far as I know.
It would be nice to test far and wide.  I only have access to a limited
number of test platforms.  Thanks.

Peter Prymmer
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