3rensho has asked for the wisdom of the Perl Monks concerning the following question:

I'm running Slackware64-current and have recently installed all of the newest updates. Also running GCC-5.2 and KDE-5 from Alien. After applying the latest Slack updates perl suddenly stopped working. Perl -v returns the version info but anything else I try that uses perl just seg faults. eg -
root@missi:/var/log$ shorewall start Compiling using Shorewall 5.0.1.1... /usr/share/shorewall/lib.cli-std: line 369: 11333 Segmentation fault + $PERL $debugflags $pc $options $@
or
root@missi:/var/log$ perldoc perl Segmentation fault
or
root@missi:/var/log$ perl -MCPAN -e 'shell' Segmentation fault

I uninstalled perl and rebuilt and installed to no avail.

No helpful info in syslog or messages other than the fact that perl seg faulted.

I haven't got a clue how to trouble shoot this and would appreciate any helpful suggestions that come to mind. Thanks in advance.

Replies are listed 'Best First'.
Re: Perl 5.22 no longer works
by Anonymous Monk on Nov 02, 2015 at 13:37 UTC

    Why run slackware-current if you cannot troubleshoot such problems? Maybe an strace will give a hint? In any case, slackware-stable might serve you better. Or just wait until they fix it (slackware) again.

      Here is a snipet from an strace -

      root@missi:/var/log$ strace perldoc perl execve("/usr/bin/perldoc", ["perldoc", "perl"], [/* 67 vars */]) = 0 brk(0) = 0xfb9000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, +0) = 0x7f26b321e000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or d +irectory) open("/usr/lib64/perl5/CORE/tls/x86_64/libperl.so", O_RDONLY|O_CLOEXEC +) = -1 ENOENT (No such file or directory) stat("/usr/lib64/perl5/CORE/tls/x86_64", 0x7ffd393c0170) = -1 ENOENT ( +No such file or directory) open("/usr/lib64/perl5/CORE/tls/libperl.so", O_RDONLY|O_CLOEXEC) = -1 +ENOENT (No such file or directory) stat("/usr/lib64/perl5/CORE/tls", 0x7ffd393c0170) = -1 ENOENT (No such + file or directory) open("/usr/lib64/perl5/CORE/x86_64/libperl.so", O_RDONLY|O_CLOEXEC) = +-1 ENOENT (No such file or directory) stat("/usr/lib64/perl5/CORE/x86_64", 0x7ffd393c0170) = -1 ENOENT (No s +uch file or directory) open("/usr/lib64/perl5/CORE/libperl.so", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320>\3\0\0\0\0 +\0"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0555, st_size=1978760, ...}) = 0 mmap(NULL, 4074536, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, + 0) = 0x7f26b2c0d000 mprotect(0x7f26b2de7000, 2097152, PROT_NONE) = 0 mmap(0x7f26b2fe7000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXE +D|MAP_DENYWRITE, 3, 0x1da000) = 0x7f26b2fe7000
Re: Perl 5.22 no longer works
by 3rensho (Initiate) on Nov 02, 2015 at 16:11 UTC

    I'm running -current as it is a good tool to learn how to fix things. I've done pretty well until this problem. Usually logs, error messages, etc. point me to a solution but when I get no more info than perl seg faulted it is a bit baffling. I've fixed a lot of things that didn't like gcc-5.2.

      Get familiar with gdb ...

      $ gdb /usr/bin/perl
      (gdb) run -MCPAN -e 'shell'
      (gdb) where
      (gdb) quit
      

        Thank you for that.