From: Kefu Chai Date: Mon, 20 May 2024 23:47:22 +0000 (+0800) Subject: cmake: link rados_snap_set_diff_obj and krbd against legacy-option-headers X-Git-Tag: v20.0.0~1900^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=d66dabfe75340c204c5a26da85e3bbf3afcd7855;p=ceph.git cmake: link rados_snap_set_diff_obj and krbd against legacy-option-headers in c24a6ffe20, we tried to link all target dependent on legacy option headers against legacy-option-headers, but we missed some of them. in our CI, we spotted build failure like: ``` FAILED: src/CMakeFiles/rados_snap_set_diff_obj.dir/librados/snap_set_diff.cc.o /usr/bin/ccache /usr/bin/clang++-14 -DBOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION -DBOOST_ASIO_HAS_IO_URING -DBOOST_ASIO_NO_TS_EXECUTORS -DHAVE_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_REENTRANT -D_THREAD_SAFE -D__CEPH__ -D__STDC_FORMAT_MACROS -D__linux__ -I/home/jenkins-build/build/workspace/ceph-api/build/src/include -I/home/jenkins-build/build/workspace/ceph-api/src -isystem /opt/ceph/include -isystem /home/jenkins-build/build/workspace/ceph-api/build/include -isystem /home/jenkins-build/build/workspace/ceph-api/src/jaegertracing/opentelemetry-cpp/api/include -isystem /home/jenkins-build/build/workspace/ceph-api/src/jaegertracing/opentelemetry-cpp/exporters/jaeger/include -isystem /home/jenkins-build/build/workspace/ceph-api/src/jaegertracing/opentelemetry-cpp/ext/include -isystem /home/jenkins-build/build/workspace/ceph-api/src/jaegertracing/opentelemetry-cpp/sdk/include -isystem /home/jenkins-build/build/workspace/ceph-api/src/xxHash -isystem /home/jenkins-build/build/workspace/ceph-api/src/fmt/include -g -Werror -fPIC -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -DBOOST_PHOENIX_STL_TUPLE_H_ -Wall -fno-strict-aliasing -fsigned-char -Wtype-limits -Wignored-qualifiers -Wpointer-arith -Werror=format-security -Winit-self -Wno-unknown-pragmas -Wnon-virtual-dtor -Wno-ignored-qualifiers -ftemplate-depth-1024 -Wpessimizing-move -Wredundant-move -Wno-inconsistent-missing-override -Wno-mismatched-tags -Wno-unused-private-field -Wno-address-of-packed-member -Wno-unused-function -Wno-unused-local-typedef -Wno-varargs -Wno-gnu-designator -Wno-missing-braces -Wno-parentheses -Wno-deprecated-register -DCEPH_DEBUG_MUTEX -D_GLIBCXX_ASSERTIONS -fdiagnostics-color=auto -std=c++20 -MD -MT src/CMakeFiles/rados_snap_set_diff_obj.dir/librados/snap_set_diff.cc.o -MF src/CMakeFiles/rados_snap_set_diff_obj.dir/librados/snap_set_diff.cc.o.d -o src/CMakeFiles/rados_snap_set_diff_obj.dir/librados/snap_set_diff.cc.o -c /home/jenkins-build/build/workspace/ceph-api/src/librados/snap_set_diff.cc In file included from /home/jenkins-build/build/workspace/ceph-api/src/librados/snap_set_diff.cc:7: In file included from /home/jenkins-build/build/workspace/ceph-api/src/common/ceph_context.h:41: In file included from /home/jenkins-build/build/workspace/ceph-api/src/common/config_proxy.h:6: In file included from /home/jenkins-build/build/workspace/ceph-api/src/common/config.h:27: In file included from /home/jenkins-build/build/workspace/ceph-api/src/common/config_values.h:59: /home/jenkins-build/build/workspace/ceph-api/src/common/options/legacy_config_opts.h:7:10: fatal error: 'osd_legacy_options.h' file not found ^~~~~~~~~~~~~~~~~~~~~~ 1 error generated. [111/1748] Generating immutable-object-cache_options.cc, ../../../include/immutable-object-cache_legacy_options.h [112/1748] Building CXX object src/CMakeFiles/krbd.dir/krbd.cc.o FAILED: src/CMakeFiles/krbd.dir/krbd.cc.o /usr/bin/ccache /usr/bin/clang++-14 -DBOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION -DBOOST_ASIO_HAS_IO_URING -DBOOST_ASIO_NO_TS_EXECUTORS -DHAVE_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_REENTRANT -D_THREAD_SAFE -D__CEPH__ -D__STDC_FORMAT_MACROS -D__linux__ -I/home/jenkins-build/build/workspace/ceph-api/build/src/include -I/home/jenkins-build/build/workspace/ceph-api/src -isystem /opt/ceph/include -isystem /home/jenkins-build/build/workspace/ceph-api/build/include -isystem /home/jenkins-build/build/workspace/ceph-api/src/jaegertracing/opentelemetry-cpp/api/include -isystem /home/jenkins-build/build/workspace/ceph-api/src/jaegertracing/opentelemetry-cpp/exporters/jaeger/include -isystem /home/jenkins-build/build/workspace/ceph-api/src/jaegertracing/opentelemetry-cpp/ext/include -isystem /home/jenkins-build/build/workspace/ceph-api/src/jaegertracing/opentelemetry-cpp/sdk/include -isystem /home/jenkins-build/build/workspace/ceph-api/src/xxHash -isystem /home/jenkins-build/build/workspace/ceph-api/src/fmt/include -g -Werror -fPIC -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -DBOOST_PHOENIX_STL_TUPLE_H_ -Wall -fno-strict-aliasing -fsigned-char -Wtype-limits -Wignored-qualifiers -Wpointer-arith -Werror=format-security -Winit-self -Wno-unknown-pragmas -Wnon-virtual-dtor -Wno-ignored-qualifiers -ftemplate-depth-1024 -Wpessimizing-move -Wredundant-move -Wno-inconsistent-missing-override -Wno-mismatched-tags -Wno-unused-private-field -Wno-address-of-packed-member -Wno-unused-function -Wno-unused-local-typedef -Wno-varargs -Wno-gnu-designator -Wno-missing-braces -Wno-parentheses -Wno-deprecated-register -DCEPH_DEBUG_MUTEX -D_GLIBCXX_ASSERTIONS -fdiagnostics-color=auto -std=c++20 -MD -MT src/CMakeFiles/krbd.dir/krbd.cc.o -MF src/CMakeFiles/krbd.dir/krbd.cc.o.d -o src/CMakeFiles/krbd.dir/krbd.cc.o -c /home/jenkins-build/build/workspace/ceph-api/src/krbd.cc In file included from /home/jenkins-build/build/workspace/ceph-api/src/krbd.cc:44: In file included from /home/jenkins-build/build/workspace/ceph-api/src/mon/MonMap.h:28: In file included from /home/jenkins-build/build/workspace/ceph-api/src/mon/mon_types.h:20: In file included from /home/jenkins-build/build/workspace/ceph-api/src/include/Context.h:19: In file included from /home/jenkins-build/build/workspace/ceph-api/src/common/dout.h:29: In file included from /home/jenkins-build/build/workspace/ceph-api/src/common/ceph_context.h:41: In file included from /home/jenkins-build/build/workspace/ceph-api/src/common/config_proxy.h:6: In file included from /home/jenkins-build/build/workspace/ceph-api/src/common/config.h:27: In file included from /home/jenkins-build/build/workspace/ceph-api/src/common/config_values.h:59: /home/jenkins-build/build/workspace/ceph-api/src/common/options/legacy_config_opts.h:11:10: fatal error: 'rgw_legacy_options.h' file not found ^~~~~~~~~~~~~~~~~~~~~~ 1 error generated. ``` so in this change, we link the related targets to `legacy-option-headers` as well to fulfill the build dependency. Signed-off-by: Kefu Chai --- diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ccee64f6c4f86..4f8ea9593575f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -621,6 +621,8 @@ add_subdirectory(osdc) add_subdirectory(perfglue) add_library(rados_snap_set_diff_obj OBJECT librados/snap_set_diff.cc) +target_link_libraries(rados_snap_set_diff_obj + PRIVATE legacy-option-headers) option(WITH_LIBRADOSSTRIPER "build with libradosstriper support" ON) @@ -877,7 +879,9 @@ if(WITH_RBD) if(WITH_KRBD) add_library(krbd STATIC krbd.cc $) - target_link_libraries(krbd keyutils::keyutils) + target_link_libraries(krbd + keyutils::keyutils + legacy-option-headers) endif() add_subdirectory(librbd) if(WITH_FUSE)