diff --git a/pkgs/development/compilers/gcc/common/platform-flags.nix b/pkgs/development/compilers/gcc/common/platform-flags.nix index bd5a72f96036..fc068c194d2b 100644 --- a/pkgs/development/compilers/gcc/common/platform-flags.nix +++ b/pkgs/development/compilers/gcc/common/platform-flags.nix @@ -10,7 +10,11 @@ in lib.concatLists [ (lib.optional (p ? fpu) "--with-fpu=${p.fpu}") (lib.optional (p ? float) "--with-float=${p.float}") (lib.optional (p ? mode) "--with-mode=${p.mode}") - (lib.optional - (let tp = targetPlatform; in tp.isPower && tp.libc == "glibc" && tp.is64bit) - "--with-long-double-128") + (lib.optionals targetPlatform.isPower64 + # musl explicitly rejects 128-bit long double on + # powerpc64; see musl/arch/powerpc64/bits/float.h + (lib.optionals (!targetPlatform.isMusl) [ + "--with-long-double-128" + "--with-long-double-format=ieee" + ])) ]