From 916a5d777133b506bba375779917bc9b3b0ad3e6 Mon Sep 17 00:00:00 2001 From: Christian Wiese Date: Wed, 26 Dec 2012 22:43:09 +0100 Subject: [PATCH] perl: added patch to fix the build of a shared libperl --- ...erl-5.16.0-cross-0.7-make-shared-lib.patch | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 perl/perl/perl-5.16.0-cross-0.7-make-shared-lib.patch diff --git a/perl/perl/perl-5.16.0-cross-0.7-make-shared-lib.patch b/perl/perl/perl-5.16.0-cross-0.7-make-shared-lib.patch new file mode 100644 index 000000000..71240fae0 --- /dev/null +++ b/perl/perl/perl-5.16.0-cross-0.7-make-shared-lib.patch @@ -0,0 +1,78 @@ +# --- SDE-COPYRIGHT-NOTE-BEGIN --- +# This copyright note is auto-generated by ./scripts/Create-CopyPatch. +# +# Filename: package/.../perl/perl-5.16.0-cross-0.7-make-shared-lib.patch +# Copyright (C) 2012 The OpenSDE Project +# +# More information can be found in the files COPYING and README. +# +# This patch file is dual-licensed. It is available under the license the +# patched project is licensed under, as long as it is an OpenSource license +# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms +# of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# --- SDE-COPYRIGHT-NOTE-END --- + +Description: Add a 'shared-lib" make target + +When using the perl cross patchset from http://perlcross.berlios.de/ +the build flag -Duseshrplib doesn't seem to be honored. +This is a workaround adding a 'shared-lib' make target which can be +can be used to build a shared libperl. + +diff --git a/Makefile b/Makefile +index 273102b..3b017a4 100644 +--- a/Makefile ++++ b/Makefile +@@ -162,6 +162,11 @@ libperl$a: op$o perl$o $(obj) $(dynaloader_o) + $(AR) cru $@ $(filter %.o,$^) + $(RANLIB) $@ + ++shared-lib: libperl.$(so).$(ver_major).$(ver_minor).$(ver_micro) ++ ++libperl.$(so).$(ver_major).$(ver_minor).$(ver_micro): op$o perl$o $(obj) $(dynaloader_o) ++ $(CC) -shared $(filter %.o,$^) -o $@ ++ + perl.o: git_version.h + + preplibrary: miniperl$X $(CONFIGPM) lib/re.pm +diff --git a/Makefile.config.SH b/Makefile.config.SH +index ddf4680..47e1df2 100755 +--- a/Makefile.config.SH ++++ b/Makefile.config.SH +@@ -147,5 +147,9 @@ if [ "$disabledmods" == 'define' ]; then + cat >> Makefile.config << END + disabled_dynamic_ext=$disabled_dynamic_ext + disabled_nonxs_ext=$disabled_nonxs_ext ++ ++ver_major=$PERL_REVISION ++ver_minor=$PERL_VERSION ++ver_micro=$PERL_SUBVERSION + END + fi +diff --git a/Makefile.config.SH b/Makefile.config.SH +index 47e1df2..e2783df 100755 +--- a/Makefile.config.SH ++++ b/Makefile.config.SH +@@ -116,6 +116,7 @@ o = $_o + x = $_exe + O = $_o + X = $_exe ++so = $dlext + + dynaloader = $dynaloader + END +diff --git a/Makefile b/Makefile +index 3b017a4..1ee1cd7 100644 +--- a/Makefile ++++ b/Makefile +@@ -165,7 +165,7 @@ libperl$a: op$o perl$o $(obj) $(dynaloader_o) + shared-lib: libperl.$(so).$(ver_major).$(ver_minor).$(ver_micro) + + libperl.$(so).$(ver_major).$(ver_minor).$(ver_micro): op$o perl$o $(obj) $(dynaloader_o) +- $(CC) -shared $(filter %.o,$^) -o $@ ++ $(CC) -shared -fPIC $(LDFLAGS) $(filter %.o,$^) -o $@ + + perl.o: git_version.h +