Operating System - HP-UX
1753331 Members
5162 Online
108792 Solutions
New Discussion юеВ

Re: (Perl) XML::LibXML compilation error

 
Samuel PHAN
New Member

(Perl) XML::LibXML compilation error

Hi, I'm trying to install the perl lib XML::LibXML that relies on libxml2.

Here are my environement variables & so:

% perl --version

This is perl, v5.10.1 (*) built for PA-RISC2.0

% /usr/local/bin/xml2-config --version
2.7.3

% echo $LD_LIBRARY_PATH
/usr/lib:/usr/local/lib:[...]

% echo $SHLIB_PATH
[...]:/usr/lib:[...]:/usr/lib:/usr/local/lib:[...]

% ll /usr/local/lib/libxml2*
-rw-r--r-- 1 root sys 1886718 Jan 27 2009 /usr/local/lib/libxml2.a
-rw-r--r-- 1 root sys 822 Jan 27 2009 /usr/local/lib/libxml2.la
-r-xr-xr-x 1 root sys 2002944 Jan 27 2009 /usr/local/lib/libxml2.sl*

% ll /usr/local/include/libxml2/libxml
total 1200
-rw-r--r-- 1 root sys 3277 Jan 27 2009 DOCBparser.h
-rw-r--r-- 1 root sys 9217 Jan 27 2009 HTMLparser.h
-rw-r--r-- 1 root sys 3685 Jan 27 2009 HTMLtree.h
-rw-r--r-- 1 root sys 4412 Jan 27 2009 SAX.h
-rw-r--r-- 1 root sys 4944 Jan 27 2009 SAX2.h
-rw-r--r-- 1 root sys 2766 Jan 27 2009 c14n.h
-rw-r--r-- 1 root sys 4958 Jan 27 2009 catalog.h
-rw-r--r-- 1 root sys 5159 Jan 27 2009 chvalid.h
-rw-r--r-- 1 root sys 5181 Jan 27 2009 debugXML.h
-rw-r--r-- 1 root sys 1582 Jan 27 2009 dict.h
-rw-r--r-- 1 root sys 7931 Jan 27 2009 encoding.h
-rw-r--r-- 1 root sys 4672 Jan 27 2009 entities.h
-rw-r--r-- 1 root sys 14363 Jan 27 2009 globals.h
-rw-r--r-- 1 root sys 6567 Jan 27 2009 hash.h
-rw-r--r-- 1 root sys 3422 Jan 27 2009 list.h
-rw-r--r-- 1 root sys 3347 Jan 27 2009 nanoftp.h
-rw-r--r-- 1 root sys 2018 Jan 27 2009 nanohttp.h
-rw-r--r-- 1 root sys 39058 Jan 27 2009 parser.h
-rw-r--r-- 1 root sys 16573 Jan 27 2009 parserInternals.h
-rw-r--r-- 1 root sys 2586 Jan 27 2009 pattern.h
-rw-r--r-- 1 root sys 5954 Jan 27 2009 relaxng.h
-rw-r--r-- 1 root sys 26023 Jan 27 2009 schemasInternals.h
-rw-r--r-- 1 root sys 4393 Jan 27 2009 schematron.h
-rw-r--r-- 1 root sys 1852 Jan 27 2009 threads.h
-rw-r--r-- 1 root sys 36628 Jan 27 2009 tree.h
-rw-r--r-- 1 root sys 2664 Jan 27 2009 uri.h
-rw-r--r-- 1 root sys 13814 Jan 27 2009 valid.h
-rw-r--r-- 1 root sys 2779 Jan 27 2009 xinclude.h
-rw-r--r-- 1 root sys 5051 Jan 27 2009 xlink.h
-rw-r--r-- 1 root sys 10448 Jan 27 2009 xmlIO.h
-rw-r--r-- 1 root sys 3992 Jan 27 2009 xmlautomata.h
-rw-r--r-- 1 root sys 36664 Jan 27 2009 xmlerror.h
-rw-r--r-- 1 root sys 3703 Jan 27 2009 xmlexports.h
-rw-r--r-- 1 root sys 5972 Jan 27 2009 xmlmemory.h
-rw-r--r-- 1 root sys 1171 Jan 27 2009 xmlmodule.h
-rw-r--r-- 1 root sys 12551 Jan 27 2009 xmlreader.h
-rw-r--r-- 1 root sys 5458 Jan 27 2009 xmlregexp.h
-rw-r--r-- 1 root sys 2260 Jan 27 2009 xmlsave.h
-rw-r--r-- 1 root sys 6198 Jan 27 2009 xmlschemas.h
-rw-r--r-- 1 root sys 4893 Jan 27 2009 xmlschemastypes.h
-rw-r--r-- 1 root sys 5466 Jan 27 2009 xmlstring.h
-rw-r--r-- 1 root sys 9993 Jan 27 2009 xmlunicode.h
-rw-r--r-- 1 root sys 7608 Jan 27 2009 xmlversion.h
-rw-r--r-- 1 root sys 21107 Jan 27 2009 xmlwriter.h
-rw-r--r-- 1 root sys 16199 Jan 27 2009 xpath.h
-rw-r--r-- 1 root sys 19448 Jan 27 2009 xpathInternals.h
-rw-r--r-- 1 root sys 3411 Jan 27 2009 xpointer.h

