> what programs should do and what they actually do are totally different.  I run a couple of utilities that *have* to be built against the *current* kernel header files. AFAIK there is no alternative to the pcmcia and wireless tools that must be built against the current headers.  They look in /usr/src/linux by default so a good reason is its easier to put the source there.


They need to be built against the *current running kernel's* headers.


> What is a reason not to put them in /usr/src/linux?  just chmod so you don't have to be root to build there.  Its always nice to have a standard place to find them. 

Because this may or may not be the current running kernel. To be more 
flexable for those dealing with many different version kernel sources, 
and to discourage people from building the kernel as root.

Current practice is to look in /lib/modules/`uname -r`/build/ for the 
headers of the running kernel. This is a symlink created by 
modules_install to wherever your kernel source actually is.