aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang/perl/files/perl-5.10.1-prefix-soname.patch')
-rw-r--r--dev-lang/perl/files/perl-5.10.1-prefix-soname.patch51
1 files changed, 51 insertions, 0 deletions
diff --git a/dev-lang/perl/files/perl-5.10.1-prefix-soname.patch b/dev-lang/perl/files/perl-5.10.1-prefix-soname.patch
new file mode 100644
index 0000000..85f02a9
--- /dev/null
+++ b/dev-lang/perl/files/perl-5.10.1-prefix-soname.patch
@@ -0,0 +1,51 @@
+contrast 0005-gentoo_create-libperl-soname.diff
+
+don't just assume all linkers are GNU, use the right approach instead.
+
+--- Makefile.SH
++++ Makefile.SH
+@@ -78,7 +78,7 @@
+ ${api_revision}.${api_version}.${api_subversion} \
+ -current_version \
+ ${revision}.${patchlevel}.${subversion} \
+- -install_name \$(shrpdir)/\$@"
++ -install_name \$(shrpdir)/libperl.${revision}.${patchlevel}.dylib"
+ ;;
+ cygwin*)
+ shrpldflags="$shrpldflags -Wl,--out-implib=libperl.dll.a -Wl,--image-base,0x52000000"
+@@ -86,13 +86,15 @@
+ ;;
+ sunos*)
+ linklibperl="-lperl"
++ shrpldflags="$shrpldflags -Wl,-soname -Wl,libperl.so.${revision}.${patchlevel}"
+ ;;
+ netbsd*|freebsd[234]*|openbsd*|dragonfly*)
+ linklibperl="-L. -lperl"
++ shrpldflags="$shrpldflags -Wl,-soname -Wl,libperl.so.${revision}.${patchlevel}"
+ ;;
+ interix*)
+ linklibperl="-L. -lperl"
+- shrpldflags="$shrpldflags -Wl,--image-base,0x57000000"
++ shrpldflags="$shrpldflags -Wl,--image-base,0x57000000 -Wl,-soname -Wl,libperl.so.${revision}.${patchlevel}"
+ ;;
+ aix*)
+ case "$cc" in
+@@ -130,6 +132,9 @@
+ linklibperl='libperl.x'
+ DPERL_EXTERNAL_GLOB=''
+ ;;
++ linux*)
++ shrpldflags="$shrpldflags -Wl,-soname -Wl,libperl.so.${revision}.${patchlevel}"
++ ;;
+ esac
+ case "$ldlibpthname" in
+ '') ;;
+@@ -735,7 +740,7 @@
+ true)
+ $spitshell >>$Makefile <<'!NO!SUBS!'
+ rm -f $@
+- $(LD) -o $@ $(SHRPLDFLAGS) $(obj) $(DYNALOADER) $(libs) -Wl,-soname -Wl,libperl.so.`echo $(LIBPERL) | cut -d. -f3,4`
++ $(LD) -o $@ $(SHRPLDFLAGS) $(obj) $(DYNALOADER) $(libs)
+ !NO!SUBS!
+ case "$osname" in
+ aix)