[BioLib-dev] installation - perl.h
Joel Martin
j_martin at lbl.gov
Sun Apr 26 20:22:29 UTC 2009
On Sun, Apr 26, 2009 at 04:47:52PM +0200, Pjotr Prins wrote:
> Alright. I have narrowed it down - and it is kinda weird. When you
> use a different Perl by overriding PERL_EXECUTABLE the dynamic
> library fails to load (it gets found, as can be seen with export
> PERL_DL_DEBUG=1 before running a test). It appears to be a mixup of
> perl binaries not matching libraries causing the problem.
which dynamic library? cmake has always picked up /jgi/tools/bin/perl
for me.
> Don't you love dynamically linked libraries?
>
> I'll resolve that soon. Most people won't encounter this as standard
> Perl installations just work.
>
> BTW could it be that perllib is statically linked against other XS
> modules? That would not show with ldd. The XS stack methods have to
> live somewhere and I would bet it is in perllib. But maybe I am
> wrong, I haven't checked.
Yeah, it has to come from somewhere,
/usr/bin/perl ( debian default ) and /jgi/tools/bin/perl both load it at
startup... both have basically the same strace output. except location of
libraries they're loading of course.
I re-maked a few of the XS modules and the linking line is always some version of
cc -shared XS.o -o blib/arch/auto/JSON/XS/XS.so
maybe they use DynaLoader to load libperl.so ?, some version of
require DynaLoader;
@ISA = qw(DynaLoader);
is in most of them, though not in JSON::XS ( well, grepping didn't find Dyna ),
Starting clean after
cmake -DCMAKE_INSTALL_PREFIX=/scratch/j_martin/biotrash -DSTADEN_LIB:BOOLEAN=TRUE -DBUILD_PERL:BOOLEAN=TRUE .
make
make test ( passes )
make install
perl -Mbiolib::staden_io_lib -e ''
(no errors)
but I removed linking to libperl.so
ldd /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/staden_io_lib.so
libbiolib_staden_io_lib-0.0.4.so => /scratch/j_martin/biotrash/lib/libbiolib_staden_io_lib-0.0.4.so (0x00002ae0641c6000)
libz.so.1 => /usr/lib/libz.so.1 (0x00002ae064349000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00002ae06445f000)
libm.so.6 => /lib/libm.so.6 (0x00002ae06465e000)
libc.so.6 => /lib/libc.so.6 (0x00002ae0647e0000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00002ae064a1d000)
/lib64/ld-linux-x86-64.so.2 (0x0000555555554000)
Joel
> Pj.
>
> _______________________________________________
> BioLib-dev mailing list
> BioLib-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/biolib-dev
More information about the BioLib-dev
mailing list