summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Trofimovich <slyfox@gentoo.org>2020-06-09 08:23:10 +0100
committerSergei Trofimovich <slyfox@gentoo.org>2020-06-09 08:24:07 +0100
commitb6558b4251e9dacfb8a866716820e43a7dc5d0fe (patch)
tree61cf601173a2c61770ea238aafe0e4de0b5887ea
parentdev-python/pyperclip: Fix wrong checks for PyQt* (diff)
downloadgentoo-b6558b4251e9dacfb8a866716820e43a7dc5d0fe.tar.gz
gentoo-b6558b4251e9dacfb8a866716820e43a7dc5d0fe.tar.bz2
gentoo-b6558b4251e9dacfb8a866716820e43a7dc5d0fe.zip
sys-libs/glibc: always use NM and READELF for default ABI
sys-devel/binutils-config[-native-symlinks] exposed a bug of not using 'readelf' / 'nm' if used ABI is not default. Breakage mahifested as ./configure failure for glibc[static-pie] for non-default ABIs. The fix uses NM and READELF from default ABI (specified by CTARGET). While at it set CC in early compile test checks. Package-Manager: Portage-2.3.100, Repoman-2.3.22 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-rw-r--r--sys-libs/glibc/glibc-2.31-r4.ebuild13
-rw-r--r--sys-libs/glibc/glibc-9999.ebuild13
2 files changed, 22 insertions, 4 deletions
diff --git a/sys-libs/glibc/glibc-2.31-r4.ebuild b/sys-libs/glibc/glibc-2.31-r4.ebuild
index 24d169cae7ab..487ca85ae402 100644
--- a/sys-libs/glibc/glibc-2.31-r4.ebuild
+++ b/sys-libs/glibc/glibc-2.31-r4.ebuild
@@ -230,7 +230,8 @@ do_compile_test() {
rm -f glibc-test*
printf '%b' "$*" > glibc-test.c
- nonfatal emake glibc-test
+ # Most of the time CC is already set, but not in early sanity checks.
+ nonfatal emake glibc-test CC="${CC-$(tc-getCC ${CTARGET})}"
ret=$?
popd >/dev/null
@@ -790,7 +791,7 @@ glibc_do_configure() {
fi
local v
- for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO ; do
+ for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO NM READELF; do
einfo " $(printf '%15s' ${v}:) ${!v}"
done
@@ -819,6 +820,14 @@ glibc_do_configure() {
fi
einfo " $(printf '%15s' 'Manual CXX:') ${CXX}"
+ # Always use tuple-prefixed toolchain. For non-native ABI glibc's configure
+ # can't detect them automatically due to ${CHOST} mismatch and fallbacks
+ # to unprefixed tools. Similar to multilib.eclass:multilib_toolchain_setup().
+ export NM="$(tc-getNM ${CTARGET})"
+ export READELF="$(tc-getREADELF ${CTARGET})"
+ einfo " $(printf '%15s' 'Manual NM:') ${NM}"
+ einfo " $(printf '%15s' 'Manual READELF:') ${READELF}"
+
echo
local myconf=()
diff --git a/sys-libs/glibc/glibc-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild
index 2355e5bce34e..236e15c07920 100644
--- a/sys-libs/glibc/glibc-9999.ebuild
+++ b/sys-libs/glibc/glibc-9999.ebuild
@@ -225,7 +225,8 @@ do_compile_test() {
rm -f glibc-test*
printf '%b' "$*" > glibc-test.c
- nonfatal emake glibc-test
+ # Most of the time CC is already set, but not in early sanity checks.
+ nonfatal emake glibc-test CC="${CC-$(tc-getCC ${CTARGET})}"
ret=$?
popd >/dev/null
@@ -798,7 +799,7 @@ glibc_do_configure() {
fi
local v
- for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO ; do
+ for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO NM READELF; do
einfo " $(printf '%15s' ${v}:) ${!v}"
done
@@ -827,6 +828,14 @@ glibc_do_configure() {
fi
einfo " $(printf '%15s' 'Manual CXX:') ${CXX}"
+ # Always use tuple-prefixed toolchain. For non-native ABI glibc's configure
+ # can't detect them automatically due to ${CHOST} mismatch and fallbacks
+ # to unprefixed tools. Similar to multilib.eclass:multilib_toolchain_setup().
+ export NM="$(tc-getNM ${CTARGET})"
+ export READELF="$(tc-getREADELF ${CTARGET})"
+ einfo " $(printf '%15s' 'Manual NM:') ${NM}"
+ einfo " $(printf '%15s' 'Manual READELF:') ${READELF}"
+
echo
local myconf=()