top-level: turn the screw

- Non-cross stdenvs are honest and assert that `crossSystem` is null

 - `crossSystem` is a mandatory argument to top-level/stage.nix, just like
   `system` and `platform`

 - Broken default arguments on stdenvs for testing are gone.

 - All stdenvs (but little-used stdenvNix) take the same arguments for easy
   testing.
This commit is contained in:
John Ericson
2016-12-01 11:24:33 -05:00
parent a55d1ecc90
commit 4751d9e5ad
7 changed files with 31 additions and 25 deletions
+5 -5
View File
@@ -3,11 +3,9 @@
# external (non-Nix) tools, such as /usr/bin/gcc, and it contains a C
# compiler and linker that do not search in default locations,
# ensuring purity of components produced by it.
{ lib, allPackages
, system, platform, crossSystem, config
# The function defaults are for easy testing.
{ system ? builtins.currentSystem
, allPackages ? import ../../..
, platform ? null, config ? {}, lib ? (import ../../../lib)
, bootstrapFiles ?
if system == "i686-linux" then import ./bootstrap/i686.nix
else if system == "x86_64-linux" then import ./bootstrap/x86_64.nix
@@ -18,6 +16,8 @@
else abort "unsupported platform for the pure Linux stdenv"
}:
assert crossSystem == null;
rec {
commonPreHook =
@@ -106,7 +106,7 @@ rec {
};
thisPkgs = allPackages {
inherit system platform config;
inherit system platform crossSystem config;
allowCustomOverrides = false;
stdenv = thisStdenv;
};