summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Trofimovich <slyfox@gentoo.org>2017-12-05 22:19:47 +0000
committerSergei Trofimovich <slyfox@gentoo.org>2017-12-06 22:15:25 +0000
commitb14c692fa08dc7bc53a81d32d36ddb1231769040 (patch)
treee6863b1518d6a312880d9c6a511c754b3f75eed2 /sys-libs
parentdev-python/construct: new comaintainer. (diff)
downloadgentoo-b14c692fa08dc7bc53a81d32d36ddb1231769040.tar.gz
gentoo-b14c692fa08dc7bc53a81d32d36ddb1231769040.tar.bz2
gentoo-b14c692fa08dc7bc53a81d32d36ddb1231769040.zip
sys-libs/glibc: disable stack protection by default on mips* targets
Otherwise dlopen() crashes (found on 'top' from 'procps' package). Original backtrace from qemu-mipsn32 (fails the same way on native host): ``` Program received signal SIGSEGV, Segmentation fault. 0x408cb908 in _dlerror_run (operate=operate@entry=0x408cadf0 <dlopen_doit>, args=args@entry=0x407feb28) at dlerror.c:163 163 result->errcode = _dl_catch_error (&result->objname, &result->errstring, (gdb) bt #0 0x408cb908 in _dlerror_run (operate=operate@entry=0x408cadf0 <dlopen_doit>, args=args@entry=0x407feb28) at dlerror.c:163 #1 0x408caf4c in __dlopen (file=file@entry=0x10012d58 "libnuma.so", mode=mode@entry=1) at dlopen.c:87 #2 0x1000306c in before (me=0x407ff382 "/usr/mips64-unknown-linux-gnu/usr/bin/top") at top/top.c:3308 #3 0x10001a10 in main (dont_care_argc=<optimized out>, argv=0x407ff1a4) at top/top.c:5721 ``` Reported-by: Matt Turner Bug: https://bugs.gentoo.org/640130 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Diffstat (limited to 'sys-libs')
-rw-r--r--sys-libs/glibc/glibc-2.26-r3.ebuild5
-rw-r--r--sys-libs/glibc/glibc-9999.ebuild5
2 files changed, 10 insertions, 0 deletions
diff --git a/sys-libs/glibc/glibc-2.26-r3.ebuild b/sys-libs/glibc/glibc-2.26-r3.ebuild
index c2f060799403..0edb97902c85 100644
--- a/sys-libs/glibc/glibc-2.26-r3.ebuild
+++ b/sys-libs/glibc/glibc-2.26-r3.ebuild
@@ -316,6 +316,11 @@ glibc_do_configure() {
popd > /dev/null
case ${CTARGET} in
+ mips*)
+ # dlopen() detects stack smash on mips n32 ABI.
+ # Cause is unknown: https://bugs.gentoo.org/640130
+ myconf+=( --enable-stack-protector=no )
+ ;;
powerpc-*)
# Currently gcc on powerpc32 generates invalid code for
# __builtin_return_address(0) calls. Normally programs
diff --git a/sys-libs/glibc/glibc-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild
index 60b17cfe67bc..e29a0778fd5d 100644
--- a/sys-libs/glibc/glibc-9999.ebuild
+++ b/sys-libs/glibc/glibc-9999.ebuild
@@ -316,6 +316,11 @@ glibc_do_configure() {
local myconf=()
case ${CTARGET} in
+ mips*)
+ # dlopen() detects stack smash on mips n32 ABI.
+ # Cause is unknown: https://bugs.gentoo.org/640130
+ myconf+=( --enable-stack-protector=no )
+ ;;
powerpc-*)
# Currently gcc on powerpc32 generates invalid code for
# __builtin_return_address(0) calls. Normally programs