]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
cmake: remove unnecessary linked libs from libcephfs
authorKefu Chai <kchai@redhat.com>
Fri, 1 Jul 2016 03:09:09 +0000 (11:09 +0800)
committerKefu Chai <kchai@redhat.com>
Fri, 1 Jul 2016 08:27:48 +0000 (16:27 +0800)
* some of the libs shares the same .cc which has static C++ variables. if
  we link against the different libs sharing the same static C++
  variables, and the dtor of the C++ variables has side-effects, among
  other things, deallocates a memory chunk. then, we are in the trouble of
  double free. so "osd" lib is removed.
* some of the libs are referenced by the linked lib, so no need to link
  against them again. for example, BLKID_LIBRARIES are linked by
  libcommon, so we can remove it from the linked libs list.
* and lib "os" and "cls_references_objs" are not used by libcephfs at all,
  so remove them.

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

index e60e2839df94a9b559d02d52633296251104b58b..186b01f68556e1bc799608fb5f132634adfb2cff 100644 (file)
@@ -1157,10 +1157,8 @@ if(WITH_LIBCEPHFS)
   target_link_libraries(client osdc mds)
   set(libcephfs_srcs libcephfs.cc)
   add_library(cephfs ${CEPH_SHARED} ${libcephfs_srcs}
-    $<TARGET_OBJECTS:cls_references_objs>
     $<TARGET_OBJECTS:common_util_obj>)
-  target_link_libraries(cephfs LINK_PRIVATE client osdc osd os global common
-    ${BLKID_LIBRARIES}
+  target_link_libraries(cephfs LINK_PRIVATE client
     ${CRYPTO_LIBS} ${EXTRALIBS})
   if(ENABLE_SHARED)
     set_target_properties(cephfs PROPERTIES