]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
cmake: link libcommon with libstdc++ statically if WITH_STATIC_LIBSTDCXX
authorKefu Chai <kchai@redhat.com>
Thu, 14 Dec 2017 07:07:30 +0000 (15:07 +0800)
committerKefu Chai <kchai@redhat.com>
Thu, 14 Dec 2017 11:01:34 +0000 (19:01 +0800)
this matches the linkage of libceph-common, because valgrind reports
Leak_StillReachable if daemons are linked against libceph-common, will
link daemons against common instead, and let common link libstdc++
statically, if WITH_STATIC_LIBSTDCXX=ON.

this change also reverts e6695bb6

Fixes: http://tracker.ceph.com/issues/22438
Signed-off-by: Kefu Chai <kchai@redhat.com>
src/CMakeLists.txt

index 91927c072deb31386e0cd680bb9ab8fc41a6d3f6..f96eb8f543f43a863031fa625fdac62e6b15683f 100644 (file)
@@ -693,6 +693,8 @@ set_target_properties(ceph-common PROPERTIES
 if(WITH_STATIC_LIBSTDCXX)
   set_target_properties(ceph-common PROPERTIES
     LINK_FLAGS "-static-libstdc++ -static-libgcc")
+  set_target_properties(common PROPERTIES
+    LINK_FLAGS "-static-libstdc++ -static-libgcc")
 endif()
 install(TARGETS ceph-common DESTINATION ${CMAKE_INSTALL_PKGLIBDIR})
 
@@ -743,7 +745,7 @@ if (WITH_MGR)
   add_executable(ceph-mgr ${mgr_srcs}
                  $<TARGET_OBJECTS:heap_profiler_objs>)
   target_include_directories(ceph-mgr SYSTEM PRIVATE "${PYTHON_INCLUDE_DIRS}")
-  target_link_libraries(ceph-mgr osdc client global-static ceph-common
+  target_link_libraries(ceph-mgr osdc client global-static common
       Boost::python ${PYTHON_LIBRARIES} ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${ALLOC_LIBS})
   install(TARGETS ceph-mgr DESTINATION bin)
 endif (WITH_MGR)
@@ -830,7 +832,7 @@ set(ceph_mon_srcs
 add_executable(ceph-mon ${ceph_mon_srcs}
   $<TARGET_OBJECTS:common_texttable_obj>)
 add_dependencies(ceph-mon erasure_code_plugins)
-target_link_libraries(ceph-mon mon os global-static ceph-common
+target_link_libraries(ceph-mon mon os global-static common
   ${EXTRALIBS}
   ${CMAKE_DL_LIBS})
 install(TARGETS ceph-mon DESTINATION bin)
@@ -861,7 +863,7 @@ set(ceph_osd_srcs
   ceph_osd.cc)
 add_executable(ceph-osd ${ceph_osd_srcs})
 add_dependencies(ceph-osd erasure_code_plugins)
-target_link_libraries(ceph-osd osd os global-static ceph-common
+target_link_libraries(ceph-osd osd os global-static common
   ${BLKID_LIBRARIES} ${RDMA_LIBRARIES})
 if(WITH_FUSE)
   target_link_libraries(ceph-osd ${FUSE_LIBRARIES})
@@ -872,7 +874,7 @@ add_subdirectory(mds)
 set(ceph_mds_srcs
   ceph_mds.cc)
 add_executable(ceph-mds ${ceph_mds_srcs})
-target_link_libraries(ceph-mds mds ${CMAKE_DL_LIBS} global-static ceph-common
+target_link_libraries(ceph-mds mds ${CMAKE_DL_LIBS} global-static common
   Boost::thread)
 install(TARGETS ceph-mds DESTINATION bin)
 
@@ -996,7 +998,7 @@ if(WITH_LIBCEPHFS)
     ceph_syn.cc
     client/SyntheticClient.cc)
   add_executable(ceph-syn ${ceph_syn_srcs})
-  target_link_libraries(ceph-syn client global-static ceph-common)
+  target_link_libraries(ceph-syn client global-static common)
 
   set(mount_ceph_srcs
     mount/mount.ceph.c)
@@ -1017,7 +1019,7 @@ if(WITH_FUSE)
     client/fuse_ll.cc)
   add_executable(ceph-fuse ${ceph_fuse_srcs})
   target_link_libraries(ceph-fuse ${ALLOC_LIBS} ${FUSE_LIBRARIES}
-    client ceph-common global-static)
+    client common global-static)
   set_target_properties(ceph-fuse PROPERTIES COMPILE_FLAGS "-I${FUSE_INCLUDE_DIRS}")
   install(TARGETS ceph-fuse DESTINATION bin)
   install(PROGRAMS mount.fuse.ceph DESTINATION ${CMAKE_INSTALL_SBINDIR})