From 618de7feba4b2063ee29bca02c413125022bf95d Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Thu, 20 Aug 2020 23:34:52 +0100 Subject: [PATCH] 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@startmail.com Closes: https://bugs.gentoo.org/738248 Signed-off-by: Sergei Trofimovich --- eclass/toolchain.eclass | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass index db02ee6be5093..a3c948a935260 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[@]}"