upgradetoversion 1.11
This commit is contained in:
parent
cd90beaa70
commit
9b0b68f49f
@ -11,7 +11,7 @@ Signed-off-by: pengyeqing <pengyeqing@huawei.com>
|
|||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/zdiff.in b/zdiff.in
|
diff --git a/zdiff.in b/zdiff.in
|
||||||
index 960bf86..e337e35 100644
|
index a1325f2..2b7ec23 100644
|
||||||
--- a/zdiff.in
|
--- a/zdiff.in
|
||||||
+++ b/zdiff.in
|
+++ b/zdiff.in
|
||||||
@@ -51,7 +51,7 @@ escape='
|
@@ -51,7 +51,7 @@ escape='
|
||||||
@ -23,6 +23,6 @@ index 960bf86..e337e35 100644
|
|||||||
--) shift; break;;
|
--) shift; break;;
|
||||||
-*\'*) cmp="$cmp '"`printf '%sX\n' "$1" | sed "$escape"`;;
|
-*\'*) cmp="$cmp '"`printf '%sX\n' "$1" | sed "$escape"`;;
|
||||||
-?*) cmp="$cmp '$1'";;
|
-?*) cmp="$cmp '$1'";;
|
||||||
--
|
--
|
||||||
1.8.3.1
|
2.27.0
|
||||||
|
|
||||||
|
|||||||
38
gzexe.patch
38
gzexe.patch
@ -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
|
|
||||||
|
|
||||||
BIN
gzip-1.10.tar.xz
BIN
gzip-1.10.tar.xz
Binary file not shown.
BIN
gzip-1.11.tar.xz
Normal file
BIN
gzip-1.11.tar.xz
Normal file
Binary file not shown.
@ -1,13 +1,12 @@
|
|||||||
Name: gzip
|
Name: gzip
|
||||||
Version: 1.10
|
Version: 1.11
|
||||||
Release: 2
|
Release: 1
|
||||||
Summary: A data compression utility
|
Summary: A data compression utility
|
||||||
|
|
||||||
License: GPLv3+ and GFDL
|
License: GPLv3+ and GFDL
|
||||||
URL: https://www.gnu.org/software/gzip
|
URL: https://www.gnu.org/software/gzip
|
||||||
Source0: https://ftp.gnu.org/gnu/gzip/gzip-%{version}.tar.xz
|
Source0: https://ftp.gnu.org/gnu/gzip/gzip-%{version}.tar.xz
|
||||||
|
|
||||||
Patch0: gzexe.patch
|
|
||||||
Patch9000: fix-verbose-disable.patch
|
Patch9000: fix-verbose-disable.patch
|
||||||
Patch9100: performance-neoncrc32-and-prfm.patch
|
Patch9100: performance-neoncrc32-and-prfm.patch
|
||||||
|
|
||||||
@ -58,6 +57,9 @@ make check
|
|||||||
%{_mandir}/man1/*
|
%{_mandir}/man1/*
|
||||||
|
|
||||||
%changelog
|
%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
|
* Thu Nov 09 2021 tianwei<tianwei12@huawei.com> - 1.10-2
|
||||||
- Type:bugfix
|
- Type:bugfix
|
||||||
- ID:NA
|
- ID:NA
|
||||||
|
|||||||
@ -1,26 +1,18 @@
|
|||||||
From 134712c35ed2ec5a06c61583dce59867aeb28862 Mon Sep 17 00:00:00 2001
|
From 00f4c93e6c6cae92714a96cdde3c07bdfd59c9dc Mon Sep 17 00:00:00 2001
|
||||||
From: liqiang64 <liqiang64@huawei.com>
|
From: root <root@localhost.localdomain>
|
||||||
Date: Mon, 11 Nov 2019 19:47:36 +0800
|
Date: Tue, 28 Dec 2021 10:24:26 +0800
|
||||||
Subject: [PATCH] performance-neoncrc32-and-prfm
|
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 ++++++++++++++++++++++++++-
|
deflate.c | 28 +++++++++++++++++++++++++++-
|
||||||
util.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
|
util.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
2 files changed, 75 insertions(+), 1 deletion(-)
|
2 files changed, 75 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/deflate.c b/deflate.c
|
diff --git a/deflate.c b/deflate.c
|
||||||
index 951d7af..f15a227 100644
|
index 55bdc0e..3add924 100644
|
||||||
--- a/deflate.c
|
--- a/deflate.c
|
||||||
+++ b/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 */
|
register int len; /* length of current match */
|
||||||
int best_len = prev_length; /* best match length so far */
|
int best_len = prev_length; /* best match length so far */
|
||||||
IPos limit = strstart > (IPos)MAX_DIST ? strstart - (IPos)MAX_DIST : NIL;
|
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,
|
/* Stop when cur_match becomes <= limit. To simplify the code,
|
||||||
* we prevent matches with the string of window index 0.
|
* we prevent matches with the string of window index 0.
|
||||||
*/
|
*/
|
||||||
@@ -425,6 +428,10 @@ longest_match(IPos cur_match)
|
@@ -412,6 +415,11 @@ longest_match(IPos cur_match)
|
||||||
do {
|
|
||||||
Assert(cur_match < strstart, "no future");
|
Assert(cur_match < strstart, "no future");
|
||||||
match = window + cur_match;
|
match = window + cur_match;
|
||||||
|
|
||||||
+ #ifdef __aarch64__
|
+ #ifdef __aarch64__
|
||||||
+ next_match = prev[cur_match & WMASK];
|
+ next_match = prev[cur_match & WMASK];
|
||||||
+ __asm__("PRFM PLDL1STRM, [%0]"::"r"(&(prev[next_match & WMASK])));
|
+ __asm__("PRFM PLDL1STRM, [%0]"::"r"(&(prev[next_match & WMASK])));
|
||||||
+ #endif
|
+ #endif
|
||||||
|
+
|
||||||
/* Skip to next match if the match length cannot increase
|
/* Skip to next match if the match length cannot increase
|
||||||
* or if the match length is less than 2:
|
* 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];
|
scan_end = scan[best_len];
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -49,15 +42,15 @@ index 951d7af..f15a227 100644
|
|||||||
+ }
|
+ }
|
||||||
+ #ifdef __aarch64__
|
+ #ifdef __aarch64__
|
||||||
+ while ((cur_match = next_match) > limit
|
+ while ((cur_match = next_match) > limit
|
||||||
&& --chain_length != 0);
|
+ && --chain_length != 0);
|
||||||
+ #else
|
+ #else
|
||||||
+ while ((cur_match = prev[cur_match & WMASK]) > limit
|
+ while ((cur_match = prev[cur_match & WMASK]) > limit
|
||||||
+ && --chain_length != 0);
|
&& --chain_length != 0);
|
||||||
+ #endif
|
+ #endif
|
||||||
|
|
||||||
return best_len;
|
return best_len;
|
||||||
}
|
}
|
||||||
@@ -788,7 +801,19 @@ off_t deflate()
|
@@ -777,7 +791,19 @@ deflate (int pack_level)
|
||||||
lookahead -= prev_length-1;
|
lookahead -= prev_length-1;
|
||||||
prev_length -= 2;
|
prev_length -= 2;
|
||||||
RSYNC_ROLL(strstart, prev_length+1);
|
RSYNC_ROLL(strstart, prev_length+1);
|
||||||
@ -78,7 +71,7 @@ index 951d7af..f15a227 100644
|
|||||||
INSERT_STRING(strstart, hash_head);
|
INSERT_STRING(strstart, hash_head);
|
||||||
/* strstart never exceeds WSIZE-MAX_MATCH, so there are
|
/* strstart never exceeds WSIZE-MAX_MATCH, so there are
|
||||||
diff --git a/util.c b/util.c
|
diff --git a/util.c b/util.c
|
||||||
index bb5e9f3..d0b3cb0 100644
|
index e4240a7..397fb3e 100644
|
||||||
--- a/util.c
|
--- a/util.c
|
||||||
+++ b/util.c
|
+++ b/util.c
|
||||||
@@ -31,6 +31,9 @@
|
@@ -31,6 +31,9 @@
|
||||||
@ -105,15 +98,14 @@ index bb5e9f3..d0b3cb0 100644
|
|||||||
};
|
};
|
||||||
+#endif
|
+#endif
|
||||||
|
|
||||||
/* ===========================================================================
|
/* Shift register contents. */
|
||||||
* Copy input to output unchanged: zcat == cat with --force.
|
static ulg crc = 0xffffffffL;
|
||||||
@@ -129,6 +134,49 @@ ulg updcrc(s, n)
|
@@ -132,6 +137,48 @@ ulg updcrc(s, n)
|
||||||
uch *s; /* pointer to bytes to pump through */
|
const uch *s; /* pointer to bytes to pump through */
|
||||||
unsigned n; /* number of bytes in s[] */
|
unsigned n; /* number of bytes in s[] */
|
||||||
{
|
{
|
||||||
+ #ifdef __aarch64__
|
+ #ifdef __aarch64__
|
||||||
+ register ulg c;
|
+ register ulg c;
|
||||||
+ static ulg crc = (ulg)0xffffffffL;
|
|
||||||
+ register const uint8_t *buf1;
|
+ register const uint8_t *buf1;
|
||||||
+ register const uint16_t *buf2;
|
+ register const uint16_t *buf2;
|
||||||
+ register const uint32_t *buf4;
|
+ register const uint32_t *buf4;
|
||||||
@ -124,7 +116,7 @@ index bb5e9f3..d0b3cb0 100644
|
|||||||
+ if (s == NULL) {
|
+ if (s == NULL) {
|
||||||
+ c = 0xffffffffL;
|
+ c = 0xffffffffL;
|
||||||
+ } else {
|
+ } else {
|
||||||
+ c = crc;
|
+ c = crc;
|
||||||
+
|
+
|
||||||
+ while(length >= sizeof(uint64_t)) {
|
+ while(length >= sizeof(uint64_t)) {
|
||||||
+ c = __crc32d(c, *buf8++);
|
+ c = __crc32d(c, *buf8++);
|
||||||
@ -156,15 +148,15 @@ index bb5e9f3..d0b3cb0 100644
|
|||||||
+#else
|
+#else
|
||||||
register ulg c; /* temporary variable */
|
register ulg c; /* temporary variable */
|
||||||
|
|
||||||
static ulg crc = (ulg)0xffffffffL; /* shift register contents */
|
if (s == NULL) {
|
||||||
@@ -143,6 +191,7 @@ ulg updcrc(s, n)
|
@@ -144,6 +191,7 @@ ulg updcrc(s, n)
|
||||||
}
|
}
|
||||||
crc = c;
|
crc = c;
|
||||||
return c ^ 0xffffffffL; /* (instead of ~c for 64-bit machines) */
|
return c ^ 0xffffffffL; /* (instead of ~c for 64-bit machines) */
|
||||||
+#endif
|
+#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ===========================================================================
|
/* Return a current CRC value. */
|
||||||
--
|
--
|
||||||
1.8.3.1
|
2.27.0
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user