From d3e0f3469f0f56d8eaebd7d093fd80dc7c3eef3e Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Tue, 4 Jun 2019 20:59:24 +0800 Subject: [PATCH] cmake: extract rgw_*_scheduler.cc into rgw_schedulers 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 --- src/rgw/CMakeLists.txt | 20 +++++++++++++------- src/test/rgw/CMakeLists.txt | 2 +- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/rgw/CMakeLists.txt b/src/rgw/CMakeLists.txt index dac869f824f..10aee8d2a05 100644 --- a/src/rgw/CMakeLists.txt +++ b/src/rgw/CMakeLists.txt @@ -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_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}) diff --git a/src/test/rgw/CMakeLists.txt b/src/test/rgw/CMakeLists.txt index 648f14b8365..65cb731f8a4 100644 --- a/src/test/rgw/CMakeLists.txt +++ b/src/test/rgw/CMakeLists.txt @@ -141,7 +141,7 @@ add_ceph_unittest(unittest_rgw_string) add_executable(unittest_rgw_dmclock_scheduler test_rgw_dmclock_scheduler.cc $) 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) -- 2.39.5