1b18b0470SMasahiro Yamada#!/bin/sed -f 2b18b0470SMasahiro Yamada# SPDX-License-Identifier: GPL-2.0-only 3b18b0470SMasahiro Yamada# 4b18b0470SMasahiro Yamada# sed script to filter out symbols that are not needed for System.map, 5b18b0470SMasahiro Yamada# or not suitable for kallsyms. The input should be 'nm -n <file>'. 6b18b0470SMasahiro Yamada# 71da177e4SLinus Torvalds# System.map is used by module-init tools and some debugging 8943ffb58SAdrian Bunk# tools to retrieve the actual addresses of symbols in the kernel. 91da177e4SLinus Torvalds# 101da177e4SLinus Torvalds# readprofile starts reading symbols when _stext is found, and 111da177e4SLinus Torvalds# continue until it finds a symbol which is not either of 'T', 't', 12c1346169SMasahiro Yamada# 'W' or 'w'. 13c1346169SMasahiro Yamada# 14c4802044SMasahiro Yamada# --------------------------------------------------------------------------- 15c4802044SMasahiro Yamada# Ignored symbol types 16c4802044SMasahiro Yamada# 17c4802044SMasahiro Yamada 18c4802044SMasahiro Yamada# a: local absolute symbols 19c4802044SMasahiro Yamada# N: debugging symbols 20c4802044SMasahiro Yamada# U: undefined global symbols 21c4802044SMasahiro Yamada# w: local weak symbols 22c4802044SMasahiro Yamada/ [aNUw] /d 23c4802044SMasahiro Yamada 24c4802044SMasahiro Yamada# --------------------------------------------------------------------------- 25c4802044SMasahiro Yamada# Ignored prefixes 26c4802044SMasahiro Yamada# (do not forget a space before each pattern) 27c4802044SMasahiro Yamada 28c4802044SMasahiro Yamada# local symbols for ARM, MIPS, etc. 297a6c355bSMostafa Saleh/ \$/d 30c4802044SMasahiro Yamada 31c4802044SMasahiro Yamada# local labels, .LBB, .Ltmpxxx, .L__unnamed_xx, .LASANPC, etc. 32c4802044SMasahiro Yamada/ \.L/d 33c4802044SMasahiro Yamada 34320e7c9dSMasahiro Yamada# arm64 EFI stub namespace 35320e7c9dSMasahiro Yamada/ __efistub_/d 36320e7c9dSMasahiro Yamada 37200dd957SPierre-Clément Tosi# arm64 local symbols in PIE namespace 38200dd957SPierre-Clément Tosi/ __pi_\\$/d 39200dd957SPierre-Clément Tosi/ __pi_\.L/d 40200dd957SPierre-Clément Tosi 41320e7c9dSMasahiro Yamada# arm64 local symbols in non-VHE KVM namespace 427a6c355bSMostafa Saleh/ __kvm_nvhe_\$/d 43320e7c9dSMasahiro Yamada/ __kvm_nvhe_\.L/d 44320e7c9dSMasahiro Yamada 45a951884dSArnd Bergmann# lld arm/aarch64/mips thunks 46a951884dSArnd Bergmann/ __[[:alnum:]]*Thunk_/d 47320e7c9dSMasahiro Yamada 48320e7c9dSMasahiro Yamada# CFI type identifiers 49320e7c9dSMasahiro Yamada/ __kcfi_typeid_/d 5071025b85SPierre-Clément Tosi/ __kvm_nvhe___kcfi_typeid_/d 5171025b85SPierre-Clément Tosi/ __pi___kcfi_typeid_/d 52320e7c9dSMasahiro Yamada 53c4802044SMasahiro Yamada# CRC from modversions 54c4802044SMasahiro Yamada/ __crc_/d 55c4802044SMasahiro Yamada 56c4802044SMasahiro Yamada# EXPORT_SYMBOL (symbol name) 57c4802044SMasahiro Yamada/ __kstrtab_/d 58c4802044SMasahiro Yamada 59c4802044SMasahiro Yamada# EXPORT_SYMBOL (namespace) 60c4802044SMasahiro Yamada/ __kstrtabns_/d 61c4802044SMasahiro Yamada 62*5ab23c79SAlexey Gladkov# MODULE_DEVICE_TABLE (symbol name) 63*5ab23c79SAlexey Gladkov/ __mod_device_table__/d 64*5ab23c79SAlexey Gladkov 65c4802044SMasahiro Yamada# --------------------------------------------------------------------------- 66320e7c9dSMasahiro Yamada# Ignored suffixes 67320e7c9dSMasahiro Yamada# (do not forget '$' after each pattern) 68320e7c9dSMasahiro Yamada 69320e7c9dSMasahiro Yamada# arm 70320e7c9dSMasahiro Yamada/_from_arm$/d 71320e7c9dSMasahiro Yamada/_from_thumb$/d 72320e7c9dSMasahiro Yamada/_veneer$/d 73320e7c9dSMasahiro Yamada 74320e7c9dSMasahiro Yamada# --------------------------------------------------------------------------- 75c4802044SMasahiro Yamada# Ignored symbols (exact match) 76c4802044SMasahiro Yamada# (do not forget a space before and '$' after each pattern) 77c4802044SMasahiro Yamada 78c4802044SMasahiro Yamada# for LoongArch? 79c4802044SMasahiro Yamada/ L0$/d 80ca09bf48SMasahiro Yamada 81320e7c9dSMasahiro Yamada# ppc 82320e7c9dSMasahiro Yamada/ _SDA_BASE_$/d 83320e7c9dSMasahiro Yamada/ _SDA2_BASE_$/d 84320e7c9dSMasahiro Yamada 853e86e4d7SMasahiro Yamada# MODULE_INFO() 863e86e4d7SMasahiro Yamada/ __UNIQUE_ID_modinfo[0-9]*$/d 873e86e4d7SMasahiro Yamada 88320e7c9dSMasahiro Yamada# --------------------------------------------------------------------------- 89320e7c9dSMasahiro Yamada# Ignored patterns 90320e7c9dSMasahiro Yamada# (symbols that contain the pattern are ignored) 91320e7c9dSMasahiro Yamada 92320e7c9dSMasahiro Yamada# ppc stub 93320e7c9dSMasahiro Yamada/\.long_branch\./d 94320e7c9dSMasahiro Yamada/\.plt_branch\./d 95