php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #5195 ld: fatal error: library not found: -l-Wc,+abi-socket
Submitted: 2000-06-23 02:58 UTC Modified: 2000-08-20 02:35 UTC
From: brothers at halcyon dot com Assigned:
Status: Closed Package: Installation problem
PHP Version: 4.0.0 Release OS: Dynix/Ptx
Private report: No CVE-ID: None
 [2000-06-23 02:58 UTC] brothers at halcyon dot com
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".

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2000-07-26 01:11 UTC] waldschrott@php.net
Please verify, that it?s still happening using the latest version of PHP (release 4.0.1pl2 or CVS).
 [2000-07-26 01:12 UTC] waldschrott@php.net
Please verify, that it?s still happening using the latest version of PHP (release 4.0.1pl2 or CVS).
 [2000-07-26 01:15 UTC] waldschrott@php.net
This is a correction to Bug # 5210.  My email address and password are evidently not
enough to allow me to edit my earlier bug report.  Sorry about the seeming duplicate.

--------------------
Re: my fix in bug report 5210

Uh, no.  That will break on the BS2000.  It suppresses the compiler error on the Sequent
for the wrong reason, and leaves open the same problem in microtime.c.

After the patch diff from bug report 5210 is applied, line 98 in my_init.c should read

#if !defined(_OSD_POSIX) && !defined(_SEQUENT_)

instead of #ifdef _OSD_POSIX

Then, a similar change is needed in microtime.c, where line 117 should become

#if !defined(_OSD_POSIX) && !defined(_SEQUENT_)

as well, instead of #ifndef _OSD_POSIX

 [2000-07-26 01:26 UTC] waldschrott@php.net
this above comment has been placed here by accident
 [2000-08-20 02:35 UTC] sniper@php.net
No feedback from user.


--Jani
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Apr 20 01:01:28 2024 UTC