summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2016-02-25 04:49:22 +0900
committerMike Frysinger <vapier@gentoo.org>2016-02-25 07:08:56 +0900
commitca901d8defa4b4c3c1ddeb129f8fdf15268625ab (patch)
tree3f604b9d0ea7846dff8b5ee0f9abf9e2c0a69651 /dev-libs/gmp
parentdev-ruby/termcolor: Remove old (diff)
downloadgentoo-ca901d8defa4b4c3c1ddeb129f8fdf15268625ab.tar.gz
gentoo-ca901d8defa4b4c3c1ddeb129f8fdf15268625ab.tar.bz2
gentoo-ca901d8defa4b4c3c1ddeb129f8fdf15268625ab.zip
dev-libs/gmp: work around broken clang during noexecstack detection
Diffstat (limited to 'dev-libs/gmp')
-rw-r--r--dev-libs/gmp/files/gmp-6.1.0-noexecstack-detect.patch23
-rw-r--r--dev-libs/gmp/gmp-6.1.0.ebuild2
2 files changed, 25 insertions, 0 deletions
diff --git a/dev-libs/gmp/files/gmp-6.1.0-noexecstack-detect.patch b/dev-libs/gmp/files/gmp-6.1.0-noexecstack-detect.patch
new file mode 100644
index 000000000000..558ba60d080a
--- /dev/null
+++ b/dev-libs/gmp/files/gmp-6.1.0-noexecstack-detect.patch
@@ -0,0 +1,23 @@
+gmp's -Wa,--noexecstack check is based on glibc's, so backport a change
+that went into it there:
+https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=215a87451d1fd623fd2699fa57f16f8ab6f6a2f3
+https://sourceware.org/bugzilla/show_bug.cgi?id=6428
+
+this is to workaround broken clang assembler that fails w/CFLAGS=-g:
+http://crbug.com/585930
+https://llvm.org/bugs/show_bug.cgi?id=11740
+
+patch has been sent upstream too:
+https://gmplib.org/list-archives/gmp-bugs/2016-February/003916.html
+
+--- a/configure
++++ b/configure
+@@ -11339,7 +11339,7 @@ EOF
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; } \
+ && grep .note.GNU-stack conftest.s >/dev/null \
+- && { ac_try='${CC} $CFLAGS $CPPFLAGS -Wa,--noexecstack
++ && { ac_try='${CC} $ASMFLAGS -Wa,--noexecstack
+ -c -o conftest.o conftest.s >/dev/null'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
diff --git a/dev-libs/gmp/gmp-6.1.0.ebuild b/dev-libs/gmp/gmp-6.1.0.ebuild
index 6bc3b8fff4d5..e97c46f7cb2b 100644
--- a/dev-libs/gmp/gmp-6.1.0.ebuild
+++ b/dev-libs/gmp/gmp-6.1.0.ebuild
@@ -38,6 +38,8 @@ src_prepare() {
# note: we cannot run autotools here as gcc depends on this package
elibtoolize
+ epatch "${FILESDIR}"/${PN}-6.1.0-noexecstack-detect.patch
+
# GMP uses the "ABI" env var during configure as does Gentoo (econf).
# So, to avoid patching the source constantly, wrap things up.
mv configure configure.wrapped || die