Switch from __sync_val_compare_and_swap() to
__sync_bool_compare_and_swap() since that's we need nowadays anyhow
and since that's also provided by ecc v7.0.
(Logical change 1.138)
diff --git a/include/internal.h b/include/internal.h
index ac5b0bf..488d7d5 100644
--- a/include/internal.h
+++ b/include/internal.h
@@ -132,19 +132,9 @@
#else
# ifdef HAVE_IA64INTRIN_H
# include <ia64intrin.h>
- /*
- * ecc v7.0 is broken: it's missing __sync_val_compare_and_swap()
- * even though the ia64 ABI requires it. Work around it:
- */
-# ifndef __sync_val_compare_and_swap
-# define __sync_val_compare_and_swap(x,y,z) \
- _InterlockedCompareExchange64_rel(x,y,z)
-# endif
-
# define cmpxchg_ptr(_ptr,_o,_n) \
- ((void *) __sync_val_compare_and_swap((volatile long *) (_ptr), \
- (long) (_o), (long) (_n)) \
- == (_o))
+ (__sync_bool_compare_and_swap((volatile long *) (_ptr), \
+ (long) (_o), (long) (_n)))
# define fetch_and_add1(_ptr) __sync_fetch_and_add(_ptr, 1)
# define HAVE_CMPXCHG
# define HAVE_FETCH_AND_ADD1