linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/1] compress kernels with minigzip
@ 2013-10-22 21:07 Andrew Boie
  2013-10-22 21:07 ` [PATCH 1/1] x86: boot: support minigzip bzImage compression Andrew Boie
  0 siblings, 1 reply; 7+ messages in thread
From: Andrew Boie @ 2013-10-22 21:07 UTC (permalink / raw)
  To: linux-kernel; +Cc: hpa, tglx, mmarek, Andrew Boie

This patch is for building kernels on x86-based Android devices.
The binary patches created by its OTA system work much better if
the deflate() algorithm inside zlib is used, rather than the
older version inside gzip.

This patch was committed against the master branch of Linus'
tree.

Andrew Boie (1):
  x86: boot: support minigzip bzImage compression

 arch/x86/Kconfig                  |  1 +
 arch/x86/boot/compressed/Makefile |  3 +++
 arch/x86/boot/compressed/misc.c   |  2 +-
 init/Kconfig                      | 18 +++++++++++++++++-
 scripts/Makefile.lib              |  7 +++++++
 5 files changed, 29 insertions(+), 2 deletions(-)

-- 
1.8.3.2


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/1] x86: boot: support minigzip bzImage compression
  2013-10-22 21:07 [PATCH 0/1] compress kernels with minigzip Andrew Boie
@ 2013-10-22 21:07 ` Andrew Boie
  2013-10-23  0:26   ` H. Peter Anvin
  0 siblings, 1 reply; 7+ messages in thread
From: Andrew Boie @ 2013-10-22 21:07 UTC (permalink / raw)
  To: linux-kernel; +Cc: hpa, tglx, mmarek, Andrew Boie

Android OTA system computes very efficient diffs of compressed files
if the deflate() algorithm it has access to is the same version as
used to create the original file. Here we add support for compressing
the kernel with 'minigzip' which uses the deflate() inside zlib.
This is much better than using 'gzip' as that tool has a very old
version of deflate() inside the gzip codebase instead of linking against
zlib.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
---
 arch/x86/Kconfig                  |  1 +
 arch/x86/boot/compressed/Makefile |  3 +++
 arch/x86/boot/compressed/misc.c   |  2 +-
 init/Kconfig                      | 18 +++++++++++++++++-
 scripts/Makefile.lib              |  7 +++++++
 5 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index f67e839..aa91cef 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -62,6 +62,7 @@ config X86
 	select HAVE_REGS_AND_STACK_ACCESS_API
 	select HAVE_DMA_API_DEBUG
 	select HAVE_KERNEL_GZIP
+	select HAVE_KERNEL_MINIGZIP
 	select HAVE_KERNEL_BZIP2
 	select HAVE_KERNEL_LZMA
 	select HAVE_KERNEL_XZ
diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
index dcd90df..f000791 100644
--- a/arch/x86/boot/compressed/Makefile
+++ b/arch/x86/boot/compressed/Makefile
@@ -56,6 +56,8 @@ vmlinux.bin.all-$(CONFIG_X86_NEED_RELOCS) += $(obj)/vmlinux.relocs
 
 $(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) FORCE
 	$(call if_changed,gzip)
+$(obj)/vmlinux.bin.mgz: $(vmlinux.bin.all-y) FORCE
+	$(call if_changed,minigzip)
 $(obj)/vmlinux.bin.bz2: $(vmlinux.bin.all-y) FORCE
 	$(call if_changed,bzip2)
 $(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y) FORCE
@@ -68,6 +70,7 @@ $(obj)/vmlinux.bin.lz4: $(vmlinux.bin.all-y) FORCE
 	$(call if_changed,lz4)
 
 suffix-$(CONFIG_KERNEL_GZIP)	:= gz
+suffix-$(CONFIG_KERNEL_MINIGZIP):= mgz
 suffix-$(CONFIG_KERNEL_BZIP2)	:= bz2
 suffix-$(CONFIG_KERNEL_LZMA)	:= lzma
 suffix-$(CONFIG_KERNEL_XZ)	:= xz
diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c
index 434f077..4e55d32 100644
--- a/arch/x86/boot/compressed/misc.c
+++ b/arch/x86/boot/compressed/misc.c
@@ -125,7 +125,7 @@ static char *vidmem;
 static int vidport;
 static int lines, cols;
 
-#ifdef CONFIG_KERNEL_GZIP
+#if defined(CONFIG_KERNEL_GZIP) || defined(CONFIG_KERNEL_MINIGZIP)
 #include "../../../../lib/decompress_inflate.c"
 #endif
 
diff --git a/init/Kconfig b/init/Kconfig
index 3ecd8a1..818f225 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -100,6 +100,9 @@ config LOCALVERSION_AUTO
 config HAVE_KERNEL_GZIP
 	bool
 
+config HAVE_KERNEL_MINIGZIP
+	bool
+
 config HAVE_KERNEL_BZIP2
 	bool
 
@@ -118,7 +121,7 @@ config HAVE_KERNEL_LZ4
 choice
 	prompt "Kernel compression mode"
 	default KERNEL_GZIP
-	depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_XZ || HAVE_KERNEL_LZO || HAVE_KERNEL_LZ4
+	depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_MINIGZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_XZ || HAVE_KERNEL_LZO || HAVE_KERNEL_LZ4
 	help
 	  The linux kernel is a kind of self-extracting executable.
 	  Several compression algorithms are available, which differ
@@ -144,6 +147,19 @@ config KERNEL_GZIP
 	  The old and tried gzip compression. It provides a good balance
 	  between compression ratio and decompression speed.
 
+config KERNEL_MINIGZIP
+	bool "Minigzip"
+	depends on HAVE_KERNEL_MINIGZIP
+	help
+	  Use minigzip to compress the bzImage. This is very similar to gzip
+	  but uses the zlib library to compress, rather than the very old version
+	  of zlib inside the gzip codebase. This is used for Android kernels
+	  so that the same version of the deflate() algorithm is used when
+	  building the kernel and constructing diffs with OTA applypatch, which
+	  uncompresses sections of files that it detects are gzipped before computing
+	  the diffs. If the versions of deflate() are out of alignment the binary
+	  diffs tend to be very large.
+
 config KERNEL_BZIP2
 	bool "Bzip2"
 	depends on HAVE_KERNEL_BZIP2
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 49392ec..deb1bb8 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -240,6 +240,13 @@ quiet_cmd_gzip = GZIP    $@
 cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -n -f -9 > $@) || \
 	(rm -f $@ ; false)
 
+# Minigzip
+# ---------------------------------------------------------------------------
+
+quiet_cmd_minigzip = MINGZIP $@
+cmd_minigzip = (cat $(filter-out FORCE,$^) | minigzip -c -9 > $@) || \
+	(rm -f $@ ; false)
+
 # DTC
 # ---------------------------------------------------------------------------
 
-- 
1.8.3.2


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/1] x86: boot: support minigzip bzImage compression
  2013-10-22 21:07 ` [PATCH 1/1] x86: boot: support minigzip bzImage compression Andrew Boie
