You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/app-shells/fish/files/fish-3.4.1-atomic.patch

66 lines
2.1 KiB

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 <infiwang@pm.me>
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 <infiwang@pm.me>
---
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 <atomic>
#include <cstdint>
-std::atomic<uint64_t> x (0);
+std::atomic<uint64_t> 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 <infiwang@pm.me>
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 <infiwang@pm.me>
---
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 <atomic>
#include <cstdint>
+std::atomic<uint8_t> n8 (0);
std::atomic<uint64_t> 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)