Messages in this thread | | | From | Masahiro Yamada <> | Date | Thu, 15 Feb 2024 05:34:11 +0900 | Subject | Re: [PATCH] kallsyms: ignore ARMv4 thunks along with others |
| |
On Thu, Feb 15, 2024 at 3:19 AM Arnd Bergmann <arnd@kernel.org> wrote: > > From: Arnd Bergmann <arnd@arndb.de> > > lld is now able to build ARMv4 and ARMv4T kernels, which means it can generate > thunks for those that can interfere with kallsyms table generation since > they do not get ignore like the corresponding ARMv5+ ones are: > > Inconsistent kallsyms data > Try "make KALLSYMS_EXTRA_PASS=1" as a workaround > > Add the missing symbols to the list of ignored symbol prefixes. > > Fixes: 5eb6e280432d ("ARM: 9289/1: Allow pre-ARMv5 builds with ld.lld 16.0.0 and newer") > Fixes: efe6e3068067 ("kallsyms: fix nonconverging kallsyms table with lld") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > scripts/mksysmap | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/scripts/mksysmap b/scripts/mksysmap > index 9ba1c9da0a40..c809bf592790 100755 > --- a/scripts/mksysmap > +++ b/scripts/mksysmap > @@ -52,6 +52,8 @@ ${NM} -n ${1} | sed >${2} -e " > / __AArch64ADRPThunk_/d > > # arm lld > +/ __ARMv4PILongThunk_/d > +/ __ARMv4PILongBXThunk_/d > / __ARMV5PILongThunk_/d > / __ARMV7PILongThunk_/d > / __ThumbV7PILongThunk_/d > -- > 2.39.2 >
If this is a recurring problem, maybe is it better to use a regular expression?
Remove these lines:
# arm64 lld / __AArch64ADRPThunk_/d
# arm lld / __ARMV5PILongThunk_/d / __ARMV7PILongThunk_/d / __ThumbV7PILongThunk_/d
# mips lld / __LA25Thunk_/d / __microLA25Thunk_/d
Add this:
# lld / __[^[:space:]]*Thunk_/d
This pattern is only used in tooling, but never in the kernel space.
$ git grep '__[^[:space:]]*Thunk_' scripts/mksysmap:/ __AArch64ADRPThunk_/d scripts/mksysmap:/ __ARMV5PILongThunk_/d scripts/mksysmap:/ __ARMV7PILongThunk_/d scripts/mksysmap:/ __ThumbV7PILongThunk_/d scripts/mksysmap:/ __LA25Thunk_/d scripts/mksysmap:/ __microLA25Thunk_/d tools/perf/tests/vmlinux-kallsyms.c: "__AArch64ADRPThunk_", /* arm64 lld */ tools/perf/tests/vmlinux-kallsyms.c: "__ARMV5PILongThunk_", /* arm lld */ tools/perf/tests/vmlinux-kallsyms.c: "__ARMV7PILongThunk_", tools/perf/tests/vmlinux-kallsyms.c: "__ThumbV7PILongThunk_", tools/perf/tests/vmlinux-kallsyms.c: "__LA25Thunk_", /* mips lld */ tools/perf/tests/vmlinux-kallsyms.c: "__microLA25Thunk_",
-- Best Regards Masahiro Yamada
| |