[PATCH] objtool: fix failure when being compiled on x32 system
From: Mikulas Patocka
Date: Mon Oct 20 2025 - 08:24:13 EST
Fix compilation failure when compiling the kernel with the x32 toolchain.
In file included from check.c:16:
check.c: In function ʽcheck_abs_referencesʼ:
/usr/src/git/linux-2.6/tools/objtool/include/objtool/warn.h:47:17: error: format ʽ%lxʼ expects argument of type ʽlong unsigned intʼ, but argument 7 has type ʽu64ʼ {aka ʽlong
long unsigned intʼ} [-Werror=format=]
47 | "%s%s%s: objtool" extra ": " format "\n", \
| ^~~~~~~~~~~~~~~~~
/usr/src/git/linux-2.6/tools/objtool/include/objtool/warn.h:54:9: note: in expansion of macro ʽ___WARNʼ
54 | ___WARN(severity, "", format, ##__VA_ARGS__)
| ^~~~~~~
/usr/src/git/linux-2.6/tools/objtool/include/objtool/warn.h:74:27: note: in expansion of macro ʽ__WARNʼ
74 | #define WARN(format, ...) __WARN(WARN_STR, format, ##__VA_ARGS__)
| ^~~~~~
check.c:4713:33: note: in expansion of macro ʽWARNʼ
4713 | WARN("section %s has absolute relocation at offset 0x%lx",
| ^~~~
Signed-off-by: Mikulas Patocka <mpatocka@xxxxxxxxxx>
Fixes: 0d6e4563fc03 ("objtool: Add action to check for absence of absolute relocations")
---
tools/objtool/check.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: linux-2.6/tools/objtool/check.c
===================================================================
--- linux-2.6.orig/tools/objtool/check.c 2025-10-13 21:42:48.000000000 +0200
+++ linux-2.6/tools/objtool/check.c 2025-10-13 21:48:33.000000000 +0200
@@ -4710,8 +4710,8 @@ static int check_abs_references(struct o
for_each_reloc(sec->rsec, reloc) {
if (arch_absolute_reloc(file->elf, reloc)) {
- WARN("section %s has absolute relocation at offset 0x%lx",
- sec->name, reloc_offset(reloc));
+ WARN("section %s has absolute relocation at offset 0x%llx",
+ sec->name, (unsigned long long)reloc_offset(reloc));
ret++;
}
}