Re: [PATCH v6 00/30] objtool: Function validation tracing
From: Alexandre Chartre
Date: Fri Nov 21 2025 - 08:52:14 EST
On 11/21/25 14:16, Alexandre Chartre wrote:
On 11/21/25 11:36, Peter Zijlstra wrote:
On Fri, Nov 21, 2025 at 10:53:10AM +0100, Alexandre Chartre wrote:
Alexandre Chartre (30):
objtool: Move disassembly functions to a separated file
objtool: Create disassembly context
objtool: Disassemble code with libopcodes instead of running objdump
tool build: Remove annoying newline in build output
objtool: Print symbol during disassembly
objtool: Store instruction disassembly result
objtool: Disassemble instruction on warning or backtrace
objtool: Extract code to validate instruction from the validate branch
loop
objtool: Record symbol name max length
objtool: Add option to trace function validation
objtool: Trace instruction state changes during function validation
objtool: Improve register reporting during function validation
objtool: Identify the different types of alternatives
objtool: Add functions to better name alternatives
objtool: Improve tracing of alternative instructions
objtool: Do not validate IBT for .return_sites and .call_sites
objtool: Add the --disas=<function-pattern> action
objtool: Preserve alternatives order
objtool: Print headers for alternatives
objtool: Disassemble group alternatives
objtool: Print addresses with alternative instructions
objtool: Disassemble exception table alternatives
objtool: Disassemble jump table alternatives
objtool: Fix address references in alternatives
objtool: Provide access to feature and flags of group alternatives
objtool: Function to get the name of a CPU feature
objtool: Improve naming of group alternatives
objtool: Compact output for alternatives with one instruction
objtool: Add wide output for disassembly
objtool: Trim trailing NOPs in alternative
I've pushed out these patches to queue/objtool/core, however when
building defconfig I get this:
CC /mnt/hirez/usr/src/linux-2.6/defconfig-build/tools/objtool/librbtree.o
arch/x86/special.c:10:10: fatal error: lib/cpu-feature-names.c: No such file or directory
10 | #include "lib/cpu-feature-names.c"
| ^~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
See fix below. This should be fold into patch 26 ("objtool: Function to get the name of a CPU feature").
I can resend this patch or the entire patchset if you want.
alex.
----
diff --git a/tools/objtool/arch/x86/Build b/tools/objtool/arch/x86/Build
index 1067355361b56..b95448ee01ee4 100644
--- a/tools/objtool/arch/x86/Build
+++ b/tools/objtool/arch/x86/Build
@@ -11,6 +11,8 @@ $(OUTPUT)arch/x86/lib/inat-tables.c: $(inat_tables_script) $(inat_tables_maps)
$(OUTPUT)arch/x86/decode.o: $(OUTPUT)arch/x86/lib/inat-tables.c
+CFLAGS_decode.o += -I$(OUTPUT)arch/x86/lib
+
cpu_features = ../arch/x86/include/asm/cpufeatures.h
cpu_features_script = ../arch/x86/tools/gen-cpu-feature-names-x86.awk
@@ -19,4 +21,4 @@ $(OUTPUT)arch/x86/lib/cpu-feature-names.c: $(cpu_features_script) $(cpu_features
$(OUTPUT)arch/x86/special.o: $(OUTPUT)arch/x86/lib/cpu-feature-names.c
-CFLAGS_decode.o += -I$(OUTPUT)arch/x86/lib
+CFLAGS_special.o := -I$(OUTPUT)arch/x86/lib
diff --git a/tools/objtool/arch/x86/special.c b/tools/objtool/arch/x86/special.c
index b6b40c56da896..e817a3fff4491 100644
--- a/tools/objtool/arch/x86/special.c
+++ b/tools/objtool/arch/x86/special.c
@@ -7,7 +7,7 @@
#include <asm/cpufeatures.h>
/* cpu feature name array generated from cpufeatures.h */
-#include "lib/cpu-feature-names.c"
+#include "cpu-feature-names.c"
void arch_handle_alternative(struct special_alt *alt)
{