link with -latomic when needed

Some architecture such as sparc and some flavors of arm needs -latomic
to avoid the following build failure:

gthread-posix.c:(.text+0xda8): undefined reference to `__atomic_compare_exchange_4'

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
This commit is contained in:
Fabrice Fontaine 2024-05-02 14:02:17 +02:00
parent da9545baaf
commit 4e6dc4dee0
2 changed files with 10 additions and 0 deletions

View File

@ -419,6 +419,7 @@ libglib = library('glib-2.0',
include_directories : configinc,
link_with: [charset_lib, gnulib_lib],
dependencies : [
atomic_dep,
gnulib_libm_dependency,
libiconv,
libintl_deps,

View File

@ -2233,6 +2233,15 @@ libffi_dep = dependency('libffi', version : '>= 3.0.0')
libz_dep = dependency('zlib')
libatomic_test_code = '''
int main (int argc, char ** argv) {
return 0;
}'''
atomic_dep = []
if cc.links(libatomic_test_code, args : '-latomic', name : 'check for -latomic')
atomic_dep = cc.find_library('atomic')
endif
# First check in libc, fallback to libintl, and as last chance build
# proxy-libintl subproject.
# FIXME: glib-gettext.m4 has much more checks to detect broken/uncompatible