summaryrefslogtreecommitdiff
path: root/eclass/toolchain.eclass
diff options
context:
space:
mode:
Diffstat (limited to 'eclass/toolchain.eclass')
-rw-r--r--eclass/toolchain.eclass12
1 files changed, 10 insertions, 2 deletions
diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index f3989ad8b6e6..ea223984de2e 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -277,8 +277,9 @@ if [[ ${PN} != kgcc64 && ${PN} != gcc-* ]] ; then
tc_version_is_at_least 10 && IUSE+=" zstd" TC_FEATURES+=( zstd )
tc_version_is_at_least 11 && IUSE+=" valgrind" TC_FEATURES+=( valgrind )
tc_version_is_at_least 11 && IUSE+=" custom-cflags"
- tc_version_is_at_least 12.99 && IUSE+=" default-znow"
- tc_version_is_at_least 12.99 && IUSE+=" default-stack-clash-protection"
+ tc_version_is_at_least 12 && IUSE+=" ieee-long-double"
+ tc_version_is_at_least 12.2.1_p20221203 ${PV} && IUSE+=" default-znow"
+ tc_version_is_at_least 12.2.1_p20221203 ${PV} && IUSE+=" default-stack-clash-protection"
fi
if tc_version_is_at_least 10; then
@@ -1326,6 +1327,13 @@ toolchain_src_configure() {
# - bug #704784
# - https://gcc.gnu.org/PR93157
[[ ${CTARGET} == powerpc64-*-musl ]] && confgcc+=( --with-abi=elfv2 )
+
+ if in_iuse ieee-long-double; then
+ # musl requires 64-bit long double, not IBM double-double or IEEE quad.
+ if [[ ${CTARGET} == powerpc64le-*-gnu ]]; then
+ use ieee-long-double && confgcc+=( --with-long-double-format=ieee )
+ fi
+ fi
;;
riscv)
# Add --with-abi flags to set default ABI