]>
Commit | Line | Data |
---|---|---|
b18b0470 MY |
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 | # | |
1da177e4 | 7 | # System.map is used by module-init tools and some debugging |
943ffb58 | 8 | # tools to retrieve the actual addresses of symbols in the kernel. |
1da177e4 | 9 | # |
1da177e4 LT |
10 | # readprofile starts reading symbols when _stext is found, and |
11 | # continue until it finds a symbol which is not either of 'T', 't', | |
c1346169 MY |
12 | # 'W' or 'w'. |
13 | # | |
c4802044 MY |
14 | # --------------------------------------------------------------------------- |
15 | # Ignored symbol types | |
a2833d1b | 16 | # |
c4802044 MY |
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. | |
ec336aa8 | 29 | / \\$/d |
c4802044 MY |
30 | |
31 | # local labels, .LBB, .Ltmpxxx, .L__unnamed_xx, .LASANPC, etc. | |
32 | / \.L/d | |
33 | ||
320e7c9d MY |
34 | # arm64 EFI stub namespace |
35 | / __efistub_/d | |
36 | ||
200dd957 PCT |
37 | # arm64 local symbols in PIE namespace |
38 | / __pi_\\$/d | |
39 | / __pi_\.L/d | |
40 | ||
320e7c9d | 41 | # arm64 local symbols in non-VHE KVM namespace |
ec336aa8 | 42 | / __kvm_nvhe_\\$/d |
320e7c9d MY |
43 | / __kvm_nvhe_\.L/d |
44 | ||
a951884d AB |
45 | # lld arm/aarch64/mips thunks |
46 | / __[[:alnum:]]*Thunk_/d | |
320e7c9d MY |
47 | |
48 | # CFI type identifiers | |
49 | / __kcfi_typeid_/d | |
71025b85 PCT |
50 | / __kvm_nvhe___kcfi_typeid_/d |
51 | / __pi___kcfi_typeid_/d | |
320e7c9d | 52 | |
c4802044 MY |
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 | ||
320e7c9d MY |
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 | ||
c4802044 MY |
71 | # --------------------------------------------------------------------------- |
72 | # Ignored symbols (exact match) | |
73 | # (do not forget a space before and '$' after each pattern) | |
74 | ||
75 | # for LoongArch? | |
76 | / L0$/d | |
ca09bf48 | 77 | |
320e7c9d MY |
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 |