about summary refs log tree commit diff
path: root/pkgs/stdenv
diff options
context:
space:
mode:
authorAdam Joseph <adam@westernsemico.com>2022-04-19 17:04:58 -0700
committerAdam Joseph <adam@westernsemico.com>2022-06-05 00:35:06 -0700
commit23ea8b35dacd9152c9e0e21577d5afe3e39b6255 (patch)
tree3cda28722f5c8251a69887e3fdfd127ada0473a9 /pkgs/stdenv
parent122b6930b0b5b8aa9911c6025ed12a7e5a8b9fab (diff)
stdenv: label the ephemeral coreutils-stage4 package
During stdenv bootstrapping, coreutils is built twice.  This makes
troubleshooting very difficult, because both packages have
name="coreutils", so it is a hassle to figure out "which coreutils am
I using / is not building"?

The first of these builds is used only in stage4, and is not part of
the final stdenv.  Let's label that one with a different `name`
attribute to make it obvious which is which.
Diffstat (limited to 'pkgs/stdenv')
-rw-r--r--pkgs/stdenv/linux/default.nix3
1 files changed, 3 insertions, 0 deletions
diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix
index 490840f254cba..ad5a91f9340ee 100644
--- a/pkgs/stdenv/linux/default.nix
+++ b/pkgs/stdenv/linux/default.nix
@@ -351,6 +351,9 @@ in
       #   stage5.gcc -> stage4.coreutils -> stage3.glibc -> bootstrap
       gmp = super.gmp.override { stdenv = self.stdenv; };
 
+      # coreutils gets rebuilt both here and also in the final stage; we rename this one to avoid confusion
+      coreutils = super.coreutils.overrideAttrs (a: a // { name = "coreutils-stage4"; });
+
       gcc = lib.makeOverridable (import ../../build-support/cc-wrapper) {
         nativeTools = false;
         nativeLibc = false;