You are viewing a plain text version of this content. The canonical link for it is here.
Posted to p-dev@xerces.apache.org by "Palisetti, Krishna_Mohan" <pa...@deshaw.com> on 2005/02/21 15:18:50 UTC

Problem building XML::Xerces v2.5.0

Hi,
	 I am trying to build XML::Xerces for perl 5.6.1 and the build
has been failing with the following error messages.

/proj/lang/forte-6.2/SUNWspro/bin/CC -c  -I. -IHandler
-I/u/palisetk/tmp/xerces-c-src_2_5_0/include -w
-DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER
-DXML_USE_PTHREADS -DXML_USE_NETACCESSOR_SOCKET -D_REENTRANT -O
-DVERSION=\"2.5.0-0\" -DXS_VERSION=\"2.5.0-0\" -KPIC
"-I/usr/local/lib/perl5/5.6.1/sun4-solaris/CORE"   Xerces.cpp
"/u/palisetk/tmp/xerces-c-src_2_5_0/include/xercesc/internal/XSerializeE
ngine.hpp", line 477: Error: Multiple declaration for
xercesc_2_5::XSerializeEngine::operator<<(char).
"/u/palisetk/tmp/xerces-c-src_2_5_0/include/xercesc/internal/XSerializeE
ngine.hpp", line 497: Error: Multiple declaration for
xercesc_2_5::XSerializeEngine::operator>>(char&).
2 Error(s) detected.

Given below are the steps that I have followed.

1. built Xerces-2.5 from
source(http://archive.apache.org/dist/xml/xerces-c/Xerces-C_2_5_0/xerces
-c-src_2_5_0.tar.gz) to ~/tmp/xerces-c-src_2_5_0
2. export XERCESCROOT=~/tmp/xerces-c-src_2_5_0
3. cd ~/tmp/XML-Xerces-2.5.0-0 . (this is the dir where I have the
XML::Xerces source)
3. perl Makefile.PL PREFIX=~/my/lib
CC=/proj/lang/forte-6.2/SUNWspro/bin/CC
4. gmake

======Make transcript=====================

