summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorMichael Wallner <mike@php.net>2006-06-01 19:14:48 +0000
committerMichael Wallner <mike@php.net>2006-06-01 19:14:48 +0000
commit6e2ff39e3ec0a909574de457a6f54230d3280bee (patch)
tree204da798f098d1cfec480c973d25493792432ed7 /ext
parent57cdfc58d22dbc4eb67970a214e1d029f0f4fcac (diff)
downloadphp-git-6e2ff39e3ec0a909574de457a6f54230d3280bee.tar.gz
- Fix bug #37630: MySQL extensions should link against thread safe client libs if built with ZTS
Diffstat (limited to 'ext')
-rw-r--r--ext/mysql/config.m46
-rw-r--r--ext/mysql/php_mysql.c13
-rw-r--r--ext/mysqli/config.m48
-rwxr-xr-xext/pdo_mysql/config.m414
4 files changed, 21 insertions, 20 deletions
diff --git a/ext/mysql/config.m4 b/ext/mysql/config.m4
index 3e8bbdfb20..5870be02e1 100644
--- a/ext/mysql/config.m4
+++ b/ext/mysql/config.m4
@@ -86,7 +86,11 @@ if test "$PHP_MYSQL" != "no"; then
Note that the MySQL client library is not bundled anymore!])
fi
- MYSQL_LIBNAME=mysqlclient
+ if test "$enable_maintainer_zts" = "yes"; then
+ MYSQL_LIBNAME=mysqlclient_r
+ else
+ MYSQL_LIBNAME=mysqlclient
+ fi
case $host_alias in
*netware*[)]
MYSQL_LIBNAME=mysql
diff --git a/ext/mysql/php_mysql.c b/ext/mysql/php_mysql.c
index bef974313b..023a87e9fb 100644
--- a/ext/mysql/php_mysql.c
+++ b/ext/mysql/php_mysql.c
@@ -392,13 +392,6 @@ ZEND_MODULE_STARTUP_D(mysql)
REGISTER_LONG_CONSTANT("MYSQL_CLIENT_INTERACTIVE", CLIENT_INTERACTIVE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MYSQL_CLIENT_IGNORE_SPACE", CLIENT_IGNORE_SPACE, CONST_CS | CONST_PERSISTENT);
-
-#ifdef ZTS
-# if MYSQL_VERSION_ID >= 40000
- mysql_thread_init();
-# endif
-#endif
-
return SUCCESS;
}
/* }}} */
@@ -407,12 +400,6 @@ ZEND_MODULE_STARTUP_D(mysql)
*/
PHP_MSHUTDOWN_FUNCTION(mysql)
{
-#ifdef ZTS
-# if MYSQL_VERSION_ID >= 40000
- mysql_thread_end();
-# endif
-#endif
-
UNREGISTER_INI_ENTRIES();
return SUCCESS;
}
diff --git a/ext/mysqli/config.m4 b/ext/mysqli/config.m4
index cfca74b476..2c1af87054 100644
--- a/ext/mysqli/config.m4
+++ b/ext/mysqli/config.m4
@@ -22,9 +22,13 @@ dnl fi
MYSQL_CONFIG=$PHP_MYSQLI
fi
+ MYSQL_LIB_NAME='mysqlclient'
if test "$PHP_EMBEDDED_MYSQLI" = "yes"; then
AC_DEFINE(HAVE_EMBEDDED_MYSQLI, 1, [embedded MySQL support enabled])
MYSQL_LIB_CFG='--libmysqld-libs'
+ elif test "$enable_maintainer_zts" = "yes"; then
+ MYSQL_LIB_CFG='--libs_r'
+ MYSQL_LIB_NAME='mysqlclient_r'
else
MYSQL_LIB_CFG='--libs'
fi
@@ -40,12 +44,12 @@ dnl fi
dnl
dnl Check the library
dnl
- PHP_CHECK_LIBRARY(mysqlclient, mysql_set_server_option,
+ PHP_CHECK_LIBRARY($MYSQL_LIB_NAME, mysql_set_server_option,
[
PHP_EVAL_INCLINE($MYSQLI_INCLINE)
PHP_EVAL_LIBLINE($MYSQLI_LIBLINE, MYSQLI_SHARED_LIBADD)
AC_DEFINE(HAVE_MYSQLILIB,1,[ ])
- PHP_CHECK_LIBRARY(mysqlclient, mysql_stmt_field_count,
+ PHP_CHECK_LIBRARY($MYSQL_LIB_NAME, mysql_stmt_field_count,
[ ],[
AC_MSG_ERROR([MySQLI doesn't support versions < 4.1.3 (for MySQL 4.1.x) and < 5.0.1 for (MySQL 5.0.x) anymore. Please update your libraries.])
],[$MYSQLI_LIBLINE])
diff --git a/ext/pdo_mysql/config.m4 b/ext/pdo_mysql/config.m4
index c239944279..44471d7430 100755
--- a/ext/pdo_mysql/config.m4
+++ b/ext/pdo_mysql/config.m4
@@ -5,7 +5,7 @@ dnl
if test "$PHP_PDO" != "no"; then
AC_DEFUN([PDO_MYSQL_LIB_CHK], [
- str="$PDO_MYSQL_DIR/$1/libmysqlclient.*"
+ str="$PDO_MYSQL_DIR/$1/libmysqlclient*"
for j in `echo $str`; do
if test -r $j; then
PDO_MYSQL_LIB_DIR=$MYSQL_DIR/$1
@@ -53,8 +53,14 @@ if test "$PHP_PDO_MYSQL" != "no"; then
if test "x$SED" = "x"; then
AC_PATH_PROG(SED, sed)
fi
+ if test "$enable_maintainer_zts" = "yes"; then
+ PDO_MYSQL_LIBNAME=mysqlclient_r
+ PDO_MYSQL_LIBS=`$PDO_MYSQL_CONFIG --libs_r | $SED -e "s/'//g"`
+ else
+ PDO_MYSQL_LIBNAME=mysqlclient
+ PDO_MYSQL_LIBS=`$PDO_MYSQL_CONFIG --libs | $SED -e "s/'//g"`
+ fi
PDO_MYSQL_INCLUDE=`$PDO_MYSQL_CONFIG --cflags | $SED -e "s/'//g"`
- PDO_MYSQL_LIBS=`$PDO_MYSQL_CONFIG --libs | $SED -e "s/'//g"`
PDO_MYSQL_SOCKET=`$PDO_MYSQL_CONFIG --socket`
elif test -z "$PDO_MYSQL_DIR"; then
AC_MSG_RESULT([not found])
@@ -80,7 +86,7 @@ if test "$PHP_PDO_MYSQL" != "no"; then
AC_MSG_ERROR([Unable to find your mysql installation])
fi
- PHP_ADD_LIBRARY_WITH_PATH(mysqlclient, $PDO_MYSQL_LIB_DIR, PDO_MYSQL_SHARED_LIBADD)
+ PHP_ADD_LIBRARY_WITH_PATH($PDO_MYSQL_LIBNAME, $PDO_MYSQL_LIB_DIR, PDO_MYSQL_SHARED_LIBADD)
PHP_ADD_INCLUDE($PDO_MYSQL_INC_DIR)
PDO_MYSQL_INCLUDE=-I$PDO_MYSQL_INC_DIR
fi
@@ -88,7 +94,7 @@ if test "$PHP_PDO_MYSQL" != "no"; then
AC_DEFINE_UNQUOTED(PDO_MYSQL_UNIX_ADDR, "$PDO_MYSQL_SOCKET", [ ])
- PHP_CHECK_LIBRARY(mysqlclient, mysql_query,
+ PHP_CHECK_LIBRARY($PDO_MYSQL_LIBNAME, mysql_query,
[
PHP_EVAL_LIBLINE($PDO_MYSQL_LIBS, PDO_MYSQL_SHARED_LIBADD)
],[