From 1847b1bc153c1f128c4b37447b4bbb48875b72e3 Mon Sep 17 00:00:00 2001 From: Adam Joseph Date: Wed, 5 Apr 2023 22:15:42 -0700 Subject: [PATCH] stdenv/linux: fix patchelf confusion The stage before `xgcc` creates the first compiled patchelf (i.e. not from bootstrapFiles). The `xgcc` stage was inadvertently switching *back* to using the patchelf *from* the bootstrapFiles. The first commit in this PR adds self-checking comments (assertions) to make it clear where each stage's patchelf comes from. The second commit fixes the bug, and updates the self-checking comments. --- pkgs/stdenv/linux/default.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix index d53a1902b448..6bf114a730cf 100644 --- a/pkgs/stdenv/linux/default.nix +++ b/pkgs/stdenv/linux/default.nix @@ -326,8 +326,7 @@ in stageFun prevStage { name = "bootstrap-stage-xgcc"; overrides = final: prev: { - inherit (prevStage) ccWrapperStdenv coreutils gnugrep gettext bison texinfo zlib gnum4 perl; - patchelf = bootstrapTools; + inherit (prevStage) ccWrapperStdenv coreutils gnugrep gettext bison texinfo zlib gnum4 perl patchelf; ${localSystem.libc} = getLibc prevStage; gmp = prev.gmp.override { cxx = false; }; gcc-unwrapped = @@ -400,7 +399,7 @@ in assert isBuiltByBootstrapFilesCompiler prevStage.gcc-unwrapped; assert isFromBootstrapFiles prevStage.coreutils; assert isFromBootstrapFiles prevStage.gnugrep; - assert isFromBootstrapFiles prevStage.patchelf; + assert isBuiltByBootstrapFilesCompiler prevStage.patchelf; stageFun prevStage { name = "bootstrap-stage2";