X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/542f72439b96cee2ffeb944ed4d6710d4396f529..af01601c498bb908faba7e2acd3f47d58fd8fc08:/configpm diff --git a/configpm b/configpm index 7d6de37..6ea7419 100755 --- a/configpm +++ b/configpm @@ -149,14 +149,17 @@ die "Can't automatically determine name for Config_heavy.pl from '$Config_PM'" my $config_txt; my $heavy_txt; -$heavy_txt .= <<'ENDOFBEG'; +my $from = $^O eq 'VMS' ? 'PERLSHR image' : 'binary (from libperl)'; +my $env_cygwin = $^O eq 'cygwin' + ? 'push @env, "CYGWIN=\"$ENV{CYGWIN}\"" if $ENV{CYGWIN};' . "\n" : ""; +$heavy_txt .= sprintf <<'ENDOFBEG', $^O, $^O, $from, $^O, $env_cygwin; # This file was created by configpm when Perl was built. Any changes # made to this file will be lost the next time perl is built. package Config; use strict; use warnings; -use vars '%Config'; +use vars '%%Config'; sub bincompat_options { return split ' ', (Internals::V())[0]; @@ -176,6 +179,9 @@ sub local_patches { } sub _V { + die "Perl lib was built for '%s' but is being run on '$^O'" + unless "%s" eq $^O; + my ($bincompat, $non_bincompat, $date, @patches) = Internals::V(); my $opts = join ' ', sort split ' ', "$bincompat $non_bincompat"; @@ -185,11 +191,7 @@ sub _V { $opts =~ s/(?=.{53})(.{1,53}) /$1\n /mg; print Config::myconfig(); - if ($^O eq 'VMS') { - print "\nCharacteristics of this PERLSHR image: \n"; - } else { - print "\nCharacteristics of this binary (from libperl): \n"; - } + print "\nCharacteristics of this %s: \n"; print " Compile-time options: $opts\n"; @@ -198,15 +200,14 @@ sub _V { print "\t$_\n" foreach @patches; } - print " Built under $^O\n"; + print " Built under %s\n"; print " $date\n" if defined $date; - my @env = map { "$_=\"$ENV{$_}\"" } sort grep {/^PERL/} keys %ENV; - push @env, "CYGWIN=\"$ENV{CYGWIN}\"" if $^O eq 'cygwin' and $ENV{CYGWIN}; - + my @env = map { "$_=\"$ENV{$_}\"" } sort grep {/^PERL/} keys %%ENV; +%s if (@env) { - print " \%ENV:\n"; + print " \%%ENV:\n"; print " $_\n" foreach @env; } print " \@INC:\n"; @@ -292,6 +293,7 @@ my @non_v = (); my @v_others = (); my $in_v = 0; my %Data = (); +my $quote; my %seen_quotes; @@ -323,11 +325,11 @@ my %seen_quotes; push(@non_v, "#$_"); # not a name='value' line next; } - my $quote = $2; if ($in_v) { $val .= $_; } else { + $quote = $2; ($name,$val) = ($1,$3); } $in_v = $val !~ /$quote\n/; @@ -411,13 +413,12 @@ my $f = $t eq 'long' ? 'L!' : $s == 8 ? 'Q': 'I'; my $byteorder_code; if ($s == 4 || $s == 8) { - my $list = join ',', reverse(2..$s); + my $list = join ',', reverse(1..$s-1); my $format = 'a'x$s; $byteorder_code = <<"EOT"; -my \$i = 0; -foreach my \$c ($list) { \$i |= ord(\$c); \$i <<= 8 } -\$i |= ord(1); +my \$i = ord($s); +foreach my \$c ($list) { \$i <<= 8; \$i |= ord(\$c); } our \$byteorder = join('', unpack('$format', pack('$f', \$i))); EOT } else { @@ -808,8 +809,8 @@ if ($Common{byteorder}) { } my $fast_config = join '', map { " $_,\n" } sort values %Common; -# Sanity check needed to stop an infite loop if Config_heavy.pl fails to define -# &launcher for some reason (eg it got truncated) +# Sanity check needed to stop an infinite loop if Config_heavy.pl fails to +# define &launcher for some reason (eg it got truncated) $config_txt .= sprintf <<'ENDOFTIE', $fast_config; sub DESTROY { } @@ -871,7 +872,7 @@ http://perl5.git.perl.org/perl.git/blob/HEAD:/Porting/Glossary =item myconfig() Returns a textual summary of the major perl configuration values. -See also C<-V> in L. +See also C<-V> in L. =item config_sh() @@ -891,7 +892,7 @@ printed on a separate line in the form: name='value'; Names which are unknown are output as C. -See also C<-V:name> in L. +See also C<-V:name> in L. =item bincompat_options()