How can you determine which Perl module calls the undefined character: Perl_Tstack_sp_ptr? "

I try to run a Perl script, but it returns:

/ usr / bin / perl: symbol search error: / usr / local / groundwork / perl / lib / 5.8.8 / x86_64-linux-thread-multi / auto / IO / IO.so: undefined symbol: Perl_Tstack_sp_ptr

Is there a way to determine which Perl module calls this?

+7
source share
4 answers

IO.so is a binary component of IO . Modules of this distribution are also part of the perl distribution (i.e., are two-wire).

This type of error usually occurs when using binary compiled using one version of Perl is used by another version of Perl.

+13
source

I recently ran into this problem when I had a PERL5LIB environment variable defined in my login files, but they pointed to a directory that was incompatible with the perl system installed. This is because the HOME file system is cross-mounted on many different machines, where perl installations are heterogeneous. Removing the environment variable solves the problem and I will find the best way to manage local libraries.

+2
source

I have a similar problem many times when I use the old perl module on the new CentOS (e.g. CentOS 6.4).

 /usr/bin/perl: symbol lookup error: /home/sonnn/perl5/lib/perl5/x86_64-linux-thread-multi/auto/Cwd/Cwd.so: undefined symbol: Perl_Tstack_sp_ptr /usr/bin/perl: symbol lookup error: /home/sonnn/perl5/lib/perl5/x86_64-linux-thread-multi/auto/version/vxs/vxs.so: undefined symbol: Perl_Tstack_sp_ptr 

I solved these problems:

  • Download the Cwd source version from http://search.cpan.org/ and reinstall them

      # tar -xzf version-0.9906.tar.gz # cd version-0.9906 # perl Makefile.PL INSTALL_BASE=/home/sonnn/perl5/ # make # make install (If you use default module path, you can omit "INSTALL_BASE=/home/sonnn/perl5/") 
  • Similarly for other modules

In your case, I think you can download the IO module from http://search.cpan.org/ and reinstall it.

0
source

Edit:

Finally, despite the fact that I know that this does not answer the question, I allow myself, because it looks like very complicated information, because I found a bunch of sites that mention these errors, but very few with consistent solutions in it . Good thing it is.

I could not handle the zimbra migration that I had to do before changing the platform path. We did this from Ubuntu 8.04 with Zimbra 6.0.16, then Zimbra 7.2.7, upgrading to Ubuntu 10.04 and then upgrading Zimbra 8.0.9 and then moving to Centos 7, then upgrading to 8.6.0

In Centos, where I had to do a zimbramon file move after I did. /install.sh -s ...

mv / opt / zimbra / zimbramon / lib / x86_64-linux-gnu-thread-multi // opt / zimbra / zimbramon / lib / x86_64-linux-gnu-thread-multi.bak

Then I ran install.sh again without -s

-one
source

All Articles