diff options
Diffstat (limited to 'debian/patches/fpm_gcc_atomics.patch')
-rw-r--r-- | debian/patches/fpm_gcc_atomics.patch | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/debian/patches/fpm_gcc_atomics.patch b/debian/patches/fpm_gcc_atomics.patch new file mode 100644 index 000000000..5315e3d33 --- /dev/null +++ b/debian/patches/fpm_gcc_atomics.patch @@ -0,0 +1,31 @@ +Description: Use GCC's atomic builtins in the FPM SAPI to allow it to + build everywhere. +Origin: vendor +Forwarded: http://bugs.php.net/52407 +Last-Update: 2010-07-28 + +Index: php-5.3.3/sapi/fpm/fpm/fpm_atomic.h +=================================================================== +--- php-5.3.3.orig/sapi/fpm/fpm/fpm_atomic.h ++++ php-5.3.3/sapi/fpm/fpm/fpm_atomic.h +@@ -12,7 +12,19 @@ + #endif + #include <sched.h> + +-#if ( __i386__ || __i386 ) ++#if (__GNUC__) && (__GNUC__ >= 4 && __GNUC_MINOR__ >= 1) ++ ++/** ++ * all the cases below (as provided by upstream) define: ++ * word as atomic_int_t, and ++ * unsigned word as atomic_uint_t ++ * and only use volatile atomic_uint_t as atomic_t ++ */ ++ ++typedef volatile unsigned long atomic_t; ++#define atomic_cmp_set(a,b,c) __sync_bool_compare_and_swap(a,b,c) ++ ++#elif ( __i386__ || __i386 ) + + typedef int32_t atomic_int_t; + typedef uint32_t atomic_uint_t; |