scripts/kallsyms: move compiler-generated symbol patterns to mksysmap
scripts/kallsyms.c maintains compiler-generated symbols, but we end up with something similar in scripts/mksysmap to avoid the "Inconsistent kallsyms data" error. For example, commitc17a253870
("mksysmap: Fix the mismatch of 'L0' symbols in System.map"). They were separately maintained prior to commit94ff2f63d6
("kbuild: reuse mksysmap output for kallsyms"). Now that scripts/kallsyms.c parses the output of scripts/mksysmap, it makes more sense to collect all the ignored patterns to mksysmap. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
This commit is contained in:
Родитель
ca09bf48f9
Коммит
320e7c9d44
|
@ -102,66 +102,6 @@ static char *sym_name(const struct sym_entry *s)
|
|||
|
||||
static bool is_ignored_symbol(const char *name, char type)
|
||||
{
|
||||
/* Symbol names that exactly match to the following are ignored.*/
|
||||
static const char * const ignored_symbols[] = {
|
||||
/* Exclude linker generated symbols which vary between passes */
|
||||
"_SDA_BASE_", /* ppc */
|
||||
"_SDA2_BASE_", /* ppc */
|
||||
NULL
|
||||
};
|
||||
|
||||
/* Symbol names that begin with the following are ignored.*/
|
||||
static const char * const ignored_prefixes[] = {
|
||||
"__efistub_", /* arm64 EFI stub namespace */
|
||||
"__kvm_nvhe_$", /* arm64 local symbols in non-VHE KVM namespace */
|
||||
"__kvm_nvhe_.L", /* arm64 local symbols in non-VHE KVM namespace */
|
||||
"__AArch64ADRPThunk_", /* arm64 lld */
|
||||
"__ARMV5PILongThunk_", /* arm lld */
|
||||
"__ARMV7PILongThunk_",
|
||||
"__ThumbV7PILongThunk_",
|
||||
"__LA25Thunk_", /* mips lld */
|
||||
"__microLA25Thunk_",
|
||||
"__kcfi_typeid_", /* CFI type identifiers */
|
||||
NULL
|
||||
};
|
||||
|
||||
/* Symbol names that end with the following are ignored.*/
|
||||
static const char * const ignored_suffixes[] = {
|
||||
"_from_arm", /* arm */
|
||||
"_from_thumb", /* arm */
|
||||
"_veneer", /* arm */
|
||||
NULL
|
||||
};
|
||||
|
||||
/* Symbol names that contain the following are ignored.*/
|
||||
static const char * const ignored_matches[] = {
|
||||
".long_branch.", /* ppc stub */
|
||||
".plt_branch.", /* ppc stub */
|
||||
NULL
|
||||
};
|
||||
|
||||
const char * const *p;
|
||||
|
||||
for (p = ignored_symbols; *p; p++)
|
||||
if (!strcmp(name, *p))
|
||||
return true;
|
||||
|
||||
for (p = ignored_prefixes; *p; p++)
|
||||
if (!strncmp(name, *p, strlen(*p)))
|
||||
return true;
|
||||
|
||||
for (p = ignored_suffixes; *p; p++) {
|
||||
int l = strlen(name) - strlen(*p);
|
||||
|
||||
if (l >= 0 && !strcmp(name + l, *p))
|
||||
return true;
|
||||
}
|
||||
|
||||
for (p = ignored_matches; *p; p++) {
|
||||
if (strstr(name, *p))
|
||||
return true;
|
||||
}
|
||||
|
||||
if (type == 'u' || type == 'n')
|
||||
return true;
|
||||
|
||||
|
|
|
@ -37,6 +37,28 @@ ${NM} -n ${1} | sed >${2} -e "
|
|||
# local labels, .LBB, .Ltmpxxx, .L__unnamed_xx, .LASANPC, etc.
|
||||
/ \.L/d
|
||||
|
||||
# arm64 EFI stub namespace
|
||||
/ __efistub_/d
|
||||
|
||||
# arm64 local symbols in non-VHE KVM namespace
|
||||
/ __kvm_nvhe_\$/d
|
||||
/ __kvm_nvhe_\.L/d
|
||||
|
||||
# arm64 lld
|
||||
/ __AArch64ADRPThunk_/d
|
||||
|
||||
# arm lld
|
||||
/ __ARMV5PILongThunk_/d
|
||||
/ __ARMV7PILongThunk_/d
|
||||
/ __ThumbV7PILongThunk_/d
|
||||
|
||||
# mips lld
|
||||
/ __LA25Thunk_/d
|
||||
/ __microLA25Thunk_/d
|
||||
|
||||
# CFI type identifiers
|
||||
/ __kcfi_typeid_/d
|
||||
|
||||
# CRC from modversions
|
||||
/ __crc_/d
|
||||
|
||||
|
@ -46,6 +68,15 @@ ${NM} -n ${1} | sed >${2} -e "
|
|||
# EXPORT_SYMBOL (namespace)
|
||||
/ __kstrtabns_/d
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Ignored suffixes
|
||||
# (do not forget '$' after each pattern)
|
||||
|
||||
# arm
|
||||
/_from_arm$/d
|
||||
/_from_thumb$/d
|
||||
/_veneer$/d
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Ignored symbols (exact match)
|
||||
# (do not forget a space before and '$' after each pattern)
|
||||
|
@ -53,6 +84,18 @@ ${NM} -n ${1} | sed >${2} -e "
|
|||
# for LoongArch?
|
||||
/ L0$/d
|
||||
|
||||
# ppc
|
||||
/ _SDA_BASE_$/d
|
||||
/ _SDA2_BASE_$/d
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Ignored patterns
|
||||
# (symbols that contain the pattern are ignored)
|
||||
|
||||
# ppc stub
|
||||
/\.long_branch\./d
|
||||
/\.plt_branch\./d
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Ignored kallsyms symbols
|
||||
#
|
||||
|
|
Загрузка…
Ссылка в новой задаче