]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cmake: extract rgw_*_scheduler.cc into rgw_schedulers 28252/head
authorKefu Chai <kchai@redhat.com>
Tue, 4 Jun 2019 12:59:24 +0000 (20:59 +0800)
committerKefu Chai <kchai@redhat.com>
Tue, 4 Jun 2019 13:17:15 +0000 (21:17 +0800)
i was running into following issue:

../../../lib/libradosgw_a.a(rgw_loadgen_process.cc.o): In function
`RGWLoadGenProcess::run()':
/home/jenkins-build/build/workspace/ceph-pull-requests/src/rgw/rgw_loadgen_process.cc:102:
undefined reference to `signal_shutdown()'
collect2: error: ld returned 1 exit status

signal_shutdown() is only used by rgw_main.cc to notify the main thread,
but we don't need this facility in unit test exercising the schedulers,
so, in this change, rgw schedulers are extracted into librgw_schedulers,
so this library can be consumed by the unit test.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/rgw/CMakeLists.txt
src/test/rgw/CMakeLists.txt

index dac869f824fb2f824693546cc3115a5c805306d6..10aee8d2a0502f7dd909efcf9adacf8adda04104 100644 (file)
@@ -210,14 +210,14 @@ if(WITH_RADOSGW_AMQP_ENDPOINT)
   list(APPEND rgw_libs RabbitMQ::RabbitMQ)
 endif()
 
+set(rgw_schedulers_srcs
+  rgw_dmclock_scheduler_ctx.cc
+  rgw_dmclock_sync_scheduler.cc)
 set(radosgw_srcs
   rgw_loadgen_process.cc
   rgw_civetweb.cc
   rgw_civetweb_frontend.cc
-  rgw_civetweb_log.cc
-  rgw_dmclock_scheduler_ctx.cc
-  rgw_dmclock_sync_scheduler.cc)
-
+  rgw_civetweb_log.cc)
 if (WITH_RADOSGW_FCGI_FRONTEND)
   list(APPEND radosgw_srcs rgw_fcgi_process.cc)
 endif()
@@ -225,13 +225,19 @@ endif()
 if(WITH_RADOSGW_BEAST_FRONTEND)
   list(APPEND radosgw_srcs
     rgw_asio_client.cc
-    rgw_asio_frontend.cc
+    rgw_asio_frontend.cc)
+  list(APPEND rgw_schedulers_srcs
     rgw_dmclock_async_scheduler.cc)
 endif()
 
 add_library(radosgw_a STATIC ${radosgw_srcs}
   $<TARGET_OBJECTS:civetweb_common_objs>)
-target_link_libraries(radosgw_a PRIVATE ${rgw_libs})
+add_library(rgw_schedulers STATIC ${rgw_schedulers_srcs})
+target_link_libraries(rgw_schedulers
+  PUBLIC dmclock::dmclock)
+target_link_libraries(radosgw_a
+  PRIVATE ${rgw_libs} rgw_schedulers
+  PUBLIC dmclock::dmclock)
 if(WITH_RADOSGW_BEAST_FRONTEND AND WITH_RADOSGW_BEAST_OPENSSL)
   # used by rgw_asio_frontend.cc
   target_link_libraries(radosgw_a PRIVATE OpenSSL::SSL)
@@ -242,7 +248,7 @@ target_link_libraries(radosgw radosgw_a librados
   cls_rgw_client cls_otp_client cls_lock_client cls_refcount_client
   cls_log_client cls_timeindex_client
   cls_version_client cls_user_client
-  global dmclock::dmclock
+  global
   ${FCGI_LIBRARY} ${LIB_RESOLV}
   ${CURL_LIBRARIES} ${EXPAT_LIBRARIES} ${BLKID_LIBRARIES}
   ${ALLOC_LIBS})
index 648f14b83651b7a20ea1aacfd70602dee011e441..65cb731f8a4e33f8bd0c7145c2661435c86cf26e 100644 (file)
@@ -141,7 +141,7 @@ add_ceph_unittest(unittest_rgw_string)
 add_executable(unittest_rgw_dmclock_scheduler test_rgw_dmclock_scheduler.cc $<TARGET_OBJECTS:unit-main>)
 add_ceph_unittest(unittest_rgw_dmclock_scheduler)
 
-target_link_libraries(unittest_rgw_dmclock_scheduler radosgw_a dmclock)
+target_link_libraries(unittest_rgw_dmclock_scheduler rgw_schedulers global ${UNITTEST_LIBS})
 if(WITH_BOOST_CONTEXT)
   target_compile_definitions(unittest_rgw_dmclock_scheduler PRIVATE BOOST_COROUTINES_NO_DEPRECATION_WARNING)
   target_link_libraries(unittest_rgw_dmclock_scheduler Boost::coroutine Boost::context)