PHP 4.0 Bug #5195: ld: fatal error: library not found: -l-Wc,+abi-socket
| From: | brothers at halcyon dot com | Date: | Fri, 23 Jun 2000 00:58:13 +0000 |
| Subject: | PHP 4.0 Bug #5195: ld: fatal error: library not found: -l-Wc,+abi-socket | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-22098@lists.php.net to get a copy of this message | ||
From: brothers@halcyon.com
Operating system: Dynix/Ptx
PHP version: 4.0.0 Release
PHP Bug Type: Installation problem
Bug description: ld: fatal error: library not found: -l-Wc,+abi-socket
During the first run of configure, using '--with-oracle' on Sequent Dynix/Ptx, configure
fails because it mis-interprets Oracle's sysliblist file. The configure script expects
sysliblist to contain a series of loader options of the form "-lmalloc". Since Oracle
7.3.1 on Sequent there has been a compiler driver option in this file of the form
"-Wc,+abi-socket". It directs the Sequent acomp native C compiler driver to read
additional compiler driver options from "/usr/lib/abi-socket/cc_options". In my
installation these options are "-D_SOCKET_VERSION=1 -L/usr/lib/abi-socket". Both are
required for Oracle 7.3.4 to link staticly with Apache 1.3.12 on this platform.
This is how the symptom looks:
.
.
.
creating internal_functions.c
+--------------------------------------------------------------------+
| ATTENTION!
| Something is likely to be screwed up here, because the configure
| script was not able to detect a simple feature on your platform.
[...]
Thank you for using PHP.
I'm trying.
% cat debug.log
CONFIGURE: './configure' '--with-mysql' '--with-oracle'
'--with-apache=/opt/apache_1.3.12' '--enable-track-vars'
CC: cc
CFLAGS:
CPPFLAGS:
CXX:
CXXFLAGS:
INCLUDES: -I/opt/apache_1.3.12/src/include -I/opt/apache_1.3.12/src/os/unix
-I$(top_builddir)/Zend -I$(top_srcdir) -I/opt/php-4.0.0/ext/mysql/libmysql
-I/opt/oracle/product/7.3.4/rdbms/public -I/opt/oracle/product/7.3.4/rdbms/demo
-I/opt/oracle/product/7.3.4/network/public
LDFLAGS: -L/opt/oracle/product/7.3.4/lib -L/opt/oracle/product/7.3.4/lib
LIBS: -lclntsh -lserver -lptx44stb -lelf -lm -lseq -lnsl -lmalloc -lsocket -l-Wc,+abi-socket
-lm -ldl -lcrypt
DLIBS:
SAPI: apache
PHP_RPATHS: /opt/oracle/product/7.3.4/lib
uname -a: DYNIX/ptx spike 4.0 V4.4.4 i386
cc -o conftest -Wc,+abi-socket -L/opt/oracle/product/7.3.4/lib -L/opt/oracle/product/7.3.4/lib
conftest.c -lclntsh -lserver -lptx44stb -lelf -lm -lseq -lnsl -lmalloc -lsocket -l-Wc,+abi-socket
-lm -ldl -lcrypt 1>&5
ld: fatal error: library not found: -l-Wc,+abi-socket
+ - - - - - - end of symptom - - - -
My hackaround is to modify the configure file's interpretation of the sysliblist file and then
add back in the compiler option to the environment's CFLAGS by hand. Forgetting to add the
CFLAGS will result in Apache not linking staticly.
The "RIGHT WAY(tm)" to do this might involve teaching the configure script to parse out
non-linker options from the sysliblist and pre-set the makefile variables with them.
%setenv CFLAGS -Wc,+abi-sockets
or
$CFLAGS=-Wc,+abi-sockets
In file "configure" at lines 19446, 19448, 20941 and 20943, insert "-e 's/-W[^
]*//g'" after"sed ". The typical corrected line will read
ORACLE_SYSLIB="
cat $ORACLE_DIR/rdbms/lib/sysliblist | sed -e 's/-W[^ ]*//g' -e
's/-l//g'"
Be sure to put that space after the caret, "^", in the pattern.
Now, "rm debug.log" and rerun "configure".