summaryrefslogtreecommitdiff
path: root/packages/perl/perl-5.8.8/perl-dynloader.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/perl/perl-5.8.8/perl-dynloader.patch')
-rw-r--r--packages/perl/perl-5.8.8/perl-dynloader.patch23
1 files changed, 23 insertions, 0 deletions
diff --git a/packages/perl/perl-5.8.8/perl-dynloader.patch b/packages/perl/perl-5.8.8/perl-dynloader.patch
new file mode 100644
index 0000000000..e2dc774d5e
--- /dev/null
+++ b/packages/perl/perl-5.8.8/perl-dynloader.patch
@@ -0,0 +1,23 @@
+Allow the location that .so files are searched for for dynamic
+loading to be changed via an environment variable. This is to allow
+us to load .so's from the host system while building for the target
+system.
+
+--- perl-5.8.8/ext/DynaLoader/XSLoader_pm.PL 2007/04/20 09:03:08 1.1
++++ perl-5.8.8/ext/DynaLoader/XSLoader_pm.PL 2007/04/20 09:41:28
+@@ -65,6 +65,15 @@
+ print OUT <<'EOT';
+ my $modpname = join('/',@modparts);
+ my $modlibname = (caller())[1];
++ # OE: Allow env to form dynamic loader to look in a different place
++ # This is so it finds the host .so files, not the targets
++ if (defined $ENV{PERLHOSTLIB})
++ {
++ my $hostlib = $ENV{PERLHOSTLIB};
++ print STDERR "*** Module name IN: $modlibname\n";
++ $modlibname =~ s#(?<!/)(\.\./)*lib/#$hostlib#g;
++ print STDERR "*** Module name OUT: $modlibname\n";
++ }
+ my $c = @modparts;
+ $modlibname =~ s,[\\/][^\\/]+$,, while $c--; # Q&D basename
+ my $file = "$modlibname/auto/$modpname/$modfname.$dl_dlext";