11da177e4SLinus Torvalds#!/bin/sh -x 21da177e4SLinus Torvalds# Based on the vmlinux file create the System.map file 31da177e4SLinus Torvalds# System.map is used by module-init tools and some debugging 4943ffb58SAdrian Bunk# tools to retrieve the actual addresses of symbols in the kernel. 51da177e4SLinus Torvalds# 61da177e4SLinus Torvalds# Usage 71da177e4SLinus Torvalds# mksysmap vmlinux System.map 81da177e4SLinus Torvalds 91da177e4SLinus Torvalds 101da177e4SLinus Torvalds##### 111da177e4SLinus Torvalds# Generate System.map (actual filename passed as second argument) 12*e9f76363SMasahiro Yamada# The following refers to the symbol type as per nm(1). 131da177e4SLinus Torvalds 141da177e4SLinus Torvalds# For System.map filter away: 151da177e4SLinus Torvalds# a - local absolute symbols 161da177e4SLinus Torvalds# U - undefined global symbols 17aab34ac8SSam Ravnborg# N - debugging symbols 181da177e4SLinus Torvalds# w - local weak symbols 191da177e4SLinus Torvalds 201da177e4SLinus Torvalds# readprofile starts reading symbols when _stext is found, and 211da177e4SLinus Torvalds# continue until it finds a symbol which is not either of 'T', 't', 22c1346169SMasahiro Yamada# 'W' or 'w'. 23c1346169SMasahiro Yamada# 24c1346169SMasahiro Yamada# Ignored prefixes: 25a2833d1bSMasahiro Yamada# $ - local symbols for ARM, MIPS, etc. 26a2833d1bSMasahiro Yamada# .L - local labels, .LBB,.Ltmpxxx,.L__unnamed_xx,.LASANPC, etc. 27c1346169SMasahiro Yamada# __crc_ - modversions 28d32b55f4SMasahiro Yamada# __kstrtab_ - EXPORT_SYMBOL (symbol name) 29d32b55f4SMasahiro Yamada# __kstrtabns_ - EXPORT_SYMBOL (namespace) 30a2833d1bSMasahiro Yamada# 31a2833d1bSMasahiro Yamada# Ignored symbols: 32a2833d1bSMasahiro Yamada# L0 - for LoongArch? 33a2833d1bSMasahiro Yamada 34a2833d1bSMasahiro Yamada$NM -n $1 | grep -v \ 35a2833d1bSMasahiro Yamada -e ' [aNUw] ' \ 36a2833d1bSMasahiro Yamada -e ' \$' \ 37a2833d1bSMasahiro Yamada -e ' \.L' \ 38a2833d1bSMasahiro Yamada -e ' __crc_' \ 39d32b55f4SMasahiro Yamada -e ' __kstrtab_' \ 40d32b55f4SMasahiro Yamada -e ' __kstrtabns_' \ 41a2833d1bSMasahiro Yamada -e ' L0$' \ 42a2833d1bSMasahiro Yamada> $2 43