Index: boost_1_27_0.patch =================================================================== RCS file: /cvs/external/boost/boost_1_27_0.patch,v retrieving revision 1.4.4.1 diff -u -r1.4.4.1 boost_1_27_0.patch --- boost/boost_1_27_0.patch 28 Jul 2003 16:55:40 -0000 1.4.4.1 +++ boost/boost_1_27_0.patch 2 Aug 2003 12:48:16 -0000 @@ -157,7 +157,7 @@ --- misc/build/boost_1_27_0/boost/detail/linux_atomic.h Wed May 7 11:32:48 2003 *************** *** 0 **** ---- 1,181 ---- +--- 1,119 ---- + #ifndef _LINUX_ATOMIC_H_ + #define _LINUX_ATOMIC_H_ + @@ -268,75 +268,24 @@ + __CS_LOOP(old_val, new_val, v, 1, "sr"); + return new_val; +} -+#elif defined ( SPARC ) + -+ -+#define atomic_set(v, i) (((v)->aVal) = ((i) << 8)) -+ -+static __inline__ int __atomic_add(int i, atomic_t *v) -+{ -+ register volatile int *ptr asm("g1"); -+ register int increment asm("g2"); -+ -+ ptr = &v->aVal; -+ increment = i; -+ -+ __asm__ __volatile__( -+ "mov %%o7, %%g4\n\t" -+ "call ___atomic_add\n\t" -+ " add %%o7, 8, %%o7\n" -+ : "=&r" (increment) -+ : "0" (increment), "r" (ptr) -+ : "g3", "g4", "g7", "memory", "cc"); -+ -+ return increment; -+} -+ -+static __inline__ int __atomic_sub(int i, atomic_t *v) -+{ -+ register volatile int *ptr asm("g1"); -+ register int increment asm("g2"); -+ -+ ptr = &v->aVal; -+ increment = i; -+ -+ __asm__ __volatile__( -+ "mov %%o7, %%g4\n\t" -+ "call ___atomic_sub\n\t" -+ " add %%o7, 8, %%o7\n" -+ : "=&r" (increment) -+ : "0" (increment), "r" (ptr) -+ : "g3", "g4", "g7", "memory", "cc"); -+ -+ return increment; -+} -+ -+#define atomic_add(i, v) ((void)__atomic_add((i), (v))) -+#define atomic_sub(i, v) ((void)__atomic_sub((i), (v))) -+ -+#define atomic_dec_return(v) __atomic_sub(1, (v)) -+#define atomic_inc_return(v) __atomic_add(1, (v)) -+ -+#define atomic_sub_and_test(i, v) (__atomic_sub((i), (v)) == 0) -+#define atomic_dec_and_test(v) (__atomic_sub(1, (v)) == 0) -+ -+#define atomic_inc(v) ((void)__atomic_add(1, (v))) -+#define atomic_dec(v) ((void)__atomic_sub(1, (v))) -+ -+#define atomic_add_negative(i, v) (__atomic_add((i), (v)) < 0) -+ -+/* Atomic operations are already serializing */ -+#define smp_mb__before_atomic_dec() barrier() -+#define smp_mb__after_atomic_dec() barrier() -+#define smp_mb__before_atomic_inc() barrier() -+#define smp_mb__after_atomic_inc() barrier() -+ +#endif + #else -+ ++ + #error - need to define your processors atomic inc and dec here -+ ++ + #endif + -+ ++ + #endif +--- misc/build/boost_1_27_0/boost/detail/atomic_count.hpp.orig 2002-02-08 02:26:13.000000000 +1100 ++++ misc/build/boost_1_27_0/boost/detail/atomic_count.hpp 2003-08-02 22:38:16.000000000 +1000 +@@ -93,7 +93,7 @@ + + #include + +-#elif defined(linux) || defined(__linux) || defined(__linux__) ++#elif (defined(linux) || defined(__linux) || defined(__linux__)) && !(defined(SPARC) || defined(sparc) || defined(sparc64)) + + #include +