diff options
author | sternenseemann <sternenseemann@systemli.org> | 2021-10-07 21:06:56 +0200 |
---|---|---|
committer | sternenseemann <sternenseemann@systemli.org> | 2021-10-07 21:30:02 +0200 |
commit | 8e57c33ab6b284be5053717daba75a18c285cd5b (patch) | |
tree | 598344e66523c82695e93c2402f060d98e9b5711 | |
parent | 34ca27bc95261256846ee8d0ebcdf4aeafef907a (diff) | |
download | nixpkgs-8e57c33ab6b284be5053717daba75a18c285cd5b.tar nixpkgs-8e57c33ab6b284be5053717daba75a18c285cd5b.tar.gz nixpkgs-8e57c33ab6b284be5053717daba75a18c285cd5b.tar.bz2 nixpkgs-8e57c33ab6b284be5053717daba75a18c285cd5b.tar.lz nixpkgs-8e57c33ab6b284be5053717daba75a18c285cd5b.tar.xz nixpkgs-8e57c33ab6b284be5053717daba75a18c285cd5b.tar.zst nixpkgs-8e57c33ab6b284be5053717daba75a18c285cd5b.zip |
pkgsLLVM.grpc: fix build with clang < 11
Apparently there's an issue where compiling grpc with -std=c++17 fails unless the clang version is at least 11. Hopefully our default clang version will be increased to that soon, but until then we need to work around this problem by setting an older C++ standard. It's unclear if using C++11 causes further issues, but compiling is better than not compiling, I suppose. Contrary to the linked bug report, the darwin stdenv doesn't exhibit this problem for some reason.
-rw-r--r-- | pkgs/development/libraries/grpc/default.nix | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/pkgs/development/libraries/grpc/default.nix b/pkgs/development/libraries/grpc/default.nix index 0787ffea41f..5d2b58aa3db 100644 --- a/pkgs/development/libraries/grpc/default.nix +++ b/pkgs/development/libraries/grpc/default.nix @@ -57,7 +57,12 @@ stdenv.mkDerivation rec { "-DgRPC_ABSL_PROVIDER=package" "-DBUILD_SHARED_LIBS=ON" "-DCMAKE_SKIP_BUILD_RPATH=OFF" - "-DCMAKE_CXX_STANDARD=17" + # Needs to be compiled with -std=c++11 for clang < 11. Interestingly this is + # only an issue with the useLLVM stdenv, not the darwin stdenvā¦ + # https://github.com/grpc/grpc/issues/26473#issuecomment-860885484 + (if (stdenv.hostPlatform.useLLVM or false) && lib.versionOlder stdenv.cc.cc.version "11.0" + then "-DCMAKE_CXX_STANDARD=11" + else "-DCMAKE_CXX_STANDARD=17") ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "-D_gRPC_PROTOBUF_PROTOC_EXECUTABLE=${buildPackages.protobuf}/bin/protoc" ]; |