diff --git a/zlib-1.2.11-optimized-s390.patch b/zlib-1.2.11-optimized-s390.patch new file mode 100644 index 0000000..50a5151 --- /dev/null +++ b/zlib-1.2.11-optimized-s390.patch @@ -0,0 +1,41 @@ +diff --git a/deflate.c b/deflate.c +index 1ec7614..b724c8d 100644 +--- a/deflate.c ++++ b/deflate.c +@@ -1233,15 +1233,16 @@ local void lm_init (s) + /* 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 = (int)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; +@@ -1256,12 +1257,12 @@ local uInt longest_match(s, cur_match) + * 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.7-optimized-s390.patch b/zlib-1.2.7-optimized-s390.patch deleted file mode 100644 index 4534674..0000000 --- a/zlib-1.2.7-optimized-s390.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff -upr zlib-1.2.7.orig/deflate.c zlib-1.2.7/deflate.c ---- zlib-1.2.7.orig/deflate.c 2012-10-04 12:18:50.750427902 +0200 -+++ zlib-1.2.7/deflate.c 2012-10-04 12:20:04.222190460 +0200 -@@ -1150,15 +1150,16 @@ local void lm_init (s) - /* 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; -@@ -1173,12 +1174,12 @@ local uInt longest_match(s, cur_match) - * 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.spec b/zlib.spec index f9f5f45..709e865 100644 --- a/zlib.spec +++ b/zlib.spec @@ -1,7 +1,7 @@ Summary: The compression and decompression library Name: zlib Version: 1.2.11 -Release: 1%{?dist} +Release: 2%{?dist} # /contrib/dotzlib/ have Boost license License: zlib and Boost Group: System Environment/Libraries @@ -11,7 +11,7 @@ Source: http://www.zlib.net/zlib-%{version}.tar.xz # https://github.com/madler/zlib/pull/210 Patch0: zlib-1.2.5-minizip-fixuncrypt.patch # resolves: #805113 -Patch1: zlib-1.2.7-optimized-s390.patch +Patch1: zlib-1.2.11-optimized-s390.patch BuildRequires: automake, autoconf, libtool @@ -138,6 +138,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_libdir}/pkgconfig/minizip.pc %changelog +* Thu Feb 09 2017 Pavel Raiskup - 1.2.11-2 +- fix s390(x) optimizing patch (FTBFS on s390(x)) + * Mon Jan 30 2017 Pavel Raiskup - 1.2.11-1 - latest upstream release (rhbz#1409372) - cleanup rpmlint