summaryrefslogtreecommitdiff
path: root/scripts/mksysmap
AgeCommit message (Collapse)Author
2009-01-14Revert "kbuild: strip generated symbols from *.ko"Sam Ravnborg
This reverts commit ad7a953c522ceb496611d127e51e278bfe0ff483. And commit: ("allow stripping of generated symbols under CONFIG_KALLSYMS_ALL") 9bb482476c6c9d1ae033306440c51ceac93ea80c These stripping patches has caused a set of issues: 1) People have reported compatibility issues with binutils due to lack of support for `--strip-unneeded-symbols' with objcopy 2.15.92.0.2 Reported by: Wenji 2) ccache and distcc no longer works as expeced Reported by: Ted, Roland, + others 3) The installed modules increased a lot in size Reported by: Ted, Davej + others Reported-by: Wenji Huang <wenji.huang@oracle.com> Reported-by: "Theodore Ts'o" <tytso@mit.edu> Reported-by: Dave Jones <davej@redhat.com> Reported-by: Roland McGrath <roland@redhat.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2008-12-19kbuild: strip generated symbols from *.koJan Beulich
This patch changes the way __crc_ symbols are being resolved from using ld to do so to using the assembler, thus allowing these symbols to be marked local (the linker creates then as global ones) and hence allow stripping (for modules) or ignoring (for vmlinux) them. While at this, also strip other generated symbols during module installation. One potentially debatable point is the handling of the flags passeed to gcc when translating the intermediate assembly file into an object: passing $(c_flags) unchanged doesn't work as gcc passes --gdwarf2 to gas whenever is sees any -g* option, even for -g0, and despite the fact that the compiler would have already produced all necessary debug info in the C->assembly translation phase. I took the approach of just filtering out all -g* options, but an alternative to such negative filtering might be to have a positive filter which might, in the ideal case allow just all the -Wa,* options to pass through. Signed-off-by: Jan Beulich <jbeulich@novell.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2008-05-19kbuild: filter away debug symbols from kernel symbolsSam Ravnborg
Andi Kleen <andi@firstfloor.org> reported that he saw a lot of symbols like this: 0000000000000b24 N DW.aio.h.903a6d92.2 0000000000000bce N DW.task_io_accounting.h.8d8de327.0 0000000000000bec N DW.hrtimer.h.c23659c6.0 in his System.map / kallsyms output. Simple solution is to skip all debugging symbols (they are marked 'N'). Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Paulo Marques <pmarques@grupopie.com>
2006-01-10spelling: s/retreive/retrieve/Adrian Bunk
Signed-off-by: Adrian Bunk <bunk@stusta.de>
2004-10-27arm: Fix ARM kernel build with permitted binutils versionsRussell King
All ARM binutils versions post 2.11.90 contains an extra "feature" which interferes with the kernel in various ways - extra "mapping symbols" in the ELF symbol table '$a', '$t' and '$d'. This causes two problems: 1. Since '$a' symbols have the same value as function names, this causes anything which uses the kallsyms infrastructure to report wrong values. 2. programs which parse System.map do not expect symbols to start with '$'. Signed-off-by: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Sam Ravnborg <sam@ravnborg.org> ===== kernel/module.c 1.120 vs edited =====
2004-08-19kbuild: Remove check for undefined symbols in vmlinuxSam Ravnborg
Russell King reported that some gcc / bin-utils combination may result in undefined symbols in vmlinux and implemented a check for that. Though the cause is very valid this check has proved to be a real pain for other users, especially sparc and um. Short term a similar check is asked to be implemented in arch/arm*/Makefile and long-term to bail out if too old gcc / bin-utils is used. Long term plan awaits a new gcc / bin-utils release. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2004-08-14kbuild: __crc_* symbols in System.mapSam Ravnborg
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>
2004-08-08kbuild/sparc: Use new generic mksysmap script to generate System.mapSam Ravnborg
o Introduced usage of the mksysmap script. o Improved the non-verbose output to look like this: BTFIX arch/sparc/boot/btfix.S AS arch/sparc/boot/btfix.o LD arch/sparc/boot/image SYSMAP arch/sparc/boot/System.map o No longer generate System.map for each build o Use normal AS rule to compile btfix.S Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2004-08-08kbuild: Check for undefined symbols in vmlinuxSam Ravnborg
At least one bin-utils version for ARM is know to ignore undefined symbols when performing the final link of vmlinux. Add an explicit check for undefined symbols to catch this. The check is made in combination with generating the System.map file and the actual algorithm is moved to a small shell script - mksysmap. External symbols with three leading underscores are ignored - sparc uses them for the BTFIXUP logic. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>