From: Heinrich Schuchardt Date: Mon, 12 Sep 2022 16:41:34 +0000 (+0200) Subject: meson: add libatomic dependency X-Git-Tag: v252-rc1~188 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=132c73b57ad1d363e97e1f4720f0e920826f34e1;p=thirdparty%2Fsystemd.git 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 --- diff --git a/meson.build b/meson.build index f11582131bc..41a11087167 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 e4def6bc51e..b09c18dbbd1 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 6926ae0d18f..12035183deb 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]] ]