[redland] perl-interface

Dave Beckett dave.beckett at bristol.ac.uk
Thu Nov 30 21:50:59 GMT 2000


>>>Stefan Meinert said:
> I downloaded the 0.9.6 version of Redland and tried to use the perl
> interface, but the make test-perl failed (first i did make build-perl,
> then make test-perl). I get the following error message:
> 
> oxana perl 168: make test-perl
> make -f Makefile.perl test
> PREFIX=/home/diplom/smeinert/redland/redland-0.9.6
> LD_RUN_PATH="" gcc -B/usr/ccs/bin/ -B/usr/ccs/bin/ -o
> blib/arch/auto/Redland/Redland.so  -G -L/usr/local/lib Redland_wrap.o
> ../librdf.a -L/home/diplom/smeinert/redland/redland-0.9.6/lib -lrdf
> gcc: file path prefix `/usr/ccs/bin/' never used
> chmod 755 blib/arch/auto/Redland/Redland.so
> PERL_DL_NONLAZY=1 /usr/local/bin/perl -Iblib/arch -Iblib/lib
> -I/usr/local/gnu/lib/perl5/5.00502/sun4-solaris
> -I/usr/local/gnu/lib/perl5/5.00502 test.pl
> 1..3
> ok 1
> Redland::librdf_new_storage failed
> not ok 2
> new RDF::Storage failed
> not ok 3
> 
> I'm using perl 5.005_02. What can I do?
> Thanks
> Stefan

You seem to be using Redland on Solaris with perl in a non-standard
place and using the standard make command, but I don't know how much
difference that makes.  You might need to do a 'make install' in the
parent directory first.  I have to admit I haven't tested it out on
Solaris recently.

[later on]

I just tried it with Solaris 2.7 on Sparc, perl 5.6.0, gcc 2.95.1 and
the following sequence worked out of the box:

$ ./configure
$ make
$ cd perl
$ make test-perl
PACKAGE=Redland VERSION=0.9.6 TOP_SRCDIR=.. perl Makefile.PL
PREFIX=/usr/local
Writing Makefile.perl for Redland
make -f Makefile.perl test PREFIX=/usr/local
mkdir blib
mkdir blib/lib
mkdir blib/arch
mkdir blib/arch/auto
mkdir blib/arch/auto/Redland
mkdir blib/lib/auto
mkdir blib/lib/auto/Redland
cp lib/RDF/Model.pm blib/lib/RDF/Model.pm
cp lib/RDF/URI.pm blib/lib/RDF/URI.pm
cp lib/RDF/Stream.pm blib/lib/RDF/Stream.pm
cp Redland.pm blib/lib/Redland.pm
cp lib/RDF/Statement.pm blib/lib/RDF/Statement.pm
cp lib/RDF/Iterator.pm blib/lib/RDF/Iterator.pm
cp lib/RDF.pm blib/lib/RDF.pm
cp lib/RDF/Storage.pm blib/lib/RDF/Storage.pm
cp lib/RDF/Parser.pm blib/lib/RDF/Parser.pm
cp lib/RDF/Node.pm blib/lib/RDF/Node.pm
gcc -c  -I.. -O     -DVERSION=\"0.9.6\" -DXS_VERSION=\"0.9.6\" -fPIC
-I/usr/local/lib/perl5/5.6.0/sun4-solaris/CORE -Dbool=char
-DHAVE_CONFIG_H Redland_wrap.c
Running Mkbootstrap for Redland ()
chmod 644 Redland.bs
LD_RUN_PATH="" gcc -o blib/arch/auto/Redland/Redland.so  -G
-L/usr/local/lib Redland_wrap.o ../librdf.a -ldb     
chmod 755 blib/arch/auto/Redland/Redland.so
cp Redland.bs blib/arch/auto/Redland/Redland.bs
chmod 644 blib/arch/auto/Redland/Redland.bs
PERL_DL_NONLAZY=1 /usr/local/bin/perl -Iblib/arch -Iblib/lib
-I/usr/local/lib/perl5/5.6.0/sun4-solaris
-I/usr/local/lib/perl5/5.6.0 test.pl
1..3
ok 1
ok 2
ok 3

----------------------------------------------------------------------

My primary suspect is Solaris CC versus GCC and I have met this
before using dynamically loaded Perl modules.  If you compile Perl
with Solaris CC (solaris default usually) and then compile dynamic
modules with GCC, much strangeness ensues.  I built perl on Solaris
with gcc to prevent this explicitly.

The -B/usr/ccs/bin/ argument to gcc is suspicious since gcc doesn't
need it - only Solaris CC, maybe that's the clincher.

Do it all with gcc?

[I can try on other older sparcs with older perl if this still
doesn't help]

Dave







More information about the redland-dev mailing list