[tip: objtool/urgent] objtool: Fix compile failure when using the x32 compiler

From: tip-bot2 for Mikulas Patocka
Date: Sat Mar 30 2024 - 17:23:16 EST


The following commit has been merged into the objtool/urgent branch of tip:

Commit-ID: 6205125bd326ed0153e5f9da3c4689fe60ae885a
Gitweb: https://git.kernel.org/tip/6205125bd326ed0153e5f9da3c4689fe60ae885a
Author: Mikulas Patocka <mpatocka@xxxxxxxxxx>
AuthorDate: Sat, 30 Mar 2024 20:23:08 +01:00
Committer: Ingo Molnar <mingo@xxxxxxxxxx>
CommitterDate: Sat, 30 Mar 2024 22:12:37 +01:00

objtool: Fix compile failure when using the x32 compiler

When compiling the v6.9-rc1 kernel with the x32 compiler, the following
errors are reported. The reason is that we take an "unsigned long"
variable and print it using "PRIx64" format string.

In file included from check.c:16:
check.c: In function ‘add_dead_ends’:
/usr/src/git/linux-2.6/tools/objtool/include/objtool/warn.h:46:17: error: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 5 has type ‘long unsigned int’ [-Werror=format=]
46 | "%s: warning: objtool: " format "\n", \
| ^~~~~~~~~~~~~~~~~~~~~~~~
check.c:613:33: note: in expansion of macro ‘WARN’
613 | WARN("can't find unreachable insn at %s+0x%" PRIx64,
| ^~~~
...

Signed-off-by: Mikulas Patocka <mpatocka@xxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
---
tools/objtool/check.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/objtool/check.c b/tools/objtool/check.c
index 0b10ad0..0a33d91 100644
--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -585,7 +585,7 @@ static int add_dead_ends(struct objtool_file *file)
struct section *rsec;
struct reloc *reloc;
struct instruction *insn;
- unsigned long offset;
+ uint64_t offset;

/*
* Check for manually annotated dead ends.