summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xconfigure15
-rw-r--r--libavutil/Makefile6
-rw-r--r--libavutil/atomic.c2
-rw-r--r--libavutil/atomic.h6
4 files changed, 21 insertions, 8 deletions
diff --git a/configure b/configure
index f5196e115c..051b216be5 100755
--- a/configure
+++ b/configure
@@ -1264,6 +1264,12 @@ THREADS_LIST='
os2threads
'
+ATOMICS_LIST='
+ atomics_gcc
+ atomics_win32
+ atomics_suncc
+'
+
ARCH_LIST='
aarch64
alpha
@@ -1374,6 +1380,7 @@ HAVE_LIST="
$HAVE_LIST_CMDLINE
$HAVE_LIST_PUB
$THREADS_LIST
+ $ATOMICS_LIST
$MATH_FUNCS
access
aligned_malloc
@@ -1384,6 +1391,7 @@ HAVE_LIST="
asm_mod_q
asm_mod_y
asm_types_h
+ atomics_native
attribute_may_alias
attribute_packed
cdio_paranoia_h
@@ -3909,6 +3917,10 @@ if enabled pthreads; then
check_func pthread_cancel
fi
+enabled sync_val_compare_and_swap && enable atomics_gcc
+enabled machine_rw_barrier && enable atomics_suncc
+enabled MemoryBarrier && enable atomics_win32
+
check_lib math.h sin -lm && LIBM="-lm"
disabled crystalhd || check_lib libcrystalhd/libcrystalhd_if.h DtsCrystalHDVersion -lcrystalhd || disable crystalhd
enabled vaapi && require vaapi va/va.h vaInitialize -lva
@@ -4248,8 +4260,9 @@ case $target_os in
;;
esac
-enabled_any $THREADS_LIST && enable threads
enable frame_thread_encoder
+enabled_any $THREADS_LIST && enable threads
+enabled_any $ATOMICS_LIST && enable atomics_native
enabled asm || { arch=c; disable $ARCH_LIST $ARCH_EXT_LIST; }
diff --git a/libavutil/Makefile b/libavutil/Makefile
index b520473d9b..92dea3b1ab 100644
--- a/libavutil/Makefile
+++ b/libavutil/Makefile
@@ -114,9 +114,9 @@ OBJS += $(COMPAT_OBJS:%=../compat/%)
SKIPHEADERS = old_pix_fmts.h
-SKIPHEADERS-$(HAVE_MACHINE_RW_BARRIER) += atomic_suncc.h
-SKIPHEADERS-$(HAVE_MEMORYBARRIER) += atomic_win32.h
-SKIPHEADERS-$(HAVE_SYNC_VAL_COMPARE_AND_SWAP) += atomic_gcc.h
+SKIPHEADERS-$(HAVE_ATOMICS_SUNCC) += atomic_suncc.h
+SKIPHEADERS-$(HAVE_ATOMICS_WIN32) += atomic_win32.h
+SKIPHEADERS-$(HAVE_ATOMICS_GCC) += atomic_gcc.h
TESTPROGS = adler32 \
aes \
diff --git a/libavutil/atomic.c b/libavutil/atomic.c
index 0780d8a679..04182f2330 100644
--- a/libavutil/atomic.c
+++ b/libavutil/atomic.c
@@ -20,7 +20,7 @@
#include "atomic.h"
-#if !HAVE_MEMORYBARRIER && !HAVE_SYNC_VAL_COMPARE_AND_SWAP && !HAVE_MACHINE_RW_BARRIER
+#if !HAVE_ATOMICS_NATIVE
#if HAVE_PTHREADS
diff --git a/libavutil/atomic.h b/libavutil/atomic.h
index 1d2a34548e..fd7d8fc03e 100644
--- a/libavutil/atomic.h
+++ b/libavutil/atomic.h
@@ -23,11 +23,11 @@
#include "config.h"
-#if HAVE_SYNC_VAL_COMPARE_AND_SWAP
+#if HAVE_ATOMICS_GCC
#include "atomic_gcc.h"
-#elif HAVE_MEMORYBARRIER
+#elif HAVE_ATOMICS_WIN32
#include "atomic_win32.h"
-#elif HAVE_MACHINE_RW_BARRIER
+#elif HAVE_ATOMICS_SUNCC
#include "atomic_suncc.h"
#else