Merge pull request #40961 from obsidiansystems/hash-preserving-llvm-cleanup
llvm, top-level: Baby steps towards cross support
This commit is contained in:
commit
5f1ec8e6d9
@ -1,4 +1,4 @@
|
|||||||
{stdenv, fetchFromGitHub, bash, which, m4, python, bison, flex, llvmPackages, clangWrapSelf,
|
{stdenv, fetchFromGitHub, bash, which, m4, python, bison, flex, llvmPackages,
|
||||||
testedTargets ? ["sse2" "host"] # the default test target is sse4, but that is not supported by all Hydra agents
|
testedTargets ? ["sse2" "host"] # the default test target is sse4, but that is not supported by all Hydra agents
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
{ newScope, stdenv, libstdcxxHook, cmake, libxml2, python2, isl, fetchurl
|
{ newScope, stdenv, libstdcxxHook, cmake, libxml2, python2, isl, fetchurl
|
||||||
, overrideCC, wrapCC, ccWrapperFun, darwin
|
, overrideCC, wrapCCWith, darwin
|
||||||
|
, buildLlvmPackages # ourself, but from the previous stage, for cross
|
||||||
|
, targetLlvmPackages # ourself, but from the next stage, for cross
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -27,18 +29,14 @@ let
|
|||||||
|
|
||||||
clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
|
clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
|
||||||
|
|
||||||
libstdcxxClang = ccWrapperFun {
|
libstdcxxClang = wrapCCWith {
|
||||||
cc = self.clang-unwrapped;
|
cc = self.clang-unwrapped;
|
||||||
/* FIXME is this right? */
|
|
||||||
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
|
|
||||||
extraPackages = [ libstdcxxHook ];
|
extraPackages = [ libstdcxxHook ];
|
||||||
};
|
};
|
||||||
|
|
||||||
libcxxClang = ccWrapperFun {
|
libcxxClang = wrapCCWith {
|
||||||
cc = self.clang-unwrapped;
|
cc = self.clang-unwrapped;
|
||||||
/* FIXME is this right? */
|
extraPackages = [ targetLlvmPackages.libcxx targetLlvmPackages.libcxxabi ];
|
||||||
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
|
|
||||||
extraPackages = [ self.libcxx self.libcxxabi ];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
stdenv = stdenv.override (drv: {
|
stdenv = stdenv.override (drv: {
|
||||||
@ -48,7 +46,7 @@ let
|
|||||||
|
|
||||||
libcxxStdenv = stdenv.override (drv: {
|
libcxxStdenv = stdenv.override (drv: {
|
||||||
allowedRequisites = null;
|
allowedRequisites = null;
|
||||||
cc = self.libcxxClang;
|
cc = buildLlvmPackages.libcxxClang;
|
||||||
});
|
});
|
||||||
|
|
||||||
lldb = callPackage ./lldb.nix {};
|
lldb = callPackage ./lldb.nix {};
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
{ newScope, stdenv, libstdcxxHook, isl, fetchurl, overrideCC, wrapCC, ccWrapperFun, darwin }:
|
{ newScope, stdenv, libstdcxxHook, isl, fetchurl, overrideCC, wrapCCWith, darwin
|
||||||
|
, buildLlvmPackages # ourself, but from the previous stage, for cross
|
||||||
|
, targetLlvmPackages # ourself, but from the next stage, for cross
|
||||||
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
callPackage = newScope (self // { inherit stdenv isl version fetch; });
|
callPackage = newScope (self // { inherit stdenv isl version fetch; });
|
||||||
|
|
||||||
@ -26,18 +30,14 @@ let
|
|||||||
|
|
||||||
clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
|
clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
|
||||||
|
|
||||||
libstdcxxClang = ccWrapperFun {
|
libstdcxxClang = wrapCCWith {
|
||||||
cc = self.clang-unwrapped;
|
cc = self.clang-unwrapped;
|
||||||
/* FIXME is this right? */
|
|
||||||
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
|
|
||||||
extraPackages = [ libstdcxxHook ];
|
extraPackages = [ libstdcxxHook ];
|
||||||
};
|
};
|
||||||
|
|
||||||
libcxxClang = ccWrapperFun {
|
libcxxClang = wrapCCWith {
|
||||||
cc = self.clang-unwrapped;
|
cc = self.clang-unwrapped;
|
||||||
/* FIXME is this right? */
|
extraPackages = [ targetLlvmPackages.libcxx targetLlvmPackages.libcxxabi ];
|
||||||
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
|
|
||||||
extraPackages = [ self.libcxx self.libcxxabi ];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
stdenv = stdenv.override (drv: {
|
stdenv = stdenv.override (drv: {
|
||||||
@ -47,7 +47,7 @@ let
|
|||||||
|
|
||||||
libcxxStdenv = stdenv.override (drv: {
|
libcxxStdenv = stdenv.override (drv: {
|
||||||
allowedRequisites = null;
|
allowedRequisites = null;
|
||||||
cc = self.libcxxClang;
|
cc = buildLlvmPackages.libcxxClang;
|
||||||
});
|
});
|
||||||
|
|
||||||
lldb = callPackage ./lldb.nix {};
|
lldb = callPackage ./lldb.nix {};
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
{ newScope, stdenv, libstdcxxHook, isl, fetchurl, overrideCC, wrapCC, ccWrapperFun, darwin }:
|
{ newScope, stdenv, libstdcxxHook, isl, fetchurl, overrideCC, wrapCCWith, darwin
|
||||||
|
, buildLlvmPackages # ourself, but from the previous stage, for cross
|
||||||
|
, targetLlvmPackages # ourself, but from the next stage, for cross
|
||||||
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
callPackage = newScope (self // { inherit stdenv isl version fetch; });
|
callPackage = newScope (self // { inherit stdenv isl version fetch; });
|
||||||
|
|
||||||
@ -26,18 +30,14 @@ let
|
|||||||
|
|
||||||
clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
|
clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
|
||||||
|
|
||||||
libstdcxxClang = ccWrapperFun {
|
libstdcxxClang = wrapCCWith {
|
||||||
cc = self.clang-unwrapped;
|
cc = self.clang-unwrapped;
|
||||||
/* FIXME is this right? */
|
|
||||||
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
|
|
||||||
extraPackages = [ libstdcxxHook ];
|
extraPackages = [ libstdcxxHook ];
|
||||||
};
|
};
|
||||||
|
|
||||||
libcxxClang = ccWrapperFun {
|
libcxxClang = wrapCCWith {
|
||||||
cc = self.clang-unwrapped;
|
cc = self.clang-unwrapped;
|
||||||
/* FIXME is this right? */
|
extraPackages = [ targetLlvmPackages.libcxx targetLlvmPackages.libcxxabi ];
|
||||||
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
|
|
||||||
extraPackages = [ self.libcxx self.libcxxabi ];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
stdenv = stdenv.override (drv: {
|
stdenv = stdenv.override (drv: {
|
||||||
@ -47,7 +47,7 @@ let
|
|||||||
|
|
||||||
libcxxStdenv = stdenv.override (drv: {
|
libcxxStdenv = stdenv.override (drv: {
|
||||||
allowedRequisites = null;
|
allowedRequisites = null;
|
||||||
cc = self.libcxxClang;
|
cc = buildLlvmPackages.libcxxClang;
|
||||||
});
|
});
|
||||||
|
|
||||||
lldb = callPackage ./lldb.nix {};
|
lldb = callPackage ./lldb.nix {};
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
{ lowPrio, newScope, stdenv, targetPlatform, cmake, libstdcxxHook
|
{ lowPrio, newScope, stdenv, targetPlatform, cmake, libstdcxxHook
|
||||||
, libxml2, python2, isl, fetchurl, overrideCC, wrapCC, ccWrapperFun
|
, libxml2, python2, isl, fetchurl, overrideCC, wrapCCWith
|
||||||
, darwin
|
, darwin
|
||||||
|
, buildLlvmPackages # ourself, but from the previous stage, for cross
|
||||||
|
, targetLlvmPackages # ourself, but from the next stage, for cross
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -40,18 +42,14 @@ let
|
|||||||
|
|
||||||
clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
|
clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
|
||||||
|
|
||||||
libstdcxxClang = ccWrapperFun {
|
libstdcxxClang = wrapCCWith {
|
||||||
cc = self.clang-unwrapped;
|
cc = self.clang-unwrapped;
|
||||||
/* FIXME is this right? */
|
|
||||||
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
|
|
||||||
extraPackages = [ libstdcxxHook ];
|
extraPackages = [ libstdcxxHook ];
|
||||||
};
|
};
|
||||||
|
|
||||||
libcxxClang = ccWrapperFun {
|
libcxxClang = wrapCCWith {
|
||||||
cc = self.clang-unwrapped;
|
cc = self.clang-unwrapped;
|
||||||
/* FIXME is this right? */
|
extraPackages = [ targetLlvmPackages.libcxx targetLlvmPackages.libcxxabi ];
|
||||||
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
|
|
||||||
extraPackages = [ self.libcxx self.libcxxabi ];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
stdenv = stdenv.override (drv: {
|
stdenv = stdenv.override (drv: {
|
||||||
@ -61,7 +59,7 @@ let
|
|||||||
|
|
||||||
libcxxStdenv = stdenv.override (drv: {
|
libcxxStdenv = stdenv.override (drv: {
|
||||||
allowedRequisites = null;
|
allowedRequisites = null;
|
||||||
cc = self.libcxxClang;
|
cc = buildLlvmPackages.libcxxClang;
|
||||||
});
|
});
|
||||||
|
|
||||||
lld = callPackage ./lld.nix {};
|
lld = callPackage ./lld.nix {};
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
{ lowPrio, newScope, stdenv, targetPlatform, cmake, libstdcxxHook
|
{ lowPrio, newScope, stdenv, targetPlatform, cmake, libstdcxxHook
|
||||||
, libxml2, python2, isl, fetchurl, overrideCC, wrapCC, ccWrapperFun
|
, libxml2, python2, isl, fetchurl, overrideCC, wrapCCWith
|
||||||
, darwin
|
, darwin
|
||||||
|
, buildLlvmPackages # ourself, but from the previous stage, for cross
|
||||||
|
, targetLlvmPackages # ourself, but from the next stage, for cross
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -40,18 +42,14 @@ let
|
|||||||
|
|
||||||
clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
|
clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
|
||||||
|
|
||||||
libstdcxxClang = ccWrapperFun {
|
libstdcxxClang = wrapCCWith {
|
||||||
cc = self.clang-unwrapped;
|
cc = self.clang-unwrapped;
|
||||||
/* FIXME is this right? */
|
|
||||||
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
|
|
||||||
extraPackages = [ libstdcxxHook ];
|
extraPackages = [ libstdcxxHook ];
|
||||||
};
|
};
|
||||||
|
|
||||||
libcxxClang = ccWrapperFun {
|
libcxxClang = wrapCCWith {
|
||||||
cc = self.clang-unwrapped;
|
cc = self.clang-unwrapped;
|
||||||
/* FIXME is this right? */
|
extraPackages = [ targetLlvmPackages.libcxx targetLlvmPackages.libcxxabi ];
|
||||||
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
|
|
||||||
extraPackages = [ self.libcxx self.libcxxabi ];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
stdenv = stdenv.override (drv: {
|
stdenv = stdenv.override (drv: {
|
||||||
@ -61,7 +59,7 @@ let
|
|||||||
|
|
||||||
libcxxStdenv = stdenv.override (drv: {
|
libcxxStdenv = stdenv.override (drv: {
|
||||||
allowedRequisites = null;
|
allowedRequisites = null;
|
||||||
cc = self.libcxxClang;
|
cc = buildLlvmPackages.libcxxClang;
|
||||||
});
|
});
|
||||||
|
|
||||||
lld = callPackage ./lld.nix {};
|
lld = callPackage ./lld.nix {};
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
{ lowPrio, newScope, stdenv, targetPlatform, cmake, libstdcxxHook
|
{ lowPrio, newScope, stdenv, targetPlatform, cmake, libstdcxxHook
|
||||||
, libxml2, python2, isl, fetchurl, overrideCC, wrapCC, ccWrapperFun
|
, libxml2, python2, isl, fetchurl, overrideCC, wrapCCWith
|
||||||
, darwin
|
, darwin
|
||||||
|
, buildLlvmPackages # ourself, but from the previous stage, for cross
|
||||||
|
, targetLlvmPackages # ourself, but from the next stage, for cross
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -40,18 +42,14 @@ let
|
|||||||
|
|
||||||
clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
|
clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
|
||||||
|
|
||||||
libstdcxxClang = ccWrapperFun {
|
libstdcxxClang = wrapCCWith {
|
||||||
cc = self.clang-unwrapped;
|
cc = self.clang-unwrapped;
|
||||||
/* FIXME is this right? */
|
|
||||||
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
|
|
||||||
extraPackages = [ libstdcxxHook ];
|
extraPackages = [ libstdcxxHook ];
|
||||||
};
|
};
|
||||||
|
|
||||||
libcxxClang = ccWrapperFun {
|
libcxxClang = wrapCCWith {
|
||||||
cc = self.clang-unwrapped;
|
cc = self.clang-unwrapped;
|
||||||
/* FIXME is this right? */
|
extraPackages = [ targetLlvmPackages.libcxx targetLlvmPackages.libcxxabi ];
|
||||||
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
|
|
||||||
extraPackages = [ self.libcxx self.libcxxabi ];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
stdenv = stdenv.override (drv: {
|
stdenv = stdenv.override (drv: {
|
||||||
@ -61,7 +59,7 @@ let
|
|||||||
|
|
||||||
libcxxStdenv = stdenv.override (drv: {
|
libcxxStdenv = stdenv.override (drv: {
|
||||||
allowedRequisites = null;
|
allowedRequisites = null;
|
||||||
cc = self.libcxxClang;
|
cc = buildLlvmPackages.libcxxClang;
|
||||||
});
|
});
|
||||||
|
|
||||||
lld = callPackage ./lld.nix {};
|
lld = callPackage ./lld.nix {};
|
||||||
|
@ -6061,18 +6061,6 @@ with pkgs;
|
|||||||
|
|
||||||
clang-analyzer = callPackage ../development/tools/analysis/clang-analyzer { };
|
clang-analyzer = callPackage ../development/tools/analysis/clang-analyzer { };
|
||||||
|
|
||||||
clangSelf = clangWrapSelf llvmPackagesSelf.clang;
|
|
||||||
|
|
||||||
clangWrapSelf = build: ccWrapperFun {
|
|
||||||
cc = build;
|
|
||||||
isClang = true;
|
|
||||||
inherit stdenvNoCC;
|
|
||||||
inherit (targetPackages.stdenv.cc) bintools libc;
|
|
||||||
extraPackages = [ libcxx libcxxabi ];
|
|
||||||
nativeTools = false;
|
|
||||||
nativeLibc = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
#Use this instead of stdenv to build with clang
|
#Use this instead of stdenv to build with clang
|
||||||
clangStdenv = if stdenv.cc.isClang then stdenv else lowPrio llvmPackages.stdenv;
|
clangStdenv = if stdenv.cc.isClang then stdenv else lowPrio llvmPackages.stdenv;
|
||||||
clang-sierraHack-stdenv = overrideCC stdenv clang-sierraHack;
|
clang-sierraHack-stdenv = overrideCC stdenv clang-sierraHack;
|
||||||
@ -6709,10 +6697,6 @@ with pkgs;
|
|||||||
|
|
||||||
llvmPackages = recurseIntoAttrs llvmPackages_5;
|
llvmPackages = recurseIntoAttrs llvmPackages_5;
|
||||||
|
|
||||||
llvmPackagesSelf = llvmPackages_34.override {
|
|
||||||
stdenv = libcxxStdenv;
|
|
||||||
};
|
|
||||||
|
|
||||||
llvmPackages_34 = callPackage ../development/compilers/llvm/3.4 ({
|
llvmPackages_34 = callPackage ../development/compilers/llvm/3.4 ({
|
||||||
isl = isl_0_12;
|
isl = isl_0_12;
|
||||||
} // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
} // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
||||||
@ -6727,30 +6711,40 @@ with pkgs;
|
|||||||
|
|
||||||
llvmPackages_37 = callPackage ../development/compilers/llvm/3.7 ({
|
llvmPackages_37 = callPackage ../development/compilers/llvm/3.7 ({
|
||||||
inherit (stdenvAdapters) overrideCC;
|
inherit (stdenvAdapters) overrideCC;
|
||||||
|
buildLlvmPackages = buildPackages.llvmPackages_37;
|
||||||
|
targetLlvmPackages = targetPackages.llvmPackages_37;
|
||||||
} // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
} // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
||||||
stdenv = overrideCC stdenv gcc6;
|
stdenv = overrideCC stdenv gcc6;
|
||||||
});
|
});
|
||||||
|
|
||||||
llvmPackages_38 = callPackage ../development/compilers/llvm/3.8 ({
|
llvmPackages_38 = callPackage ../development/compilers/llvm/3.8 ({
|
||||||
inherit (stdenvAdapters) overrideCC;
|
inherit (stdenvAdapters) overrideCC;
|
||||||
|
buildLlvmPackages = buildPackages.llvmPackages_38;
|
||||||
|
targetLlvmPackages = targetPackages.llvmPackages_38;
|
||||||
} // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
} // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
||||||
stdenv = overrideCC stdenv gcc6;
|
stdenv = overrideCC stdenv gcc6;
|
||||||
});
|
});
|
||||||
|
|
||||||
llvmPackages_39 = callPackage ../development/compilers/llvm/3.9 ({
|
llvmPackages_39 = callPackage ../development/compilers/llvm/3.9 ({
|
||||||
inherit (stdenvAdapters) overrideCC;
|
inherit (stdenvAdapters) overrideCC;
|
||||||
|
buildLlvmPackages = buildPackages.llvmPackages_39;
|
||||||
|
targetLlvmPackages = targetPackages.llvmPackages_39;
|
||||||
} // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
} // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
||||||
stdenv = overrideCC stdenv gcc6;
|
stdenv = overrideCC stdenv gcc6;
|
||||||
});
|
});
|
||||||
|
|
||||||
llvmPackages_4 = callPackage ../development/compilers/llvm/4 ({
|
llvmPackages_4 = callPackage ../development/compilers/llvm/4 ({
|
||||||
inherit (stdenvAdapters) overrideCC;
|
inherit (stdenvAdapters) overrideCC;
|
||||||
|
buildLlvmPackages = buildPackages.llvmPackages_4;
|
||||||
|
targetLlvmPackages = targetPackages.llvmPackages_4;
|
||||||
} // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
} // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
||||||
stdenv = overrideCC stdenv gcc6;
|
stdenv = overrideCC stdenv gcc6;
|
||||||
});
|
});
|
||||||
|
|
||||||
llvmPackages_5 = callPackage ../development/compilers/llvm/5 ({
|
llvmPackages_5 = callPackage ../development/compilers/llvm/5 ({
|
||||||
inherit (stdenvAdapters) overrideCC;
|
inherit (stdenvAdapters) overrideCC;
|
||||||
|
buildLlvmPackages = buildPackages.llvmPackages_5;
|
||||||
|
targetLlvmPackages = targetPackages.llvmPackages_5;
|
||||||
} // stdenv.lib.optionalAttrs stdenv.isDarwin {
|
} // stdenv.lib.optionalAttrs stdenv.isDarwin {
|
||||||
cmake = cmake.override {
|
cmake = cmake.override {
|
||||||
isBootstrap = true;
|
isBootstrap = true;
|
||||||
@ -6764,6 +6758,8 @@ with pkgs;
|
|||||||
|
|
||||||
llvmPackages_6 = callPackage ../development/compilers/llvm/6 ({
|
llvmPackages_6 = callPackage ../development/compilers/llvm/6 ({
|
||||||
inherit (stdenvAdapters) overrideCC;
|
inherit (stdenvAdapters) overrideCC;
|
||||||
|
buildLlvmPackages = buildPackages.llvmPackages_6;
|
||||||
|
targetLlvmPackages = targetPackages.llvmPackages_6;
|
||||||
} // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
} // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
||||||
stdenv = overrideCC stdenv gcc6; # with gcc-7: undefined reference to `__divmoddi4'
|
stdenv = overrideCC stdenv gcc6; # with gcc-7: undefined reference to `__divmoddi4'
|
||||||
});
|
});
|
||||||
@ -7017,42 +7013,46 @@ with pkgs;
|
|||||||
|
|
||||||
wla-dx = callPackage ../development/compilers/wla-dx { };
|
wla-dx = callPackage ../development/compilers/wla-dx { };
|
||||||
|
|
||||||
wrapCCWith = { name ? "", cc, bintools, libc, extraBuildCommands ? "" }:
|
wrapCCWith =
|
||||||
ccWrapperFun rec {
|
{ cc
|
||||||
|
, # This should be the only bintools runtime dep with this sort of logic. The
|
||||||
|
# Others should instead delegate to the next stage's choice with
|
||||||
|
# `targetPackages.stdenv.cc.bintools`. This one is different just to
|
||||||
|
# provide the default choice, avoiding infinite recursion.
|
||||||
|
bintools ? if targetPlatform.isDarwin then darwin.binutils else binutils
|
||||||
|
, libc ? bintools.libc
|
||||||
|
, ...
|
||||||
|
} @ extraArgs:
|
||||||
|
callPackage ../build-support/cc-wrapper (let self = {
|
||||||
nativeTools = targetPlatform == hostPlatform && stdenv.cc.nativeTools or false;
|
nativeTools = targetPlatform == hostPlatform && stdenv.cc.nativeTools or false;
|
||||||
nativeLibc = targetPlatform == hostPlatform && stdenv.cc.nativeLibc or false;
|
nativeLibc = targetPlatform == hostPlatform && stdenv.cc.nativeLibc or false;
|
||||||
nativePrefix = stdenv.cc.nativePrefix or "";
|
nativePrefix = stdenv.cc.nativePrefix or "";
|
||||||
noLibc = !nativeLibc && (libc == null);
|
noLibc = !self.nativeLibc && (self.libc == null);
|
||||||
|
|
||||||
isGNU = cc.isGNU or false;
|
isGNU = cc.isGNU or false;
|
||||||
isClang = cc.isClang or false;
|
isClang = cc.isClang or false;
|
||||||
|
|
||||||
inherit name cc bintools libc extraBuildCommands;
|
inherit cc bintools libc;
|
||||||
};
|
} // extraArgs; in self);
|
||||||
|
|
||||||
ccWrapperFun = callPackage ../build-support/cc-wrapper;
|
|
||||||
bintoolsWrapperFun = callPackage ../build-support/bintools-wrapper;
|
|
||||||
|
|
||||||
wrapCC = cc: wrapCCWith {
|
wrapCC = cc: wrapCCWith {
|
||||||
name = lib.optionalString (targetPlatform != hostPlatform) "gcc-cross-wrapper";
|
|
||||||
inherit cc;
|
inherit cc;
|
||||||
# This should be the only bintools runtime dep with this sort of logic. The
|
|
||||||
# Others should instead delegate to the next stage's choice with
|
|
||||||
# `targetPackages.stdenv.cc.bintools`. This one is different just to
|
|
||||||
# provide the default choice, avoiding infinite recursion.
|
|
||||||
bintools = if targetPlatform.isDarwin then darwin.binutils else binutils;
|
|
||||||
libc = if targetPlatform != hostPlatform then libcCross else stdenv.cc.libc;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
wrapBintoolsWith = { bintools, libc, extraBuildCommands ? "" }: bintoolsWrapperFun {
|
wrapBintoolsWith =
|
||||||
|
{ bintools
|
||||||
|
, libc ? if targetPlatform != hostPlatform then libcCross else stdenv.cc.libc
|
||||||
|
, ...
|
||||||
|
} @ extraArgs:
|
||||||
|
callPackage ../build-support/bintools-wrapper (let self = {
|
||||||
nativeTools = targetPlatform == hostPlatform && stdenv.cc.nativeTools or false;
|
nativeTools = targetPlatform == hostPlatform && stdenv.cc.nativeTools or false;
|
||||||
nativeLibc = targetPlatform == hostPlatform && stdenv.cc.nativeLibc or false;
|
nativeLibc = targetPlatform == hostPlatform && stdenv.cc.nativeLibc or false;
|
||||||
nativePrefix = stdenv.cc.nativePrefix or "";
|
nativePrefix = stdenv.cc.nativePrefix or "";
|
||||||
|
|
||||||
noLibc = (libc == null);
|
noLibc = (self.libc == null);
|
||||||
|
|
||||||
inherit bintools libc extraBuildCommands;
|
inherit bintools libc;
|
||||||
};
|
} // extraArgs; in self);
|
||||||
|
|
||||||
# prolog
|
# prolog
|
||||||
yap = callPackage ../development/compilers/yap { };
|
yap = callPackage ../development/compilers/yap { };
|
||||||
@ -7658,11 +7658,9 @@ with pkgs;
|
|||||||
noSysDirs = (targetPlatform != buildPlatform) || noSysDirs;
|
noSysDirs = (targetPlatform != buildPlatform) || noSysDirs;
|
||||||
};
|
};
|
||||||
binutils = wrapBintoolsWith {
|
binutils = wrapBintoolsWith {
|
||||||
libc = if targetPlatform != hostPlatform then libcCross else stdenv.cc.libc;
|
|
||||||
bintools = binutils-unwrapped;
|
bintools = binutils-unwrapped;
|
||||||
};
|
};
|
||||||
binutils_nogold = lowPrio (wrapBintoolsWith {
|
binutils_nogold = lowPrio (wrapBintoolsWith {
|
||||||
libc = if targetPlatform != hostPlatform then libcCross else stdenv.cc.libc;
|
|
||||||
bintools = binutils-unwrapped.override {
|
bintools = binutils-unwrapped.override {
|
||||||
gold = false;
|
gold = false;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user