upgradetoversion 1.11

This commit is contained in:
shangyibin 2021-12-28 11:50:48 +08:00
parent cd90beaa70
commit 9b0b68f49f
6 changed files with 34 additions and 78 deletions

View File

@ -11,7 +11,7 @@ Signed-off-by: pengyeqing <pengyeqing@huawei.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/zdiff.in b/zdiff.in
index 960bf86..e337e35 100644
index a1325f2..2b7ec23 100644
--- a/zdiff.in
+++ b/zdiff.in
@@ -51,7 +51,7 @@ escape='
@ -23,6 +23,6 @@ index 960bf86..e337e35 100644
--) shift; break;;
-*\'*) cmp="$cmp '"`printf '%sX\n' "$1" | sed "$escape"`;;
-?*) cmp="$cmp '$1'";;
--
1.8.3.1
--
2.27.0

View File

@ -1,38 +0,0 @@
From 21cd963565a43dabd59516bd4cca5c76a614f255 Mon Sep 17 00:00:00 2001
From: Jakub Martisko <jamartis@redhat.com>
Date: Tue, 26 Mar 2019 12:29:30 +0100
Subject: [PATCH] Fix: the value of the skip variable in the gzexe
---
gzexe.in | 4 ++--
tests/Makefile.am | 1 +
tests/gzexe | 20 ++++++++++++++++++++
3 files changed, 23 insertions(+), 2 deletions(-)
create mode 100755 tests/gzexe
diff --git a/gzexe.in b/gzexe.in
index 6c61183..cffa84e 100644
--- a/gzexe.in
+++ b/gzexe.in
@@ -145,7 +145,7 @@ for i do
if test $decomp -eq 0; then
(cat <<'EOF' &&
#!/bin/sh
-skip=44
+skip=49
tab=' '
nl='
@@ -201,7 +201,7 @@ EOF
else
# decompression
- skip=44
+ skip=49
skip_line=`sed -e 1d -e 2q "$file"`
case $skip_line in
skip=[0-9] | skip=[0-9][0-9] | skip=[0-9][0-9][0-9])
--
2.21.0

Binary file not shown.

BIN
gzip-1.11.tar.xz Normal file

Binary file not shown.

View File

@ -1,13 +1,12 @@
Name: gzip
Version: 1.10
Release: 2
Version: 1.11
Release: 1
Summary: A data compression utility
License: GPLv3+ and GFDL
URL: https://www.gnu.org/software/gzip
Source0: https://ftp.gnu.org/gnu/gzip/gzip-%{version}.tar.xz
Patch0: gzexe.patch
Patch9000: fix-verbose-disable.patch
Patch9100: performance-neoncrc32-and-prfm.patch
@ -58,6 +57,9 @@ make check
%{_mandir}/man1/*
%changelog
* Tue Dec 28 2021 shangyibin<shangyibin1@huawei.com> - 1.11-1
- upgrade to version 1.11
* Thu Nov 09 2021 tianwei<tianwei12@huawei.com> - 1.10-2
- Type:bugfix
- ID:NA

View File

@ -1,26 +1,18 @@
From 134712c35ed2ec5a06c61583dce59867aeb28862 Mon Sep 17 00:00:00 2001
From: liqiang64 <liqiang64@huawei.com>
Date: Mon, 11 Nov 2019 19:47:36 +0800
Subject: [PATCH] performance-neoncrc32-and-prfm
From 00f4c93e6c6cae92714a96cdde3c07bdfd59c9dc Mon Sep 17 00:00:00 2001
From: root <root@localhost.localdomain>
Date: Tue, 28 Dec 2021 10:24:26 +0800
Subject: [PATCH] performance-neoncrc32-and-prfm-2
Analysis of gzip software by perf tool, found that crc32 and
longest_match hotspots are very high.
On the ARM architecture, we can optimize the efficiency of
crc32 through the interface provided by the neon instruction
set, and optimize the performance of random access code through
prefetch instructions.
Modify by Li Qiang.
---
deflate.c | 27 ++++++++++++++++++++++++++-
util.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
deflate.c | 28 +++++++++++++++++++++++++++-
util.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 75 insertions(+), 1 deletion(-)
diff --git a/deflate.c b/deflate.c
index 951d7af..f15a227 100644
index 55bdc0e..3add924 100644
--- a/deflate.c
+++ b/deflate.c
@@ -392,6 +392,9 @@ longest_match(IPos cur_match)
@@ -378,6 +378,9 @@ longest_match(IPos cur_match)
register int len; /* length of current match */
int best_len = prev_length; /* best match length so far */
IPos limit = strstart > (IPos)MAX_DIST ? strstart - (IPos)MAX_DIST : NIL;
@ -30,18 +22,19 @@ index 951d7af..f15a227 100644
/* Stop when cur_match becomes <= limit. To simplify the code,
* we prevent matches with the string of window index 0.
*/
@@ -425,6 +428,10 @@ longest_match(IPos cur_match)
do {
@@ -412,6 +415,11 @@ longest_match(IPos cur_match)
Assert(cur_match < strstart, "no future");
match = window + cur_match;
+ #ifdef __aarch64__
+ next_match = prev[cur_match & WMASK];
+ __asm__("PRFM PLDL1STRM, [%0]"::"r"(&(prev[next_match & WMASK])));
+ #endif
+
/* Skip to next match if the match length cannot increase
* or if the match length is less than 2:
@@ -502,8 +509,14 @@ longest_match(IPos cur_match)
*/
@@ -488,8 +496,14 @@ longest_match(IPos cur_match)
scan_end = scan[best_len];
#endif
}
@ -49,15 +42,15 @@ index 951d7af..f15a227 100644
+ }
+ #ifdef __aarch64__
+ while ((cur_match = next_match) > limit
&& --chain_length != 0);
+ && --chain_length != 0);
+ #else
+ while ((cur_match = prev[cur_match & WMASK]) > limit
+ && --chain_length != 0);
&& --chain_length != 0);
+ #endif
return best_len;
}
@@ -788,7 +801,19 @@ off_t deflate()
@@ -777,7 +791,19 @@ deflate (int pack_level)
lookahead -= prev_length-1;
prev_length -= 2;
RSYNC_ROLL(strstart, prev_length+1);
@ -78,7 +71,7 @@ index 951d7af..f15a227 100644
INSERT_STRING(strstart, hash_head);
/* strstart never exceeds WSIZE-MAX_MATCH, so there are
diff --git a/util.c b/util.c
index bb5e9f3..d0b3cb0 100644
index e4240a7..397fb3e 100644
--- a/util.c
+++ b/util.c
@@ -31,6 +31,9 @@
@ -105,15 +98,14 @@ index bb5e9f3..d0b3cb0 100644
};
+#endif
/* ===========================================================================
* Copy input to output unchanged: zcat == cat with --force.
@@ -129,6 +134,49 @@ ulg updcrc(s, n)
uch *s; /* pointer to bytes to pump through */
/* Shift register contents. */
static ulg crc = 0xffffffffL;
@@ -132,6 +137,48 @@ ulg updcrc(s, n)
const uch *s; /* pointer to bytes to pump through */
unsigned n; /* number of bytes in s[] */
{
+ #ifdef __aarch64__
+ register ulg c;
+ static ulg crc = (ulg)0xffffffffL;
+ register const uint8_t *buf1;
+ register const uint16_t *buf2;
+ register const uint32_t *buf4;
@ -124,7 +116,7 @@ index bb5e9f3..d0b3cb0 100644
+ if (s == NULL) {
+ c = 0xffffffffL;
+ } else {
+ c = crc;
+ c = crc;
+
+ while(length >= sizeof(uint64_t)) {
+ c = __crc32d(c, *buf8++);
@ -156,15 +148,15 @@ index bb5e9f3..d0b3cb0 100644
+#else
register ulg c; /* temporary variable */
static ulg crc = (ulg)0xffffffffL; /* shift register contents */
@@ -143,6 +191,7 @@ ulg updcrc(s, n)
if (s == NULL) {
@@ -144,6 +191,7 @@ ulg updcrc(s, n)
}
crc = c;
return c ^ 0xffffffffL; /* (instead of ~c for 64-bit machines) */
+#endif
}
/* ===========================================================================
/* Return a current CRC value. */
--
1.8.3.1
2.27.0