* [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).