Bug #8844 Updated: -rpath is not used correctly, causing configure failure
| From: | sniper@php.net | Date: | Tue, 23 Oct 2001 10:47:57 +0000 |
| Subject: | Bug #8844 Updated: -rpath is not used correctly, causing configure failure | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-68784@lists.php.net to get a copy of this message | ||
ID: 8844
Updated by: sniper
Reported By: long@kestrel.cc.ukans.edu
Old Status: Open
Status: Closed
Bug Type: Compile Failure
Operating System: Compaq Tru64 4.0F PK3
PHP Version: 4.0.4pl1
New Comment:
Closed per user request. And this is not exactly PHP bug.
Previous Comments:
------------------------------------------------------------------------
[2001-05-26 01:26:33] long@kestrel.cc.ukans.edu
Might as well close this but because you won't be able to fix it. Autoconf does *not* use
libtool during the configure process. Every autoconf-generated configure script has this problem. it
is not specific to PHP.
One workaround is to replace the system ld command with a wrapper that combines the -rpath
arguments. We've created such a wrapper:
http://freshmeat.net/projects/repld/
Other than that, pass LDFLAGS to configure with the appropriate
"-Wl,-rpath,<path>:<path>" arguments.
------------------------------------------------------------------------
[2001-05-25 11:40:42] long@kestrel.cc.ukans.edu
It appears to me that php4-200105231339 does not use libtool within the configure script to do all
its testing.
------------------------------------------------------------------------
[2001-05-24 09:31:06] long@kestrel.cc.ukans.edu
php4-200105231339 still suffers from the same problem. It tries to do:
cc -o conftest -O2 -std1 -taso -Wl,-rpath,/usr/local/ssl/lib -L/usr/local/ssl/lib
-Wl,-rpath,/usr/local/lib -L/usr/local/lib -Wl,-rpath,/usr/opt/java130/jre/lib/alpha/classic
-L/usr/opt/java130/jre/lib/alpha/classic -Wl,-rpath,/usr/opt/java130/jre/lib/alpha/native_threads
-L/usr/opt/java130/jre/lib/alpha/native_threads -Wl,-rpath,/usr/opt/java130/jre/lib/alpha
-L/usr/opt/java130/jre/lib/alpha -Wl,-rpath,/usr/local/ldap/lib -L/usr/local/ldap/lib
-Wl,-rpath,/usr/local/mysql/lib/mysql -L/usr/local/mysql/lib/mysql
-Wl,-rpath,/home/oracle/u01/app/oracle/product/8.0.5/lib
-L/home/oracle/u01/app/oracle/product/8.0.5/lib conftest.c -lclntsh -lpsa -lcore4 -lnlsrtl3 -lm
-laio -lrt -lmld -lexc -lclntsh -lpsa -lcore4 -lnlsrtl3 -lm -laio -lrt -lmld -lexc -lm -lmysqlclient
-lldapssl30 -ljava -lgd -lttf -lssl -lcrypto -lresolv -lm -lresolv
and the Compaq C compiler wants all rpath's passed in a single -Wl, similar to:
-Wl,-rpath,/usr/local/ssl/lib:/usr/local/lib:/usr/opt/java130/jre/lib/alpha/classic:/usr/opt/java130/jre/lib/alpha/native_threads:/usr/opt/java130/jre/lib/alpha:/usr/local/ldap/lib
------------------------------------------------------------------------
[2001-05-23 13:45:21] sniper@php.net
Could you please try the latest CVS?
It has libtool 1.4 which might fix this problem.
http://snaps.php.net/
--Jani
------------------------------------------------------------------------
[2001-01-22 18:20:54] long@kestrel.cc.ukans.edu
env CFLAGS=-taso CC=cc ./configure --with-openssl --enable-bcmath --with-ndbm --with-dbm
--enable-dbase --enable-filepro --enable-ftp --enable-gd-imgstrttf --with-gd --with-ttf
--with-java=/usr/opt/java130 --with-ldap=/usr/local/ldap --with-mysql --with-oci8 --with-oracle
--enable-shmop --enable-sockets --with-swf --enable-sysvsem --enable-sysvshm --enable-wddx
--enable-memory-limit --enable-dba=shared --enable-calendar --enable-exif
was the configure line.
DEC C V5.9-010 on Digital UNIX V4.0 (Rev. 1229)
/usr/bin/ld version 3.11
Failure occurs when trying to use multiple rpaths: for example, the configure script does:
cc -o conftest -taso -Wl,-rpath,/usr/local/ssl/lib -L/usr/local/ssl/lib -Wl,-rpath,/usr/local/lib
-L/usr/local/lib -Wl,-rpath,/usr/opt/java130/jre/lib/alpha/classic
-L/usr/opt/java130/jre/lib/alpha/classic -Wl,-rpath,/usr/opt/java130/jre/lib/alpha/native_threads
-L/usr/opt/java130/jre/lib/alpha/native_threads -Wl,-rpath,/usr/opt/java130/jre/lib/alpha
-L/usr/opt/java130/jre/lib/alpha -Wl,-rpath,/usr/local/ldap/lib -L/usr/local/ldap/lib
-Wl,-rpath,/home/oracle/u01/app/oracle/product/8.0.5/lib
-L/home/oracle/u01/app/oracle/product/8.0.5/lib conftest.c -lclntsh -lpsa -lcore4 -lnlsrtl3 -lm
-laio -lrt -lmld -lexc -lclntsh -lpsa -lcore4 -lnlsrtl3 -lm -laio -lrt -lmld -lexc -lldapssl30
-ljava -lttf -lgd -lcrypto -lssl -lresolv -lm -lresolv
but running 'odump -D' on conftest shows that the only rpath stored in the binary is the
last rpath shown above (i.e. /home/oracle/u01/app/oracle/product/8.0.5/lib). The only format the
compaq compiler/linker seems to want is the following:
cc -o conftest -taso
-Wl,-rpath,/usr/local/ssl/lib:/usr/local/lib:/usr/opt/java130/jre/lib/alpha/classic:/usr/opt/java130/jre/lib/alpha/native_threads:/usr/opt/java130/jre/lib/alpha:/usr/local/ldap/lib:/home/oracle/u01/app/oracle/product/8.0.5/lib
-L/usr/local/ssl/lib -L/usr/local/lib -L/usr/opt/java130/jre/lib/alpha/classic
-L/usr/opt/java130/jre/lib/alpha/native_threads -L/usr/opt/java130/jre/lib/alpha
-L/usr/local/ldap/lib -L/home/oracle/u01/app/oracle/product/8.0.5/lib conftest.c -lclntsh -lpsa
-lcore4 -lnlsrtl3 -lm -laio -lrt -lmld -lexc -lclntsh -lpsa -lcore4 -lnlsrtl3 -lm -laio -lrt -lmld
-lexc -lldapssl30 -ljava -lttf -lgd -lcrypto -lssl -lresolv -lm -lresolv
Note that all the rpath's are passed in as 1 argument. When 'odump -D' is ran on the
resulting binary it shows that all the rpath directories are properly stored in it.
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=8844&edit=1