Skip to content

Commit

Permalink
kbuild: move module strip/compression code into scripts/Makefile.modinst
Browse files Browse the repository at this point in the history
Both mod_strip_cmd and mod_compress_cmd are only used in
scripts/Makefile.modinst, hence there is no good reason to define them
in the top Makefile. Move the relevant code to scripts/Makefile.modinst.

Also, show separate log messages for each of install, strip, sign, and
compress.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
  • Loading branch information
masahir0y committed Apr 24, 2021
1 parent ccae4cf commit 65ce9c3
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 40 deletions.
32 changes: 0 additions & 32 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -1063,38 +1063,6 @@ export INSTALL_DTBS_PATH ?= $(INSTALL_PATH)/dtbs/$(KERNELRELEASE)
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 value will be 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

# CONFIG_MODULE_COMPRESS, if defined, will cause module to be compressed
# after they are installed in agreement with CONFIG_MODULE_COMPRESS_GZIP
# or CONFIG_MODULE_COMPRESS_XZ.

mod_compress_cmd = true
ifdef CONFIG_MODULE_COMPRESS
ifdef CONFIG_MODULE_COMPRESS_GZIP
mod_compress_cmd = $(KGZIP) -n -f
endif # CONFIG_MODULE_COMPRESS_GZIP
ifdef CONFIG_MODULE_COMPRESS_XZ
mod_compress_cmd = $(XZ) --lzma2=dict=2MiB -f
endif # CONFIG_MODULE_COMPRESS_XZ
endif # CONFIG_MODULE_COMPRESS
export mod_compress_cmd

ifdef CONFIG_MODULE_SIG_ALL
$(eval $(call config_filename,MODULE_SIG_KEY))

Expand Down
76 changes: 68 additions & 8 deletions scripts/Makefile.modinst
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
PHONY := __modinst
__modinst:

include include/config/auto.conf
include $(srctree)/scripts/Kbuild.include

modules := $(sort $(shell cat $(MODORDER)))
Expand All @@ -17,21 +18,80 @@ INSTALL_MOD_DIR ?= extra
dst := $(MODLIB)/$(INSTALL_MOD_DIR)
endif

modules := $(patsubst $(extmod_prefix)%, $(dst)/%, $(modules))
suffix-y :=
suffix-$(CONFIG_MODULE_COMPRESS_GZIP) := .gz
suffix-$(CONFIG_MODULE_COMPRESS_XZ) := .xz

modules := $(patsubst $(extmod_prefix)%, $(dst)/%$(suffix-y), $(modules))

__modinst: $(modules)
@:

# Don't stop modules_install if we can't sign external modules.
quiet_cmd_none =
cmd_none = :

#
# Installation
#
quiet_cmd_install = INSTALL $@
cmd_install = \
mkdir -p $(dir $@); cp $< $@; \
$(mod_strip_cmd) $@; \
$(mod_sign_cmd) $@ $(patsubst %,|| true,$(KBUILD_EXTMOD)) ; \
$(mod_compress_cmd) $@
cmd_install = mkdir -p $(dir $@); cp $< $@

# Strip
#
# 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 value will be used
# as the options to the strip command.
ifdef INSTALL_MOD_STRIP

ifeq ($(INSTALL_MOD_STRIP),1)
strip-option := --strip-debug
else
strip-option := $(INSTALL_MOD_STRIP)
endif

quiet_cmd_strip = STRIP $@
cmd_strip = $(STRIP) $(strip-option) $@

else

$(modules): $(dst)/%: $(extmod_prefix)% FORCE
quiet_cmd_strip =
cmd_strip = :

endif

#
# Signing
# Don't stop modules_install even if we can't sign external modules.
#
ifeq ($(CONFIG_MODULE_SIG_ALL),y)
quiet_cmd_sign = SIGN $@
$(eval $(call config_filename,MODULE_SIG_KEY))
cmd_sign = scripts/sign-file $(CONFIG_MODULE_SIG_HASH) $(MODULE_SIG_KEY_SRCPREFIX)$(CONFIG_MODULE_SIG_KEY) certs/signing_key.x509 $@ \
$(if $(KBUILD_EXTMOD),|| true)
else
quiet_cmd_sign :=
cmd_sign := :
endif

$(dst)/%.ko: $(extmod_prefix)%.ko FORCE
$(call cmd,install)
$(call cmd,strip)
$(call cmd,sign)

#
# Compression
#
quiet_cmd_gzip = GZIP $@
cmd_gzip = $(KGZIP) -n -f $<
quiet_cmd_xz = XZ $@
cmd_xz = $(XZ) --lzma2=dict=2MiB -f $<

$(dst)/%.ko.gz: $(dst)/%.ko FORCE
$(call cmd,gzip)

$(dst)/%.ko.xz: $(dst)/%.ko FORCE
$(call cmd,xz)

PHONY += FORCE
FORCE:
Expand Down

0 comments on commit 65ce9c3

Please sign in to comment.