25391510 Upgrade zlib to version 1.2.11
25214399 problem in LIBRARY/LIBZ
25417002 ZLIB_VERSION is not fully numeric, breaks Python zlib test
--- a/components/zlib/Makefile Wed Mar 22 01:52:40 2017 -0700
+++ b/components/zlib/Makefile Tue Apr 04 07:25:56 2017 -0700
@@ -20,28 +20,31 @@
#
#
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
#
include ../../make-rules/shared-macros.mk
COMPONENT_NAME= zlib
-COMPONENT_VERSION= 1.2.8
+COMPONENT_VERSION= 1.2.11
COMPONENT_PROJECT_URL= http://www.zlib.net/
COMPONENT_SRC= $(COMPONENT_NAME)-$(COMPONENT_VERSION)
COMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.gz
COMPONENT_ARCHIVE_HASH= \
- sha256:36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d
+ sha256:c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1
COMPONENT_ARCHIVE_URL= http://downloads.sourceforge.net/project/libpng/zlib/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
COMPONENT_BUGDB= library/libz
-TPNO= 17611
+TPNO= 33488
include $(WS_MAKE_RULES)/prep.mk
include $(WS_MAKE_RULES)/configure.mk
include $(WS_MAKE_RULES)/ips.mk
include $(WS_MAKE_RULES)/lint-libraries.mk
+# Newer compiler is needed to build optimized sparcv7/symcap.o.
+SPRO_VROOT = $(SPRO_ROOT)/solarisstudio12.4
+
#
# We want to build hardware specific versions of the longest_match()
# function into our shared library that has been hand optimised to use
@@ -102,7 +105,7 @@
$(BUILD_DIR)/sparc%/.built: COMPONENT_PRE_BUILD_ACTION = ( \
cd capabilities; \
- $(ENV) SUBDIRS="sun4v" BUILD_ARCH=$* $(GMAKE) build )
+ $(ENV) SUBDIRS="sun4v" BUILD_ARCH=$* CC=$(CC) $(GMAKE) build )
COMPONENT_TEST_TARGETS = test
@@ -113,7 +116,7 @@
test: $(TEST_32_and_64)
clean::
- $(RM) -r $(BUILD_DIR) $(PROTO_DIR) capabilities/*/*/*.o
+ $(RM) -r $(BUILD_DIR) $(PROTO_DIR) capabilities/*/*/*.o capabilities/*/$(MACH32)/*.s
REQUIRED_PACKAGES += system/library
--- a/components/zlib/capabilities/sun4v/sparcv7/Makefile Wed Mar 22 01:52:40 2017 -0700
+++ b/components/zlib/capabilities/sun4v/sparcv7/Makefile Tue Apr 04 07:25:56 2017 -0700
@@ -20,20 +20,25 @@
#
#
-# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
#
include ../Makefile.com
include ../../Makefile.com
-CFLAGS += -xarch=sparc
+CFLAGS += -xarch=sparc4 -xtarget=T4 -xchip=T4 -xO5
CPPFLAGS += -D__sparc
ASFLAGS = -m32 -K PIC -xarch=sparc4
include ../Makefile.targ
include ../../Makefile.targ
+DEFLATE_C=../../../build/$(BUILD_ARCH)/deflate.c
+
+longest_match_t4.s: $(DEFLATE_C)
+ $(CC) $(CFLAGS) -DLONGEST_MATCH_ONLY -DORIG_LONGEST_MATCH_GLOBAL -S -o $@ $(DEFLATE_C)
+
all build: $(SYMCAP)
clean:
- $(RM) *.o
+ $(RM) *.o *.s
--- a/components/zlib/capabilities/sun4v/sparcv7/longest_match_t4.s Wed Mar 22 01:52:40 2017 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,689 +0,0 @@
-!
-! This file was generated by a compiler that is currently not part of the CBE
-! as the CBE compiler does not generate code for the T4 architecture. If
-! such a compiler (e.g. the Oracle Studio 12.3) becomes part of the CBE
-! the longest_match.o file can simply be comp[iled from longest_match.c
-! as for the 32-bit version, no modifications were made.
-!
-
- .section ".text",#alloc,#execinstr,#progbits
- .file "longest_match.c"
-
- .section ".bss",#alloc,#write,#nobits
-
-Bbss.bss:
-
- .section ".data",#alloc,#write,#progbits
-
-Ddata.data:
-
- .section ".rodata",#alloc,#progbits
-!
-! CONSTANT POOL
-!
-
-Drodata.rodata:
- .global deflate_lm_copyright
-!
-! CONSTANT POOL
-!
- .global deflate_lm_copyright
-
-deflate_lm_copyright:
- .byte 32
- .byte 100
- .byte 101
- .byte 102
- .byte 108
- .byte 97
- .byte 116
- .byte 101
- .byte 47
- .byte 108
- .byte 111
- .byte 110
- .byte 103
- .byte 101
- .byte 115
- .byte 116
- .byte 95
- .byte 109
- .byte 97
- .byte 116
- .byte 99
- .byte 104
- .byte 32
- .byte 49
- .byte 46
- .byte 50
- .byte 46
- .byte 51
- .byte 32
- .byte 67
- .byte 111
- .byte 112
- .byte 121
- .byte 114
- .byte 105
- .byte 103
- .byte 104
- .byte 116
- .byte 32
- .byte 49
- .byte 57
- .byte 57
- .byte 53
- .byte 45
- .byte 50
- .byte 48
- .byte 48
- .byte 53
- .byte 32
- .byte 74
- .byte 101
- .byte 97
- .byte 110
- .byte 45
- .byte 108
- .byte 111
- .byte 117
- .byte 112
- .byte 32
- .byte 71
- .byte 97
- .byte 105
- .byte 108
- .byte 108
- .byte 121
- .byte 32
- .skip 1
- .type deflate_lm_copyright,#object
- .size deflate_lm_copyright,67
-
- .section ".tbss",#alloc,#write,#tls,#nobits
-
-Ttbss.bss:
-
- .section ".tdata",#alloc,#write,#tls,#progbits
-
-Ttdata.data:
-
- .section ".text",#alloc,#execinstr,#progbits
-/* 000000 0 */ .align 4
-! FILE longest_match.c
-
-! 1 !/* deflate.c -- compress data using the deflation algorithm
-! 2 ! * Copyright (C) 1995-2005 Jean-loup Gailly.
-! 3 ! * For conditions of distribution and use, see copyright notice in zlib.h
-! 4 ! */
-! 6 !/*
-! 7 ! * This file contains the longest_match() function cut out from the original
-! 8 ! * deflate.c file - this was necessary so that the compiler do not inline
-! 9 ! * this function and so architecture-specific versions of it may be built
-! 10 ! * that can use the linker's capabilities-based linking feature to produce
-! 11 ! * the best executable for all platforms.
-! 12 ! */
-! 14 !/* @(#) $Id$ */
-! 16 !#include "deflate.h"
-! 18 !const char deflate_lm_copyright[] =
-! 19 ! " deflate/longest_match 1.2.3 Copyright 1995-2005 Jean-loup Gailly ";
-! 20 !/*
-! 21 ! If you use the zlib library in a product, an acknowledgment is welcome
-! 22 ! in the documentation of your product. If for some reason you cannot
-! 23 ! include such an acknowledgment, I would appreciate that you keep this
-! 24 ! copyright string in the executable of your product.
-! 25 ! */
-! 27 !#define NIL 0
-! 29 !#ifndef FASTEST
-! 30 !#ifdef ASMV
-! 31 ! void match_init OF((void)); /* asm code initialization */
-! 32 ! uInt longest_match OF((deflate_state *s, IPos cur_match));
-! 33 !#else
-! 34 !uInt longest_match OF((deflate_state *s, IPos cur_match));
-! 35 !#endif
-! 37 !/* ===========================================================================
-! 38 ! * Set match_start to the longest match starting at the given string and
-! 39 ! * return its length. Matches shorter or equal to prev_length are discarded,
-! 40 ! * in which case the result is equal to prev_length and match_start is
-! 41 ! * garbage.
-! 42 ! * IN assertions: cur_match is the head of the hash chain for the current
-! 43 ! * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
-! 44 ! * OUT assertion: the match length is not greater than s->lookahead.
-! 45 ! */
-! 46 !#ifndef ASMV
-! 47 !/* For 80x86 and 680x0, an optimized version will be provided in match.asm or
-! 48 ! * match.S. The code will be functionally equivalent.
-! 49 ! */
-! 50 !uInt longest_match(s, cur_match)
-! 51 ! deflate_state *s;
-! 52 ! IPos cur_match; /* current match */
-! 53 !{
-
-!
-! SUBROUTINE longest_match
-!
-! OFFSET SOURCE LINE LABEL INSTRUCTION
-
- .global longest_match
-
-
- longest_match:
-
-! Registers live out of longest_match:
-! g2 o1 sp l1 l2 l4 l5 l6 i0 i1 i2 i3 i4 fp gsr
-!
-
-
- .L900000109:
-/* 000000 53 */ save %sp,-96,%sp
-
-! 54 ! unsigned chain_length = s->max_chain_length;/* max hash chain length */
-! 55 ! register Bytef *scan = s->window + s->strstart; /* current string */
-
-/* 0x0004 55 */ ld [%i0+108],%l4
-/* 0x0008 */ ld [%i0+56],%l5
-
-! 56 ! register Bytef *match; /* matched string */
-! 57 ! register int len; /* length of current match */
-! 58 ! int best_len = s->prev_length; /* best match length so far */
-! 59 ! int nice_match = s->nice_match; /* stop if match long enough */
-! 60 ! IPos limit = s->strstart > (IPos)MAX_DIST(s) ?
-! 61 ! s->strstart - (IPos)MAX_DIST(s) : NIL;
-
-/* 0x000c 61 */ mov 0,%l6
-/* 0x0010 */ ld [%i0+44],%i5
-/* 0x0014 58 */ ld [%i0+120],%i2
-/* 0x0018 54 */ ld [%i0+124],%o1
-/* 0x001c 59 */ ld [%i0+144],%g2
-/* 0x0020 93 */ ld [%i0+116],%i3
-/* 0x0024 55 */ add %l5,%l4,%i4
-/* 0x0028 87 */ ld [%i0+140],%l1
-/* 0x002c 61 */ add %i5,-262,%l3
-/* 0x0030 77 */ add %i4,%i2,%l2
-/* 0x0034 61 */ cwbleu %l4,%l3,.L77000163
-
-! predecessor blocks: .L900000109
-
- .L77000159:
-/* 0x0038 61 */ sub %l4,%l3,%l6
-
-! Registers live out of .L77000159:
-! g2 o1 sp l1 l2 l5 l6 i0 i1 i2 i3 i4 fp gsr
-!
-
-! 62 ! /* Stop when cur_match becomes <= limit. To simplify the code,
-! 63 ! * we prevent matches with the string of window index 0.
-! 64 ! */
-! 65 ! Posf *prev = s->prev;
-! 66 ! uInt wmask = s->w_mask;
-! 68 !#ifdef UNALIGNED_OK
-! 69 ! /* Compare two bytes at a time. Note: this is not always beneficial.
-! 70 ! * Try with and without -DUNALIGNED_OK to check.
-! 71 ! */
-! 72 ! register Bytef *strend = s->window + s->strstart + MAX_MATCH - 1;
-! 73 ! register ush scan_start = *(ushf*)scan;
-! 74 ! register ush scan_end = *(ushf*)(scan+best_len-1);
-! 75 !#else
-! 76 ! register Bytef *strend = s->window + s->strstart + MAX_MATCH;
-! 77 ! register Byte scan_end1 = scan[best_len-1];
-
-
-! predecessor blocks: .L77000159 .L900000109
-
- .L77000163:
-/* 0x003c 77 */ ldub [%l2-1],%l4
-
-! 78 ! register Byte scan_end = scan[best_len];
-! 79 !#endif
-! 81 ! /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
-! 82 ! * It is easy to get rid of this optimization if necessary.
-! 83 ! */
-! 84 ! Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever");
-! 86 ! /* Do not waste too much time if we already have a good match: */
-! 87 ! if (s->prev_length >= s->good_match) {
-
-/* 0x0040 87 */ cmp %i2,%l1
-/* 0x0044 78 */ ldub [%i4+%i2],%l3
-/* 0x0048 76 */ add %i4,258,%l7
-/* 0x004c 66 */ ld [%i0+52],%l1
-/* 0x0050 65 */ ld [%i0+64],%l2
-/* 0x0054 87 */ bcs,pn %icc,.L77000167
-/* 0x0058 93 */ cmp %g2,%i3
-
-! Registers live out of .L77000163:
-! g2 o1 sp l1 l2 l4 l5 l6 l7 i0 i1 i2 i3 i4 fp gsr
-!
-
-! 88 ! chain_length >>= 2;
-
-
-! predecessor blocks: .L77000163
-
- .L77000165:
-/* 0x005c 88 */ srl %o1,2,%o1
-
-! Registers live out of .L77000165:
-! g2 o1 sp l1 l2 l4 l5 l6 l7 i0 i1 i2 i3 i4 fp gsr
-!
-
-! 89 ! }
-! 90 ! /* Do not look for matches beyond the end of the input. This is necessary
-! 91 ! * to make deflate deterministic.
-! 92 ! */
-! 93 ! if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead;
-
-
-! predecessor blocks: .L77000163 .L77000165
-
- .L77000167:
-/* 0x0060 93 */ movgu %icc,%i3,%g2
-
-! 95 ! Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
-! 97 ! do {
-! 98 ! Assert(cur_match < s->strstart, "no future");
-! 99 ! match = s->window + cur_match;
-
-/* 0x0064 99 */ add %i1,%l5,%g3
-
-! Registers live out of .L77000167:
-! g2 g3 o1 sp l1 l2 l4 l5 l6 l7 i0 i1 i2 i3 i4 fp gsr
-!
-
-! 101 ! /* Skip to next match if the match length cannot increase
-! 102 ! * or if the match length is less than 2. Note that the checks below
-! 103 ! * for insufficient lookahead only occur occasionally for performance
-! 104 ! * reasons. Therefore uninitialized memory will be accessed, and
-! 105 ! * conditional jumps will be made that depend on those values.
-! 106 ! * However the length of the match is limited to the lookahead, so
-! 107 ! * the output of deflate is not affected by the uninitialized values.
-! 108 ! */
-! 109 !#if (defined(UNALIGNED_OK) && MAX_MATCH == 258)
-! 110 ! /* This code assumes sizeof(unsigned short) == 2. Do not use
-! 111 ! * UNALIGNED_OK if your compiler uses a different size.
-! 112 ! */
-! 113 ! if (*(ushf*)(match+best_len-1) != scan_end ||
-! 114 ! *(ushf*)match != scan_start) continue;
-! 116 ! /* It is not necessary to compare scan[2] and match[2] since they are
-! 117 ! * always equal when the other bytes match, given that the hash keys
-! 118 ! * are equal and that HASH_BITS >= 8. Compare 2 bytes at a time at
-! 119 ! * strstart+3, +5, ... up to strstart+257. We check for insufficient
-! 120 ! * lookahead only every 4th comparison; the 128th check will be made
-! 121 ! * at strstart+257. If MAX_MATCH-2 is not a multiple of 8, it is
-! 122 ! * necessary to put more guard bytes at the end of the window, or
-! 123 ! * to check more often for insufficient lookahead.
-! 124 ! */
-! 125 ! Assert(scan[2] == match[2], "scan[2]?");
-! 126 ! scan++, match++;
-! 127 ! do {
-! 128 ! } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
-! 129 ! *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
-! 130 ! *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
-! 131 ! *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
-! 132 ! scan < strend);
-! 133 ! /* The funny "do {}" generates better code on most compilers */
-! 135 ! /* Here, scan <= window+strstart+257 */
-! 136 ! Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
-! 137 ! if (*scan == *match) scan++;
-! 139 ! len = (MAX_MATCH - 1) - (int)(strend-scan);
-! 140 ! scan = strend - (MAX_MATCH-1);
-! 142 !#else /* UNALIGNED_OK */
-! 144 ! if (match[best_len] != scan_end ||
-! 145 ! match[best_len-1] != scan_end1 ||
-! 146 ! *match != *scan ||
-! 147 ! *++match != scan[1]) continue;
-
-
-! predecessor blocks: .L77000167 .L77000219
-
- .L900000107:
-/* 0x0068 147 */ ldub [%g3+%i2],%o3
-/* 0x006c */ cwbne %o3,%l3,.L77000217
-
-! Registers live out of .L900000107:
-! g2 g3 o1 sp l1 l2 l4 l5 l6 l7 i0 i1 i2 i3 i4 fp gsr
-!
-
-! predecessor blocks: .L900000107
-
- .L77000175:
-/* 0x0070 147 */ add %g3,%i2,%g4
-/* 0x0074 */ ldub [%g4-1],%o4
-/* 0x0078 */ cwbne %o4,%l4,.L77000217
-
-! Registers live out of .L77000175:
-! g2 g3 o1 sp l1 l2 l4 l5 l6 l7 i0 i1 i2 i3 i4 fp gsr
-!
-
-! predecessor blocks: .L77000175
-
- .L77000177:
-/* 0x007c 147 */ ldub [%l5+%i1],%o5
-/* 0x0080 */ ldub [%i4],%o7
-/* 0x0084 */ cwbne %o5,%o7,.L77000217
-
-! Registers live out of .L77000177:
-! g2 g3 o1 sp l1 l2 l4 l5 l6 l7 i0 i1 i2 i3 i4 fp gsr
-!
-
-! predecessor blocks: .L77000177
-
- .L77000179:
-/* 0x0088 147 */ ldub [%i4+1],%i5
-/* 0x008c */ ldub [%g3+1],%l0
-/* 0x0090 */ cwbne %l0,%i5,.L77000217
-
-! Registers live out of .L77000179:
-! g2 g3 o1 sp l1 l2 l4 l5 l6 l7 i0 i1 i2 i3 i4 fp gsr
-!
-
-! 149 ! /* The check at best_len-1 can be removed because it will be made
-! 150 ! * again later. (This heuristic is not always a win.)
-! 151 ! * It is not necessary to compare scan[2] and match[2] since they
-! 152 ! * are always equal when the other bytes match, given that
-! 153 ! * the hash keys are equal and that HASH_BITS >= 8.
-! 154 ! */
-! 155 ! scan += 2, match++;
-
-
-! predecessor blocks: .L77000179
-
- .L77000185:
-/* 0x0094 155 */ add %i4,2,%g4
-/* 0x0098 */ add %g3,2,%g3
-
-! Registers live out of .L77000185:
-! g2 g3 g4 o1 sp l1 l2 l4 l5 l6 l7 i0 i1 i2 i3 i4 fp gsr
-!
-
-! 156 ! Assert(*scan == *match, "match[2]?");
-! 158 ! /* We check for insufficient lookahead only every 8th comparison;
-! 159 ! * the 256th check will be made at strstart+258.
-! 160 ! */
-! 161 ! do {
-! 162 ! } while (*++scan == *++match && *++scan == *++match &&
-! 163 ! *++scan == *++match && *++scan == *++match &&
-! 164 ! *++scan == *++match && *++scan == *++match &&
-! 165 ! *++scan == *++match && *++scan == *++match &&
-! 166 ! scan < strend);
-
-
-! predecessor blocks: .L77000185 .L77000203
-
- .L77000187:
-/* 0x009c 166 */ ldub [%g4+1],%g1
-/* 0x00a0 */ add %g4,1,%g4
-/* 0x00a4 */ ldub [%g3+1],%g5
-/* 0x00a8 */ cwbne %g1,%g5,.L77000207
-
-! Registers live out of .L77000187:
-! g2 g3 g4 o1 sp l1 l2 l4 l5 l6 l7 i0 i1 i2 i3 i4 fp gsr
-!
-
-! predecessor blocks: .L77000187
-
- .L77000189:
-/* 0x00ac 166 */ ldub [%g4+1],%o0
-/* 0x00b0 */ add %g4,1,%g4
-/* 0x00b4 */ ldub [%g3+2],%o2
-/* 0x00b8 */ cwbne %o0,%o2,.L77000207
-
-! Registers live out of .L77000189:
-! g2 g3 g4 o1 sp l1 l2 l4 l5 l6 l7 i0 i1 i2 i3 i4 fp gsr
-!
-
-! predecessor blocks: .L77000189
-
- .L77000191:
-/* 0x00bc 166 */ ldub [%g4+1],%o3
-/* 0x00c0 */ add %g4,1,%g4
-/* 0x00c4 */ ldub [%g3+3],%o4
-/* 0x00c8 */ cwbne %o3,%o4,.L77000207
-
-! Registers live out of .L77000191:
-! g2 g3 g4 o1 sp l1 l2 l4 l5 l6 l7 i0 i1 i2 i3 i4 fp gsr
-!
-
-! predecessor blocks: .L77000191
-
- .L77000193:
-/* 0x00cc 166 */ ldub [%g4+1],%o5
-/* 0x00d0 */ add %g4,1,%g4
-/* 0x00d4 */ ldub [%g3+4],%o7
-/* 0x00d8 */ cwbne %o5,%o7,.L77000207
-
-! Registers live out of .L77000193:
-! g2 g3 g4 o1 sp l1 l2 l4 l5 l6 l7 i0 i1 i2 i3 i4 fp gsr
-!
-
-! predecessor blocks: .L77000193
-
- .L77000195:
-/* 0x00dc 166 */ ldub [%g4+1],%l0
-/* 0x00e0 */ add %g4,1,%g4
-/* 0x00e4 */ ldub [%g3+5],%i5
-/* 0x00e8 */ cwbne %l0,%i5,.L77000207
-
-! Registers live out of .L77000195:
-! g2 g3 g4 o1 sp l1 l2 l4 l5 l6 l7 i0 i1 i2 i3 i4 fp gsr
-!
-
-! predecessor blocks: .L77000195
-
- .L77000197:
-/* 0x00ec 166 */ ldub [%g4+1],%g1
-/* 0x00f0 */ add %g4,1,%g4
-/* 0x00f4 */ ldub [%g3+6],%g5
-/* 0x00f8 */ cwbne %g1,%g5,.L77000207
-
-! Registers live out of .L77000197:
-! g2 g3 g4 o1 sp l1 l2 l4 l5 l6 l7 i0 i1 i2 i3 i4 fp gsr
-!
-
-! predecessor blocks: .L77000197
-
- .L77000199:
-/* 0x00fc 166 */ ldub [%g4+1],%o0
-/* 0x0100 */ add %g4,1,%g4
-/* 0x0104 */ ldub [%g3+7],%o2
-/* 0x0108 */ cwbne %o0,%o2,.L77000207
-
-! Registers live out of .L77000199:
-! g2 g3 g4 o1 sp l1 l2 l4 l5 l6 l7 i0 i1 i2 i3 i4 fp gsr
-!
-
-! predecessor blocks: .L77000199
-
- .L77000201:
-/* 0x010c 166 */ ldub [%g4+1],%o3
-/* 0x0110 */ add %g4,1,%g4
-/* 0x0114 */ ldub [%g3+8],%o4
-/* 0x0118 */ add %g3,8,%g3
-/* 0x011c */ cwbne %o3,%o4,.L77000207
-/* 0x0120 */ nop
-
-! Registers live out of .L77000201:
-! g2 g3 g4 o1 sp l1 l2 l4 l5 l6 l7 i0 i1 i2 i3 i4 fp gsr
-!
-
-! predecessor blocks: .L77000201
-
- .L77000203:
-/* 0x0124 166 */ cwbcs %g4,%l7,.L77000187
-
-! Registers live out of .L77000203:
-! g2 g3 g4 o1 sp l1 l2 l4 l5 l6 l7 i0 i1 i2 i3 i4 fp gsr
-!
-
-! 168 ! Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
-! 170 ! len = MAX_MATCH - (int)(strend - scan);
-
-
-! predecessor blocks: .L77000187 .L77000189 .L77000191 .L77000193 .L77000195 .L77000197 .L77000199 .L77000201 .L77000203
-
- .L77000207:
-/* 0x0128 170 */ sub %g4,%l7,%o7
-/* 0x012c */ add %o7,258,%o5
-
-! 171 ! scan = strend - MAX_MATCH;
-! 173 !#endif /* UNALIGNED_OK */
-! 175 ! if (len > best_len) {
-
-/* 0x0130 175 */ cwble %o5,%i2,.L77000217
-
-! Registers live out of .L77000207:
-! g2 o1 o5 sp l1 l2 l4 l5 l6 l7 i0 i1 i2 i3 i4 fp gsr
-!
-
-! 176 ! s->match_start = cur_match;
-
-
-! predecessor blocks: .L77000207
-
- .L77000209:
-/* 0x0134 176 */ st %i1,[%i0+112]
-
-! 177 ! best_len = len;
-
-/* 0x0138 177 */ mov %o5,%i2
-
-! 178 ! if (len >= nice_match) break;
-
-/* 0x013c 178 */ cwbge %o5,%g2,.L77000225
-
-! Registers live out of .L77000209:
-! g2 o1 o5 sp l1 l2 l5 l6 l7 i0 i1 i2 i3 i4 fp gsr
-!
-
-! 179 !#ifdef UNALIGNED_OK
-! 180 ! scan_end = *(ushf*)(scan+best_len-1);
-! 181 !#else
-! 182 ! scan_end1 = scan[best_len-1];
-
-
-! predecessor blocks: .L77000209
-
- .L77000213:
-/* 0x0140 182 */ add %i4,%o5,%l4
-
-! 183 ! scan_end = scan[best_len];
-
-/* 0x0144 183 */ ldub [%i4+%o5],%l3
-/* 0x0148 182 */ ldub [%l4-1],%l4
-
-! Registers live out of .L77000213:
-! g2 o1 sp l1 l2 l4 l5 l6 l7 i0 i1 i2 i3 i4 fp gsr
-!
-
-! 184 !#endif
-! 185 ! }
-! 186 ! } while ((cur_match = prev[cur_match & wmask]) > limit
-! 187 ! && --chain_length != 0);
-
-
-! predecessor blocks: .L77000175 .L77000177 .L77000179 .L77000207 .L77000213 .L900000107
-
- .L77000217:
-/* 0x014c 187 */ and %i1,%l1,%i1
-/* 0x0150 */ sll %i1,1,%l0
-/* 0x0154 */ lduh [%l0+%l2],%i1
-/* 0x0158 */ cwbleu %i1,%l6,.L77000225
-
-! Registers live out of .L77000217:
-! g2 o1 sp l1 l2 l4 l5 l6 l7 i0 i1 i2 i3 i4 fp gsr
-!
-
-! predecessor blocks: .L77000217
-
- .L77000219:
-/* 0x015c 187 */ addcc %o1,-1,%o1
-/* 0x0160 */ bne,pt %icc,.L900000107
-/* 0x0164 99 */ add %i1,%l5,%g3
-
-! Registers live out of .L77000219:
-! g2 g3 o1 sp l1 l2 l4 l5 l6 l7 i0 i1 i2 i3 i4 fp gsr
-!
-
-! 189 ! if ((uInt)best_len <= s->lookahead) return (uInt)best_len;
-
-
-! predecessor blocks: .L77000209 .L77000217 .L77000219
-
- .L77000225:
-/* 0x0168 189 */ mov %i3,%i0
-/* 0x016c */ cmp %i2,%i3
-/* 0x0170 */ movleu %icc,%i2,%i0
-
-! 190 ! return s->lookahead;
-
-/* 0x0174 190 */ return %i7+8 ! Result = %i0
-/* 0x0178 */ nop
-/* 0x017c 0 */ .type longest_match,#function
-/* 0x017c 0 */ .size longest_match,(.-longest_match)
-
-
- .L900000110:
-
- .section ".text",#alloc,#execinstr,#progbits
-
-
- .L900000112:
-
- .section ".annotate",#progbits
-/* 000000 0 */ .asciz "anotate"
-/* 0x0008 0 */ .half 6,0
-/* 0x000c 0 */ .word 28
-/* 0x0010 0 */ .half 0,8
-/* 0x0014 0 */ .word (.L900000112-0x17c)
-/* 0x0018 0 */ .word 380
-/* 0x001c 0 */ .half 1,12
-/* 0x0020 0 */ .word .L900000109
-/* 0x0024 0 */ .word (.L900000110-.L900000109)
-/* 0x0028 0 */ .word 1577088
-
-! Begin Disassembling Debug Info
-! Begin sdCreateSection : .debug_info
-! Section Info: link_name/strtab=, entsize=0x1, adralign=0x1, flags=0x0
-! Section Data Blocks:
-! reloc[0]: knd=2, off=6, siz=4, lab1=.debug_abbrev, lab2=, loff=0
-! reloc[1]: knd=2, off=286, siz=4, lab1=.debug_line, lab2=, loff=0
- .section ".debug_info"
- .byte 0x00,0x00,0x01,0x1f,0x00,0x02
- .uaword %section_symbol(".debug_abbrev")
- .byte 0x04,0x01
- .ascii "longest_match.c\0"
- .byte 0x0c
- .ascii "/builds/frakoczi/userland_s11u1/zlib-t4/components/zlib/build/sparcv7\0"
- .ascii " /ws/onnv-tools/SUNWspro/solarisstudio12.3/prod/bin/cc -xtarget=T4 -xarch=sparc4 -xchip=T4 -xO5 -S longest_match.c\0"
- .ascii "Xa;O;R=Sun C 5.12 SunOS_sparc 2011/11/16;backend;raw;cd;\0"
- .ascii "DBG_GEN 5.3.3\0"
- .uaword %section_symbol(".debug_line")
- .byte 0x00
-! End sdCreateSection
-! Begin sdCreateSection : .debug_line
-! Section Info: link_name/strtab=, entsize=0x1, adralign=0x1, flags=0x0
-! Section Data Blocks:
- .section ".debug_line"
- .byte 0x00,0x00,0x00,0x29,0x00,0x02,0x00,0x00
- .byte 0x00,0x23,0x04,0x00,0xff,0x04,0x0a,0x00
- .byte 0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x01
- .byte 0x00,0x6c,0x6f,0x6e,0x67,0x65,0x73,0x74
- .byte 0x5f,0x6d,0x61,0x74,0x63,0x68,0x2e,0x63
- .byte 0x00,0x00,0x00,0x00,0x00
-! End sdCreateSection
-! Begin sdCreateSection : .debug_abbrev
-! Section Info: link_name/strtab=, entsize=0x1, adralign=0x1, flags=0x0
-! Section Data Blocks:
- .section ".debug_abbrev"
- .byte 0x01,0x11,0x00,0x03,0x08,0x13,0x0b,0x1b
- .byte 0x08,0x85,0x44,0x08,0x87,0x44,0x08,0x25
- .byte 0x08,0x10,0x06,0x00,0x00,0x00
-! End sdCreateSection
-
-! End Disassembling Debug Info
-
-! Begin Disassembling Ident
- .ident "cg: Sun Compiler Common 12.3 SunOS_sparc 2011/11/16" ! (NO SOURCE LINE)
- .ident "acomp: Sun C 5.12 SunOS_sparc 2011/11/16" ! (/tmp/acomp.1337176051.3981.02.sd:84)
- .ident "iropt: Sun Compiler Common 12.3 SunOS_sparc 2011/11/16" ! (/tmp/acomp.1337176051.3981.02.sd:85)
- .ident "cg: Sun Compiler Common 12.3 SunOS_sparc 2011/11/16" ! (NO SOURCE LINE)
-! End Disassembling Ident
--- a/components/zlib/capabilities/sun4v/sparcv9/longest_match_t4.s Wed Mar 22 01:52:40 2017 -0700
+++ b/components/zlib/capabilities/sun4v/sparcv9/longest_match_t4.s Tue Apr 04 07:25:56 2017 -0700
@@ -96,20 +96,20 @@
.L900000112:
save %sp, -0xb0, %sp
- ld [%i0 + 0x4c], %l4 !7
- ldn [%i0 + 0x60], %l5 !7
+ ld [%i0 + 0x58], %l4 !7
+ ldn [%i0 + 0x70], %l5 !7
and %i1, %l4, %l2 !7
prefetch [%l5 + %l2], #n_reads !7
-!7 ld [%i0 + 0x9c], %l4
- ld [%i0 + 0x9c], %l1 !7
- ld [%i0 + 0x44], %l6
+!7 ld [%i0 + 0xac], %l4
+ ld [%i0 + 0xac], %l1 !7
+ ld [%i0 + 0x50], %l6
clr %g4
- ldn [%i0 + 0x50], %g1
- ld [%i0 + 0xa8], %i2
- ld [%i0 + 0xac], %g5
- ld [%i0 + 0xc0], %o0
+ ldn [%i0 + 0x60], %g1
+ ld [%i0 + 0xb8], %i2
+ ld [%i0 + 0xbc], %g5
+ ld [%i0 + 0xd0], %o0
!5 srl %l4, 0x0, %l5
- ld [%i0 + 0xbc], %l7
+ ld [%i0 + 0xcc], %l7
add %l6, -0x106, %i3
!5 add %g1, %l5, %i4
!7 add %g1, %l4, %i4 !5
@@ -120,9 +120,9 @@
sub %l1, %i3, %g4 !7
lm_0x38:
-!7 ld [%i0 + 0x4c], %l4
+!7 ld [%i0 + 0x5c], %l4
!4 add %i2, -0x1, %l3
-!7 ldn [%i0 + 0x60], %l5
+!7 ldn [%i0 + 0x70], %l5
!4 sra %l3, 0x0, %o2
add %i2, -0x1, %o2 !4
ldub [%i4 + %o2], %o2
@@ -131,7 +131,7 @@
ldub [%i4 + %i2], %o1 !3
cmp %i2, %l7
add %i4, 0x102, %l7
- ld [%i0 + 0xa4], %i3
+ ld [%i0 + 0xb4], %i3
bcs,pn %icc, lm_0x6c
mov 0x102, %l3
@@ -241,7 +241,7 @@
sub %l3, %l0, %o7
cwble %o7, %i2, lm_0x17c
- st %i1, [%i0 + 0xa0]
+ st %i1, [%i0 + 0xb0]
mov %o7, %i2
cwbge %o7, %o0, lm_0x190
--- a/components/zlib/llib-lz Wed Mar 22 01:52:40 2017 -0700
+++ b/components/zlib/llib-lz Tue Apr 04 07:25:56 2017 -0700
@@ -20,7 +20,7 @@
*/
/*
- * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
*/
/* LINTLIBRARY */
@@ -37,6 +37,7 @@
int deflateInit2_(z_streamp strm, int level, int method, int windowBits,
int memLevel, int strategy, const char *version, int stream_size);
int deflate(z_streamp strm, int flush);
+int deflateGetDictionary(z_streamp strm, Bytef *dictionary, uInt *dictLength);
int deflateSetDictionary(z_streamp strm, const Bytef *dictionary,
uInt dictLength);
int deflateCopy(z_streamp dest, z_streamp source);
@@ -74,6 +75,8 @@
uLong compressBound(uLong sourceLen);
int uncompress(Bytef *dest, uLongf *destLen, const Bytef *source,
uLong sourceLen);
+int uncompress2(Bytef *dest, uLongf *destLen, const Bytef *source,
+ uLong *sourceLen);
gzFile gzopen(const char *path, const char *mode);
gzFile gzopen64(const char *path, const char *mode);
gzFile gzdopen(int fd, const char *mode);
@@ -87,6 +90,8 @@
int gzungetc(int c, gzFile file);
int gzputc(gzFile file, int c);
int gzflush(gzFile file, int flush);
+z_size_t gzfread(voidp buf, z_size_t size, z_size_t nitems, gzFile file);
+z_size_t gzfwrite(voidpc buf, z_size_t size, z_size_t nitems, gzFile file);
z_off_t gzseek(gzFile file, z_off_t offset, int whence);
z_off64_t gzseek64(gzFile, z_off64_t, int);
int gzrewind(gzFile file);
@@ -104,14 +109,18 @@
uLong adler32(uLong adler, const Bytef *buf, uInt len);
uLong adler32_combine(uLong adler1, uLong adler2, z_off_t len2);
uLong adler32_combine64(uLong adler1, uLong adler2, z_off64_t len2);
+uLong adler32_z(uLong adler, const Bytef *buf, z_size_t len);
uLong crc32(uLong crc, const Bytef *buf, uInt len);
uLong crc32_combine(uLong crc1, uLong crc2, z_off_t len2);
uLong crc32_combine64(uLong crc1, uLong crc2, z_off64_t len2);
+uLong crc32_z(uLong adler, const Bytef *buf, z_size_t len);
const char *zError(int err);
uLong zlibCompileFlags(void);
int inflateSyncPoint(z_streamp z);
const z_crc_t *get_crc_table(void);
int inflateUndermine(z_streamp, int);
+int inflateValidate(z_streamp, int);
+unsigned long inflateCodesUsed(z_streamp);
int inflateResetKeep(z_streamp);
int deflateResetKeep(z_streamp);
int gzvprintf(gzFile file, const char *format, va_list va);
--- a/components/zlib/mapfile Wed Mar 22 01:52:40 2017 -0700
+++ b/components/zlib/mapfile Tue Apr 04 07:25:56 2017 -0700
@@ -32,12 +32,24 @@
#
# Note that the source above actually lives in the ON tree.
#
-# Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
#
# public interfaces in libz
#
$mapfile_version 2
+SYMBOL_VERSION SUNW_1.4 {
+ global:
+ deflateGetDictionary ;
+ uncompress2 ;
+ gzfread ;
+ gzfwrite ;
+ adler32_z ;
+ crc32_z ;
+ inflateValidate ;
+ inflateCodesUsed ;
+} SUNW_1.3;
+
SYMBOL_VERSION SUNW_1.3 {
global:
deflatePending ;
--- a/components/zlib/patches/manpage.patch Wed Mar 22 01:52:40 2017 -0700
+++ b/components/zlib/patches/manpage.patch Tue Apr 04 07:25:56 2017 -0700
@@ -1,11 +1,11 @@
Patch origin: in-house
Patch status: Solaris-specific; not suitable for upstream
---- zlib-1.2.8/zlib.3 2013-04-28 17:23:49.000000000 -0700
-+++ zlib-1.2.8/zlib.3 2014-04-18 06:07:00.037749015 -0700
+--- zlib-1.2.11/zlib.3
++++ zlib-1.2.11/zlib.3
@@ -1,13 +1,13 @@
--.TH ZLIB 3 "28 Apr 2013"
-+.TH LIBZ 3 "28 Apr 2013"
+-.TH ZLIB 3 "15 Jan 2017"
++.TH LIBZ 3 "15 Jan 2017"
.SH NAME
-zlib \- compression/decompression library
+libz \- compression/decompression library
@@ -16,7 +16,7 @@
.SH DESCRIPTION
The
-.I zlib
-+.I libz (zlib)
++.I libz
library is a general purpose data compression library.
The code is thread safe, assuming that the standard library functions
used are thread safe, such as memory allocation routines.
--- a/components/zlib/patches/parfait.patch Wed Mar 22 01:52:40 2017 -0700
+++ b/components/zlib/patches/parfait.patch Tue Apr 04 07:25:56 2017 -0700
@@ -8,13 +8,97 @@
Downside of it is that Parfait will analyze also these separate object
files.
---- zlib-1.2.8/Makefile.in 2013-04-28 15:57:11.000000000 -0700
-+++ zlib-1.2.8/Makefile.in 2014-05-07 07:30:58.047571894 -0700
-@@ -158,6 +158,7 @@
+--- zlib-1.2.11/Makefile.in
++++ zlib-1.2.11/Makefile.in
+@@ -208,76 +208,91 @@
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/adler32.o $(SRCDIR)adler32.c
+ -@mv objs/adler32.o $@
++ -@if [ -f objs/adler32.o.bc ]; then mv objs/adler32.o.bc adler32.bc; fi
+
+ crc32.lo: $(SRCDIR)crc32.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/crc32.o $(SRCDIR)crc32.c
+ -@mv objs/crc32.o $@
++ -@if [ -f objs/crc32.o.bc ]; then mv objs/crc32.o.bc crc32.bc; fi
+
+ deflate.lo: $(SRCDIR)deflate.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/deflate.o $(SRCDIR)deflate.c
+ -@mv objs/deflate.o $@
++ -@if [ -f objs/deflate.o.bc ]; then mv objs/deflate.o.bc deflate.bc; fi
+
+ infback.lo: $(SRCDIR)infback.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/infback.o $(SRCDIR)infback.c
+ -@mv objs/infback.o $@
++ -@if [ -f objs/infback.o.bc ]; then mv objs/infback.o.bc infback.bc; fi
+
+ inffast.lo: $(SRCDIR)inffast.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/inffast.o $(SRCDIR)inffast.c
+ -@mv objs/inffast.o $@
++ -@if [ -f objs/inffast.o.bc ]; then mv objs/inffast.o.bc inffast.bc; fi
+
+ inflate.lo: $(SRCDIR)inflate.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/inflate.o $(SRCDIR)inflate.c
+ -@mv objs/inflate.o $@
++ -@if [ -f objs/inflate.o.bc ]; then mv objs/inflate.o.bc inflate.bc; fi
+
+ inftrees.lo: $(SRCDIR)inftrees.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/inftrees.o $(SRCDIR)inftrees.c
+ -@mv objs/inftrees.o $@
++ -@if [ -f objs/inftrees.o.bc ]; then mv objs/inftrees.o.bc inftrees.bc; fi
+
+ trees.lo: $(SRCDIR)trees.c
-@mkdir objs 2>/dev/null || test -d objs
- $(CC) $(SFLAGS) -DPIC -c -o objs/$*.o $<
- -@mv objs/$*.o $@
-+ -@if [ -f objs/$*.o.bc ]; then mv objs/$*.o.bc [email protected]; fi
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/trees.o $(SRCDIR)trees.c
+ -@mv objs/trees.o $@
++ -@if [ -f objs/trees.o.bc ]; then mv objs/trees.o.bc trees.bc; fi
+
+ zutil.lo: $(SRCDIR)zutil.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/zutil.o $(SRCDIR)zutil.c
+ -@mv objs/zutil.o $@
++ -@if [ -f objs/zutil.o.bc ]; then mv objs/zutil.o.bc zutil.bc; fi
+
+ compress.lo: $(SRCDIR)compress.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/compress.o $(SRCDIR)compress.c
+ -@mv objs/compress.o $@
++ -@if [ -f objs/compress.o.bc ]; then mv objs/compress.o.bc compress.bc; fi
+
+ uncompr.lo: $(SRCDIR)uncompr.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/uncompr.o $(SRCDIR)uncompr.c
+ -@mv objs/uncompr.o $@
++ -@if [ -f objs/uncompr.o.bc ]; then mv objs/uncompr.o.bc uncompr.bc; fi
+
+ gzclose.lo: $(SRCDIR)gzclose.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/gzclose.o $(SRCDIR)gzclose.c
+ -@mv objs/gzclose.o $@
++ -@if [ -f objs/gzclose.o.bc ]; then mv objs/gzclose.o.bc gzclose.bc; fi
+
+ gzlib.lo: $(SRCDIR)gzlib.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/gzlib.o $(SRCDIR)gzlib.c
+ -@mv objs/gzlib.o $@
++ -@if [ -f objs/gzlib.o.bc ]; then mv objs/gzlib.o.bc gzlib.bc; fi
+
+ gzread.lo: $(SRCDIR)gzread.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/gzread.o $(SRCDIR)gzread.c
+ -@mv objs/gzread.o $@
++ -@if [ -f objs/gzread.o.bc ]; then mv objs/gzread.o.bc gzread.bc; fi
+
+ gzwrite.lo: $(SRCDIR)gzwrite.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/gzwrite.o $(SRCDIR)gzwrite.c
+ -@mv objs/gzwrite.o $@
++ -@if [ -f objs/gzwrite.o.bc ]; then mv objs/gzwrite.o.bc gzwrite.bc; fi
+
placebo $(SHAREDLIBV): $(PIC_OBJS) libz.a
- $(LDSHARED) $(SFLAGS) -o $@ $(PIC_OBJS) $(LDSHAREDLIBC) $(LDFLAGS)
--- a/components/zlib/patches/perf.patch Wed Mar 22 01:52:40 2017 -0700
+++ b/components/zlib/patches/perf.patch Tue Apr 04 07:25:56 2017 -0700
@@ -1,23 +1,12 @@
Patch origin: in-house
-Patch status: inffast.c part: submitted back to community without feedback
+Patch status: inffast.c part: accepted, will be in next version
Patch status: deflate.c part: Solaris-specific; not suitable for upstream
---- zlib-1.2.8/zlib.h 2013-04-28 17:23:49.000000000 -0700
-+++ zlib-1.2.8/zlib.h 2014-04-18 05:32:31.316290241 -0700
-@@ -37,8 +37,8 @@
- extern "C" {
- #endif
-
--#define ZLIB_VERSION "1.2.8"
--#define ZLIB_VERNUM 0x1280
-+#define ZLIB_VERSION "1.2.8-T4mods"
-+#define ZLIB_VERNUM 0x128f
- #define ZLIB_VER_MAJOR 1
- #define ZLIB_VER_MINOR 2
- #define ZLIB_VER_REVISION 8
+https://github.com/madler/zlib/commit/60a5ecc62b18d1e2391993b1fcfc10e100720642
+
--- zlib-1.2.8/inffast.c 2013-03-24 22:47:59.000000000 -0700
+++ zlib-1.2.8/inffast.c 2014-02-28 01:57:57.075708259 -0800
-@@ -87,7 +87,7 @@
+@@ -68,7 +68,7 @@
code const FAR *dcode; /* local strm->distcode */
unsigned lmask; /* mask for first level of length codes */
unsigned dmask; /* mask for first level of distance codes */
@@ -26,8 +15,8 @@
unsigned op; /* code bits, operation, extra bits, or */
/* window position, window bytes to copy */
unsigned len; /* match length, unused bytes */
-@@ -124,20 +124,20 @@
- hold += (unsigned long)(PUP(in)) << bits;
+@@ -105,20 +105,20 @@
+ hold += (unsigned long)(*in++) << bits;
bits += 8;
}
- here = lcode[hold & lmask];
@@ -44,9 +33,9 @@
+ 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);
+ "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);
@@ -54,8 +43,8 @@
op &= 15; /* number of extra bits */
if (op) {
if (bits < op) {
-@@ -155,14 +155,14 @@
- hold += (unsigned long)(PUP(in)) << bits;
+@@ -136,14 +136,14 @@
+ hold += (unsigned long)(*in++) << bits;
bits += 8;
}
- here = dcode[hold & dmask];
@@ -72,8 +61,8 @@
+ dist = (unsigned)(here->val);
op &= 15; /* number of extra bits */
if (bits < op) {
- hold += (unsigned long)(PUP(in)) << bits;
-@@ -281,7 +281,7 @@
+ hold += (unsigned long)(*in++) << bits;
+@@ -262,7 +262,7 @@
}
}
else if ((op & 64) == 0) { /* 2nd level distance code */
@@ -82,7 +71,7 @@
goto dodist;
}
else {
-@@ -291,7 +291,7 @@
+@@ -272,7 +272,7 @@
}
}
else if ((op & 64) == 0) { /* 2nd level length code */
@@ -101,7 +90,7 @@
/* ===========================================================================
* Function prototypes.
*/
-@@ -89,13 +90,18 @@
+@@ -91,13 +92,18 @@
void match_init OF((void)); /* asm code initialization */
uInt longest_match OF((deflate_state *s, IPos cur_match));
#else
@@ -112,7 +101,7 @@
+#endif
#endif
- #ifdef DEBUG
+ #ifdef ZLIB_DEBUG
local void check_match OF((deflate_state *s, IPos start, IPos match,
int length));
#endif
@@ -120,7 +109,7 @@
/* ===========================================================================
* Local data
-@@ -104,6 +110,7 @@
+@@ -106,6 +112,7 @@
#define NIL 0
/* Tail of hash chains */
@@ -128,7 +117,7 @@
#ifndef TOO_FAR
# define TOO_FAR 4096
#endif
-@@ -1130,7 +1137,9 @@
+@@ -1217,7 +1224,9 @@
#endif
#endif
}
@@ -138,7 +127,7 @@
#ifndef FASTEST
/* ===========================================================================
* Set match_start to the longest match starting at the given string and
-@@ -1145,7 +1154,11 @@
+@@ -1232,7 +1241,11 @@
/* For 80x86 and 680x0, an optimized version will be provided in match.asm or
* match.S. The code will be functionally equivalent.
*/
@@ -150,7 +139,7 @@
deflate_state *s;
IPos cur_match; /* current match */
{
-@@ -1288,6 +1301,7 @@
+@@ -1375,6 +1388,7 @@
return s->lookahead;
}
#endif /* ASMV */
@@ -158,15 +147,15 @@
#else /* FASTEST */
-@@ -1349,6 +1363,7 @@
+@@ -1436,6 +1450,7 @@
#endif /* FASTEST */
+#ifndef LONGEST_MATCH_ONLY
- #ifdef DEBUG
- /* ===========================================================================
- * Check that the match at match_start is indeed a match.
-@@ -1965,3 +1980,4 @@
+ #ifdef ZLIB_DEBUG
+
+ #define EQUAL 0
+@@ -2154,3 +2169,4 @@
FLUSH_BLOCK(s, 0);
return block_done;
}
--- a/components/zlib/zlib.license Wed Mar 22 01:52:40 2017 -0700
+++ b/components/zlib/zlib.license Tue Apr 04 07:25:56 2017 -0700
@@ -1,22 +1,22 @@
-Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler
+ (C) 1995-2017 Jean-loup Gailly and Mark Adler
-This software is provided 'as-is', without any express or implied
-warranty. In no event will the authors be held liable for any damages
-arising from the use of this software.
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
-1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
-Jean-loup Gailly Mark Adler
[email protected] [email protected]
+ Jean-loup Gailly Mark Adler
+ [email protected] [email protected]