php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #29619 mysqli can't be compiled
Submitted: 2004-08-11 19:20 UTC Modified: 2004-08-11 21:35 UTC
From: helge at eco-logic-software dot de Assigned:
Status: Not a bug Package: Compile Failure
PHP Version: 5.0.0 OS: Linux (SuSE 8.1)
Private report: No CVE-ID: None
 [2004-08-11 19:20 UTC] helge at eco-logic-software dot de
Description:
------------
When trying to configure PHP 5 for compilation under SuSE Linux 8.1 (old system because it's a production server) and enabling MySQLi support I get this:

checking for MySQLi support... yes
checking whether to enable embedded MySQLi support... no
checking for mysql_set_server_option in -lmysqlclient... no
configure: error: wrong mysql library version or lib not found. Check config.log for more information.

The message seems clear but the problem is that in the given directory the MySQL 4.1.3 libraries exist (and only there - I used the RPM-devel from the official homepage). config.log ends with:

configure:54782: checking for MySQLi support
configure:54828: checking whether to enable embedded MySQLi support
configure:54961: checking for mysql_set_server_option in -lmysqlclient
configure:54980: gcc -o conftest -g -O2  -Wl,-rpath,/usr/lib/mysql -L/usr/lib/mysql  -lmysqlclient -lz -lcrypt -lnsl -lm -lnss_files -lnss_dns -lresolv -lnss_files -lnss_dns -lresolv conftest.c -L/usr/lib -lmysqlclient  -lldap -llber -lcrypt -lpam -lfreetype -lpng -lz -ljpeg -lbz2 -lz -lssl -lcrypto -lresolv -lm -ldl -lnsl  1>&5
/usr/lib/gcc-lib/i486-suse-linux/3.2/../../../../i486-suse-linux/bin/ld: cannot find -lnss_files
collect2: ld returned 1 exit status
configure: failed program was:
#line 54969 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char mysql_set_server_option();

int main() {
mysql_set_server_option()
; return 0; }

I already tried to apply the patch given in #29329 but that didn't work either. I also tried changing the paths and so on but that only resulted in the same error. The libraries are the right ones as the "normal" mysql support compiles just fine and phpinfo() gives me "MySQL client library: 4.1.3-beta". So normal MySQL support is working just fine with the libraries but MySQLi support is not. Why, what am I doing wrong?

Reproduce code:
---------------
PHP 5.0.0 source from php.net

./configure --with-openssl --with-zlib --enable-bcmath --with-bz2 --enable-calender --enable-exif --enable-ftp --with-gd --with-png-dir=/usr --with-jpeg-dir=/usr --with-zlib-dir=/usr --with-ttf=/usr --with-freetype-dir --enable-gd-native-ttf --with-gettext --with-iconv --with-imap --with-ldap=/usr --enable-mbstring --with-mime-magic --enable-sockets --enable-sqlite-utf8 --with-iconv-dir --with-xsl --with-apxs2=/usr/local/apache2/bin/apxs --disable-libxml --with-mysql=/usr/lib/mysql --with-mysql-sock=/var/lib/mysql/mysql.sock --with-mysqli=/usr/bin/mysql_config

(libxml2 is disabled because I can't upgrade to a newer version right now because of the old glibc in 8.1 - but that shouldn't matter ... or?)

Expected result:
----------------
./configure should finish successfully - as well as the make afterwards, of course ;-)

Actual result:
--------------
./configure aborts due to the missing MySQL libraries which are defenitively there.

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2004-08-11 20:35 UTC] helly@php.net
Sorry, but your problem does not imply a bug in PHP itself.  For a
list of more appropriate places to ask for help using PHP, please
visit http://www.php.net/support.php as this bug system is not the
appropriate forum for asking support questions. 

Thank you for your interest in PHP.

MySQL links against OpenSSL 0.96 while PHP links against 0.97. So it cannot work. It\'s a known issue to the way out is to compile the mysql libs on your own. Doing that you probably end up in the same problem as i did. I cannot compile shared mysql libs so that i can only use 1 of the three extensions that link against MySQL (mysql, mysqlI, pdo_mysql).
 [2004-08-11 21:35 UTC] helge at eco-logic-software dot de
It was somewhat clear to me that this isn't a real bug in  
PHP but I think in the ./configure script which could give  
a little more hints or at least provide a link to somewhat  
of a FAQ where problems like these are focused. I didn't  
tried to compile MySQL on my own because on the MySQL  
download page they warn you to do it although I have done  
that already on my private machines. All I want is  
a ./configure script which is a little more verbose  
because I couldn't find the error after more than 11 hours  
of testing+googleing :-/ Will try to compile MySQL on my  
own this night.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri May 24 06:01:38 2024 UTC