<[EMAIL PROTECTED]> writes:

> OK, here's an update.  I finally got Xerces 2.3.0 to compile
> (g++-2.95 was throwing an internal compiler error, but g++-3.0
> managed to do the job).  After installing this newly compiled
> version of Xerces, I attempted to install XML::Xerces.  As before
> "perl Makefile.PL" and "make" went without a hitch (the compiler
> used by make was the same as I used to compile libxerces,
> gcc-3.0/g++-3.0).

Yes, I believe you'll need gcc-3


> I get the same undefined-symbol-type error as before, but the details
> are different.  Before, the "undefined symbol" was
> _Q211xercesc_2_316XMLPlatformUtils.fgMemoryManager; now it's
> __gxx_personality_v0.
>
> I have three files in /usr/lib that mention __gxx_personality_v0:
>
>   /usr/lib/libstdc++.so.3.0.4
>   /usr/lib/gcc-lib/i386-linux/3.0.4/libstdc++.a
>   /usr/lib/libstdc++.so.5.0.5
>
> ...so I tried re-compiling Xerces (for the 973,526th time), 

sorry... C++ and perl are not always a happy couple... I've made lots
of efforts to make XML-Xerces much more plug-and-play, but as a
volunteer, I only get limited time to work on it...

> with the
> additional linker flag -lstdc++.  After installing this new Xerces,
> and re-making XML::Xerces, once again, at the "make test" stage I
> get:

>   Can't load 
> '/home/jones/.cpan/build/XML-Xerces-2.3.0-4/blib/arch/auto/XML/Xerces/Xerces.so' for 
> module XML::Xerces: 
> /home/jones/.cpan/build/XML-Xerces-2.3.0-4/blib/arch/auto/XML/Xerces/Xerces.so: 
> undefined symbol: _ZN19PerlCallbackHandler16set_callback_objEP2sv at 
> /opt/lib/perl5/5.8.3/i686-linux/DynaLoader.pm line 229.
>
> The good news (maybe) is that the "undefined symbol:
> __gxx_personality_v0" error message is gone.  The bad news is that it
> has been replaced by an entirely novel one "undefined symbol:
> _ZN19PerlCallbackHandler16set_callback_objEP2sv".

Very strange that gcc isn't using the correct libstdc++
automatically... I don't know enough about the gcc c++ compilation
stuff to explain this, sorry.

Here's what I get for the modules:

~/work/xml-xerces/perl $ nm blib/arch/auto/XML/Xerces/Xerces.so |grep 
PerlCallbackHandler.*set_callback_obj
00206b64 T _ZN19PerlCallbackHandler16set_callback_objEP2sv
001edf00 T _wrap_PerlCallbackHandler_set_callback_obj
~/work/xml-xerces/perl $ nm -C blib/arch/auto/XML/Xerces/Xerces.so |grep 
PerlCallbackHandler.*set_callback_obj
00206b64 T PerlCallbackHandler::set_callback_obj(sv*)
001edf00 T _wrap_PerlCallbackHandler_set_callback_obj
~/work/xml-xerces/perl $ nm blib/arch/auto/Handler/Handler.a  |grep 
PerlCallbackHandler.*set_callback_obj
000004f0 T _ZN19PerlCallbackHandler16set_callback_objEP2sv
         U _ZN19PerlCallbackHandler16set_callback_objEP2sv
         U _ZN19PerlCallbackHandler16set_callback_objEP2sv
~/work/xml-xerces/perl $ nm -C blib/arch/auto/Handler/Handler.a |grep 
PerlCallbackHandler.*set_callback_obj
000004f0 T PerlCallbackHandler::set_callback_obj(sv*)
         U PerlCallbackHandler::set_callback_obj(sv*)
         U PerlCallbackHandler::set_callback_obj(sv*)

See what your modules are producing. 

One thing you could try is just running one of the samples:

  perl samples/DOMCount.pl samples/personal.xml

and see what happens. 'make test' runs in an environment called
Test::Harness that forces a library to load *all* it's symbols at load
time (intstead of loading them only when it needs them which is the
default). So sometimes make test will give undefined symbol errors
that actually don't prevent you from running real programs. I'd like
to test this just in case it gives us more ideas.

Cheers,
jas.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to