diff options
author | David Howells <dhowells@redhat.com> | 2009-03-04 14:59:07 -0500 |
---|---|---|
committer | Sam Ravnborg <sam@ravnborg.org> | 2009-04-11 02:18:10 -0400 |
commit | 5d7d18f5bc507b60d3d8967e2739d5e6ffdd630f (patch) | |
tree | 2c021642ba7bf345afaa876238a099211fd3fb1e | |
parent | 0fa3a88cfdfc910d7f335aef588edf9819c05d54 (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-- | Makefile | 4 | ||||
-rw-r--r-- | init/Kconfig | 8 |
2 files changed, 12 insertions, 0 deletions
@@ -597,6 +597,10 @@ LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\ | |||
597 | LDFLAGS_MODULE += $(LDFLAGS_BUILD_ID) | 597 | LDFLAGS_MODULE += $(LDFLAGS_BUILD_ID) |
598 | LDFLAGS_vmlinux += $(LDFLAGS_BUILD_ID) | 598 | LDFLAGS_vmlinux += $(LDFLAGS_BUILD_ID) |
599 | 599 | ||
600 | ifeq ($(CONFIG_STRIP_ASM_SYMS),y) | ||
601 | LDFLAGS_vmlinux += -X | ||
602 | endif | ||
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 | ||
811 | config 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 | |||
811 | config HOTPLUG | 819 | config 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 |