aboutsummaryrefslogtreecommitdiffstats
path: root/chapter06/kernel-exp-headers.xml
diff options
context:
space:
mode:
Diffstat (limited to 'chapter06/kernel-exp-headers.xml')
-rw-r--r--chapter06/kernel-exp-headers.xml35
1 files changed, 35 insertions, 0 deletions
diff --git a/chapter06/kernel-exp-headers.xml b/chapter06/kernel-exp-headers.xml
new file mode 100644
index 000000000..de1256f3c
--- /dev/null
+++ b/chapter06/kernel-exp-headers.xml
@@ -0,0 +1,35 @@
+<sect2>
+<title>Why we copy the kernel headers and don't symlink them</title>
+
+<para>In the past, it was common practice for people to symlink the
+/usr/include/linux and asm directories to /usr/src/linux/include/linux
+and asm respectively. This is a <emphasis>bad</emphasis> idea as
+this 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 "linux/include/asm" 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 "/usr/src/linux" even though that hasn't been
+true in a _loong_ time.</screen>
+
+<para>The relevant part here is where he states that the headers should
+be the ones which <emphasis>glibc was compiled against</emphasis>. These are
+the headers which should remain accessible and so by copying them, we ensure
+that we follow these guidelines. Also note that as long as you don't have
+those symlinks, it is perfectly fine to have the kernel sources
+in <filename>/usr/src/linux</filename>.</para>
+
+</sect2>