summaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2013-03-28 10:48:39 +0100
committerAnton Khirnov <anton@khirnov.net>2013-04-03 09:23:04 +0200
commit817dff578f13ce97576c609ab141508b9dc782e9 (patch)
tree5979da0fc3c22b8611285a79f914d217c223e879 /configure
parentf9f6402e9c9ce3642df981b48507df3a2d956f65 (diff)
configure: Check for the atomic.h functions used in the suncc atomics header
The "suncc" atomics implementation uses a suncc specific memory barrier, but also relies on a few atomic functions from atomic.h, that are not suncc specific but specific to solaris. This made the current implementation fail on suncc on linux.
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure4
1 files changed, 3 insertions, 1 deletions
diff --git a/configure b/configure
index 7f77b007e6..46635ce21f 100755
--- a/configure
+++ b/configure
@@ -1241,6 +1241,7 @@ HAVE_LIST="
arpa_inet_h
asm_mod_q
asm_mod_y
+ atomic_cas_ptr
atomics_native
attribute_may_alias
attribute_packed
@@ -3467,6 +3468,7 @@ check_func strtok_r
check_func sched_getaffinity
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 atomic_cas_ptr atomic.h "void **ptr; void *oldval, *newval; atomic_cas_ptr(ptr, oldval, newval)"
check_builtin MemoryBarrier windows.h "MemoryBarrier()"
check_func sysconf
check_func sysctl
@@ -3537,7 +3539,7 @@ for thread in $THREADS_LIST; do
done
enabled sync_val_compare_and_swap && enable atomics_gcc
-enabled machine_rw_barrier && enable atomics_suncc
+enabled machine_rw_barrier && enabled atomic_cas_ptr && enable atomics_suncc
enabled MemoryBarrier && enable atomics_win32
check_lib math.h sin -lm && LIBM="-lm"