~ubuntu-branches/ubuntu/maverick/php5/maverick-proposed

« back to all changes in this revision

Viewing changes to debian/patches/fpm_gcc_atomics.patch

  • Committer: Bazaar Package Importer
  • Author(s): Chuck Short
  • Date: 2010-08-01 11:58:54 UTC
  • mfrom: (1.1.19 upstream) (0.4.6 experimental)
  • Revision ID: james.westby@ubuntu.com-20100801115854-30yqnnj2vx87v6no
Tags: 5.3.3-1ubuntu1
Merge from Debian experimental: 

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Description: Use GCC's atomic builtins in the FPM SAPI to allow it to
 
2
 build everywhere.
 
3
Origin: vendor
 
4
Forwarded: http://bugs.php.net/52407
 
5
Last-Update: 2010-07-28
 
6
 
 
7
Index: php-5.3.3/sapi/fpm/fpm/fpm_atomic.h
 
8
===================================================================
 
9
--- php-5.3.3.orig/sapi/fpm/fpm/fpm_atomic.h
 
10
+++ php-5.3.3/sapi/fpm/fpm/fpm_atomic.h
 
11
@@ -12,7 +12,19 @@
 
12
 #endif
 
13
 #include <sched.h>
 
14
 
 
15
-#if ( __i386__ || __i386 )
 
16
+#if (__GNUC__) && (__GNUC__ >= 4 &&  __GNUC_MINOR__ >= 1)
 
17
+
 
18
+/**
 
19
+ * all the cases below (as provided by upstream) define:
 
20
+ * word as atomic_int_t, and
 
21
+ * unsigned word as atomic_uint_t
 
22
+ * and only use volatile atomic_uint_t as atomic_t
 
23
+ */
 
24
+
 
25
+typedef volatile unsigned long atomic_t;
 
26
+#define atomic_cmp_set(a,b,c) __sync_bool_compare_and_swap(a,b,c)
 
27
+
 
28
+#elif ( __i386__ || __i386 )
 
29
 
 
30
 typedef int32_t                     atomic_int_t;
 
31
 typedef uint32_t                    atomic_uint_t;