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 committed Feb 4, 2021
1 parent 317c45d commit 7ff86f9
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 58 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
52 changes: 2 additions & 50 deletions dist/XSLoader/XSLoader_pm.PL
Expand Up @@ -16,33 +16,10 @@ no strict 'refs';
package XSLoader;
our $VERSION = "0.31"; # remember to update version in POD!
our $VERSION = "0.32"; # 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 All @@ -255,7 +207,7 @@ XSLoader - Dynamically load C libraries into Perl code
=head1 VERSION
Version 0.31
Version 0.32
=head1 SYNOPSIS
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
2 changes: 1 addition & 1 deletion ext/DynaLoader/DynaLoader_pm.PL
Expand Up @@ -90,7 +90,7 @@ package DynaLoader;
# Tim.Bunce@ig.co.uk, August 1994
BEGIN {
our $VERSION = '1.50';
our $VERSION = '1.51';
}
our (@dl_library_path, @dl_resolve_using, @dl_require_symbols,
Expand Down

0 comments on commit 7ff86f9

Please sign in to comment.