Ólavur
Ólavur

Reputation: 420

Perl can't locate inline C module: "Had problems bootstrapping Inline module"

Getting the error at the below when trying to run a Perl script. The script is from this package: https://github.com/aquaskyline/LRSIM

$ perl simulateLinkedReads.pl
Had problems bootstrapping Inline module 'simulateLinkedReads_pl_4e0722f'

Can't locate loadable object for module simulateLinkedReads_pl_4e0722f in @INC (@INC contains: [some long path]/_Inline/lib /home/olavur/perl5/lib/perl5/5.22.1/x86_64-linux-gnu-thread-multi /home/olavur/perl5/lib/perl5/5.22.1 /home/olavur/perl5/lib/perl5/x86_64-linux-gnu-thread-multi /home/olavur/perl5/lib/perl5 /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.22.1 /usr/local/share/perl/5.22.1 /usr/lib/x86_64-linux-gnu/perl5/5.22 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base .) at /usr/local/share/perl/5.22.1/Inline.pm line 541.


at simulateLinkedReads.pl line 0.
INIT failed--call queue aborted.

So it's looking for the simulateLinkedReads_pl_4e0722f "inline" module, and it seems to be located here:

[some long path]/_Inline/lib/auto/simulateLinkedReads_pl_4e0722f/simulateLinkedReads_pl_4e0722f.inl

And the @INC path contains [some long path]/_Inline/lib. Should it not contain [some long path]/_Inline/lib/auto?

So, I don't know whether the error is from my Perl setup, my installation/build of the LRSIM package, or an error in the source code of LRSIM.

I'm a complete dummy with Perl, but I tried to include some information about my Perl setup, here (note there are two files, "Perl modules" and "Perl configuration"): https://gist.github.com/olavurmortensen/00b2baa61399a5b7c39bca323dbf0233

Using perl -V for some configuration info and perl -e 'print qx/find $_ -name "*.pm"/ foreach ( @INC );' for installed modules.

Any help would be greatly appreciated.

EDIT:

By suggestion of @melpomene, I ran strace -f -o trace.log perl LRSIM/simulateLinkedReads.pl and uploaded the trace here:

https://gist.github.com/olavurmortensen/eca66135486899beccf8610667241451

EDIT:

Updated trace, because it was incomplete: https://gist.github.com/olavurmortensen/eca66135486899beccf8610667241451

Upvotes: 0

Views: 449

Answers (1)

melpomene
melpomene

Reputation: 85827

Around line 24093 of your strace log make says something about Clock skew detected. Maybe the issue is related to the file system the script is running on (/mnt/fargen/experiments/...)?

make relies on accurate time stamps to determine which files need to be updated and to schedule its actions. If the time stamps are wrong, files might be built incorrectly or not at all.


The reason make is involved at all is because behind the scenes Inline::C extracts the embedded C code and creates an ad-hoc Perl module for it, including an XS file, Makefile.PL, and the whole machinery. Then it invokes perl Makefile.PL && make && make install, which is supposed to create a .so file and copy it in a location where perl can load it (this .so file is the loadable object mentioned in the error message).

Upvotes: 2

Related Questions