xref: /OK3568_Linux_fs/yocto/poky/meta/recipes-devtools/perl/files/perl-dynloader.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunUpstream-Status: Inappropriate [embedded specific]
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunAllow the location that .so files are searched for for dynamic
4*4882a593Smuzhiyunloading to be changed via an environment variable. This is to allow
5*4882a593Smuzhiyunus to load .so's from the host system while building for the target
6*4882a593Smuzhiyunsystem.
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunUpdate by Nitin A Kamble <nitin.a.kamble@intel.com> 2011/04/21
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunIndex: perl-5.24.1/dist/XSLoader/XSLoader_pm.PL
11*4882a593Smuzhiyun===================================================================
12*4882a593Smuzhiyun--- perl-5.24.1.orig/dist/XSLoader/XSLoader_pm.PL
13*4882a593Smuzhiyun+++ perl-5.24.1/dist/XSLoader/XSLoader_pm.PL
14*4882a593Smuzhiyun@@ -52,6 +52,24 @@ sub load {
15*4882a593Smuzhiyun     my ($caller, $modlibname) = caller();
16*4882a593Smuzhiyun     my $module = $caller;
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun+    # OE: Allow env to form dynamic loader to look in a different place
19*4882a593Smuzhiyun+    # This is so it finds the host .so files, not the targets
20*4882a593Smuzhiyun+    if (defined $ENV{PERLHOSTLIB})
21*4882a593Smuzhiyun+    {
22*4882a593Smuzhiyun+        my $hostlib = $ENV{PERLHOSTLIB};
23*4882a593Smuzhiyun+        my $hostarchlib = $ENV{PERLHOSTARCHLIB};
24*4882a593Smuzhiyun+        print STDERR "*** Module name IN: $modlibname\n";
25*4882a593Smuzhiyun+        ($p1, $p2, $p3, $p4, $p5, $p6, $p7) = $modlibname =~ m/(^(.*lib\w*\/)?)((perl5\/[0-9\.]*\/)?)(([^\/]*)\/)?(.*)$/;
26*4882a593Smuzhiyun+        print STDERR "*** p1: $p1  p3: $p3  p5: $p5 p7: $p7\n";
27*4882a593Smuzhiyun+        if ( $p1 ne "" ) {
28*4882a593Smuzhiyun+            $modlibname = $hostlib.$p7;
29*4882a593Smuzhiyun+        }
30*4882a593Smuzhiyun+        if ( $p6 ne "" ) {
31*4882a593Smuzhiyun+            $modlibname = $hostarchlib.$p7;
32*4882a593Smuzhiyun+        }
33*4882a593Smuzhiyun+        print STDERR "*** Module name OUT: $modlibname\n";
34*4882a593Smuzhiyun+    }
35*4882a593Smuzhiyun+
36*4882a593Smuzhiyun     if (@_) {
37*4882a593Smuzhiyun         $module = $_[0];
38*4882a593Smuzhiyun     } else {
39