palisetk@gbo3.nyc:~/tmp/XML-Xerces-2.5.0-0$ gmake
cp Xerces.pm blib/lib/XML/Xerces.pm
gmake -C Handler static
gmake[1]: Entering directory
`/u/palisetk/tmp/XML-Xerces-2.5.0-0/Handler'
CC -c  -I. -IHandler -I/u/palisetk/tmp/xerces-c-src_2_5_0/include
-I/usr/local/include -I/usr/include -I/usr/local/gnu/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O   -DVERSION=\"\"
-DXS_VERSION=\"\" -KPIC "-I/usr/local/lib/perl5/5.6.1/sun4-solaris/CORE"
PerlCallbackHandler.cpp
CC -c  -I. -IHandler -I/u/palisetk/tmp/xerces-c-src_2_5_0/include
-I/usr/local/include -I/usr/include -I/usr/local/gnu/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O   -DVERSION=\"\"
-DXS_VERSION=\"\" -KPIC "-I/usr/local/lib/perl5/5.6.1/sun4-solaris/CORE"
PerlContentCallbackHandler.cpp
"PerlContentCallbackHandler.cpp", line 66: Warning: String literal
converted to char* in initialization.
"PerlContentCallbackHandler.cpp", line 318: Warning: String literal
converted to char* in initialization.
2 Warning(s) detected.
CC -c  -I. -IHandler -I/u/palisetk/tmp/xerces-c-src_2_5_0/include
-I/usr/local/include -I/usr/include -I/usr/local/gnu/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O   -DVERSION=\"\"
-DXS_VERSION=\"\" -KPIC "-I/usr/local/lib/perl5/5.6.1/sun4-solaris/CORE"
PerlDocumentCallbackHandler.cpp
"PerlDocumentCallbackHandler.cpp", line 57: Warning: String literal
converted to char* in initialization.
"PerlDocumentCallbackHandler.cpp", line 295: Warning: String literal
converted to char* in initialization.
2 Warning(s) detected.
CC -c  -I. -IHandler -I/u/palisetk/tmp/xerces-c-src_2_5_0/include
-I/usr/local/include -I/usr/include -I/usr/local/gnu/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O   -DVERSION=\"\"
-DXS_VERSION=\"\" -KPIC "-I/usr/local/lib/perl5/5.6.1/sun4-solaris/CORE"
PerlErrorCallbackHandler.cpp
"PerlErrorCallbackHandler.cpp", line 53: Warning: String literal
converted to char* in initialization.
"PerlErrorCallbackHandler.cpp", line 82: Warning: String literal
converted to char* in initialization.
"PerlErrorCallbackHandler.cpp", line 114: Warning: String literal
converted to char* in initialization.
3 Warning(s) detected.
rm -rf ../blib/arch/auto/Handler/Handler.a
/usr/ccs/bin/ar cr ../blib/arch/auto/Handler/Handler.a
PerlCallbackHandler.o PerlContentCallbackHandler.o
PerlDocumentCallbackHandler.o PerlErrorCallbackHandler.o && :
../blib/arch/auto/Handler/Handler.a
chmod 755 ../blib/arch/auto/Handler/Handler.a
gmake[1]: Leaving directory `/u/palisetk/tmp/XML-Xerces-2.5.0-0/Handler'
gmake[1]: Entering directory
`/u/palisetk/tmp/XML-Xerces-2.5.0-0/Handler'
gmake[1]: Leaving directory `/u/palisetk/tmp/XML-Xerces-2.5.0-0/Handler'
/proj/lang/forte-6.2/SUNWspro/bin/CC -c  -I. -IHandler
-I/u/palisetk/tmp/xerces-c-src_2_5_0/include -w
-DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER
-DXML_USE_PTHREADS -DXML_USE_NETACCESSOR_SOCKET -D_REENTRANT -O
-DVERSION=\"2.5.0-0\" -DXS_VERSION=\"2.5.0-0\" -KPIC
"-I/usr/local/lib/perl5/5.6.1/sun4-solaris/CORE"   Xerces.cpp
"/u/palisetk/tmp/xerces-c-src_2_5_0/include/xercesc/internal/XSerializeE
ngine.hpp", line 477: Error: Multiple declaration for
xercesc_2_5::XSerializeEngine::operator<<(char).
"/u/palisetk/tmp/xerces-c-src_2_5_0/include/xercesc/internal/XSerializeE
ngine.hpp", line 497: Error: Multiple declaration for
xercesc_2_5::XSerializeEngine::operator>>(char&).
2 Error(s) detected.
gmake: *** [Xerces.o] Error 2

======== code snippet from from XSerializeEngine.hpp ============
 473             XSerializeEngine& operator<<(long);
   474             XSerializeEngine& operator<<(unsigned long);
   475             XSerializeEngine& operator<<(float);
   476             XSerializeEngine& operator<<(double);
   477             XSerializeEngine& operator<<(bool);
   478
   479      /***
   480        *
   481        *  Extraction operators for
   482        *     . basic Xerces data types
   483        *     . built-in types
   484        *
   485        ***/
   486             XSerializeEngine& operator>>(XMLByte&);
   487             XSerializeEngine& operator>>(XMLCh&);
   488
   489             XSerializeEngine& operator>>(char&);
   490             XSerializeEngine& operator>>(short&);
   491             XSerializeEngine& operator>>(int&);
   492             XSerializeEngine& operator>>(unsigned int&);
   493             XSerializeEngine& operator>>(long&);
   494             XSerializeEngine& operator>>(unsigned long&);
   495             XSerializeEngine& operator>>(float&);
   496             XSerializeEngine& operator>>(double&);
   497             XSerializeEngine& operator>>(bool&);

