Red Hat Bugzilla – Bug 16457
kernel includes are linked incorrectly
Last modified: 2008-05-01 11:37:57 EDT
- /usr/include/asm is linked to -> /usr/src/linux-2.4/include/asm instead of /usr/src/linux/include/asm
- /usr/include/linux is linked to -> /usr/src/linux-2.4/include/linux instead of /usr/src/linux/include/linux
the above two cause problems because the actual kernel used for 7.0beta is 2.2.16 at this time. In particular, this causes a problem when compiling new kernel modules and trying to insmod it into the wrong compiled kernel.
Not a bug; you should point the external module build
at the correct kernel source tree (for example,
the module file should not have to include the direct include path. it should especially not have to include based on version number if no specific version number is required. #include <linux/module.h> ought to include the correct module file from /usr/src/<linux kernel version>/include/linux. In the past, the links have been (correctly) from /usr/src/linux -> /usr/src/<linux kernel version> and /usr/include/linux (and asm) -> /usr/src/linux/include/linux (and asm).
The problem is that /usr/include/linux is used by glibc for all userland
compiles; these should not be kernel-version dependent.
modules implicitly need to know the kernel version you're running, so
having them point at a separate directory is sensible. For example,
pointing it at /usr/src/linux should work OK on a beta box.
Plus, Linus himself has decreed that /usr/include/linux and /usr/include/asm
should be *directories* used by glibc, and should not be changed with
each new kernel installed; so has he said, so it shall be done (look
at rawhide; it's been changed this way there.)
In short, this was changed intentionally, and we aren't changing back.