Hi list, I am really glad that Michael Schwern has taken the time to file a more precise bug report than my musing in the recent post about the bug.
I'm attaching his bug report to this mail. Best regards, Steffen
--- Begin Message ---Queue: PAR-Packer Ticket <URL: http://rt.cpan.org/Ticket/Display.html?id=24192 > I've tracked this down to that @INC is being rebuilt incorrectly such that all the -Is to static are unshifted onto @INC in reverse. This results in the non-XS parts of @INC coming before the XS parts so the non-XS version of Scalar::Util loads. You can see the messed up @INC by placing BEGIN { printf "In CZlib: %s\n", join "", map { "$_\n" } @INC; } at the top of Compress::Zlib. The problem appears to be this in scripts/par.pl. --- script/par.pl (revision 54264) +++ script/par.pl (local) @@ -413,11 +413,13 @@ s sign_par v verify_par ); + + my @add_to_inc; while (@ARGV) { $ARGV[0] =~ /^-([AIMOBLbqpiusTv])(.*)/ or last; if ($1 eq 'I') { - unshift @INC, $2; + push @add_to_inc, $2; } elsif ($1 eq 'M') { eval "use $2"; @@ -455,6 +457,8 @@ exit; } } + + unshift @INC, @add_to_inc; } # XXX -- add --par-debug support! However, that isn't enough. For some reason printing out load_me_2 in main.c is required for it to take effect. I don't know why. Using strings on static shows that it contains the fixed par.pl. I've tried all sorts of make clean and patching a brand new tarball.
--- End Message ---
