From 132c73b57ad1d363e97e1f4720f0e920826f34e1 Mon Sep 17 00:00:00 2001 From: Heinrich Schuchardt Date: Mon, 12 Sep 2022 18:41:34 +0200 Subject: [PATCH] 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 --- meson.build | 12 +++++++++++- src/network/meson.build | 4 ++-- src/oom/meson.build | 4 +++- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/meson.build b/meson.build index f11582131b..41a1108716 100644 --- a/meson.build +++ b/meson.build @@ -1013,6 +1013,16 @@ endif ##################################################################### +libatomic = [] +if not cc.links('''#include + 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) diff --git a/src/network/meson.build b/src/network/meson.build index e4def6bc51..b09c18dbbd 100644 --- a/src/network/meson.build +++ b/src/network/meson.build @@ -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'), diff --git a/src/oom/meson.build b/src/oom/meson.build index 6926ae0d18..12035183de 100644 --- a/src/oom/meson.build +++ b/src/oom/meson.build @@ -28,5 +28,7 @@ endif tests += [ [files('test-oomd-util.c', 'oomd-util.c', - 'oomd-util.h')], + 'oomd-util.h'), + [], + [libatomic]] ] -- 2.25.1