Bug #16970 Updated: Unable to load libphp_java.so - core_globals not found

From: Date: Fri, 21 Jun 2002 17:23:38 +0000
Subject: Bug #16970 Updated: Unable to load libphp_java.so - core_globals not found
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-11707@lists.php.net to get a copy of this message
ID: 16970 Updated by: hholzgra@php.net Reported By: Daniel.Schneider@NOSPAM.tecfa.unige.ch -Status: Open +Status: Closed Bug Type: Java related Operating System: Solaris 8 PHP Version: 4.2.0 New Comment: it is a linker issue triggerd by the --enable-versioning configure option do *not* use this option unless you have to have php 3 & 4 modules loaded within the same webserver solaris and gnu linkers seem to have slightly different visibility rules regarding shared objects loading other shared objects by configuring with --enable-versioning you reduce the symbols exported by the php apache module, so that you can load php3 and php4 modules into the same webserver without conflicts the GNU linker restricts symbol visibility only towards whatever a .so is loaded into, not what itself loads later while the solaris linker seems to limit visibility in both directions so that php extensions do not find the symbols they need from the php module itself when loaded Previous Comments: ------------------------------------------------------------------------ [2002-05-03 09:03:53] Daniel.Schneider@NOSPAM.tecfa.unige.ch I managed to get it work now, but don't know really why. Basically: - I installed/compiled all gnu tools (binutils 2.12, autoconf, automake all latest versions) - added the -with-gnu-ld option to php's configure. - recompiled apache too with the same gcc (3.0.4) Can't understand why it works now, since 'core_globals' is still missing from libphp_java.so if I look at it from 'ldd -d libphp_java.so' I also tried to compile with the workshop 6.0 update 2 compiler and got the same problem ------------------------------------------------------------------------ [2002-05-02 12:25:48] Daniel.Schneider@NOSPAM.tecfa.unige.ch Configuration information: -------------------------- * System: Solaris 8 * PHP config: ./configure --prefix=/usr/local --enable-versioning --enable-libgcc --with-apxs=/usr/local/apache/bin/apxs --with-zlib=/usr/local --enable-bcmath --enable-debug --enable-magic-quotes --with-gdbm --with-mcrypt --with-mhash --with-mysql --with-ldap=/usr/local/openldap --with-pdflib --with-xml --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-zlib-dir=/usr/local --with-gd --enable-xslt --with-xslt-sablot --with-dom=/usr/local/lib --with-java * Compiler and Java Versions: I tried several combinations gcc 2.95.3, gcc 3.0.4 java 1.3.1, java 1.4 * Problem: unreferenced symbol in libphp_java.so ldd -d /usr/local/lib/php/extensions/debug-non-zts-20010901/libphp_java.so symbol not found: core_globals (/usr/local/lib/php/extensions/debug-non-zts-20010901/libphp_java.so) Or seen from the apache error log (the php module loads and runs fine otherwise) PHP Warning: Unable to load dynamic library '/usr/local/lib/php/extensions/debug-non-zts-20010901/libphp_java.so' - ld.so.1: /usr/local/apache/bin/httpd: fatal: relocation error: file /usr/local/lib/php/extensions/debug-non-zts-20010901/libphp_java.so: symbol core_globals: referenced symbol not found in Unknown on line 0 Sorry I am not a C programmer and can't hint at a solution. Certainly libphp_java.so is NOT looking for some other dynamic library it can't find ... I know that much :) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=16970&edit=1

« previous php.bugs (#11707) next »