|
49 | 49 | happy = final.haskell.lib.compose.overrideCabal (drv: { |
50 | 50 | disallowGhcReference = false; |
51 | 51 | }) prev.happy; |
52 | | - } // prev.lib.optionalAttrs prev.stdenv.hostPlatform.isLinux { |
| 52 | + } // prev.lib.optionalAttrs (prev.stdenv.hostPlatform.system == "x86_64-linux") { |
53 | 53 | # GCC 14's fixincludes step uses a configure-time substitution |
54 | 54 | # @BUILD_SYSTEM_HEADER_DIR@ that bakes /usr/include into the |
55 | 55 | # generated Makefile. On NixOS-based builders (Determinate Nix |
56 | | - # Linux VM), /usr/include doesn't exist, causing all x86_64-linux |
57 | | - # GCC builds to fail — which cascades to all Windows cross-builds |
58 | | - # that depend on the native GCC bootstrap compiler. |
| 56 | + # Linux VM), /usr/include doesn't exist, causing x86_64-linux |
| 57 | + # GCC builds to fail — cascading to all Windows cross-builds. |
59 | 58 | # --disable-fixincludes skips the fixincludes step entirely, which |
60 | 59 | # is safe for Nix where all headers are store-managed. Already |
61 | 60 | # used by nixpkgs' standalone libgcc build for the same reason. |
62 | | - # Only applied on Linux — avoids unnecessary gcc14 rebuilds on |
63 | | - # Darwin (where gfortran fails against Apple SDK 14.4) and |
64 | | - # Windows (where the mingw cross-GCC doesn't have this issue). |
| 61 | + # Scoped to x86_64-linux only: on Darwin, gfortran bootstrap fails |
| 62 | + # (Apple SDK __FLT_EVAL_METHOD__); on aarch64-linux, changing gcc14 |
| 63 | + # cascades through the entire IFD chain, and linux-headers can't be |
| 64 | + # rebuilt on darwin builders (case-insensitive APFS). |
65 | 65 | gcc14 = prev.wrapCC ( |
66 | 66 | prev.gcc14.cc.overrideAttrs (old: { |
67 | 67 | configureFlags = (old.configureFlags or []) ++ [ "--disable-fixincludes" ]; |
|
0 commit comments