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]] ]