https://bugs.gentoo.org/836951 Taken from https://github.com/fish-shell/fish-shell/pull/8851 From a3eb41ca882cc390b656515dd668a6816f745121 Mon Sep 17 00:00:00 2001 From: Raymond Wong Date: Mon, 4 Apr 2022 01:14:26 +0800 Subject: [PATCH 1/2] cmake: alter check for 64-bit atomic operation Signed-off-by: Raymond Wong --- cmake/ConfigureChecks.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmake/ConfigureChecks.cmake b/cmake/ConfigureChecks.cmake index bc190de054f..924aea1015a 100644 --- a/cmake/ConfigureChecks.cmake +++ b/cmake/ConfigureChecks.cmake @@ -255,10 +255,10 @@ int main () { check_cxx_source_compiles(" #include #include -std::atomic x (0); +std::atomic n64 (0); int main() { -uint64_t i = x.load(std::memory_order_relaxed); -return std::atomic_is_lock_free(&x); +uint64_t i = n64.load(std::memory_order_relaxed); +return std::atomic_is_lock_free(&n64); }" LIBATOMIC_NOT_NEEDED) IF (NOT LIBATOMIC_NOT_NEEDED) From 2fe9bfe0a6c1a821dabbf52af35c8eb2cd6e029b Mon Sep 17 00:00:00 2001 From: Raymond Wong Date: Sun, 3 Apr 2022 14:01:15 +0800 Subject: [PATCH 2/2] cmake: check for 8-bit atomic operation Fix building on RISC-V. Closes #8850. Signed-off-by: Raymond Wong --- cmake/ConfigureChecks.cmake | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cmake/ConfigureChecks.cmake b/cmake/ConfigureChecks.cmake index 924aea1015a..6562d324f45 100644 --- a/cmake/ConfigureChecks.cmake +++ b/cmake/ConfigureChecks.cmake @@ -255,10 +255,13 @@ int main () { check_cxx_source_compiles(" #include #include +std::atomic n8 (0); std::atomic n64 (0); int main() { -uint64_t i = n64.load(std::memory_order_relaxed); -return std::atomic_is_lock_free(&n64); +uint8_t i = n8.load(std::memory_order_relaxed); +uint64_t j = n64.load(std::memory_order_relaxed); +return std::atomic_is_lock_free(&n8) + & std::atomic_is_lock_free(&n64); }" LIBATOMIC_NOT_NEEDED) IF (NOT LIBATOMIC_NOT_NEEDED)