Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Re-enable CONFIG_MODVERSIONS in a slightly weaker form

This enables CONFIG_MODVERSIONS again, but allows for missing symbol CRC
information in order to work around the issue that newer binutils
versions seem to occasionally drop the CRC on the floor. binutils 2.26
seems to work fine, while binutils 2.27 seems to break MODVERSIONS of
symbols that have been defined in assembler files.

[ We've had random missing CRC's before - it may be an old problem that
just is now reliably triggered with the weak asm symbols and a new
version of binutils ]

Some day I really do want to remove MODVERSIONS entirely. Sadly, today
does not appear to be that day: Debian people apparently do want the
option to enable MODVERSIONS to make it easier to have external modules
across kernel versions, and this seems to be a fairly minimal fix for
the annoying problem.

Cc: Ben Hutchings <ben@decadent.org.uk>
Acked-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

+3 -3
-1
init/Kconfig
··· 1945 1945 1946 1946 config MODVERSIONS 1947 1947 bool "Module versioning support" 1948 - depends on BROKEN 1949 1948 help 1950 1949 Usually, you have to use modules compiled with your kernel. 1951 1950 Saying Y here makes it sometimes possible to use modules
+3 -2
kernel/module.c
··· 1301 1301 goto bad_version; 1302 1302 } 1303 1303 1304 - pr_warn("%s: no symbol version for %s\n", mod->name, symname); 1305 - return 0; 1304 + /* Broken toolchain. Warn once, then let it go.. */ 1305 + pr_warn_once("%s: no symbol version for %s\n", mod->name, symname); 1306 + return 1; 1306 1307 1307 1308 bad_version: 1308 1309 pr_warn("%s: disagrees about version of symbol %s\n",