commit: 618de7feba4b2063ee29bca02c413125022bf95d
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 20 22:34:52 2020 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Thu Aug 20 22:48:53 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=618de7fe
toolchain.eclass: always enable --with-long-double-128 for glibc targets
Unless overridden glibc enables 128-bit 'long double' for
glibc 2.4 and above. But with crossdev change 7283a01
("set --without-headers by default") we don't install any
headers for stage1-gcc. As a result gcc pessimistically
disables 128-bit 'long double'.
The change enables --with-long-double-128 for glibc targets
for stage1-gcc.
Reported-by: hanetzer <AT> startmail.com
Closes: https://bugs.gentoo.org/738248
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
eclass/toolchain.eclass | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index db02ee6be50..a3c948a9352 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -912,6 +912,14 @@ toolchain_src_configure() {
--disable-threads
--without-headers
)
+ if [[ $needed_libc == glibc ]]; then
+ # By default gcc looks at glibc's
headers
+ # to detect long double support. This
does
+ # not work for --disable-headers mode.
+ # Any >=glibc-2.4 is good enough for
float128.
+ # The option appeared in gcc-4.2.
+ confgcc+=( --with-long-double-128 )
+ fi
elif has_version
"${CATEGORY}/${needed_libc}[headers-only(-)]" ; then
confgcc+=(
"${confgcc_no_libc[@]}"