From c75a0d4c575edcc7288ec9423968921a6ad2ef58 Mon Sep 17 00:00:00 2001 From: fanquake Date: Fri, 5 Jan 2024 10:51:05 +0000 Subject: [PATCH] Merge bitcoin/bitcoin#29177: build: Fix check whether `-latomic` needed f8ca1357c8205ceff732dcfb0d2bad79b40b611b build: Fix check whether `-latomic` needed (Hennadii Stepanov) Pull request description: Clang >=15 still might need linking against `libatomic`. We use `std::atomic::compare_exchange_strong` in `net_processing.cpp`. Addresses the https://github.com/bitcoin/bitcoin/pull/29165#discussion_r1440293694. ACKs for top commit: maflcko: lgtm ACK f8ca1357c8205ceff732dcfb0d2bad79b40b611b fanquake: ACK f8ca1357c8205ceff732dcfb0d2bad79b40b611b Tree-SHA512: ba8b6a88fd3471a206d068e8a000a053c99cb46d26bd04624418ddb066b3b9664a569ec8a1569af67c96b3e27f13dccbd5e24f985290ac072b6d74c92524e35d --- build-aux/m4/l_atomic.m4 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/build-aux/m4/l_atomic.m4 b/build-aux/m4/l_atomic.m4 index c04a271a56..9a9a31dd8a 100644 --- a/build-aux/m4/l_atomic.m4 +++ b/build-aux/m4/l_atomic.m4 @@ -4,7 +4,7 @@ dnl permitted in any medium without royalty provided the copyright notice dnl and this notice are preserved. This file is offered as-is, without any dnl warranty. -# Clang prior to version 15, when building for 32-bit, +# Clang, when building for 32-bit, # and linking against libstdc++, requires linking with # -latomic if using the C++ atomic library. # Can be tested with: clang++ test.cpp -m32 @@ -24,6 +24,8 @@ m4_define([_CHECK_ATOMIC_testbody], [[ std::atomic t{0s}; t.store(2s); + auto t1 = t.load(); + t.compare_exchange_strong(t1, 3s); std::atomic a{};