diff --git a/projects/rdc/README.md b/projects/rdc/README.md index ea98656584..2170d5c8ce 100644 --- a/projects/rdc/README.md +++ b/projects/rdc/README.md @@ -70,6 +70,7 @@ Below example installs gRPC into `/opt/grpc` -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DBUILD_SHARED_LIBS=ON \ + -DCMAKE_SHARED_LINKER_FLAGS_INIT=-Wl,--enable-new-dtags,--build-id=sha1,--rpath,'$ORIGIN' \ -DCMAKE_INSTALL_PREFIX="$GRPC_ROOT" \ -DCMAKE_INSTALL_LIBDIR=lib \ -DCMAKE_BUILD_TYPE=Release diff --git a/projects/rdc/server/CMakeLists.txt b/projects/rdc/server/CMakeLists.txt index 745865ae4f..9ed097dbfd 100755 --- a/projects/rdc/server/CMakeLists.txt +++ b/projects/rdc/server/CMakeLists.txt @@ -48,6 +48,16 @@ else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb -O0 -DDEBUG") endif() +# Issue with ABI compatibility and gRPC. +# See: +# - https://github.com/llvm/llvm-project/issues/102443 +# - https://github.com/abseil/abseil-cpp/issues/1747 +if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 18.0.0) + message("Compiler is " ${CMAKE_CXX_COMPILER_ID} ":" ${CMAKE_CXX_COMPILER_VERSION}) + message("Applying abi patch...") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fclang-abi-compat=17") +endif() + set(SRC_DIR "src") set(INC_DIR "include/rdc")