php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #1288 ld: unrecognized option `-Wl,-rpath,/usr/lib/mysql'
Submitted: 1999-04-04 06:23 UTC Modified: 1999-06-12 15:13 UTC
From: dlambert at saueyfamily dot net Assigned:
Status: Closed Package: Compile Failure
PHP Version: 3.0 Latest CVS (04/04/1999) OS: Linux 2.0.36
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: dlambert at saueyfamily dot net
New email:
PHP Version: OS:

 

 [1999-04-04 06:23 UTC] dlambert at saueyfamily dot net
I'm having this problem both with 3.0.7 and the latest CVS (that why I downloaded it..)

When I compile PHP with --with-mysql and then compile apache 1.3.6 with --enable-shared=php3 I get the following error:

===> src/modules/php3
gcc -c  -I../../os/unix -I../../include   -DLINUX=2 -DUSE_HSREGEX `../../apaci` -fpic -DSHARED_MODULE  mod_php3.c && mv mod_php3.o mod_php3.so-o
rm -f libphp3.so
ld -Bshareable -o libphp3.so mod_php3.so-o libmodphp3-so.a  -Wl,-rpath,/usr/lib/mysql -L/usr/lib/mysql -lmysqlclient               -L/usr/local/lib /usr/local/lib/c-client.a              -lgd -lpam -lm -ldl -lcrypt -lnsl  -lresolv  -lm -lcrypt -lndbm -ldb -lgdbm -ldl
ld: unrecognized option `-Wl,-rpath,/usr/lib/mysql'
make[4]: *** [libphp3.so] Error 1
make[3]: *** [all] Error 1
make[2]: *** [subdirs] Error 1
make[2]: Leaving directory `/usr/local/src/apache_1.3.6/src'
make[1]: *** [build-std] Error 2
make[1]: Leaving directory `/usr/local/src/apache_1.3.6'
make: *** [build] Error 2

I found a similar bug in the bug track system that reported the same error with 3.0.6 I think, and the response was it was fixed in 3.0.7. I encountered the same error when I tried to compile mod_perl as a module along with php. I am not compiling mod_perl at all now. PHP works fine when I don't compile it as a module, but I'd like to have this functionality.

php config:

./configure \
        --with-mysql=/usr \
        --with-shared-apache=../apache_1.3.6 \
        --enable-track-vars \
        --with-config-file-path=/etc/httpd/conf \
        --with-imap=/usr/local

apache config:

./configure --prefix=/etc/httpd \
        --sbindir=/usr/sbin \
        --mandir=/usr/man \
        --bindir=/usr/bin \
        --libexecdir=/usr/lib/apache \
        --sysconfdir=/etc/httpd/conf \
        --datadir=/home/httpd \
        --includedir=/usr/include/apache \
        --logfiledir=/var/log/httpd \
        --localstatedir=/var \
        --runtimedir=/var/run \
        --proxycachedir=/var/cache/httpd \
        --enable-module=all \
        --enable-shared=max \
        --disable-rule=WANTHSREGEX \
        --activate-module=src/modules/php3/libphp3.a \
        --enable-shared=php3

make --version
GNU Make version 3.76.1

gcc --version
2.7.2.3

autoconf --version
Autoconf version 2.12

bison --version
GNU Bison version 1.25

flex --version
flex version 2.5.4

ld --version
GNU ld 2.9.1

(anything else??)   :)


-----------------------------
more info:

Since I started with the CVS version and ran autoconf I imagine the problem lies in build-defs.h or configure.in (found by going a grep search in the php3 source tree root). It also looks like there is a test in the configure script for the -Wl,-rpath, ld option. Could this test be bad, or do I have a bad version of ld???
--------------------
Acutally, looks like it has to come from the configure.in file, since build-defs.h is created.. I tried to find a newer version of ld but it looks like 2.9.1 is the newest..
--------------------
Ack.. Sorry for the all updates... I now changed the line:

php_cv_cc_rpath=${php_cv_cc_rpath='no'}

the the config.cache file from yes to no. This seemed easier than modifiying the configure.in since I didn't quite understand what was going on in there. I ran the configure script for php3 (and it did read the cache file change), rebuilt php3, did a make install. Reran apache config script, did a make on apache and it compiled fine. Installed the new binaries and the server came up... One weird thing I noticed on the phpinfo screen (from a phpinfo() ) is that the include directories for mysql are listed twice (under _LFLAGS).. Here is the listing: 

       Client API
       version:
                3.22.20a
       Compilation
       definitions:
                MYSQL_INCLUDE=-I/usr/include/mysql
                MYSQL_LFLAGS=-L/usr/lib/mysql
                -L/usr/lib/mysql
                MYSQL_LIBS=-lmysqlclient

You can check this out at http://www.saueyfamily.net/info.php3

-------------------------
Another update...

On a whim, I tried compiling php3 with axps instead of through apache and I got no error and apache loaded fine with the new module. Here is the config script-

./configure \
        --with-mysql=/usr \
        --with-apxs \
        --enable-track-vars \
        --with-config-file-path=/etc/httpd/conf \
        --with-imap=/usr/local

-------------

almost forgot, I did remove the config.cache when I built php3 using apxs...
----------------

Well, using the apxs build I discovered that some of my scripts don't work properly... So I'm running with the cache modified version again..

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [1999-06-12 15:13 UTC] jim at cvs dot php dot net
Could be any number of things going screwy here. Since this
was reported quite some time ago against the CVS version,
I'm closing this bug.

(My best guess is that 'autoconf' needed to be run in the
checked out version.)
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Mon May 06 07:01:32 2024 UTC