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";
|
||||
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; });
|
||||
in {
|
||||
llvm = callPackage ./llvm.nix {
|
||||
|
@ -41,9 +41,9 @@ let
|
|||
};
|
||||
|
||||
lldb = callPackage ./lldb.nix {};
|
||||
};
|
||||
});
|
||||
|
||||
libraries = let
|
||||
libraries = stdenv.lib.makeExtensible (libraries: let
|
||||
callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv isl version fetch; });
|
||||
in {
|
||||
|
||||
|
@ -54,6 +54,6 @@ let
|
|||
libcxx = callPackage ./libc++ {};
|
||||
|
||||
libcxxabi = callPackage ./libc++abi.nix {};
|
||||
};
|
||||
});
|
||||
|
||||
in { inherit tools libraries; } // libraries // tools
|
||||
|
|
|
@ -15,7 +15,7 @@ let
|
|||
compiler-rt_src = fetch "compiler-rt" "0p0y85c7izndbpg2l816z7z7558axq11d5pwkm4h11sdw7d13w0d";
|
||||
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; });
|
||||
in {
|
||||
llvm = callPackage ./llvm.nix {
|
||||
|
@ -41,9 +41,9 @@ let
|
|||
};
|
||||
|
||||
lldb = callPackage ./lldb.nix {};
|
||||
};
|
||||
});
|
||||
|
||||
libraries = let
|
||||
libraries = stdenv.lib.makeExtensible (libraries: let
|
||||
callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv isl version fetch; });
|
||||
in {
|
||||
|
||||
|
@ -54,6 +54,6 @@ let
|
|||
libcxx = callPackage ./libc++ {};
|
||||
|
||||
libcxxabi = callPackage ./libc++abi.nix {};
|
||||
};
|
||||
});
|
||||
|
||||
in { inherit tools libraries; } // libraries // tools
|
||||
|
|
|
@ -15,7 +15,7 @@ let
|
|||
compiler-rt_src = fetch "compiler-rt" "16gc2gdmp5c800qvydrdhsp0bzb97s8wrakl6i8a4lgslnqnf2fk";
|
||||
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; });
|
||||
in {
|
||||
llvm = callPackage ./llvm.nix {
|
||||
|
@ -41,9 +41,9 @@ let
|
|||
};
|
||||
|
||||
lldb = callPackage ./lldb.nix {};
|
||||
};
|
||||
});
|
||||
|
||||
libraries = let
|
||||
libraries = stdenv.lib.makeExtensible (libraries: let
|
||||
callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv isl version fetch; });
|
||||
in {
|
||||
|
||||
|
@ -54,6 +54,6 @@ let
|
|||
libcxx = callPackage ./libc++ {};
|
||||
|
||||
libcxxabi = callPackage ./libc++abi.nix {};
|
||||
};
|
||||
});
|
||||
|
||||
in { inherit tools libraries; } // libraries // tools
|
||||
|
|
|
@ -22,7 +22,7 @@ let
|
|||
let drv-manpages = drv.override { enableManpages = true; }; in
|
||||
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; });
|
||||
in {
|
||||
|
||||
|
@ -52,9 +52,9 @@ let
|
|||
lld = callPackage ./lld.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; });
|
||||
in {
|
||||
|
||||
|
@ -67,6 +67,6 @@ let
|
|||
libcxxabi = callPackage ./libc++abi.nix {};
|
||||
|
||||
openmp = callPackage ./openmp.nix {};
|
||||
};
|
||||
});
|
||||
|
||||
in { inherit tools libraries; } // libraries // tools
|
||||
|
|
|
@ -22,7 +22,7 @@ let
|
|||
let drv-manpages = drv.override { enableManpages = true; }; in
|
||||
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; });
|
||||
in {
|
||||
|
||||
|
@ -53,9 +53,9 @@ let
|
|||
lld = callPackage ./lld.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; });
|
||||
in {
|
||||
|
||||
|
@ -68,6 +68,6 @@ let
|
|||
libcxxabi = callPackage ./libc++abi.nix {};
|
||||
|
||||
openmp = callPackage ./openmp.nix {};
|
||||
};
|
||||
});
|
||||
|
||||
in { inherit tools libraries; } // libraries // tools
|
||||
|
|
|
@ -21,7 +21,7 @@ let
|
|||
let drv-manpages = drv.override { enableManpages = true; }; in
|
||||
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; });
|
||||
in {
|
||||
|
||||
|
@ -71,9 +71,9 @@ let
|
|||
lld = callPackage ./lld.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; });
|
||||
in {
|
||||
|
||||
|
@ -88,6 +88,6 @@ let
|
|||
libcxxabi = callPackage ./libc++abi.nix {};
|
||||
|
||||
openmp = callPackage ./openmp.nix {};
|
||||
};
|
||||
});
|
||||
|
||||
in { inherit tools libraries; } // libraries // tools
|
||||
|
|
|
@ -159,26 +159,27 @@ in rec {
|
|||
dyld = bootstrapTools;
|
||||
};
|
||||
|
||||
libcxx = stdenv.mkDerivation {
|
||||
name = "bootstrap-stage0-libcxx";
|
||||
phases = [ "installPhase" "fixupPhase" ];
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib $out/include
|
||||
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;
|
||||
};
|
||||
llvmPackages_5 = {
|
||||
libcxx = stdenv.mkDerivation {
|
||||
name = "bootstrap-stage0-libcxx";
|
||||
phases = [ "installPhase" "fixupPhase" ];
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib $out/include
|
||||
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;
|
||||
};
|
||||
|
||||
libcxxabi = stdenv.mkDerivation {
|
||||
name = "bootstrap-stage0-libcxxabi";
|
||||
buildCommand = ''
|
||||
mkdir -p $out/lib
|
||||
ln -s ${bootstrapTools}/lib/libc++abi.dylib $out/lib/libc++abi.dylib
|
||||
'';
|
||||
libcxxabi = stdenv.mkDerivation {
|
||||
name = "bootstrap-stage0-libcxxabi";
|
||||
buildCommand = ''
|
||||
mkdir -p $out/lib
|
||||
ln -s ${bootstrapTools}/lib/libc++abi.dylib $out/lib/libc++abi.dylib
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
extraNativeBuildInputs = [];
|
||||
|
@ -236,8 +237,11 @@ in rec {
|
|||
patchutils m4 scons flex perl bison unifdef unzip openssl python
|
||||
gettext sharutils libarchive pkg-config groff bash subversion
|
||||
openssh sqlite sed serf openldap db cyrus-sasl expat apr-util
|
||||
findfreetype libssh curl cmake autoconf automake libtool cpio
|
||||
libcxx libcxxabi;
|
||||
findfreetype libssh curl cmake autoconf automake libtool cpio;
|
||||
|
||||
llvmPackages_5 = super.llvmPackages_5 // {
|
||||
inherit (llvmPackages_5) libcxx libcxxabi;
|
||||
};
|
||||
|
||||
darwin = super.darwin // {
|
||||
inherit (darwin)
|
||||
|
@ -272,13 +276,18 @@ in rec {
|
|||
persistent = self: super: with prevStage; {
|
||||
inherit
|
||||
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;
|
||||
|
||||
llvmPackages_5 = super.llvmPackages_5 // {
|
||||
llvm = llvmPackages_5.llvm.override { inherit libcxxabi; };
|
||||
clang-unwrapped = llvmPackages_5.clang-unwrapped.override { llvm = self.llvmPackages_5.llvm; };
|
||||
};
|
||||
llvmPackages_5 = super.llvmPackages_5 // (let
|
||||
tools = super.llvmPackages_5.tools.extend (_: _: {
|
||||
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 // {
|
||||
inherit (darwin) dyld Libsystem libiconv locale;
|
||||
|
@ -310,12 +319,17 @@ in rec {
|
|||
persistent = self: super: with prevStage; {
|
||||
inherit
|
||||
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;
|
||||
|
||||
llvmPackages_5 = super.llvmPackages_5 // {
|
||||
inherit (llvmPackages_5) llvm clang-unwrapped;
|
||||
};
|
||||
llvmPackages_5 = super.llvmPackages_5 // (let
|
||||
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 // {
|
||||
inherit (darwin) dyld ICU Libsystem libiconv;
|
||||
|
|
Loading…
Reference in a new issue