All of lore.kernel.org
 help / color / mirror / Atom feed
From: Miroslav Benes <mbenes@suse.cz>
To: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: x86@kernel.org, linux-kernel@vger.kernel.org,
	Nick Desaulniers <ndesaulniers@google.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Nathan Chancellor <natechancellor@gmail.com>
Subject: Re: [PATCH] objtool: Don't fail on missing symbol table
Date: Fri, 15 Jan 2021 12:31:26 +0100 (CET)	[thread overview]
Message-ID: <alpine.LSU.2.21.2101151217000.4375@pobox.suse.cz> (raw)
In-Reply-To: <a96c3f76173c7021a2298bd73362313736e674b6.1610663051.git.jpoimboe@redhat.com>

On Thu, 14 Jan 2021, Josh Poimboeuf wrote:

> Thanks to a recent binutils change which doesn't generate unused
> symbols, it's now possible for thunk_64.o be completely empty with
> CONFIG_PREEMPTION: no text, no data, no symbols.

"without CONFIG_PREEMPTION", or did I misunderstand?
 
> We could edit the Makefile to only build that file when
> CONFIG_PREEMPTION is enabled, but that will likely create confusion
> if/when the thunks end up getting used by some other code again.
> 
> Just ignore it and move on.
> 
> Reported-by: Nathan Chancellor <natechancellor@gmail.com>
> Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>

Reviewed-by: Miroslav Benes <mbenes@suse.cz>

with the note below.

> ---
>  tools/objtool/elf.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/objtool/elf.c b/tools/objtool/elf.c
> index be89c741ba9a..2b0f4f52f7b5 100644
> --- a/tools/objtool/elf.c
> +++ b/tools/objtool/elf.c
> @@ -380,8 +380,11 @@ static int read_symbols(struct elf *elf)
>  
>  	symtab = find_section_by_name(elf, ".symtab");
>  	if (!symtab) {
> -		WARN("missing symbol table");
> -		return -1;
> +		/*
> +		 * A missing symbol table is actually possible if it's an empty
> +		 * .o file.  This can happen for thunk_64.o.
> +		 */
> +		return 0;
>  	}

We rely on .symtab presence elsewhere in the code. See 
elf_create_{rel,rela}_reloc_section(). However, there should never be a 
problem. If there is a need to create a new reloc section (either for a 
static call site, or ORC), there should always be a symbol to create it 
for (or because of it).

Miroslav

  parent reply	other threads:[~2021-01-15 11:32 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-14 22:24 [PATCH] objtool: Don't fail on missing symbol table Josh Poimboeuf
2021-01-14 22:32 ` Nathan Chancellor
2021-01-15 11:31 ` Miroslav Benes [this message]
2021-01-15 15:32   ` Josh Poimboeuf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.LSU.2.21.2101151217000.4375@pobox.suse.cz \
    --to=mbenes@suse.cz \
    --cc=jpoimboe@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=natechancellor@gmail.com \
    --cc=ndesaulniers@google.com \
    --cc=peterz@infradead.org \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.