[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <e7e1de1d01194df3ff4053cb0815fc2ddba33213.1687360711.git.christophe.leroy@csgroup.eu>
Date: Wed, 21 Jun 2023 17:20:31 +0200
From: Christophe Leroy <christophe.leroy@...roup.eu>
To: Josh Poimboeuf <jpoimboe@...nel.org>,
Peter Zijlstra <peterz@...radead.org>
Cc: Christophe Leroy <christophe.leroy@...roup.eu>,
linux-kernel@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org
Subject: [PATCH] objtool: Make 'sec-address' always on
Most of the time objtool warnings are useless without the
absolute address within the section.
Today there is --sec-address option to get it printed, but
that option is nowhere used and requires a change in Makefile
to use it.
Having the address inside the section at all time in addition
to the address within the object doesn't hurt and will help.
Remove the --sec-address option and print it at all time.
Signed-off-by: Christophe Leroy <christophe.leroy@...roup.eu>
---
tools/objtool/builtin-check.c | 1 -
tools/objtool/include/objtool/builtin.h | 1 -
tools/objtool/include/objtool/warn.h | 6 ++----
3 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/tools/objtool/builtin-check.c b/tools/objtool/builtin-check.c
index 7c175198d09f..d5024a95467a 100644
--- a/tools/objtool/builtin-check.c
+++ b/tools/objtool/builtin-check.c
@@ -91,7 +91,6 @@ static const struct option check_options[] = {
OPT_BOOLEAN(0, "module", &opts.module, "object is part of a kernel module"),
OPT_BOOLEAN(0, "mnop", &opts.mnop, "nop out mcount call sites"),
OPT_BOOLEAN(0, "no-unreachable", &opts.no_unreachable, "skip 'unreachable instruction' warnings"),
- OPT_BOOLEAN(0, "sec-address", &opts.sec_address, "print section addresses in warnings"),
OPT_BOOLEAN(0, "stats", &opts.stats, "print statistics"),
OPT_END(),
diff --git a/tools/objtool/include/objtool/builtin.h b/tools/objtool/include/objtool/builtin.h
index 2a108e648b7a..af79618cf6ab 100644
--- a/tools/objtool/include/objtool/builtin.h
+++ b/tools/objtool/include/objtool/builtin.h
@@ -35,7 +35,6 @@ struct opts {
bool mnop;
bool module;
bool no_unreachable;
- bool sec_address;
bool stats;
};
diff --git a/tools/objtool/include/objtool/warn.h b/tools/objtool/include/objtool/warn.h
index b1c920dc9516..2db9717d0558 100644
--- a/tools/objtool/include/objtool/warn.h
+++ b/tools/objtool/include/objtool/warn.h
@@ -21,7 +21,6 @@ static inline char *offstr(struct section *sec, unsigned long offset)
bool is_text = (sec->sh.sh_flags & SHF_EXECINSTR);
struct symbol *sym = NULL;
char *str;
- int len;
if (is_text)
sym = find_func_containing(sec, offset);
@@ -30,9 +29,8 @@ 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);
- if (opts.sec_address)
- sprintf(str+len, " (%s+0x%lx)", sec->name, offset);
+ sprintf(str, "%s+0x%lx (%s+0x%lx)", sym->name,
+ offset - sym->offset, sec->name, offset);
} else {
str = malloc(strlen(sec->name) + 20);
sprintf(str, "%s+0x%lx", sec->name, offset);
--
2.40.1
Powered by blists - more mailing lists