summaryrefslogtreecommitdiff
path: root/dist/XSLoader
diff options
context:
space:
mode:
authorBrian Fraser <fraserbn@gmail.com>2013-05-15 08:52:18 -0300
committerBrian Fraser <fraserbn@gmail.com>2014-01-03 19:45:06 -0300
commitadedc077d57a220273128839bbe9b3289fdc5a1f (patch)
treed82812284d2c790c157a94a54b2533f08e2bea40 /dist/XSLoader
parent09d15bae7b456c0c9a2719462f699d5fdcf45aa0 (diff)
downloadperl-adedc077d57a220273128839bbe9b3289fdc5a1f.tar.gz
DynaLoader: Introduce d_libname_unique
Android's linker has some unusual behavior, in that it only uses the basename of a library in its cache. That means that, as far as dlopen() is concerned, the libraries for Hash::Util and List::Util, both of which are called Util.so, are the same. This commit teaches DynaLoader about d_libname_unique. When defined, it signals DynaLoader define a mod2fname sub that renames the .so files to something "unique" -- so for example, Hash/Util/Util.so becomes Hash/Util/PL_Hash__Util.so.
Diffstat (limited to 'dist/XSLoader')
-rw-r--r--dist/XSLoader/XSLoader_pm.PL6
1 files changed, 4 insertions, 2 deletions
diff --git a/dist/XSLoader/XSLoader_pm.PL b/dist/XSLoader/XSLoader_pm.PL
index fb5707c29a..e382058a04 100644
--- a/dist/XSLoader/XSLoader_pm.PL
+++ b/dist/XSLoader/XSLoader_pm.PL
@@ -1,5 +1,7 @@
use strict;
use Config;
+# We require DynaLoader to make sure that mod2fname is loaded
+eval { require DynaLoader };
1 while unlink "XSLoader.pm";
open OUT, ">XSLoader.pm" or die $!;
@@ -8,7 +10,7 @@ print OUT <<'EOT';
package XSLoader;
-$VERSION = "0.16";
+$VERSION = "0.17";
#use strict;
@@ -201,7 +203,7 @@ XSLoader - Dynamically load C libraries into Perl code
=head1 VERSION
-Version 0.16
+Version 0.17
=head1 SYNOPSIS