Re: [RFC PATCH v2 06/17] objtool: Improve offstr() output
From: Josh Poimboeuf
Date: Tue Sep 23 2025 - 18:23:30 EST
On Thu, Jun 19, 2025 at 04:56:48PM +0200, Alexandre Chartre wrote:
> offset() formats a section offset into a "<symbol>+<offset>" string.
> Improve the output to just "<symbol>" when the offset is zero.
>
> Signed-off-by: Alexandre Chartre <alexandre.chartre@xxxxxxxxxx>
> ---
> tools/objtool/include/objtool/warn.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/tools/objtool/include/objtool/warn.h b/tools/objtool/include/objtool/warn.h
> index 125093d568be..d89e6ae69143 100644
> --- a/tools/objtool/include/objtool/warn.h
> +++ b/tools/objtool/include/objtool/warn.h
> @@ -43,12 +43,12 @@ static inline char *offstr(struct section *sec, unsigned long offset)
>
> if (sym) {
> str = malloc(strlen(sym->name) + strlen(sec->name) + 40);
> - len = sprintf(str, "%s+0x%lx", sym->name, offset - sym->offset);
> + len = sprint_name(str, sym->name, offset - sym->offset);
> if (opts.sec_address)
> sprintf(str+len, " (%s+0x%lx)", sec->name, offset);
> } else {
> str = malloc(strlen(sec->name) + 20);
> - sprintf(str, "%s+0x%lx", sec->name, offset);
> + sprint_name(str, sec->name, offset);
Maybe this makes sense for the disassembler, but I'm not sure we want to
remove the zero for the more general warning case, as the intent is
usually to point to a specific instruction.
--
Josh