diff -up webkit-1.1.14/JavaScriptCore/wtf/Platform.h.atomic-word webkit-1.1.14/JavaScriptCore/wtf/Platform.h --- webkit-1.1.14/JavaScriptCore/wtf/Platform.h.atomic-word 2009-09-04 14:51:45.000000000 -0400 +++ webkit-1.1.14/JavaScriptCore/wtf/Platform.h 2009-09-07 21:52:29.696143904 -0400 @@ -282,9 +282,16 @@ #endif /* PLATFORM(SPARC64) */ -#if defined(__sparc64__) +#if defined(__sparc64__)\ + || defined(__sparc__) && defined(_arch64__) #define WTF_PLATFORM_SPARC64 1 #define WTF_PLATFORM_BIG_ENDIAN 1 +#else +/* PLATFORM(SPARC) */ +#if defined(__sparc__) +#define WTF_PLATFORM_SPARC 1 +#define WTF_PLATFORM_BIG_ENDIAN 1 +#endif #endif /* PLATFORM(WINCE) && PLATFORM(QT) diff -up webkit-1.1.14/JavaScriptCore/wtf/Threading.h.atomic-word webkit-1.1.14/JavaScriptCore/wtf/Threading.h --- webkit-1.1.14/JavaScriptCore/wtf/Threading.h.atomic-word 2009-09-04 08:30:57.000000000 -0400 +++ webkit-1.1.14/JavaScriptCore/wtf/Threading.h 2009-09-07 21:59:39.149138812 -0400 @@ -231,14 +231,14 @@ inline int atomicDecrement(int volatile* #elif COMPILER(GCC) #define WTF_USE_LOCKFREE_THREADSAFESHARED 1 -inline int atomicIncrement(int volatile* addend) { return __gnu_cxx::__exchange_and_add(addend, 1) + 1; } -inline int atomicDecrement(int volatile* addend) { return __gnu_cxx::__exchange_and_add(addend, -1) - 1; } +inline int atomicIncrement(_Atomic_word volatile* addend) { return __gnu_cxx::__exchange_and_add(addend, 1) + 1; } +inline int atomicDecrement(_Atomic_word volatile* addend) { return __gnu_cxx::__exchange_and_add(addend, -1) - 1; } #endif class ThreadSafeSharedBase : public Noncopyable { public: - ThreadSafeSharedBase(int initialRefCount = 1) + ThreadSafeSharedBase(_Atomic_word initialRefCount = 1) : m_refCount(initialRefCount) { } @@ -258,12 +258,12 @@ public: return refCount() == 1; } - int refCount() const + _Atomic_word refCount() const { #if !USE(LOCKFREE_THREADSAFESHARED) MutexLocker locker(m_mutex); #endif - return static_cast(m_refCount); + return static_cast<_Atomic_word const volatile &>(m_refCount); } protected: @@ -290,7 +290,7 @@ private: template friend class CrossThreadRefCounted; - int m_refCount; + _Atomic_word m_refCount; #if !USE(LOCKFREE_THREADSAFESHARED) mutable Mutex m_mutex; #endif @@ -298,7 +298,7 @@ private: template class ThreadSafeShared : public ThreadSafeSharedBase { public: - ThreadSafeShared(int initialRefCount = 1) + ThreadSafeShared(_Atomic_word initialRefCount = 1) : ThreadSafeSharedBase(initialRefCount) { }