forked from mirrors/linux
		
	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:
		
							parent
							
								
									ca09bf48f9
								
							
						
					
					
						commit
						320e7c9d44
					
				
					 2 changed files with 43 additions and 60 deletions
				
			
		|  | @ -102,66 +102,6 @@ static char *sym_name(const struct sym_entry *s) | ||||||
| 
 | 
 | ||||||
| static bool is_ignored_symbol(const char *name, char type) | 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') | 	if (type == 'u' || type == 'n') | ||||||
| 		return true; | 		return true; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -37,6 +37,28 @@ ${NM} -n ${1} | sed >${2} -e " | ||||||
| # local labels, .LBB, .Ltmpxxx, .L__unnamed_xx, .LASANPC, etc. | # local labels, .LBB, .Ltmpxxx, .L__unnamed_xx, .LASANPC, etc. | ||||||
| / \.L/d | / \.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 from modversions | ||||||
| / __crc_/d | / __crc_/d | ||||||
| 
 | 
 | ||||||
|  | @ -46,6 +68,15 @@ ${NM} -n ${1} | sed >${2} -e " | ||||||
| # EXPORT_SYMBOL (namespace) | # EXPORT_SYMBOL (namespace) | ||||||
| / __kstrtabns_/d | / __kstrtabns_/d | ||||||
| 
 | 
 | ||||||
|  | # --------------------------------------------------------------------------- | ||||||
|  | # Ignored suffixes | ||||||
|  | #  (do not forget '$' after each pattern) | ||||||
|  | 
 | ||||||
|  | # arm | ||||||
|  | /_from_arm$/d | ||||||
|  | /_from_thumb$/d | ||||||
|  | /_veneer$/d | ||||||
|  | 
 | ||||||
| # --------------------------------------------------------------------------- | # --------------------------------------------------------------------------- | ||||||
| # Ignored symbols (exact match) | # Ignored symbols (exact match) | ||||||
| #  (do not forget a space before and '$' after each pattern) | #  (do not forget a space before and '$' after each pattern) | ||||||
|  | @ -53,6 +84,18 @@ ${NM} -n ${1} | sed >${2} -e " | ||||||
| # for LoongArch? | # for LoongArch? | ||||||
| / L0$/d | / 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 | # Ignored kallsyms symbols | ||||||
| # | # | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Masahiro Yamada
						Masahiro Yamada