android_kernel_motorola_sm6375/tools/objtool
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Josh Poimboeuf c8a5496bc7 objtool: Support Clang non-section symbols in ORC generation
commit e81e0724432542af8d8c702c31e9d82f57b1ff31 upstream.

When compiling the kernel with AS=clang, objtool produces a lot of
warnings:

  warning: objtool: missing symbol for section .text
  warning: objtool: missing symbol for section .init.text
  warning: objtool: missing symbol for section .ref.text

It then fails to generate the ORC table.

The problem is that objtool assumes text section symbols always exist.
But the Clang assembler is aggressive about removing them.

When generating relocations for the ORC table, objtool always tries to
reference instructions by their section symbol offset.  If the section
symbol doesn't exist, it bails.

Do a fallback: when a section symbol isn't available, reference a
function symbol instead.

Reported-by: Dmitry Golovin <dima@golovin.in>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://github.com/ClangBuiltLinux/linux/issues/669
Link: https://lkml.kernel.org/r/9a9cae7fcf628843aabe5a086b1a3c5bf50f42e8.1585761021.git.jpoimboe@redhat.com
Cc: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-11-01 12:01:01 +01:00
..
arch/x86 objtool: Move x86 insn decoder to a common location 2019-08-31 22:27:52 -03:00
Documentation
.gitignore
arch.h objtool: Support conditional retpolines 2019-07-18 21:01:10 +02:00
Build
builtin-check.c
builtin-orc.c
builtin.h
cfi.h
check.c objtool: Fix noreturn detection for ignored functions 2020-10-01 13:18:15 +02:00
check.h objtool: Improve UACCESS coverage 2019-07-25 08:36:39 +02:00
elf.c objtool: Refactor jump table code 2019-07-18 21:01:09 +02:00
elf.h objtool: Support repeated uses of the same C jump table 2019-07-18 21:01:09 +02:00
Makefile kbuild: support LLVM=1 to switch the default tools to Clang/LLVM 2020-08-26 10:40:47 +02:00
objtool.c
orc.h
orc_dump.c objtool: Support Clang non-section symbols in ORC dump 2020-05-02 08:48:57 +02:00
orc_gen.c objtool: Support Clang non-section symbols in ORC generation 2020-11-01 12:01:01 +01:00
special.c
special.h
sync-check.sh objtool: Silence build output 2020-02-11 04:35:10 -08:00
warn.h