Here is my error during compilation:

% perl Makefile.PL DEBUG=1
enable native perl UTF8
running xml2-config...xml2-config --version
xml2-config --libs
xml2-config --cflags
ok (2.7.3)
looking for -lxml2... /opt/perl_5.10.1/HP-UX/B.11.11/pa-risc/64b/bin/perl Makefile.PL 'INC=-I/usr/local/include/libxml2' 'LIBS=-L/usr/local/lib -lxml2 -lz -lpthread -liconv -lm' 'DEFINE= -DHAVE_UTF8'
INC = -I/usr/local/include/libxml2
LIBS = -L/usr/local/lib -lxml2 -lz -lpthread -liconv -lm
DEFINE = -DHAVE_UTF8
Have /opt/perl_5.10.1/HP-UX/B.11.11/pa-risc/64b/lib/perl5/5.10.1/PA-RISC2.0
Want /home/OPENSOURCE/PERL/5.10.1/HP-UX/B.11.11/pa-risc/64b/lib/perl5/5.10.1/PA-RISC2.0
Your perl and your Config.pm seem to have different ideas about the
architecture they are running on.
Perl thinks: [PA-RISC2.0]
Config says: [PA-RISC2.0]
This may or may not cause problems. Please check your installation of perl
if you have problems building this extension.
Writing Makefile for Conftest
gmake test 'OTHERLDFLAGS='
cp Conftest.pm blib/lib/Conftest.pm
/opt/perl_5.10.1/HP-UX/B.11.11/pa-risc/64b/bin/perl /opt/perl_5.10.1/HP-UX/B.11.11/pa-risc/64b/lib/perl5/5.10.1/ExtUtils/xsubpp -typemap /home/OPENSOURCE/PERL/5.10.1/HP-UX/B.11.11/pa-risc/64b/lib/perl5/5.10.1/ExtUtils/typemap Conftest.xs > Conftest.xsc && mv Conftest.xsc Conftest.c
cc -c -I/usr/local/include/libxml2 -Ae -D_HPUX_SOURCE -Wl,+vnocompatwarnings -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 +O2 +Onolimit -DVERSION=\"1\" -DXS_VERSION=\"1\" +Z "-I/home/OPENSOURCE/PERL/5.10.1/HP-UX/B.11.11/pa-risc/64b/lib/perl5/5.10.1/PA-RISC2.0/CORE" -DHAVE_UTF8 Conftest.c
Running Mkbootstrap for Conftest ()
chmod 644 Conftest.bs
rm -f blib/arch/auto/Conftest/Conftest.sl
LD_RUN_PATH="/usr/local/lib:/lib" /usr/bin/ld -b +vnocompatwarnings -L/usr/local/lib Conftest.o -o blib/arch/auto/Conftest/Conftest.sl \
-L/usr/local/lib -lxml2 -lz -lpthread -liconv -lm \