======= perl info. ============
palisetk@gbo3.nyc:~/tmp/xerces_current$ perl -V
Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
  Platform:
    osname=solaris, osvers=2.6, archname=sun4-solaris
    uname='sunos sys2.nyc.deshaw.com 5.6 generic_105181-26 sun4u sparc
sunw,ultra-2 '
    config_args='-f config.sh -s'
    hint=previous, useposix=true, d_sigaction=define
    usethreads=undef use5005threads=undef useithreads=undef
usemultiplicity=undef
    useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
  Compiler:
    cc='cc', ccflags ='-I/usr/local/include -I/usr/include
-I/usr/local/gnu/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O',
    cppflags='-I/usr/local/include -I/usr/include
-I/usr/local/gnu/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
    ccversion='Sun WorkShop 6 update 2 C 5.3 2001/05/15', gccversion='',
gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
    alignbytes=8, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='cc', ldflags ='-L/usr/local/lib -L/usr/lib -L/usr/local/gnu/lib
-L/usr/ccs/lib '
    libpth=/usr/local/lib /usr/lib /usr/ccs/lib /usr/local/gnu/lib
    libs=-lsocket -lresolv -lnsl -lgdbm -ldl -lm -lc
    perllibs=-lsocket -lresolv -lnsl -ldl -lm -lc
    libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
    cccdlflags='-KPIC', lddlflags='-G -L/usr/local/lib -L/usr/lib
-L/usr/local/gnu/lib -L/usr/ccs/lib'
 
 
Characteristics of this binary (from libperl):
  Compile-time options: USE_LARGE_FILES
  Built under solaris
  Compiled at Oct 16 2002 02:51:45
  %ENV:
    PERL5LIB="/u/palisetk/staging/lib"
  @INC:
    /u/palisetk/staging/lib
    /usr/local/lib/perl5/5.6.1/sun4-solaris
    /usr/local/lib/perl5/5.6.1
    /usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris
    /usr/local/lib/perl5/site_perl/5.6.1
    /prod/tools/packages/lib/perl5/5.6.1/sun4-solaris
    /prod/tools/packages/lib/perl5/5.6.1
    .
======CC version info. =============
palisetk@gbo3.nyc:~/tmp/xerces-c-src_2_5_0/scripts$ CC -V
CC: Sun WorkShop 6 update 2 C++ 5.3 2001/05/15
 
Any help on this is much appreciated.

Thanks,
Mohan,



---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-p-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-p-dev-help@xml.apache.org


Re: Problem building XML::Xerces v2.5.0

Posted by "Jason E. Stewart" <ja...@openinformatics.com>.
"Palisetti, Krishna_Mohan" <pa...@deshaw.com> writes:

> "/u/palisetk/tmp/xerces-c-src_2_5_0/include/xercesc/internal/XSerializeE
> ngine.hpp", line 477: Error: Multiple declaration for
> xercesc_2_5::XSerializeEngine::operator<<(char).
> "/u/palisetk/tmp/xerces-c-src_2_5_0/include/xercesc/internal/XSerializeE
> ngine.hpp", line 497: Error: Multiple declaration for
> xercesc_2_5::XSerializeEngine::operator>>(char&).
> 2 Error(s) detected.

>    477             XSerializeEngine& operator<<(bool);

>    497             XSerializeEngine& operator>>(bool&);

Notice that it's declaring errors for operator>>(char&), but the
header files actually define the operartor for bool - this is a *very*
common problem with old Perl's - they were built with something aking
to:

  #define bool char

So you will get this compile error.

If you modify Xerces.cpp around line 826, you should see a huge number
of #ifdef FOO => #undef FOO, just add this:

  #ifdef bool
    #undef bool
  #endif /* bool */

and try compiling again. 

Perl 5.6.1 is seriously old - I would consider getting it upgraded. 

Cheers,
jas.

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-p-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-p-dev-help@xml.apache.org