[PATCH] Add option for stripping modules while installing them




[ I sent this to kbuild-devel@xxxxxxxxxxxxxxxxxxxxx cc'ed to LKML about
two weeks ago, and never got a comment. Andrew could you include this
in the -mm tree? It's IMHO a useful feature. -- Ted ]

Add option for stripping modules while installing them

This function adds support for stripping modules while they are being
installed. CONFIG_DEBUG_KERNEL (which will probably become more
popular as developers use kdump) causes the size of the installed
modules to grow by a factor of 9 or so.

Some kernel package systems solve this problem by stripping the debug
information from /lib/modules after running "make modules_install",
but that may not work for people who are installing directly into
/lib/modules --- root partitions that were sized to handle 16 megs
worth of modules may not be quite so happy with 145 megs of modules,
so the "make modules_install" never succeeds.

This patch allows such users to request modules_install to strip the
modules as they are installed.

Signed-off-by: "Theodore Ts'o" <tytso@xxxxxxx>


Index: 2.6.17/Makefile
===================================================================
--- 2.6.17.orig/Makefile 2006-06-17 21:49:35.000000000 -0400
+++ 2.6.17/Makefile 2006-06-18 12:15:09.000000000 -0400
@@ -516,6 +516,23 @@
MODLIB = $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
export MODLIB

+#
+# INSTALL_MOD_STRIP, if defined, will cause modules to be
+# stripped after they are installed. If INSTALL_MOD_STRIP is '1', then
+# the default option --strip-debug will be used. Otherwise,
+# INSTALL_MOD_STRIP will used as the options to the strip command.
+
+ifdef INSTALL_MOD_STRIP
+ifeq ($(INSTALL_MOD_STRIP),1)
+mod_strip_cmd = strip --strip-debug
+else
+mod_strip_cmd = strip $(INSTALL_MOD_STRIP)
+endif # INSTALL_MOD_STRIP=1
+else
+mod_strip_cmd = true
+endif # INSTALL_MOD_STRIP
+export mod_strip_cmd
+

ifeq ($(KBUILD_EXTMOD),)
core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/
Index: 2.6.17/scripts/Makefile.modinst
===================================================================
--- 2.6.17.orig/scripts/Makefile.modinst 2006-06-17 21:49:35.000000000 -0400
+++ 2.6.17/scripts/Makefile.modinst 2006-06-18 12:15:09.000000000 -0400
@@ -17,7 +17,7 @@
@:

quiet_cmd_modules_install = INSTALL $@
- cmd_modules_install = mkdir -p $(2); cp $@ $(2)
+ cmd_modules_install = mkdir -p $(2); cp $@ $(2) ; $(mod_strip_cmd) $(2)/$(notdir $@)

# Modules built outside the kernel source tree go into extra by default
INSTALL_MOD_DIR ?= extra
Index: 2.6.17/Documentation/kbuild/makefiles.txt
===================================================================
--- 2.6.17.orig/Documentation/kbuild/makefiles.txt 2006-06-17 21:49:35.000000000 -0400
+++ 2.6.17/Documentation/kbuild/makefiles.txt 2006-06-18 12:15:09.000000000 -0400
@@ -1123,6 +1123,14 @@
$(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE). The user may
override this value on the command line if desired.

+ INSTALL_MOD_STRIP
+
+ If this variable is specified, will cause modules to be stripped
+ after they are installed. If INSTALL_MOD_STRIP is '1', then the
+ default option --strip-debug will be used. Otherwise,
+ INSTALL_MOD_STRIP will used as the option(s) to the strip command.
+
+
=== 8 Makefile language

The kernel Makefiles are designed to run with GNU Make. The Makefiles
-
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/



Relevant Pages

  • [PATCH, RFC] Add option for stripping modules while installing them
    ... This function adds support for stripping modules while they are being ... Some kernel package systems solve this problem by stripping the debug ... but that may not work for people who are installing directly into ... The kernel Makefiles are designed to run with GNU Make. ...
    (Linux-Kernel)
  • Re: Advice for Stripping the Kernel
    ... be stripped of sockets, drivers, memory management, and alot more. ... what I shall be left with is a kernel with a few system ... the stripping? ...
    (freebsd-hackers)
  • Re: FreeBSD and LLVM
    ... but I patched the ports rather poorly. ... I was able to compile a kernel with SMP disabled and PAE enabled. ... ^ output of ls -l kernel before stripping ... the infrastructure to support llvm in addition to gcc and icc might ...
    (freebsd-hackers)
  • Re: Advice for Stripping the Kernel
    ... I am about to almost completely strip FreeBSD's kernel. ... be stripped of sockets, drivers, memory management, and alot more. ... Stripping down ...
    (freebsd-hackers)
  • Advice for Stripping the Kernel
    ... I am about to almost completely strip FreeBSD's kernel. ... be stripped of sockets, drivers, memory management, and alot more. ... the stripping? ...
    (freebsd-hackers)