Commit 299c06a0 authored by Randy Eckenrode's avatar Randy Eckenrode Committed by Adam Joseph
Browse files

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.
parent bec14225
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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 {