ceph-mirror/cmake/modules
Ronen Friedman e552441619 build: add Mold linker compatibility
Mold handles several linker features differently from ld.bfd:

- --exclude-libs,ALL hides .symver-aliased symbols (e.g. rados_*)
  even when the version script lists them as global. Detect Mold
  (via USING_MOLD_LINKER) and disable --exclude-libs; version
  scripts already control symbol visibility.

- Duplicate symbols across static archives are treated as errors.
  Merge crimson-alien-common into crimson-alienstore as a single
  archive. For crimson-osd, link crimson-alienstore before
  crimson-common with --allow-multiple-definition so the alien
  thread's non-crimson definitions win (Mold picks first definition).

- Python/Cython extension builds (via Distutils.cmake) invoked the
  system default linker. Pass -fuse-ld= via MOLD_FUSE_LD_FLAG so
  extensions link with the configured linker.

- Add rados_* and _rados_* to librados.map global section for Mold
  compatibility with .symver aliases.

Co-authored-by: Mark Kogan <mkogan@redhat.com>
Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
2026-06-28 14:53:54 +00:00
..
code_tests cmake/.../FindSanitizers: add check for Sanitizers_FIBER_SUPPPORT 2024-02-20 16:20:23 -08:00
AddCephTest.cmake cmake: factor the ASan/LSan test options into cache variables 2026-06-23 23:02:05 +08:00
BuildArrow.cmake rgw: bump Apache Arrow submodule from 17.0.0 to 19.0.1 2026-05-24 18:57:04 +08:00
BuildBoost.cmake cmake/boost: build libboost_context with BOOST_USE_ASAN 2026-06-24 06:44:18 +08: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: build fio from upstream 3.42 2026-06-26 15:17:17 +08:00
BuildISAL.cmake cmake/BuildISAL: build and install library targets only 2026-05-17 20:13:00 +08:00
BuildISALCrypto.cmake cmake/crypto: use ExternalProject to build isal crypto library 2024-09-05 13:19:21 -04:00
BuildOpentelemetry.cmake cmake: add cmake 4 support 2025-10-20 17:02:57 -04:00
Buildpmdk.cmake cmake: disable LTO when building pmdk 2022-08-04 17:56:48 +08:00
BuildQAT.cmake cmake: WITH_QATLIB/ZIP disabled on aarch64 2024-02-07 11:13:21 -05:00
BuildQATzip.cmake cmake/modules/BuildQATzip: Disable errors 2025-02-20 14:18:12 +00:00
BuildRocksDB.cmake cmake: fix liburing path passed to rocksdb 2026-01-05 15:09:00 +09:00
BuildSPDK.cmake cmake/modules/BuildSPDK.cmake: link whole-archive 2022-01-20 19:39:27 +08:00
Builduadk.cmake uadk: Build with ceph fork (for FORTIFY_SOURCE fix) 2025-09-04 13:27:36 -04:00
BuildUBBD.cmake tools/rbd: add support of new device type for ubbd 2023-05-18 12:35:39 +00:00
Builduring.cmake cmake/modules/Builduring.cmake: add URING::uring as alias 2026-02-12 10:26:16 +00:00
BuildUtf8proc.cmake cmake: add submodule for utf8proc at v2.2.0 2022-03-14 10:19:02 -04:00
BuildZstd.cmake cmake: allow use libzstd in system 2021-03-31 12:53:39 +08:00
CephCheck_link.c cmake: detect linker support 2019-10-08 21:53:03 +08:00
CephCheck_link.map cmake: detect linker support 2019-10-08 21:53:03 +08:00
CephChecks.cmake build: add Mold linker compatibility 2026-06-28 14:53:54 +00:00
CheckCxxAtomic.cmake build: fix atomic linking with LTO on s390x 2022-07-18 15:19:02 -04:00
CheckNasm.cmake common: enable AVX512+VPCLMULQDQ for crc32c performance on x86 2026-05-21 17:30:13 +08:00
CPM.cmake Add support for Catch2 2025-05-02 10:54:58 -07:00
CTags.cmake Merge pull request #54963 from DimStar77/cmake328 2024-02-17 23:18:23 +08:00
Distutils.cmake build: add Mold linker compatibility 2026-06-28 14:53:54 +00: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
Findc-ares.cmake cmake: drop c-ares::c-ares alias 2025-06-13 16:23:49 +08:00
Findcap.cmake cmake: find_package(cap) before linking against it 2024-02-11 16:57:38 +08:00
FindCUnit.cmake
FindCython.cmake cmake: drop WITH_PYTHON2 option 2019-12-19 10:58:58 +08:00
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
FindFUSE.cmake cmake: to get the header and library from specified path 2020-05-24 21:40:18 -04:00
FindGMock.cmake
Findgperftools.cmake
FindGSSApi.cmake
FindJeMalloc.cmake
FindJerasure.cmake cmake: add WITH_SYSTEM_JERASURE option for system jerasure and gf-complete 2026-04-08 18:42:19 +08:00
Findkeyutils.cmake
Findlibcryptsetup.cmake cmake: fix unknown pkg_search_module 2020-12-02 06:18:52 -05:00
Findlibnbd.cmake librbd/migration: add nbd stream 2024-09-06 14:14:12 +02:00
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 cmake: use find_program(REQUIRED) to fail early on missing programs 2025-06-17 17:30:10 +08:00
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 cmake: rewrite Findgenl to support components argument 2019-06-19 21:21:00 +08:00
FindNUMA.cmake cmake: use NUMA for package name in FindNUMA.cmake 2021-02-14 23:11:33 +08:00
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
FindQAT.cmake cmake: add WITH_QATLIB to build against qatlib 2024-02-07 10:37:47 -05:00
FindQatDrv.cmake cmake: add WITH_QATLIB to build against qatlib 2024-02-07 10:37:47 -05:00
FindQATzip.cmake cmake: build qatzip from source when WITH_SYSTEM_QATZIP=OFF 2024-02-07 11:12:45 -05:00
FindRabbitMQ.cmake
FindRDKafka.cmake cmake: check version of librdkafka 2019-12-15 22:16:08 +08:00
Findrdmacm.cmake
FindRocksDB.cmake
FindSanitizers.cmake cmake: explicitly support and enable vptr sanitizer 2026-03-02 11:24:44 +00:00
Findsnappy.cmake
Findspdk.cmake cmake: add WITH_SYSTEM_SPDK to link a system-installed SPDK 2026-05-31 08:33:11 +08:00
FindSQLite3.cmake libcephsqlite: rework architecture and backend 2021-03-19 08:52:55 -07:00
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: Findthrift.cmake parses version string 2025-10-15 17:06:43 -04:00
Findudev.cmake
Finduring.cmake cmake: fix Finduring.cmake 2023-10-20 09:18:30 -04:00
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 jaeger, build/op: add jaeger and it's dependencies as submodules 2020-12-11 07:55:46 +00:00
Findzbd.cmake os/bluestore: Switch from libzbc library to libzbd library 2020-09-06 12:35:05 -04:00
FindZstd.cmake cmake: allow use libzstd in system 2021-03-31 12:53:39 +08:00
GetGitRevisionDescription.cmake cmake: check $top_srcdir/.git directly 2020-04-08 18:03:37 +08:00
GetGitRevisionDescription.cmake.in cmake/modules/GetGitRevisionDescription: update to work with git-worktree 2019-10-07 14:26:07 -05:00
LimitJobs.cmake cmake: Intelligently set job limits for sccache 2024-05-06 14:03:14 -06:00
patch-dpdk-conf.sh cmake: Add dpdk numa support 2019-11-28 20:15:39 +08:00
PythonPackage.cmake cmake/modules: add PythonPackage.cmake 2026-05-06 09:32:25 -04:00
SIMDExt.cmake src/common: optimize crc32c using zbc extension for riscv64 2026-04-07 17:25:48 +08:00