|
|
Log in / Subscribe / Register

objtool: Improve code generation for annotation macros

From:  Josh Poimboeuf <jpoimboe-AT-kernel.org>
To:  x86-AT-kernel.org
Subject:  [PATCH 0/4] objtool: Improve code generation for annotation macros
Date:  Tue, 25 Nov 2025 22:06:56 -0800
Message-ID:  <cover.1764137163.git.jpoimboe@kernel.org>
Cc:  linux-kernel-AT-vger.kernel.org, Peter Zijlstra <peterz-AT-infradead.org>
Archive-link:  Article

For tip/objtool/core.

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




Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds