Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 288972

Summary: Can't find unistd_64.ph in @INC
Product: Gentoo Linux Reporter: Gordon Pettey <petteyg359>
Component: [OLD] DevelopmentAssignee: Gentoo Perl team <perl>
Status: RESOLVED TEST-REQUEST    
Severity: major    
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux/asm/unistd.ph

Description Gordon Pettey 2009-10-13 23:42:16 UTC
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
Comment 1 Gordon Pettey 2009-10-13 23:43:55 UTC
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
Comment 2 Torsten Veller (RETIRED) gentoo-dev 2009-10-19 08:01:25 UTC
This was fixed in perl-5.8.8-r6 on 08 May 2009.
Comment 3 Torsten Veller (RETIRED) gentoo-dev 2009-10-19 08:02:37 UTC
If it is still a problem, you should at least mention which perl version (revision) you are using.
Comment 4 Gordon Pettey 2009-10-19 13:12:44 UTC
Using r5. Perhaps ~ARCH should be removed from r6?
Comment 5 Gordon Pettey 2009-10-20 03:25:46 UTC
Fresh install of perl-5.8.8-r6 after rm -rf /usr/lib64/perl5 results in the same error.
Comment 6 Torsten Veller (RETIRED) gentoo-dev 2009-10-20 07:11:41 UTC
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
Comment 7 Gordon Pettey 2009-10-20 15:41:38 UTC
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 ~ #
Comment 8 Torsten Veller (RETIRED) gentoo-dev 2009-10-22 07:01:51 UTC
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?
Comment 9 David Abbott gentoo-dev 2010-02-22 02:07:21 UTC
Please try current stable dev-lang/perl-5.8.8-r8