darwin/stdenv: assemble full clang toolchain
Adapted from main expression for clang 7.
This commit is contained in:
parent
7f1a82d476
commit
86ee107a15
@ -24,6 +24,8 @@ assert crossSystem == localSystem;
|
|||||||
let
|
let
|
||||||
inherit (localSystem) system platform;
|
inherit (localSystem) system platform;
|
||||||
|
|
||||||
|
bootstrapClangVersion = "7.1.0";
|
||||||
|
|
||||||
commonImpureHostDeps = [
|
commonImpureHostDeps = [
|
||||||
"/bin/sh"
|
"/bin/sh"
|
||||||
"/usr/lib/libSystem.B.dylib"
|
"/usr/lib/libSystem.B.dylib"
|
||||||
@ -90,7 +92,18 @@ in rec {
|
|||||||
inherit shell;
|
inherit shell;
|
||||||
inherit (last) stdenvNoCC;
|
inherit (last) stdenvNoCC;
|
||||||
|
|
||||||
extraPackages = [];
|
extraPackages = [
|
||||||
|
# last.pkgs.llvmPackages_7.libcxxabi # TODO: is this required? if not, why not?
|
||||||
|
last.pkgs.llvmPackages_7.compiler-rt
|
||||||
|
];
|
||||||
|
|
||||||
|
extraBuildCommands = ''
|
||||||
|
rsrc="$out/resource-root"
|
||||||
|
mkdir "$rsrc"
|
||||||
|
ln -s "${bootstrapTools}/lib/clang/${bootstrapClangVersion}/include" "$rsrc"
|
||||||
|
ln -s "${last.pkgs.llvmPackages_7.compiler-rt.out}/lib" "$rsrc/lib"
|
||||||
|
echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
|
||||||
|
'';
|
||||||
|
|
||||||
nativeTools = false;
|
nativeTools = false;
|
||||||
nativeLibc = false;
|
nativeLibc = false;
|
||||||
@ -180,6 +193,15 @@ in rec {
|
|||||||
ln -s ${bootstrapTools}/lib/libc++abi.dylib $out/lib/libc++abi.dylib
|
ln -s ${bootstrapTools}/lib/libc++abi.dylib $out/lib/libc++abi.dylib
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
compiler-rt = stdenv.mkDerivation {
|
||||||
|
name = "bootstrap-stage0-compiler-rt";
|
||||||
|
buildCommand = ''
|
||||||
|
mkdir -p $out/lib
|
||||||
|
ln -s ${bootstrapTools}/lib/libclang_rt* $out/lib
|
||||||
|
ln -s ${bootstrapTools}/lib/darwin $out/lib/darwin
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -195,6 +217,12 @@ in rec {
|
|||||||
python3 = super.python3Minimal;
|
python3 = super.python3Minimal;
|
||||||
|
|
||||||
ninja = super.ninja.override { buildDocs = false; };
|
ninja = super.ninja.override { buildDocs = false; };
|
||||||
|
|
||||||
|
llvmPackages_7 = super.llvmPackages_7 // (let
|
||||||
|
libraries = super.llvmPackages_7.libraries.extend (_: _: {
|
||||||
|
inherit (llvmPackages_7) compiler-rt;
|
||||||
|
});
|
||||||
|
in { inherit libraries; } // libraries);
|
||||||
};
|
};
|
||||||
in with prevStage; stageFun 1 prevStage {
|
in with prevStage; stageFun 1 prevStage {
|
||||||
extraPreHook = "export NIX_CFLAGS_COMPILE+=\" -F${bootstrapTools}/Library/Frameworks\"";
|
extraPreHook = "export NIX_CFLAGS_COMPILE+=\" -F${bootstrapTools}/Library/Frameworks\"";
|
||||||
@ -203,7 +231,9 @@ in rec {
|
|||||||
libcxx = pkgs.libcxx;
|
libcxx = pkgs.libcxx;
|
||||||
|
|
||||||
allowedRequisites =
|
allowedRequisites =
|
||||||
[ bootstrapTools ] ++ (with pkgs; [ libcxx libcxxabi ]) ++ [ pkgs.darwin.Libsystem ];
|
[ bootstrapTools ] ++
|
||||||
|
(with pkgs; [ libcxx libcxxabi llvmPackages_7.compiler-rt ]) ++
|
||||||
|
(with pkgs.darwin; [ Libsystem ]);
|
||||||
|
|
||||||
overrides = persistent;
|
overrides = persistent;
|
||||||
};
|
};
|
||||||
@ -217,6 +247,12 @@ in rec {
|
|||||||
findfreetype libssh curl cmake autoconf automake libtool ed cpio coreutils
|
findfreetype libssh curl cmake autoconf automake libtool ed cpio coreutils
|
||||||
libssh2 nghttp2 libkrb5 ninja;
|
libssh2 nghttp2 libkrb5 ninja;
|
||||||
|
|
||||||
|
llvmPackages_7 = super.llvmPackages_7 // (let
|
||||||
|
libraries = super.llvmPackages_7.libraries.extend (_: _: {
|
||||||
|
inherit (llvmPackages_7) compiler-rt;
|
||||||
|
});
|
||||||
|
in { inherit libraries; } // libraries);
|
||||||
|
|
||||||
darwin = super.darwin // {
|
darwin = super.darwin // {
|
||||||
inherit (darwin)
|
inherit (darwin)
|
||||||
dyld Libsystem xnu configd ICU libdispatch libclosure launchd CF;
|
dyld Libsystem xnu configd ICU libdispatch libclosure launchd CF;
|
||||||
@ -234,8 +270,8 @@ in rec {
|
|||||||
allowedRequisites =
|
allowedRequisites =
|
||||||
[ bootstrapTools ] ++
|
[ bootstrapTools ] ++
|
||||||
(with pkgs; [
|
(with pkgs; [
|
||||||
xz.bin xz.out libcxx libcxxabi zlib libxml2.out curl.out openssl.out libssh2.out
|
xz.bin xz.out libcxx libcxxabi llvmPackages_7.compiler-rt zlib
|
||||||
nghttp2.lib libkrb5
|
libxml2.out curl.out openssl.out libssh2.out nghttp2.lib libkrb5
|
||||||
]) ++
|
]) ++
|
||||||
(with pkgs.darwin; [ dyld Libsystem CF ICU locale ]);
|
(with pkgs.darwin; [ dyld Libsystem CF ICU locale ]);
|
||||||
|
|
||||||
@ -284,8 +320,8 @@ in rec {
|
|||||||
allowedRequisites =
|
allowedRequisites =
|
||||||
[ bootstrapTools ] ++
|
[ bootstrapTools ] ++
|
||||||
(with pkgs; [
|
(with pkgs; [
|
||||||
xz.bin xz.out bash libcxx libcxxabi zlib libxml2.out curl.out openssl.out libssh2.out
|
xz.bin xz.out bash libcxx libcxxabi llvmPackages_7.compiler-rt zlib
|
||||||
nghttp2.lib libkrb5
|
libxml2.out curl.out openssl.out libssh2.out nghttp2.lib libkrb5
|
||||||
]) ++
|
]) ++
|
||||||
(with pkgs.darwin; [ dyld ICU Libsystem locale ]);
|
(with pkgs.darwin; [ dyld ICU Libsystem locale ]);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user