[PATCH]: __crc_* symbols in System.map

David S. Miller
2004-08-12T03:56:28Z

Shouldn't we be grepping these things 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.

So we should grep them out, right? If so, here is a patch which
implements that.

===== Makefile 1.511 vs edited =====
--- 1.511/Makefile 2004-08-09 19:12:34 -07:00
+++ edited/Makefile 2004-08-11 20:21:36 -07:00
@@ -538,7 +538,7 @@
echo 'cmd_$@ := $(cmd_vmlinux__)' > $(@D)/.$(@F).cmd
endef

-do_system_map = $(NM) $(1) | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > $(2)
+do_system_map = $(NM) $(1) | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)\|\(__crc_\)' | sort > $(2)

LDFLAGS_vmlinux += -T arch/$(ARCH)/kernel/vmlinux.lds.s