[PATCH] lib: xz: add support for bcj filters

Yegor Yefremov yegorslists at googlemail.com
Wed Feb 22 02:35:46 PST 2017


On Wed, Feb 22, 2017 at 11:21 AM, Sascha Hauer <s.hauer at pengutronix.de> wrote:
> On Wed, Feb 22, 2017 at 11:10:36AM +0100, Yegor Yefremov wrote:
>> On Wed, Feb 22, 2017 at 11:03 AM, Sascha Hauer <s.hauer at pengutronix.de> wrote:
>> > On Wed, Feb 22, 2017 at 09:15:36AM +0100, Yegor Yefremov wrote:
>> >> On Wed, Feb 22, 2017 at 5:29 AM, Jean-Christophe PLAGNIOL-VILLARD
>> >> <plagnioj at jcrosoft.com> wrote:
>> >> >
>> >> >> On Feb 21, 2017, at 10:47 PM, yegorslists at googlemail.com wrote:
>> >> >>
>> >> >> From: Yegor Yefremov <yegorslists at googlemail.com>
>> >> >>
>> >> >> Add missing configuration options for various bcj filters. Without
>> >> >> these options the lib/xz/xz_dec_bcj.c file will be compiled, but all
>> >> >> filters will be disabled.
>> >> >>
>> >> >> Signed-off-by: Yegor Yefremov <yegorslists at googlemail.com>
>> >> >> ---
>> >> >> lib/Kconfig | 28 ++++++++++++++++++++++++++++
>> >> >> 1 file changed, 28 insertions(+)
>> >> >>
>> >> >> diff --git a/lib/Kconfig b/lib/Kconfig
>> >> >> index f9f25bdef..83dd8e0a4 100644
>> >> >> --- a/lib/Kconfig
>> >> >> +++ b/lib/Kconfig
>> >> >> @@ -22,6 +22,34 @@ config XZ_DECOMPRESS
>> >> >>       bool "include xz uncompression support"
>> >> >>       select UNCOMPRESS
>> >> >>
>> >> >> +if XZ_DECOMPRESS
>> >> >> +
>> >> >> +config XZ_DEC_X86
>> >> >> +        bool "x86 BCJ filter decoder"
>> >> >> +        default y
>> >> > this need to be ARCH dependant
>> >>
>> >> Why? In Linux kernel it is not arch dependent, because AFAIK it
>> >> describes only compression particularities. This way you can extract
>> >> sqaushfs images on your ARM machine, that were compressed on SPARK
>> >> etc.
>> >
>> > So xz uses the Sparc bcj filter even when compressing ARM binaries? That
>> > doesn't sound very mature to me.
>>
>> This is just an xz command line option. So it is completely in the
>> user responsibility.
>
> I see. What's the default for this option? The architecture xz is
> running on?
>
> Otherwise we could do a:
>
> config XZ_DEC_ARM
>         bool "ARM BCJ filter decoder"
>         default y if ARCH_ARM
>
> On the other hand I'm not sure if the potential image size gain for
> disabling the unused bcj filters is even worth thinking about the
> problem...

My barebox images without filters:

4668516 barebox
640752 barebox.bin

with all filters:

4679592 barebox
642632 barebox.bin

Yegor



More information about the barebox mailing list