mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-12-08 23:03:46 +00:00
52 lines
1.8 KiB
Diff
52 lines
1.8 KiB
Diff
From 0d037e8f639471f388581926877556fd6d882d28 Mon Sep 17 00:00:00 2001
|
|
From: Kevin Mihelich <kevin@archlinuxarm.org>
|
|
Date: Wed, 11 Mar 2020 07:28:28 -0600
|
|
Subject: [PATCH] atomic
|
|
|
|
---
|
|
pipewire-jack/src/meson.build | 23 ++++++++++++++++++++++-
|
|
1 file changed, 22 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/pipewire-jack/src/meson.build b/pipewire-jack/src/meson.build
|
|
index e52349ed..c42a792d 100644
|
|
--- a/pipewire-jack/src/meson.build
|
|
+++ b/pipewire-jack/src/meson.build
|
|
@@ -31,13 +31,34 @@ configure_file(input : 'pw-jack.in',
|
|
install: true,
|
|
install_dir : pipewire_bindir)
|
|
|
|
+# Check for GCC style atomics
|
|
+dep_atomic = declare_dependency()
|
|
+
|
|
+if cc.compiles('int main() { int n; return __atomic_load_n(&n, __ATOMIC_ACQUIRE); }',
|
|
+ name : 'GCC atomic builtins')
|
|
+ # Not all atomic calls can be turned into lock-free instructions, in which
|
|
+ # GCC will make calls into the libatomic library. Check whether we need to
|
|
+ # link with -latomic.
|
|
+ #
|
|
+ # This can happen for 64-bit atomic operations on 32-bit architectures such
|
|
+ # as ARM.
|
|
+ if not cc.links('''#include <stdint.h>
|
|
+ int main() {
|
|
+ uint64_t n;
|
|
+ return (int)__atomic_load_n(&n, __ATOMIC_ACQUIRE);
|
|
+ }''',
|
|
+ name : 'GCC atomic builtins required -latomic')
|
|
+ dep_atomic = cc.find_library('atomic')
|
|
+ endif
|
|
+endif
|
|
+
|
|
pipewire_jack = shared_library('jack',
|
|
pipewire_jack_sources,
|
|
soversion : soversion,
|
|
version : libversion,
|
|
c_args : pipewire_jack_c_args,
|
|
include_directories : [configinc],
|
|
- dependencies : [pipewire_dep, jack_dep, mathlib],
|
|
+ dependencies : [pipewire_dep, jack_dep, mathlib, dep_atomic],
|
|
install : true,
|
|
install_dir : libjack_path,
|
|
)
|
|
--
|
|
2.26.2
|
|
|