linux/scripts/genksyms
Ard Biesheuvel 56067812d5 kbuild: modversions: add infrastructure for emitting relative CRCs
This add the kbuild infrastructure that will allow architectures to emit
vmlinux symbol CRCs as 32-bit offsets to another location in the kernel
where the actual value is stored. This works around problems with CRCs
being mistaken for relocatable symbols on kernels that self relocate at
runtime (i.e., powerpc with CONFIG_RELOCATABLE=y)

For the kbuild side of things, this comes down to the following:

 - introducing a Kconfig symbol MODULE_REL_CRCS

 - adding a -R switch to genksyms to instruct it to emit the CRC symbols
   as references into the .rodata section

 - making modpost distinguish such references from absolute CRC symbols
   by the section index (SHN_ABS)

 - making kallsyms disregard non-absolute symbols with a __crc_ prefix

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2017-02-03 08:28:25 -08:00
..
.gitignore genksyms: migrate parser to implicit rules 2011-06-09 14:04:41 -04:00
Makefile scripts/genksyms: clean lex/yacc generated files 2012-01-08 14:48:15 +01:00
genksyms.c kbuild: modversions: add infrastructure for emitting relative CRCs 2017-02-03 08:28:25 -08:00
genksyms.h genksyms: Do not expand internal types 2011-10-11 12:00:39 +02:00
keywords.gperf kbuild/genksyms: handle va_list type 2016-11-29 15:53:19 +01:00
keywords.hash.c_shipped genksyms: Regenerate parser 2016-11-29 15:57:40 +01:00
lex.l kbuild: genksyms fix for typeof handling 2016-08-25 18:55:37 +02:00
lex.lex.c_shipped kbuild: Regenerate genksyms lexer 2016-08-25 20:03:51 +02:00
parse.tab.c_shipped genksyms: Regenerate parser 2016-11-29 15:57:40 +01:00
parse.tab.h_shipped genksyms: Regenerate parser 2016-11-29 15:57:40 +01:00
parse.y kbuild/genksyms: handle va_list type 2016-11-29 15:53:19 +01:00