60 lines · 1.6 KB · Text
RawDownload
#!/bin/sh -x# Based on the vmlinux file create the System.map file# System.map is used by module-init tools and some debugging# tools to retrieve the actual addresses of symbols in the kernel.## Usage# mksysmap vmlinux System.map  ###### Generate System.map (actual filename passed as second argument) # $NM produces the following output:# f0081e80 T alloc_vfsmnt #   The second row specify the type of the symbol:#   A = Absolute#   B = Uninitialised data (.bss)#   C = Common symbol#   D = Initialised data#   G = Initialised data for small objects#   I = Indirect reference to another symbol#   N = Debugging symbol#   R = Read only#   S = Uninitialised data for small objects#   T = Text code symbol#   U = Undefined symbol#   V = Weak symbol#   W = Weak symbol#   Corresponding small letters are local symbols # For System.map filter away:#   a - local absolute symbols#   U - undefined global symbols#   N - debugging symbols#   w - local weak symbols # 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 prefixes:#  $                    - local symbols for ARM, MIPS, etc.#  .L                   - local labels, .LBB,.Ltmpxxx,.L__unnamed_xx,.LASANPC, etc.#  __crc_               - modversions#  __kstrtab_           - EXPORT_SYMBOL (symbol name)#  __kstrtabns_         - EXPORT_SYMBOL (namespace)## Ignored symbols:#  L0                   - for LoongArch? $NM -n $1 | grep -v		\	-e ' [aNUw] '		\	-e ' \$'		\	-e ' \.L'		\	-e ' __crc_'		\	-e ' __kstrtab_'	\	-e ' __kstrtabns_'	\	-e ' L0$'		\> $2