mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-22 15:03:28 +00:00
darwin.stdenv: switch to top-level cctools and ld64
This commit is contained in:
parent
c922cb27b6
commit
a49dbb2544
@ -3,6 +3,7 @@
|
|||||||
stdenvNoCC,
|
stdenvNoCC,
|
||||||
cctools,
|
cctools,
|
||||||
clang-unwrapped,
|
clang-unwrapped,
|
||||||
|
ld64,
|
||||||
llvm,
|
llvm,
|
||||||
llvm-manpages,
|
llvm-manpages,
|
||||||
makeWrapper,
|
makeWrapper,
|
||||||
@ -105,10 +106,10 @@ stdenvNoCC.mkDerivation {
|
|||||||
makeWrapper "${lib.getBin clang-unwrapped}/bin/clang" "$out/bin/${targetPrefix}as" \
|
makeWrapper "${lib.getBin clang-unwrapped}/bin/clang" "$out/bin/${targetPrefix}as" \
|
||||||
--add-flags "-x assembler -integrated-as -c"
|
--add-flags "-x assembler -integrated-as -c"
|
||||||
|
|
||||||
ln -s '${lib.getBin cctools}/bin/${targetPrefix}ld' "$out/bin/${targetPrefix}ld"
|
ln -s '${lib.getBin ld64}/bin/${targetPrefix}ld' "$out/bin/${targetPrefix}ld"
|
||||||
${linkManPages (lib.getMan cctools) "ld" "ld"}
|
${linkManPages (lib.getMan ld64) "ld" "ld"}
|
||||||
# ${linkManPages (lib.getMan cctools) "ld-classic" "ld-classic"}
|
${linkManPages (lib.getMan ld64) "ld-classic" "ld-classic"}
|
||||||
${linkManPages (lib.getMan cctools) "ld64" "ld64"}
|
${linkManPages (lib.getMan ld64) "ld64" "ld64"}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
__structuredAttrs = true;
|
__structuredAttrs = true;
|
||||||
|
@ -189,6 +189,9 @@ in
|
|||||||
({}: {
|
({}: {
|
||||||
__raw = true;
|
__raw = true;
|
||||||
|
|
||||||
|
cctools = true;
|
||||||
|
ld64 = true;
|
||||||
|
|
||||||
coreutils = null;
|
coreutils = null;
|
||||||
gnugrep = null;
|
gnugrep = null;
|
||||||
|
|
||||||
@ -199,7 +202,6 @@ in
|
|||||||
apple_sdk.sdkRoot = null;
|
apple_sdk.sdkRoot = null;
|
||||||
binutils = null;
|
binutils = null;
|
||||||
binutils-unwrapped = null;
|
binutils-unwrapped = null;
|
||||||
cctools = null;
|
|
||||||
print-reexports = null;
|
print-reexports = null;
|
||||||
rewrite-tbd = null;
|
rewrite-tbd = null;
|
||||||
sigtool = null;
|
sigtool = null;
|
||||||
@ -239,36 +241,6 @@ in
|
|||||||
gnugrep = bootstrapTools;
|
gnugrep = bootstrapTools;
|
||||||
pbzx = bootstrapTools;
|
pbzx = bootstrapTools;
|
||||||
|
|
||||||
darwin = super.darwin.overrideScope (selfDarwin: superDarwin: {
|
|
||||||
# Prevent CF from being propagated to the initial stdenv. Packages that require it
|
|
||||||
# will have to manually add it to their build inputs.
|
|
||||||
CF = null;
|
|
||||||
|
|
||||||
binutils = super.wrapBintoolsWith {
|
|
||||||
name = "bootstrap-stage0-binutils-wrapper";
|
|
||||||
|
|
||||||
nativeTools = false;
|
|
||||||
nativeLibc = false;
|
|
||||||
|
|
||||||
expand-response-params = "";
|
|
||||||
libc = selfDarwin.Libsystem;
|
|
||||||
|
|
||||||
inherit lib;
|
|
||||||
inherit (self) stdenvNoCC coreutils gnugrep;
|
|
||||||
runtimeShell = self.stdenvNoCC.shell;
|
|
||||||
|
|
||||||
bintools = selfDarwin.binutils-unwrapped;
|
|
||||||
|
|
||||||
inherit (selfDarwin) postLinkSignHook signingUtils;
|
|
||||||
};
|
|
||||||
|
|
||||||
binutils-unwrapped = (superDarwin.binutils-unwrapped.overrideAttrs (old: {
|
|
||||||
version = "boot";
|
|
||||||
passthru = (old.passthru or { }) // {
|
|
||||||
isFromBootstrapFiles = true;
|
|
||||||
};
|
|
||||||
})).override { enableManpages = false; };
|
|
||||||
|
|
||||||
cctools = super.stdenv.mkDerivation {
|
cctools = super.stdenv.mkDerivation {
|
||||||
pname = "bootstrap-stage0-cctools";
|
pname = "bootstrap-stage0-cctools";
|
||||||
version = "boot";
|
version = "boot";
|
||||||
@ -284,7 +256,6 @@ in
|
|||||||
ctf_insert
|
ctf_insert
|
||||||
depinfo
|
depinfo
|
||||||
diagtest
|
diagtest
|
||||||
ld
|
|
||||||
gas
|
gas
|
||||||
gprof
|
gprof
|
||||||
install_name_tool
|
install_name_tool
|
||||||
@ -356,6 +327,55 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ld64 = bootstrapTools // {
|
||||||
|
targetPrefix = "";
|
||||||
|
version = "boot";
|
||||||
|
};
|
||||||
|
|
||||||
|
darwin = super.darwin.overrideScope (selfDarwin: superDarwin: {
|
||||||
|
# Prevent CF from being propagated to the initial stdenv. Packages that require it
|
||||||
|
# will have to manually add it to their build inputs.
|
||||||
|
CF = null;
|
||||||
|
|
||||||
|
binutils = super.wrapBintoolsWith {
|
||||||
|
name = "bootstrap-stage0-binutils-wrapper";
|
||||||
|
|
||||||
|
nativeTools = false;
|
||||||
|
nativeLibc = false;
|
||||||
|
|
||||||
|
expand-response-params = "";
|
||||||
|
libc = selfDarwin.Libsystem;
|
||||||
|
|
||||||
|
inherit lib;
|
||||||
|
inherit (self) stdenvNoCC coreutils gnugrep;
|
||||||
|
runtimeShell = self.stdenvNoCC.shell;
|
||||||
|
|
||||||
|
bintools = selfDarwin.binutils-unwrapped;
|
||||||
|
|
||||||
|
# Bootstrap tools cctools needs the hook and wrappers to make sure things are signed properly.
|
||||||
|
# This can be dropped once the bootstrap tools cctools has been updated to 1010.6.
|
||||||
|
extraBuildCommands = ''
|
||||||
|
echo 'source ${selfDarwin.postLinkSignHook}' >> $out/nix-support/post-link-hook
|
||||||
|
|
||||||
|
export signingUtils=${selfDarwin.signingUtils}
|
||||||
|
|
||||||
|
wrap \
|
||||||
|
install_name_tool ${../../build-support/bintools-wrapper/darwin-install_name_tool-wrapper.sh} \
|
||||||
|
"${selfDarwin.binutils-unwrapped}/bin/install_name_tool"
|
||||||
|
|
||||||
|
wrap \
|
||||||
|
strip ${../../build-support/bintools-wrapper/darwin-strip-wrapper.sh} \
|
||||||
|
"${selfDarwin.binutils-unwrapped}/bin/strip"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
binutils-unwrapped = (superDarwin.binutils-unwrapped.overrideAttrs (old: {
|
||||||
|
version = "boot";
|
||||||
|
passthru = (old.passthru or { }) // {
|
||||||
|
isFromBootstrapFiles = true;
|
||||||
|
};
|
||||||
|
})).override { enableManpages = false; };
|
||||||
|
|
||||||
locale = self.stdenv.mkDerivation {
|
locale = self.stdenv.mkDerivation {
|
||||||
name = "bootstrap-stage0-locale";
|
name = "bootstrap-stage0-locale";
|
||||||
buildCommand = ''
|
buildCommand = ''
|
||||||
@ -476,11 +496,11 @@ in
|
|||||||
(prevStage:
|
(prevStage:
|
||||||
# previous stage0 stdenv:
|
# previous stage0 stdenv:
|
||||||
assert lib.all isFromBootstrapFiles (
|
assert lib.all isFromBootstrapFiles (
|
||||||
with prevStage; [ bash coreutils cpio gnugrep ] ++ lib.optionals useAppleSDKLibs [ pbzx ]
|
with prevStage; [ bash cctools coreutils cpio gnugrep ld64 ] ++ lib.optionals useAppleSDKLibs [ pbzx ]
|
||||||
);
|
);
|
||||||
|
|
||||||
assert lib.all isFromBootstrapFiles (with prevStage.darwin; [
|
assert lib.all isFromBootstrapFiles (with prevStage.darwin; [
|
||||||
binutils-unwrapped cctools print-reexports rewrite-tbd sigtool
|
binutils-unwrapped print-reexports rewrite-tbd sigtool
|
||||||
]);
|
]);
|
||||||
|
|
||||||
assert (! useAppleSDKLibs) -> lib.all isFromBootstrapFiles (with prevStage.darwin; [ Libsystem ]);
|
assert (! useAppleSDKLibs) -> lib.all isFromBootstrapFiles (with prevStage.darwin; [ Libsystem ]);
|
||||||
@ -497,7 +517,7 @@ in
|
|||||||
|
|
||||||
overrides = self: super: {
|
overrides = self: super: {
|
||||||
inherit (prevStage) ccWrapperStdenv
|
inherit (prevStage) ccWrapperStdenv
|
||||||
coreutils gnugrep;
|
cctools coreutils gnugrep ld64;
|
||||||
|
|
||||||
binutils-unwrapped = builtins.throw "nothing in the Darwin bootstrap should depend on GNU binutils";
|
binutils-unwrapped = builtins.throw "nothing in the Darwin bootstrap should depend on GNU binutils";
|
||||||
curl = builtins.throw "nothing in the Darwin bootstrap can depend on curl";
|
curl = builtins.throw "nothing in the Darwin bootstrap can depend on curl";
|
||||||
@ -528,8 +548,6 @@ in
|
|||||||
});
|
});
|
||||||
|
|
||||||
darwin = super.darwin.overrideScope (selfDarwin: superDarwin: {
|
darwin = super.darwin.overrideScope (selfDarwin: superDarwin: {
|
||||||
inherit (prevStage.darwin) cctools;
|
|
||||||
|
|
||||||
apple_sdk = superDarwin.apple_sdk // {
|
apple_sdk = superDarwin.apple_sdk // {
|
||||||
inherit (prevStage.darwin.apple_sdk) sdkRoot;
|
inherit (prevStage.darwin.apple_sdk) sdkRoot;
|
||||||
};
|
};
|
||||||
@ -550,17 +568,31 @@ in
|
|||||||
# Rewrap binutils with the real Libsystem
|
# Rewrap binutils with the real Libsystem
|
||||||
binutils = superDarwin.binutils.override {
|
binutils = superDarwin.binutils.override {
|
||||||
inherit (self) coreutils;
|
inherit (self) coreutils;
|
||||||
inherit (selfDarwin) postLinkSignHook signingUtils;
|
|
||||||
|
|
||||||
bintools = selfDarwin.binutils-unwrapped;
|
bintools = selfDarwin.binutils-unwrapped;
|
||||||
libc = selfDarwin.Libsystem;
|
libc = selfDarwin.Libsystem;
|
||||||
# TODO(@sternenseemann): can this be removed?
|
# TODO(@sternenseemann): can this be removed?
|
||||||
runtimeShell = "${bootstrapTools}/bin/bash";
|
runtimeShell = "${bootstrapTools}/bin/bash";
|
||||||
|
|
||||||
|
# Bootstrap tools cctools needs the hook to make sure things are signed properly.
|
||||||
|
# This can be dropped once the bootstrap tools cctools has been updated to 1010.6.
|
||||||
|
extraBuildCommands = ''
|
||||||
|
echo 'source ${selfDarwin.postLinkSignHook}' >> $out/nix-support/post-link-hook
|
||||||
|
|
||||||
|
export signingUtils=${selfDarwin.signingUtils}
|
||||||
|
|
||||||
|
wrap \
|
||||||
|
install_name_tool ${../../build-support/bintools-wrapper/darwin-install_name_tool-wrapper.sh} \
|
||||||
|
"${selfDarwin.binutils-unwrapped}/bin/install_name_tool"
|
||||||
|
|
||||||
|
wrap \
|
||||||
|
strip ${../../build-support/bintools-wrapper/darwin-strip-wrapper.sh} \
|
||||||
|
"${selfDarwin.binutils-unwrapped}/bin/strip"
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
# Avoid building unnecessary Python dependencies due to building LLVM manpages.
|
# Avoid building unnecessary Python dependencies due to building LLVM manpages.
|
||||||
binutils-unwrapped = superDarwin.binutils-unwrapped.override {
|
binutils-unwrapped = superDarwin.binutils-unwrapped.override {
|
||||||
inherit (selfDarwin) cctools;
|
inherit (self) cctools ld64;
|
||||||
enableManpages = false;
|
enableManpages = false;
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
@ -592,7 +624,7 @@ in
|
|||||||
# Build sysctl for use by LLVM’s check phase. It must be built separately to avoid an infinite recursion.
|
# Build sysctl for use by LLVM’s check phase. It must be built separately to avoid an infinite recursion.
|
||||||
(prevStage:
|
(prevStage:
|
||||||
# previous stage1 stdenv:
|
# previous stage1 stdenv:
|
||||||
assert lib.all isFromBootstrapFiles (with prevStage; [ coreutils gnugrep ]);
|
assert lib.all isFromBootstrapFiles (with prevStage; [ cctools coreutils gnugrep ld64 ]);
|
||||||
|
|
||||||
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage; [
|
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage; [
|
||||||
autoconf automake bash bison brotli cmake cpio cyrus_sasl db
|
autoconf automake bash bison brotli cmake cpio cyrus_sasl db
|
||||||
@ -602,9 +634,8 @@ in
|
|||||||
subversion texinfo unzip which xz zlib zstd
|
subversion texinfo unzip which xz zlib zstd
|
||||||
]);
|
]);
|
||||||
|
|
||||||
assert lib.all isFromBootstrapFiles (with prevStage.darwin; [ cctools ]);
|
|
||||||
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [
|
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [
|
||||||
locale libtapi print-reexports rewrite-tbd sigtool
|
locale print-reexports rewrite-tbd sigtool
|
||||||
]);
|
]);
|
||||||
|
|
||||||
assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ Libsystem configd ]);
|
assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ Libsystem configd ]);
|
||||||
@ -623,8 +654,8 @@ in
|
|||||||
|
|
||||||
overrides = self: super: {
|
overrides = self: super: {
|
||||||
inherit (prevStage) ccWrapperStdenv
|
inherit (prevStage) ccWrapperStdenv
|
||||||
autoconf automake bash binutils-unwrapped bison brotli cmake cmakeMinimal
|
autoconf automake bash binutils-unwrapped bison brotli cctools cmake cmakeMinimal
|
||||||
coreutils cpio curl cyrus_sasl db ed expat flex gettext gmp gnugrep groff icu
|
coreutils cpio curl cyrus_sasl db ed expat flex gettext gmp gnugrep groff icu ld64
|
||||||
libedit libffi libidn2 libkrb5 libssh2 libtool libunistring libxml2 m4
|
libedit libffi libidn2 libkrb5 libssh2 libtool libunistring libxml2 m4
|
||||||
ncurses nghttp2 ninja openldap openssh openssl patchutils pbzx perl pkg-config
|
ncurses nghttp2 ninja openldap openssh openssl patchutils pbzx perl pkg-config
|
||||||
python3Minimal scons sed serf sharutils sqlite subversion texinfo unzip which xz
|
python3Minimal scons sed serf sharutils sqlite subversion texinfo unzip which xz
|
||||||
@ -645,7 +676,7 @@ in
|
|||||||
|
|
||||||
darwin = super.darwin.overrideScope (_: superDarwin: {
|
darwin = super.darwin.overrideScope (_: superDarwin: {
|
||||||
inherit (prevStage.darwin)
|
inherit (prevStage.darwin)
|
||||||
CF sdkRoot Libsystem binutils binutils-unwrapped cctools cctools-port configd darwin-stubs dyld
|
CF sdkRoot Libsystem binutils binutils-unwrapped configd darwin-stubs dtrace dyld
|
||||||
launchd libclosure libdispatch libobjc locale objc4 postLinkSignHook
|
launchd libclosure libdispatch libobjc locale objc4 postLinkSignHook
|
||||||
print-reexports rewrite-tbd signingUtils sigtool;
|
print-reexports rewrite-tbd signingUtils sigtool;
|
||||||
|
|
||||||
@ -683,21 +714,23 @@ in
|
|||||||
# but those libraries will be used in the final stdenv.
|
# but those libraries will be used in the final stdenv.
|
||||||
#
|
#
|
||||||
# Rebuild coreutils and gnugrep to avoid unwanted references to the bootstrap tools on `PATH`.
|
# Rebuild coreutils and gnugrep to avoid unwanted references to the bootstrap tools on `PATH`.
|
||||||
|
#
|
||||||
|
# The first build of cctools is deferred until this stage because it depends on LLVM headers
|
||||||
|
# that are not included in the bootstrap tools tarball.
|
||||||
(prevStage:
|
(prevStage:
|
||||||
# previous stage-sysctl stdenv:
|
# previous stage-sysctl stdenv:
|
||||||
assert lib.all isFromBootstrapFiles (with prevStage; [ coreutils gnugrep ]);
|
assert lib.all isFromBootstrapFiles (with prevStage; [ cctools coreutils gnugrep ld64 ]);
|
||||||
|
|
||||||
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage; [
|
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage; [
|
||||||
atf autoconf automake bash bison brotli cmake cpio cyrus_sasl db
|
atf autoconf automake bash bison brotli cmake cpio cyrus_sasl db
|
||||||
ed expat flex gettext gmp groff icu kyua libedit libffi libiconv libidn2 libkrb5 libssh2
|
ed expat flex gettext gmp groff icu kyua libedit libffi libiconv libidn2 libkrb5 libssh2
|
||||||
libtool libunistring libxml2 m4 meson ncurses nghttp2 ninja openldap openssh openssl
|
libtapi libtool libunistring libxml2 m4 meson ncurses nghttp2 ninja openldap openssh openssl
|
||||||
patchutils pbzx perl pkg-config.pkg-config python3 python3Minimal scons serf sqlite
|
patchutils pbzx perl pkg-config.pkg-config python3 python3Minimal scons serf sqlite
|
||||||
subversion sysctl.provider texinfo unzip which xz zlib zstd
|
subversion sysctl.provider texinfo unzip which xz zlib zstd
|
||||||
]);
|
]);
|
||||||
|
|
||||||
assert lib.all isFromBootstrapFiles (with prevStage.darwin; [ cctools ]);
|
|
||||||
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [
|
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [
|
||||||
locale libtapi print-reexports rewrite-tbd sigtool
|
locale print-reexports rewrite-tbd sigtool
|
||||||
]);
|
]);
|
||||||
|
|
||||||
assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ Libsystem configd ]);
|
assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ Libsystem configd ]);
|
||||||
@ -720,6 +753,9 @@ in
|
|||||||
openldap openssh openssl patchutils pbzx perl pkg-config python3 python3Minimal
|
openldap openssh openssl patchutils pbzx perl pkg-config python3 python3Minimal
|
||||||
scons sed serf sharutils sqlite subversion sysctl texinfo unzip which xz zlib zstd;
|
scons sed serf sharutils sqlite subversion sysctl texinfo unzip which xz zlib zstd;
|
||||||
|
|
||||||
|
# Disable ld64’s install check phase because the required LTO libraries are not built yet.
|
||||||
|
ld64 = super.ld64.overrideAttrs { doInstallCheck = false; };
|
||||||
|
|
||||||
darwin = super.darwin.overrideScope (selfDarwin: superDarwin: {
|
darwin = super.darwin.overrideScope (selfDarwin: 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
|
||||||
@ -784,8 +820,8 @@ in
|
|||||||
(prevStage:
|
(prevStage:
|
||||||
# previous stage-xclang stdenv:
|
# previous stage-xclang stdenv:
|
||||||
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage; [
|
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage; [
|
||||||
atf autoconf automake bash bison cmake cmakeMinimal coreutils cpio
|
atf autoconf automake bash bison cctools cmake cmakeMinimal coreutils cpio
|
||||||
cyrus_sasl db ed expat flex gettext gmp gnugrep groff icu kyua libedit libtool m4 meson ninja
|
cyrus_sasl db ed expat flex gettext gmp gnugrep groff icu kyua ld64 libedit libtapi libtool m4 meson ninja
|
||||||
openbsm openldap openpam openssh patchutils pbzx perl pkg-config.pkg-config python3
|
openbsm openldap openpam openssh patchutils pbzx perl pkg-config.pkg-config python3
|
||||||
python3Minimal scons serf sqlite subversion sysctl.provider texinfo unzip which xz
|
python3Minimal scons serf sqlite subversion sysctl.provider texinfo unzip which xz
|
||||||
]);
|
]);
|
||||||
@ -796,7 +832,7 @@ in
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [
|
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [
|
||||||
cctools locale libtapi print-reexports rewrite-tbd sigtool
|
locale print-reexports rewrite-tbd sigtool
|
||||||
]);
|
]);
|
||||||
|
|
||||||
assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ Libsystem configd ]);
|
assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ Libsystem configd ]);
|
||||||
@ -816,9 +852,9 @@ in
|
|||||||
|
|
||||||
overrides = self: super: {
|
overrides = self: super: {
|
||||||
inherit (prevStage) ccWrapperStdenv
|
inherit (prevStage) ccWrapperStdenv
|
||||||
atf autoconf automake binutils-unwrapped bison brotli cmake cmakeMinimal coreutils
|
atf autoconf automake binutils-unwrapped bison brotli cctools cmake cmakeMinimal coreutils
|
||||||
cpio curl cyrus_sasl db ed expat flex gettext gmp gnugrep groff icu kyua libedit libffi
|
cpio curl cyrus_sasl db ed expat flex gettext gmp gnugrep groff icu kyua ld64 libedit libffi
|
||||||
libiconv libidn2 libkrb5 libssh2 libtool libunistring libxml2 m4 meson ncurses nghttp2
|
libiconv libidn2 libkrb5 libssh2 libtapi libtool libunistring libxml2 m4 meson ncurses nghttp2
|
||||||
ninja openbsm openldap openpam openssh openssl patchutils pbzx perl pkg-config
|
ninja openbsm openldap openpam openssh openssl patchutils pbzx perl pkg-config
|
||||||
python3 python3Minimal scons serf sqlite subversion sysctl texinfo unzip which xz
|
python3 python3Minimal scons serf sqlite subversion sysctl texinfo unzip which xz
|
||||||
zlib zstd;
|
zlib zstd;
|
||||||
@ -898,9 +934,9 @@ in
|
|||||||
(prevStage:
|
(prevStage:
|
||||||
# previous stage2 stdenv:
|
# previous stage2 stdenv:
|
||||||
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage; [
|
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage; [
|
||||||
autoconf automake bison brotli cmake cmakeMinimal coreutils cpio cyrus_sasl
|
autoconf automake bison brotli cctools cmake cmakeMinimal coreutils cpio cyrus_sasl
|
||||||
db ed expat flex gettext gmp gnugrep groff libedit libffi libiconv libidn2 libkrb5 libssh2 libtool
|
db ed expat flex gettext gmp gnugrep groff icu ld64 libedit libffi libiconv libidn2 libkrb5 libssh2 libtool
|
||||||
libunistring libxml2 m4 meson ncurses nghttp2 ninja openbsm openldap openpam openssh openssl
|
libtapi libunistring libxml2 m4 meson ncurses nghttp2 ninja openbsm openldap openpam openssh openssl
|
||||||
patchutils pbzx perl pkg-config.pkg-config python3 python3Minimal scons serf sqlite
|
patchutils pbzx perl pkg-config.pkg-config python3 python3Minimal scons serf sqlite
|
||||||
subversion sysctl.provider texinfo unzip which xz zstd zlib
|
subversion sysctl.provider texinfo unzip which xz zstd zlib
|
||||||
]);
|
]);
|
||||||
@ -909,9 +945,6 @@ in
|
|||||||
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [
|
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [
|
||||||
locale print-reexports rewrite-tbd sigtool
|
locale print-reexports rewrite-tbd sigtool
|
||||||
]);
|
]);
|
||||||
assert lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [
|
|
||||||
cctools libtapi
|
|
||||||
]);
|
|
||||||
|
|
||||||
assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ configd ]);
|
assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ configd ]);
|
||||||
assert (! useAppleSDKLibs) -> lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [ Libsystem ]);
|
assert (! useAppleSDKLibs) -> lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [ Libsystem ]);
|
||||||
@ -944,8 +977,8 @@ in
|
|||||||
|
|
||||||
darwin = super.darwin.overrideScope (selfDarwin: superDarwin: {
|
darwin = super.darwin.overrideScope (selfDarwin: superDarwin: {
|
||||||
inherit (prevStage.darwin)
|
inherit (prevStage.darwin)
|
||||||
CF Libsystem binutils binutils-unwrapped cctools cctools-port configd
|
CF Libsystem binutils binutils-unwrapped configd
|
||||||
darwin-stubs dyld launchd libclosure libdispatch libobjc libtapi locale objc4
|
darwin-stubs dyld launchd libclosure libdispatch libobjc locale objc4
|
||||||
postLinkSignHook print-reexports rewrite-tbd signingUtils sigtool;
|
postLinkSignHook print-reexports rewrite-tbd signingUtils sigtool;
|
||||||
|
|
||||||
apple_sdk = superDarwin.apple_sdk // {
|
apple_sdk = superDarwin.apple_sdk // {
|
||||||
@ -986,15 +1019,12 @@ in
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
assert lib.all isBuiltByNixpkgsCompiler (with prevStage; [
|
assert lib.all isBuiltByNixpkgsCompiler (with prevStage; [
|
||||||
bash icu libffi libiconv libxml2 zlib
|
bash cctools icu ld64 libtapi libffi libiconv libxml2 zlib
|
||||||
]);
|
]);
|
||||||
|
|
||||||
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [
|
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [
|
||||||
locale print-reexports rewrite-tbd sigtool
|
locale print-reexports rewrite-tbd sigtool
|
||||||
]);
|
]);
|
||||||
assert lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [
|
|
||||||
cctools libtapi
|
|
||||||
]);
|
|
||||||
|
|
||||||
assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ configd ]);
|
assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ configd ]);
|
||||||
assert (! useAppleSDKLibs) -> lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [ Libsystem ]);
|
assert (! useAppleSDKLibs) -> lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [ Libsystem ]);
|
||||||
@ -1013,7 +1043,7 @@ in
|
|||||||
overrides = self: super: {
|
overrides = self: super: {
|
||||||
inherit (prevStage) ccWrapperStdenv
|
inherit (prevStage) ccWrapperStdenv
|
||||||
autoconf automake bash binutils-unwrapped bison cmake cmakeMinimal curl cyrus_sasl db expat flex groff
|
autoconf automake bash binutils-unwrapped bison cmake cmakeMinimal curl cyrus_sasl db expat flex groff
|
||||||
libedit libtool m4 meson ninja openldap openssh patchutils perl pkg-config python3 scons
|
libedit libtool m4 meson ninja openldap openssh patchutils perl pkg-config python3 python3Minimal scons
|
||||||
serf sqlite subversion sysctl texinfo unzip which
|
serf sqlite subversion sysctl texinfo unzip which
|
||||||
|
|
||||||
# CF dependencies - don’t rebuild them.
|
# CF dependencies - don’t rebuild them.
|
||||||
@ -1141,15 +1171,13 @@ in
|
|||||||
(prevStage:
|
(prevStage:
|
||||||
# previous stage4 stdenv:
|
# previous stage4 stdenv:
|
||||||
assert lib.all isBuiltByNixpkgsCompiler (with prevStage; [
|
assert lib.all isBuiltByNixpkgsCompiler (with prevStage; [
|
||||||
bash brotli bzip2 cpio diffutils ed file findutils gawk
|
bash brotli bzip2 cctools cpio diffutils ed file findutils gawk
|
||||||
gettext gmp gnugrep gnumake gnused gnutar gzip icu libffi libiconv libidn2 libkrb5
|
gettext gmp gnugrep gnumake gnused gnutar gzip icu ld64 libffi libiconv libidn2 libkrb5
|
||||||
libssh2 libunistring libxml2 libyaml ncurses nghttp2 openbsm openpam openssl patch
|
libssh2 libtapi libunistring libxml2 libyaml ncurses nghttp2 openbsm openpam openssl patch
|
||||||
pbzx pcre python3Minimal xar xz zlib zstd
|
pbzx pcre xar xz zlib zstd
|
||||||
]);
|
]);
|
||||||
|
|
||||||
assert lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [
|
assert lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [ locale print-reexports rewrite-tbd sigtool ]);
|
||||||
cctools libtapi locale print-reexports rewrite-tbd sigtool
|
|
||||||
]);
|
|
||||||
|
|
||||||
assert (! useAppleSDKLibs) -> lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [ Libsystem configd ]);
|
assert (! useAppleSDKLibs) -> lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [ Libsystem configd ]);
|
||||||
assert (! useAppleSDKLibs) -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF ]);
|
assert (! useAppleSDKLibs) -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF ]);
|
||||||
@ -1162,13 +1190,11 @@ in
|
|||||||
|
|
||||||
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage; [
|
assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage; [
|
||||||
autoconf automake bison cmake cmakeMinimal cyrus_sasl db expat flex groff libedit
|
autoconf automake bison cmake cmakeMinimal cyrus_sasl db expat flex groff libedit
|
||||||
libtool m4 meson ninja openldap openssh patchutils perl pkg-config.pkg-config python3 scons
|
libtool m4 meson ninja openldap openssh patchutils perl pkg-config.pkg-config python3 python3Minimal scons
|
||||||
serf sqlite subversion sysctl.provider texinfo unzip which
|
serf sqlite subversion sysctl.provider texinfo unzip which
|
||||||
]);
|
]);
|
||||||
|
|
||||||
let
|
let
|
||||||
doSign = localSystem.isAarch64;
|
|
||||||
|
|
||||||
cc = prevStage.llvmPackages.clang;
|
cc = prevStage.llvmPackages.clang;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
@ -1220,6 +1246,10 @@ in
|
|||||||
bzip2.bin
|
bzip2.bin
|
||||||
bzip2.out
|
bzip2.out
|
||||||
cc.expand-response-params
|
cc.expand-response-params
|
||||||
|
cctools
|
||||||
|
ld64.out
|
||||||
|
ld64.lib
|
||||||
|
libtapi.out
|
||||||
coreutils
|
coreutils
|
||||||
darwin.binutils
|
darwin.binutils
|
||||||
darwin.binutils.bintools
|
darwin.binutils.bintools
|
||||||
@ -1246,13 +1276,14 @@ in
|
|||||||
ncurses.out
|
ncurses.out
|
||||||
openbsm
|
openbsm
|
||||||
openpam
|
openpam
|
||||||
|
openssl.out
|
||||||
patch
|
patch
|
||||||
|
xar
|
||||||
xz.bin
|
xz.bin
|
||||||
xz.out
|
xz.out
|
||||||
zlib.dev
|
zlib.dev
|
||||||
zlib.out
|
zlib.out
|
||||||
]
|
])
|
||||||
++ lib.optionals doSign [ openssl.out ])
|
|
||||||
++ lib.optionals localSystem.isAarch64 [
|
++ lib.optionals localSystem.isAarch64 [
|
||||||
prevStage.updateAutotoolsGnuConfigScriptsHook
|
prevStage.updateAutotoolsGnuConfigScriptsHook
|
||||||
prevStage.gnu-config
|
prevStage.gnu-config
|
||||||
@ -1272,14 +1303,11 @@ in
|
|||||||
++ (with prevStage.darwin; [
|
++ (with prevStage.darwin; [
|
||||||
CF
|
CF
|
||||||
Libsystem
|
Libsystem
|
||||||
cctools-port
|
|
||||||
dyld
|
dyld
|
||||||
libtapi
|
|
||||||
locale
|
locale
|
||||||
apple_sdk.sdkRoot
|
apple_sdk.sdkRoot
|
||||||
]
|
]
|
||||||
++ lib.optional useAppleSDKLibs [ objc4 ]
|
++ lib.optionals useAppleSDKLibs [ objc4 ]);
|
||||||
++ lib.optionals doSign [ postLinkSignHook sigtool signingUtils ]);
|
|
||||||
|
|
||||||
__stdenvImpureHostDeps = commonImpureHostDeps;
|
__stdenvImpureHostDeps = commonImpureHostDeps;
|
||||||
__extraImpureHostDeps = commonImpureHostDeps;
|
__extraImpureHostDeps = commonImpureHostDeps;
|
||||||
@ -1293,15 +1321,16 @@ in
|
|||||||
|
|
||||||
darwin = super.darwin.overrideScope (_: superDarwin: {
|
darwin = super.darwin.overrideScope (_: superDarwin: {
|
||||||
inherit (prevStage.darwin)
|
inherit (prevStage.darwin)
|
||||||
CF ICU Libsystem darwin-stubs dyld locale libobjc libtapi rewrite-tbd xnu;
|
CF ICU Libsystem darwin-stubs dyld locale libobjc rewrite-tbd xnu;
|
||||||
|
|
||||||
apple_sdk = superDarwin.apple_sdk // {
|
apple_sdk = superDarwin.apple_sdk // {
|
||||||
inherit (prevStage.darwin.apple_sdk) sdkRoot;
|
inherit (prevStage.darwin.apple_sdk) sdkRoot;
|
||||||
};
|
};
|
||||||
} // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) {
|
} // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) {
|
||||||
inherit (prevStage.darwin) binutils binutils-unwrapped cctools-port;
|
inherit (prevStage.darwin) binutils binutils-unwrapped;
|
||||||
});
|
});
|
||||||
} // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) {
|
} // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) {
|
||||||
|
inherit (prevStage) cctools ld64 libtapi;
|
||||||
inherit (prevStage.llvmPackages) clang llvm;
|
inherit (prevStage.llvmPackages) clang llvm;
|
||||||
|
|
||||||
# Need to get rid of these when cross-compiling.
|
# Need to get rid of these when cross-compiling.
|
||||||
@ -1320,13 +1349,14 @@ in
|
|||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
# This "no-op" stage is just a place to put the assertions about stage6.
|
# This "no-op" stage is just a place to put the assertions about the final stage.
|
||||||
(prevStage:
|
(prevStage:
|
||||||
# previous final stage stdenv:
|
# previous final stage stdenv:
|
||||||
|
assert isBuiltByNixpkgsCompiler prevStage.cctools;
|
||||||
|
assert isBuiltByNixpkgsCompiler prevStage.ld64;
|
||||||
assert isBuiltByNixpkgsCompiler prevStage.darwin.sigtool;
|
assert isBuiltByNixpkgsCompiler prevStage.darwin.sigtool;
|
||||||
assert isBuiltByNixpkgsCompiler prevStage.darwin.print-reexports;
|
assert isBuiltByNixpkgsCompiler prevStage.darwin.print-reexports;
|
||||||
assert isBuiltByNixpkgsCompiler prevStage.darwin.rewrite-tbd;
|
assert isBuiltByNixpkgsCompiler prevStage.darwin.rewrite-tbd;
|
||||||
assert isBuiltByNixpkgsCompiler prevStage.darwin.cctools;
|
|
||||||
|
|
||||||
assert isFromNixpkgs prevStage.darwin.CF;
|
assert isFromNixpkgs prevStage.darwin.CF;
|
||||||
assert isFromNixpkgs prevStage.darwin.Libsystem;
|
assert isFromNixpkgs prevStage.darwin.Libsystem;
|
||||||
|
@ -90,7 +90,7 @@ impure-cmds // appleSourcePackages // chooseLibs // {
|
|||||||
};
|
};
|
||||||
|
|
||||||
binutils-unwrapped = callPackage ../os-specific/darwin/binutils {
|
binutils-unwrapped = callPackage ../os-specific/darwin/binutils {
|
||||||
inherit (self) cctools;
|
inherit (pkgs) cctools;
|
||||||
inherit (pkgs.llvmPackages) clang-unwrapped llvm llvm-manpages;
|
inherit (pkgs.llvmPackages) clang-unwrapped llvm llvm-manpages;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -135,17 +135,7 @@ impure-cmds // appleSourcePackages // chooseLibs // {
|
|||||||
|
|
||||||
cctools = self.cctools-port;
|
cctools = self.cctools-port;
|
||||||
|
|
||||||
cctools-apple = callPackage ../os-specific/darwin/cctools/apple.nix {
|
cctools-port = pkgs.cctools;
|
||||||
stdenv = if stdenv.isDarwin then stdenv else pkgs.libcxxStdenv;
|
|
||||||
};
|
|
||||||
|
|
||||||
cctools-llvm = callPackage ../os-specific/darwin/cctools/llvm.nix {
|
|
||||||
stdenv = if stdenv.isDarwin then stdenv else pkgs.libcxxStdenv;
|
|
||||||
};
|
|
||||||
|
|
||||||
cctools-port = callPackage ../os-specific/darwin/cctools/port.nix {
|
|
||||||
stdenv = if stdenv.isDarwin then stdenv else pkgs.libcxxStdenv;
|
|
||||||
};
|
|
||||||
|
|
||||||
# TODO(@connorbaker): See https://github.com/NixOS/nixpkgs/issues/229389.
|
# TODO(@connorbaker): See https://github.com/NixOS/nixpkgs/issues/229389.
|
||||||
cf-private = self.apple_sdk.frameworks.CoreFoundation;
|
cf-private = self.apple_sdk.frameworks.CoreFoundation;
|
||||||
@ -245,7 +235,7 @@ impure-cmds // appleSourcePackages // chooseLibs // {
|
|||||||
# As the name says, this is broken, but I don't want to lose it since it's a direction we want to go in
|
# As the name says, this is broken, but I don't want to lose it since it's a direction we want to go in
|
||||||
# libdispatch-broken = callPackage ../os-specific/darwin/swift-corelibs/libdispatch.nix { };
|
# libdispatch-broken = callPackage ../os-specific/darwin/swift-corelibs/libdispatch.nix { };
|
||||||
|
|
||||||
libtapi = callPackage ../os-specific/darwin/libtapi {};
|
libtapi = pkgs.libtapi;
|
||||||
|
|
||||||
ios-deploy = callPackage ../os-specific/darwin/ios-deploy {};
|
ios-deploy = callPackage ../os-specific/darwin/ios-deploy {};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user