]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
meson: Replicate Autotools check for __sync_sub_and_fetch
authorSimon McVittie <smcv@collabora.com>
Tue, 28 Jun 2022 11:30:55 +0000 (12:30 +0100)
committerSimon McVittie <smcv@collabora.com>
Wed, 13 Jul 2022 19:36:13 +0000 (20:36 +0100)
The built-in atomic intrinsics are not exactly functions, so it's
incorrect to use has_function to check for them.

Signed-off-by: Simon McVittie <smcv@collabora.com>
meson.build

index 2ae2050ce82fb7e1dfb8ffe0276211cf2eb7a507..16dcb67e2fff1b9096157a1729b40ce7cfd9e635 100644 (file)
@@ -615,8 +615,19 @@ endif
 config.set('DBUS_VA_COPY', va_copy)
 
 
-#### Atomic integers
-config.set10('DBUS_USE_SYNC', cc.has_function('__sync_sub_and_fetch') ? 1 : false)
+# Can't use cc.has_function here because atomic operations are not
+# exactly functions
+config.set10(
+    'DBUS_USE_SYNC',
+    cc.links('''
+    int main(void)
+    {
+      int a = 4;
+      int b = __sync_sub_and_fetch (&a, 4);
+      return b;
+    }
+    ''')
+)
 
 config.set10('HAVE_DECL_MSG_NOSIGNAL',
     cc.has_header_symbol('sys/socket.h', 'MSG_NOSIGNAL')