summaryrefslogtreecommitdiffstats
path: root/debian/patches/cmake-test-for-16-bytes-atomic-support-on-mips-also.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/cmake-test-for-16-bytes-atomic-support-on-mips-also.patch')
-rw-r--r--debian/patches/cmake-test-for-16-bytes-atomic-support-on-mips-also.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/debian/patches/cmake-test-for-16-bytes-atomic-support-on-mips-also.patch b/debian/patches/cmake-test-for-16-bytes-atomic-support-on-mips-also.patch
new file mode 100644
index 000000000..c9712311a
--- /dev/null
+++ b/debian/patches/cmake-test-for-16-bytes-atomic-support-on-mips-also.patch
@@ -0,0 +1,29 @@
+Description: cmake: test for 16-byte atomic support on mips also
+ 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.
+Author: Kefu Chai <tchaikov@gmail.com>
+Date: Wed, 24 Nov 2021 00:40:54 +0800
+Origin: upstream, https://github.com/ceph/ceph/commit/709a77f22010f03aee4a4c0ab930588944cb4a58
+Last-Update: 2021-11-24
+
+diff --git a/cmake/modules/CheckCxxAtomic.cmake b/cmake/modules/CheckCxxAtomic.cmake
+index f2d89cf3e0beb..da2be5206d634 100644
+--- a/cmake/modules/CheckCxxAtomic.cmake
++++ b/cmake/modules/CheckCxxAtomic.cmake
+@@ -11,7 +11,7 @@ function(check_cxx_atomics var)
+ #include <atomic>
+ #include <cstdint>
+
+-#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