2 # SPDX-License-Identifier: GPL-2.0-only
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>'.
7 # System.map is used by module-init tools and some debugging
8 # tools to retrieve the actual addresses of symbols in the kernel.
10 # readprofile starts reading symbols when _stext is found, and
11 # continue until it finds a symbol which is not either of 'T', 't',
14 # ---------------------------------------------------------------------------
15 # Ignored symbol types
18 # a: local absolute symbols
19 # N: debugging symbols
20 # U: undefined global symbols
21 # w: local weak symbols
24 # ---------------------------------------------------------------------------
26 # (do not forget a space before each pattern)
28 # local symbols for ARM, MIPS, etc.
31 # local labels, .LBB, .Ltmpxxx, .L__unnamed_xx, .LASANPC, etc.
34 # arm64 EFI stub namespace
37 # arm64 local symbols in PIE namespace
41 # arm64 local symbols in non-VHE KVM namespace
45 # lld arm/aarch64/mips thunks
46 / __[[:alnum:]]*Thunk_/d
48 # CFI type identifiers
50 / __kvm_nvhe___kcfi_typeid_/d
51 / __pi___kcfi_typeid_/d
53 # CRC from modversions
56 # EXPORT_SYMBOL (symbol name)
59 # EXPORT_SYMBOL (namespace)
62 # ---------------------------------------------------------------------------
64 # (do not forget '$' after each pattern)
71 # ---------------------------------------------------------------------------
72 # Ignored symbols (exact match)
73 # (do not forget a space before and '$' after each pattern)
82 # ---------------------------------------------------------------------------
84 # (symbols that contain the pattern are ignored)