summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/DynaLoader.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlperl/lib/DynaLoader.pm')
-rw-r--r--Master/tlpkg/tlperl/lib/DynaLoader.pm28
1 files changed, 10 insertions, 18 deletions
diff --git a/Master/tlpkg/tlperl/lib/DynaLoader.pm b/Master/tlpkg/tlperl/lib/DynaLoader.pm
index 92b42e9eac3..87df3b55f50 100644
--- a/Master/tlpkg/tlperl/lib/DynaLoader.pm
+++ b/Master/tlpkg/tlperl/lib/DynaLoader.pm
@@ -1,5 +1,5 @@
-# Generated from DynaLoader_pm.PL
+# Generated from DynaLoader_pm.PL, this file is unique for every OS
package DynaLoader;
@@ -16,7 +16,7 @@ package DynaLoader;
# Tim.Bunce@ig.co.uk, August 1994
BEGIN {
- $VERSION = '1.32';
+ $VERSION = '1.38';
}
use Config;
@@ -44,7 +44,6 @@ sub dl_load_flags { 0x00 }
$do_expand = 0;
@dl_require_symbols = (); # names of symbols we need
-@dl_resolve_using = (); # names of files to link with
@dl_library_path = (); # path to look for files
#XSLoader.pm may have added elements before we were required
@@ -52,9 +51,6 @@ $do_expand = 0;
#@dl_librefs = (); # things we have loaded
#@dl_modules = (); # Modules we have loaded
-# This is a fix to support DLD's unfortunate desire to relink -lc
-@dl_resolve_using = dl_findfile('-lc') if $dlsrc eq "dl_dld.xs";
-
# Initialise @dl_library_path with the 'standard' library path
# for this platform as determined by Configure.
@@ -128,6 +124,7 @@ sub bootstrap {
my @modparts = split(/::/,$module);
my $modfname = $modparts[-1];
+ my $modfname_orig = $modfname; # For .bs file search
# Some systems have restrictions on files names for DLL's etc.
# mod2fname returns appropriate file base name (typically truncated)
@@ -142,9 +139,10 @@ sub bootstrap {
"(auto/$modpname/$modfname.$dl_dlext)\n"
if $dl_debug;
+ my $dir;
foreach (@INC) {
- my $dir = "$_/auto/$modpname";
+ $dir = "$_/auto/$modpname";
next unless -d $dir; # skip over uninteresting directories
@@ -169,7 +167,9 @@ sub bootstrap {
# Execute optional '.bootstrap' perl script for this module.
# The .bs file can be used to configure @dl_resolve_using etc to
# match the needs of the individual module on this architecture.
- my $bs = $file;
+ # N.B. The .bs file does not following the naming convention used
+ # by mod2fname.
+ my $bs = "$dir/$modfname_orig";
$bs =~ s/(\.\w+)?(;\d*)?$/\.bs/; # look for .bs 'beside' the library
if (-s $bs) { # only read file if it's not empty
print STDERR "BS: $bs ($^O, $dlsrc)\n" if $dl_debug;
@@ -195,12 +195,6 @@ sub bootstrap {
push(@dl_librefs,$libref); # record loaded object
- my @unresolved = dl_undef_symbols();
- if (@unresolved) {
- require Carp;
- Carp::carp("Undefined symbols present after loading $file: @unresolved\n");
- }
-
$boot_symbol_ref = dl_find_symbol($libref, $bootname) or
croak("Can't find '$bootname' symbol in $file\n");
@@ -217,7 +211,6 @@ sub bootstrap {
}
sub dl_findfile {
- # Read ext/DynaLoader/DynaLoader.doc for detailed information.
# This function does not automatically consider the architecture
# or the perl library auto directories.
my (@args) = @_;
@@ -262,7 +255,6 @@ sub dl_findfile {
push(@names,"$_.$dl_so") unless m/\.$dl_so$/o;
push(@names,"lib$_.$dl_so") unless m:/:;
- push(@names,"$_.a") if !m/\.a$/ and $dlsrc eq "dl_dld.xs";
push(@names, $_);
}
my $dirsep = '/';
@@ -320,7 +312,7 @@ sub dl_find_symbol_anywhere
my $sym = shift;
my $libref;
foreach $libref (@dl_librefs) {
- my $symref = dl_find_symbol($libref,$sym);
+ my $symref = dl_find_symbol($libref,$sym,1);
return $symref if $symref;
}
return undef;
@@ -676,7 +668,7 @@ Syntax:
Create a new Perl external subroutine named $perl_name using $symref as
a pointer to the function which implements the routine. This is simply
-a direct call to newXSUB(). Returns a reference to the installed
+a direct call to newXS()/newXS_flags(). Returns a reference to the installed
function.
The $filename parameter is used by Perl to identify the source file for