[PLUG] Compilation problems

Jonathan Sergent sergent@csociety.purdue.edu
Mon, 07 Aug 2000 08:20:19 -0700


> The kernel header files usually stay in /usr/src/linux/include so that the
> current kernel's include files are available to a program requiring them.

That's actually not quite true anymore.

> I'm not sure why everyone seems to be having problems since if you need a
> include file from the kernel it should always be available in
> /usr/src/linux/include ... that is the best way to get it since you are
> suppose to symlink your current kernel's directory to /usr/src/linux
> 
> Maybe I don't see the problem you guys are having.
> 
> Copying everything from /usr/src/linux/include to /usr/include  is a BAD
> idea since you'd have to do that everytime you complie a new kernel.... 

Not actually, because /usr/include/linux is supposed to have the headers 
your C library was built against.

If you just install a new kernel, you should feel free to build it as 
yourself (not as root) in your home directory, and don't make any 
symlinks with /usr/src/linux or anywhere else.

Note that this was not always the case; before libc 6 in particular.
Your program's compatibility (binary-wise) should not depend on the
version of the kernel that is booted...

If /usr/include/linux is missing, then you have not installed one or more
of the packages from your distribution.  Red Hat ships a kernel-headers
package with that in it; Debian ships those files as part of libc6-dev.
(RH puts them in /usr/src/linux and does the symlinks, but like I say,
that's just because they have always done it that way).


--jss.