| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- #!/bin/sed -f
- # SPDX-License-Identifier: GPL-2.0-only
- #
- # sed script to filter out symbols that are not needed for System.map,
- # or not suitable for kallsyms. The input should be 'nm -n <file>'.
- #
- # System.map is used by module-init tools and some debugging
- # tools to retrieve the actual addresses of symbols in the kernel.
- #
- # readprofile starts reading symbols when _stext is found, and
- # continue until it finds a symbol which is not either of 'T', 't',
- # 'W' or 'w'.
- #
- # ---------------------------------------------------------------------------
- # Ignored symbol types
- #
- # a: local absolute symbols
- # N: debugging symbols
- # U: undefined global symbols
- # w: local weak symbols
- / [aNUw] /d
- # ---------------------------------------------------------------------------
- # Ignored prefixes
- # (do not forget a space before each pattern)
- # local symbols for ARM, MIPS, etc.
- / \$/d
- # local labels, .LBB, .Ltmpxxx, .L__unnamed_xx, .LASANPC, etc.
- / \.L/d
- # arm64 EFI stub namespace
- / __efistub_/d
- # arm64 local symbols in PIE namespace
- / __pi_\\$/d
- / __pi_\.L/d
- # arm64 local symbols in non-VHE KVM namespace
- / __kvm_nvhe_\$/d
- / __kvm_nvhe_\.L/d
- # lld arm/aarch64/mips thunks
- / __[[:alnum:]]*Thunk_/d
- # CFI type identifiers
- / __kcfi_typeid_/d
- / __kvm_nvhe___kcfi_typeid_/d
- / __pi___kcfi_typeid_/d
- # CRC from modversions
- / __crc_/d
- # EXPORT_SYMBOL (symbol name)
- / __kstrtab_/d
- # EXPORT_SYMBOL (namespace)
- / __kstrtabns_/d
- # MODULE_DEVICE_TABLE (symbol name)
- / __mod_device_table__/d
- # ---------------------------------------------------------------------------
- # Ignored suffixes
- # (do not forget '$' after each pattern)
- # arm
- /_from_arm$/d
- /_from_thumb$/d
- /_veneer$/d
- # ---------------------------------------------------------------------------
- # Ignored symbols (exact match)
- # (do not forget a space before and '$' after each pattern)
- # for LoongArch?
- / L0$/d
- # ppc
- / _SDA_BASE_$/d
- / _SDA2_BASE_$/d
- # MODULE_INFO()
- / __UNIQUE_ID_modinfo[0-9]*$/d
- # ---------------------------------------------------------------------------
- # Ignored patterns
- # (symbols that contain the pattern are ignored)
- # ppc stub
- /\.long_branch\./d
- /\.plt_branch\./d
|