Unverified Commit 379949a5 authored by Dmitry Kalinkin's avatar Dmitry Kalinkin Committed by GitHub
Browse files

Merge pull request #206798 from wegank/grpc-aarch64-linux

google-cloud-cpp: fix build on aarch64-linux
parents 01e42501 6f2d0134
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -206,7 +206,7 @@ stdenv.mkDerivation rec {
    "-DCMAKE_INSTALL_RPATH=@loader_path/../lib" # needed for tools executables
  ] ++ lib.optional (!stdenv.isx86_64) "-DARROW_USE_SIMD=OFF"
  ++ lib.optional enableS3 "-DAWSSDK_CORE_HEADER_FILE=${aws-sdk-cpp}/include/aws/core/Aws.h"
  ++ lib.optionals enableGcs [ "-DCMAKE_CXX_STANDARD=17" ];
  ++ lib.optionals enableGcs [ "-DCMAKE_CXX_STANDARD=${grpc.cxxStandard}" ];

  doInstallCheck = true;
  ARROW_TEST_DATA = lib.optionalString doInstallCheck "${arrow-testing}/data";
+1 −1
Original line number Diff line number Diff line
@@ -117,7 +117,7 @@ stdenv.mkDerivation rec {
    # this adds a good chunk of time to the build
    "-DBUILD_TESTING:BOOL=ON"
    "-DGOOGLE_CLOUD_CPP_ENABLE_EXAMPLES:BOOL=OFF"
    "-DCMAKE_CXX_STANDARD=17"
    "-DCMAKE_CXX_STANDARD=${grpc.cxxStandard}"
  ] ++ lib.optionals (apis != [ "*" ]) [
    "-DGOOGLE_CLOUD_CPP_ENABLE=${lib.concatStringsSep ";" apis}"
  ];
+23 −22
Original line number Diff line number Diff line
@@ -54,17 +54,7 @@ stdenv.mkDerivation rec {
  buildInputs = [ openssl protobuf ]
    ++ lib.optionals stdenv.isLinux [ libnsl ];

  cmakeFlags =
    let
      # 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
      useLLVMAndOldCC = (stdenv.hostPlatform.useLLVM or false) && lib.versionOlder stdenv.cc.cc.version "11.0";
      # With GCC 9 (current aarch64-linux) it fails with c++17 but OK with c++14.
      useOldGCC = !(stdenv.hostPlatform.useLLVM or false) && lib.versionOlder stdenv.cc.cc.version "10";
      cxxStandard = if useLLVMAndOldCC then "11" else if useOldGCC then "14" else "17";
    in
    [
  cmakeFlags = [
    "-DgRPC_ZLIB_PROVIDER=package"
    "-DgRPC_CARES_PROVIDER=package"
    "-DgRPC_RE2_PROVIDER=package"
@@ -72,7 +62,7 @@ stdenv.mkDerivation rec {
    "-DgRPC_PROTOBUF_PROVIDER=package"
    "-DgRPC_ABSL_PROVIDER=package"
    "-DBUILD_SHARED_LIBS=ON"
      "-DCMAKE_CXX_STANDARD=${cxxStandard}"
    "-DCMAKE_CXX_STANDARD=${passthru.cxxStandard}"
  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
    "-D_gRPC_PROTOBUF_PROTOC_EXECUTABLE=${buildPackages.protobuf}/bin/protoc"
  ];
@@ -97,6 +87,17 @@ stdenv.mkDerivation rec {

  enableParallelBuilds = true;

  passthru.cxxStandard =
    let
      # 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
      useLLVMAndOldCC = (stdenv.hostPlatform.useLLVM or false) && lib.versionOlder stdenv.cc.cc.version "11.0";
      # With GCC 9 (current aarch64-linux) it fails with c++17 but OK with c++14.
      useOldGCC = !(stdenv.hostPlatform.useLLVM or false) && lib.versionOlder stdenv.cc.cc.version "10";
    in
    (if useLLVMAndOldCC then "11" else if useOldGCC then "14" else "17");

  passthru.tests = {
    inherit (python3.pkgs) grpcio-status grpcio-tools;
    inherit arrow-cpp;
+1 −1
Original line number Diff line number Diff line
@@ -19594,7 +19594,7 @@ with pkgs;
  grpc = callPackage ../development/libraries/grpc {
    # grpc builds with c++17 so abseil must also be built that way
    abseil-cpp = abseil-cpp_202206.override {
      cxxStandard = "17";
      cxxStandard = grpc.cxxStandard;
    };
  };