I'm trying to build a binary on RedHat 8 using the stock perl5.8.0 for
now. The binary boots and runs, but locks up in an infinite loop.
Running it in the debugger leads me to a line like:
use POSIX qw( dup dup2 );
in my code. POSIX uses AutoLoader. AutoLoader is looking up
$INC{"POSIX.pm"} and getting one of the CRC32 .pm files:
/tmp/par-barries/cache-2...5/cf1cb7e2.pm
It's then doing
$filename =~ s#^(.*)$pkg\.pm\z#$1auto/$pkg/$func.al#s;
at line 47, where $pkg is POSIX. And failing. Then it spirals in to an
infinite loop because the s/// fails and it re-require()s cf1cb7e2.pm
and tries to go to POSIX::load_imports which, because the s### failed
isn't loaded and viola!, instant infinite loop.
Here's the quick reproducer:
pp -o foo -e 'use POSIX qw( horse_puckey )'
./foo
Thanks,
Barrie