@ 2013-10-23  0:26   ` H. Peter Anvin
  2013-10-23  2:53     ` Guenter Roeck
  0 siblings, 1 reply; 7+ messages in thread
From: H. Peter Anvin @ 2013-10-23  0:26 UTC (permalink / raw)
  To: Andrew Boie, linux-kernel; +Cc: tglx, mmarek

Wouldn't it be better to fix gzip than hacking around this in the kernel?

Andrew Boie <andrew.p.boie@intel.com> wrote:
>Android OTA system computes very efficient diffs of compressed files
>if the deflate() algorithm it has access to is the same version as
>used to create the original file. Here we add support for compressing
>the kernel with 'minigzip' which uses the deflate() inside zlib.
>This is much better than using 'gzip' as that tool has a very old
>version of deflate() inside the gzip codebase instead of linking
>against
>zlib.
>
>Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
>---
> arch/x86/Kconfig                  |  1 +
> arch/x86/boot/compressed/Makefile |  3 +++
> arch/x86/boot/compressed/misc.c   |  2 +-
> init/Kconfig                      | 18 +++++++++++++++++-
> scripts/Makefile.lib              |  7 +++++++
> 5 files changed, 29 insertions(+), 2 deletions(-)
>
>diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
>index f67e839..aa91cef 100644
>--- a/arch/x86/Kconfig
>+++ b/arch/x86/Kconfig
>@@ -62,6 +62,7 @@ config X86
> 	select HAVE_REGS_AND_STACK_ACCESS_API
> 	select HAVE_DMA_API_DEBUG
> 	select HAVE_KERNEL_GZIP
>+	select HAVE_KERNEL_MINIGZIP
> 	select HAVE_KERNEL_BZIP2
> 	select HAVE_KERNEL_LZMA
> 	select HAVE_KERNEL_XZ
>diff --git a/arch/x86/boot/compressed/Makefile
>b/arch/x86/boot/compressed/Makefile
>index dcd90df..f000791 100644
>--- a/arch/x86/boot/compressed/Makefile
>+++ b/arch/x86/boot/compressed/Makefile
>@@ -56,6 +56,8 @@ vmlinux.bin.all-$(CONFIG_X86_NEED_RELOCS) +=
>$(obj)/vmlinux.relocs
> 
> $(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) FORCE
> 	$(call if_changed,gzip)
>+$(obj)/vmlinux.bin.mgz: $(vmlinux.bin.all-y) FORCE
>+	$(call if_changed,minigzip)
> $(obj)/vmlinux.bin.bz2: $(vmlinux.bin.all-y) FORCE
> 	$(call if_changed,bzip2)
> $(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y) FORCE
>@@ -68,6 +70,7 @@ $(obj)/vmlinux.bin.lz4: $(vmlinux.bin.all-y) FORCE
> 	$(call if_changed,lz4)
> 
> suffix-$(CONFIG_KERNEL_GZIP)	:= gz
>+suffix-$(CONFIG_KERNEL_MINIGZIP):= mgz
> suffix-$(CONFIG_KERNEL_BZIP2)	:= bz2
> suffix-$(CONFIG_KERNEL_LZMA)	:= lzma
> suffix-$(CONFIG_KERNEL_XZ)	:= xz
>diff --git a/arch/x86/boot/compressed/misc.c
>b/arch/x86/boot/compressed/misc.c
>index 434f077..4e55d32 100644
>--- a/arch/x86/boot/compressed/misc.c
>+++ b/arch/x86/boot/compressed/misc.c
>@@ -125,7 +125,7 @@ static char *vidmem;
> static int vidport;
> static int lines, cols;
> 
>-#ifdef CONFIG_KERNEL_GZIP
>+#if defined(CONFIG_KERNEL_GZIP) || defined(CONFIG_KERNEL_MINIGZIP)
> #include "../../../../lib/decompress_inflate.c"
> #endif
> 
>diff --git a/init/Kconfig b/init/Kconfig
>index 3ecd8a1..818f225 100644
>--- a/init/Kconfig
>+++ b/init/Kconfig
>@@ -100,6 +100,9 @@ config LOCALVERSION_AUTO
> config HAVE_KERNEL_GZIP
> 	bool
> 
>+config HAVE_KERNEL_MINIGZIP
>+	bool
>+
> config HAVE_KERNEL_BZIP2
> 	bool
> 
>@@ -118,7 +121,7 @@ config HAVE_KERNEL_LZ4
> choice
> 	prompt "Kernel compression mode"
> 	default KERNEL_GZIP
>-	depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA
>|| HAVE_KERNEL_XZ || HAVE_KERNEL_LZO || HAVE_KERNEL_LZ4
>+	depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_MINIGZIP ||
>HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_XZ ||
>HAVE_KERNEL_LZO || HAVE_KERNEL_LZ4
> 	help
> 	  The linux kernel is a kind of self-extracting executable.
> 	  Several compression algorithms are available, which differ
>@@ -144,6 +147,19 @@ config KERNEL_GZIP
> 	  The old and tried gzip compression. It provides a good balance
> 	  between compression ratio and decompression speed.
> 
>+config KERNEL_MINIGZIP
>+	bool "Minigzip"
>+	depends on HAVE_KERNEL_MINIGZIP
>+	help
>+	  Use minigzip to compress the bzImage. This is very similar to gzip
>+	  but uses the zlib library to compress, rather than the very old
>version
>+	  of zlib inside the gzip codebase. This is used for Android kernels
>+	  so that the same version of the deflate() algorithm is used when
>+	  building the kernel and constructing diffs with OTA applypatch,
>which
>+	  uncompresses sections of files that it detects are gzipped before
>computing
>+	  the diffs. If the versions of deflate() are out of alignment the
>binary
>+	  diffs tend to be very large.
>+
> config KERNEL_BZIP2
> 	bool "Bzip2"
> 	depends on HAVE_KERNEL_BZIP2
>diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
>index 49392ec..deb1bb8 100644
>--- a/scripts/Makefile.lib
>+++ b/scripts/Makefile.lib
>@@ -240,6 +240,13 @@ quiet_cmd_gzip = GZIP    $@
> cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -n -f -9 > $@) || \
> 	(rm -f $@ ; false)
> 
>+# Minigzip
>+#
>---------------------------------------------------------------------------
>+
>+quiet_cmd_minigzip = MINGZIP $@
>+cmd_minigzip = (cat $(filter-out FORCE,$^) | minigzip -c -9 > $@) || \
>+	(rm -f $@ ; false)
>+
> # DTC
>#
>---------------------------------------------------------------------------
> 

