A perl script (FCGI handler) fails to run with an error message about not finding unistd_64.ph in @INC (and goes on to list all the standard dirs that are in @INC). The file /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux/asm/unistd.ph checks arch, and then includes unistd_32.ph or unistd_64.ph. It seems that unistd.ph is running a directory above its location, so it fails to find unistd_ARCH.ph. Prepending the filenames with asm/ fixes the problem. Reproducible: Always Steps to Reproduce: 1. Run a Perl script that needs unistd.ph. 2. Get a "failed compilation" error. Actual Results: failed compilation Expected Results: running script
Created attachment 207028 [details] /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux/asm/unistd.ph Diff of broken and working /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux/asm/unistd.ph
This was fixed in perl-5.8.8-r6 on 08 May 2009.
If it is still a problem, you should at least mention which perl version (revision) you are using.
Using r5. Perhaps ~ARCH should be removed from r6?
Fresh install of perl-5.8.8-r6 after rm -rf /usr/lib64/perl5 results in the same error.
Works fine here. Please run $(perl-cleaner phall) again and paste /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux/asm/unistd.ph
host01 ~ # eix -c --nocolor dev-lang/perl [I] dev-lang/perl (5.8.8-r6@10/19/09): Larry Wall's Practical Extraction and Report Language host01 ~ # perl-cleaner phall &> /dev/null host01 ~ # cat /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux/asm/unistd.ph require '_h2ph_pre.ph'; no warnings 'redefine'; if(defined(&__i386__)) { require 'unistd_32.ph'; } else { require 'unistd_64.ph'; } 1; host01 ~ #
Hm, it works as expected here: fails with -r5 (same .ph as in #7) and works with -r6 (prepends asm/ in require) I don't know how I can help you. You don't have a broken h2ph somewhere in your PATH?
Please try current stable dev-lang/perl-5.8.8-r8