Skip to content

Commit

Permalink
Drop support for XSLoader below 5.6
Browse files Browse the repository at this point in the history
Now we're using our, there's no value to attempting to support
versions below 5.6.
  • Loading branch information
toddr authored and jkeenan committed Jun 20, 2021
1 parent f0e0f25 commit 3fffe6c
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 55 deletions.
8 changes: 3 additions & 5 deletions dist/XSLoader/Makefile.PL
Expand Up @@ -8,6 +8,8 @@
use strict;
use warnings;

use v5.6;

use ExtUtils::MakeMaker;
use ExtUtils::MM_Unix;

Expand Down Expand Up @@ -101,11 +103,7 @@ WriteMakefile(
my @perls = ($orig_perl);
push @perls, qw(bleadperl
perl5.6.1
perl5.6.0
perl5.005_03
perl5.004_05
perl5.004_04
perl5.004)
perl5.6.0)
if $ENV{PERL_TEST_ALL};

my $out;
Expand Down
48 changes: 0 additions & 48 deletions dist/XSLoader/XSLoader_pm.PL
Expand Up @@ -20,29 +20,6 @@ our $VERSION = "0.31"; # remember to update version in POD!
package DynaLoader;
EOT

# dlutils.c before 5.006 has this:
#
# #ifdef DEBUGGING
# dl_debug = SvIV( perl_get_sv("DynaLoader::dl_debug", 0x04) );
# #endif
#
# where 0x04 is GV_ADDWARN, which causes a warning to be issued by the call
# into XS below, if DynaLoader.pm hasn't been loaded.
# It was changed to 0 in the commit(s) that added XSLoader to the core
# (9cf41c4d23a47c8b and its parent 9426adcd48655815)
# Hence to backport XSLoader to work silently with earlier DynaLoaders we need
# to ensure that the variable exists:

print OUT <<'EOT' if $] < 5.006;
# enable debug/trace messages from DynaLoader perl code
$dl_debug = $ENV{PERL_DL_DEBUG} || 0 unless defined $dl_debug;
EOT

print OUT <<'EOT';
# No prizes for guessing why we don't say 'bootstrap DynaLoader;' here.
# NOTE: All dl_*.xs (including dl_none.xs) define a dl_error() XSUB
boot_DynaLoader('DynaLoader') if defined(&boot_DynaLoader) &&
Expand Down Expand Up @@ -211,42 +188,17 @@ print OUT <<'EOT';
push(@DynaLoader::dl_shared_objects, $file); # record files loaded
return &$xs(@_);
}
EOT
# Can't test with DynaLoader->can('bootstrap_inherit') when building in the
# core, as XSLoader gets built before DynaLoader.
if ($] >= 5.006) {
print OUT <<'EOT';
sub bootstrap_inherit {
require DynaLoader;
goto \&DynaLoader::bootstrap_inherit;
}
EOT
} else {
print OUT <<'EOT';
sub bootstrap_inherit {
# Versions of DynaLoader prior to 5.6.0 don't have bootstrap_inherit.
package DynaLoader;
my $module = $_[0];
local *DynaLoader::isa = *{"$module\::ISA"};
local @DynaLoader::isa = (@DynaLoader::isa, 'DynaLoader');
# Cannot goto due to delocalization. Will report errors on a wrong line?
require DynaLoader;
DynaLoader::bootstrap(@_);
}
EOT
}

print OUT <<'EOT';
1;
__END__
=head1 NAME
Expand Down
2 changes: 0 additions & 2 deletions dist/XSLoader/t/XSLoader.t
Expand Up @@ -12,8 +12,6 @@ BEGIN {
die "Test::More not available\n";
}

plan(skip_all => "these tests needs Perl 5.5+") if $] < 5.005;

use Config;
foreach (qw/SDBM_File GDBM_File ODBM_File NDBM_File DB_File/) {
if ($Config{extensions} =~ /\b$_\b/) {
Expand Down

0 comments on commit 3fffe6c

Please sign in to comment.