Commit c3d7ef37 authored by Piotr Gorski's avatar Piotr Gorski Committed by Masahiro Yamada
Browse files

kbuild: add support for zstd compressed modules



kmod 28 supports modules compressed in zstd format so let's add this
possibility to kernel.

Signed-off-by: default avatarPiotr Gorski <lucjan.lucjanov@gmail.com>
Reviewed-by: default avatarOleksandr Natalenko <oleksandr@natalenko.name>
Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
parent d4bbe942
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -2242,7 +2242,7 @@ choice

	  Please note that the tool used to load modules needs to support the
	  corresponding algorithm. module-init-tools MAY support gzip, and kmod
	  MAY support gzip and xz.
	  MAY support gzip, xz and zstd.

	  Your build system needs to provide the appropriate compression tool
	  to compress the modules.
@@ -2267,6 +2267,12 @@ config MODULE_COMPRESS_XZ
	  Compress modules with XZ. The installed modules are suffixed
	  with .ko.xz.

config MODULE_COMPRESS_ZSTD
	bool "ZSTD"
	help
	  Compress modules with ZSTD. The installed modules are suffixed
	  with .ko.zst.

endchoice

config MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS
+6 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ endif
suffix-y				:=
suffix-$(CONFIG_MODULE_COMPRESS_GZIP)	:= .gz
suffix-$(CONFIG_MODULE_COMPRESS_XZ)	:= .xz
suffix-$(CONFIG_MODULE_COMPRESS_ZSTD)	:= .zst

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

@@ -95,6 +96,8 @@ quiet_cmd_gzip = GZIP $@
      cmd_gzip = $(KGZIP) -n -f $<
quiet_cmd_xz = XZ      $@
      cmd_xz = $(XZ) --lzma2=dict=2MiB -f $<
quiet_cmd_zstd = ZSTD    $@
      cmd_zstd = $(ZSTD) -T0 --rm -f -q $<

$(dst)/%.ko.gz: $(dst)/%.ko FORCE
	$(call cmd,gzip)
@@ -102,6 +105,9 @@ $(dst)/%.ko.gz: $(dst)/%.ko FORCE
$(dst)/%.ko.xz: $(dst)/%.ko FORCE
	$(call cmd,xz)

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

PHONY += FORCE
FORCE: