summaryrefslogtreecommitdiff
path: root/pkgs/stdenv
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/stdenv')
-rw-r--r--pkgs/stdenv/darwin/default.nix58
-rw-r--r--pkgs/stdenv/darwin/make-bootstrap-tools.nix4
-rw-r--r--pkgs/stdenv/generic/make-derivation.nix2
-rw-r--r--pkgs/stdenv/linux/default.nix4
4 files changed, 37 insertions, 31 deletions
diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix
index 81f42098580e..2018459058b7 100644
--- a/pkgs/stdenv/darwin/default.nix
+++ b/pkgs/stdenv/darwin/default.nix
@@ -73,7 +73,7 @@ in rec {
mkExtraBuildCommands = cc: ''
rsrc="$out/resource-root"
mkdir "$rsrc"
- ln -s "${cc}/lib/clang/${cc.version}/include" "$rsrc"
+ ln -s "${cc.lib or cc}/lib/clang/${cc.version}/include" "$rsrc"
ln -s "${last.pkgs.llvmPackages_7.compiler-rt.out}/lib" "$rsrc/lib"
echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
'';
@@ -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";
@@ -407,7 +407,7 @@ in rec {
allowedRequisites =
[ bootstrapTools ] ++
(with pkgs; [
- xz.bin xz.out bash libcxx libcxxabi llvmPackages_7.compiler-rt
+ xz.bin xz.out bash libcxx libcxx.dev libcxxabi libcxxabi.dev llvmPackages_7.compiler-rt
llvmPackages_7.clang-unwrapped zlib libxml2.out curl.out brotli.lib openssl.out
libssh2.out nghttp2.lib libkrb5 coreutils gnugrep pcre.out gmp libiconv
]) ++
@@ -436,22 +436,22 @@ in rec {
llvmPackages_7 = super.llvmPackages_7 // (let
tools = super.llvmPackages_7.tools.extend (llvmSelf: _: {
- clang-unwrapped = llvmPackages_7.clang-unwrapped.override { llvm = llvmSelf.llvm; };
- llvm = llvmPackages_7.llvm.override { inherit libxml2; };
+ clang-unwrapped-all-outputs = llvmPackages_7.clang-unwrapped-all-outputs.override { llvm = llvmSelf.llvm; };
+ libllvm = llvmPackages_7.libllvm.override { inherit libxml2; };
});
libraries = super.llvmPackages_7.libraries.extend (llvmSelf: _: {
inherit (llvmPackages_7) libcxx libcxxabi compiler-rt;
});
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";
@@ -482,11 +482,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;
@@ -527,11 +527,13 @@ in rec {
};
allowedRequisites = (with pkgs; [
- xz.out xz.bin libcxx libcxxabi gmp.out gnumake findutils bzip2.out
+ xz.out xz.bin libcxx libcxx.dev libcxxabi libcxxabi.dev gmp.out gnumake findutils bzip2.out
bzip2.bin llvmPackages.llvm llvmPackages.llvm.lib llvmPackages.compiler-rt llvmPackages.compiler-rt.dev
zlib.out zlib.dev libffi.out coreutils ed diffutils gnutar
gzip ncurses.out ncurses.dev ncurses.man gnused bash gawk
- gnugrep llvmPackages.clang-unwrapped llvmPackages.clang-unwrapped.lib patch pcre.out gettext
+ gnugrep llvmPackages.clang-unwrapped
+ llvmPackages.libclang.dev llvmPackages.libclang.lib
+ patch pcre.out gettext
binutils.bintools darwin.binutils darwin.binutils.bintools
curl.out brotli.lib openssl.out libssh2.out nghttp2.lib libkrb5
cc.expand-response-params libxml2.out
@@ -540,14 +542,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; };
- };
});
};
diff --git a/pkgs/stdenv/darwin/make-bootstrap-tools.nix b/pkgs/stdenv/darwin/make-bootstrap-tools.nix
index 7b68c877a6ef..4b6562a205a4 100644
--- a/pkgs/stdenv/darwin/make-bootstrap-tools.nix
+++ b/pkgs/stdenv/darwin/make-bootstrap-tools.nix
@@ -77,7 +77,7 @@ in rec {
# Copy what we need of clang
cp -d ${llvmPackages.clang-unwrapped}/bin/clang* $out/bin
- cp -rL ${llvmPackages.clang-unwrapped}/lib/clang $out/lib
+ cp -rL ${llvmPackages.clang-unwrapped.lib}/lib/clang $out/lib
cp -d ${llvmPackages.libcxx}/lib/libc++*.dylib $out/lib
cp -d ${llvmPackages.libcxxabi}/lib/libc++abi*.dylib $out/lib
@@ -85,7 +85,7 @@ in rec {
cp -d ${libffi}/lib/libffi*.dylib $out/lib
mkdir $out/include
- cp -rd ${llvmPackages.libcxx}/include/c++ $out/include
+ cp -rd ${llvmPackages.libcxx.dev}/include/c++ $out/include
cp -d ${darwin.ICU}/lib/libicu*.dylib $out/lib
cp -d ${zlib.out}/lib/libz.* $out/lib
diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix
index 73d1e6e3ce66..2985564eb829 100644
--- a/pkgs/stdenv/generic/make-derivation.nix
+++ b/pkgs/stdenv/generic/make-derivation.nix
@@ -128,7 +128,7 @@ in rec {
++ depsHostHost ++ depsHostHostPropagated
++ buildInputs ++ propagatedBuildInputs
++ depsTargetTarget ++ depsTargetTargetPropagated) == 0;
- dontAddHostSuffix = attrs ? outputHash && !noNonNativeDeps || (stdenv.noCC or false);
+ dontAddHostSuffix = attrs ? outputHash && !noNonNativeDeps || !stdenv.hasCC;
supportedHardeningFlags = [ "fortify" "stackprotector" "pie" "pic" "strictoverflow" "format" "relro" "bindnow" ];
# Musl-based platforms will keep "pie", other platforms will not.
defaultHardeningFlags = if stdenv.hostPlatform.isMusl &&
diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix
index 77c9a051fcf1..ad4601b1998d 100644
--- a/pkgs/stdenv/linux/default.nix
+++ b/pkgs/stdenv/linux/default.nix
@@ -283,6 +283,10 @@ in
isl_0_20 = super.isl_0_20.override { stdenv = self.makeStaticLibraries self.stdenv; };
gcc-unwrapped = super.gcc-unwrapped.override {
isl = isl_0_20;
+ # Use a deterministically built compiler
+ # see https://github.com/NixOS/nixpkgs/issues/108475 for context
+ reproducibleBuild = true;
+ profiledCompiler = false;
};
};
extraNativeBuildInputs = [ prevStage.patchelf ] ++