Bug 172236

Summary: missing C standard headers
Product: [Fedora] Fedora Reporter: Jason Vas Dias <jvdias>
Component: perlAssignee: Jason Vas Dias <jvdias>
Status: CLOSED CURRENTRELEASE QA Contact: David Lawrence <dkl>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: corey, perl-devel, redhat-bugzilla
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 5.8.5-18.FC3 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-10-04 18:31:33 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 175129    

Description Jason Vas Dias 2005-11-01 19:58:20 UTC
Description of problem:

All perl versions on Linux / glibc / gcc systems fail to look for the 
C standard header files in the correct location, eg. :

  stddef.h  syslimits.h  stdarg.h  float.h  stdbool.h  

These are gcc built-in headers, and cpp searches for them in the gcc 
architecture specific include directory before the system include directory:
  /usr/lib/gcc/${arch}-${os}/${gcc-version}/include

During the perl build, perl does not look for any headers in the 
gcc architecture specific include directory, but instead either 
fails to find the header at all, or finds versions of them used 
only by the kernel, eg. as shown by this excerpt from a log of a 
Rawhide perl build :
---
+ for i in asm/termios.h syscall.h syslimits.h syslog.h sys/ioctl.h sys/socket.h
sys/time.h wait.h ...
...
+ /var/tmp/perl-5.8.7-0.5.fc5-root-jvdias//usr/bin/perl
/var/tmp/perl-5.8.7-0.5.fc5-root-jvdias//usr/bin/h2ph -a -d
/var/tmp/perl-5.8.7-0.5.fc5-root-jvdias/usr/lib/perl5/5.8.7/i386-linux-thread-multi
syslimits.h
Can't open syslimits.h: No such file or directory
syslimits.h -> syslimits.ph
---

( empty syslimits.ph - no syslimits.ph shipped )

---
+ /var/tmp/perl-5.8.7-0.5.fc5-root-jvdias//usr/bin/perl
/var/tmp/perl-5.8.7-0.5.fc5-root-jvdias//usr/bin/h2ph -a -d
/var/tmp/perl-5.8.7-0.5.fc5-root-jvdias/usr/lib/perl5/5.8.7/i386-linux-thread-multi
asm/termios.h
...
linux/stddef.h -> linux/stddef.ph
---

No <stddef.h> shipped, only <linux/stddef.h>, which is meant to be used only
by the kernel.

This results in many system headers that reference the C standard headers 
being unusable because the C standard headers are not found 
(eg. sys/resource.ph -> bits/resource.ph -> linux/types.ph -> stddef.ph 
 -> stddef.ph not found,
 bug 170088 ).

The perl build process should find the C standard headers in their correct 
location, as many system perl headers that are shipped by perl reference them.

Version-Release number of selected component (if applicable):
ALL

How reproducible:
100%

Steps to Reproduce:
$ perl -e 'require "sys/resource.ph";'
  
Actual results:
Fails due to missing stddef.ph

Expected results:
No error

Additional info:

Comment 1 Warren Togami 2005-11-01 20:35:08 UTC
*** Bug 71513 has been marked as a duplicate of this bug. ***

Comment 2 Jason Vas Dias 2005-11-01 23:23:31 UTC
This bug is now fixed with perl-5.8.7-0.7.fc5+ (Rawhide) .
Upstream perl bug 37582 has been raised on this issue, with the patch.
    http://rt.perl.org/rt3/Ticket/Display.html?id=37582


Comment 4 Fedora Update System 2005-12-01 23:57:20 UTC
From User-Agent: XML-RPC

perl-5.8.5-18.FC3 has been pushed for FC3, which should resolve this issue.  If these problems are still present in this version, then please make note of it in this bug report.