From 59bfa6408214b6533d8691715cf5459e89b45b89 Mon Sep 17 00:00:00 2001 From: Alexandre Chartre Date: Wed, 26 Nov 2025 14:45:19 +0100 Subject: [PATCH] objtool: Build with disassembly can fail when including bdf.h Building objtool with disassembly support can fail when including the bdf.h file: In file included from tools/objtool/include/objtool/arch.h:108, from check.c:14: /usr/include/bfd.h:35:2: error: #error config.h must be included before this header 35 | #error config.h must be included before this header | ^~~~~ This check is present in the bfd.h file generated from the binutils source code, but it is not necessarily present in the bfd.h file provided in a binutil package (for example, it is not present in the binutil RPM). The solution to this issue is to define the PACKAGE macro before including bfd.h. This is the solution suggested by the binutil developer in bug 14243, and it is used by other kernel tools which also use bfd.h (perf and bpf). Fixes: 59953303827ec ("objtool: Disassemble code with libopcodes instead of running objdump") Closes: https://lore.kernel.org/all/3fa261fd-3b46-4cbe-b48d-7503aabc96cb@oracle.com/ Reported-by: Nathan Chancellor Suggested-by: Nathan Chancellor Signed-off-by: Alexandre Chartre Signed-off-by: Peter Zijlstra (Intel) Link: https://sourceware.org/bugzilla/show_bug.cgi?id=14243 Link: https://patch.msgid.link/20251126134519.1760889-1-alexandre.chartre@oracle.com --- tools/objtool/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/objtool/Makefile b/tools/objtool/Makefile index 66397d755fe4b..ad6e1ec706ce0 100644 --- a/tools/objtool/Makefile +++ b/tools/objtool/Makefile @@ -87,7 +87,7 @@ BUILD_DISAS := n ifeq ($(feature-libbfd),1) BUILD_DISAS := y - OBJTOOL_CFLAGS += -DDISAS + OBJTOOL_CFLAGS += -DDISAS -DPACKAGE="objtool" OBJTOOL_LDFLAGS += -lopcodes endif -- 2.47.3