Bug #16970 Updated: Unable to load libphp_java.so - core_globals not found
| From: | hholzgra@php.net | 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