[PATCH 1/3] Make it possible for the linker to discard local symbolsfrom vmlinux

From: David Howells
Date: Tue Feb 17 2009 - 11:56:35 EST


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@xxxxxxxxxx>
---

Makefile | 4 ++++
init/Kconfig | 8 ++++++++
2 files changed, 12 insertions(+), 0 deletions(-)


diff --git a/Makefile b/Makefile
index 22d7584..359470f 100644
--- a/Makefile
+++ b/Makefile
@@ -589,6 +589,10 @@ LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\
LDFLAGS_MODULE += $(LDFLAGS_BUILD_ID)
LDFLAGS_vmlinux += $(LDFLAGS_BUILD_ID)

+ifeq ($(CONFIG_STRIP_ASM_SYMS),y)
+LDFLAGS_vmlinux += -X
+endif
+
# Default kernel image to build when no specific target is given.
# KBUILD_IMAGE may be overruled on the command line or
# set in the environment
diff --git a/init/Kconfig b/init/Kconfig
index f068071..50c267a 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -737,6 +737,14 @@ config KALLSYMS_EXTRA_PASS
you wait for kallsyms to be fixed.


+config STRIP_ASM_SYMS
+ bool "Strip assembler-generated symbols during link"
+ default n
+ help
+ Strip internal assembler-generated symbols during a link (symbols
+ that look like '.Lxxx') so they don't pollute the output of
+ get_wchan() and suchlike.
+
config HOTPLUG
bool "Support for hot-pluggable devices" if EMBEDDED
default y

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/