88 lines · 2.0 KB · Text
RawDownload
#!/bin/sed -f# SPDX-License-Identifier: GPL-2.0-only## sed script to filter out symbols that are not needed for System.map,# or not suitable for kallsyms. The input should be 'nm -n <file>'.## System.map is used by module-init tools and some debugging# tools to retrieve the actual addresses of symbols in the kernel.## readprofile starts reading symbols when _stext is found, and# continue until it finds a symbol which is not either of 'T', 't',# 'W' or 'w'.## ---------------------------------------------------------------------------# Ignored symbol types# # a: local absolute symbols# N: debugging symbols# U: undefined global symbols# w: local weak symbols/ [aNUw] /d # ---------------------------------------------------------------------------# Ignored prefixes#  (do not forget a space before each pattern) # local symbols for ARM, MIPS, etc./ \$/d # local labels, .LBB, .Ltmpxxx, .L__unnamed_xx, .LASANPC, etc./ \.L/d # arm64 EFI stub namespace/ __efistub_/d # arm64 local symbols in PIE namespace/ __pi_\\$/d/ __pi_\.L/d # arm64 local symbols in non-VHE KVM namespace/ __kvm_nvhe_\$/d/ __kvm_nvhe_\.L/d # lld arm/aarch64/mips thunks/ __[[:alnum:]]*Thunk_/d # CFI type identifiers/ __kcfi_typeid_/d/ __kvm_nvhe___kcfi_typeid_/d/ __pi___kcfi_typeid_/d # CRC from modversions/ __crc_/d # EXPORT_SYMBOL (symbol name)/ __kstrtab_/d # 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) # 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