]> git.ipfire.org Git - thirdparty/linux.git/blob - scripts/mksysmap
Merge tag 'net-6.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
[thirdparty/linux.git] / scripts / mksysmap
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