diff options
author | John Ericson <git@JohnEricson.me> | 2020-08-02 20:42:20 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-02 20:42:20 -0400 |
commit | b5f7ed6846b265a943d65720ca95d4c6eaa1c7b5 (patch) | |
tree | 7a7b3d59339c96d4d14770d667bb8c4b5e5d6246 /pkgs/build-support/cc-wrapper | |
parent | c0b06ef319bf5c805d3b8bf381562e1124553226 (diff) | |
parent | 92f96f47b05543074e61f1879769d52aa3ddfe66 (diff) | |
download | nixpkgs-b5f7ed6846b265a943d65720ca95d4c6eaa1c7b5.tar nixpkgs-b5f7ed6846b265a943d65720ca95d4c6eaa1c7b5.tar.gz nixpkgs-b5f7ed6846b265a943d65720ca95d4c6eaa1c7b5.tar.bz2 nixpkgs-b5f7ed6846b265a943d65720ca95d4c6eaa1c7b5.tar.lz nixpkgs-b5f7ed6846b265a943d65720ca95d4c6eaa1c7b5.tar.xz nixpkgs-b5f7ed6846b265a943d65720ca95d4c6eaa1c7b5.tar.zst nixpkgs-b5f7ed6846b265a943d65720ca95d4c6eaa1c7b5.zip |
Merge pull request #91293 from Ericson2314/cxx-wrapper-debt-part-2
treewide: Get rid of `cc.gcc`
Diffstat (limited to 'pkgs/build-support/cc-wrapper')
-rw-r--r-- | pkgs/build-support/cc-wrapper/default.nix | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix index c2a06219f1d..4f3680f2197 100644 --- a/pkgs/build-support/cc-wrapper/default.nix +++ b/pkgs/build-support/cc-wrapper/default.nix @@ -8,6 +8,7 @@ { name ? "" , stdenvNoCC , cc ? null, libc ? null, bintools, coreutils ? null, shell ? stdenvNoCC.shell +, gccForLibs ? null , zlib ? null , nativeTools, noLibc ? false, nativeLibc, nativePrefix ? "" , propagateDoc ? cc != null && cc ? man @@ -262,11 +263,11 @@ stdenv.mkDerivation { ## ## GCC libs for non-GCC support ## - + optionalString (isClang && libcxx == null && cc ? gcc) '' + + optionalString (isClang && libcxx == null && !(stdenv.targetPlatform.useLLVM or false) && gccForLibs != null) '' - echo "-B${cc.gcc}/lib/gcc/${targetPlatform.config}/${cc.gcc.version}" >> $out/nix-support/cc-cflags - echo "-L${cc.gcc}/lib/gcc/${targetPlatform.config}/${cc.gcc.version}" >> $out/nix-support/cc-ldflags - echo "-L${cc.gcc.lib}/${targetPlatform.config}/lib" >> $out/nix-support/cc-ldflags + 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}/${targetPlatform.config}/lib" >> $out/nix-support/cc-ldflags '' ## @@ -306,14 +307,15 @@ stdenv.mkDerivation { # We have a libc++ directly, we have one via "smuggled" GCC, or we have one # bundled with the C compiler because it is GCC - + optionalString (libcxx != null || cc.gcc.langCC or false || (isGNU && cc.langCC or false)) '' + + optionalString (libcxx != null || (isClang && !(stdenv.targetPlatform.useLLVM or false) && gccForLibs.langCC or false) || (isGNU && cc.langCC or false)) '' touch "$out/nix-support/libcxx-cxxflags" touch "$out/nix-support/libcxx-ldflags" - '' + optionalString (libcxx == null && cc ? gcc) '' - for dir in ${cc.gcc}/include/c++/*; do + '' + + optionalString (libcxx == null && (isClang && !(stdenv.targetPlatform.useLLVM or false) && gccForLibs.langCC or false)) '' + for dir in ${gccForLibs}/include/c++/*; do echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags done - for dir in ${cc.gcc}/include/c++/*/${targetPlatform.config}; do + for dir in ${gccForLibs}/include/c++/*/${targetPlatform.config}; do echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags done '' |