• Ard Biesheuvel's avatar
    kbuild: modversions: add infrastructure for emitting relative CRCs · 56067812
    Ard Biesheuvel authored
    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: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
genksyms.c 22.8 KB