php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #17064 PHP + Sablotron will not load
Submitted: 2002-05-07 01:11 UTC Modified: 2002-05-07 01:52 UTC
From: leppert at insight dot rr dot com Assigned:
Status: Not a bug Package: XSLT related
PHP Version: 4.2.0 OS: Linux, kernel 2.4
Private report: No CVE-ID: None
 [2002-05-07 01:11 UTC] leppert at insight dot rr dot com
This bug prevents the use of Sablotron, via the PHP XSLT extension. Compiling PHP with Sablotron and XSLT support (--enable-xslt and --with-xslt-sablot) is successful, however, when one attemps to load the module into Apache, it does not load giving the following error:

Cannot load /usr/local/apache/libexec/libphp4.so into server: undefined symbol: __gxx_personality_v0
apachectl start: httpd could not be started

It does not appear to be compiler related as I tried it with GCC 2.95.3 and 3.0.4. This does not appear to be an isolated problem, as there have been several messages from others on USENET related to the problem.

Configure:

--with-mysql --with-apxs --enable-xslt --with-xslt-sablot

Versions:

Apache: 1.3.24
Sablotron: 0.90
Expat: 1.95.2
PHP: 4.2.0 or 4.1.2
GCC: 2.95.3 or 3.0.4


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-05-07 01:15 UTC] rasmus@php.net
Well, it compiled cleanly for me with the same versions of everything.  Could you point us at another report of this same thing from someone else?
 [2002-05-07 01:24 UTC] leppert at insight dot rr dot com
Yeah, it compiled, but did it load?

Here is a google link:

http://groups.google.com/groups?hl=en&safe=off&threadm=FWqB8.27804%24G%253.8933359%40typhoon.columbus.rr.com&rnum=2&prev=/groups%3Fq%3D__gxx_personality_v0%26hl%3Den%26safe%3Doff%26sa%3DG%26scoring%3Dd

There are a few more, do a google search. 

As a side note, I installed everything from source. Anything I might have done wrong?

Thanks!
 [2002-05-07 01:35 UTC] rasmus@php.net
Yes, of course it loaded, and I don't see anybody else at the URL you provided with your problem.  They seem to be just normal localized flailing trying to build PHP.
 [2002-05-07 01:42 UTC] rasmus@php.net
Ok, I did a bit of google searching as you suggested.  As far as I can tell __gxx_personality_v0 is a gcc3.0 symbol.  I bet you are mixing object files or libraries compiled with gcc3 with stuff compiled with gcc2.95.  The fact that you said you tried with both is a good indication that you may have a mixture of both on your system.  It is definitely not a common PHP building problem.  If you can somehow prove otherwise, re-open.
 [2002-05-07 01:47 UTC] leppert at insight dot rr dot com
OK, what do you suggest? I tried recompiling expat, and all the others...
 [2002-05-07 01:52 UTC] rasmus@php.net
No idea, try it on a clean box.  I have no idea which of the many libraries that are involved here may have been compiled with gcc3.  You could try forcing linking against the gcc3 version of libGLU.so, but that might cause weird side-effects.  We don't really have the bandwidth to chase down one-off misconfigured environments here.
 [2003-01-24 01:51 UTC] prakart at ksc dot net
This problem is solved successful.
I found at http://archive.gingerall.cz/archives/public/sablot2003/msg00083.html
### 
You can test that by use 
1. Apache (httpd-2.0.44.tar.gz)
2. MySQL (mysql-max-3.23.54b-pc-linux-i686.tar.gz)
2. PHP (php-4.3.0.tar.gz)
3. xslt (Sablot-0.97.tar.gz)
4. expat (expat-1.95.5.tar.gz)
5. libxml (libxml2-2.5.1.tar.gz)
6. mm (mm-1.2.2.tar.gz)
7. zlib (zlib-1.1.4.tar.gz)
8. curl (curl-7.10.3.tar.gz)

Install Step 
1. Install MySQL, xslt, expat, libxml, mm, zlib, curl
2. Install Apache 
# ./configure --prefix=/usr/local/apache \
              --enable-module=most \
              --enable-shared=max
# make
# make install
# make clean

3. Install PHP
# ./configure --with-mysql=/usr/local/mysql --with-apxs2=/var/www/apache2/bin/apxs --enable-xslt --with-xslt-sablot=/usr/local/sablot --with-dom=/usr/local/libxml --with-zlib --with-expat-dir=/usr/local/expat --with-curl

You will get Makefile
**** You must edit Makefile by add -lstdc++ at EXTRA_LDFLAGS   line.

Ex:
open up the Makefile and adjust the EXTRA_LDFLAGS 
line.  mine was originally:
EXTRA_LDFLAGS = -avoid-version -module -L/opt/lib
I changed it to
EXTRA_LDFLAGS = -avoid-version -module -L/opt/lib -lstdc++

#make
#make install
#cp php.ini-dist /usr/local/lib/php.ini

4. Edit httpd.conf
-Add this line at Dynamic Shared Object (DSO) Support : 
LoadModule php4_module modules/libphp4.so
*** Don't type LoadModule php4_module  modules/libphp4.so
::: this line have two spaces between php4_module with modules/libphp4.so that apache bugs 

-Add this line at AddType :
AddType application/x-httpd-php .php .php3
AddType application/x-httpd-php-source .phps

5. Start or Restart apache2 

::: I hope this info useful to others.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Nov 07 12:01:30 2024 UTC