diff options
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/development/compilers/gcc/common/checksum.nix | 1 | ||||
-rw-r--r-- | pkgs/test/stdenv/gcc-stageCompare.nix | 32 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 2 | ||||
-rw-r--r-- | pkgs/top-level/release-small.nix | 2 |
4 files changed, 36 insertions, 1 deletions
diff --git a/pkgs/development/compilers/gcc/common/checksum.nix b/pkgs/development/compilers/gcc/common/checksum.nix index 5251f40105c61..b3e387b107baf 100644 --- a/pkgs/development/compilers/gcc/common/checksum.nix +++ b/pkgs/development/compilers/gcc/common/checksum.nix @@ -3,6 +3,7 @@ , nukeReferences , langC , langCC +, runtimeShell }: let diff --git a/pkgs/test/stdenv/gcc-stageCompare.nix b/pkgs/test/stdenv/gcc-stageCompare.nix new file mode 100644 index 0000000000000..e5c2ed5921b30 --- /dev/null +++ b/pkgs/test/stdenv/gcc-stageCompare.nix @@ -0,0 +1,32 @@ +# This test *must* be run prior to releasing any build of either stdenv or the +# gcc that it exports! This check should also be part of CI for any PR that +# causes a rebuild of `stdenv.cc`. +# +# When we used gcc's internal bootstrap it did this check as part of (and +# serially with) the gcc derivation. Now that we bootstrap externally this +# check can be done in parallel with any/all of stdenv's referrers. But we +# must remember to do the check. +# + +{ stdenv +, pkgs +, lib +}: + +assert stdenv.cc.isGNU; +with pkgs; +# rebuild gcc using the "final" stdenv +let gcc-stageCompare = (gcc-unwrapped.override { + reproducibleBuild = true; + profiledCompiler = false; + stdenv = overrideCC stdenv (wrapCCWith { + cc = stdenv.cc; + }); + }).overrideAttrs(_: { + NIX_OUTPATH_USED_AS_RANDOM_SEED = stdenv.cc.cc.out; + }); +in (runCommand "gcc-stageCompare" {} '' + diff -sr ${pkgs.gcc-unwrapped.checksum}/checksums ${gcc-stageCompare.checksum}/checksums && touch $out +'').overrideAttrs (a: { + meta = (a.meta or { }) // { platforms = lib.platforms.linux; }; +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 43e63c611916a..c5749c18f55c3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -33898,6 +33898,8 @@ with pkgs; testssl = callPackage ../applications/networking/testssl { }; + tests-stdenv-gcc-stageCompare = callPackage ../test/stdenv/gcc-stageCompare.nix { }; + lavalauncher = callPackage ../applications/misc/lavalauncher { }; t-rec = callPackage ../misc/t-rec { diff --git a/pkgs/top-level/release-small.nix b/pkgs/top-level/release-small.nix index 7bf4a234bb657..333e285cef0a0 100644 --- a/pkgs/top-level/release-small.nix +++ b/pkgs/top-level/release-small.nix @@ -150,5 +150,5 @@ with import ./release-lib.nix { inherit supportedSystems nixpkgsArgs; }; xfsprogs = linux; xkeyboard_config = linux; zip = all; - + tests-stdenv-gcc-stageCompare = all; } )) |