ceph/cmake/modules
Patrick Donnelly 8addb35987
cmake: populate liburing include and library paths down to rocksdb external project
There are two problems:

1) The librocksdb does not use the built liburing if present.
2) You cannot turn off rocksdb's use of liburing with WITH_LIBURING=OFF.

This is to fix errors like:

	FAILED: bin/ceph_test_keyvaluedb_iterators
	: && /opt/rh/gcc-toolset-11/root/usr/bin/g++ -Og -g -rdynamic -pie src/test/ObjectMap/CMakeFiles/ceph_test_keyvaluedb_iterators.dir/test_keyvaluedb_iterators.cc.o src/test/ObjectMap/CMakeFiles/ceph_test_keyvaluedb_iterators.dir/KeyValueDBMemory.cc.o -o bin/ceph_test_keyvaluedb_iterators  -Wl,-rpath,/home/pdonnell/scratch/build/lib  lib/libos.a  lib/libgmock_maind.a  lib/libgmockd.	a  lib/libgtestd.a  -lpthread  -ldl  lib/libglobal.a  -ldl  /usr/lib64/librt.so  -lresolv  -ldl  lib/libblk.a  /lib64/libaio.so  src/liburing/src/liburing.a  lib/libkv.a  lib/libheap_profiler.a  /lib64/libtcmalloc.so  src/rocksdb/librocksdb.a  /lib64/libsnappy.so  /usr/lib64/liblz4.so  /usr/lib64/libz.so  /usr/lib64/libfuse.so  lib/libceph-common.so.2  src/opentelemetry-cpp/sdk/src/trace/libopentelemetry_trace.a  src/opentelemetry-cpp/sdk/src/resource/libopentelemetry_resources.a  src/opentelemetry-cpp/sdk/src/common/libopentelemetry_common.a  src/opentelemetry-cpp/exporters/jaeger/libopentelemetry_exporter_jaeger_trace.a  src/opentelemetry-cpp/ext/src/http/client/curl/libopentelemetry_http_client_curl.a  /usr/lib64/libcurl.so  /usr/lib64/libthrift.so  lib/libjson_spirit.a  lib/libcommon_utf8.a  lib/liberasure_code.a  lib/libextblkdev.a  -lcap  boost/lib/libboost_thread.a  boost/lib/libboost_chrono.a  boost/lib/libboost_atomic.a  boost/lib/libboost_system.a  boost/lib/libboost_random.a  boost/lib/libboost_program_options.a  boost/lib/libboost_date_time.a  boost/lib/libboost_iostreams.a  boost/lib/libboost_regex.a  lib/libfmtd.a  /usr/lib64/libblkid.so  -lpthread  /usr/lib64/libcrypto.so  /usr/lib64/libudev.so  /usr/lib64/libz.so  -ldl  -lresolv   -Wl,--as-needed -latomic && :
	/opt/rh/gcc-toolset-11/root/usr/bin/ld: src/rocksdb/librocksdb.a(fs_posix.cc.o): in function `io_uring_wait_cqe_nr':
	/home/pdonnell/scratch/build/src/liburing/src/include/liburing.h:494: undefined reference to `__io_uring_get_cqe'
	/opt/rh/gcc-toolset-11/root/usr/bin/ld: src/rocksdb/librocksdb.a(fs_posix.cc.o): in function `rocksdb::(anonymous namespace)::PosixFileSystem::AbortIO(std::vector<void*, std::allocator<void*> >&)':
	/home/pdonnell/ceph/src/rocksdb/env/fs_posix.cc:1125: undefined reference to `io_uring_get_sqe'
	/opt/rh/gcc-toolset-11/root/usr/bin/ld: /home/pdonnell/ceph/src/rocksdb/env/fs_posix.cc:1134: undefined reference to `io_uring_submit'
	/opt/rh/gcc-toolset-11/root/usr/bin/ld: src/rocksdb/librocksdb.a(fs_posix.cc.o): in function `rocksdb::CreateIOUring()':
	/home/pdonnell/ceph/src/rocksdb/env/io_posix.h:272: undefined reference to `io_uring_queue_init'
	/opt/rh/gcc-toolset-11/root/usr/bin/ld: src/rocksdb/librocksdb.a(io_posix.cc.o): in function `io_uring_wait_cqe_nr':
	/home/pdonnell/scratch/build/src/liburing/src/include/liburing.h:494: undefined reference to `__io_uring_get_cqe'
	/opt/rh/gcc-toolset-11/root/usr/bin/ld: src/rocksdb/librocksdb.a(io_posix.cc.o): in function `rocksdb::PosixRandomAccessFile::MultiRead(rocksdb::FSReadRequest*, unsigned long, rocksdb::IOOptions const&, rocksdb::IODebugContext*)':
	/home/pdonnell/ceph/src/rocksdb/env/io_posix.cc:674: undefined reference to `io_uring_get_sqe'
	/opt/rh/gcc-toolset-11/root/usr/bin/ld: /home/pdonnell/ceph/src/rocksdb/env/io_posix.cc:684: undefined reference to `io_uring_submit_and_wait'
	/opt/rh/gcc-toolset-11/root/usr/bin/ld: src/rocksdb/librocksdb.a(io_posix.cc.o): in function `rocksdb::PosixRandomAccessFile::ReadAsync(rocksdb::FSReadRequest&, rocksdb::IOOptions const&, std::function<void (rocksdb::FSReadRequest const&, void*)>, void*, void**, std::function<void (void*)>*, rocksdb::IODebugContext*)':
	/home/pdonnell/ceph/src/rocksdb/env/io_posix.cc:901: undefined reference to `io_uring_get_sqe'
	/opt/rh/gcc-toolset-11/root/usr/bin/ld: /home/pdonnell/ceph/src/rocksdb/env/io_posix.cc:910: undefined reference to `io_uring_submit'
	collect2: error: ld returned 1 exit status

Fixes: https://tracker.ceph.com/issues/63218
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-10-17 13:44:49 -04:00
..
FindPython cmake: update FindPython3 module 2023-08-17 10:24:16 +08:00
AddCephTest.cmake ceph-mixin: fix PATH issues with jsonnet-bundler 2022-08-18 13:43:34 +02:00
BuildArrow.cmake rgw: allow Arrow Flight to be built and linked into ceph components 2022-12-15 12:49:35 -05:00
BuildBoost.cmake build: Bump boost to 1.82 2023-07-05 15:45:07 -04:00
Buildc-ares.cmake cmake: s/c-ares::c-ares/c-ares::cares/ 2022-11-22 01:17:30 +08:00
BuildDPDK.cmake cmake: pass RTE_DEVEL_BUILD=n when building dpdk 2022-03-05 12:57:24 +08:00
BuildFIO.cmake cmake/modules/BuildFIO: specify the full path to alloc libraries 2022-05-02 12:40:55 +08:00
BuildOpentelemetry.cmake cmake: remove git fetch and use submodule for building opentelemetry lib 2022-06-22 01:06:33 +00:00
Buildpmdk.cmake cmake: disable LTO when building pmdk 2022-08-04 17:56:48 +08:00
BuildRocksDB.cmake cmake: populate liburing include and library paths down to rocksdb external project 2023-10-17 13:44:49 -04:00
BuildSPDK.cmake cmake/modules/BuildSPDK.cmake: link whole-archive 2022-01-20 19:39:27 +08:00
BuildUBBD.cmake tools/rbd: add support of new device type for ubbd 2023-05-18 12:35:39 +00:00
Builduring.cmake cmake: populate liburing include and library paths down to rocksdb external project 2023-10-17 13:44:49 -04:00
BuildUtf8proc.cmake cmake: add submodule for utf8proc at v2.2.0 2022-03-14 10:19:02 -04:00
BuildZstd.cmake
CephCheck_link.c
CephCheck_link.map
CephChecks.cmake cmake: fail on unknown attribute 2021-08-06 18:01:47 +08:00
CheckCxxAtomic.cmake build: fix atomic linking with LTO on s390x 2022-07-18 15:19:02 -04:00
CheckNasm.cmake
CTags.cmake
Distutils.cmake cmake: remove spaces in macro used for compiling cython code 2022-08-05 20:07:02 +08:00
Findaio.cmake
FindArrow.cmake cmake: move Arrow targets into find_package modules 2022-03-14 10:19:02 -04:00
Findbabeltrace.cmake
FindBacktrace.cmake
Findblkid.cmake
FindBoost.cmake build: Bump boost to 1.82 2023-07-05 15:45:07 -04:00
Findc-ares.cmake rgw: allow Arrow Flight to be built and linked into ceph components 2022-12-15 12:49:35 -05:00
FindCUnit.cmake
FindCython.cmake
FindDAOS.cmake rgw: add DAOS SAL implementation 2022-09-07 12:19:41 -04:00
Finddaxctl.cmake cmake: add findndctl and finddaxctl function 2022-07-12 10:32:57 +08:00
Finddml.cmake Add the support to use DML library for PMEM device. 2022-04-19 14:51:12 +08:00
Finddpdk.cmake cmake: dpdk: only append common dir if it has been found 2022-01-13 14:40:17 +01:00
Findfmt.cmake cmake: add an option "WITH_FMT_HEADER_ONLY" 2021-07-24 02:26:45 +08:00
FindFUSE.cmake
FindGMock.cmake
Findgperftools.cmake
FindGSSApi.cmake
FindJeMalloc.cmake
Findkeyutils.cmake
Findlibcryptsetup.cmake
FindLinuxZNS.cmake cmake: detect linux/blk/zoned support 2021-12-25 16:13:47 +08:00
FindLMDB.cmake RGW - Add POSIX Driver 2023-09-14 12:09:40 -04:00
FindLTTngUST.cmake
FindLZ4.cmake
FindMake.cmake
Findmotr.cmake cmake: find motr libraries and header before using them 2022-08-10 21:15:12 +08:00
Findndctl.cmake cmake: add findndctl and finddaxctl function 2022-07-12 10:32:57 +08:00
Findnl.cmake
FindNUMA.cmake
FindOATH.cmake
FindOpenLDAP.cmake cmake: define OpenLDAP::OpenLDAP library 2021-07-24 19:28:56 +08:00
FindParquet.cmake cmake: move Arrow targets into find_package modules 2022-03-14 10:19:02 -04:00
Findpmdk.cmake cmake: rename a series of pmem libraries to pmdk 2022-06-28 01:16:33 +08:00
FindPython3.cmake cmake: update FindPython3 module 2023-08-17 10:16:45 +08:00
FindQatDrv.cmake cmake: replace BuildQatDrv.cmake with FindQatDrv.cmake 2022-02-08 14:06:07 +08:00
Findqatzip.cmake compressor: fix compilation issues about QATzip 2022-02-18 17:45:30 +08:00
FindRabbitMQ.cmake
FindRDKafka.cmake
Findrdmacm.cmake
FindRocksDB.cmake
FindSanitizers.cmake cmake: update FindSanitizers for new libasan versions 2023-03-07 13:33:57 -05:00
Findsnappy.cmake
FindSQLite3.cmake
FindStdFilesystem_test.cc cmake: stop detecting <experimental/filesystem> 2021-06-09 23:25:22 +08:00
FindStdFilesystem.cmake cmake: stop detecting <experimental/filesystem> 2021-06-09 23:25:22 +08:00
Findthrift.cmake cmake: reorder find_package_handle_standard_arg for thrift 2021-07-22 21:35:29 +05:30
Findudev.cmake
Finduring.cmake
Findutf8proc.cmake cmake: add submodule for utf8proc at v2.2.0 2022-03-14 10:19:02 -04:00
Finduuid.cmake
Findverbs.cmake
Findxfs.cmake
Findyaml-cpp.cmake
Findzbd.cmake
Findzfs.cmake
FindZstd.cmake
GetGitRevisionDescription.cmake
GetGitRevisionDescription.cmake.in
LimitJobs.cmake
patch-dpdk-conf.sh
SIMDExt.cmake arch,cmake: compile ppc.c on all powerpc machines 2021-08-29 22:40:27 +08:00