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 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# For System.map filter away: 15# a - local absolute symbols 16# U - undefined global symbols 17# N - debugging symbols 18# w - local weak symbols 19 20# readprofile starts reading symbols when _stext is found, and 21# continue until it finds a symbol which is not either of 'T', 't', 22# 'W' or 'w'. 23# 24# Ignored prefixes: 25# $ - local symbols for ARM, MIPS, etc. 26# .L - local labels, .LBB,.Ltmpxxx,.L__unnamed_xx,.LASANPC, etc. 27# __crc_ - modversions 28# __kstrtab_ - EXPORT_SYMBOL (symbol name) 29# __kstrtabns_ - EXPORT_SYMBOL (namespace) 30# 31# Ignored symbols: 32# L0 - for LoongArch? 33 34$NM -n $1 | grep -v \ 35 -e ' [aNUw] ' \ 36 -e ' \$' \ 37 -e ' \.L' \ 38 -e ' __crc_' \ 39 -e ' __kstrtab_' \ 40 -e ' __kstrtabns_' \ 41 -e ' L0$' \ 42> $2 43