sys-libs/glibc: enable IFUNC support only on whitelisted ARCHes, bug #641216
authorSergei Trofimovich <slyfox@gentoo.org>
Wed, 20 Dec 2017 12:37:04 +0000 (12:37 +0000)
committerSergei Trofimovich <slyfox@gentoo.org>
Wed, 20 Dec 2017 12:37:21 +0000 (12:37 +0000)
Apply commit ac450135f29ef850303589af998373d936955476 to -9999 as well.
("sys-libs/glibc: enable IFUNC support only on whitelisted ARCHes, bug #641216")

Reported-by: Émeric Maschino
Bug: https://sourceware.org/PR22634
Closes: https://bugs.gentoo.org/641216
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Package-Manager: Portage-2.3.19, Repoman-2.3.6

sys-libs/glibc/glibc-9999.ebuild

index 68d17a224695fde6a9fca243bf3dc5732e23316e..a5bf3b51ebc141d6681232a31ec1f97fe73e41c3 100644 (file)
@@ -342,6 +342,17 @@ glibc_do_configure() {
        esac
        myconf+=( --enable-stackguard-randomization )
 
+       # Keep a whitelist of targets supporing IFUNC. glibc's ./configure
+       # is not robust enough to detect proper support:
+       #    https://bugs.gentoo.org/641216
+       #    https://sourceware.org/PR22634#c0
+       case $(tc-arch ${CTARGET}) in
+               # Keep whitelist of targets where autodetection mostly works.
+               amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;;
+               # Blacklist everywhere else
+               *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;;
+       esac
+
        [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp )
 
        myconf+=( --enable-kernel=${NPTL_KERN_VER} )