aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2008-12-16 06:28:14 -0500
committerSam Ravnborg <sam@ravnborg.org>2008-12-19 16:41:15 -0500
commitad7a953c522ceb496611d127e51e278bfe0ff483 (patch)
treef51a18ab282bb77244fc02ad33359a92b6b36eb9 /Makefile
parent37a8d9f67f18de1e2cbc7387311ce22d4dbff518 (diff)
kbuild: strip generated symbols from *.ko
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>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile16
1 files changed, 8 insertions, 8 deletions
diff --git a/Makefile b/Makefile
index e1c5ae8a8162..5dd0ed3b12c6 100644
--- a/Makefile
+++ b/Makefile
@@ -605,19 +605,19 @@ MODLIB = $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
605export MODLIB 605export MODLIB
606 606
607# 607#
608# INSTALL_MOD_STRIP, if defined, will cause modules to be 608# INSTALL_MOD_STRIP, if defined, will cause modules to be stripped while
609# stripped after they are installed. If INSTALL_MOD_STRIP is '1', then 609# they get installed. If INSTALL_MOD_STRIP is '1', then the default
610# the default option --strip-debug will be used. Otherwise, 610# options (see below) will be used. Otherwise, INSTALL_MOD_STRIP will
611# INSTALL_MOD_STRIP will used as the options to the strip command. 611# be used as the option(s) to the objcopy command.
612
613ifdef INSTALL_MOD_STRIP 612ifdef INSTALL_MOD_STRIP
614ifeq ($(INSTALL_MOD_STRIP),1) 613ifeq ($(INSTALL_MOD_STRIP),1)
615mod_strip_cmd = $(STRIP) --strip-debug 614mod_strip_cmd = $(OBJCOPY) --strip-debug --strip-symbols \
615 $(srctree)/scripts/strip-symbols --wildcard
616else 616else
617mod_strip_cmd = $(STRIP) $(INSTALL_MOD_STRIP) 617mod_strip_cmd = $(OBJCOPY) $(INSTALL_MOD_STRIP)
618endif # INSTALL_MOD_STRIP=1 618endif # INSTALL_MOD_STRIP=1
619else 619else
620mod_strip_cmd = true 620mod_strip_cmd = false
621endif # INSTALL_MOD_STRIP 621endif # INSTALL_MOD_STRIP
622export mod_strip_cmd 622export mod_strip_cmd
623 623