php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Return to Bug #52407
Patch fpm-gcc-atomics.patch revision 2010-07-28 21:31 UTC by geissert@php.net
Patch fpm_atomic_h_fix.patch revision 2010-07-24 12:36 UTC by fat@php.net
revision 2010-07-22 15:20 UTC by eugenesan at gmail dot com

Patch fpm-gcc-atomics.patch for Compile Failure Bug #52407

Patch version 2010-07-28 21:31 UTC

Return to Bug #52407 | Download this patch
Patch Revisions:

Developer: geissert@php.net

diff --git a/sapi/fpm/fpm/fpm_atomic.h b/sapi/fpm/fpm/fpm_atomic.h
index 8c287dd..e2e64d8 100644
--- a/sapi/fpm/fpm/fpm_atomic.h
+++ b/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;
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Apr 19 21:01:30 2024 UTC