October 2007
The effort to get mainstream headers into the kernel now meets the needs of the open source community. There will be no further updates of this project. The 2.6.23 Kernel has everything in place for headers. Thank you all for your support.
Jim Gifford
History
Prior to the release of Linux 2.6, header files directly from the kernel were copied into /usr/include. These header files were used to define the ways in which user-space software interacts with the kernel.
Current Day
Since the release of Linux 2.6, the kernel developers have not recommended the use of so-called "raw" kernel headers by user-space applications. Instead, the developers state that "sanitized" kernel headers, provided by your distribution, should be used instead. The situation is made even more complex because the kernel developers recommend even Glibc to be built against sanitized headers, while the Glibc developers recommend building against the raw headers from the kernel, and neither group seems willing or able to come to an agreement. Also, disagreement exists on whose responsibility it is to provide these essential headers - Glibc developers feel the kernel team should be providing them, while the kernel team again feels that the responsibility falls with the distribution vendor, leaving do-it-yourselfers and small distributions out in the dark.
While most distributions have the manpower available to devote someone to this task, smaller distributions (and do-it-yourself builders like us) have a couple of choices:
- Utilize the headers work of a distribution vendor, such as RedHat or SuSE
- Attempt to sanitize the headers ourselves
For some time, a project named "linux-libc-headers", originally started by a developer for PLD (PLD Linux Distribution), provided a useable set of sanitized headers to the community at large. However, due to restrictions on available time by the developer, these headers have not been updated since Kernel 2.6.12, which leaves such recent developments like Inotify and the ABI Changes for PowerPC out of the headers package.
Our project
Our headers project aims to produce both a downloadable tarball of sanitized headers suitable for user-space use, as well as a set of scripts that, when run against a Linux source tarball, will create sanitized headers from the raw headers included in the Linux source.
Who we are
This project is being led by Jim Gifford and Ryan Oliver of the Cross-LFS development team, with input from others in the Cross-LFS and LFS projects, as well as others within the Linux community as a whole. Our goal is to produce an independent user-space headers package which may be used by any distribution who desires to do so.
