[kernel-abi] symbol versioning vs. out-of-tree modules.

Paweł Sikora
2008-09-24T15:08:17Z

Hi All,

with out-of-tree kernel modules we (users and linux distributions)
have a problem - with every frequent kernel release we need
to rebuild them all due to vermagic and possible abi changes.
this leads to lot of useless work (bumping rpm specs releases,
preparing rpm packages and so on).

naturally we could workaround the modprobe vermagic errors
but we currently can't detect the big-bang kernel abi changes.
e.g., some kernel function changes its parameter list while
the exported function(symbol) name still staying unchanged.
finally we get a modprobe-big-bang.

in fact, we can't use a c++ symbol name mangling to avoid
such problems but kernel build system could use a linker script
to versioning symbols (like glibc/libgcc). during the abi change,
kernel developers could just bump the symbol version and
external modules could be refused during loading with
'unresolved symbol' error which is imho much better solution
that an oops.

is it acceptable and possible to introducing such solution?
thanks for comments.

BR,
pawel.