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

Reply via email to