mk8570 has asked for the wisdom of the Perl Monks concerning the following question:

  • AIX 5.3 , 64 bit, Perl 5.8 64 bit.
  • I am trying to install XML::Parser and getting below error during make
  • /home/tech067/XML-Parser-2.36-mZQD6F>make
  • rm -f ../blib/arch/auto/XML/Parser/Expat/Expat.so
  • LD_RUN_PATH="" ld -b64 -bhalt:4 -bM:SRE -bI:/usr/opt/perl5/lib64/5.8.2
  • ld: 0711-317 ERROR: Undefined symbol: .XML_Parse
  • ld: 0711-317 ERROR: Undefined symbol: .XML_SetNamespaceDeclHandler
  • ld: 0711-317 ERROR: Undefined symbol: .XML_SetElementHandler
  • ld: 0711-317 ERROR: Undefined symbol: .XML_SetUnknownEncodingHandler
  • ld: 0711-317 ERROR: Undefined symbol: .XML_SetEndCdataSectionHandler
  • ld: 0711-317 ERROR: Undefined symbol: .XML_SetStartCdataSectionHandler
  • ld: 0711-317 ERROR: Undefined symbol: .XML_GetInputContext
  • ld: 0711-317 ERROR: Undefined symbol: .XML_GetCurrentByteCount
  • I have installed Expat 2.0.1 in /usr/local without an issues.
  • Can someone advise as to where is the make looking for these symbols ?
  • Thanks
    • Comment on make fails during XML::Parser installation

    Replies are listed 'Best First'.
    Re: make fails during XML::Parser installation
    by ambrus (Abbot) on Apr 28, 2009 at 15:01 UTC

      Maybe your system is configured like many distros are so that the dynamic linker (ld.so) does not look for libraries in /usr/local/lib. In that case, you don't get an error from the linker which still looks in that directory, but you get an error in runtime. I'm not sure if this is what your error means and also I can't give a really good advise on how to fix it because just adding /usr/local/lib to the ld.so path (by editing /etc/ld.so.conf and running ldconfig) can sometimes break existing programs which work only with the older libraries installed in /usr/lib.

    Re: make fails during XML::Parser installation
    by ELISHEVA (Prior) on Apr 28, 2009 at 03:48 UTC
      Your post would be much easier to read if the error message was broken up into individual lines. You can preserve separate lines in an error listing by surrounding it with <code>...</code> tags. They aren't just for code.

      For details, please see

      Best, beth

    Re: make fails during XML::Parser installation
    by Anonymous Monk on Apr 28, 2009 at 07:21 UTC
      Sage advice from 0711-317 ERROR: Undefined symbol: .XML_Parse
      You're going to have to be more specific if you want help. In particular, I need the exact commands you use to build both expat and XML-Parser, and anything else you're doing to the filesystem (ie moving/copying files around, etc).

      Also include version numbers for your working configuration, and whether or not there's a pre-existing system expat installation lying around (it looks like it).

        Here's some more information
      • Expat version 2.0.1
      • Commands used for expat installation
      • ./configure CFLAGS="+DD64"
      • make install
      • For Installting XML Parser
      • perl Makefile.PL EXPATLIBPATH=/usr/local/lib EXPATINCPATH=/usr/local/include
      • make ---- fails with undefined symbol
      • # perl -V Summary of my perl5 (revision 5.0 version 8 subversion 2) configuratio +n: Platform: osname=aix, osvers=5.2.0.0, archname=aix-thread-multi-64all uname='aix animals 2 5 000709cf4c00 ' config_args='' hint=previous, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemulti +plicity=de fine useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=define use64bitall=define uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc_r', ccflags ='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURC +E -qmaxmem =-1 -qnoansialias -DUSE_NATIVE_DLOPEN - +DNEED_PTHREAD_INIT -q64 -DUSE_64_BIT_ALL -q64', optimize='-O', cppflags='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem= +-1 -qnoans ialias -DUSE_NATIVE_DLOPEN -DNEED_PTHRE +AD_INIT' ccversion='5.0.2.0', gccversion='', gccosandvers='' intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=87654321 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8 ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', + lseeksize =8 alignbytes=8, prototype=define Linker and Libraries: ld='ld', ldflags ='-brtl -b64' libpth=/lib /usr/lib /usr/ccs/lib libs=-lbind -lnsl -ldbm -ldl -lld -lm -lcrypt -lpthreads -lc_r -lb +sd perllibs=-lbind -lnsl -ldl -lld -lm -lcrypt -lpthreads -lc_r -lbsd libc=/lib/libc.a, so=a, useshrplib=true, libperl=libperl.a gnulibc_version='' Dynamic Linking: dlsrc=dl_aix.xs, dlext=so, d_dlsymun=undef, ccdlflags='-bE:/usr/op +t/perl5/li b64/5.8.2/aix-thread-multi-64all/CORE/p +erl.exp' cccdlflags=' ', lddlflags='-b64 -bhalt:4 -bM:SRE -bI:$(PERL_INC)/p +erl.exp -b E:$(BASEEXT).exp -bnoentry -lpthreads - +lc_r' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY USE_ITHREADS USE_64_BIT_INT USE_6 +4_BIT_ALL USE_LARGE_FILES PERL_IMPLICIT_CONTEXT Locally applied patches: SUIDPERLIO1 - fix PERLIO_DEBUG buffer overflow (CAN-2005-0156) SPRINTF0 - fixes for sprintf formatting issues - CVE-2005-3962 REGCOMP0 - buffer overflow in regexp engine for UTF8 (CVE-2007 +-5116) Built under aix Compiled at Dec 6 2007 09:57:38 @INC: /usr/opt/perl5/lib64/5.8.2/aix-thread-multi-64all /usr/opt/perl5/lib64/5.8.2 /usr/opt/perl5/lib64/site_perl/5.8.2/aix-thread-multi-64all /usr/opt/perl5/lib64/site_perl/5.8.2 /usr/opt/perl5/lib64/site_perl .
          Please also show complete output from perl Makefile.PL ... and make