summaryrefslogtreecommitdiff
path: root/hints/solaris_2.sh
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2015-12-16 16:35:44 -0500
committerJarkko Hietaniemi <jhi@iki.fi>2015-12-16 18:07:13 -0500
commit68bcb860c817a4691f45504f9563923c5ab2f6da (patch)
treedde1c235bf7612243244e4135625b2b5648b97ff /hints/solaris_2.sh
parent817141f86f1dbef361684d7f42ab71cb4b9efe75 (diff)
downloadperl-68bcb860c817a4691f45504f9563923c5ab2f6da.tar.gz
Explicitly build the shared Perl library in Solaris and variants.
Symptom of failure: in openindiana "make" fails: ... ./perl -Ilib -f pod/buildtoc -q Can't load 'lib/auto/re/re.so' for module re: ld.so.1: perl: fatal: relocation error: file lib/auto/re/re.so: symbol PL_localizing: referenced symbol not found at lib/XSLoader.pm line 71. at lib/re.pm line 88. ... Running the above command with 'env LD_DEBUG=files ...' shows that there are many other symbol lookup failures, the one above is just the last one before bailing. If configured explicitly with -Duseshrplib, openindiana build succeeds. Curiously, while the hints/solaris_2.sh (which openindiana uses) does not specify useshrplib, Oracle/Sun builds/has been building their perl with useshrplib since Perl 5.6.1 or thereabouts (source: Alan Burlison). Using shared libraries is strongly recommended in Solaris in general (source: the same). Tested in: - Solaris 5.10/i386 with solstudio 12.2 and gcc 4.8.0 - Solaris 5.10/sparc with solarisstudio 12.3 and gcc 4.9.2 - OpenIndiana 5.11/i386 with solarisstudio 12.3 and gcc 4.5.0
Diffstat (limited to 'hints/solaris_2.sh')
-rw-r--r--hints/solaris_2.sh6
1 files changed, 6 insertions, 0 deletions
diff --git a/hints/solaris_2.sh b/hints/solaris_2.sh
index 2f700d5a78..ba368e6f3b 100644
--- a/hints/solaris_2.sh
+++ b/hints/solaris_2.sh
@@ -723,3 +723,9 @@ case "$cc" in
;;
esac
+# Oracle/Sun builds their Perl shared since 5.6.1, and they also
+# strongly recommend using shared libraries in general.
+#
+# Furthermore, OpenIndiana seems to effectively require building perl
+# shared, or otherwise perl scripts won't even find the Perl library.
+useshrplib='true'