diff --git a/CMakeLists.txt b/CMakeLists.txt index b08365481b7..576525db6cc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -169,6 +169,13 @@ else(ENABLE_SHARED) endif(ENABLE_SHARED) set(CMAKE_POSITION_INDEPENDENT_CODE ${ENABLE_SHARED}) +option(WITH_STATIC_LIBSTDCXX "Link against libstdc++ statically" OFF) +if(WITH_STATIC_LIBSTDCXX) + if(NOT CMAKE_COMPILER_IS_GNUCXX) + message(FATAL_ERROR "Please use GCC to enable WITH_STATIC_LIBSTDCXX") + endif() +endif() + option(WITH_RDMA "Enable RDMA in async messenger" ON) if(WITH_RDMA) find_package(rdma REQUIRED) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c75a845fd87..4b5b952bbc3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -688,6 +688,10 @@ target_link_libraries(ceph-common ${ceph_common_deps}) set_target_properties(ceph-common PROPERTIES SOVERSION 0 INSTALL_RPATH "") +if(WITH_STATIC_LIBSTDCXX) + set_target_properties(ceph-common PROPERTIES + LINK_FLAGS "-static-libstdc++ -static-libgcc") +endif() install(TARGETS ceph-common DESTINATION ${CMAKE_INSTALL_PKGLIBDIR}) add_library(common_utf8 STATIC common/utf8.c)