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.
This commit is contained in:
Adam Joseph 2023-04-05 22:15:42 -07:00
parent 2abf285e2b
commit 1847b1bc15

View file

@ -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";