chmod 755 blib/arch/auto/Conftest/Conftest.sl
cp Conftest.bs blib/arch/auto/Conftest/Conftest.bs
chmod 644 blib/arch/auto/Conftest/Conftest.bs
PERL_DL_NONLAZY=1 /opt/perl_5.10.1/HP-UX/B.11.11/pa-risc/64b/bin/perl "-Iblib/lib" "-Iblib/arch" test.pl
1..1
# Running under perl version 5.010001 for hpux
# Current time local: Mon Sep 20 16:17:34 2010
# Current time GMT: Mon Sep 20 14:17:34 2010
# Using Test.pm version 1.25_02
/usr/lib/dld.sl: Can't open shared library: libiconv.sl
/usr/lib/dld.sl: No such file or directory
Can't load 'blib/arch/auto/Conftest/Conftest.sl' for module Conftest: No such file or directory at /opt/perl_5.10.1/HP-UX/B.11.11/pa-risc/64b/lib/perl5/5.10.1/PA-RISC2.0/DynaLoader.pm line 200.
at test.pl line 2
Compilation failed in require at test.pl line 2.
BEGIN failed--compilation aborted at test.pl line 2.
not ok 1
# Failed test 1 in test.pl at line 1
# test.pl line 1 is: use Test; BEGIN { plan tests => 1; } END { ok($loaded) }
gmake: *** [test_dynamic] Error 2
system call to 'gmake test 'OTHERLDFLAGS='' failed at Makefile.PL line 470.
no
looking for -llibxml2... /opt/perl_5.10.1/HP-UX/B.11.11/pa-risc/64b/bin/perl Makefile.PL 'INC=-I/usr/local/include/libxml2' 'LIBS=-L/usr/local/lib -lxml2 -lz -lpthread -liconv -lm' 'DEFINE= -DHAVE_UTF8'
INC = -I/usr/local/include/libxml2
LIBS = -L/usr/local/lib -lxml2 -lz -lpthread -liconv -lm
DEFINE = -DHAVE_UTF8
Have /opt/perl_5.10.1/HP-UX/B.11.11/pa-risc/64b/lib/perl5/5.10.1/PA-RISC2.0
Want /home/OPENSOURCE/PERL/5.10.1/HP-UX/B.11.11/pa-risc/64b/lib/perl5/5.10.1/PA-RISC2.0
Your perl and your Config.pm seem to have different ideas about the
architecture they are running on.
Perl thinks: [PA-RISC2.0]
Config says: [PA-RISC2.0]
This may or may not cause problems. Please check your installation of perl
if you have problems building this extension.
Writing Makefile for Conftest
gmake test 'OTHERLDFLAGS='
cp Conftest.pm blib/lib/Conftest.pm
/opt/perl_5.10.1/HP-UX/B.11.11/pa-risc/64b/bin/perl /opt/perl_5.10.1/HP-UX/B.11.11/pa-risc/64b/lib/perl5/5.10.1/ExtUtils/xsubpp -typemap /home/OPENSOURCE/PERL/5.10.1/HP-UX/B.11.11/pa-risc/64b/lib/perl5/5.10.1/ExtUtils/typemap Conftest.xs > Conftest.xsc && mv Conftest.xsc Conftest.c
cc -c -I/usr/local/include/libxml2 -Ae -D_HPUX_SOURCE -Wl,+vnocompatwarnings -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 +O2 +Onolimit -DVERSION=\"1\" -DXS_VERSION=\"1\" +Z "-I/home/OPENSOURCE/PERL/5.10.1/HP-UX/B.11.11/pa-risc/64b/lib/perl5/5.10.1/PA-RISC2.0/CORE" -DHAVE_UTF8 Conftest.c
Running Mkbootstrap for Conftest ()
chmod 644 Conftest.bs
rm -f blib/arch/auto/Conftest/Conftest.sl
LD_RUN_PATH="/usr/local/lib:/lib" /usr/bin/ld -b +vnocompatwarnings -L/usr/local/lib Conftest.o -o blib/arch/auto/Conftest/Conftest.sl \
-L/usr/local/lib -lxml2 -lz -lpthread -liconv -lm \

chmod 755 blib/arch/auto/Conftest/Conftest.sl
cp Conftest.bs blib/arch/auto/Conftest/Conftest.bs
chmod 644 blib/arch/auto/Conftest/Conftest.bs
PERL_DL_NONLAZY=1 /opt/perl_5.10.1/HP-UX/B.11.11/pa-risc/64b/bin/perl "-Iblib/lib" "-Iblib/arch" test.pl
1..1
# Running under perl version 5.010001 for hpux
# Current time local: Mon Sep 20 16:17:37 2010
# Current time GMT: Mon Sep 20 14:17:37 2010
# Using Test.pm version 1.25_02
/usr/lib/dld.sl: Can't open shared library: libiconv.sl
/usr/lib/dld.sl: No such file or directory
Can't load 'blib/arch/auto/Conftest/Conftest.sl' for module Conftest: No such file or directory at /opt/perl_5.10.1/HP-UX/B.11.11/pa-risc/64b/lib/perl5/5.10.1/PA-RISC2.0/DynaLoader.pm line 200.
at test.pl line 2
Compilation failed in require at test.pl line 2.
BEGIN failed--compilation aborted at test.pl line 2.
not ok 1
# Failed test 1 in test.pl at line 1
# test.pl line 1 is: use Test; BEGIN { plan tests => 1; } END { ok($loaded) }
gmake: *** [test_dynamic] Error 2
system call to 'gmake test 'OTHERLDFLAGS='' failed at Makefile.PL line 470.
no
libxml2 not found
Try setting LIBS and INC values on the command line
Or get libxml2 from
http://xmlsoft.org/
If you install via RPMs, make sure you also install the -devel
RPMs, as this is where the headers (.h files) are.

