php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #8844 -rpath is not used correctly, causing configure failure
Submitted: 2001-01-22 18:20 UTC Modified: 2001-10-23 06:47 UTC
From: long at kestrel dot cc dot ukans dot edu Assigned:
Status: Closed Package: Compile Failure
PHP Version: 4.0.4pl1 OS: Compaq Tru64 4.0F PK3
Private report: No CVE-ID: None
 [2001-01-22 18:20 UTC] long at kestrel dot cc dot ukans dot 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.



Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-05-23 13:45 UTC] 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-05-24 09:31 UTC] long at kestrel dot cc dot ukans dot 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-25 11:40 UTC] long at kestrel dot cc dot ukans dot edu
 It appears to me that php4-200105231339 does not use libtool within the configure script to do all its testing.
 [2001-05-26 01:26 UTC] long at kestrel dot cc dot ukans dot 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-10-23 06:47 UTC] sniper@php.net
Closed per user request. And this is not exactly PHP bug.

 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Apr 26 07:01:32 2024 UTC