diff options
author | John Ericson <git@JohnEricson.me> | 2020-09-08 20:24:50 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-08 20:24:50 -0400 |
commit | 5fd27509cf4831f888e4785f0a6f13abac2cf48d (patch) | |
tree | a70dfc5998f51eb3bf8bcf890f37f84e2e05a888 /pkgs/build-support/cc-wrapper | |
parent | 4964392e487abd9db39a7043acf111496bbfea4f (diff) | |
parent | 452854a13cd7f3a4f687096423652040da56e289 (diff) | |
download | nixpkgs-5fd27509cf4831f888e4785f0a6f13abac2cf48d.tar nixpkgs-5fd27509cf4831f888e4785f0a6f13abac2cf48d.tar.gz nixpkgs-5fd27509cf4831f888e4785f0a6f13abac2cf48d.tar.bz2 nixpkgs-5fd27509cf4831f888e4785f0a6f13abac2cf48d.tar.lz nixpkgs-5fd27509cf4831f888e4785f0a6f13abac2cf48d.tar.xz nixpkgs-5fd27509cf4831f888e4785f0a6f13abac2cf48d.tar.zst nixpkgs-5fd27509cf4831f888e4785f0a6f13abac2cf48d.zip |
Merge pull request #97387 from Ericson2314/fix-android-prebuilt
cc-wrapper: Fix for prebuilt android
Diffstat (limited to 'pkgs/build-support/cc-wrapper')
-rw-r--r-- | pkgs/build-support/cc-wrapper/default.nix | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix index fff57dd7c48..30d3db1866c 100644 --- a/pkgs/build-support/cc-wrapper/default.nix +++ b/pkgs/build-support/cc-wrapper/default.nix @@ -61,6 +61,12 @@ let then import ../expand-response-params { inherit (buildPackages) stdenv; } else ""; + useGccForLibs = isClang + && libcxx == null + && !(stdenv.targetPlatform.useLLVM or false) + && !(stdenv.targetPlatform.useAndroidPrebuilt or false) + && gccForLibs != null; + # older compilers (for example bootstrap's GCC 5) fail with -march=too-modern-cpu isGccArchSupported = arch: if isGNU then @@ -272,7 +278,7 @@ stdenv.mkDerivation { ## ## GCC libs for non-GCC support ## - + optionalString (isClang && libcxx == null && !(stdenv.targetPlatform.useLLVM or false) && gccForLibs != null) '' + + optionalString useGccForLibs '' 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 @@ -316,11 +322,11 @@ 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 || (isClang && !(stdenv.targetPlatform.useLLVM or false) && gccForLibs.langCC or false) || (isGNU && cc.langCC or false)) '' + + optionalString (libcxx != null || (useGccForLibs && gccForLibs.langCC or false) || (isGNU && cc.langCC or false)) '' touch "$out/nix-support/libcxx-cxxflags" touch "$out/nix-support/libcxx-ldflags" '' - + optionalString (libcxx == null && (isClang && !(stdenv.targetPlatform.useLLVM or false) && gccForLibs.langCC or false)) '' + + optionalString (libcxx == null && (useGccForLibs && gccForLibs.langCC or false)) '' for dir in ${gccForLibs}/include/c++/*; do echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags done |