From 299c06a0f55e02d41d26035fb0d649ae972bdc37 Mon Sep 17 00:00:00 2001 From: Randy Eckenrode Date: Mon, 6 Nov 2023 16:53:25 -0500 Subject: [PATCH] gcc{48,49,6,7,8,9,10}: improve cctools-llvm compatibility darwin.cctools defaults to `llvm-strip` when the version of LLVM in the stdenv is 12 or newer. This strip implementation does not support the `-c` flag required by older versions of GCC. Use the cctools-port version for compatibility when building older versions of GCC. --- pkgs/development/compilers/gcc/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/development/compilers/gcc/default.nix b/pkgs/development/compilers/gcc/default.nix index 895aed5461c1..0fe23000cc90 100644 --- a/pkgs/development/compilers/gcc/default.nix +++ b/pkgs/development/compilers/gcc/default.nix @@ -33,6 +33,7 @@ , nukeReferences , callPackage , majorMinorVersion +, darwin # only for gcc<=6.x , langJava ? false @@ -412,6 +413,11 @@ lib.pipe ((callFile ./common/builder.nix {}) ({ }; } // optionalAttrs is7 { env.NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.cc.isClang && langFortran) "-Wno-unused-command-line-argument"; +} // lib.optionalAttrs (!atLeast10 && stdenv.hostPlatform.isDarwin) { + # GCC <10 requires default cctools `strip` instead of `llvm-strip` used by Darwin bintools. + preBuild = '' + makeFlagsArray+=('STRIP=${lib.getBin darwin.cctools-port}/bin/${stdenv.cc.targetPrefix}strip') + ''; } // optionalAttrs (!atLeast7) { env.langJava = langJava; } // optionalAttrs atLeast6 {