Also, you may try to run perl Makefile.PL with the DEBUG=1 parameter
to see the exact reason why the detection of libxml2 installation
failed or why Makefile.PL was not able to compile a test program.

---

I don't understand why there is this error:

/usr/lib/dld.sl: Can't open shared library: libiconv.sl
/usr/lib/dld.sl: No such file or directory

The lib is right in the place:

% ll /usr/local/lib/libiconv*
-rw-r--r-- 1 root sys 943920 Jan 31 2004 /usr/local/lib/libiconv.a
-rw-r--r-- 1 root sys 788 Jan 31 2004 /usr/local/lib/libiconv.la
-r-xr-xr-x 1 root sys 929792 Jan 31 2004 /usr/local/lib/libiconv.sl*

I've set the env var:

$LD_PRELOAD=/usr/lib/libpthread.sl

cause if I don't, I have this error during the compilation:

/usr/lib/dld.sl: Can't shl_load() a library containing Thread Local Storage: /usr/lib/libpthread.1
/usr/lib/dld.sl: Exec format error

---

Do you know why it can't find the libiconv.sl ?

Thanks in advance,
5 REPLIES 5
Dennis Handly
Acclaimed Contributor

Re: (Perl) XML::LibXML compilation error

>I don't understand why there is this error:
dld.sl: Can't open shared library: libiconv.sl
dld.sl: No such file or directory

>The lib is right in the place:
-r-xr-xr-x 1 root sys 929792 Jan 31 2004 /usr/local/lib/libiconv.sl*

What does "file usr/local/lib/libiconv.sl" show?

>Do you know why it can't find the libiconv.sl?

Do you have the right bitness in that shlib?
Do you have R and X permissions for /usr /usr/lib /usr/local/lib?
Samuel PHAN
New Member

Re: (Perl) XML::LibXML compilation error

Hi Dennis,

Thanks for your reply.

% file /usr/local/lib/libiconv.sl
/usr/local/lib/libiconv.sl: PA-RISC1.1 shared library

% ll -d /usr
dr-xr-xr-x 26 bin bin 8192 Jun 30 11:04 /usr/

% ll -d /usr/local
drwxrwxr-x 20 bin bin 8192 Oct 14 2008 /usr/local/

% ll -d /usr/local/lib
drwxrwxr-x 14 bin bin 8192 Oct 22 2008 /usr/local/lib/

% uname -a
HP-UX ftdev B.11.11 U 9000/800 3968125325 unlimited-user license

In fact, it seems that I found what to do to make it works:

export LDOPTS="+s -L/usr/local/lib -L/usr/lib"

I've read this there:

http://hpux.connect.org.uk/hppd/cgi-bin/wwwtar?/hpux/Development/Libraries/libiconv-1.13.1/libiconv-1.13.1-src-11.11.tar.gz+libiconv-1.13.1/HPUX.Install+text

There are some missing dependencies now (XML::NamespaceSupport & XML::SAX), but this problem seems to be behind ;-)
Dennis Handly
Acclaimed Contributor

Re: (Perl) XML::LibXML compilation error

>it seems that I found what to do to make it works:
export LDOPTS="+s -L/usr/local/lib -L/usr/lib"

(Since -L/usr/lib is the default, please leave it off.)
What are you building with this?
I guess I assumed that +s was already being used since perl would have to have it.

But if it is your shlib that needs libiconv, then you need +s.
Samuel PHAN
New Member

Re: (Perl) XML::LibXML compilation error

Hi Dennis,

Thanks for your replay, and sorry to reply so late.

To resume what I've done to make the compilation of the perl lib XML::LibXML, was just :

export LD_PRELOAD=/usr/lib/libpthread.sl
export LDOPTS="$LDOPTS +s -L/usr/local/lib -L/usr/lib"

Then :

perl Makefile.PL PREFIX=/path/to/usr
make
make test
make install

You may be right about the "-L/usr/lib" that may be not required, but I just write here what I've done and it works.

Thank you for your replies.
Samuel PHAN
New Member

Re: (Perl) XML::LibXML compilation error

Before compilation, type:

export LD_PRELOAD=/usr/lib/libpthread.sl
export LDOPTS="$LDOPTS +s -L/usr/local/lib -L/usr/lib"

Then:

perl Makefile.pl PREFIX=/path/to/usr
make
make test
make install

That's all.