[PATCH v2 0/4] objtool: Improve code generation for annotation macros

From: Josh Poimboeuf
Date: Tue Dec 02 2025 - 13:02:52 EST


For tip/objtool/urgent (fixing a "regression" in code generation).

Changes since v1 (https://lore.kernel.org/cover.1764137163.git.jpoimboe@xxxxxxxxxx):
- rebase on Linus's tree (bug.h conflicts)

As much as possible, undo the code generation damage introduced by
ANNOTATE_DATA_SPECIAL:

- Remove its usage in favor of SHF_MERGE + sh_entsize, where possible

- Print the annotation on a single line:

912: .pushsection ".discard.annotate_data", "M", @progbits, 8; .long 912b - .; .long 1; .popsection

- Remove the trailing newline/tab; let the invoking code decide on the
appropriate separator for the given context


Josh Poimboeuf (4):
x86/alternative: Remove ANNOTATE_DATA_SPECIAL usage
x86/asm: Remove ANNOTATE_DATA_SPECIAL usage
objtool: Consolidate annotation macros
objtool: Remove newlines and tabs from annotation macros

arch/um/include/asm/Kbuild | 1 -
arch/um/include/shared/common-offsets.h | 3 ++
arch/x86/include/asm/alternative.h | 9 +++---
arch/x86/include/asm/asm.h | 25 ++++++++-------
arch/x86/include/asm/bug.h | 2 +-
arch/x86/include/asm/cpufeature.h | 2 +-
arch/x86/include/asm/irq_stack.h | 2 +-
arch/x86/include/asm/jump_label.h | 2 +-
arch/x86/include/asm/nospec-branch.h | 4 +--
arch/x86/include/asm/paravirt_types.h | 2 +-
arch/x86/include/asm/smap.h | 8 ++---
arch/x86/include/asm/static_call.h | 2 +-
arch/x86/kernel/alternative.c | 4 +--
arch/x86/kernel/asm-offsets.c | 3 ++
arch/x86/kernel/rethook.c | 2 +-
arch/x86/kernel/static_call.c | 4 +--
arch/x86/lib/error-inject.c | 2 +-
arch/x86/um/shared/sysdep/kernel-offsets.h | 2 ++
include/linux/annotate.h | 36 +++++++++-------------
include/linux/objtool.h | 2 +-
kernel/bounds.c | 1 +
scripts/mod/devicetable-offsets.c | 1 +
22 files changed, 62 insertions(+), 57 deletions(-)

--
2.51.1