-- 
Sent from my mobile phone. Please excuse brevity and lack of formatting.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/1] x86: boot: support minigzip bzImage compression
  2013-10-23  0:26   ` H. Peter Anvin
@ 2013-10-23  2:53     ` Guenter Roeck
  2013-10-23  9:56       ` Michal Marek
  2013-10-23 16:47       ` Boie, Andrew P
  0 siblings, 2 replies; 7+ messages in thread
From: Guenter Roeck @ 2013-10-23  2:53 UTC (permalink / raw)
  To: H. Peter Anvin, Andrew Boie, linux-kernel; +Cc: tglx, mmarek

On 10/22/2013 05:26 PM, H. Peter Anvin wrote:
> Wouldn't it be better to fix gzip than hacking around this in the kernel?
>
Or just change the build system to have /bin/gzip point to minigzip if so
desired. I have done the same to replace it with pigz.
Debian/Ubuntu provides the update-alternatives command for that
purpose. If that is not available, just hard-link it.

In general, I don't think it would be a good idea to add tool variant
dependencies like this one to the kernel configuration.

Guenter

> Andrew Boie <andrew.p.boie@intel.com> wrote:
>> Android OTA system computes very efficient diffs of compressed files
>> if the deflate() algorithm it has access to is the same version as
>> used to create the original file. Here we add support for compressing
>> the kernel with 'minigzip' which uses the deflate() inside zlib.
>> This is much better than using 'gzip' as that tool has a very old
>> version of deflate() inside the gzip codebase instead of linking
>> against
>> zlib.
>>
>> Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
>> ---
>> arch/x86/Kconfig                  |  1 +
>> arch/x86/boot/compressed/Makefile |  3 +++
>> arch/x86/boot/compressed/misc.c   |  2 +-
>> init/Kconfig                      | 18 +++++++++++++++++-
>> scripts/Makefile.lib              |  7 +++++++
>> 5 files changed, 29 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
>> index f67e839..aa91cef 100644
>> --- a/arch/x86/Kconfig
>> +++ b/arch/x86/Kconfig
>> @@ -62,6 +62,7 @@ config X86
>> 	select HAVE_REGS_AND_STACK_ACCESS_API
>> 	select HAVE_DMA_API_DEBUG
>> 	select HAVE_KERNEL_GZIP
>> +	select HAVE_KERNEL_MINIGZIP
>> 	select HAVE_KERNEL_BZIP2
>> 	select HAVE_KERNEL_LZMA
>> 	select HAVE_KERNEL_XZ
>> diff --git a/arch/x86/boot/compressed/Makefile
>> b/arch/x86/boot/compressed/Makefile
>> index dcd90df..f000791 100644
>> --- a/arch/x86/boot/compressed/Makefile
>> +++ b/arch/x86/boot/compressed/Makefile
>> @@ -56,6 +56,8 @@ vmlinux.bin.all-$(CONFIG_X86_NEED_RELOCS) +=
>> $(obj)/vmlinux.relocs
>>
>> $(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) FORCE
>> 	$(call if_changed,gzip)
>> +$(obj)/vmlinux.bin.mgz: $(vmlinux.bin.all-y) FORCE
>> +	$(call if_changed,minigzip)
>> $(obj)/vmlinux.bin.bz2: $(vmlinux.bin.all-y) FORCE
>> 	$(call if_changed,bzip2)
>> $(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y) FORCE
>> @@ -68,6 +70,7 @@ $(obj)/vmlinux.bin.lz4: $(vmlinux.bin.all-y) FORCE
>> 	$(call if_changed,lz4)
>>
>> suffix-$(CONFIG_KERNEL_GZIP)	:= gz
>> +suffix-$(CONFIG_KERNEL_MINIGZIP):= mgz
>> suffix-$(CONFIG_KERNEL_BZIP2)	:= bz2
>> suffix-$(CONFIG_KERNEL_LZMA)	:= lzma
>> suffix-$(CONFIG_KERNEL_XZ)	:= xz
>> diff --git a/arch/x86/boot/compressed/misc.c
>> b/arch/x86/boot/compressed/misc.c
>> index 434f077..4e55d32 100644
>> --- a/arch/x86/boot/compressed/misc.c
>> +++ b/arch/x86/boot/compressed/misc.c
>> @@ -125,7 +125,7 @@ static char *vidmem;
>> static int vidport;
>> static int lines, cols;
>>
>> -#ifdef CONFIG_KERNEL_GZIP
>> +#if defined(CONFIG_KERNEL_GZIP) || defined(CONFIG_KERNEL_MINIGZIP)
>> #include "../../../../lib/decompress_inflate.c"
>> #endif
>>
>> diff --git a/init/Kconfig b/init/Kconfig
>> index 3ecd8a1..818f225 100644
>> --- a/init/Kconfig
>> +++ b/init/Kconfig
>> @@ -100,6 +100,9 @@ config LOCALVERSION_AUTO
>> config HAVE_KERNEL_GZIP
>> 	bool
>>
>> +config HAVE_KERNEL_MINIGZIP
>> +	bool
>> +
>> config HAVE_KERNEL_BZIP2
>> 	bool
>>
>> @@ -118,7 +121,7 @@ config HAVE_KERNEL_LZ4
>> choice
>> 	prompt "Kernel compression mode"
>> 	default KERNEL_GZIP
>> -	depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA
>> || HAVE_KERNEL_XZ || HAVE_KERNEL_LZO || HAVE_KERNEL_LZ4
>> +	depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_MINIGZIP ||
>> HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_XZ ||
>> HAVE_KERNEL_LZO || HAVE_KERNEL_LZ4
>> 	help
>> 	  The linux kernel is a kind of self-extracting executable.
>> 	  Several compression algorithms are available, which differ
>> @@ -144,6 +147,19 @@ config KERNEL_GZIP
>> 	  The old and tried gzip compression. It provides a good balance
>> 	  between compression ratio and decompression speed.
>>
>> +config KERNEL_MINIGZIP
>> +	bool "Minigzip"
>> +	depends on HAVE_KERNEL_MINIGZIP
>> +	help
>> +	  Use minigzip to compress the bzImage. This is very similar to gzip
>> +	  but uses the zlib library to compress, rather than the very old
>> version
>> +	  of zlib inside the gzip codebase. This is used for Android kernels
>> +	  so that the same version of the deflate() algorithm is used when
>> +	  building the kernel and constructing diffs with OTA applypatch,
>> which
>> +	  uncompresses sections of files that it detects are gzipped before
>> computing
>> +	  the diffs. If the versions of deflate() are out of alignment the
>> binary
>> +	  diffs tend to be very large.
>> +
>> config KERNEL_BZIP2
>> 	bool "Bzip2"
>> 	depends on HAVE_KERNEL_BZIP2
>> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
>> index 49392ec..deb1bb8 100644
>> --- a/scripts/Makefile.lib
>> +++ b/scripts/Makefile.lib
>> @@ -240,6 +240,13 @@ quiet_cmd_gzip = GZIP    $@
>> cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -n -f -9 > $@) || \
>> 	(rm -f $@ ; false)
>>
>> +# Minigzip
>> +#
>> ---------------------------------------------------------------------------
>> +
>> +quiet_cmd_minigzip = MINGZIP $@
>> +cmd_minigzip = (cat $(filter-out FORCE,$^) | minigzip -c -9 > $@) || \
>> +	(rm -f $@ ; false)
>> +
>> # DTC
>> #
>> ---------------------------------------------------------------------------
>>
>


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/1] x86: boot: support minigzip bzImage compression
  2013-10-23  2:53     ` Guenter Roeck
@ 2013-10-23  9:56       ` Michal Marek
  2013-10-23 16:47       ` Boie, Andrew P
  1 sibling, 0 replies; 7+ messages in thread
From: Michal Marek @ 2013-10-23  9:56 UTC (permalink / raw)
  To: Guenter Roeck; +Cc: H. Peter Anvin, Andrew Boie, linux-kernel, tglx

On 23.10.2013 04:53, Guenter Roeck wrote:
> On 10/22/2013 05:26 PM, H. Peter Anvin wrote:
>> Wouldn't it be better to fix gzip than hacking around this in the kernel?
>>
> Or just change the build system to have /bin/gzip point to minigzip if so
> desired. I have done the same to replace it with pigz.

Yes. And if the Makefiles must be patched, then I'd suggest adding a
$(GZIP) variable to the main Makefile and using that:

make GZIP=pigz bzImage
make GZIP=minigzip bzImage

Michal

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [PATCH 1/1] x86: boot: support minigzip bzImage compression
  2013-10-23  2:53     ` Guenter Roeck
  2013-10-23  9:56       ` Michal Marek
@ 2013-10-23 16:47       ` Boie, Andrew P
  2013-10-23 16:59         ` Guenter Roeck
  1 sibling, 1 reply; 7+ messages in thread
From: Boie, Andrew P @ 2013-10-23 16:47 UTC (permalink / raw)
  To: Guenter Roeck, H. Peter Anvin, linux-kernel; +Cc: tglx, mmarek

> From: Guenter Roeck [linux@roeck-us.net]
> Or just change the build system to have /bin/gzip point to minigzip if so
> desired. I have done the same to replace it with pigz.
> Debian/Ubuntu provides the update-alternatives command for that
> purpose. If that is not available, just hard-link it.

Android minigzip and gzip unfortunately don't have the same command line syntax. Before I wrote this patch I had a horrible hack in place involving a shell script named "gzip" that called minigzip internally.

Andrew

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/1] x86: boot: support minigzip bzImage compression
  2013-10-23 16:47       ` Boie, Andrew P
