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) | ||||
| { | ||||
| 	/* 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 | ||||
| # | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Masahiro Yamada
						Masahiro Yamada