PHP 4.0 Bug #5195: ld: fatal error: library not found: -l-Wc,+abi-socket

From: 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".

« previous php.dev (#22098) next »