Messages in this thread | | | Date | Mon, 30 Mar 2020 14:31:36 +0200 | From | Ingo Molnar <> | Subject | [GIT PULL] core/objtool changes for v5.7 |
| |
Linus,
Please pull the latest core-objtool-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git core-objtool-for-linus
# HEAD: 350994bf95414d6da67a72f27d7ac3832ce3725d objtool: Re-arrange validate_functions()
The biggest changes in this cycle were the vmlinux.o optimizations by Peter Zijlstra, which are preparatory and optimization work to run objtool against the much richer vmlinux.o object file, to perform new, whole-program section based logic. That work exposed a handful of problems with the existing code, which fixes and optimizations are merged here. The complete 'vmlinux.o and noinstr' work is still work in progress, targeted for v5.8.
There's also assorted fixes and enhancements from Josh Poimboeuf.
In particular I'd like to draw attention to commit 644592d328370, which turns fatal objtool errors into failed kernel builds. This behavior is IMO now justified on multiple grounds (it's easy currently to not notice an essentially corrupted kernel build), and the commit has been in -next testing for several weeks, but there could still be build failures with old or weird toolchains. Should that be widespread or high profile enough then I'd suggest a quick revert, to not hold up the merge window.
Thanks,
Ingo
------------------> Josh Poimboeuf (5): objtool: Fail the kernel build on fatal errors objtool: Add is_static_jump() helper objtool: Add relocation check for alternative sections objtool: Fix clang switch table edge case objtool: Improve call destination function detection
Peter Zijlstra (17): objtool: Introduce validate_return() objtool: Rename func_for_each_insn() objtool: Rename func_for_each_insn_all() x86/kexec: Use RIP relative addressing x86/kexec: Make relocate_kernel_64.S objtool clean objtool: Optimize find_symbol_by_index() objtool: Add a statistics mode objtool: Optimize find_section_by_index() objtool: Optimize find_section_by_name() objtool: Optimize find_symbol_*() and read_symbols() objtool: Rename find_containing_func() objtool: Resize insn_hash objtool: Optimize find_symbol_by_name() objtool: Optimize read_sections() objtool: Delete cleanup() objtool: Optimize find_rela_by_dest_range() objtool: Re-arrange validate_functions()
arch/x86/kernel/Makefile | 1 - arch/x86/kernel/relocate_kernel_64.S | 12 +- tools/objtool/Build | 5 + tools/objtool/builtin-check.c | 3 +- tools/objtool/builtin.h | 2 +- tools/objtool/check.c | 268 +++++++++++++++++++-------------- tools/objtool/check.h | 2 +- tools/objtool/elf.c | 281 +++++++++++++++++++++++++---------- tools/objtool/elf.h | 51 ++++++- tools/objtool/orc_gen.c | 9 +- tools/objtool/special.c | 4 +- tools/objtool/warn.h | 2 +- 12 files changed, 429 insertions(+), 211 deletions(-)
| |