Dear Wiki user, You have subscribed to a wiki page or wiki category on "Fedora Project Wiki" for change notification. The following page has been changed by DavidWoodhouse: http://www.fedoraproject.org/wiki/Docs/Beats/Devel/Tools ------------------------------------------------------------------------------ = Devel Tools = + + == Kernel header files == + + This release of Fedora has been built using Linux kernel headers exported directly from the kernel, using the new {{{headers_install}}} feature of the 2.6.18 kernel. Thus, the {{{glibc-kernheaders}}} package has been removed and replaced with a subpackage of the kernel; {{{kernel-headers}}}. + + Developers may notice some changes between these new kernel headers and what was present before, including but not limited to: + + * The {{{<linux/compiler.h>}}} header file has been removed, since it contains nothing of use to userspace. + + * The {{{_syscallX()}}} macros are removed. Userspace should use {{{syscall()}}} from the C library instead. + + * The {{{PAGE_SIZE}}} macro is removed from some architectures, since the page size is variable. Userspace should be using {{{sysconf(_SC_PAGE_SIZE)}}} or {{{getpagesize()}}} instead. + + * The {{{<asm/atomic.h>}}} and {{{<asm/bitops.h>}}} header files have been removed. These were not designed for use in userspace, and would fail to compile on some architectures while silently giving non-atomic behaviour on others. + + * Content which was previously protected with {{{#ifdef __KERNEL__}}} is now elided completely with the {{{unifdef}}} tool, so defining {{{__KERNEL___}}} in order to see parts which should not be visible to userspace is no longer effective. + + In addition, some other header files which are not suitable for use in userspace have been removed, and still more headers have been edited to remove unsuitable content. + + [[Admonition("note", "Kernel header changes are not Fedora-specific", "It should be noted that these changes are inherited from the upstream kernel and are not specific to Fedora. Any distribution using the current officially-exported kernel headers would be the same.")]] + [[Include(/GCC)]]