diff --git a/chapter05/linux-headers.xml b/chapter05/linux-headers.xml new file mode 100644 index 000000000..9396208c9 --- /dev/null +++ b/chapter05/linux-headers.xml @@ -0,0 +1,69 @@ + + + %general-entities; +]> + + + + + Linux-Headers-&linux-version; + + + Linux-Headers + tools, headers + + + + + + <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" + href="../chapter06/linux-headers.xml" + xpointer="xpointer(/sect1/sect2[1]/para[1])"/> + + <segmentedlist> + <segtitle>&buildtime;</segtitle> + <segtitle>&diskspace;</segtitle> + + <seglistitem> + <seg>&linux-headers-ch5-sbu;</seg> + <seg>&linux-headers-ch5-du;</seg> + </seglistitem> + </segmentedlist> + + </sect2> + + <sect2 role="installation"> + <title>Installation of Linux-Headers + + The Linux kernel needs to expose an Application Programming Interface + (API) for the system's C library (Glibc in LFS) to utilize. This is done + by way of sanitizing various C header files that are shipped in the Linux + kernel source tarball. + + Apply the following patch to provide unifdef, which + the installation of the kernel headers requires: + +patch -Np1 -i ../linux-&linux-version;-unifdef-1.patch + + Install the header files: + +mkdir /tools/tmp +make mrproper +make headers_check +make INSTALL_HDR_PATH=/tools/tmp headers_install +cp -R /tools/tmp/include/* /tools/include +rm -r /tools/tmp + + + + + + + <para>Details on this package are located in + <xref linkend="contents-linux-headers" role="."/></para> + + </sect2> + +</sect1> diff --git a/chapter05/linux-libc-headers.xml b/chapter05/linux-libc-headers.xml deleted file mode 100644 index 89b3962ea..000000000 --- a/chapter05/linux-libc-headers.xml +++ /dev/null @@ -1,66 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" - "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ - <!ENTITY % general-entities SYSTEM "../general.ent"> - %general-entities; -]> - -<sect1 id="ch-tools-linux-libc-headers" role="wrap"> - <?dbhtml filename="linux-libc-headers.html"?> - - <title>Linux-Libc-Headers-&linux-libc-headers-version; - - - Linux-Libc-Headers - tools, headers - - - - - - <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" - href="../chapter06/linux-libc-headers.xml" - xpointer="xpointer(/sect1/sect2[1]/para[1])"/> - - <segmentedlist> - <segtitle>&buildtime;</segtitle> - <segtitle>&diskspace;</segtitle> - - <seglistitem> - <seg>&linux-libc-headers-ch5-sbu;</seg> - <seg>&linux-libc-headers-ch5-du;</seg> - </seglistitem> - </segmentedlist> - - </sect2> - - <sect2 role="installation"> - <title>Installation of Linux-Libc-Headers - - For years it has been common practice to use raw - kernel headers (straight from a kernel tarball) in /usr/include, but over the last few years, - the kernel developers have taken a strong stance that this should not - be done. This gave birth to the Linux-Libc-Headers Project, which was - designed to maintain an Application Programming Interface (API) stable - version of the Linux headers. - - Install the header files: - -cp -Rv include/asm-i386 /tools/include/asm -cp -Rv include/linux /tools/include - - If your architecture is not i386 (compatible), adjust the first command - accordingly. - - - - - - - <para>Details on this package are located in - <xref linkend="contents-linux-libc-headers" role="."/></para> - - </sect2> - -</sect1> diff --git a/chapter06/linux-libc-headers.xml b/chapter06/linux-headers.xml similarity index 51% rename from chapter06/linux-libc-headers.xml rename to chapter06/linux-headers.xml index e1fed38f6..1e30ed87f 100644 --- a/chapter06/linux-libc-headers.xml +++ b/chapter06/linux-headers.xml @@ -5,54 +5,50 @@ %general-entities; ]> -<sect1 id="ch-system-linux-libc-headers" role="wrap"> - <?dbhtml filename="linux-libc-headers.html"?> +<sect1 id="ch-system-linux-headers" role="wrap"> + <?dbhtml filename="linux-headers.html"?> - <title>Linux-Libc-Headers-&linux-libc-headers-version; + Linux-Headers-&linux-version; - - Linux-Libc-Headers + + Linux-Headers - <para>The Linux-Libc-Headers package contains the - <quote>sanitized</quote> kernel headers.</para> + <para>The Linux-Headers expose the kernel's API for use by Glibc.</para> <segmentedlist> <segtitle>&buildtime;</segtitle> <segtitle>&diskspace;</segtitle> <seglistitem> - <seg>&linux-libc-headers-ch6-sbu;</seg> - <seg>&linux-libc-headers-ch6-du;</seg> + <seg>&linux-headers-ch6-sbu;</seg> + <seg>&linux-headers-ch6-du;</seg> </seglistitem> </segmentedlist> </sect2> <sect2 role="installation"> - <title>Installation of Linux-Libc-Headers + Installation of Linux-Headers - For years it has been common practice to use raw - kernel headers (straight from a kernel tarball) in /usr/include, but over the last few - years, the kernel developers have taken a strong stance that this - should not be done. This gave birth to the Linux-Libc-Headers Project, - which was designed to maintain an API stable version of the Linux - headers. + The Linux kernel needs to expose an Application Programming Interface + (API) for the system's C library (Glibc in LFS) to utilize. This is done + by way of sanitizing various C header files that are shipped in the Linux + kernel source tarball. - Add a userspace header and syscall support for the inotify feature - available in newer Linux kernels: + Apply the following patch to provide unifdef, which + the installation of the kernel headers requires: -patch -Np1 -i ../&linux-inotify-patch; +patch -Np1 -i ../linux-&linux-version;-unifdef-1.patch Install the header files: -install -dv /usr/include/asm -cp -Rv include/asm-i386/* /usr/include/asm -cp -Rv include/linux /usr/include +make mrproper +make headers_check +make INSTALL_HDR_PATH=/usr headers_install Ensure that all the headers are owned by root: @@ -65,8 +61,8 @@ find /usr/include/{asm,linux} -type f -exec chmod -v 644 {} \; - - Contents of Linux-Libc-Headers + + Contents of Linux-Headers Installed headers @@ -81,11 +77,11 @@ find /usr/include/{asm,linux} -type f -exec chmod -v 644 {} \; - + /usr/include/{asm,linux}/*.h The Linux API headers - + /usr/include/{asm,linux}/*.h