Re: [PATCH v3 2/2] kallsyms: Match symbols exactly with CONFIG_LTO_CLANG
From: Song Liu <hidden>
Date: 2024-08-13 21:17:03
Also in:
live-patching, lkml
From: Song Liu <hidden>
Date: 2024-08-13 21:17:03
Also in:
live-patching, lkml
On Aug 7, 2024, at 3:05 PM, Song Liu [off-list ref] wrote: With CONFIG_LTO_CLANG=y, the compiler may add .llvm.<hash> suffix to function names to avoid duplication. APIs like kallsyms_lookup_name() and kallsyms_on_each_match_symbol() tries to match these symbol names without the .llvm.<hash> suffix, e.g., match "c_stop" with symbol c_stop.llvm.17132674095431275852. This turned out to be problematic for use cases that require exact match, for example, livepatch. Fix this by making the APIs to match symbols exactly. Also cleanup kallsyms_selftests accordingly. Signed-off-by: Song Liu <song@kernel.org>
Fixes: 8cc32a9bbf29 ("kallsyms: strip LTO-only suffixes from promoted global functions")