php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #14975 Build/libtool will not use static libraries
Submitted: 2002-01-10 14:30 UTC Modified: 2002-03-01 20:12 UTC
Votes:2
Avg. Score:5.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:1 (100.0%)
Same OS:1 (100.0%)
From: djm at mcmahons dot com Assigned:
Status: Closed Package: Compile Failure
PHP Version: 4.1.1 OS: RedHat Linux 6.2
Private report: No CVE-ID: None
 [2002-01-10 14:30 UTC] djm at mcmahons dot com
There seems to have been a change in libtool between 4.0.6 and 4.1.x (this is happening in both 4.1.x releases so far).
I compile in ldap, but remove the shared objects to be sure that it uses the static (.a) library.  Up until 4.0.6 this worked.  Now I get "libldap.so: No such file or directory"
errors.  ldap is not the only one.  There are several external libraries that I also remove the shared objects to force it to link with static (.a) libs.  All of these report the same problem when I build php with them.  

For whatever reason it WANTS to use libldap.so despite the existence of libldap.a.

The Ldap example:

$./configure \
 --with-apxs=/usr1/apache/bin/apxs \
 --with-ldap=shared,/usr1/openldap-2.0.18

$ make
.
.
.
/bin/sh /usr1/php-4.1.1/libtool --silent --mode=link gcc  -I. -I/usr1/php-4.1.1/ext/ldap -I/usr1/php-4.1.1/main -I/usr1/php-4.1.1 -I/usr1/tempinstall/apache/include -I/usr1/php-4.1.1/Zend -I/usr1/openldap-2.0.18/include -I/usr1/php-4.1.1/ext/mysql/libmysql -I/usr1/php-4.1.1/ext/xml/expat  -DLINUX=22 -DMOD_SSL=208105 -D USE_HSREGEX -DEAPI -DEAPI_MM -DUSE_EXPAT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS
=64 -I/usr1/php-4.1.1/TSRM -O6 -mpentiumpro -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -prefer-pic   -o ldap.la -avoid-version -module -rpath /usr1/php-4.1.1/modules  ldap.lo  -R/usr1/openldap-2.0.18/lib -L/usr1/openldap-2.0.18/lib -lldap -
R/usr1/openldap-2.0.18/lib -L/usr1/openldap-2.0.18/lib -llber
gcc: /usr1/openldap-2.0.18/lib/.libs/libldap.so: No such file or directory
gcc: /usr1/openldap-2.0.18/lib/.libs/liblber.so: No such file or directory
make[3]: *** [ldap.la] Error 1
make[3]: Leaving directory `/usr1/php-4.1.1/ext/ldap'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr1/php-4.1.1/ext/ldap'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr1/php-4.1.1/ext'
make: *** [all-recursive] Error 1
$

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-03-01 20:12 UTC] djm at mcmahons dot com
This is not a bug, but rather a more strict way that the newer libtool seems to track down and use libraries.  I had some loose libraries and .la files hanging around in different directories (/usr/lib + my local build space) which caused this problem.  Removing the offending files fixed the problem.  This only occurs in PHP 4.1.x.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Apr 25 22:01:29 2024 UTC