Re: [PATCH v2 00/20] objtool: vmlinux.o and CLANG LTO support

From: Sedat Dilek
Date: Thu Jan 21 2021 - 17:40:27 EST


On Thu, Jan 21, 2021 at 10:29 PM Josh Poimboeuf <jpoimboe@xxxxxxxxxx> wrote:
>
> v2:
> - fix commit description for why xen hypervisor page contents don't
> matter [Juergen]
> - annotate indirect jumps as safe instead of converting them to
> retpolines [Andrew, Juergen]
> - drop patch 1 - fake jumps no longer exist
> - add acks
>
> Based on tip/objtool/core.
>
>
> Add support for proper vmlinux.o validation, which will be needed for
> Sami's upcoming x86 LTO set. (And vmlinux validation is the future for
> objtool anyway, for other reasons.)
>
> This isn't 100% done -- most notably, crypto still needs to be supported
> -- but I think this gets us most of the way there.
>
> This can also be found at
>
> git://git.kernel.org/pub/scm/linux/kernel/git/jpoimboe/linux.git objtool-vmlinux
>

Should this be s/objtool-vmlinux/objtool-vmlinux-v2 ?

- Sedat -

> And for more testing it can be combined with Sami's x86 LTO patches:
>
> https://github.com/samitolvanen/linux clang-lto
>
>
> Josh Poimboeuf (20):
> objtool: Fix error handling for STD/CLD warnings
> objtool: Fix retpoline detection in asm code
> objtool: Fix ".cold" section suffix check for newer versions of GCC
> objtool: Support retpoline jump detection for vmlinux.o
> x86/ftrace: Add UNWIND_HINT_FUNC annotation for ftrace_stub
> objtool: Assume only ELF functions do sibling calls
> objtool: Add asm version of STACK_FRAME_NON_STANDARD
> objtool: Combine UNWIND_HINT_RET_OFFSET and UNWIND_HINT_FUNC
> objtool: Add xen_start_kernel() to noreturn list
> objtool: Move unsuffixed symbol conversion to a helper function
> objtool: Add CONFIG_CFI_CLANG support
> x86/xen: Support objtool validation in xen-asm.S
> x86/xen: Support objtool vmlinux.o validation in xen-head.S
> x86/xen/pvh: Annotate indirect branch as safe
> x86/ftrace: Support objtool vmlinux.o validation in ftrace_64.S
> x86/acpi: Annotate indirect branch as safe
> x86/acpi: Support objtool validation in wakeup_64.S
> x86/power: Annotate indirect branches as safe
> x86/power: Move restore_registers() to top of the file
> x86/power: Support objtool validation in hibernate_asm_64.S
>
> arch/x86/include/asm/unwind_hints.h | 13 +---
> arch/x86/kernel/acpi/Makefile | 1 -
> arch/x86/kernel/acpi/wakeup_64.S | 4 +
> arch/x86/kernel/ftrace_64.S | 8 +-
> arch/x86/lib/retpoline.S | 2 +-
> arch/x86/platform/pvh/head.S | 2 +
> arch/x86/power/Makefile | 1 -
> arch/x86/power/hibernate_asm_64.S | 103 +++++++++++++-------------
> arch/x86/xen/Makefile | 1 -
> arch/x86/xen/xen-asm.S | 29 +++++---
> arch/x86/xen/xen-head.S | 5 +-
> include/linux/objtool.h | 13 +++-
> tools/include/linux/objtool.h | 13 +++-
> tools/objtool/arch/x86/decode.c | 4 +-
> tools/objtool/arch/x86/special.c | 2 +-
> tools/objtool/check.c | 89 ++++++++++++----------
> tools/objtool/elf.c | 88 ++++++++++++++++------
> tools/objtool/include/objtool/check.h | 12 ++-
> tools/objtool/include/objtool/elf.h | 2 +-
> 19 files changed, 240 insertions(+), 152 deletions(-)
>
> --
> 2.29.2
>