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
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
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
BuildZstd.cmake
CephCheck_link.c
CephCheck_link.map
CephChecks.cmake
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
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
Finddpdk.cmake
Findfmt.cmake
FindFUSE.cmake
FindGMock.cmake
Findgperftools.cmake
FindGSSApi.cmake
FindJeMalloc.cmake
Findkeyutils.cmake
Findlibcryptsetup.cmake
FindLinuxZNS.cmake
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
FindParquet.cmake
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
Findqatzip.cmake
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
FindStdFilesystem.cmake
Findthrift.cmake
Findudev.cmake
Finduring.cmake
Findutf8proc.cmake
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