On Sat, Aug 8, 2026 at 4:18 PM Josh Poimboeuf <[email protected]> wrote:
>
> create_fake_symbols() creates a symbol per entry for special sections.
> It does so in two steps: first for the sections which have
> ANNOTATE_DATA_SPECIAL annotations, then for the rest, using entsize or
> the reloc count to infer the entry size.  The second step skips the
> sections already handled by the first one by looking for a symbol at
> offset 0.
>
> That heuristic is too fuzzy: with Clang and CONFIG_CFI, it misfires on
> .kcfi_traps because Clang emits a .Ltmp* assembler-local label at the
> start of the section, so no symbols are created and
> clone_special_sections() extracts nothing.  klp-build still reports
> SUCCESS, but the livepatch module has no __kcfi_traps section and the
> traps for the patched functions are lost.
>
> Look for the actual fake symbols created by the first step instead.
>
> Fixes: da4326573ae8d ("objtool/klp: Fix kCFI trap handling")
> Reported-by: Joe Lawrence <[email protected]>
> Closes: https://lore.kernel.org/r/[email protected]
> Signed-off-by: Josh Poimboeuf <[email protected]>

Acked-by: Song Liu <[email protected]>

Reply via email to