aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chapter05/linux-headers.xml69
-rw-r--r--chapter05/linux-libc-headers.xml66
-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>