forked from mirrors/nixpkgs
Merge pull request #42034 from obsidiansystems/darwin-booting-llvm
darwin bootstrapping: Avoid overriding aliases for LLVM
This commit is contained in:
commit
4ad049fba0
|
@ -16,7 +16,7 @@ let
|
||||||
compiler-rt_src = fetch "compiler-rt" "10c1mz2q4bdq9bqfgr3dirc6hz1h3sq8573srd5q5lr7m7j6jiwx";
|
compiler-rt_src = fetch "compiler-rt" "10c1mz2q4bdq9bqfgr3dirc6hz1h3sq8573srd5q5lr7m7j6jiwx";
|
||||||
clang-tools-extra_src = fetch "clang-tools-extra" "0sxw2l3q5msbrwxv1ck72arggdw6n5ysi929gi69ikniranfv4aa";
|
clang-tools-extra_src = fetch "clang-tools-extra" "0sxw2l3q5msbrwxv1ck72arggdw6n5ysi929gi69ikniranfv4aa";
|
||||||
|
|
||||||
tools = let
|
tools = stdenv.lib.makeExtensible (tools: let
|
||||||
callPackage = newScope (tools // { inherit stdenv isl version fetch; });
|
callPackage = newScope (tools // { inherit stdenv isl version fetch; });
|
||||||
in {
|
in {
|
||||||
llvm = callPackage ./llvm.nix {
|
llvm = callPackage ./llvm.nix {
|
||||||
|
@ -41,9 +41,9 @@ let
|
||||||
};
|
};
|
||||||
|
|
||||||
lldb = callPackage ./lldb.nix {};
|
lldb = callPackage ./lldb.nix {};
|
||||||
};
|
});
|
||||||
|
|
||||||
libraries = let
|
libraries = stdenv.lib.makeExtensible (libraries: let
|
||||||
callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv isl version fetch; });
|
callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv isl version fetch; });
|
||||||
in {
|
in {
|
||||||
|
|
||||||
|
@ -54,6 +54,6 @@ let
|
||||||
libcxx = callPackage ./libc++ {};
|
libcxx = callPackage ./libc++ {};
|
||||||
|
|
||||||
libcxxabi = callPackage ./libc++abi.nix {};
|
libcxxabi = callPackage ./libc++abi.nix {};
|
||||||
};
|
});
|
||||||
|
|
||||||
in { inherit tools libraries; } // libraries // tools
|
in { inherit tools libraries; } // libraries // tools
|
||||||
|
|
|
@ -15,7 +15,7 @@ let
|
||||||
compiler-rt_src = fetch "compiler-rt" "0p0y85c7izndbpg2l816z7z7558axq11d5pwkm4h11sdw7d13w0d";
|
compiler-rt_src = fetch "compiler-rt" "0p0y85c7izndbpg2l816z7z7558axq11d5pwkm4h11sdw7d13w0d";
|
||||||
clang-tools-extra_src = fetch "clang-tools-extra" "15n39r4ssphpaq4a0wzyjm7ilwxb0bch6nrapy8c5s8d49h5qjk6";
|
clang-tools-extra_src = fetch "clang-tools-extra" "15n39r4ssphpaq4a0wzyjm7ilwxb0bch6nrapy8c5s8d49h5qjk6";
|
||||||
|
|
||||||
tools = let
|
tools = stdenv.lib.makeExtensible (tools: let
|
||||||
callPackage = newScope (tools // { inherit stdenv isl version fetch; });
|
callPackage = newScope (tools // { inherit stdenv isl version fetch; });
|
||||||
in {
|
in {
|
||||||
llvm = callPackage ./llvm.nix {
|
llvm = callPackage ./llvm.nix {
|
||||||
|
@ -41,9 +41,9 @@ let
|
||||||
};
|
};
|
||||||
|
|
||||||
lldb = callPackage ./lldb.nix {};
|
lldb = callPackage ./lldb.nix {};
|
||||||
};
|
});
|
||||||
|
|
||||||
libraries = let
|
libraries = stdenv.lib.makeExtensible (libraries: let
|
||||||
callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv isl version fetch; });
|
callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv isl version fetch; });
|
||||||
in {
|
in {
|
||||||
|
|
||||||
|
@ -54,6 +54,6 @@ let
|
||||||
libcxx = callPackage ./libc++ {};
|
libcxx = callPackage ./libc++ {};
|
||||||
|
|
||||||
libcxxabi = callPackage ./libc++abi.nix {};
|
libcxxabi = callPackage ./libc++abi.nix {};
|
||||||
};
|
});
|
||||||
|
|
||||||
in { inherit tools libraries; } // libraries // tools
|
in { inherit tools libraries; } // libraries // tools
|
||||||
|
|
|
@ -15,7 +15,7 @@ let
|
||||||
compiler-rt_src = fetch "compiler-rt" "16gc2gdmp5c800qvydrdhsp0bzb97s8wrakl6i8a4lgslnqnf2fk";
|
compiler-rt_src = fetch "compiler-rt" "16gc2gdmp5c800qvydrdhsp0bzb97s8wrakl6i8a4lgslnqnf2fk";
|
||||||
clang-tools-extra_src = fetch "clang-tools-extra" "0d9nh7j7brbh9avigcn69dlaihsl9p3cf9s45mw6fxzzvrdvd999";
|
clang-tools-extra_src = fetch "clang-tools-extra" "0d9nh7j7brbh9avigcn69dlaihsl9p3cf9s45mw6fxzzvrdvd999";
|
||||||
|
|
||||||
tools = let
|
tools = stdenv.lib.makeExtensible (tools: let
|
||||||
callPackage = newScope (tools // { inherit stdenv isl version fetch; });
|
callPackage = newScope (tools // { inherit stdenv isl version fetch; });
|
||||||
in {
|
in {
|
||||||
llvm = callPackage ./llvm.nix {
|
llvm = callPackage ./llvm.nix {
|
||||||
|
@ -41,9 +41,9 @@ let
|
||||||
};
|
};
|
||||||
|
|
||||||
lldb = callPackage ./lldb.nix {};
|
lldb = callPackage ./lldb.nix {};
|
||||||
};
|
});
|
||||||
|
|
||||||
libraries = let
|
libraries = stdenv.lib.makeExtensible (libraries: let
|
||||||
callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv isl version fetch; });
|
callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv isl version fetch; });
|
||||||
in {
|
in {
|
||||||
|
|
||||||
|
@ -54,6 +54,6 @@ let
|
||||||
libcxx = callPackage ./libc++ {};
|
libcxx = callPackage ./libc++ {};
|
||||||
|
|
||||||
libcxxabi = callPackage ./libc++abi.nix {};
|
libcxxabi = callPackage ./libc++abi.nix {};
|
||||||
};
|
});
|
||||||
|
|
||||||
in { inherit tools libraries; } // libraries // tools
|
in { inherit tools libraries; } // libraries // tools
|
||||||
|
|
|
@ -22,7 +22,7 @@ let
|
||||||
let drv-manpages = drv.override { enableManpages = true; }; in
|
let drv-manpages = drv.override { enableManpages = true; }; in
|
||||||
drv // { man = drv-manpages.out; /*outputs = drv.outputs ++ ["man"];*/ };
|
drv // { man = drv-manpages.out; /*outputs = drv.outputs ++ ["man"];*/ };
|
||||||
|
|
||||||
tools = let
|
tools = stdenv.lib.makeExtensible (tools: let
|
||||||
callPackage = newScope (tools // { inherit stdenv cmake libxml2 python2 isl release_version version fetch; });
|
callPackage = newScope (tools // { inherit stdenv cmake libxml2 python2 isl release_version version fetch; });
|
||||||
in {
|
in {
|
||||||
|
|
||||||
|
@ -52,9 +52,9 @@ let
|
||||||
lld = callPackage ./lld.nix {};
|
lld = callPackage ./lld.nix {};
|
||||||
|
|
||||||
lldb = callPackage ./lldb.nix {};
|
lldb = callPackage ./lldb.nix {};
|
||||||
};
|
});
|
||||||
|
|
||||||
libraries = let
|
libraries = stdenv.lib.makeExtensible (libraries: let
|
||||||
callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python2 isl release_version version fetch; });
|
callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python2 isl release_version version fetch; });
|
||||||
in {
|
in {
|
||||||
|
|
||||||
|
@ -67,6 +67,6 @@ let
|
||||||
libcxxabi = callPackage ./libc++abi.nix {};
|
libcxxabi = callPackage ./libc++abi.nix {};
|
||||||
|
|
||||||
openmp = callPackage ./openmp.nix {};
|
openmp = callPackage ./openmp.nix {};
|
||||||
};
|
});
|
||||||
|
|
||||||
in { inherit tools libraries; } // libraries // tools
|
in { inherit tools libraries; } // libraries // tools
|
||||||
|
|
|
@ -22,7 +22,7 @@ let
|
||||||
let drv-manpages = drv.override { enableManpages = true; }; in
|
let drv-manpages = drv.override { enableManpages = true; }; in
|
||||||
drv // { man = drv-manpages.out; /*outputs = drv.outputs ++ ["man"];*/ };
|
drv // { man = drv-manpages.out; /*outputs = drv.outputs ++ ["man"];*/ };
|
||||||
|
|
||||||
tools = let
|
tools = stdenv.lib.makeExtensible (tools: let
|
||||||
callPackage = newScope (tools // { inherit stdenv cmake libxml2 python2 isl release_version version fetch; });
|
callPackage = newScope (tools // { inherit stdenv cmake libxml2 python2 isl release_version version fetch; });
|
||||||
in {
|
in {
|
||||||
|
|
||||||
|
@ -53,9 +53,9 @@ let
|
||||||
lld = callPackage ./lld.nix {};
|
lld = callPackage ./lld.nix {};
|
||||||
|
|
||||||
lldb = callPackage ./lldb.nix {};
|
lldb = callPackage ./lldb.nix {};
|
||||||
};
|
});
|
||||||
|
|
||||||
libraries = let
|
libraries = stdenv.lib.makeExtensible (libraries: let
|
||||||
callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python2 isl release_version version fetch; });
|
callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python2 isl release_version version fetch; });
|
||||||
in {
|
in {
|
||||||
|
|
||||||
|
@ -68,6 +68,6 @@ let
|
||||||
libcxxabi = callPackage ./libc++abi.nix {};
|
libcxxabi = callPackage ./libc++abi.nix {};
|
||||||
|
|
||||||
openmp = callPackage ./openmp.nix {};
|
openmp = callPackage ./openmp.nix {};
|
||||||
};
|
});
|
||||||
|
|
||||||
in { inherit tools libraries; } // libraries // tools
|
in { inherit tools libraries; } // libraries // tools
|
||||||
|
|
|
@ -21,7 +21,7 @@ let
|
||||||
let drv-manpages = drv.override { enableManpages = true; }; in
|
let drv-manpages = drv.override { enableManpages = true; }; in
|
||||||
drv // { man = drv-manpages.out; /*outputs = drv.outputs ++ ["man"];*/ };
|
drv // { man = drv-manpages.out; /*outputs = drv.outputs ++ ["man"];*/ };
|
||||||
|
|
||||||
tools = let
|
tools = stdenv.lib.makeExtensible (tools: let
|
||||||
callPackage = newScope (tools // { inherit stdenv cmake libxml2 python2 isl release_version version fetch; });
|
callPackage = newScope (tools // { inherit stdenv cmake libxml2 python2 isl release_version version fetch; });
|
||||||
in {
|
in {
|
||||||
|
|
||||||
|
@ -71,9 +71,9 @@ let
|
||||||
lld = callPackage ./lld.nix {};
|
lld = callPackage ./lld.nix {};
|
||||||
|
|
||||||
lldb = callPackage ./lldb.nix {};
|
lldb = callPackage ./lldb.nix {};
|
||||||
};
|
});
|
||||||
|
|
||||||
libraries = let
|
libraries = stdenv.lib.makeExtensible (libraries: let
|
||||||
callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python2 isl release_version version fetch; });
|
callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python2 isl release_version version fetch; });
|
||||||
in {
|
in {
|
||||||
|
|
||||||
|
@ -88,6 +88,6 @@ let
|
||||||
libcxxabi = callPackage ./libc++abi.nix {};
|
libcxxabi = callPackage ./libc++abi.nix {};
|
||||||
|
|
||||||
openmp = callPackage ./openmp.nix {};
|
openmp = callPackage ./openmp.nix {};
|
||||||
};
|
});
|
||||||
|
|
||||||
in { inherit tools libraries; } // libraries // tools
|
in { inherit tools libraries; } // libraries // tools
|
||||||
|
|
|
@ -159,26 +159,27 @@ in rec {
|
||||||
dyld = bootstrapTools;
|
dyld = bootstrapTools;
|
||||||
};
|
};
|
||||||
|
|
||||||
libcxx = stdenv.mkDerivation {
|
llvmPackages_5 = {
|
||||||
name = "bootstrap-stage0-libcxx";
|
libcxx = stdenv.mkDerivation {
|
||||||
phases = [ "installPhase" "fixupPhase" ];
|
name = "bootstrap-stage0-libcxx";
|
||||||
installPhase = ''
|
phases = [ "installPhase" "fixupPhase" ];
|
||||||
mkdir -p $out/lib $out/include
|
installPhase = ''
|
||||||
ln -s ${bootstrapTools}/lib/libc++.dylib $out/lib/libc++.dylib
|
mkdir -p $out/lib $out/include
|
||||||
ln -s ${bootstrapTools}/include/c++ $out/include/c++
|
ln -s ${bootstrapTools}/lib/libc++.dylib $out/lib/libc++.dylib
|
||||||
'';
|
ln -s ${bootstrapTools}/include/c++ $out/include/c++
|
||||||
linkCxxAbi = false;
|
'';
|
||||||
setupHook = ../../development/compilers/llvm/3.9/libc++/setup-hook.sh;
|
linkCxxAbi = false;
|
||||||
};
|
setupHook = ../../development/compilers/llvm/3.9/libc++/setup-hook.sh;
|
||||||
|
};
|
||||||
|
|
||||||
libcxxabi = stdenv.mkDerivation {
|
libcxxabi = stdenv.mkDerivation {
|
||||||
name = "bootstrap-stage0-libcxxabi";
|
name = "bootstrap-stage0-libcxxabi";
|
||||||
buildCommand = ''
|
buildCommand = ''
|
||||||
mkdir -p $out/lib
|
mkdir -p $out/lib
|
||||||
ln -s ${bootstrapTools}/lib/libc++abi.dylib $out/lib/libc++abi.dylib
|
ln -s ${bootstrapTools}/lib/libc++abi.dylib $out/lib/libc++abi.dylib
|
||||||
'';
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
extraNativeBuildInputs = [];
|
extraNativeBuildInputs = [];
|
||||||
|
@ -236,8 +237,11 @@ in rec {
|
||||||
patchutils m4 scons flex perl bison unifdef unzip openssl python
|
patchutils m4 scons flex perl bison unifdef unzip openssl python
|
||||||
gettext sharutils libarchive pkg-config groff bash subversion
|
gettext sharutils libarchive pkg-config groff bash subversion
|
||||||
openssh sqlite sed serf openldap db cyrus-sasl expat apr-util
|
openssh sqlite sed serf openldap db cyrus-sasl expat apr-util
|
||||||
findfreetype libssh curl cmake autoconf automake libtool cpio
|
findfreetype libssh curl cmake autoconf automake libtool cpio;
|
||||||
libcxx libcxxabi;
|
|
||||||
|
llvmPackages_5 = super.llvmPackages_5 // {
|
||||||
|
inherit (llvmPackages_5) libcxx libcxxabi;
|
||||||
|
};
|
||||||
|
|
||||||
darwin = super.darwin // {
|
darwin = super.darwin // {
|
||||||
inherit (darwin)
|
inherit (darwin)
|
||||||
|
@ -272,13 +276,18 @@ in rec {
|
||||||
persistent = self: super: with prevStage; {
|
persistent = self: super: with prevStage; {
|
||||||
inherit
|
inherit
|
||||||
gnumake gzip gnused bzip2 gawk ed xz patch bash
|
gnumake gzip gnused bzip2 gawk ed xz patch bash
|
||||||
libcxxabi libcxx ncurses libffi zlib gmp pcre gnugrep
|
ncurses libffi zlib gmp pcre gnugrep
|
||||||
coreutils findutils diffutils patchutils;
|
coreutils findutils diffutils patchutils;
|
||||||
|
|
||||||
llvmPackages_5 = super.llvmPackages_5 // {
|
llvmPackages_5 = super.llvmPackages_5 // (let
|
||||||
llvm = llvmPackages_5.llvm.override { inherit libcxxabi; };
|
tools = super.llvmPackages_5.tools.extend (_: _: {
|
||||||
clang-unwrapped = llvmPackages_5.clang-unwrapped.override { llvm = self.llvmPackages_5.llvm; };
|
llvm = llvmPackages_5.llvm.override { inherit libcxxabi; };
|
||||||
};
|
clang-unwrapped = llvmPackages_5.clang-unwrapped.override { llvm = self.llvmPackages_5.llvm; };
|
||||||
|
});
|
||||||
|
libraries = super.llvmPackages_5.libraries.extend (_: _: {
|
||||||
|
inherit (llvmPackages_5) libcxx libcxxabi;
|
||||||
|
});
|
||||||
|
in { inherit tools libraries; } // tools // libraries);
|
||||||
|
|
||||||
darwin = super.darwin // {
|
darwin = super.darwin // {
|
||||||
inherit (darwin) dyld Libsystem libiconv locale;
|
inherit (darwin) dyld Libsystem libiconv locale;
|
||||||
|
@ -310,12 +319,17 @@ in rec {
|
||||||
persistent = self: super: with prevStage; {
|
persistent = self: super: with prevStage; {
|
||||||
inherit
|
inherit
|
||||||
gnumake gzip gnused bzip2 gawk ed xz patch bash
|
gnumake gzip gnused bzip2 gawk ed xz patch bash
|
||||||
libcxxabi libcxx ncurses libffi zlib llvm gmp pcre gnugrep
|
ncurses libffi zlib llvm gmp pcre gnugrep
|
||||||
coreutils findutils diffutils patchutils;
|
coreutils findutils diffutils patchutils;
|
||||||
|
|
||||||
llvmPackages_5 = super.llvmPackages_5 // {
|
llvmPackages_5 = super.llvmPackages_5 // (let
|
||||||
inherit (llvmPackages_5) llvm clang-unwrapped;
|
tools = super.llvmPackages_5.tools.extend (_: _: {
|
||||||
};
|
inherit (llvmPackages_5) llvm clang-unwrapped;
|
||||||
|
});
|
||||||
|
libraries = super.llvmPackages_5.libraries.extend (_: _: {
|
||||||
|
inherit (llvmPackages_5) libcxx libcxxabi;
|
||||||
|
});
|
||||||
|
in { inherit tools libraries; } // tools // libraries);
|
||||||
|
|
||||||
darwin = super.darwin // {
|
darwin = super.darwin // {
|
||||||
inherit (darwin) dyld ICU Libsystem libiconv;
|
inherit (darwin) dyld ICU Libsystem libiconv;
|
||||||
|
|
Loading…
Reference in a new issue