From 9d547a7617fbcbc29f75ed85ff774807ddca5ce0 Mon Sep 17 00:00:00 2001 From: Andrew Galante Date: Mon, 11 Jun 2018 15:03:36 -0700 Subject: [PATCH] meson: Test for __atomic_add_fetch in atomic checks Some platforms have 64-bit __atomic_load_n but not 64-bit __atomic_add_fetch, so test for both of them. Bug: https://bugs.gentoo.org/655616 Reviewed-by: Matt Turner Reviewed-by: Eric Engestrom Reviewed-by: Dylan Baker --- meson.build | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build index 375751b..22e7a6d 100644 --- a/meson.build +++ b/meson.build @@ -835,7 +835,9 @@ if cc.compiles('''#include struct { uint64_t *v; } x; - return (int)__atomic_load_n(x.v, __ATOMIC_ACQUIRE); + return (int)__atomic_load_n(x.v, __ATOMIC_ACQUIRE) & + (int)__atomic_add_fetch(x.v, (uint64_t)1, __ATOMIC_ACQ_REL); + }''', name : 'GCC atomic builtins') pre_args += '-DUSE_GCC_ATOMIC_BUILTINS' @@ -851,7 +853,8 @@ if cc.compiles('''#include struct { uint64_t *v; } x; - return (int)__atomic_load_n(x.v, __ATOMIC_ACQUIRE); + return (int)__atomic_load_n(x.v, __ATOMIC_ACQUIRE) & + (int)__atomic_add_fetch(x.v, (uint64_t)1, __ATOMIC_ACQ_REL); }''', name : 'GCC atomic builtins required -latomic') dep_atomic = cc.find_library('atomic') -- 2.7.4