Choice of gcc versions for kernel modules
I'm not sure what to do with bug #374367 against OpenAFS, so I'm asking
for advice. The short version (slightly longer version in the bug log) is
that the archive has switched from gcc 4.0 to gcc 4.1, but the AMD64
kernel (at least -- I haven't checked other architectures) was built with
gcc 4.0. However, CC in the linux-headers packages is set to just "gcc"
and therefore uses the system default.
Of course, if one builds a kernel module with gcc 4.1 and tries to load it
into a kernel built with gcc 4.0, it doesn't load and OpenAFS
initialization fails. However, OpenAFS uses the kbuild machinery to build
the module and therefore doesn't set the compiler itself.
Modifying CC in /usr/src/linux-headers-2.6.16-2-amd64-k8/Makefile to be
gcc-4.0 instead of gcc fixes the problem. Shouldn't this be done in the
kernel headers by default, given that the gcc packages provide a versioned
binary and given that using a different major version of gcc is pretty
much always going to fail?
Should I reassign this bug to one of the kernel packages (and probably
downgrade it)? Is this problem going to just go away once 2.6.17 hits
unstable and I should wait? Is there something I should be doing in the
build machinery for OpenAFS (which is unfortunately complex) that I'm not
Russ Allbery (email@example.com) <http://www.eyrie.org/~eagle/>