Linux Audio

Check our new training course

Loading...
v6.9.4
  1#!/bin/sh -x
  2# Based on the vmlinux file create the System.map file
 
 
 
 
  3# System.map is used by module-init tools and some debugging
  4# tools to retrieve the actual addresses of symbols in the kernel.
  5#
  6# Usage
  7# mksysmap vmlinux System.map [exclude]
  8
  9
 10#####
 11# Generate System.map (actual filename passed as second argument)
 12# The following refers to the symbol type as per nm(1).
 13
 14# readprofile starts reading symbols when _stext is found, and
 15# continue until it finds a symbol which is not either of 'T', 't',
 16# 'W' or 'w'.
 17#
 18
 19${NM} -n ${1} | sed >${2} -e "
 20# ---------------------------------------------------------------------------
 21# Ignored symbol types
 22#
 23
 24# a: local absolute symbols
 25# N: debugging symbols
 26# U: undefined global symbols
 27# w: local weak symbols
 28/ [aNUw] /d
 29
 30# ---------------------------------------------------------------------------
 31# Ignored prefixes
 32#  (do not forget a space before each pattern)
 33
 34# local symbols for ARM, MIPS, etc.
 35/ \\$/d
 36
 37# local labels, .LBB, .Ltmpxxx, .L__unnamed_xx, .LASANPC, etc.
 38/ \.L/d
 39
 40# arm64 EFI stub namespace
 41/ __efistub_/d
 42
 43# arm64 local symbols in PIE namespace
 44/ __pi_\\$/d
 45/ __pi_\.L/d
 46
 47# arm64 local symbols in non-VHE KVM namespace
 48/ __kvm_nvhe_\\$/d
 49/ __kvm_nvhe_\.L/d
 50
 51# lld arm/aarch64/mips thunks
 52/ __[[:alnum:]]*Thunk_/d
 53
 54# CFI type identifiers
 55/ __kcfi_typeid_/d
 56/ __kvm_nvhe___kcfi_typeid_/d
 57/ __pi___kcfi_typeid_/d
 58
 59# CRC from modversions
 60/ __crc_/d
 61
 62# EXPORT_SYMBOL (symbol name)
 63/ __kstrtab_/d
 64
 65# EXPORT_SYMBOL (namespace)
 66/ __kstrtabns_/d
 67
 68# ---------------------------------------------------------------------------
 69# Ignored suffixes
 70#  (do not forget '$' after each pattern)
 71
 72# arm
 73/_from_arm$/d
 74/_from_thumb$/d
 75/_veneer$/d
 76
 77# ---------------------------------------------------------------------------
 78# Ignored symbols (exact match)
 79#  (do not forget a space before and '$' after each pattern)
 80
 81# for LoongArch?
 82/ L0$/d
 83
 84# ppc
 85/ _SDA_BASE_$/d
 86/ _SDA2_BASE_$/d
 87
 88# ---------------------------------------------------------------------------
 89# Ignored patterns
 90#  (symbols that contain the pattern are ignored)
 91
 92# ppc stub
 93/\.long_branch\./d
 94/\.plt_branch\./d
 95
 96# ---------------------------------------------------------------------------
 97# Ignored kallsyms symbols
 98#
 99# If the 3rd parameter exists, symbols from it will be omitted from the output.
100# This makes kallsyms have the identical symbol lists in the step 1 and 2.
101# Without this, the step2 would get new symbols generated by scripts/kallsyms.c
102# when CONFIG_KALLSYMS_ALL is enabled. That might require one more pass.
103$(if [ $# -ge 3 ]; then ${NM} ${3} | sed -n '/ U /!s:.* \([^ ]*\)$:/ \1$/d:p'; fi)
104"
v6.13.7
 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