cross-stdenv: Only prune most overrides in the final stage

Before all overrides were also pruned in the previous stage, now
only gcc and binutils are, because they alone care about about the
target platform. The rest of the overrides don't, so it's better to
preserve them in order to avoid spurious rebuilds.
wip/yesman
John Ericson 7 years ago
parent a7068ace35
commit 49c99b70cf
  1. 4
      pkgs/stdenv/adapters.nix
  2. 4
      pkgs/stdenv/cross/default.nix
  3. 5
      pkgs/stdenv/darwin/default.nix
  4. 8
      pkgs/stdenv/linux/default.nix

@ -58,6 +58,10 @@ rec {
# builds.
makeStdenvCross = stdenv: cross: binutilsCross: gccCross: stdenv // {
# Overrides are surely not valid as packages built with this run on a
# different platform.
overrides = _: _: {};
mkDerivation =
{ name ? "", buildInputs ? [], nativeBuildInputs ? []
, propagatedBuildInputs ? [], propagatedNativeBuildInputs ? []

@ -21,9 +21,7 @@ in bootStages ++ [
selfBuild = false;
# It's OK to change the built-time dependencies
allowCustomOverrides = true;
stdenv = vanillaPackages.stdenv // {
overrides = _: _: {};
};
inherit (vanillaPackages) stdenv;
})
# Run Packages

@ -253,7 +253,7 @@ in rec {
inherit
gnumake gzip gnused bzip2 gawk ed xz patch bash
libcxxabi libcxx ncurses libffi zlib icu llvm gmp pcre gnugrep
coreutils findutils diffutils patchutils binutils binutils-raw;
coreutils findutils diffutils patchutils;
llvmPackages = super.llvmPackages // {
inherit (llvmPackages) llvm clang-unwrapped;
@ -262,6 +262,9 @@ in rec {
darwin = super.darwin // {
inherit (darwin) dyld Libsystem cctools libiconv;
};
} // lib.optionalAttrs (super.targetPlatform == localSystem) {
# Need to get rid of these when cross-compiling.
inherit binutils binutils-raw;
};
stdenvDarwin = prevStage: let pkgs = prevStage; in import ../generic rec {

@ -298,12 +298,14 @@ in
*/
overrides = self: super: {
gcc = cc;
inherit (prevStage)
gzip bzip2 xz bash binutils coreutils diffutils findutils gawk
gzip bzip2 xz bash coreutils diffutils findutils gawk
glibc gnumake gnused gnutar gnugrep gnupatch patchelf
attr acl paxctl zlib pcre;
} // lib.optionalAttrs (super.targetPlatform == localSystem) {
# Need to get rid of these when cross-compiling.
inherit (prevStage) binutils;
gcc = cc;
};
};
})

Loading…
Cancel
Save