- Fixed bug #52725 (gcc builtin atomic functions were sometimes used when they were not available).

This commit is contained in:
Jérôme Loyet 2010-09-01 08:17:18 +00:00
parent 5fd50c99cb
commit 6b2b7046ed
3 changed files with 22 additions and 1 deletions

2
NEWS
View file

@ -17,6 +17,8 @@
- Fixed possible crash in mssql_fetch_batch(). (Kalle) - Fixed possible crash in mssql_fetch_batch(). (Kalle)
- Fixed inconsistent backlog default value (-1) in FPM on many systems. (fat) - Fixed inconsistent backlog default value (-1) in FPM on many systems. (fat)
- Fixed bug #52725 (gcc builtin atomic functions were sometimes used when they
were not available). (fat)
- Fixed bug #52745 (Binding params doesn't work when selecting a date inside a - Fixed bug #52745 (Binding params doesn't work when selecting a date inside a
CASE-WHEN). (Andrey) CASE-WHEN). (Andrey)
- Fixed bug #52699 (PDO bindValue writes long int 32bit enum). - Fixed bug #52699 (PDO bindValue writes long int 32bit enum).

View file

@ -499,6 +499,24 @@ AC_DEFUN([AC_FPM_TRACE],
fi fi
]) ])
AC_DEFUN([AC_FPM_BUILTIN_ATOMIC],
[
AC_MSG_CHECKING([if gcc supports __sync_bool_compare_and_swap])
AC_TRY_LINK(,
[
int variable = 1;
return (__sync_bool_compare_and_swap(&variable, 1, 2)
&& __sync_add_and_fetch(&variable, 1)) ? 1 : 0;
],
[
AC_MSG_RESULT([yes])
AC_DEFINE(HAVE_BUILTIN_ATOMIC, 1, [Define to 1 if gcc supports __sync_bool_compare_and_swap() a.o.])
],
[
AC_MSG_RESULT([no])
])
])
dnl }}} dnl }}}
AC_MSG_CHECKING(for FPM build) AC_MSG_CHECKING(for FPM build)
@ -518,6 +536,7 @@ if test "$PHP_FPM" != "no"; then
AC_FPM_PRCTL AC_FPM_PRCTL
AC_FPM_CLOCK AC_FPM_CLOCK
AC_FPM_TRACE AC_FPM_TRACE
AC_FPM_BUILTIN_ATOMIC
PHP_ARG_WITH(fpm-user,, PHP_ARG_WITH(fpm-user,,
[ --with-fpm-user[=USER] Set the user for php-fpm to run as. (default: nobody)], nobody, no) [ --with-fpm-user[=USER] Set the user for php-fpm to run as. (default: nobody)], nobody, no)

View file

@ -12,7 +12,7 @@
#endif #endif
#include <sched.h> #include <sched.h>
#if (__GNUC__) && (__GNUC__ >= 4 && __GNUC_MINOR__ >= 1) #ifdef HAVE_BUILTIN_ATOMIC
/** /**
* all the cases below (as provided by upstream) define: * all the cases below (as provided by upstream) define: