[prev in list] [next in list] [prev in thread] [next in thread] 

List:       perl-xml
Subject:    Re: XML::Xerces: DynaLoader.pm chokes on "undefined symbol"
From:       Jonathan Stowe <jns () gellyfish ! com>
Date:       2004-04-26 11:08:56
Message-ID: 1082977736.2792.27.camel () localhost
[Download RAW message or body]

On Fri, 2004-04-23 at 01:03, kynn@panix.com wrote:
> From: Jonathan Stowe <jns@gellyfish.com>
> Date: Thu, 22 Apr 2004 08:45:04 +0100
> 
> On Wed, 2004-04-21 at 18:21, kynn@panix.com wrote:
> > 
> > I'm trying to install XML::Xerces via the usual
> > 
> > perl Makefile.PL
> > make
> > make test
> > make install
> > 
> > I'm getting wholesale failure at the "make test" stage, with error
> > messages such as this:
> > 
> > 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: _Q211xercesc_2_316XMLPlatformUtils.fgMemoryManager at \
> > /opt/lib/perl5/5.8.3/i686-linux/DynaLoader.pm line 229. at \
> > /home/jones/.cpan/build/XML-Xerces-2.3.0-4/blib/lib/XML/Xerces.pm line 7 \
> > Compilation failed in require at t/AttributeList.t line 11. 
> > It is not *entirely* clear to me why I'm getting this undefined
> > "symbol error" now, but not during the earlier "make" stage (which
> > proceeded without a hitch, as did "perl Makefile.PL").
> > 
> > FWIW, the problematic symbol
> > _Q211xercesc_2_316XMLPlatformUtils.fgMemoryManager is mentioned
> > both in ./blib/arch/auto/XML/Xerces/Xerces.so and in
> > ./Xerces.o.
> 
> This looks like you are getting caught by C++ name mangling for some
> reason...
> 
> 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).
> 
> But once I tried "make test" the errors returned:
> 
> 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: __gxx_personality_v0 at \
> /opt/lib/perl5/5.8.3/i686-linux/DynaLoader.pm line 229. 
> 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.
> 

What compiler was your perl compiled with - the output of 'perl -V' will
tell you.  Also if you have two versions of gcc on your machine you have
to be sure that you are getting the correct libs and includes for both -
when you downloaded the new gcc where did you install it?


/J\

_______________________________________________
Perl-XML mailing list
Perl-XML@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic