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