pajoye Thu, 17 Jun 2010 10:22:03 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=300511
Log: - #51424, solaris part Bug: http://bugs.php.net/51424 (Assigned) crypt() function hangs after 3rd call Changed paths: U php/php-src/branches/PHP_5_3/ext/standard/config.m4 U php/php-src/branches/PHP_5_3/ext/standard/php_crypt_r.c U php/php-src/trunk/ext/standard/config.m4 U php/php-src/trunk/ext/standard/php_crypt_r.c Modified: php/php-src/branches/PHP_5_3/ext/standard/config.m4 =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/config.m4 2010-06-17 09:26:29 UTC (rev 300510) +++ php/php-src/branches/PHP_5_3/ext/standard/config.m4 2010-06-17 10:22:03 UTC (rev 300511) @@ -567,6 +567,11 @@ fi dnl +dnl Check for atomic operation API availability in Solaris +dnl +AC_CHECK_HEADERS([atomic.h]) + +dnl dnl Setup extension sources dnl PHP_NEW_EXTENSION(standard, array.c base64.c basic_functions.c browscap.c crc32.c crypt.c \ Modified: php/php-src/branches/PHP_5_3/ext/standard/php_crypt_r.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/php_crypt_r.c 2010-06-17 09:26:29 UTC (rev 300510) +++ php/php-src/branches/PHP_5_3/ext/standard/php_crypt_r.c 2010-06-17 10:22:03 UTC (rev 300511) @@ -42,7 +42,11 @@ # include <Wincrypt.h> #endif -#include <signal.h> +#ifdef HAVE_ATOMIC_H /* Solaris 10 defines atomic API within */ +# include <atomic.h> +#else +# include <signal.h> +#endif #include "php_crypt_r.h" #include "crypt_freesec.h" @@ -77,6 +81,8 @@ { #ifdef PHP_WIN32 LONG volatile initialized = 0; +#elif defined(HAVE_ATOMIC_H) /* Solaris 10 defines atomic API within */ + volatile unsigned int initialized = 0; #else static volatile sig_atomic_t initialized = 0; #endif @@ -90,6 +96,9 @@ InterlockedIncrement(&initialized); #elif (defined(__GNUC__) && (__GNUC__ >= 4 && __GNUC_MINOR >= 2)) __sync_fetch_and_add(&initialized, 1); +#elif defined(HAVE_ATOMIC_H) /* Solaris 10 defines atomic API within */ + membar_producer(); + atomic_add_int(&initialized, 1); #endif _crypt_extended_init(); } Modified: php/php-src/trunk/ext/standard/config.m4 =================================================================== --- php/php-src/trunk/ext/standard/config.m4 2010-06-17 09:26:29 UTC (rev 300510) +++ php/php-src/trunk/ext/standard/config.m4 2010-06-17 10:22:03 UTC (rev 300511) @@ -567,6 +567,11 @@ fi dnl +dnl Check for atomic operation API availability in Solaris +dnl +AC_CHECK_HEADERS([atomic.h]) + +dnl dnl Setup extension sources dnl PHP_NEW_EXTENSION(standard, array.c base64.c basic_functions.c browscap.c crc32.c crypt.c \ Modified: php/php-src/trunk/ext/standard/php_crypt_r.c =================================================================== --- php/php-src/trunk/ext/standard/php_crypt_r.c 2010-06-17 09:26:29 UTC (rev 300510) +++ php/php-src/trunk/ext/standard/php_crypt_r.c 2010-06-17 10:22:03 UTC (rev 300511) @@ -42,7 +42,11 @@ # include <Wincrypt.h> #endif -#include <signal.h> +#ifdef HAVE_ATOMIC_H /* Solaris 10 defines atomic API within */ +# include <atomic.h> +#else +# include <signal.h> +#endif #include "php_crypt_r.h" #include "crypt_freesec.h" @@ -77,6 +81,8 @@ { #ifdef PHP_WIN32 LONG volatile initialized = 0; +#elif defined(HAVE_ATOMIC_H) /* Solaris 10 defines atomic API within */ + volatile unsigned int initialized = 0; #else static volatile sig_atomic_t initialized = 0; #endif @@ -90,6 +96,9 @@ InterlockedIncrement(&initialized); #elif (defined(__GNUC__) && (__GNUC__ >= 4 && __GNUC_MINOR >= 2)) __sync_fetch_and_add(&initialized, 1); +#elif defined(HAVE_ATOMIC_H) /* Solaris 10 defines atomic API within */ + membar_producer(); + atomic_add_int(&initialized, 1); #endif _crypt_extended_init(); }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php