From cfc4c957706ec37c67ed6800148fab6c72f1367d Mon Sep 17 00:00:00 2001 From: Adam Joseph Date: Thu, 27 Apr 2023 14:47:14 -0700 Subject: [PATCH] gcc: fix fastStdenv breakage from #209870 Apparently gcc has these `Makefile` targets: - `""` - `"bootstrap"` - `"profiledbootstrap"` ... but no `"profiled"`. So if you want a profiled compiler, at the moment, it should be bootstrapped. If we ever decide to make the nixpkgs bootstrap use a profiled compiler (which at the moment means nondeterminism) a Nix-driven profile loop is certainly possible, but would take some work. Closes #228597. --- pkgs/development/compilers/gcc/12/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/development/compilers/gcc/12/default.nix b/pkgs/development/compilers/gcc/12/default.nix index a3e8faaed460..483ac2024402 100644 --- a/pkgs/development/compilers/gcc/12/default.nix +++ b/pkgs/development/compilers/gcc/12/default.nix @@ -56,7 +56,7 @@ with builtins; let majorVersion = "12"; version = "${majorVersion}.2.0"; - disableBootstrap = !stdenv.hostPlatform.isDarwin; + disableBootstrap = !stdenv.hostPlatform.isDarwin && !profiledCompiler; inherit (stdenv) buildPlatform hostPlatform targetPlatform; @@ -288,6 +288,8 @@ lib.pipe (stdenv.mkDerivation ({ targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null; buildFlags = + # we do not yet have Nix-driven profiling + assert profiledCompiler -> !disableBootstrap; let target = lib.optionalString (profiledCompiler) "profiled" + lib.optionalString (targetPlatform == hostPlatform && hostPlatform == buildPlatform && !disableBootstrap) "bootstrap";