diff options
Diffstat (limited to 'Master/tlpkg/tlperl/lib/DynaLoader.pm')
-rw-r--r-- | Master/tlpkg/tlperl/lib/DynaLoader.pm | 28 |
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 |