Re: [PATCH v2 11/12] retpoline/objtool: Disable some objtool warnings

From: Josh Poimboeuf
Date: Thu Jan 04 2018 - 09:38:24 EST


On Wed, Jan 03, 2018 at 06:00:18PM -0800, Andi Kleen wrote:
> From: Andi Kleen <ak@xxxxxxxxxxxxxxx>
>
> With the indirect call thunk enabled compiler two objtool
> warnings are triggered very frequently and make the build
> very noisy.
>
> I don't see a good way to avoid them, so just disable them
> for now.
>
> Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>
>
> ---
> tools/objtool/check.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/tools/objtool/check.c b/tools/objtool/check.c
> index 9b341584eb1b..435c71f944dc 100644
> --- a/tools/objtool/check.c
> +++ b/tools/objtool/check.c
> @@ -503,8 +503,13 @@ static int add_call_destinations(struct objtool_file *file)
> insn->call_dest = find_symbol_by_offset(insn->sec,
> dest_off);
> if (!insn->call_dest) {
> +#if 0
> + /* Compilers with -mindirect-branch=thunk-extern trigger
> + * this everywhere on x86. Disable for now.
> + */
> WARN_FUNC("can't find call dest symbol at offset 0x%lx",
> insn->sec, insn->offset, dest_off);
> +#endif
> return -1;
> }
> } else if (rela->sym->type == STT_SECTION) {
> @@ -1716,8 +1721,14 @@ static int validate_branch(struct objtool_file *file, struct instruction *first,
> return 1;
>
> } else if (func && has_modified_stack_frame(&state)) {
> +#if 0
> + /* Compilers with -mindirect-branch=thunk-extern trigger
> + * this everywhere on x86. Disable for now.
> + */
> +
> WARN_FUNC("sibling call from callable instruction with modified stack frame",
> sec, insn->offset);
> +#endif
> return 1;
> }
>
> --
> 2.14.3

NAK. We can't blindly disable objtool warnings, that will break
livepatch and the ORC unwinder. If you share a .o file (or the GCC
code) I can look at adding retpoline support.

--
Josh