diff options
Diffstat (limited to 'chapter06/kernel-headers.xml')
-rw-r--r-- | chapter06/kernel-headers.xml | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/chapter06/kernel-headers.xml b/chapter06/kernel-headers.xml deleted file mode 100644 index 1a51b1a31..000000000 --- a/chapter06/kernel-headers.xml +++ /dev/null @@ -1,80 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [ - <!ENTITY % general-entities SYSTEM "../general.ent"> - %general-entities; -]> -<sect1 id="ch-system-kernel-headers"> -<title>Linux-&linux-version; headers</title> -<?dbhtml filename="kernelheaders.html"?> - -<indexterm zone="ch-system-kernel-headers"> -<primary sortas="a-Linux">Linux</primary> -<secondary>system, headers</secondary></indexterm> - -<screen>&buildtime; 0.1 SBU -&diskspace; 186 MB</screen> - - -<sect2> -<title>Installation of the kernel headers</title> - -<para>We won't be compiling a new kernel yet -- we'll do that when we have -finished the installation of all the packages. But the libraries installed in -the next section need to refer to the kernel header files in order to know how -to interface with the kernel. Instead of unpacking the kernel sources again, -making the version file and the symlinks and so on, we will simply copy the -headers from the temporary tools directory in one swoop:</para> - -<screen><userinput>cp -a /tools/include/{asm,asm-generic,linux} /usr/include</userinput></screen> - -<para>A few kernel header files refer to the <filename>autoconf.h</filename> -header file. Since we have not yet configured the kernel, we need to create -this file ourselves in order to avoid a compilation failure of Sysklogd. -Create an empty <filename>autoconf.h</filename> file with:</para> - -<screen><userinput>touch /usr/include/linux/autoconf.h</userinput></screen> - -</sect2> - - -<sect2> -<title>Why we copy the kernel headers</title> - -<para>In the past it was common practice to symlink the -<filename class="directory">/usr/include/{linux,asm}</filename> directories -to <filename class="directory">/usr/src/linux/include/{linux,asm}</filename>. -This was a <emphasis>bad</emphasis> practice, as the following extract from a -post by Linus Torvalds to the Linux Kernel Mailing List points out:</para> - -<screen>I would suggest that people who compile new kernels should: - - - not have a single symbolic link in sight (except the one that the - kernel build itself sets up, namely the <quote>linux/include/asm</quote> - symlink that is only used for the internal kernel compile itself) - -And yes, this is what I do. My /usr/src/linux still has the old 2.2.13 -header files, even though I haven't run a 2.2.13 kernel in a _loong_ -time. But those headers were what Glibc was compiled against, so those -headers are what matches the library object files. - -And this is actually what has been the suggested environment for at -least the last five years. I don't know why the symlink business keeps -on living on, like a bad zombie. Pretty much every distribution still -has that broken symlink, and people still remember that the linux -sources should go into <quote>/usr/src/linux</quote> even though that hasn't -been true in a _loong_ time.</screen> - -<para>The essential part is where Linus states that the header files should be -<emphasis>the ones which Glibc was compiled against</emphasis>. These are -the headers that should be used when you later compile other packages, as they -are the ones that match the object-code library files. By copying the headers, -we ensure that they remain available if later you upgrade your kernel.</para> - -<para>Note, by the way, that it is perfectly all right to have the kernel sources -in <filename class="directory">/usr/src/linux</filename>, as long as you don't -have the <filename class="directory">/usr/include/{linux,asm}</filename> -symlinks.</para> - -</sect2> - -</sect1> |