tools/objtool/include/objtool/warn.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
When using the x32 toolchain, compilation fails because the printf
specifier "%lx" (long), doesn't match the type of the "checksum" variable
(long long). Fix this by changing the printf specifier to "%llx" and
casting "checksum" to unsigned long long.
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Fixes: a3493b33384a ("objtool/klp: Add --debug-checksum=<funcs> to show per-instruction checksums")
---
tools/objtool/include/objtool/warn.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: linux-2.6/tools/objtool/include/objtool/warn.h
===================================================================
--- linux-2.6.orig/tools/objtool/include/objtool/warn.h 2025-12-31 20:10:31.000000000 +0100
+++ linux-2.6/tools/objtool/include/objtool/warn.h 2025-12-31 20:14:15.000000000 +0100
@@ -152,8 +152,8 @@ static inline void unindent(int *unused)
if (unlikely(insn->sym && insn->sym->pfunc && \
insn->sym->pfunc->debug_checksum)) { \
char *insn_off = offstr(insn->sec, insn->offset); \
- __dbg("checksum: %s %s %016lx", \
- func->name, insn_off, checksum); \
+ __dbg("checksum: %s %s %016llx", \
+ func->name, insn_off, (unsigned long long)checksum);\
free(insn_off); \
} \
})
On Tue, Jan 06, 2026 at 12:13:15PM +0100, Mikulas Patocka wrote:
> When using the x32 toolchain, compilation fails because the printf
> specifier "%lx" (long), doesn't match the type of the "checksum" variable
> (long long). Fix this by changing the printf specifier to "%llx" and
> casting "checksum" to unsigned long long.
>
> Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
> Fixes: a3493b33384a ("objtool/klp: Add --debug-checksum=<funcs> to show per-instruction checksums")
>
> ---
> tools/objtool/include/objtool/warn.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> Index: linux-2.6/tools/objtool/include/objtool/warn.h
> ===================================================================
> --- linux-2.6.orig/tools/objtool/include/objtool/warn.h 2025-12-31 20:10:31.000000000 +0100
> +++ linux-2.6/tools/objtool/include/objtool/warn.h 2025-12-31 20:14:15.000000000 +0100
> @@ -152,8 +152,8 @@ static inline void unindent(int *unused)
> if (unlikely(insn->sym && insn->sym->pfunc && \
> insn->sym->pfunc->debug_checksum)) { \
> char *insn_off = offstr(insn->sec, insn->offset); \
> - __dbg("checksum: %s %s %016lx", \
> - func->name, insn_off, checksum); \
> + __dbg("checksum: %s %s %016llx", \
> + func->name, insn_off, (unsigned long long)checksum);\
> free(insn_off); \
> } \
> })
>
Acked-by: Joe Lawrence <joe.lawrence@redhat.com>
--
Joe
The following commit has been merged into the objtool/urgent branch of tip:
Commit-ID: 26bea10450afe5ad4dd0e0bbb797c44e1df110fe
Gitweb: https://git.kernel.org/tip/26bea10450afe5ad4dd0e0bbb797c44e1df110fe
Author: Mikulas Patocka <mpatocka@redhat.com>
AuthorDate: Tue, 06 Jan 2026 12:13:15 +01:00
Committer: Peter Zijlstra <peterz@infradead.org>
CommitterDate: Tue, 13 Jan 2026 11:37:50 +01:00
objtool: fix compilation failure with the x32 toolchain
When using the x32 toolchain, compilation fails because the printf
specifier "%lx" (long), doesn't match the type of the "checksum" variable
(long long). Fix this by changing the printf specifier to "%llx" and
casting "checksum" to unsigned long long.
Fixes: a3493b33384a ("objtool/klp: Add --debug-checksum=<funcs> to show per-instruction checksums")
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://patch.msgid.link/a1158c99-fe0e-a218-4b5b-ffac212489f6@redhat.com
---
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 25ff794..2b27b54 100644
--- a/tools/objtool/include/objtool/warn.h
+++ b/tools/objtool/include/objtool/warn.h
@@ -152,8 +152,8 @@ static inline void unindent(int *unused) { indent--; }
if (unlikely(insn->sym && insn->sym->pfunc && \
insn->sym->pfunc->debug_checksum)) { \
char *insn_off = offstr(insn->sec, insn->offset); \
- __dbg("checksum: %s %s %016lx", \
- func->name, insn_off, checksum); \
+ __dbg("checksum: %s %s %016llx", \
+ func->name, insn_off, (unsigned long long)checksum);\
free(insn_off); \
} \
})
© 2016 - 2026 Red Hat, Inc.