From c87118265322403ae8c12f16610755cb81c37ec7fe1c478262bde066dcd55b7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Mon, 2 Jan 2017 09:46:41 +0000 Subject: [PATCH] Accepting request 448463 from home:pluskalm:branches:devel:libraries:c_c++ - Update to version 1.2.9: OBS-URL: https://build.opensuse.org/request/show/448463 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/zlib?expand=0&rev=37 --- ....7-improve-longest_match-performance.patch | 105 -------- zlib-1.2.8.tar.gz | 3 - zlib-1.2.9.tar.gz | 3 + zlib-bnc1003577.patch | 119 ---------- zlib-bnc1003579-part2.patch | 224 ------------------ zlib-bnc1003579.patch | 71 ------ zlib-bnc1003580.patch | 29 --- zlib-bnc1013882.patch | 49 ---- zlib-format.patch | 20 -- zlib.changes | 24 ++ zlib.spec | 19 +- 11 files changed, 28 insertions(+), 638 deletions(-) delete mode 100644 zlib-1.2.7-improve-longest_match-performance.patch delete mode 100644 zlib-1.2.8.tar.gz create mode 100644 zlib-1.2.9.tar.gz delete mode 100644 zlib-bnc1003577.patch delete mode 100644 zlib-bnc1003579-part2.patch delete mode 100644 zlib-bnc1003579.patch delete mode 100644 zlib-bnc1003580.patch delete mode 100644 zlib-bnc1013882.patch delete mode 100644 zlib-format.patch diff --git a/zlib-1.2.7-improve-longest_match-performance.patch b/zlib-1.2.7-improve-longest_match-performance.patch deleted file mode 100644 index 45db96e..0000000 --- a/zlib-1.2.7-improve-longest_match-performance.patch +++ /dev/null @@ -1,105 +0,0 @@ -# http://mail.madler.net/pipermail/zlib-devel_madler.net/2012-June/002907.html -# http://mail.madler.net/pipermail/zlib-devel_madler.net/2012-August/002977.html -From: Andreas Krebbel krebbel at linux.vnet.ibm.com -Subject: RFC: Improve longest_match performance - -The code currently generated for longest_match looks far from optimal -due to a bunch of pointless zero/sign extend instructions. - -By just promoting a few data types in the function I was able to get -rid of all but two. The new hotloop is almost half the size of the -original version providing quite a performance win for S/390: - -Measured on a zEnterprise z196 -zlib compiled with upstream GCC 4.8 branch - -32 bit old new - -256MB randomdata: 11.65s 10.92s 6.68% -100MB manpages: 4.23s 4.14s 2.17% -217MB PDF: 10.54s 9.44s 11.65% - -unaligned ok - -256MB randomdata: 10.90s 10.54s 3.41% -100MB manpages: 3.94s 3.87s 1.81% -217MB PDF: 8.77s 8.64s 1.50% - -64 bit old new - -256MB randomdata: 11.90s 11.43s 4.11% -100MB manpages: 4.51s 4.44s 1.58% -217MB PDF: 10.11s 9.89s 2.22% - -unaligned ok - -256MB randomdata: 11.51s 11.15s 3.23% -100MB manpages: 4.33s 3.99s 8.52% -217MB PDF: 9.81s 9.02s 8.76% - -I also did some measurements on x86 and Power: - -For Power (64 bit, unaligned_ok) an additional zero extend -appears. However, the impact is not measurable. There are minor wins -and minor regressions. The overall result is flat. - -For Core2 32 bit the patch is a clear winner with up to 9% for the pdf -test. Also on 64 bit the code optimized for Core2 gets a bit smaller -but unfortunately causes some regressions which I cannot explain. - -For mainframe customers the performance of zlib is very important so I -would be very happy to see the patch integrated into upstream -zlib. Given that the patch might cause minor regressions on other -targets, would it be possible to enable it arch-dependent? - -See below for the patch and some code snippets from my tests. - -Bye, - --Andreas- - ---- - deflate.c | 15 ++++++++------- - 1 file changed, 8 insertions(+), 7 deletions(-) - -Index: zlib-1.2.7/deflate.c -=================================================================== ---- zlib-1.2.7.orig/deflate.c 2012-02-13 01:15:47.000000000 +0100 -+++ zlib-1.2.7/deflate.c 2012-09-27 13:39:57.942762946 +0200 -@@ -1143,15 +1143,16 @@ - /* For 80x86 and 680x0, an optimized version will be provided in match.asm or - * match.S. The code will be functionally equivalent. - */ --local uInt longest_match(s, cur_match) -+local uInt longest_match(s, pcur_match) - deflate_state *s; -- IPos cur_match; /* current match */ -+ IPos pcur_match; /* current match */ - { -+ ptrdiff_t cur_match = pcur_match; /* extend to pointer width */ - unsigned chain_length = s->max_chain_length;/* max hash chain length */ - register Bytef *scan = s->window + s->strstart; /* current string */ - register Bytef *match; /* matched string */ - register int len; /* length of current match */ -- int best_len = s->prev_length; /* best match length so far */ -+ ptrdiff_t best_len = s->prev_length; /* best match length so far */ - int nice_match = s->nice_match; /* stop if match long enough */ - IPos limit = s->strstart > (IPos)MAX_DIST(s) ? - s->strstart - (IPos)MAX_DIST(s) : NIL; -@@ -1166,12 +1167,12 @@ - * Try with and without -DUNALIGNED_OK to check. - */ - register Bytef *strend = s->window + s->strstart + MAX_MATCH - 1; -- register ush scan_start = *(ushf*)scan; -- register ush scan_end = *(ushf*)(scan+best_len-1); -+ register uInt scan_start = *(ushf*)scan; -+ register uInt scan_end = *(ushf*)(scan+best_len-1); - #else - register Bytef *strend = s->window + s->strstart + MAX_MATCH; -- register Byte scan_end1 = scan[best_len-1]; -- register Byte scan_end = scan[best_len]; -+ register uInt scan_end1 = scan[best_len-1]; -+ register uInt scan_end = scan[best_len]; - #endif - - /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16. diff --git a/zlib-1.2.8.tar.gz b/zlib-1.2.8.tar.gz deleted file mode 100644 index a795adc..0000000 --- a/zlib-1.2.8.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d -size 571091 diff --git a/zlib-1.2.9.tar.gz b/zlib-1.2.9.tar.gz new file mode 100644 index 0000000..104fac2 --- /dev/null +++ b/zlib-1.2.9.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73ab302ef31ed1e74895d2af56f52f5853f26b0370f3ef21954347acec5eaa21 +size 607350 diff --git a/zlib-bnc1003577.patch b/zlib-bnc1003577.patch deleted file mode 100644 index 3bc8904..0000000 --- a/zlib-bnc1003577.patch +++ /dev/null @@ -1,119 +0,0 @@ -From 3fb251b363866417122fe54a158a1ac5a7837101 Mon Sep 17 00:00:00 2001 -From: Mark Adler -Date: Wed, 21 Sep 2016 20:07:37 -0700 -Subject: [PATCH] Remove dummy structure declarations for old buggy compilers. - -While woolly mammoths still roamed the Earth and before Atlantis -sunk into the ocean, there were C compilers that could not handle -forward structure references, e.g. "struct name;". zlib dutifully -provided a work-around for such compilers. That work-around is no -longer needed, and, per the recommendation of a security audit of -the zlib code by Trail of Bits and TrustInSoft, in support of the -Mozilla Foundation, should be removed since what a compiler will -do with this is technically undefined. From the report: "there is -no telling what interactions the bug could have in the future with -link-time optimizations and type-based alias analyses, both -features that are present (but not default) in clang." ---- - deflate.c | 4 ---- - zconf.h | 5 ----- - zconf.h.cmakein | 5 ----- - zconf.h.in | 5 ----- - zlib.h | 5 ----- - zutil.c | 4 ---- - 6 files changed, 28 deletions(-) - -Index: zlib-1.2.8/deflate.c -=================================================================== ---- zlib-1.2.8.orig/deflate.c -+++ zlib-1.2.8/deflate.c -@@ -151,10 +151,6 @@ local const config configuration_table[1 - #define EQUAL 0 - /* result of memcmp for equal strings */ - --#ifndef NO_DUMMY_DECL --struct static_tree_desc_s {int dummy;}; /* for buggy compilers */ --#endif -- - /* rank Z_BLOCK between Z_NO_FLUSH and Z_PARTIAL_FLUSH */ - #define RANK(f) (((f) << 1) - ((f) > 4 ? 9 : 0)) - -Index: zlib-1.2.8/zconf.h -=================================================================== ---- zlib-1.2.8.orig/zconf.h -+++ zlib-1.2.8/zconf.h -@@ -224,11 +224,6 @@ - # define z_const - #endif - --/* Some Mac compilers merge all .h files incorrectly: */ --#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) --# define NO_DUMMY_DECL --#endif -- - /* Maximum value for memLevel in deflateInit2 */ - #ifndef MAX_MEM_LEVEL - # ifdef MAXSEG_64K -Index: zlib-1.2.8/zconf.h.cmakein -=================================================================== ---- zlib-1.2.8.orig/zconf.h.cmakein -+++ zlib-1.2.8/zconf.h.cmakein -@@ -226,11 +226,6 @@ - # define z_const - #endif - --/* Some Mac compilers merge all .h files incorrectly: */ --#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) --# define NO_DUMMY_DECL --#endif -- - /* Maximum value for memLevel in deflateInit2 */ - #ifndef MAX_MEM_LEVEL - # ifdef MAXSEG_64K -Index: zlib-1.2.8/zconf.h.in -=================================================================== ---- zlib-1.2.8.orig/zconf.h.in -+++ zlib-1.2.8/zconf.h.in -@@ -224,11 +224,6 @@ - # define z_const - #endif - --/* Some Mac compilers merge all .h files incorrectly: */ --#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) --# define NO_DUMMY_DECL --#endif -- - /* Maximum value for memLevel in deflateInit2 */ - #ifndef MAX_MEM_LEVEL - # ifdef MAXSEG_64K -Index: zlib-1.2.8/zlib.h -=================================================================== ---- zlib-1.2.8.orig/zlib.h -+++ zlib-1.2.8/zlib.h -@@ -1741,11 +1741,6 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile f - - #endif /* !Z_SOLO */ - --/* hack for buggy compilers */ --#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL) -- struct internal_state {int dummy;}; --#endif -- - /* undocumented functions */ - ZEXTERN const char * ZEXPORT zError OF((int)); - ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); -Index: zlib-1.2.8/zutil.c -=================================================================== ---- zlib-1.2.8.orig/zutil.c -+++ zlib-1.2.8/zutil.c -@@ -10,10 +10,6 @@ - # include "gzguts.h" - #endif - --#ifndef NO_DUMMY_DECL --struct internal_state {int dummy;}; /* for buggy compilers */ --#endif -- - z_const char * const z_errmsg[10] = { - "need dictionary", /* Z_NEED_DICT 2 */ - "stream end", /* Z_STREAM_END 1 */ diff --git a/zlib-bnc1003579-part2.patch b/zlib-bnc1003579-part2.patch deleted file mode 100644 index dea3429..0000000 --- a/zlib-bnc1003579-part2.patch +++ /dev/null @@ -1,224 +0,0 @@ -From 9aaec95e82117c1cb0f9624264c3618fc380cecb Mon Sep 17 00:00:00 2001 -From: Mark Adler -Date: Wed, 21 Sep 2016 22:25:21 -0700 -Subject: [PATCH] Use post-increment only in inffast.c. - -An old inffast.c optimization turns out to not be optimal anymore -with modern compilers, and furthermore was not compliant with the -C standard, for which decrementing a pointer before its allocated -memory is undefined. Per the recommendation of a security audit of -the zlib code by Trail of Bits and TrustInSoft, in support of the -Mozilla Foundation, this "optimization" was removed, in order to -avoid the possibility of undefined behavior. ---- - inffast.c | 81 ++++++++++++++++++++++++--------------------------------------- - 1 file changed, 31 insertions(+), 50 deletions(-) - -diff --git a/inffast.c b/inffast.c -index bda59ce..f0d163d 100644 ---- a/inffast.c -+++ b/inffast.c -@@ -10,25 +10,6 @@ - - #ifndef ASMINF - --/* Allow machine dependent optimization for post-increment or pre-increment. -- Based on testing to date, -- Pre-increment preferred for: -- - PowerPC G3 (Adler) -- - MIPS R5000 (Randers-Pehrson) -- Post-increment preferred for: -- - none -- No measurable difference: -- - Pentium III (Anderson) -- - M68060 (Nikl) -- */ --#ifdef POSTINC --# define OFF 0 --# define PUP(a) *(a)++ --#else --# define OFF 1 --# define PUP(a) *++(a) --#endif -- - /* - Decode literal, length, and distance codes and write out the resulting - literal and match bytes until either not enough input or output is -@@ -96,9 +77,9 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - - /* copy state to local variables */ - state = (struct inflate_state FAR *)strm->state; -- in = strm->next_in - OFF; -+ in = strm->next_in; - last = in + (strm->avail_in - 5); -- out = strm->next_out - OFF; -+ out = strm->next_out; - beg = out - (start - strm->avail_out); - end = out + (strm->avail_out - 257); - #ifdef INFLATE_STRICT -@@ -119,9 +100,9 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - input data or output space */ - do { - if (bits < 15) { -- hold += (unsigned long)(PUP(in)) << bits; -+ hold += (unsigned long)(*in++) << bits; - bits += 8; -- hold += (unsigned long)(PUP(in)) << bits; -+ hold += (unsigned long)(*in++) << bits; - bits += 8; - } - here = lcode[hold & lmask]; -@@ -134,14 +115,14 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? - "inflate: literal '%c'\n" : - "inflate: literal 0x%02x\n", here.val)); -- PUP(out) = (unsigned char)(here.val); -+ *out++ = (unsigned char)(here.val); - } - else if (op & 16) { /* length base */ - len = (unsigned)(here.val); - op &= 15; /* number of extra bits */ - if (op) { - if (bits < op) { -- hold += (unsigned long)(PUP(in)) << bits; -+ hold += (unsigned long)(*in++) << bits; - bits += 8; - } - len += (unsigned)hold & ((1U << op) - 1); -@@ -150,9 +131,9 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - } - Tracevv((stderr, "inflate: length %u\n", len)); - if (bits < 15) { -- hold += (unsigned long)(PUP(in)) << bits; -+ hold += (unsigned long)(*in++) << bits; - bits += 8; -- hold += (unsigned long)(PUP(in)) << bits; -+ hold += (unsigned long)(*in++) << bits; - bits += 8; - } - here = dcode[hold & dmask]; -@@ -165,10 +146,10 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - dist = (unsigned)(here.val); - op &= 15; /* number of extra bits */ - if (bits < op) { -- hold += (unsigned long)(PUP(in)) << bits; -+ hold += (unsigned long)(*in++) << bits; - bits += 8; - if (bits < op) { -- hold += (unsigned long)(PUP(in)) << bits; -+ hold += (unsigned long)(*in++) << bits; - bits += 8; - } - } -@@ -196,30 +177,30 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - #ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR - if (len <= op - whave) { - do { -- PUP(out) = 0; -+ *out++ = 0; - } while (--len); - continue; - } - len -= op - whave; - do { -- PUP(out) = 0; -+ *out++ = 0; - } while (--op > whave); - if (op == 0) { - from = out - dist; - do { -- PUP(out) = PUP(from); -+ *out++ = *from++; - } while (--len); - continue; - } - #endif - } -- from = window - OFF; -+ from = window; - if (wnext == 0) { /* very common case */ - from += wsize - op; - if (op < len) { /* some from window */ - len -= op; - do { -- PUP(out) = PUP(from); -+ *out++ = *from++; - } while (--op); - from = out - dist; /* rest from output */ - } -@@ -230,14 +211,14 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - if (op < len) { /* some from end of window */ - len -= op; - do { -- PUP(out) = PUP(from); -+ *out++ = *from++; - } while (--op); -- from = window - OFF; -+ from = window; - if (wnext < len) { /* some from start of window */ - op = wnext; - len -= op; - do { -- PUP(out) = PUP(from); -+ *out++ = *from++; - } while (--op); - from = out - dist; /* rest from output */ - } -@@ -248,35 +229,35 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - if (op < len) { /* some from window */ - len -= op; - do { -- PUP(out) = PUP(from); -+ *out++ = *from++; - } while (--op); - from = out - dist; /* rest from output */ - } - } - while (len > 2) { -- PUP(out) = PUP(from); -- PUP(out) = PUP(from); -- PUP(out) = PUP(from); -+ *out++ = *from++; -+ *out++ = *from++; -+ *out++ = *from++; - len -= 3; - } - if (len) { -- PUP(out) = PUP(from); -+ *out++ = *from++; - if (len > 1) -- PUP(out) = PUP(from); -+ *out++ = *from++; - } - } - else { - from = out - dist; /* copy direct from output */ - do { /* minimum length is three */ -- PUP(out) = PUP(from); -- PUP(out) = PUP(from); -- PUP(out) = PUP(from); -+ *out++ = *from++; -+ *out++ = *from++; -+ *out++ = *from++; - len -= 3; - } while (len > 2); - if (len) { -- PUP(out) = PUP(from); -+ *out++ = *from++; - if (len > 1) -- PUP(out) = PUP(from); -+ *out++ = *from++; - } - } - } -@@ -313,8 +294,8 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - hold &= (1U << bits) - 1; - - /* update state and return */ -- strm->next_in = in + OFF; -- strm->next_out = out + OFF; -+ strm->next_in = in; -+ strm->next_out = out; - strm->avail_in = (unsigned)(in < last ? 5 + (last - in) : 5 - (in - last)); - strm->avail_out = (unsigned)(out < end ? - 257 + (end - out) : 257 - (out - end)); diff --git a/zlib-bnc1003579.patch b/zlib-bnc1003579.patch deleted file mode 100644 index 4cbd8dd..0000000 --- a/zlib-bnc1003579.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 6a043145ca6e9c55184013841a67b2fef87e44c0 Mon Sep 17 00:00:00 2001 -From: Mark Adler -Date: Wed, 21 Sep 2016 23:35:50 -0700 -Subject: [PATCH] Remove offset pointer optimization in inftrees.c. - -inftrees.c was subtracting an offset from a pointer to an array, -in order to provide a pointer that allowed indexing starting at -the offset. This is not compliant with the C standard, for which -the behavior of a pointer decremented before its allocated memory -is undefined. Per the recommendation of a security audit of the -zlib code by Trail of Bits and TrustInSoft, in support of the -Mozilla Foundation, this tiny optimization was removed, in order -to avoid the possibility of undefined behavior. ---- - inftrees.c | 18 ++++++++---------- - 1 file changed, 8 insertions(+), 10 deletions(-) - -diff --git a/inftrees.c b/inftrees.c -index 22fcd66..0d2670d 100644 ---- a/inftrees.c -+++ b/inftrees.c -@@ -54,7 +54,7 @@ unsigned short FAR *work; - code FAR *next; /* next available space in table */ - const unsigned short FAR *base; /* base value table to use */ - const unsigned short FAR *extra; /* extra bits table to use */ -- int end; /* use base and extra for symbol > end */ -+ unsigned match; /* use base and extra for symbol >= match */ - unsigned short count[MAXBITS+1]; /* number of codes of each length */ - unsigned short offs[MAXBITS+1]; /* offsets in table for each length */ - static const unsigned short lbase[31] = { /* Length codes 257..285 base */ -@@ -181,19 +181,17 @@ unsigned short FAR *work; - switch (type) { - case CODES: - base = extra = work; /* dummy value--not used */ -- end = 19; -+ match = 20; - break; - case LENS: - base = lbase; -- base -= 257; - extra = lext; -- extra -= 257; -- end = 256; -+ match = 257; - break; - default: /* DISTS */ - base = dbase; - extra = dext; -- end = -1; -+ match = 0; - } - - /* initialize state for loop */ -@@ -216,13 +214,13 @@ unsigned short FAR *work; - for (;;) { - /* create table entry */ - here.bits = (unsigned char)(len - drop); -- if ((int)(work[sym]) < end) { -+ if (work[sym] + 1 < match) { - here.op = (unsigned char)0; - here.val = work[sym]; - } -- else if ((int)(work[sym]) > end) { -- here.op = (unsigned char)(extra[work[sym]]); -- here.val = base[work[sym]]; -+ else if (work[sym] >= match) { -+ here.op = (unsigned char)(extra[work[sym] - match]); -+ here.val = base[work[sym] - match]; - } - else { - here.op = (unsigned char)(32 + 64); /* end of block */ diff --git a/zlib-bnc1003580.patch b/zlib-bnc1003580.patch deleted file mode 100644 index 755e89d..0000000 --- a/zlib-bnc1003580.patch +++ /dev/null @@ -1,29 +0,0 @@ -From e54e1299404101a5a9d0cf5e45512b543967f958 Mon Sep 17 00:00:00 2001 -From: Mark Adler -Date: Sat, 5 Sep 2015 17:45:55 -0700 -Subject: [PATCH] Avoid shifts of negative values inflateMark(). - -The C standard says that bit shifts of negative integers is -undefined. This casts to unsigned values to assure a known -result. ---- - inflate.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/inflate.c b/inflate.c -index 2889e3a..a718416 100644 ---- a/inflate.c -+++ b/inflate.c -@@ -1506,9 +1506,10 @@ z_streamp strm; - { - struct inflate_state FAR *state; - -- if (strm == Z_NULL || strm->state == Z_NULL) return -1L << 16; -+ if (strm == Z_NULL || strm->state == Z_NULL) -+ return (long)(((unsigned long)0 - 1) << 16); - state = (struct inflate_state FAR *)strm->state; -- return ((long)(state->back) << 16) + -+ return (long)(((unsigned long)((long)state->back)) << 16) + - (state->mode == COPY ? state->length : - (state->mode == MATCH ? state->was - state->length : 0)); - } diff --git a/zlib-bnc1013882.patch b/zlib-bnc1013882.patch deleted file mode 100644 index 065ce69..0000000 --- a/zlib-bnc1013882.patch +++ /dev/null @@ -1,49 +0,0 @@ -From d1d577490c15a0c6862473d7576352a9f18ef811 Mon Sep 17 00:00:00 2001 -From: Mark Adler -Date: Wed, 28 Sep 2016 20:20:25 -0700 -Subject: [PATCH] Avoid pre-decrement of pointer in big-endian CRC calculation. - -There was a small optimization for PowerPCs to pre-increment a -pointer when accessing a word, instead of post-incrementing. This -required prefacing the loop with a decrement of the pointer, -possibly pointing before the object passed. This is not compliant -with the C standard, for which decrementing a pointer before its -allocated memory is undefined. When tested on a modern PowerPC -with a modern compiler, the optimization no longer has any effect. -Due to all that, and per the recommendation of a security audit of -the zlib code by Trail of Bits and TrustInSoft, in support of the -Mozilla Foundation, this "optimization" was removed, in order to -avoid the possibility of undefined behavior. ---- - crc32.c | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/crc32.c b/crc32.c -index 979a719..05733f4 100644 ---- a/crc32.c -+++ b/crc32.c -@@ -278,7 +278,7 @@ local unsigned long crc32_little(crc, buf, len) - } - - /* ========================================================================= */ --#define DOBIG4 c ^= *++buf4; \ -+#define DOBIG4 c ^= *buf4++; \ - c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \ - crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24] - #define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4 -@@ -300,7 +300,6 @@ local unsigned long crc32_big(crc, buf, len) - } - - buf4 = (const z_crc_t FAR *)(const void FAR *)buf; -- buf4--; - while (len >= 32) { - DOBIG32; - len -= 32; -@@ -309,7 +308,6 @@ local unsigned long crc32_big(crc, buf, len) - DOBIG4; - len -= 4; - } -- buf4++; - buf = (const unsigned char FAR *)buf4; - - if (len) do { diff --git a/zlib-format.patch b/zlib-format.patch deleted file mode 100644 index 81950a8..0000000 --- a/zlib-format.patch +++ /dev/null @@ -1,20 +0,0 @@ -From: meissner@suse.de -Subject: supply format arguments to gzprintf(). - -Index: zlib-1.2.7/zlib.h -=================================================================== ---- zlib-1.2.7.orig/zlib.h 2012-05-03 06:12:35.000000000 +0200 -+++ zlib-1.2.7/zlib.h 2012-09-27 13:12:58.187146312 +0200 -@@ -1329,7 +1329,11 @@ - error. - */ - --ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...)); -+ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...)) -+#ifdef __GNUC__ -+ __attribute__((__format__(__printf__,2,3))) -+#endif -+; - /* - Converts, formats, and writes the arguments to the compressed file under - control of the format string, as in fprintf. gzprintf returns the number of diff --git a/zlib.changes b/zlib.changes index 1277db4..bf4d837 100644 --- a/zlib.changes +++ b/zlib.changes @@ -1,3 +1,27 @@ +------------------------------------------------------------------- +Mon Jan 2 09:08:50 UTC 2017 - mpluskal@suse.com + +- Update to version 1.2.9: + * Improve compress() and uncompress() to support large lengths + * Allow building zlib outside of the source directory + * Fix bug when level 0 used with Z_HUFFMAN or Z_RLE + * Fix bugs in creating a very large gzip header + * Add uncompress2() function, which returns the input size used + * Dramatically speed up deflation for level 0 (storing) + * Add gzfread() and gzfwrite(), duplicating the interfaces of fread() and fwrite() + * Add crc32_z() and adler32_z() functions with size_t lengths + * Many portability improvements +- Drop patches included in upstream: + * zlib-bnc1003577.patch + * zlib-bnc1003579-part2.patch + * zlib-bnc1003579.patch + * zlib-bnc1003580.patch + * zlib-bnc1013882.patch + * zlib-format.patch +- Drop zlib-1.2.7-improve-longest_match-performance.patch + * not accepted by upstream for two releases + * rebasing no longer possible + ------------------------------------------------------------------- Sun Dec 4 12:47:51 UTC 2016 - tchvatal@suse.com diff --git a/zlib.spec b/zlib.spec index c129396..4550fc8 100644 --- a/zlib.spec +++ b/zlib.spec @@ -18,7 +18,7 @@ %bcond_with profiling Name: zlib -Version: 1.2.8 +Version: 1.2.9 Release: 0 Summary: Library implementing the DEFLATE compression algorithm License: Zlib @@ -28,16 +28,6 @@ Source0: http://zlib.net/zlib-%{version}.tar.gz Source1: LICENSE Source2: baselibs.conf Source3: zlib-rpmlintrc -#PATCH-FIX-SUSE: fate#314093, sent upstream by IBM -Patch0: zlib-1.2.7-improve-longest_match-performance.patch -#PATCH-FIX-SUSE: compiler check of varguments passed to gzprintf -Patch1: zlib-format.patch -# PATCH-FIX-UPSTREAM: security fixes from upstream git -Patch2: zlib-bnc1003577.patch -Patch3: zlib-bnc1003579-part2.patch -Patch4: zlib-bnc1003579.patch -Patch5: zlib-bnc1003580.patch -Patch6: zlib-bnc1013882.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: libtool @@ -119,13 +109,6 @@ developing applications which use minizip. %prep %setup -q -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 %build export LDFLAGS="-Wl,-z,relro,-z,now"