From 056b70613154506c55214e0dda85a4472d1b106e Mon Sep 17 00:00:00 2001 From: Sun Yuechi Date: Mon, 15 Jun 2026 04:45:37 +0800 Subject: [PATCH] rgw: declare rgw_a's dependency on rgw_schedulers and kmip rgw_a uses rgw::dmclock::* (rgw_schedulers) and kmip_* (kmip) but never declared either, so each consumer relinked them by hand. ld.bfd hid this via lazy archive extraction; mold pulls the members and fails with undefined symbols. Declare it on rgw_a (PRIVATE) and drop the now redundant explicit links from radosgw and the rgw shared library. Signed-off-by: Sun Yuechi --- src/rgw/CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/rgw/CMakeLists.txt b/src/rgw/CMakeLists.txt index f0f605d6200..a8082f580ad 100644 --- a/src/rgw/CMakeLists.txt +++ b/src/rgw/CMakeLists.txt @@ -508,6 +508,10 @@ if(COMPILER_SUPPORTS_VLA_ERROR) $<$:-Werror=vla>) endif() +# rgw_a references rgw::dmclock::* (rgw_schedulers) and kmip_* (kmip); declare +# it here so the dependency propagates to every consumer. PRIVATE: not in headers. +target_link_libraries(rgw_a PRIVATE rgw_schedulers kmip) + set(radosgw_srcs rgw_main.cc) @@ -532,8 +536,6 @@ target_include_directories(radosgw SYSTEM PUBLIC "../rapidjson/include") target_link_libraries(radosgw PRIVATE legacy-option-headers ${rgw_libs} - rgw_schedulers - kmip ${ALLOC_LIBS}) install(TARGETS radosgw DESTINATION bin) @@ -642,8 +644,6 @@ target_include_directories(rgw SYSTEM PUBLIC "../rapidjson/include") target_link_libraries(rgw PRIVATE ${rgw_libs} - rgw_schedulers - kmip librados cls_rgw_client cls_otp_client -- 2.47.3