In perl.git, the branch blead has been updated <https://perl5.git.perl.org/perl.git/commitdiff/6e0fc9025db5865d3181fcac99d17efa4680df6c?hp=c6f37d61adb39a6d7764b1bcb6bb67accb22a0a0>
- Log ----------------------------------------------------------------- commit 6e0fc9025db5865d3181fcac99d17efa4680df6c Author: Craig A. Berry <[email protected]> Date: Sun Aug 25 14:26:11 2019 -0500 Make find.t work on VMS by trimming trailing dots. For whatever reason, find.t uses a lot of filenames with no extension for testing purposes, but on VMS there is no such thing as a file with no extension, so, for example 'faba' is returned as 'faba.' with the zero-length extension explicitly specified. For comparison purposes we have to trim that trailing dot, and there is code to do that sprinkled throughout the test; we just hadn't (until now) added it for a couple of the more recent tests. commit 8b4039846548684eda3376f80a4a5cb7a47ccc94 Author: Craig A. Berry <[email protected]> Date: Sun Aug 25 13:50:46 2019 -0500 Prepare VMS linker GSMATCH for 5.32. GSMATCH in the linker options file tells the image activator whether a dynamic library being loaded is compatible with what it originally linked against. Ideally we would like to encode the version number and all the options that can make a build binary incompatible with another build of the same version, but there are about 30 such options and only 8 bits (on Alpha) in which to store both the version number and the options. We've lived with only 3 bits reserved for 3 options, but as of version 32 of Perl 5, we'll need 6 bits for the version number: $ perl -e "$v = 31; printf('%b', $v);" 11111 $ perl -e "$v = 32; printf('%b', $v);" 100000 leaving us only 2 bits for options. The code modified here only kicks in when PERLSHR_USE_GSMATCH is defined in the environment. ----------------------------------------------------------------------- Summary of changes: ext/File-Find/t/find.t | 8 ++++++-- vms/gen_shrfls.pl | 7 +++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/ext/File-Find/t/find.t b/ext/File-Find/t/find.t index 0a7355296c..40d14db0c6 100644 --- a/ext/File-Find/t/find.t +++ b/ext/File-Find/t/find.t @@ -281,7 +281,9 @@ my %tb = map { $_ => 1 } @testing_basenames; { find( { - wanted => sub { ++$::count_tb if $tb{$_}; }, + wanted => sub { s#\.$## if ($^O eq 'VMS' && $_ ne '.'); + ++$::count_tb if $tb{$_}; + }, $bad_option => undef, }, File::Spec->curdir @@ -296,7 +298,9 @@ my %tb = map { $_ => 1 } @testing_basenames; { finddepth( { - wanted => sub { ++$::count_tb if $tb{$_}; }, + wanted => sub { s#\.$## if ($^O eq 'VMS' && $_ ne '.'); + ++$::count_tb if $tb{$_}; + }, $bad_option => undef, $second_bad_option => undef, }, diff --git a/vms/gen_shrfls.pl b/vms/gen_shrfls.pl index c3842c03d9..7b9f606194 100644 --- a/vms/gen_shrfls.pl +++ b/vms/gen_shrfls.pl @@ -180,18 +180,17 @@ my (@symfiles, $drvrname); if ($ENV{PERLSHR_USE_GSMATCH}) { if ($ENV{PERLSHR_USE_GSMATCH} eq 'INCLUDE_COMPILE_OPTIONS') { # Build up a major ID. Since on Alpha it can only be 8 bits, we encode - # the version number in the top 5 bits and use the bottom 3 for build - # options most likely to cause incompatibilities. Breaks at Perl 5.32. + # the version number in the top 6 bits and use the bottom 2 for build + # options most likely to cause incompatibilities. Breaks at Perl 5.64. my ($ver, $sub) = $] =~ /\.(\d\d\d)(\d\d\d)/; $ver += 0; $sub += 0; my $gsmatch = ($ver % 2 == 1) ? "EQUAL" : "LEQUAL"; # Force an equal match for # dev, but be more forgiving # for releases - $ver <<= 3; + $ver <<= 2; $ver += 1 if $debugging_enabled; # If DEBUGGING is set $ver += 2 if $use_threads; # if we're threaded - $ver += 4 if $use_mymalloc; # if we're using perl's malloc print OPTBLD "GSMATCH=$gsmatch,$ver,$sub\n"; } else { -- Perl5 Master Repository
