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) 12e9f76363SMasahiro Yamada# The following refers to the symbol type as per nm(1). 131da177e4SLinus Torvalds 141da177e4SLinus Torvalds# readprofile starts reading symbols when _stext is found, and 151da177e4SLinus Torvalds# continue until it finds a symbol which is not either of 'T', 't', 16c1346169SMasahiro Yamada# 'W' or 'w'. 17c1346169SMasahiro Yamada# 18a2833d1bSMasahiro Yamada 19*c4802044SMasahiro Yamada${NM} -n ${1} | sed >${2} -e " 20*c4802044SMasahiro Yamada# --------------------------------------------------------------------------- 21*c4802044SMasahiro Yamada# Ignored symbol types 22*c4802044SMasahiro Yamada# 23*c4802044SMasahiro Yamada 24*c4802044SMasahiro Yamada# a: local absolute symbols 25*c4802044SMasahiro Yamada# N: debugging symbols 26*c4802044SMasahiro Yamada# U: undefined global symbols 27*c4802044SMasahiro Yamada# w: local weak symbols 28*c4802044SMasahiro Yamada/ [aNUw] /d 29*c4802044SMasahiro Yamada 30*c4802044SMasahiro Yamada# --------------------------------------------------------------------------- 31*c4802044SMasahiro Yamada# Ignored prefixes 32*c4802044SMasahiro Yamada# (do not forget a space before each pattern) 33*c4802044SMasahiro Yamada 34*c4802044SMasahiro Yamada# local symbols for ARM, MIPS, etc. 35*c4802044SMasahiro Yamada/ \$/d 36*c4802044SMasahiro Yamada 37*c4802044SMasahiro Yamada# local labels, .LBB, .Ltmpxxx, .L__unnamed_xx, .LASANPC, etc. 38*c4802044SMasahiro Yamada/ \.L/d 39*c4802044SMasahiro Yamada 40*c4802044SMasahiro Yamada# CRC from modversions 41*c4802044SMasahiro Yamada/ __crc_/d 42*c4802044SMasahiro Yamada 43*c4802044SMasahiro Yamada# EXPORT_SYMBOL (symbol name) 44*c4802044SMasahiro Yamada/ __kstrtab_/d 45*c4802044SMasahiro Yamada 46*c4802044SMasahiro Yamada# EXPORT_SYMBOL (namespace) 47*c4802044SMasahiro Yamada/ __kstrtabns_/d 48*c4802044SMasahiro Yamada 49*c4802044SMasahiro Yamada# --------------------------------------------------------------------------- 50*c4802044SMasahiro Yamada# Ignored symbols (exact match) 51*c4802044SMasahiro Yamada# (do not forget a space before and '$' after each pattern) 52*c4802044SMasahiro Yamada 53*c4802044SMasahiro Yamada# for LoongArch? 54*c4802044SMasahiro Yamada/ L0$/d 55*c4802044SMasahiro Yamada" 56