Re: kbuild 2.5 is ready for inclusion in the 2.5 kernel

Mark H. Wood
2002-05-03T21:05:54Z

On Thu, 2 May 2002, Alexander Viro wrote:
[quote snipped]
> Sigh... Configurations with /usr/include/{linux,asm} being symlinks
> are BROKEN. Please, look through the archives - it had been discussed
> a lot of times. Userland has no business using kernel headers directly
> and that's precisely what had bitten you - setup where /usr/include/asm
> comes not from libc but from the (currently being built) kernel.

There is a reason that this issue keesp rising from the grave. I just
downloaded the glibc 2.2.5 source tarball and in INSTALL I find
this:

[begin quote]
Specific advice for Linux systems
=================================

If you are installing GNU libc on a Linux system, you need to have
the header files from a 2.2 kernel around for reference. You do not
need to use the 2.2 kernel, just have its headers where glibc can access
at them. The easiest way to do this is to unpack it in a directory
such as `/usr/src/linux-2.2.1'. In that directory, run `make config'
and accept all the defaults. Then run `make include/linux/version.h'.
Finally, configure glibc with the option
`--with-headers=/usr/src/linux-2.2.1/include'. Use the most recent
kernel you can get your hands on.

An alternate tactic is to unpack the 2.2 kernel and run `make
config' as above. Then rename or delete `/usr/include', create a new
`/usr/include', and make the usual symbolic links of
`/usr/include/linux' and `/usr/include/asm' into the 2.2 kernel
sources. You can then configure glibc with no special options. This
tactic is recommended if you are upgrading from libc5, since you need
to get rid of the old header files anyway.

Note that `/usr/include/net' and `/usr/include/scsi' should *not* be
symlinks into the kernel sources. GNU libc provides its own versions
of these files.
[end quote]

Note the bit about "usual symbolic links...into the...kernel sources".

--
Mark H. Wood, Lead System Programmer mwood@IUPUI.Edu
MS Windows *is* user-friendly, but only for certain values of "user".