@ 2013-10-23 16:59         ` Guenter Roeck
  0 siblings, 0 replies; 7+ messages in thread
From: Guenter Roeck @ 2013-10-23 16:59 UTC (permalink / raw)
  To: Boie, Andrew P; +Cc: H. Peter Anvin, linux-kernel, tglx, mmarek

On Wed, Oct 23, 2013 at 04:47:38PM +0000, Boie, Andrew P wrote:
> > From: Guenter Roeck [linux@roeck-us.net]
> > Or just change the build system to have /bin/gzip point to minigzip if so
> > desired. I have done the same to replace it with pigz.
> > Debian/Ubuntu provides the update-alternatives command for that
> > purpose. If that is not available, just hard-link it.
> 
> Android minigzip and gzip unfortunately don't have the same command line syntax. Before I wrote this patch I had a horrible hack in place involving a shell script named "gzip" that called minigzip internally.
> 
Why is that a horrible hack ? I think it is better than clogging
kernel makefiles with that kind of tools detail. Actually, you have
(at least) three other options: fix/update gzip, update minigzip
to match the gzip cli, or use a script to map one to the other.

Guenter

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2013-10-23 16:59 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-10-22 21:07 [PATCH 0/1] compress kernels with minigzip Andrew Boie
2013-10-22 21:07 ` [PATCH 1/1] x86: boot: support minigzip bzImage compression Andrew Boie
2013-10-23  0:26   ` H. Peter Anvin
2013-10-23  2:53     ` Guenter Roeck
2013-10-23  9:56       ` Michal Marek
2013-10-23 16:47       ` Boie, Andrew P
2013-10-23 16:59         ` Guenter Roeck

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).