From: Kefu Chai Date: Tue, 23 Nov 2021 16:40:54 +0000 (+0800) Subject: cmake: test for 16-byte atomic support on mips also X-Git-Tag: archive/raspbian/16.2.7+ds-5+rpi1^2~3 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=d72efe10f4878a5bcf2dfa78c7916743ad081203;p=ceph.git cmake: test for 16-byte atomic support on mips also Origin: upstream, https://github.com/ceph/ceph/commit/709a77f22010f03aee4a4c0ab930588944cb4a58 Last-Update: 2021-11-24 it's reported that a mips64el build host is able to pass the test of CheckCxxAtomic without linking against libatomic, while librbd.so fails to link due to failures like /usr/bin/ld: ../../../lib/librbd.so.1.16.0: undefined reference to `__atomic_store_16' /usr/bin/ld: ../../../lib/librbd.so.1.16.0: undefined reference to `__atomic_load_16' /usr/bin/ld: ../../../lib/librbd.so.1.16.0: undefined reference to `__atomic_compare_exchange_16' so we have to check the existence of __atomic_load_16 instruction on mips architecture. Gbp-Pq: Name cmake-test-for-16-bytes-atomic-support-on-mips-also.patch --- diff --git a/cmake/modules/CheckCxxAtomic.cmake b/cmake/modules/CheckCxxAtomic.cmake index f2d89cf3e..833977b75 100644 --- a/cmake/modules/CheckCxxAtomic.cmake +++ b/cmake/modules/CheckCxxAtomic.cmake @@ -11,7 +11,7 @@ function(check_cxx_atomics var) #include #include -#if __s390x__ +#if defined(__s390x__) || (defined(__mips__) && _MIPS_SIM ==_ABI64 ) // Boost needs 16-byte atomics for tagged pointers. // These are implemented via inline instructions on the platform // if 16-byte alignment can be proven, and are delegated to libatomic