commit: bc0ab18a5714c4867f7cd42631b44f541d9f4aa1 Author: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org> AuthorDate: Wed Nov 30 18:23:39 2022 +0000 Commit: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org> CommitDate: Sun Dec 4 22:20:45 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bc0ab18a
eclass/toolchain.eclass: add USE=ieee-long-double for sys-devel/gcc Bug: https://bugs.gentoo.org/882815 Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org> eclass/toolchain.eclass | 8 ++++++++ sys-devel/gcc/metadata.xml | 1 + 2 files changed, 9 insertions(+) diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass index f3989ad8b6e6..3841379f94ca 100644 --- a/eclass/toolchain.eclass +++ b/eclass/toolchain.eclass @@ -277,6 +277,7 @@ 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 && IUSE+=" ieee-long-double" tc_version_is_at_least 12.99 && IUSE+=" default-znow" tc_version_is_at_least 12.99 && IUSE+=" default-stack-clash-protection" fi @@ -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 diff --git a/sys-devel/gcc/metadata.xml b/sys-devel/gcc/metadata.xml index 7277b7cace85..8c2257393b78 100644 --- a/sys-devel/gcc/metadata.xml +++ b/sys-devel/gcc/metadata.xml @@ -14,6 +14,7 @@ <flag name="fixed-point">Enable fixed-point arithmetic support for MIPS targets in gcc (Warning: significantly increases compile time!)</flag> <flag name="go">Build the GCC Go language frontend.</flag> <flag name="graphite">Add support for the framework for loop optimizations based on a polyhedral intermediate representation</flag> + <flag name="ieee-long-double">Use accelerated 128-bit IEEE long double ABI (ppc64le only)</flag> <flag name="jit">Enable libgccjit so other applications can embed gcc for Just-In-Time compilation.</flag> <flag name="libssp">Build SSP support into a dedicated library rather than use the code in the C library (DO NOT ENABLE THIS IF YOU DON'T KNOW WHAT IT DOES)</flag> <flag name="lto">Build using Link Time Optimizations (LTO)</flag>
