linux-stable/tools/objtool
Peter Zijlstra 9bc0bb5072 objtool/x86: Rewrite retpoline thunk calls
When the compiler emits: "CALL __x86_indirect_thunk_\reg" for an
indirect call, have objtool rewrite it to:

	ALTERNATIVE "call __x86_indirect_thunk_\reg",
		    "call *%reg", ALT_NOT(X86_FEATURE_RETPOLINE)

Additionally, in order to not emit endless identical
.altinst_replacement chunks, use a global symbol for them, see
__x86_indirect_alt_*.

This also avoids objtool from having to do code generation.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
Link: https://lkml.kernel.org/r/20210326151300.320177914@infradead.org
2021-04-02 12:47:28 +02:00
..
arch/x86 objtool/x86: Rewrite retpoline thunk calls 2021-04-02 12:47:28 +02:00
Documentation objtool: Support stack layout changes in alternatives 2021-01-14 09:53:54 -06:00
include/objtool objtool: Cache instruction relocs 2021-04-02 12:46:15 +02:00
.gitignore objtool: Rework header include paths 2021-01-13 18:13:14 -06:00
Build objtool: Enable compilation of objtool for all architectures 2020-05-20 09:17:28 -05:00
builtin-check.c clang-lto for v5.12-rc1 (part2) 2021-02-23 15:13:45 -08:00
builtin-orc.c objtool: Refactor ORC section generation 2021-01-14 09:53:42 -06:00
check.c objtool: Cache instruction relocs 2021-04-02 12:46:15 +02:00
elf.c objtool: Add elf_create_undef_symbol() 2021-04-02 12:45:05 +02:00
Makefile objtool: Refactor ORC section generation 2021-01-14 09:53:42 -06:00
objtool.c objtool: Keep track of retpoline call sites 2021-04-02 12:45:27 +02:00
orc_dump.c x86/unwind/orc: Change REG_SP_INDIRECT 2021-02-10 20:53:51 +01:00
orc_gen.c objtool: Create reloc sections implicitly 2021-04-02 12:44:37 +02:00
special.c objtool: Skip magical retpoline .altinstr_replacement 2021-04-02 12:46:57 +02:00
sync-check.sh Merge branch 'x86/cpu' into WIP.x86/core, to merge the NOP changes & resolve a semantic conflict 2021-04-02 12:36:30 +02:00
weak.c objtool: Refactor ORC section generation 2021-01-14 09:53:42 -06:00