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>
This commit is contained in:
Sergei Trofimovich
2017-12-05 22:19:47 +00:00
parent bc7b8a45ed
commit b14c692fa0
3 changed files with 15 additions and 0 deletions

View File

@@ -796,6 +796,11 @@ glibc_do_configure() {
if version_is_at_least 2.25 ; then
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

View File

@@ -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

View File

@@ -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