mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
atomic: Check for __sync_val_compare_and_swap instead of __sync_synchronize
Not all gcc configurations have an implementation of all the atomic operations, and some gcc configurations have some atomic builtins implemented but not all. Thus check for the most essential function, whose presence should indicate that all others are present as well, since it can be used to implement all the other ones. Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
parent
f1af3d19a7
commit
e460aa3282
4
configure
vendored
4
configure
vendored
@ -1324,7 +1324,7 @@ HAVE_LIST="
|
||||
struct_v4l2_frmivalenum_discrete
|
||||
symver_asm_label
|
||||
symver_gnu_asm
|
||||
sync_synchronize
|
||||
sync_val_compare_and_swap
|
||||
sysconf
|
||||
sysctl
|
||||
sys_mman_h
|
||||
@ -3456,7 +3456,7 @@ check_func strerror_r
|
||||
check_func strptime
|
||||
check_func strtok_r
|
||||
check_func sched_getaffinity
|
||||
check_builtin sync_synchronize "" "__sync_synchronize()"
|
||||
check_builtin sync_val_compare_and_swap "" "int *ptr; int oldval, newval; __sync_val_compare_and_swap(ptr, oldval, newval)"
|
||||
check_builtin machine_rw_barrier mbarrier.h "__machine_rw_barrier()"
|
||||
check_builtin MemoryBarrier windows.h "MemoryBarrier()"
|
||||
check_func sysconf
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
#include "atomic.h"
|
||||
|
||||
#if !HAVE_MEMORYBARRIER && !HAVE_SYNC_SYNCHRONIZE && !HAVE_MACHINE_RW_BARRIER
|
||||
#if !HAVE_MEMORYBARRIER && !HAVE_SYNC_VAL_COMPARE_AND_SWAP && !HAVE_MACHINE_RW_BARRIER
|
||||
|
||||
#if HAVE_PTHREADS
|
||||
|
||||
@ -102,7 +102,7 @@ void *avpriv_atomic_ptr_cas(void * volatile *ptr, void *oldval, void *newval)
|
||||
|
||||
#endif /* HAVE_PTHREADS */
|
||||
|
||||
#endif /* !HAVE_MEMORYBARRIER && !HAVE_SYNC_SYNCHRONIZE && !HAVE_MACHINE_RW_BARRIER */
|
||||
#endif /* !HAVE_MEMORYBARRIER && !HAVE_SYNC_VAL_COMPARE_AND_SWAP && !HAVE_MACHINE_RW_BARRIER */
|
||||
|
||||
#ifdef TEST
|
||||
#include <assert.h>
|
||||
|
@ -25,7 +25,7 @@
|
||||
|
||||
#if HAVE_MEMORYBARRIER
|
||||
#include "atomic_win32.h"
|
||||
#elif HAVE_SYNC_SYNCHRONIZE
|
||||
#elif HAVE_SYNC_VAL_COMPARE_AND_SWAP
|
||||
#include "atomic_gcc.h"
|
||||
#elif HAVE_MACHINE_RW_BARRIER
|
||||
#include "atomic_suncc.h"
|
||||
|
Loading…
Reference in New Issue
Block a user