I have made many changes over the past 6 weeks to the perl 5.7 build procedures to consistently apply the "executable suffix" ( $Config{exe_suffix} ) where it is needed. And I've made changes to have the makefiles distinguish between pathnames (which need the exe suffix) and command names (which do not). The old code was rather inconsistent; I believe the current code is quite consistent. My guess is that one of these changes triggered a latent bug. I do not know VMS, so I can't comment on your patch. Thanks PG -----Original Message----- From: Michael G Schwern [mailto:schwern@pobox.com] Sent: Monday, January 21, 2002 12:32 AM To: Craig A. Berry Cc: perl5-porters@perl.org; vmsperl@perl.org Subject: Re: [PATCH] MakeMaker.pm sub-Makefile.PL tweak for VMS On Sun, Jan 20, 2002 at 10:49:42PM -0600, Craig A. Berry wrote: > Something recently broke our ability to build extensions that run a > Makefile.PL in a subdirectory, such as SDBM_File does. Was this before or after I botched ExtUtils::MakeMaker::check_hints()? ie. what patchlevel is this against? > I found and > fixed the problem code (patch below) but I can't see how the > existing code ever worked nor what broke it. The only thing I can > think of is that there was a scoping leak that compensated for > another bug and the fact that we now run the subsidiary Makefile.PL > using "do" plugged the scoping leak and exposed the other bug (which > had to do with the fact that a command verb tests positive as an > absolute filename). > > > --- lib/ExtUtils/MakeMaker.pm;-0 Wed Jan 16 08:42:52 2002 > +++ lib/ExtUtils/MakeMaker.pm Sun Jan 20 21:20:57 2002 > @@ -406,12 +406,20 @@ > for $key (keys %Prepend_dot_dot) { > next unless defined $self->{PARENT}{$key}; > $self->{$key} = $self->{PARENT}{$key}; > - # PERL and FULLPERL may be command verbs instead of full > - # file specifications under VMS. If so, don't turn them > - # into a filespec. > - $self->{$key} = $self->catdir("..",$self->{$key}) > - unless $self->file_name_is_absolute($self->{$key}) > - || ($^O eq 'VMS' and ($key =~ /PERL$/ && $self->{$key} =~ /^[\w\-\$]+$/)); > + unless ($^O eq 'VMS' && $key =~ /PERL$/) { > + $self->{$key} = $self->catdir("..",$self->{$key}) > + unless $self->file_name_is_absolute($self->{$key}); > + } else { > + # PERL or FULLPERL will be a command verb or even a command with > + # an argument instead of a full file specification under VMS. So, > + # don't turn the command into a filespec, but do add a level to the > + # path of the argument if not already absolute. > + > + my @cmd = split /\s+/, $self->{$key}; > + $cmd[1] = $self->catfile('[-]',$cmd[1]) > + unless (scalar(@cmd) < 2 || $self->file_name_is_absolute($cmd[1])); > + $self->{$key} = join(' ', @cmd); > + } > } > if ($self->{PARENT}) { > $self->{PARENT}->{CHILDREN}->{$newclass} = $self; > [end of patch] -- Michael G. Schwern <schwern@pobox.com> http://www.pobox.com/~schwern/ Perl Quality Assurance <perl-qa@perl.org> Kwalitee Is Job One I knew right away that my pants and your inner child could be best friends.Thread Previous | Thread Next