diff options
-rw-r--r-- | chapter05/linux-headers.xml | 69 | ||||
-rw-r--r-- | chapter05/linux-libc-headers.xml | 66 | ||||
-rw-r--r-- | chapter06/linux-headers.xml (renamed from chapter06/linux-libc-headers.xml) | 50 |
3 files changed, 92 insertions, 93 deletions
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 @@ +<?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-headers" role="wrap"> + <?dbhtml filename="linux-headers.html"?> + + <title>Linux-Headers-&linux-version;</title> + + <indexterm zone="ch-tools-linux-headers"> + <primary sortas="a-Linux-Headers">Linux-Headers</primary> + <secondary>tools, headers</secondary> + </indexterm> + + <sect2 role="package"> + <title/> + + <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</title> + + <para>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.</para> + + <para>Apply the following patch to provide <command>unifdef</command>, which + the installation of the kernel headers requires:</para> + +<screen><userinput>patch -Np1 -i ../linux-&linux-version;-unifdef-1.patch</userinput></screen> + + <para>Install the header files:</para> + +<screen><userinput>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</userinput></screen> + + </sect2> + + <sect2 role="content"> + <title/> + + <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;</title> - - <indexterm zone="ch-tools-linux-libc-headers"> - <primary sortas="a-Linux-Libc-Headers">Linux-Libc-Headers</primary> - <secondary>tools, headers</secondary> - </indexterm> - - <sect2 role="package"> - <title/> - - <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</title> - - <para>For years it has been common practice to use <quote>raw</quote> - kernel headers (straight from a kernel tarball) in <filename - class="directory">/usr/include</filename>, 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.</para> - - <para>Install the header files:</para> - -<screen><userinput>cp -Rv include/asm-i386 /tools/include/asm -cp -Rv include/linux /tools/include</userinput></screen> - - <para>If your architecture is not i386 (compatible), adjust the first command - accordingly.</para> - - </sect2> - - <sect2 role="content"> - <title/> - - <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 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;</title> + <title>Linux-Headers-&linux-version;</title> - <indexterm zone="ch-system-linux-libc-headers"> - <primary sortas="a-Linux-Libc-Headers">Linux-Libc-Headers</primary> + <indexterm zone="ch-system-linux-headers"> + <primary sortas="a-Linux-Headers">Linux-Headers</primary> </indexterm> <sect2 role="package"> <title/> - <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</title> + <title>Installation of Linux-Headers</title> - <para>For years it has been common practice to use <quote>raw</quote> - kernel headers (straight from a kernel tarball) in <filename - class="directory">/usr/include</filename>, 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.</para> + <para>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.</para> - <para>Add a userspace header and syscall support for the inotify feature - available in newer Linux kernels:</para> + <para>Apply the following patch to provide <command>unifdef</command>, which + the installation of the kernel headers requires:</para> -<screen><userinput>patch -Np1 -i ../&linux-inotify-patch;</userinput></screen> +<screen><userinput>patch -Np1 -i ../linux-&linux-version;-unifdef-1.patch</userinput></screen> <para>Install the header files:</para> -<screen><userinput>install -dv /usr/include/asm -cp -Rv include/asm-i386/* /usr/include/asm -cp -Rv include/linux /usr/include</userinput></screen> +<screen><userinput>make mrproper +make headers_check +make INSTALL_HDR_PATH=/usr headers_install</userinput></screen> <para>Ensure that all the headers are owned by root:</para> @@ -65,8 +61,8 @@ find /usr/include/{asm,linux} -type f -exec chmod -v 644 {} \;</userinput></scre </sect2> - <sect2 id="contents-linux-libc-headers" role="content"> - <title>Contents of Linux-Libc-Headers</title> + <sect2 id="contents-linux-headers" role="content"> + <title>Contents of Linux-Headers</title> <segmentedlist> <segtitle>Installed headers</segtitle> @@ -81,11 +77,11 @@ find /usr/include/{asm,linux} -type f -exec chmod -v 644 {} \;</userinput></scre <?dbfo list-presentation="list"?> <?dbhtml list-presentation="table"?> - <varlistentry id="linux-libc-headers"> + <varlistentry id="linux-headers"> <term><filename class="headerfile">/usr/include/{asm,linux}/*.h</filename></term> <listitem> <para>The Linux API headers</para> - <indexterm zone="ch-system-linux-libc-headers linux-libc-headers"> + <indexterm zone="ch-system-linux-headers linux-headers"> <primary sortas="e-/usr/include/{asm,linux}/*.h">/usr/include/{asm,linux}/*.h</primary> </indexterm> </listitem> |