1From 4e6dc4dee0e1c6407113597180d9616b4f275f94 Mon Sep 17 00:00:00 2001
2From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
3Date: Thu, 2 May 2024 14:02:17 +0200
4Subject: [PATCH] link with -latomic when needed
5
6Some architecture such as sparc and some flavors of arm needs -latomic
7to avoid the following build failure:
8
9gthread-posix.c:(.text+0xda8): undefined reference to `__atomic_compare_exchange_4'
10
11Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
12Upstream: https://gitlab.gnome.org/GNOME/glib/-/commit/4e6dc4dee0e1c6407113597180d9616b4f275f94
13---
14 glib/meson.build | 1 +
15 meson.build      | 9 +++++++++
16 2 files changed, 10 insertions(+)
17
18diff --git a/glib/meson.build b/glib/meson.build
19index 24cbb664d4..b2dd569e1e 100644
20--- a/glib/meson.build
21+++ b/glib/meson.build
22@@ -419,6 +419,7 @@ libglib = library('glib-2.0',
23   include_directories : configinc,
24   link_with: [charset_lib, gnulib_lib],
25   dependencies : [
26+    atomic_dep,
27     gnulib_libm_dependency,
28     libiconv,
29     libintl_deps,
30diff --git a/meson.build b/meson.build
31index 46c5aa200a..8b42940558 100644
32--- a/meson.build
33+++ b/meson.build
34@@ -2233,6 +2233,15 @@ libffi_dep = dependency('libffi', version : '>= 3.0.0')
35
36 libz_dep = dependency('zlib')
37
38+libatomic_test_code = '''
39+  int main (int argc, char ** argv) {
40+    return 0;
41+  }'''
42+atomic_dep = []
43+if cc.links(libatomic_test_code, args : '-latomic', name : 'check for -latomic')
44+  atomic_dep = cc.find_library('atomic')
45+endif
46+
47 # First check in libc, fallback to libintl, and as last chance build
48 # proxy-libintl subproject.
49 # FIXME: glib-gettext.m4 has much more checks to detect broken/uncompatible
50--
512.44.0
52
53