Fix two objtool build failures that trigger in uncommon build

environments.
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmlsqxkRHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1irfg/8Ct/Z+OftNDHe18+gwO2+rBaJNn0vuQfK
 2uFur9ag5kkfXq9l6FOSZKH+xEDO07w7tqfeXqJIXaqUJq4DtrkSk1MSdDcmjHZl
 fXnnpUfEcZPlTD1CfLXIkBLaILLwL/ZZKAWWNFXLZPqznCf2mQzOHcpIsL7TO4V+
 UQdnyWTXMATDRi9tbmbc177GVm2uoEzns/LkxTww9bjvBk85yAnR/gDl7nCByJTb
 s6C73tEHFcOWvGQiU8JwWYMdeTXILrZCCowGNBbSsYATMlsSBv0Gq/95oDcYbRRv
 mF9nWoNkTjVpKJK5ckH9iKSdhomn6JbknKE++wFx+3AMq6MaJ70GtisZDrRE7ZkG
 DiEymmJTCBEIvBlrt+8jpRxaCL6V++Du8+c5VP2VsLwGxt607MNEuuUfBQGSsgR/
 77VxWV+ueP/5Pfx1HzqBTpXqU4weXASpzCbM6T1RLpV3DPDprf6nWRZ4em5L2eFJ
 YZdfptIOH71esgl/z60wgyzpaF0f70d/Mox5IM4XDZg3tlN9Gv64WvdZamRGbg3X
 nHnjt5Lq3rgR6wVMXE83my+IdqX95dDsEvCcreAKLhbmm81xVCDlYgyLSnYj1Dfx
 m20JLxPjAeCfo3tWgJ3XlFNGgWnDJ8ipe/BNKXocV7yafPC3p/eJUxGCqOzGHlVx
 kvlF96NgNA4=
 =yYJ3
 -----END PGP SIGNATURE-----

Merge tag 'objtool-urgent-2026-01-18' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull objtool fixes from Ingo Molnar:
 "Fix two objtool build failures that trigger in uncommon build
  environments"

* tag 'objtool-urgent-2026-01-18' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  objtool: fix build failure due to missing libopcodes check
  objtool: fix compilation failure with the x32 toolchain
This commit is contained in:
Linus Torvalds 2026-01-18 09:09:32 -08:00
commit cee4757965
2 changed files with 16 additions and 12 deletions

View file

@ -72,23 +72,27 @@ HOST_OVERRIDES := CC="$(HOSTCC)" LD="$(HOSTLD)" AR="$(HOSTAR)"
#
# To support disassembly, objtool needs libopcodes which is provided
# with libbdf (binutils-dev or binutils-devel package).
# with libbfd (binutils-dev or binutils-devel package).
#
FEATURE_USER = .objtool
FEATURE_TESTS = libbfd disassembler-init-styled
FEATURE_DISPLAY =
include $(srctree)/tools/build/Makefile.feature
# We check using HOSTCC directly rather than the shared feature framework
# because objtool is a host tool that links against host libraries.
#
HAVE_LIBOPCODES := $(shell echo 'int main(void) { return 0; }' | \
$(HOSTCC) -xc - -o /dev/null -lopcodes 2>/dev/null && echo y)
ifeq ($(feature-disassembler-init-styled), 1)
OBJTOOL_CFLAGS += -DDISASM_INIT_STYLED
endif
# Styled disassembler support requires binutils >= 2.39
HAVE_DISASM_STYLED := $(shell echo '$(pound)include <dis-asm.h>' | \
$(HOSTCC) -E -xc - 2>/dev/null | grep -q disassembler_style && echo y)
BUILD_DISAS := n
ifeq ($(feature-libbfd),1)
ifeq ($(HAVE_LIBOPCODES),y)
BUILD_DISAS := y
OBJTOOL_CFLAGS += -DDISAS -DPACKAGE="objtool"
OBJTOOL_CFLAGS += -DDISAS -DPACKAGE='"objtool"'
OBJTOOL_LDFLAGS += -lopcodes
ifeq ($(HAVE_DISASM_STYLED),y)
OBJTOOL_CFLAGS += -DDISASM_INIT_STYLED
endif
endif
export BUILD_DISAS

View file

@ -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); \
} \
})