aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoberto Oliveira <robertoguimaraes8@gmail.com>2017-06-30 13:36:52 +0000
committerWilliam Pitcock <nenolod@dereferenced.org>2017-06-30 21:51:47 +0000
commit529c9fdc1bdefaaa8dda3a142ce453a8aeb84d29 (patch)
treea864f1d504e0f107e4265e49a9fa56da9c690c43
parentbcd5c26f74d34fa70d0c069be434a465efa7ab53 (diff)
community/ocaml: fix segfault in ppc64le and enable build
Since ocaml 4.04, ocaml commands start to point to native-compiled instead of the byte-code compiled, e.g. ocamlc points to the native-compiled ocamlc.opt. This patch adds -no-pie to all ocaml compiled to native code (for ppc64le), fixing the segfault problem that was happening.
-rw-r--r--community/ocaml/APKBUILD6
-rw-r--r--community/ocaml/fix-segfault-in-ppc64le.patch12
2 files changed, 16 insertions, 2 deletions
diff --git a/community/ocaml/APKBUILD b/community/ocaml/APKBUILD
index 4cc57292927..6ee850920e6 100644
--- a/community/ocaml/APKBUILD
+++ b/community/ocaml/APKBUILD
@@ -5,7 +5,7 @@ pkgver=4.04.2
pkgrel=0
pkgdesc="Main implementation of the Caml programming language"
url="http://caml.inria.fr"
-arch="all !x86 !armhf !ppc64le !s390x"
+arch="all !x86 !armhf !s390x"
license="LGPLv2"
makedepends="ncurses-dev zlib-dev gdbm-dev"
depends="ncurses-dev"
@@ -16,6 +16,7 @@ source="http://caml.inria.fr/pub/distrib/ocaml-${pkgver%.*}/$pkgname-$pkgver.tar
020_all_configure.patch
050_all_objinfoldflags.patch
fix-mcontext-fields.patch
+ fix-segfault-in-ppc64le.patch
"
builddir="$srcdir/$pkgname-$pkgver"
@@ -60,4 +61,5 @@ sha512sums="c02e9353e8e62154ca683027c005154a7f280034d1ec9184ee52286d4a41852ba70f
71ac807fb1173863b9dcf8e5fb4e651e0155d6cd0e4b327f5457b83fc09e1b5fbe34150c5d8ccd24f0faff1a8419f5ed8310aa60af1f38c2766ccc37dc6c3835 010_all_execstacks.patch
286758402517a1345556d374b0c3fc49eb93f1ec2bb9ccd2ffe1cc043f59d93b154f68eb9ff410020a15d3d8f148b27f249b7f97954b0e8a080cdd32d6014b4a 020_all_configure.patch
61d9cae6c8be7c16ed4aa6fafc533e2879caadbbe0e023775c1d735c0e54e66e94b9ffab8dc0b0b12c19ccf5c389e05f62af822014d202ae54c52943a0639753 050_all_objinfoldflags.patch
-75c67e143a4a05b334bdebbad48ded1e04d383d8ea9b747df2633a5af96b1115b502510faf57753c71bbac38fbc9d9746b167861a63b2fd295901db0d22ea317 fix-mcontext-fields.patch"
+75c67e143a4a05b334bdebbad48ded1e04d383d8ea9b747df2633a5af96b1115b502510faf57753c71bbac38fbc9d9746b167861a63b2fd295901db0d22ea317 fix-mcontext-fields.patch
+87e1c7dff0d550aa9855ec5c22226f7d6d3411256eef250bf985c1ef42089610ca6c3dd483c51c4edf656ebfc1728580b933c02f3043159ec01411e6f54e5a88 fix-segfault-in-ppc64le.patch"
diff --git a/community/ocaml/fix-segfault-in-ppc64le.patch b/community/ocaml/fix-segfault-in-ppc64le.patch
new file mode 100644
index 00000000000..369f448b959
--- /dev/null
+++ b/community/ocaml/fix-segfault-in-ppc64le.patch
@@ -0,0 +1,12 @@
+--- ocaml-4.04.2/configure
++++ ocaml-4.04.2/configure
+@@ -703,6 +703,9 @@
+ sharedcccompopts="-fPIC"
+ mksharedlib="$bytecc -shared"
+ bytecclinkopts="$bytecclinkopts -Wl,-E"
++ case "$target" in
++ powerpc64le*) bytecclinkopts="$bytecclinkopts -no-pie"
++ esac
+ byteccrpath="-Wl,-rpath,"
+ mksharedlibrpath="-Wl,-rpath,"
+ natdynlinkopts="-Wl,-E"