This is a test version of Biostars. For the public version, visit https://www.biostars.org.
SCRMshaw Enrich: Undefined symbol: Perl_xs_boot_epilog

I'm using SCRMshaw to predict CRMs and I'm trying to use the enrichment bash script that comes with it. At first it had the problem of Can't locate Bio/SeqIO.pm in @INC but this was fixed by exporting the path to a BioPerl installation in an Anaconda environment I made for SCRMshaw (export PERL5LIB=/data/Anaconda/envs/SCRM_env/lib/site_perl/5.26.2:$PERL5LIB).

However, it now has an issue I don't know how to fix. It no longer complains about Bio/SeqIO and instead prints the following:

Can't load '/data/Anaconda/envs/SCRM_env/lib/site_perl/5.26.2/x86_64-linux-thread-multi/auto/Cwd/Cwd.so' for module Cwd: /data/Anaconda/envs/SCRM_env/lib/site_perl/5.26.2/x86_64-linux-thread-multi/auto/Cwd/Cwd.so: undefined symbol: Perl_xs_boot_epilog at /data/Anaconda/envs/SCRM_env/lib/site_perl/5.26.2/x86_64-linux-thread-multi/XSLoader.pm line 96.
 at /data/Anaconda/envs/SCRM_env/lib/site_perl/5.26.2/x86_64-linux-thread-multi/Cwd.pm line 82.
Compilation failed in require at /usr/share/perl5/FindBin.pm line 83.
BEGIN failed--compilation aborted at /usr/share/perl5/FindBin.pm line 83.
Compilation failed in require at ../code/wrap_enrichments.pl line 38.
BEGIN failed--compilation aborted at ../code/wrap_enrichments.pl line 38.

I checked the lines it is complaining about in the scripts. The one in Cwd.pm points to XSLoader.pm:

require XSLoader;
    XSLoader::load( __PACKAGE__, $xs_version);

And the one in XSLoader refers to the Perl module Carp:

my $libref = dl_load_file($file, 0) or do {
        require Carp;
        Carp::croak("Can't load '$file' for module $module: " . dl_error());
    };.

I installed Carp to the Anaconda environment but i said it's already installed. The same problem persists. Any idea what this problem is, what undefined symbol: Perl_xs_boot_epilog means, why it can't load Cwd.so, or how to fix it?

Thank you

perl scrmshaw crms software error
/Anaconda/envs/SCRM_env/lib/site_perl/5.26.2:$PERL5LIB

This suggests Anaconda was in the root / directory which is unlikely. The path is probably wrong, double check that.

Ah, sorry, I shortened the path in the question for ease of reading, I've updated it to avoid confusion, Anaconda isn't in the root directory.

1 answer

I think the Cwd.so is linked to the 'wrong' libraries. I found that if I recompile the program with the error *.so, it fixes it.

How did you recompile the program with the error *.so? Thanks!

Log in to answer this question.