xref: /openbmc/openbmc/poky/meta/recipes-devtools/perl/files/perl-dynloader.patch (revision 8460358c3d24c71d9d38fd126c745854a6301564)
1*8460358cSPatrick WilliamsFrom 25a26c52c320e699b37a7ad1f4f045bc8aa4cb00 Mon Sep 17 00:00:00 2001
2*8460358cSPatrick WilliamsFrom: Richard Purdie <richard@openedhand.com>
3*8460358cSPatrick WilliamsDate: Sun, 27 May 2007 21:04:11 +0000
4*8460358cSPatrick WilliamsSubject: [PATCH] perl: 5.8.7 -> 5.8.8 (from OE)
5*8460358cSPatrick Williams
615ae2509SBrad BishopUpstream-Status: Inappropriate [embedded specific]
715ae2509SBrad Bishop
815ae2509SBrad BishopAllow the location that .so files are searched for for dynamic
915ae2509SBrad Bishoploading to be changed via an environment variable. This is to allow
1015ae2509SBrad Bishopus to load .so's from the host system while building for the target
1115ae2509SBrad Bishopsystem.
1215ae2509SBrad Bishop
1315ae2509SBrad BishopUpdate by Nitin A Kamble <nitin.a.kamble@intel.com> 2011/04/21
14*8460358cSPatrick Williams---
15*8460358cSPatrick Williams dist/XSLoader/XSLoader_pm.PL | 18 ++++++++++++++++++
16*8460358cSPatrick Williams 1 file changed, 18 insertions(+)
1715ae2509SBrad Bishop
18*8460358cSPatrick Williamsdiff --git a/dist/XSLoader/XSLoader_pm.PL b/dist/XSLoader/XSLoader_pm.PL
19*8460358cSPatrick Williamsindex ff5ca31..0d50803 100644
20*8460358cSPatrick Williams--- a/dist/XSLoader/XSLoader_pm.PL
21*8460358cSPatrick Williams+++ b/dist/XSLoader/XSLoader_pm.PL
22*8460358cSPatrick Williams@@ -32,6 +32,24 @@ sub load {
2315ae2509SBrad Bishop     my ($caller, $modlibname) = caller();
2415ae2509SBrad Bishop     my $module = $caller;
2515ae2509SBrad Bishop
2615ae2509SBrad Bishop+    # OE: Allow env to form dynamic loader to look in a different place
2715ae2509SBrad Bishop+    # This is so it finds the host .so files, not the targets
2815ae2509SBrad Bishop+    if (defined $ENV{PERLHOSTLIB})
2915ae2509SBrad Bishop+    {
3015ae2509SBrad Bishop+        my $hostlib = $ENV{PERLHOSTLIB};
3115ae2509SBrad Bishop+        my $hostarchlib = $ENV{PERLHOSTARCHLIB};
3215ae2509SBrad Bishop+        print STDERR "*** Module name IN: $modlibname\n";
3378b72798SAndrew Geissler+        my ($p1, $p2, $p3, $p4, $p5, $p6, $p7) = $modlibname =~ m/(^(.*lib\w*\/)?)((perl5\/[0-9\.]*\/)?)(([^\/]*)\/)?(.*)$/;
3415ae2509SBrad Bishop+        print STDERR "*** p1: $p1  p3: $p3  p5: $p5 p7: $p7\n";
3515ae2509SBrad Bishop+        if ( $p1 ne "" ) {
3615ae2509SBrad Bishop+            $modlibname = $hostlib.$p7;
3715ae2509SBrad Bishop+        }
3815ae2509SBrad Bishop+        if ( $p6 ne "" ) {
3915ae2509SBrad Bishop+            $modlibname = $hostarchlib.$p7;
4015ae2509SBrad Bishop+        }
4115ae2509SBrad Bishop+        print STDERR "*** Module name OUT: $modlibname\n";
4215ae2509SBrad Bishop+    }
4315ae2509SBrad Bishop+
4415ae2509SBrad Bishop     if (@_) {
4515ae2509SBrad Bishop         $module = $_[0];
4615ae2509SBrad Bishop     } else {
47