meson: add libatomic dependency

Building with GCC 12.2 and binutils 2.39 fails on riscv64 Ubuntu Kinetic
with:

FAILED: systemd-oomd
/usr/bin/ld: systemd-oomd.p/src_oom_oomd-util.c.o:
in function `oomd_cgroup_context_acquire':
build/../src/oom/oomd-util.c:415:
undefined reference to `__atomic_exchange_1'

We have to link with -latomic.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
This commit is contained in:
Heinrich Schuchardt 2022-09-12 18:41:34 +02:00 committed by Luca Boccassi
parent 82ff978d0b
commit 132c73b57a
3 changed files with 16 additions and 4 deletions

View file

@ -1013,6 +1013,16 @@ endif
#####################################################################
libatomic = []
if not cc.links('''#include <stdint.h>
int main() {
char i;
__atomic_exchange_1(&i, 1, 0);
return 1;
}''',
name : 'Atomic builtin requires -latomic')
libatomic = cc.find_library('atomic')
endif
threads = dependency('threads')
librt = cc.find_library('rt')
libm = cc.find_library('m')
@ -3177,7 +3187,7 @@ if conf.get('ENABLE_OOMD') == 1
systemd_oomd_sources,
include_directories : includes,
link_with : [libshared],
dependencies : [],
dependencies : [libatomic],
install_rpath : rootpkglibdir,
install : true,
install_dir : rootlibexecdir)

View file

@ -290,13 +290,13 @@ tests += [
[files('test-networkd-address.c'),
[libnetworkd_core,
libsystemd_network],
[],
[libatomic],
network_includes],
[files('test-networkd-conf.c'),
[libnetworkd_core,
libsystemd_network],
[],
[libatomic],
network_includes],
[files('test-networkd-util.c'),

View file

@ -28,5 +28,7 @@ endif
tests += [
[files('test-oomd-util.c',
'oomd-util.c',
'oomd-util.h')],
'oomd-util.h'),
[],
[libatomic]]
]