Re: tip: bzip2/lzma now in tip:x86/setup-lzma

H. Peter Anvin
2009-01-05T05:09:49Z

[-- Attachment #1: Type: text/plain, Size: 1262 bytes --]

Sam Ravnborg wrote:
> On Sun, Jan 04, 2009 at 03:58:23PM -0800, H. Peter Anvin wrote:
>> I have pulled the x86 parts of the bzip2/lzma patchset into
>> tip:x86/setup-lzma. I would appreciate it if you could look at it and
>> make sure it looks sane. I have not added the ARM portions (patch 4),
>> since those should go via the ARM tree, nor the capstone patch 5, which
>> can only be added after the old code is removed from *all* remaining
>> architectures.
>>
>> Ingo: this *will* break your randconfig testing if you have machines
>> where the lzma(1) utility isn't installed!
>>
>> The shortlog looks like:
>>
>> Alain Knaff (3):
>> bzip2/lzma: library support for gzip, bzip2 and lzma decompression
>> bzip2/lzma: config and initramfs support for bzip2/lzma decompression
>> bzip2/lzma: x86 kernel compression support
>>
>> H. Peter Anvin (3):
>> bzip2/lzma: use a table to search for initramfs compression formats
>> bzip2/lzma: handle failures from bzip2 and lzma correctly
>> bzip2/lzma: make config machinery an arch configurable
>
> Can you post this last patch.
>
> Thanks,
> Sam

Here it is.

-hpa

--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel. I don't speak on their behalf.

[-- Attachment #2: 0006-bzip2-lzma-make-config-machinery-an-arch-configurab.patch --]
[-- Type: text/x-patch, Size: 3643 bytes --]

>From 2e9f3bddcbc711bb14d86c6f068a779bf3710247 Mon Sep 17 00:00:00 2001
From: H. Peter Anvin <hpa@zytor.com>
Date: Sun, 4 Jan 2009 15:41:25 -0800
Subject: [PATCH] bzip2/lzma: make config machinery an arch configurable

Impact: Bug fix (we should not show this menu on irrelevant architectures)

Make the config machinery to drive the gzip/bzip2/lzma selection
dependent on the architecture advertising HAVE_KERNEL_* so that we
don't display this for architectures where it doesn't matter.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
---
arch/x86/Kconfig | 3 +++
init/Kconfig | 52 +++++++++++++++++++++++++++++++---------------------
2 files changed, 34 insertions(+), 21 deletions(-)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 862adb9..7b66c34 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -39,6 +39,9 @@ config X86
select HAVE_GENERIC_DMA_COHERENT if X86_32
select HAVE_EFFICIENT_UNALIGNED_ACCESS
select USER_STACKTRACE_SUPPORT
+ select HAVE_KERNEL_GZIP
+ select HAVE_KERNEL_BZIP2
+ select HAVE_KERNEL_LZMA

config ARCH_DEFCONFIG
string
diff --git a/init/Kconfig b/init/Kconfig
index df84625..f9633c0 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -101,10 +101,20 @@ config LOCALVERSION_AUTO

which is done within the script "scripts/setlocalversion".)

+config HAVE_KERNEL_GZIP
+ bool
+
+config HAVE_KERNEL_BZIP2
+ bool
+
+config HAVE_KERNEL_LZMA
+ bool
+
choice
- prompt "Kernel compression mode"
- default KERNEL_GZIP
- help
+ prompt "Kernel compression mode"
+ default KERNEL_GZIP
+ depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA
+ help
The linux kernel is a kind of self-extracting executable.
Several compression algorithms are available, which differ
in efficiency, compression and decompression speed.
@@ -123,34 +133,34 @@ choice
If in doubt, select 'gzip'

config KERNEL_GZIP
- bool "Gzip"
- help
- The old and tried gzip compression. Its compression ratio is
- the poorest among the 3 choices; however its speed (both
- compression and decompression) is the fastest.
+ bool "Gzip"
+ depends on HAVE_KERNEL_GZIP
+ help
+ The old and tried gzip compression. Its compression ratio is
+ the poorest among the 3 choices; however its speed (both
+ compression and decompression) is the fastest.

config KERNEL_BZIP2
bool "Bzip2"
+ depends on HAVE_KERNEL_BZIP2
help
Its compression ratio and speed is intermediate.
- Decompression speed is slowest among the 3.
- The kernel size is about 10 per cent smaller with bzip2,
- in comparison to gzip.
- Bzip2 uses a large amount of memory. For modern kernels
- you will need at least 8MB RAM or more for booting.
+ Decompression speed is slowest among the three. The kernel
+ size is about 10% smaller with bzip2, in comparison to gzip.
+ Bzip2 uses a large amount of memory. For modern kernels you
+ will need at least 8MB RAM or more for booting.

config KERNEL_LZMA
- bool "LZMA"
- help
- The most recent compression algorithm.
- Its ratio is best, decompression speed is between the other
- 2. Compression is slowest.
- The kernel size is about 33 per cent smaller with lzma,
- in comparison to gzip.
+ bool "LZMA"
+ depends on HAVE_KERNEL_LZMA
+ help
+ The most recent compression algorithm.
+ Its ratio is best, decompression speed is between the other
+ two. Compression is slowest. The kernel size is about 33%
+ smaller with LZMA in comparison to gzip.

endchoice

-
config SWAP
bool "Support for paging of anonymous memory (swap)"
depends on MMU && BLOCK
--
1.5.6.6