php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #60840 undefined symbol: mysqlnd_debug_std_no_trace_funcs
Submitted: 2012-01-22 18:58 UTC Modified: 2013-02-19 23:31 UTC
Votes:16
Avg. Score:4.4 ± 0.8
Reproduced:13 of 13 (100.0%)
Same Version:12 (92.3%)
Same OS:6 (46.2%)
From: public at grik dot net Assigned: mysql
Status: Closed Package: PDO related
PHP Version: 5.4SVN-2012-01-22 (snap) OS: linux
Private report: No CVE-ID:
 [2012-01-22 18:58 UTC] public at grik dot net
Description:
------------
I built PHP 5.4 from sources in debug mode with pdo_mysql extension as shared,
compiled successfully, but when I starting php I get the startup warning.

My configure command:

'./configure' \
'--prefix=/usr/local' \
'--sysconfdir=/etc' \
'--with-config-file-path=/etc' \
'--with-mysql=shared,mysqlnd' \
'--with-mysqli=shared,mysqlnd' \
'--with-pdo-mysql=shared,mysqlnd' \
--enable-fpm \
--enable-debug



Test script:
---------------
just running from command line


Actual result:
--------------
# php

Warning: PHP Startup: Unable to load dynamic library 
'/usr/local/lib/php/extensions/debug-non-zts-20100525/pdo_mysql.so' - 
/usr/local/lib/php/extensions/debug-non-zts-20100525/pdo_mysql.so: undefined 
symbol: mysqlnd_debug_std_no_trace_funcs in Unknown on line 0

Patches

bug60840.diff (last revision 2013-02-19 23:35 UTC) by johannes@php.net)

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2012-01-22 19:36 UTC] rasmus@php.net
-Status: Open +Status: Assigned -Assigned To: +Assigned To: uw
 [2012-01-22 20:02 UTC] public at grik dot net
I tried to compile without mysqlnd driver:
# cd ext/pdo_mysql
# ./configure --with-pdo-mysql=/usr
checking for mysql_config... /usr/bin/mysql_config
# make; make install
#php
undefined symbol: mysqlnd_debug_std_no_trace_funcs

same issue, even when mysqlnd is not used
 [2012-04-03 05:46 UTC] luiz dot fk at gmail dot com
Hi... same here:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/extensions/debug-non-zts-20100525/pdo_mysql.so' - /usr/lib64/extensions/debug-non-zts-20100525/pdo_mysql.so: undefined symbol: mysqlnd_debug_std_no_trace_funcs in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/extensions/debug-non-zts-20100525/pdo_mysql.so' - /usr/lib64/extensions/debug-non-zts-20100525/pdo_mysql.so: undefined symbol: mysqlnd_debug_std_no_trace_funcs in Unknown on line 0
 [2012-05-02 09:30 UTC] uw@php.net
-Assigned To: uw +Assigned To: mysql
 [2012-05-02 09:30 UTC] uw@php.net
Don't assign to individuals if you mean "mysql".
 [2012-06-14 09:32 UTC] fausten at pw-internet dot de
Hi, same problem here:

# cd /usr/ports/database/php5-pdo_mysql && make install clean

Build is successfully.

% php foo.php

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20100525-debug/pdo_mysql.so' - /usr/local/lib/php/20100525-debug/pdo_mysql.so: Undefined symbol "mysqlnd_debug_std_no_trace_funcs" in Unknown on line 0

OS: FreeBSD 9.0 amd64
PHP: 5.4.3 builded from ports (# cd /usr/ports/lang/php5 %% make install clean)
 [2012-06-14 09:41 UTC] johannes@php.net
When building the MySQL extensions you explicitly have to enable mysqlnd. i.e. --enable-mysqlnd=shared. If you build mysqlnd shared you have to remember to load it, too.

I will look whether the build system can be made smarter and at least warn. I don't want to make the decision in there whether to build shared or static. If I'd make that decision I'd default to static mysqlnd.
 [2012-06-14 09:57 UTC] fausten at pw-internet dot de
Hi,

the package is going to build with mysqlnd by default:

# cd /usr/ports/databases/php5-pdo_mysql && make config

MYSQLND - Use MySQL Native Driver (Is selected by default)

# make install clean

After installation:

The following line has been added to your /usr/local/etc/php/extensions.ini
configuration file to automatically load the installed extension:

extension=pdo_mysql.so

So the extension sholud be loaded after restarting php.
 [2012-06-14 10:03 UTC] public at grik dot net
Johannes, thanks for the response, but according to http://php.net/ChangeLog-5.php
"ext/mysql, mysqli and pdo_mysql now use mysqlnd by default." in 5.4

So the issues are:
1. Why should we explicitly enable the feature used by default?
2. How can we NOT use mysqlnd in debug mode, if it issues an error for missing 
mysqlnd_debug_std_no_trace_funcs?
 [2012-10-29 16:03 UTC] johannes@php.net
public at grik dot net,

the issue is when building the extensions shared we can't decide what to do with mysqlnd, should that be built-in or shared, too? Or maybe the user has a different mysqlnd? - We leave this to the user.
 [2012-10-29 16:03 UTC] johannes@php.net
-Status: Assigned +Status: Not a bug
 [2013-02-19 23:31 UTC] johannes@php.net
-Status: Not a bug +Status: Open
 [2013-02-19 23:35 UTC] johannes@php.net
The following patch has been added/updated:

Patch Name: bug60840.diff
Revision:   1361316955
URL:        https://bugs.php.net/patch-display.php?bug=60840&patch=bug60840.diff&revision=1361316955
 [2013-02-21 15:52 UTC] johannes@php.net
-Status: Assigned +Status: Closed
 [2013-02-21 15:52 UTC] johannes@php.net
Automatic comment on behalf of johannes@schlueters.de
Revision: http://git.php.net/?p=php-src.git;a=commit;h=064c62e4cf078cf08a40478dfe0e64bd51789e57
Log: Fix #60840 (undefined symbol: mysqlnd_debug_std_no_trace_funcs)
 
PHP Copyright © 2001-2014 The PHP Group
All rights reserved.
Last updated: Fri Apr 18 05:03:21 2014 UTC