forked from mirrors/nixpkgs
Merge pull request #245640 from reckenrode/revert-stdenv-no-response
darwin-stdenv: revert `NIX_CC_NO_RESPONSE_FILE` logic
This commit is contained in:
commit
e870890000
|
@ -65,11 +65,7 @@ let
|
||||||
isBuiltByBootstrapFilesCompiler =
|
isBuiltByBootstrapFilesCompiler =
|
||||||
pkg: isFromNixpkgs pkg && isFromBootstrapFiles pkg.stdenv.cc.cc;
|
pkg: isFromNixpkgs pkg && isFromBootstrapFiles pkg.stdenv.cc.cc;
|
||||||
|
|
||||||
commonPreHook = pkgs: lib.optionalString (pkgs.darwin.system_cmds != null) ''
|
commonPreHook = ''
|
||||||
# Only use a response file on older systems with a small ARG_MAX (less than 1 MiB).
|
|
||||||
export NIX_CC_USE_RESPONSE_FILE=$(( "$("${lib.getBin pkgs.darwin.system_cmds}/bin/getconf" ARG_MAX)" < 1048576 ))
|
|
||||||
export NIX_LD_USE_RESPONSE_FILE=$NIX_CC_USE_RESPONSE_FILE
|
|
||||||
'' + ''
|
|
||||||
export NIX_ENFORCE_NO_NATIVE=''${NIX_ENFORCE_NO_NATIVE-1}
|
export NIX_ENFORCE_NO_NATIVE=''${NIX_ENFORCE_NO_NATIVE-1}
|
||||||
export NIX_ENFORCE_PURITY=''${NIX_ENFORCE_PURITY-1}
|
export NIX_ENFORCE_PURITY=''${NIX_ENFORCE_PURITY-1}
|
||||||
export NIX_IGNORE_LD_THROUGH_GCC=1
|
export NIX_IGNORE_LD_THROUGH_GCC=1
|
||||||
|
@ -166,7 +162,7 @@ let
|
||||||
# dependencies on the bootstrapTools in the final stdenv.
|
# dependencies on the bootstrapTools in the final stdenv.
|
||||||
dontPatchShebangs=1
|
dontPatchShebangs=1
|
||||||
'' + ''
|
'' + ''
|
||||||
${commonPreHook prevStage}
|
${commonPreHook}
|
||||||
${extraPreHook}
|
${extraPreHook}
|
||||||
'' + lib.optionalString (prevStage.darwin ? locale) ''
|
'' + lib.optionalString (prevStage.darwin ? locale) ''
|
||||||
export PATH_LOCALE=${prevStage.darwin.locale}/share/locale
|
export PATH_LOCALE=${prevStage.darwin.locale}/share/locale
|
||||||
|
@ -216,7 +212,6 @@ in
|
||||||
print-reexports = null;
|
print-reexports = null;
|
||||||
rewrite-tbd = null;
|
rewrite-tbd = null;
|
||||||
sigtool = null;
|
sigtool = null;
|
||||||
system_cmds = null;
|
|
||||||
CF = null;
|
CF = null;
|
||||||
Libsystem = null;
|
Libsystem = null;
|
||||||
};
|
};
|
||||||
|
@ -300,27 +295,6 @@ in
|
||||||
rewrite-tbd = bootstrapTools;
|
rewrite-tbd = bootstrapTools;
|
||||||
|
|
||||||
sigtool = bootstrapTools;
|
sigtool = bootstrapTools;
|
||||||
|
|
||||||
# The bootstrap only needs `getconf` from system_cmds, and it only needs to be able to
|
|
||||||
# query `ARG_MAX`. Using a small value here should be fine for the initial stage 1 build.
|
|
||||||
system_cmds = self.stdenv.mkDerivation {
|
|
||||||
name = "bootstrap-stage0-system_cmds";
|
|
||||||
buildCommand = ''
|
|
||||||
mkdir -p "$out/bin"
|
|
||||||
cat <<block > "$out/bin/getconf"
|
|
||||||
#!${bootstrapTools}/bin/bash
|
|
||||||
case "\$1" in
|
|
||||||
ARG_MAX)
|
|
||||||
echo "262144"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
exit 1
|
|
||||||
esac
|
|
||||||
block
|
|
||||||
chmod a+x "$out/bin/getconf"
|
|
||||||
'';
|
|
||||||
passthru.isFromBootstrapFiles = true;
|
|
||||||
};
|
|
||||||
} // lib.optionalAttrs (! useAppleSDKLibs) {
|
} // lib.optionalAttrs (! useAppleSDKLibs) {
|
||||||
CF = self.stdenv.mkDerivation {
|
CF = self.stdenv.mkDerivation {
|
||||||
name = "bootstrap-stage0-CF";
|
name = "bootstrap-stage0-CF";
|
||||||
|
@ -453,7 +427,7 @@ in
|
||||||
assert lib.all isFromBootstrapFiles (with prevStage; [ bash coreutils cpio gnugrep pbzx ]);
|
assert lib.all isFromBootstrapFiles (with prevStage; [ bash coreutils cpio gnugrep pbzx ]);
|
||||||
|
|
||||||
assert lib.all isFromBootstrapFiles (with prevStage.darwin; [
|
assert lib.all isFromBootstrapFiles (with prevStage.darwin; [
|
||||||
binutils-unwrapped cctools print-reexports rewrite-tbd sigtool system_cmds
|
binutils-unwrapped cctools print-reexports rewrite-tbd sigtool
|
||||||
]);
|
]);
|
||||||
|
|
||||||
assert (! useAppleSDKLibs) -> lib.all isFromBootstrapFiles (with prevStage.darwin; [ CF Libsystem ]);
|
assert (! useAppleSDKLibs) -> lib.all isFromBootstrapFiles (with prevStage.darwin; [ CF Libsystem ]);
|
||||||
|
@ -486,8 +460,6 @@ in
|
||||||
python3 = super.python3Minimal;
|
python3 = super.python3Minimal;
|
||||||
|
|
||||||
darwin = super.darwin.overrideScope (selfDarwin: superDarwin: {
|
darwin = super.darwin.overrideScope (selfDarwin: superDarwin: {
|
||||||
inherit (prevStage.darwin) system_cmds;
|
|
||||||
|
|
||||||
signingUtils = prevStage.darwin.signingUtils.override {
|
signingUtils = prevStage.darwin.signingUtils.override {
|
||||||
inherit (selfDarwin) sigtool;
|
inherit (selfDarwin) sigtool;
|
||||||
};
|
};
|
||||||
|
@ -536,7 +508,7 @@ in
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
|
|
||||||
# Build sysctl, system_cmds and Python for use by LLVM’s check phase. These must be built in their
|
# Build sysctl and Python for use by LLVM’s check phase. These must be built in their
|
||||||
# own stage, or an infinite recursion results on x86_64-darwin when using the source-based SDK.
|
# own stage, or an infinite recursion results on x86_64-darwin when using the source-based SDK.
|
||||||
(prevStage:
|
(prevStage:
|
||||||
# previous stage1 stdenv:
|
# previous stage1 stdenv:
|
||||||
|
@ -553,8 +525,6 @@ in
|
||||||
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [
|
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [
|
||||||
binutils-unwrapped cctools locale libtapi print-reexports rewrite-tbd sigtool
|
binutils-unwrapped cctools locale libtapi print-reexports rewrite-tbd sigtool
|
||||||
]);
|
]);
|
||||||
assert lib.all isFromBootstrapFiles (with prevStage.darwin; [ system_cmds ]);
|
|
||||||
|
|
||||||
assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ CF Libsystem configd ]);
|
assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ CF Libsystem configd ]);
|
||||||
assert useAppleSDKLibs -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF Libsystem libobjc]);
|
assert useAppleSDKLibs -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF Libsystem libobjc]);
|
||||||
assert lib.all isFromNixpkgs (with prevStage.darwin; [ dyld launchd xnu ]);
|
assert lib.all isFromNixpkgs (with prevStage.darwin; [ dyld launchd xnu ]);
|
||||||
|
@ -651,7 +621,7 @@ in
|
||||||
]);
|
]);
|
||||||
|
|
||||||
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [
|
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [
|
||||||
binutils-unwrapped cctools locale libtapi print-reexports rewrite-tbd sigtool system_cmds
|
binutils-unwrapped cctools locale libtapi print-reexports rewrite-tbd sigtool
|
||||||
]);
|
]);
|
||||||
|
|
||||||
assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ CF Libsystem configd ]);
|
assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ CF Libsystem configd ]);
|
||||||
|
@ -679,8 +649,7 @@ in
|
||||||
darwin = super.darwin.overrideScope (_: superDarwin: {
|
darwin = super.darwin.overrideScope (_: superDarwin: {
|
||||||
inherit (prevStage.darwin)
|
inherit (prevStage.darwin)
|
||||||
CF Libsystem configd darwin-stubs dyld launchd libclosure libdispatch libobjc
|
CF Libsystem configd darwin-stubs dyld launchd libclosure libdispatch libobjc
|
||||||
locale objc4 postLinkSignHook print-reexports rewrite-tbd signingUtils sigtool
|
locale objc4 postLinkSignHook print-reexports rewrite-tbd signingUtils sigtool;
|
||||||
system_cmds;
|
|
||||||
|
|
||||||
# Avoid building unnecessary Python dependencies due to building LLVM manpages.
|
# Avoid building unnecessary Python dependencies due to building LLVM manpages.
|
||||||
cctools-llvm = superDarwin.cctools-llvm.override { enableManpages = false; };
|
cctools-llvm = superDarwin.cctools-llvm.override { enableManpages = false; };
|
||||||
|
@ -749,7 +718,7 @@ in
|
||||||
]);
|
]);
|
||||||
|
|
||||||
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [
|
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [
|
||||||
binutils-unwrapped cctools locale libtapi print-reexports rewrite-tbd sigtool system_cmds
|
binutils-unwrapped cctools locale libtapi print-reexports rewrite-tbd sigtool
|
||||||
]);
|
]);
|
||||||
|
|
||||||
assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ CF Libsystem configd ]);
|
assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ CF Libsystem configd ]);
|
||||||
|
@ -786,7 +755,7 @@ in
|
||||||
darwin = super.darwin.overrideScope (selfDarwin: superDarwin: {
|
darwin = super.darwin.overrideScope (selfDarwin: superDarwin: {
|
||||||
inherit (prevStage.darwin)
|
inherit (prevStage.darwin)
|
||||||
CF binutils-unwrapped cctools configd darwin-stubs launchd libobjc libtapi locale
|
CF binutils-unwrapped cctools configd darwin-stubs launchd libobjc libtapi locale
|
||||||
objc4 print-reexports rewrite-tbd signingUtils sigtool system_cmds;
|
objc4 print-reexports rewrite-tbd signingUtils sigtool;
|
||||||
});
|
});
|
||||||
|
|
||||||
llvmPackages = super.llvmPackages // (
|
llvmPackages = super.llvmPackages // (
|
||||||
|
@ -848,7 +817,7 @@ in
|
||||||
]);
|
]);
|
||||||
|
|
||||||
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [
|
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [
|
||||||
binutils-unwrapped cctools locale libtapi print-reexports rewrite-tbd sigtool system_cmds
|
binutils-unwrapped cctools locale libtapi print-reexports rewrite-tbd sigtool
|
||||||
]);
|
]);
|
||||||
|
|
||||||
assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ CF configd ]);
|
assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ CF configd ]);
|
||||||
|
@ -882,7 +851,7 @@ in
|
||||||
darwin = super.darwin.overrideScope (selfDarwin: superDarwin: {
|
darwin = super.darwin.overrideScope (selfDarwin: superDarwin: {
|
||||||
inherit (prevStage.darwin)
|
inherit (prevStage.darwin)
|
||||||
Libsystem configd darwin-stubs launchd locale print-reexports rewrite-tbd
|
Libsystem configd darwin-stubs launchd locale print-reexports rewrite-tbd
|
||||||
signingUtils sigtool system_cmds;
|
signingUtils sigtool;
|
||||||
|
|
||||||
# Rewrap binutils so it uses the rebuilt Libsystem.
|
# Rewrap binutils so it uses the rebuilt Libsystem.
|
||||||
binutils = superDarwin.binutils.override {
|
binutils = superDarwin.binutils.override {
|
||||||
|
@ -971,7 +940,7 @@ in
|
||||||
]);
|
]);
|
||||||
|
|
||||||
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [
|
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [
|
||||||
locale print-reexports rewrite-tbd sigtool system_cmds
|
locale print-reexports rewrite-tbd sigtool
|
||||||
]);
|
]);
|
||||||
assert lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [
|
assert lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [
|
||||||
binutils-unwrapped cctools libtapi
|
binutils-unwrapped cctools libtapi
|
||||||
|
@ -1011,7 +980,7 @@ in
|
||||||
inherit (prevStage.darwin)
|
inherit (prevStage.darwin)
|
||||||
CF Libsystem binutils binutils-unwrapped cctools cctools-llvm cctools-port configd
|
CF Libsystem binutils binutils-unwrapped cctools cctools-llvm cctools-port configd
|
||||||
darwin-stubs dyld launchd libclosure libdispatch libobjc libtapi locale objc4
|
darwin-stubs dyld launchd libclosure libdispatch libobjc libtapi locale objc4
|
||||||
postLinkSignHook print-reexports rewrite-tbd signingUtils sigtool system_cmds;
|
postLinkSignHook print-reexports rewrite-tbd signingUtils sigtool;
|
||||||
});
|
});
|
||||||
|
|
||||||
llvmPackages = super.llvmPackages // (
|
llvmPackages = super.llvmPackages // (
|
||||||
|
@ -1051,7 +1020,7 @@ in
|
||||||
]);
|
]);
|
||||||
|
|
||||||
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [
|
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [
|
||||||
locale print-reexports rewrite-tbd sigtool system_cmds
|
locale print-reexports rewrite-tbd sigtool
|
||||||
]);
|
]);
|
||||||
assert lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [
|
assert lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [
|
||||||
binutils-unwrapped cctools libtapi
|
binutils-unwrapped cctools libtapi
|
||||||
|
@ -1191,7 +1160,7 @@ in
|
||||||
]);
|
]);
|
||||||
|
|
||||||
assert lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [
|
assert lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [
|
||||||
binutils-unwrapped cctools libtapi locale print-reexports rewrite-tbd sigtool system_cmds
|
binutils-unwrapped cctools libtapi locale print-reexports rewrite-tbd sigtool
|
||||||
]);
|
]);
|
||||||
|
|
||||||
assert (! useAppleSDKLibs) -> lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [ CF Libsystem configd ]);
|
assert (! useAppleSDKLibs) -> lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [ CF Libsystem configd ]);
|
||||||
|
@ -1226,7 +1195,8 @@ in
|
||||||
|
|
||||||
inherit config;
|
inherit config;
|
||||||
|
|
||||||
preHook = (commonPreHook prevStage) + ''
|
preHook = ''
|
||||||
|
${commonPreHook}
|
||||||
stripDebugFlags="-S" # llvm-strip does not support "-p" for Mach-O
|
stripDebugFlags="-S" # llvm-strip does not support "-p" for Mach-O
|
||||||
export PATH_LOCALE=${prevStage.darwin.locale}/share/locale
|
export PATH_LOCALE=${prevStage.darwin.locale}/share/locale
|
||||||
'';
|
'';
|
||||||
|
@ -1324,7 +1294,6 @@ in
|
||||||
dyld
|
dyld
|
||||||
libtapi
|
libtapi
|
||||||
locale
|
locale
|
||||||
system_cmds
|
|
||||||
]
|
]
|
||||||
++ lib.optional useAppleSDKLibs [ objc4 ]
|
++ lib.optional useAppleSDKLibs [ objc4 ]
|
||||||
++ lib.optionals doSign [ postLinkSignHook sigtool signingUtils ]);
|
++ lib.optionals doSign [ postLinkSignHook sigtool signingUtils ]);
|
||||||
|
@ -1341,7 +1310,7 @@ in
|
||||||
|
|
||||||
darwin = super.darwin.overrideScope (_: _: {
|
darwin = super.darwin.overrideScope (_: _: {
|
||||||
inherit (prevStage.darwin)
|
inherit (prevStage.darwin)
|
||||||
CF ICU Libsystem darwin-stubs dyld locale libobjc libtapi system_cmds xnu;
|
CF ICU Libsystem darwin-stubs dyld locale libobjc libtapi xnu;
|
||||||
} // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) {
|
} // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) {
|
||||||
inherit (prevStage.darwin) binutils binutils-unwrapped cctools-llvm cctools-port;
|
inherit (prevStage.darwin) binutils binutils-unwrapped cctools-llvm cctools-port;
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue