aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2009-03-04 14:59:07 -0500
committerSam Ravnborg <sam@ravnborg.org>2009-04-11 02:18:10 -0400
commit5d7d18f5bc507b60d3d8967e2739d5e6ffdd630f (patch)
tree2c021642ba7bf345afaa876238a099211fd3fb1e
parent0fa3a88cfdfc910d7f335aef588edf9819c05d54 (diff)
kbuild: make it possible for the linker to discard local symbols from vmlinux
Make it possible for the linker to discard local symbols from vmlinux as they cause vmlinux to balloon when CONFIG_KALLSYMS=y and they cause dump_stack() and get_wchan() to produce useless information under some circumstances. With this we add a config option (CONFIG_STRIP_ASM_SYMS) that will cause the build to supply -X to the linker to tell it to strip temporary local symbols. This doesn't seem to cause gdb any problems. Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
-rw-r--r--Makefile4
-rw-r--r--init/Kconfig8
2 files changed, 12 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 3e95d454285c..ad830bd45a4b 100644
--- a/Makefile
+++ b/Makefile
@@ -597,6 +597,10 @@ LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\
597LDFLAGS_MODULE += $(LDFLAGS_BUILD_ID) 597LDFLAGS_MODULE += $(LDFLAGS_BUILD_ID)
598LDFLAGS_vmlinux += $(LDFLAGS_BUILD_ID) 598LDFLAGS_vmlinux += $(LDFLAGS_BUILD_ID)
599 599
600ifeq ($(CONFIG_STRIP_ASM_SYMS),y)
601LDFLAGS_vmlinux += -X
602endif
603
600# Default kernel image to build when no specific target is given. 604# Default kernel image to build when no specific target is given.
601# KBUILD_IMAGE may be overruled on the command line or 605# KBUILD_IMAGE may be overruled on the command line or
602# set in the environment 606# set in the environment
diff --git a/init/Kconfig b/init/Kconfig
index f2f9b5362b48..7be4d3836745 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -808,6 +808,14 @@ config KALLSYMS_EXTRA_PASS
808 you wait for kallsyms to be fixed. 808 you wait for kallsyms to be fixed.
809 809
810 810
811config STRIP_ASM_SYMS
812 bool "Strip assembler-generated symbols during link"
813 default n
814 help
815 Strip internal assembler-generated symbols during a link (symbols
816 that look like '.Lxxx') so they don't pollute the output of
817 get_wchan() and suchlike.
818
811config HOTPLUG 819config HOTPLUG
812 bool "Support for hot-pluggable devices" if EMBEDDED 820 bool "Support for hot-pluggable devices" if EMBEDDED
813 default y 821 default y