>> Scott Dier - dieman <dieman@...> writes:
> On Tue, 16 May 2000, Jeff Hartmann wrote:
> > Basically because it isn't guaranteed to be the correct place to look.
> > We make the assumption that you are building for the kernel you are
> debian keeps headers from the *image* in /usr/include/linux, but many of
> us just grab the .tar.gz when it comes out... so therefore we have it in
That's not entirely correct. Read /usr/doc/libc6/README.Debian.gz
Q1: Why does the Debian libc6-dev package create /usr/include/linux
and /usr/include/asm directories containing header files from a
specific kernel, instead of using the "established" convention of
making those directories into symlinks pointing to the currently
A1: Occasionally, changes in the kernel headers cause problems with
the compilation of libc and of programs that use libc. To ensure
that users are not affected by these problems, we configure libc to
use the headers from a kernel that is known to work with libc and the
programs that depend on stable kernel headers.
And, I don't want to start a filesystem hierarchy flamewar, but FHS
4.9 /usr/src : Source code
Any non-local source code should be placed in this subdirectory.
4.6 /usr/local : Local hierarchy
The /usr/local hierarchy is for use by the system administrator when
installing software locally. It needs to be safe from being
overwritten when the system software is updated. It may be used for
programs and data that are shareable amongst a group of hosts, but not
found in /usr.
Debian follows the FHS. Special consideration should be paid to that
"needs to be safe from being overwritten when the system software is
In a nutshell, it would be advisable to install your kernels on
That said, it is (a bit) irritating that the compilation guide
explicitly says one should *remove* /usr/src/linux.
Furthermore, if you *really* want some "standard" location (there's
none, ergo the quotes), look in kernel-package. Something like
$ make-kpkg --revision foo.3.1415 build
$ fakeroot make-kpkg kernel_image
does the trick. And if you *really* need the headers, kernel_headers
is your friend.
IIRC, something like
$ make TREE=/usr/local/src/linux/kernel-foo/include
worked for me. Someone might want to document this more