Robert P. J. Day wrote: >
On 3 Jul 2003, Arjan van de Ven wrote:ANYTHING that requires the headers from the currently running kernel needs to use the /lib/modules/`uname -r`/build/include directory.
ok, good. that suggests that there's no need for the kernel source to be under /usr/src, so i can move it. and building a new kernel and modules should create the appropriate symlink under /lib/modules so that everything still works.
rday
But this still isn't foolproof (speaking from the fools POV:). If you build the source with SMP, say with KERNELRELEASE=2.4.20-18.9smp this results in a set of modules versioned for this configuration of the kernel. Then if you rebuild the source for a uniprocessor kernel (say KERNELRELEASE=2.4.20-18.9), you'll find that both /lib/modules/2.4.20-18.9/build/include and /lib/modules/2.4.20-18.9smp/build/include point to the same include directory. This happens using the redhat supplied config files.
This is a problem, since the module version files are different (in include/linux/modules/*.ver) for the two different configurations of the same kernel source. I currently rebuild the kernel (up through "make dep") to re-generate the module info when building add-on modules for different kernel "flavors".
In these days of cheap disk storage, it would be nice if /lib/modules/`uname -r`/build/include contained a *copy* of the kernel include files. It would make it easier to build add-on modules for multiple configurations of a kernel. I hope something like happens in 2.6.
-Bob Arendt