Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit faaae2a5 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

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: default avatarMichal Marek <mmarek@suse.com>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 22d3d4fb
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -1945,7 +1945,6 @@ config MODULE_FORCE_UNLOAD

config MODVERSIONS
	bool "Module versioning support"
	depends on BROKEN
	help
	  Usually, you have to use modules compiled with your kernel.
	  Saying Y here makes it sometimes possible to use modules
+3 −2
Original line number Diff line number Diff line
@@ -1301,8 +1301,9 @@ static int check_version(Elf_Shdr *sechdrs,
		goto bad_version;
	}

	pr_warn("%s: no symbol version for %s\n", mod->name, symname);
	return 0;
	/* Broken toolchain. Warn once, then let it go.. */
	pr_warn_once("%s: no symbol version for %s\n", mod->name, symname);
	return 1;

bad_version:
	pr_warn("%s: disagrees about version of symbol %s\n",