Merge pull request #94582 from obsidiansystems/cxx-wrapper-debt-part-3
clang, cc-wrapper: Move `--gcc-toolchain` logic into CC wrapper
This commit is contained in:
commit
0f25eb3e7d
9 changed files with 15 additions and 18 deletions
|
@ -278,12 +278,25 @@ stdenv.mkDerivation {
|
||||||
##
|
##
|
||||||
## GCC libs for non-GCC support
|
## GCC libs for non-GCC support
|
||||||
##
|
##
|
||||||
+ optionalString useGccForLibs ''
|
+ optionalString useGccForLibs (''
|
||||||
|
|
||||||
|
''
|
||||||
|
# In theory we shouldn't need this, because we always set `useLLVM` on
|
||||||
|
# Darwin, and maybe also break down `useLLVM` into fine-grained use flags
|
||||||
|
# (libgcc vs compiler-rt, ld.lld vs legacy, libc++ vs libstdc++, etc.)
|
||||||
|
# since Darwin isn't `useLLVM` on all counts. (See
|
||||||
|
# https://clang.llvm.org/docs/Toolchain.html for all the axes one might
|
||||||
|
# break `useLLVM` into.)
|
||||||
|
#
|
||||||
|
# But, for now, we haven't doneo these things, so we use
|
||||||
|
# `targetPlatform.isLinux` as a proxy.
|
||||||
|
+ optionalString targetPlatform.isLinux ''
|
||||||
|
echo "--gcc-toolchain=${gccForLibs}" >> $out/nix-support/cc-cflags
|
||||||
|
'' + ''
|
||||||
echo "-B${gccForLibs}/lib/gcc/${targetPlatform.config}/${gccForLibs.version}" >> $out/nix-support/cc-cflags
|
echo "-B${gccForLibs}/lib/gcc/${targetPlatform.config}/${gccForLibs.version}" >> $out/nix-support/cc-cflags
|
||||||
echo "-L${gccForLibs}/lib/gcc/${targetPlatform.config}/${gccForLibs.version}" >> $out/nix-support/cc-ldflags
|
echo "-L${gccForLibs}/lib/gcc/${targetPlatform.config}/${gccForLibs.version}" >> $out/nix-support/cc-ldflags
|
||||||
echo "-L${gccForLibs.lib}/${targetPlatform.config}/lib" >> $out/nix-support/cc-ldflags
|
echo "-L${gccForLibs.lib}/${targetPlatform.config}/lib" >> $out/nix-support/cc-ldflags
|
||||||
''
|
'')
|
||||||
|
|
||||||
##
|
##
|
||||||
## General libc support
|
## General libc support
|
||||||
|
|
|
@ -26,8 +26,6 @@ let
|
||||||
ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
|
ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
|
||||||
ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share"
|
ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share"
|
||||||
echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
|
echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
|
||||||
'' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && !(stdenv.targetPlatform.useLLVM or false)) ''
|
|
||||||
echo "--gcc-toolchain=${gccForLibs}" >> $out/nix-support/cc-cflags
|
|
||||||
'';
|
'';
|
||||||
in {
|
in {
|
||||||
|
|
||||||
|
|
|
@ -26,8 +26,6 @@ let
|
||||||
ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
|
ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
|
||||||
ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share"
|
ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share"
|
||||||
echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
|
echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
|
||||||
'' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && !(stdenv.targetPlatform.useLLVM or false)) ''
|
|
||||||
echo "--gcc-toolchain=${gccForLibs}" >> $out/nix-support/cc-cflags
|
|
||||||
'';
|
'';
|
||||||
in {
|
in {
|
||||||
|
|
||||||
|
|
|
@ -25,8 +25,6 @@ let
|
||||||
ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
|
ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
|
||||||
ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
|
ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
|
||||||
echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
|
echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
|
||||||
'' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && !(stdenv.targetPlatform.useLLVM or false)) ''
|
|
||||||
echo "--gcc-toolchain=${gccForLibs}" >> $out/nix-support/cc-cflags
|
|
||||||
'';
|
'';
|
||||||
in {
|
in {
|
||||||
|
|
||||||
|
|
|
@ -25,8 +25,6 @@ let
|
||||||
ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
|
ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
|
||||||
ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
|
ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
|
||||||
echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
|
echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
|
||||||
'' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && !(stdenv.targetPlatform.useLLVM or false)) ''
|
|
||||||
echo "--gcc-toolchain=${gccForLibs}" >> $out/nix-support/cc-cflags
|
|
||||||
'';
|
'';
|
||||||
in {
|
in {
|
||||||
|
|
||||||
|
|
|
@ -25,8 +25,6 @@ let
|
||||||
ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
|
ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
|
||||||
ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
|
ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
|
||||||
echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
|
echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
|
||||||
'' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && !(stdenv.targetPlatform.useLLVM or false)) ''
|
|
||||||
echo "--gcc-toolchain=${gccForLibs}" >> $out/nix-support/cc-cflags
|
|
||||||
'';
|
'';
|
||||||
in {
|
in {
|
||||||
|
|
||||||
|
|
|
@ -25,8 +25,6 @@ let
|
||||||
ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
|
ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
|
||||||
ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
|
ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
|
||||||
echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
|
echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
|
||||||
'' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && !(stdenv.targetPlatform.useLLVM or false)) ''
|
|
||||||
echo "--gcc-toolchain=${gccForLibs}" >> $out/nix-support/cc-cflags
|
|
||||||
'';
|
'';
|
||||||
in {
|
in {
|
||||||
|
|
||||||
|
|
|
@ -25,8 +25,6 @@ let
|
||||||
ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
|
ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
|
||||||
ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
|
ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
|
||||||
echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
|
echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
|
||||||
'' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && !(stdenv.targetPlatform.useLLVM or false)) ''
|
|
||||||
echo "--gcc-toolchain=${gccForLibs}" >> $out/nix-support/cc-cflags
|
|
||||||
'';
|
'';
|
||||||
in {
|
in {
|
||||||
|
|
||||||
|
|
|
@ -8956,8 +8956,6 @@ in
|
||||||
mkdir -p "$rsrc/lib"
|
mkdir -p "$rsrc/lib"
|
||||||
ln -s "${cc}/lib" "$rsrc/include"
|
ln -s "${cc}/lib" "$rsrc/include"
|
||||||
echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
|
echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
|
||||||
'' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && !(stdenv.targetPlatform.useLLVM or false)) ''
|
|
||||||
echo "--gcc-toolchain=${gccForLibs}" >> $out/nix-support/cc-cflags
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue