kbuild: lto: postpone objtool
authorSami Tolvanen <samitolvanen@google.com>
Mon, 13 Apr 2020 23:10:13 +0000 (16:10 -0700)
committerKees Cook <keescook@chromium.org>
Tue, 23 Feb 2021 20:46:57 +0000 (12:46 -0800)
commitb1a1a1a09b4606d41723a426110382d2077c26fb
tree4c6672f8aa90443585f2ceb4cb4e65425d800c6a
parent41425ebe20245c99b44d6ba0f017be9bfc28414f
kbuild: lto: postpone objtool

With LTO, LLVM bitcode won't be compiled into native code until
modpost_link, or modfinal for modules. This change postpones calls
to objtool until after these steps, and moves objtool_args to
Makefile.lib, so the arguments can be reused in Makefile.modfinal.

As we didn't have objects to process earlier, we use --duplicate
when processing vmlinux.o. This change also disables unreachable
instruction warnings with LTO to avoid warnings about the int3
padding between functions.

Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
scripts/Makefile.build
scripts/Makefile.lib
scripts/Makefile.modfinal
scripts/link-vmlinux.sh