[U-Boot] [PATCH] lib: zlib: update to 1.2.6

Lei Wen adrian.wenl at gmail.com
Thu Mar 8 06:58:10 CET 2012


Hi Wolfgang,

On Wed, Mar 7, 2012 at 10:30 PM, Wolfgang Denk <wd at denx.de> wrote:
> Dear Lei Wen,
>
> In message <CALZhoSSzBhmZ_c79zKBQE7Z5YEtCKC_E-4Vgr35rmBLiV_LawQ at mail.gmail.com> you wrote:
>>
>> I miss add the zconf.h into the patch...
>> V2 patch is attached...
>
> Argh.  Please NEVER send patches as attachments.  Always send them
> inline.  See http://www.denx.de/wiki/U-Boot/Patches

Sorry for that again. I send the patch as attachment, which is only
for RFC, and another
reason is the patch itself is very huge and almost all content is kept
as it is from zlib
main stream. Anyway, I would keep the send patch rule in mind next time.

>
>> As it copy from zlib home page, the improvement from 1.2.5 to 1.2.6
>> contains following:
>>
>> gzread() can now read a file that is being written concurrently
>> gzgetc() is now a macro for increased speed
>> Added a 'T' option to gzopen() for transparent writing (no compression)
>> Added deflatePending() to return the amount of pending output
>> Allow deflateSetDictionary() and inflateSetDictionary() at any time in
>> raw mode
>> deflatePrime() can now insert bits in the middle of the stream
>> ./configure now creates a configure.log file with all of the results
>> Added a ./configure --solo option to compile zlib with no dependency on
>> any libraries
>> Fixed a problem with large file support macros
>> Fixed a bug in contrib/puff
>> Many portability improvements
>
> This is a lot of changes / improvements for genral use, but which of
> these are actually useful for U-Boot?
>
> I. e. what exactly is the motivation to switch to a new version of the
> code?  Do you want to fix any specific bugs, or improve performance,
> or what?
>
> What I see is that the code size grows by about 2 kB (measured on
> ARM):
>
> -> bloat-o-meter u-boot-before u-boot-after
> add/remove: 23/2 grow/shrink: 2/5 up/down: 4523/-2496 (2027)
> function                                     old     new   delta
> static.lenfix                                  -    2048   +2048
> inflateCopy                                    -     352    +352
> updatewindow                                   -     308    +308
> inflateSync                                    -     276    +276
> inflateSetDictionary                           -     192    +192
> static.adler32_combine_                        -     156    +156
> inflateReset2                                  -     152    +152
> inflateResetKeep                               -     148    +148
> static.distfix                                 -     128    +128
> inflatePrime                                   -     116    +116
> inflateMark                                    -     104    +104
> syncsearch                                     -      84     +84
> zmemcmp                                        -      68     +68
> inflateSyncPoint                               -      64     +64
> inflateGetHeader                               -      64     +64
> inflate_copyright                              -      47     +47
> inflateUndermine                               -      44     +44
> inflate                                     5764    5800     +36
> zmemzero                                       -      28     +28
> zmemcpy                                        -      28     +28
> zError                                         -      24     +24
> adler32_combine64                              -      20     +20
> adler32_combine                                -      20     +20
> zlibVersion                                    -      12     +12
> zunzip                                       264     268      +4
> inflateEnd                                   108     100      -8
> inflateInit2_                                264     208     -56
> inflate_table                               1492    1428     -64
> inflateReset                                 128      48     -80
> inflate_fast                                1480    1368    -112
> distfix                                      128       -    -128
> lenfix                                      2048       -   -2048
>
>
> I wonder which benefits we get for this price we are paying?

The main reason I'd like to introduce this upgrade is for I want to
add the compressing
feature for uboot. And the 1.2.6 has some fix for the deflate, so it
is maybe a good
base line for introducing it.

Also the reason why I want to enable the compressing is that sometimes we may
want to dump whole ram in the uboot, and since the ram grows bigger and bigger,
compressing and then send to host is a reasonable method to reduce the
dumping time.

How about define a Macro like CONIFG_ENABLE_GZIP_COMPRESSION to compile
the compression related code only when this flag is on?

>
> Best regards,
>
> Wolfgang Denk

Thanks,
Lei


More information about the U-Boot mailing list