]> Git Repo - linux.git/commit
objtool: Support Clang non-section symbols in ORC generation
authorJosh Poimboeuf <[email protected]>
Wed, 1 Apr 2020 18:23:27 +0000 (13:23 -0500)
committerBorislav Petkov <[email protected]>
Tue, 14 Apr 2020 10:03:42 +0000 (12:03 +0200)
commite81e0724432542af8d8c702c31e9d82f57b1ff31
tree3bab982c6dd8727e96181ada8f9cf0ca0638f58f
parent8782e7cab51b6bf01a5a86471dd82228af1ac185
objtool: Support Clang non-section symbols in ORC generation

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 <[email protected]>
Signed-off-by: Josh Poimboeuf <[email protected]>
Signed-off-by: Borislav Petkov <[email protected]>
Tested-by: Nathan Chancellor <[email protected]>
Reviewed-by: Miroslav Benes <[email protected]>
Acked-by: Peter Zijlstra (Intel) <[email protected]>
Link: https://github.com/ClangBuiltLinux/linux/issues/669
Link: https://lkml.kernel.org/r/9a9cae7fcf628843aabe5a086b1a3c5bf50f42e8.1585761021.git.jpoimboe@redhat.com
tools/objtool/orc_gen.c
This page took 0.053687 seconds and 4 git commands to generate.