summaryrefslogtreecommitdiff
path: root/ext/mysql
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mysql')
-rw-r--r--ext/mysql/config.m42
-rw-r--r--ext/mysql/config.w324
-rw-r--r--ext/mysql/php_mysql.c6
-rw-r--r--ext/mysql/php_mysql_structs.h5
4 files changed, 13 insertions, 4 deletions
diff --git a/ext/mysql/config.m4 b/ext/mysql/config.m4
index fd7f52ef3a..70bfd7110b 100644
--- a/ext/mysql/config.m4
+++ b/ext/mysql/config.m4
@@ -158,7 +158,7 @@ if test "$PHP_MYSQL" != "no"; then
fi
AC_DEFINE(HAVE_MYSQL, 1, [Whether you have MySQL])
- PHP_NEW_EXTENSION(mysql, php_mysql.c, $ext_shared)
+ PHP_NEW_EXTENSION(mysql, php_mysql.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
PHP_SUBST(MYSQL_SHARED_LIBADD)
if test "$PHP_MYSQL" = "yes" || test "$PHP_MYSQL" = "mysqlnd"; then
diff --git a/ext/mysql/config.w32 b/ext/mysql/config.w32
index 2a929b4165..0af94d9623 100644
--- a/ext/mysql/config.w32
+++ b/ext/mysql/config.w32
@@ -10,7 +10,7 @@ if (PHP_MYSQL != "no") {
PHP_MYSQL = "no";
WARNING("mysql not enabled; mysqlnd is not enabled");
} else {
- EXTENSION("mysql", "php_mysql.c");
+ EXTENSION("mysql", "php_mysql.c", PHP_MYSQL_SHARED, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
AC_DEFINE('HAVE_MYSQL', 1, 'Have MySQL library');
MESSAGE("\tusing mysqlnd build");
}
@@ -18,7 +18,7 @@ if (PHP_MYSQL != "no") {
if (CHECK_LIB("libmysql.lib", "mysql", PHP_MYSQL) &&
CHECK_HEADER_ADD_INCLUDE("mysql.h", "CFLAGS_MYSQL",
PHP_MYSQL + "\\include;" + PHP_PHP_BUILD + "\\include\\mysql;" + PHP_MYSQL)) {
- EXTENSION("mysql", "php_mysql.c");
+ EXTENSION("mysql", "php_mysql.c", PHP_MYSQL_SHARED, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
AC_DEFINE('HAVE_MYSQL', 1, 'Have MySQL library');
MESSAGE("\tusing libmysql");
} else {
diff --git a/ext/mysql/php_mysql.c b/ext/mysql/php_mysql.c
index fc1dac5da7..9454577a98 100644
--- a/ext/mysql/php_mysql.c
+++ b/ext/mysql/php_mysql.c
@@ -358,6 +358,9 @@ zend_module_entry mysql_module_entry = {
/* }}} */
#ifdef COMPILE_DL_MYSQL
+#ifdef ZTS
+ZEND_TSRMLS_CACHE_DEFINE;
+#endif
ZEND_GET_MODULE(mysql)
#endif
@@ -518,6 +521,9 @@ PHP_INI_END()
*/
static PHP_GINIT_FUNCTION(mysql)
{
+#if defined(COMPILE_DL_MYSQL) && defined(ZTS)
+ ZEND_TSRMLS_CACHE_UPDATE;
+#endif
mysql_globals->num_persistent = 0;
mysql_globals->default_socket = NULL;
mysql_globals->default_host = NULL;
diff --git a/ext/mysql/php_mysql_structs.h b/ext/mysql/php_mysql_structs.h
index 8eb9aa1d29..214a5c689b 100644
--- a/ext/mysql/php_mysql_structs.h
+++ b/ext/mysql/php_mysql_structs.h
@@ -127,7 +127,10 @@ ZEND_BEGIN_MODULE_GLOBALS(mysql)
ZEND_END_MODULE_GLOBALS(mysql)
#ifdef ZTS
-# define MySG(v) TSRMG(mysql_globals_id, zend_mysql_globals *, v)
+# define MySG(v) ZEND_TSRMG(mysql_globals_id, zend_mysql_globals *, v)
+# ifdef COMPILE_DL_MYSQL
+ZEND_TSRMLS_CACHE_EXTERN;
+# endif
#else
# define MySG(v) (mysql_globals.v)
#endif