]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
objtool: Build with disassembly can fail when including bdf.h
authorAlexandre Chartre <alexandre.chartre@oracle.com>
Wed, 26 Nov 2025 13:45:19 +0000 (14:45 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Thu, 27 Nov 2025 08:32:46 +0000 (09:32 +0100)
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 <nathan@kernel.org>
Suggested-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Alexandre Chartre <alexandre.chartre@oracle.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
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

index 66397d755fe4b6a35d9acfc7d0a9ca27ab319f5b..ad6e1ec706ce0a1464aeee7dc079455ec0fc97d1 100644 (file)
@@ -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