Loading...
#!/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 |