$OpenBSD: patch-Source_WTF_wtf_Atomics_h,v 1.3 2013/10/20 09:07:57 landry Exp $ https://bugs.webkit.org/show_bug.cgi?id=86835 Fix build failure on sparc64 since 1.8.1, provide atomic{In,De}crement implems based on __sync_fetch_and_add builtin --- Source/WTF/wtf/Atomics.h.orig Sat Aug 3 18:10:38 2013 +++ Source/WTF/wtf/Atomics.h Sun Oct 20 11:06:14 2013 @@ -112,6 +112,15 @@ inline int atomicDecrement(int volatile* addend) { ret inline int64_t atomicIncrement(int64_t volatile* addend) { return __sync_add_and_fetch(addend, 1); } inline int64_t atomicDecrement(int64_t volatile* addend) { return __sync_sub_and_fetch(addend, 1); } +#elif COMPILER(GCC) && CPU(SPARC64) +#define WTF_USE_LOCKFREE_THREADSAFEREFCOUNTED 1 + +inline int atomicIncrement(int volatile* addend) { return __sync_fetch_and_add(addend, 1) + 1; } +inline int atomicDecrement(int volatile* addend) { return __sync_fetch_and_add(addend, -1) - 1; } + +inline int64_t atomicIncrement(int64_t volatile* addend) { return __sync_fetch_and_add(addend, 1) + 1; } +inline int64_t atomicDecrement(int64_t volatile* addend) { return __sync_fetch_and_add(addend, -1) - 1; } + #endif #if OS(WINDOWS)