diff options
author | Sam Ravnborg <sam@mars.ravnborg.org> | 2004-08-14 00:14:30 +0200 |
---|---|---|
committer | Sam Ravnborg <sam@mars.ravnborg.org> | 2004-08-14 00:14:30 +0200 |
commit | 29d28b2a027570e81d813f35d466c09ae54f4104 (patch) | |
tree | 17eb33f0c6e82c10ff9b41e0e436cf9d5b1dd42f /scripts | |
parent | e78d165503d0dfefeed18f48f722f4bf4ad79014 (diff) | |
download | history-29d28b2a027570e81d813f35d466c09ae54f4104.tar.gz |
kbuild: __crc_* symbols in System.map
David S. Miller <davem@redhat.com> wrote:
Shouldn't we be grepping __crc_ symbols out of the System.map file?
For one thing, these can confuse readprofile. It's algorithm is
to start at _stext, then stop when it sees a line in the System.map
which is not text (mode is one of 'T' 't' 'W' or 'w')
It will exit early if there are some intermixed __crc_* things in
there (since they are are mode 'A').
For example, in my current sparc64 kernel I have this:
00000000004cef80 t do_split
00000000004cf2a0 t add_dirent_to_buf
00000000004cf5a7 A __crc_init_special_inode
00000000004cf640 t make_indexed_dir
00000000004cf900 t ext3_add_entry
So no symbols after add_dirent_to_buf will be shown in the profiling
output of readprofile.
Implementation ported to mksysmap by Sam.
Included two System.map related fixes:
- Print "SYSMAP System.map" during build
- Sort symbols in System.map
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/mksysmap | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/scripts/mksysmap b/scripts/mksysmap index bb0fbef3db2b12..279fb9214aa00e 100644 --- a/scripts/mksysmap +++ b/scripts/mksysmap @@ -51,4 +51,11 @@ fi # U - undefined global symbols # w - local weak symbols -nm $1 | grep -v ' [aUw] ' > $2 +# 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'. __crc_ are 'A' and placed in the middle +# so we just ignore them to let readprofile continue to work. +# (At least sparc64 has __crc_ in the middle). + +$NM -n $1 | grep -v '\( [aUw] \)\|\(__crc_\)' > $2 + |