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]>

