php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #67849 error compiling mysqlnd if zlib is compiled shared
Submitted: 2014-08-15 14:35 UTC Modified: 2014-08-16 10:35 UTC
Votes:2
Avg. Score:4.0 ± 1.0
Reproduced:2 of 2 (100.0%)
Same Version:1 (50.0%)
Same OS:1 (50.0%)
From: public at grik dot net Assigned: mysql
Status: Assigned Package: MySQL related
PHP Version: 5.6.0RC4 OS: Linux, OSX 10.9
Private report: No CVE-ID:
Have you experienced this issue?
Rate the importance of this bug to you:

 [2014-08-15 14:35 UTC] public at grik dot net
Description:
------------
trying to compile php 5.6 RC4

separately pdo-mysql and zlib extensions compile successfully, as well as if zlib is not shared, but if zlib is configured as shared, pdo-mysql extension fails to be built

Test script:
---------------
php-5.6.0RC4 gri$ ./configure --disable-all --enable-pdo --with-pdo-mysql --with-zlib=shared
...
php-5.6.0RC4 gri$ make
...
Undefined symbols for architecture x86_64:
  "_compress", referenced from:
      _php_mysqlnd_net_encode_pub in mysqlnd_net.o
  "_uncompress", referenced from:
      _php_mysqlnd_net_decode_pub in mysqlnd_net.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [sapi/cli/php] Error 1

Expected result:
----------------
build successful

Actual result:
--------------
Undefined symbols for architecture x86_64:
  "_compress", referenced from:
      _php_mysqlnd_net_encode_pub in mysqlnd_net.o
  "_uncompress", referenced from:
      _php_mysqlnd_net_decode_pub in mysqlnd_net.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [sapi/cli/php] Error 1

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2014-08-15 17:15 UTC] aharvey@php.net
-Package: Zlib related +Package: MySQL related -Assigned To: +Assigned To: mysql
 [2014-08-15 17:15 UTC] aharvey@php.net
The trick here appears to be to force pdo_mysql and mysqlnd to be built as shared as well, via ./configure --disable-all --enable-mysqlnd=shared --enable-pdo --with-pdo-mysql=shared --with-zlib=shared.

Reassigning to the MySQL team. I'm not sure if we can detect this in mysqlnd's config9.m4, but it might be worth looking at.
 [2014-08-16 10:35 UTC] public at grik dot net
-Operating System: OSX 10.9 +Operating System: Linux, OSX 10.9
 [2014-08-16 10:35 UTC] public at grik dot net
reproduced in Linux

ext/mysqlnd/.libs/mysqlnd_net.o: In function `php_mysqlnd_net_encode_pub':
/usr/src/web/php-5.6.0RC4/ext/mysqlnd/mysqlnd_net.c:608: undefined reference to `compress'
ext/mysqlnd/.libs/mysqlnd_net.o: In function `php_mysqlnd_net_decode_pub':
/usr/src/web/php-5.6.0RC4/ext/mysqlnd/mysqlnd_net.c:584: undefined reference to `uncompress'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1
 
PHP Copyright © 2001-2017 The PHP Group
All rights reserved.
Last updated: Thu Aug 17 11:01:43 2017 UTC