diff options
author | John Ericson <John.Ericson@Obsidian.Systems> | 2021-05-04 00:08:20 -0400 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2021-05-06 11:17:26 -0400 |
commit | 470640e7fe53ab57396cff6698125f5bf137b4de (patch) | |
tree | 997d59f58f7def8d04cdafbe5e30e6e59881bb81 /pkgs/stdenv | |
parent | b418e17a4ccf42b1a99aa6eca2b86a5b552d081a (diff) |
treewide: Do a number of no-op cleanups for cross and darwin
I am taking the non-invasive parts of #110914 to hopefully help out with #111988. In particular: - Use `lib.makeScopeWithSplicing` to make the `darwin` package set have a proper `callPackage`. - Adjust Darwin `stdenv`'s overlays keeping things from the previous stage to not stick around too much. - Expose `binutilsNoLibc` / `darwin.binutilsNoLibc` to hopefully get us closer to a unified LLVM and GCC bootstrap.
Diffstat (limited to 'pkgs/stdenv')
-rw-r--r-- | pkgs/stdenv/darwin/default.nix | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix index 227f53b02ccf3..fcfab9bff5daa 100644 --- a/pkgs/stdenv/darwin/default.nix +++ b/pkgs/stdenv/darwin/default.nix @@ -176,13 +176,13 @@ in rec { ''; }; - darwin = super.darwin // { + darwin = super.darwin.overrideScope (selfDarwin: superDarwin: { Libsystem = stdenv.mkDerivation { name = "bootstrap-stage0-Libsystem"; buildCommand = '' mkdir -p $out - cp -r ${self.darwin.darwin-stubs}/usr/lib $out/lib + cp -r ${selfDarwin.darwin-stubs}/usr/lib $out/lib chmod -R +w $out/lib substituteInPlace $out/lib/libSystem.B.tbd --replace /usr/lib/system $out/lib/system @@ -201,7 +201,7 @@ in rec { ''; }; - darwin-stubs = super.darwin.darwin-stubs.override { inherit (self) stdenv fetchurl; }; + darwin-stubs = superDarwin.darwin-stubs.override { inherit (self) stdenv fetchurl; }; dyld = { name = "bootstrap-stage0-dyld"; @@ -220,10 +220,10 @@ in rec { nativeTools = false; nativeLibc = false; inherit (self) buildPackages coreutils gnugrep; - libc = self.pkgs.darwin.Libsystem; + libc = selfDarwin.Libsystem; bintools = { name = "bootstrap-stage0-binutils"; outPath = bootstrapTools; }; }; - }; + }); llvmPackages_7 = { clang-unwrapped = stdenv.mkDerivation { @@ -291,12 +291,12 @@ in rec { }); in { inherit tools libraries; } // tools // libraries); - darwin = super.darwin // { + darwin = super.darwin.overrideScope (selfDarwin: _: { binutils = darwin.binutils.override { coreutils = self.coreutils; - libc = self.darwin.Libsystem; + libc = selfDarwin.Libsystem; }; - }; + }); }; in with prevStage; stageFun 1 prevStage { extraPreHook = "export NIX_CFLAGS_COMPILE+=\" -F${bootstrapTools}/Library/Frameworks\""; @@ -337,11 +337,11 @@ in rec { }); in { inherit tools libraries; } // tools // libraries); - darwin = super.darwin // { + darwin = super.darwin.overrideScope (_: _: { inherit (darwin) binutils dyld Libsystem xnu configd ICU libdispatch libclosure launchd CF darwin-stubs; - }; + }); }; in with prevStage; stageFun 2 prevStage { extraPreHook = '' @@ -382,11 +382,11 @@ in rec { }); in { inherit libraries; } // libraries); - darwin = super.darwin // { + darwin = super.darwin.overrideScope (_: _: { inherit (darwin) dyld Libsystem xnu configd libdispatch libclosure launchd libiconv locale darwin-stubs; - }; + }); }; in with prevStage; stageFun 3 prevStage { shell = "${pkgs.bash}/bin/bash"; @@ -442,14 +442,14 @@ in rec { }); in { inherit tools libraries; } // tools // libraries); - darwin = super.darwin // rec { + darwin = super.darwin.overrideScope (_: superDarwin: { inherit (darwin) dyld Libsystem libiconv locale darwin-stubs; - CF = super.darwin.CF.override { + CF = superDarwin.CF.override { inherit libxml2; python3 = prevStage.python3; }; - }; + }); }; in with prevStage; stageFun 4 prevStage { shell = "${pkgs.bash}/bin/bash"; @@ -480,11 +480,11 @@ in rec { }); in { inherit tools libraries; } // tools // libraries); - darwin = super.darwin // { + darwin = super.darwin.overrideScope (_: _: { inherit (darwin) dyld ICU Libsystem libiconv; } // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) { inherit (darwin) binutils binutils-unwrapped cctools; - }; + }); } // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) { # Need to get rid of these when cross-compiling. inherit binutils binutils-unwrapped; @@ -537,14 +537,14 @@ in rec { ]); overrides = lib.composeExtensions persistent (self: super: { + darwin = super.darwin.overrideScope (_: superDarwin: { + inherit (prevStage.darwin) CF darwin-stubs; + xnu = superDarwin.xnu.override { inherit (prevStage) python3; }; + }); + } // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) { clang = cc; llvmPackages = super.llvmPackages // { clang = cc; }; inherit cc; - - darwin = super.darwin // { - inherit (prevStage.darwin) CF darwin-stubs; - xnu = super.darwin.xnu.override { inherit (prevStage) python3; }; - }; }); }; |