kbuild: lto: fix module versioning
authorSami Tolvanen <samitolvanen@google.com>
Fri, 11 Dec 2020 18:46:20 +0000 (10:46 -0800)
committerKees Cook <keescook@chromium.org>
Thu, 14 Jan 2021 16:21:08 +0000 (08:21 -0800)
commit38e89184900385b0dad1ee55c35ae8abcfee6ece
tree2fceafbc8aaa221c67b16a20908db6bda6a5305d
parentdc5723b02e523b2c4a68667f7e28c65018f7202f
kbuild: lto: fix module versioning

With CONFIG_MODVERSIONS, version information is linked into each
compilation unit that exports symbols. With LTO, we cannot use this
method as all C code is compiled into LLVM bitcode instead. This
change collects symbol versions into .symversions files and merges
them in link-vmlinux.sh where they are all linked into vmlinux.o at
the same time.

Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20201211184633.3213045-4-samitolvanen@google.com
.gitignore
Makefile
arch/Kconfig
scripts/Makefile.build
scripts/Makefile.modpost
scripts/link-vmlinux.sh