]> granicus.if.org Git - php/commitdiff
- Fix bug #37630: MySQL extensions should link against thread safe client libs if...
authorMichael Wallner <mike@php.net>
Thu, 1 Jun 2006 19:14:48 +0000 (19:14 +0000)
committerMichael Wallner <mike@php.net>
Thu, 1 Jun 2006 19:14:48 +0000 (19:14 +0000)
NEWS
ext/mysql/config.m4
ext/mysql/php_mysql.c
ext/mysqli/config.m4
ext/pdo_mysql/config.m4

diff --git a/NEWS b/NEWS
index ad39559f7c978a52258cc8974989fcf9265d584f..49d6fd5bab24bf43361e1337034aa46303f7caf4 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -51,6 +51,8 @@ PHP                                                                        NEWS
 - Fixed handling of extremely long paths inside tempnam() function. (Ilia)
 - Fixed bug #37635 (parameter of pcntl signal handler is trashed). (Mike)
 - Fixed bug #37632 (Protected method access problem). (Marcus)
+- Fixed bug #37630 (MySQL extensions should link against thread safe client
+  libs if built with ZTS). (Mike)
 - Fixed bug #37620 (mysqli_ssl_set validation is inappropriate). (Georg)
 - Fixed bug #37616 (DATE_RFC822 does not product RFC 822 dates).
   (Hannes Magnusson, Derick)
index 3e8bbdfb2003a6c4576c7d3d79f4ebd76cb17b42..5870be02e1821a611c1628b8fd355ffff742321b 100644 (file)
@@ -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
index bef974313bde882e3da357c2c95c82425b0c3481..023a87e9fb6198c423afdda7ddb820cbae6243cc 100644 (file)
@@ -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;
 }
index cfca74b476fd16bd455591016447c50c19d56e92..2c1af87054a356c0c7564c692772f7f3952ba187 100644 (file)
@@ -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])
index c2399442792ff220a7fe18bd0dceacde152b874a..44471d74307e4a7d2c4f588a3cbfc1442af439a7 100755 (executable)
@@ -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)
   ],[