mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 12:44:03 +02:00
objtool: Validate disassembler headers in libopcodes probe
commit3f2de814c0("objtool: Fix libopcodes linking with static libraries") tested for libopcodes availability by linking a test snippet with a forward declaration of disassemble_init_for_target(). However, testing symbol linkage with an extern declaration only verifies the presence of the library (.so/.a) and bypasses checking for development headers (binutils-dev). On systems where libopcodes is present without development headers installed, the probe succeeds, enabling BUILD_DISAS. Subsequent compilation of objtool then fails: fatal error: 'bfd.h' file not found 113 | #include <bfd.h> Additionally, the probe invokes $(HOSTCC) without $(HOSTCFLAGS), ignoring any sysroot or include flags specified for the host compiler. Fix this by including <bfd.h> and <dis-asm.h> directly in the test snippet, passing $(HOSTCFLAGS) so host compiler options are respected, and defining PACKAGE="objtool" to satisfy the configuration check in <bfd.h>. Fixes:3f2de814c0("objtool: Fix libopcodes linking with static libraries") Fixes:436326bc52("objtool: fix build failure due to missing libopcodes check") Reported-by: Alice Ryhl <aliceryhl@google.com> Assisted-by: Antigravity:Gemini-Next Signed-off-by: Ulises Mendez Martinez <umendez@google.com> Link: https://patch.msgid.link/20260904150710.2997558-1-umendez@google.com Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
This commit is contained in:
parent
ac323c9467
commit
7e61560628
|
|
@ -89,9 +89,11 @@ LIBOPCODES_LIBS := $(shell \
|
|||
"-lopcodes -lbfd" \
|
||||
"-lopcodes -lbfd -liberty" \
|
||||
"-lopcodes -lbfd -liberty -lz"; do \
|
||||
echo 'extern void disassemble_init_for_target(void *);' \
|
||||
'int main(void) { disassemble_init_for_target(0); return 0; }' | \
|
||||
$(HOSTCC) -xc - -o /dev/null $$libs 2>/dev/null && \
|
||||
printf '%s\n' \
|
||||
'$(pound)include <bfd.h>' \
|
||||
'$(pound)include <dis-asm.h>' \
|
||||
'int main(void) { disassemble_init_for_target(0); return 0; }' | \
|
||||
$(HOSTCC) $(HOSTCFLAGS) -DPACKAGE='"objtool"' -xc - -o /dev/null $$libs 2>/dev/null && \
|
||||
echo "$$libs" && break; \
|
||||
done)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user