1 #!/bin/sed -f 2 # SPDX-License-Identifier: GPL-2.0-only 3 # 4 # sed script to filter out symbols that are not needed for System.map, 5 # or not suitable for kallsyms. The input should be 'nm -n <file>'. 6 # 7 # System.map is used by module-init tools and some debugging 8 # tools to retrieve the actual addresses of symbols in the kernel. 9 # 10 # readprofile starts reading symbols when _stext is found, and 11 # continue until it finds a symbol which is not either of 'T', 't', 12 # 'W' or 'w'. 13 # 14 # --------------------------------------------------------------------------- 15 # Ignored symbol types 16 # 17 18 # a: local absolute symbols 19 # N: debugging symbols 20 # U: undefined global symbols 21 # w: local weak symbols 22 / [aNUw] /d 23 24 # --------------------------------------------------------------------------- 25 # Ignored prefixes 26 # (do not forget a space before each pattern) 27 28 # local symbols for ARM, MIPS, etc. 29 / \\$/d 30 31 # local labels, .LBB, .Ltmpxxx, .L__unnamed_xx, .LASANPC, etc. 32 / \.L/d 33 34 # arm64 EFI stub namespace 35 / __efistub_/d 36 37 # arm64 local symbols in PIE namespace 38 / __pi_\\$/d 39 / __pi_\.L/d 40 41 # arm64 local symbols in non-VHE KVM namespace 42 / __kvm_nvhe_\\$/d 43 / __kvm_nvhe_\.L/d 44 45 # lld arm/aarch64/mips thunks 46 / __[[:alnum:]]*Thunk_/d 47 48 # CFI type identifiers 49 / __kcfi_typeid_/d 50 / __kvm_nvhe___kcfi_typeid_/d 51 / __pi___kcfi_typeid_/d 52 53 # CRC from modversions 54 / __crc_/d 55 56 # EXPORT_SYMBOL (symbol name) 57 / __kstrtab_/d 58 59 # EXPORT_SYMBOL (namespace) 60 / __kstrtabns_/d 61 62 # --------------------------------------------------------------------------- 63 # Ignored suffixes 64 # (do not forget '$' after each pattern) 65 66 # arm 67 /_from_arm$/d 68 /_from_thumb$/d 69 /_veneer$/d 70 71 # --------------------------------------------------------------------------- 72 # Ignored symbols (exact match) 73 # (do not forget a space before and '$' after each pattern) 74 75 # for LoongArch? 76 / L0$/d 77 78 # ppc 79 / _SDA_BASE_$/d 80 / _SDA2_BASE_$/d 81 82 # --------------------------------------------------------------------------- 83 # Ignored patterns 84 # (symbols that contain the pattern are ignored) 85 86 # ppc stub 87 /\.long_branch\./d 88 /\.plt_branch\./d
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.