[Bug 172236] New: missing C standard headers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug report.




https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=172236

           Summary: missing C standard headers
           Product: Fedora Core
           Version: devel
          Platform: All
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: normal
         Component: perl
        AssignedTo: jvdias@xxxxxxxxxx
        ReportedBy: jvdias@xxxxxxxxxx
         QAContact: dkl@xxxxxxxxxx
                CC: fedora-perl-devel-list@xxxxxxxxxx


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:

-- 
Configure bugmail: https://bugzilla.redhat.com/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Legacy Announce]     [Fedora PHP Devel]     [Kernel Devel]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Big List of Linux Books]     [Gimp]     [Yosemite Information]
  Powered by Linux