[GIT PULL] objtool changes for v6.3

From: Ingo Molnar
Date: Thu Mar 02 2023 - 03:04:11 EST


Linus,

Please pull the latest objtool/core git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git objtool-core-2023-03-02

# HEAD: 00c8f01c4e84637c3db76f368b8687cb61f4dd9d objtool: Fix ORC 'signal' propagation

NOTE:

- We had to perform a rebase of 10 tail commits a week ago & merged in an
upstream tree within the merge window [585a78c1f77b], to eliminate
3 duplicate commits with the Xen tree that are already upstream. (This
was a cross-tree cooperation mishap we didn't want to cause duplicate
upstream commits - just in case you are wondering about the merge commit.)

Changes in this cycle were:

- Shrink 'struct instruction', to improve objtool performance & memory
footprint.

- Other maximum memory usage reductions - this makes the build both faster,
and fixes kernel build OOM failures on allyesconfig and similar configs
when they try to build the final (large) vmlinux.o.

- Fix ORC unwinding when a kprobe (INT3) is set on a stack-modifying
single-byte instruction (PUSH/POP or LEAVE). This requires the
extension of the ORC metadata structure with a 'signal' field.

- Misc fixes & cleanups.

Thanks,

Ingo

------------------>
Ian Rogers (3):
objtool: Install libsubcmd in build
objtool: Properly support make V=1
objtool: Fix HOSTCC flag usage

Josh Poimboeuf (3):
x86/unwind/orc: Add 'signal' field to ORC metadata
x86/entry: Fix unwinding from kprobe on PUSH/POP instruction
objtool: Fix ORC 'signal' propagation

Miaoqian Lin (1):
objtool: Fix memory leak in create_static_call_sections()

Michal Kubecek (1):
objtool: Check that module init/exit function is an indirect call target

Peter Zijlstra (9):
objtool: Change arch_decode_instruction() signature
objtool: Make instruction::stack_ops a single-linked list
objtool: Make instruction::alts a single-linked list
objtool: Shrink instruction::{type,visited}
objtool: Remove instruction::reloc
objtool: Union instruction::{call_dest,jump_table}
objtool: Fix overlapping alternatives
x86: Fix FILL_RETURN_BUFFER
objtool: Remove instruction::list

Thomas Weißschuh (5):
objtool: Make struct entries[] static and const
objtool: Make struct check_options static
objtool: Allocate multiple structures with calloc()
objtool: Optimize layout of struct symbol
objtool: Optimize layout of struct special_alt


arch/x86/entry/entry_64.S | 9 +-
arch/x86/include/asm/nospec-branch.h | 2 +-
arch/x86/include/asm/orc_types.h | 4 +-
arch/x86/include/asm/unwind_hints.h | 10 +-
arch/x86/kernel/unwind_orc.c | 5 +-
include/linux/objtool.h | 11 +-
tools/arch/x86/include/asm/orc_types.h | 4 +-
tools/include/linux/objtool.h | 11 +-
tools/objtool/.gitignore | 1 +
tools/objtool/Build | 2 -
tools/objtool/Documentation/objtool.txt | 8 +
tools/objtool/Makefile | 66 ++++--
tools/objtool/arch/powerpc/decode.c | 22 +-
tools/objtool/arch/x86/decode.c | 107 +++++----
tools/objtool/builtin-check.c | 2 +-
tools/objtool/check.c | 375 ++++++++++++++++++++------------
tools/objtool/elf.c | 42 ++--
tools/objtool/include/objtool/arch.h | 6 +-
tools/objtool/include/objtool/builtin.h | 2 -
tools/objtool/include/objtool/cfi.h | 1 +
tools/objtool/include/objtool/check.h | 61 +++---
tools/objtool/include/objtool/elf.h | 9 +-
tools/objtool/include/objtool/objtool.h | 1 -
tools/objtool/include/objtool/special.h | 2 +-
tools/objtool/objtool.c | 1 -
tools/objtool/orc_dump.c | 4 +-
tools/objtool/orc_gen.c | 1 +
tools/objtool/special.c | 6 +-
28 files changed, 455 insertions(+), 320 deletions(-)