summarylogtreecommitdiffstats
path: root/0001-kbuild-add-variables-for-compression-tools.patch
diff options
context:
space:
mode:
authorLuca Stefani2020-07-31 13:09:23 +0200
committerLuca Stefani2020-07-31 13:09:43 +0200
commit17fe7a580a8cebad71d6c3577e17263f3996e338 (patch)
tree9f44cecb8ea48bf6f0fc72bfccbecda124e74d90 /0001-kbuild-add-variables-for-compression-tools.patch
downloadaur-17fe7a580a8cebad71d6c3577e17263f3996e338.tar.gz
linux built with LLVM
Diffstat (limited to '0001-kbuild-add-variables-for-compression-tools.patch')
-rw-r--r--0001-kbuild-add-variables-for-compression-tools.patch277
1 files changed, 277 insertions, 0 deletions
diff --git a/0001-kbuild-add-variables-for-compression-tools.patch b/0001-kbuild-add-variables-for-compression-tools.patch
new file mode 100644
index 000000000000..a18cb737c035
--- /dev/null
+++ b/0001-kbuild-add-variables-for-compression-tools.patch
@@ -0,0 +1,277 @@
+From 930e3fb4b98d5ecbedef8e28d2020799d1e8ce5d Mon Sep 17 00:00:00 2001
+From: Denis Efremov <efremov@linux.com>
+Date: Fri, 5 Jun 2020 10:39:55 +0300
+Subject: [PATCH 1/9] kbuild: add variables for compression tools
+
+Allow user to use alternative implementations of compression tools,
+such as pigz, pbzip2, pxz. For example, multi-threaded tools to
+speed up the build:
+$ make GZIP=pigz BZIP2=pbzip2
+
+Variables _GZIP, _BZIP2, _LZOP are used internally because original env
+vars are reserved by the tools. The use of GZIP in gzip tool is obsolete
+since 2015. However, alternative implementations (e.g., pigz) still rely
+on it. BZIP2, BZIP, LZOP vars are not obsolescent.
+
+The credit goes to @grsecurity.
+
+As a sidenote, for multi-threaded lzma, xz compression one can use:
+$ export XZ_OPT="--threads=0"
+
+Signed-off-by: Denis Efremov <efremov@linux.com>
+Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
+---
+ Makefile | 25 +++++++++++++++++++++++--
+ arch/arm/boot/deflate_xip_data.sh | 2 +-
+ arch/ia64/Makefile | 2 +-
+ arch/m68k/Makefile | 8 ++++----
+ arch/parisc/Makefile | 2 +-
+ kernel/gen_kheaders.sh | 2 +-
+ scripts/Makefile.lib | 12 ++++++------
+ scripts/Makefile.package | 8 ++++----
+ scripts/package/buildtar | 6 +++---
+ scripts/xz_wrap.sh | 2 +-
+ 10 files changed, 45 insertions(+), 24 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index b70bc48e9c31..d55c60fb3912 100644
+--- a/Makefile
++++ b/Makefile
+@@ -447,6 +447,26 @@ PYTHON = python
+ PYTHON3 = python3
+ CHECK = sparse
+ BASH = bash
++GZIP = gzip
++BZIP2 = bzip2
++LZOP = lzop
++LZMA = lzma
++LZ4 = lz4c
++XZ = xz
++
++# GZIP, BZIP2, LZOP env vars are used by the tools. Support them as the command
++# line interface, but use _GZIP, _BZIP2, _LZOP internally.
++_GZIP := $(GZIP)
++_BZIP2 := $(BZIP2)
++_LZOP := $(LZOP)
++
++# Reset GZIP, BZIP2, LZOP in this Makefile
++override GZIP=
++override BZIP2=
++override LZOP=
++
++# Reset GZIP, BZIP2, LZOP in recursive invocations
++MAKEOVERRIDES += GZIP= BZIP2= LZOP=
+
+ CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ \
+ -Wbitwise -Wno-return-void -Wno-unknown-attribute $(CF)
+@@ -495,6 +515,7 @@ CLANG_FLAGS :=
+ export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC
+ export CPP AR NM STRIP OBJCOPY OBJDUMP OBJSIZE READELF PAHOLE LEX YACC AWK INSTALLKERNEL
+ export PERL PYTHON PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX
++export _GZIP _BZIP2 _LZOP LZMA LZ4 XZ
+ export KBUILD_HOSTCXXFLAGS KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS LDFLAGS_MODULE
+
+ export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS KBUILD_LDFLAGS
+@@ -1001,10 +1022,10 @@ export mod_strip_cmd
+ mod_compress_cmd = true
+ ifdef CONFIG_MODULE_COMPRESS
+ ifdef CONFIG_MODULE_COMPRESS_GZIP
+- mod_compress_cmd = gzip -n -f
++ mod_compress_cmd = $(_GZIP) -n -f
+ endif # CONFIG_MODULE_COMPRESS_GZIP
+ ifdef CONFIG_MODULE_COMPRESS_XZ
+- mod_compress_cmd = xz -f
++ mod_compress_cmd = $(XZ) -f
+ endif # CONFIG_MODULE_COMPRESS_XZ
+ endif # CONFIG_MODULE_COMPRESS
+ export mod_compress_cmd
+diff --git a/arch/arm/boot/deflate_xip_data.sh b/arch/arm/boot/deflate_xip_data.sh
+index 40937248cebe..739f0464321e 100755
+--- a/arch/arm/boot/deflate_xip_data.sh
++++ b/arch/arm/boot/deflate_xip_data.sh
+@@ -56,7 +56,7 @@ trap 'rm -f "$XIPIMAGE.tmp"; exit 1' 1 2 3
+ # substitute the data section by a compressed version
+ $DD if="$XIPIMAGE" count=$data_start iflag=count_bytes of="$XIPIMAGE.tmp"
+ $DD if="$XIPIMAGE" skip=$data_start iflag=skip_bytes |
+-gzip -9 >> "$XIPIMAGE.tmp"
++$_GZIP -9 >> "$XIPIMAGE.tmp"
+
+ # replace kernel binary
+ mv -f "$XIPIMAGE.tmp" "$XIPIMAGE"
+diff --git a/arch/ia64/Makefile b/arch/ia64/Makefile
+index 32240000dc0c..f817f3d5e758 100644
+--- a/arch/ia64/Makefile
++++ b/arch/ia64/Makefile
+@@ -40,7 +40,7 @@ $(error Sorry, you need a newer version of the assember, one that is built from
+ endif
+
+ quiet_cmd_gzip = GZIP $@
+-cmd_gzip = cat $(real-prereqs) | gzip -n -f -9 > $@
++cmd_gzip = cat $(real-prereqs) | $(_GZIP) -n -f -9 > $@
+
+ quiet_cmd_objcopy = OBJCOPY $@
+ cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $(OBJCOPYFLAGS_$(@F)) $< $@
+diff --git a/arch/m68k/Makefile b/arch/m68k/Makefile
+index 5d9288384096..ce6db5e5a5a3 100644
+--- a/arch/m68k/Makefile
++++ b/arch/m68k/Makefile
+@@ -135,10 +135,10 @@ vmlinux.gz: vmlinux
+ ifndef CONFIG_KGDB
+ cp vmlinux vmlinux.tmp
+ $(STRIP) vmlinux.tmp
+- gzip -9c vmlinux.tmp >vmlinux.gz
++ $(_GZIP) -9c vmlinux.tmp >vmlinux.gz
+ rm vmlinux.tmp
+ else
+- gzip -9c vmlinux >vmlinux.gz
++ $(_GZIP) -9c vmlinux >vmlinux.gz
+ endif
+
+ bzImage: vmlinux.bz2
+@@ -148,10 +148,10 @@ vmlinux.bz2: vmlinux
+ ifndef CONFIG_KGDB
+ cp vmlinux vmlinux.tmp
+ $(STRIP) vmlinux.tmp
+- bzip2 -1c vmlinux.tmp >vmlinux.bz2
++ $(_BZIP2) -1c vmlinux.tmp >vmlinux.bz2
+ rm vmlinux.tmp
+ else
+- bzip2 -1c vmlinux >vmlinux.bz2
++ $(_BZIP2) -1c vmlinux >vmlinux.bz2
+ endif
+
+ archclean:
+diff --git a/arch/parisc/Makefile b/arch/parisc/Makefile
+index 628cd8bb7ad8..e1aa514aeb36 100644
+--- a/arch/parisc/Makefile
++++ b/arch/parisc/Makefile
+@@ -162,7 +162,7 @@ vmlinuz: bzImage
+ $(OBJCOPY) $(boot)/bzImage $@
+ else
+ vmlinuz: vmlinux
+- @gzip -cf -9 $< > $@
++ @$(_GZIP) -cf -9 $< > $@
+ endif
+
+ install:
+diff --git a/kernel/gen_kheaders.sh b/kernel/gen_kheaders.sh
+index e13ca842eb7e..c1510f0ab3ea 100755
+--- a/kernel/gen_kheaders.sh
++++ b/kernel/gen_kheaders.sh
+@@ -88,7 +88,7 @@ find $cpio_dir -type f -print0 |
+ find $cpio_dir -printf "./%P\n" | LC_ALL=C sort | \
+ tar "${KBUILD_BUILD_TIMESTAMP:+--mtime=$KBUILD_BUILD_TIMESTAMP}" \
+ --owner=0 --group=0 --numeric-owner --no-recursion \
+- -Jcf $tarfile -C $cpio_dir/ -T - > /dev/null
++ -I $XZ -cf $tarfile -C $cpio_dir/ -T - > /dev/null
+
+ echo $headers_md5 > kernel/kheaders.md5
+ echo "$this_file_md5" >> kernel/kheaders.md5
+diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
+index 4b799737722c..a1c1424e6b52 100644
+--- a/scripts/Makefile.lib
++++ b/scripts/Makefile.lib
+@@ -241,7 +241,7 @@ cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $(OBJCOPYFLAGS_$(@F)) $< $@
+ # ---------------------------------------------------------------------------
+
+ quiet_cmd_gzip = GZIP $@
+- cmd_gzip = cat $(real-prereqs) | gzip -n -f -9 > $@
++ cmd_gzip = cat $(real-prereqs) | $(_GZIP) -n -f -9 > $@
+
+ # DTC
+ # ---------------------------------------------------------------------------
+@@ -334,19 +334,19 @@ printf "%08x\n" $$dec_size | \
+ )
+
+ quiet_cmd_bzip2 = BZIP2 $@
+- cmd_bzip2 = { cat $(real-prereqs) | bzip2 -9; $(size_append); } > $@
++ cmd_bzip2 = { cat $(real-prereqs) | $(_BZIP2) -9; $(size_append); } > $@
+
+ # Lzma
+ # ---------------------------------------------------------------------------
+
+ quiet_cmd_lzma = LZMA $@
+- cmd_lzma = { cat $(real-prereqs) | lzma -9; $(size_append); } > $@
++ cmd_lzma = { cat $(real-prereqs) | $(LZMA) -9; $(size_append); } > $@
+
+ quiet_cmd_lzo = LZO $@
+- cmd_lzo = { cat $(real-prereqs) | lzop -9; $(size_append); } > $@
++ cmd_lzo = { cat $(real-prereqs) | $(_LZOP) -9; $(size_append); } > $@
+
+ quiet_cmd_lz4 = LZ4 $@
+- cmd_lz4 = { cat $(real-prereqs) | lz4c -l -c1 stdin stdout; \
++ cmd_lz4 = { cat $(real-prereqs) | $(LZ4) -l -c1 stdin stdout; \
+ $(size_append); } > $@
+
+ # U-Boot mkimage
+@@ -393,7 +393,7 @@ quiet_cmd_xzkern = XZKERN $@
+ $(size_append); } > $@
+
+ quiet_cmd_xzmisc = XZMISC $@
+- cmd_xzmisc = cat $(real-prereqs) | xz --check=crc32 --lzma2=dict=1MiB > $@
++ cmd_xzmisc = cat $(real-prereqs) | $(XZ) --check=crc32 --lzma2=dict=1MiB > $@
+
+ # ASM offsets
+ # ---------------------------------------------------------------------------
+diff --git a/scripts/Makefile.package b/scripts/Makefile.package
+index 02135d2671a6..b2b6153af63a 100644
+--- a/scripts/Makefile.package
++++ b/scripts/Makefile.package
+@@ -45,7 +45,7 @@ if test "$(objtree)" != "$(srctree)"; then \
+ false; \
+ fi ; \
+ $(srctree)/scripts/setlocalversion --save-scmversion; \
+-tar -cz $(RCS_TAR_IGNORE) -f $(2).tar.gz \
++tar -I $(_GZIP) -c $(RCS_TAR_IGNORE) -f $(2).tar.gz \
+ --transform 's:^:$(2)/:S' $(TAR_CONTENT) $(3); \
+ rm -f $(objtree)/.scmversion
+
+@@ -127,9 +127,9 @@ util/PERF-VERSION-GEN $(CURDIR)/$(perf-tar)/); \
+ tar rf $(perf-tar).tar $(perf-tar)/HEAD $(perf-tar)/PERF-VERSION-FILE; \
+ rm -r $(perf-tar); \
+ $(if $(findstring tar-src,$@),, \
+-$(if $(findstring bz2,$@),bzip2, \
+-$(if $(findstring gz,$@),gzip, \
+-$(if $(findstring xz,$@),xz, \
++$(if $(findstring bz2,$@),$(_BZIP2), \
++$(if $(findstring gz,$@),$(_GZIP), \
++$(if $(findstring xz,$@),$(XZ), \
+ $(error unknown target $@)))) \
+ -f -9 $(perf-tar).tar)
+
+diff --git a/scripts/package/buildtar b/scripts/package/buildtar
+index 77c7caefede1..ad62c6879622 100755
+--- a/scripts/package/buildtar
++++ b/scripts/package/buildtar
+@@ -28,15 +28,15 @@ case "${1}" in
+ opts=
+ ;;
+ targz-pkg)
+- opts=--gzip
++ opts="-I ${_GZIP}"
+ tarball=${tarball}.gz
+ ;;
+ tarbz2-pkg)
+- opts=--bzip2
++ opts="-I ${_BZIP2}"
+ tarball=${tarball}.bz2
+ ;;
+ tarxz-pkg)
+- opts=--xz
++ opts="-I ${XZ}"
+ tarball=${tarball}.xz
+ ;;
+ *)
+diff --git a/scripts/xz_wrap.sh b/scripts/xz_wrap.sh
+index 7a2d372f4885..76e9cbcfbeab 100755
+--- a/scripts/xz_wrap.sh
++++ b/scripts/xz_wrap.sh
+@@ -20,4 +20,4 @@ case $SRCARCH in
+ sparc) BCJ=--sparc ;;
+ esac
+
+-exec xz --check=crc32 $BCJ --lzma2=$LZMA2OPTS,dict=32MiB
++exec $XZ --check=crc32 $BCJ --lzma2=$LZMA2OPTS,dict=32MiB
+--
+2.28.0
+