aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXin LI <delphij@FreeBSD.org>2023-01-23 00:49:43 +0000
committerXin LI <delphij@FreeBSD.org>2023-01-26 05:31:38 +0000
commit52e8d11dfe85d7a6455ae9456970d9653034deb2 (patch)
treec6cb060327d305600455b407f30cac2d5ee1a4f1
parent08b2c77707036768099e7df66222f75da877ebb7 (diff)
downloadsrc-52e8d11dfe85d7a6455ae9456970d9653034deb2.tar.gz
src-52e8d11dfe85d7a6455ae9456970d9653034deb2.zip
MFC: MFV: xz 5.4.1.
(cherry picked from commit 047153b416415605f127a3950e08c61f1910e9cb)
-rw-r--r--contrib/xz/ChangeLog652
-rw-r--r--contrib/xz/THANKS3
-rw-r--r--contrib/xz/src/common/mythread.h12
-rw-r--r--contrib/xz/src/common/sysdefs.h12
-rw-r--r--contrib/xz/src/common/tuklib_progname.c2
-rw-r--r--contrib/xz/src/common/tuklib_progname.h2
-rw-r--r--contrib/xz/src/liblzma/api/lzma/version.h2
-rw-r--r--contrib/xz/src/liblzma/check/crc64_fast.c18
-rw-r--r--contrib/xz/src/liblzma/common/filter_encoder.c7
-rw-r--r--contrib/xz/src/liblzma/common/index.c1
-rw-r--r--contrib/xz/src/liblzma/common/index.h12
-rw-r--r--contrib/xz/src/liblzma/common/index_decoder.c2
-rw-r--r--contrib/xz/src/liblzma/common/index_decoder.h1
-rw-r--r--contrib/xz/src/liblzma/common/index_encoder.c2
-rw-r--r--contrib/xz/src/liblzma/common/index_hash.c4
-rw-r--r--contrib/xz/src/liblzma/common/microlzma_encoder.c3
-rw-r--r--contrib/xz/src/liblzma/common/stream_buffer_encoder.c1
-rw-r--r--contrib/xz/src/liblzma/common/stream_decoder.c3
-rw-r--r--contrib/xz/src/liblzma/common/stream_decoder_mt.c2
-rw-r--r--contrib/xz/src/liblzma/simple/arm64.c1
-rw-r--r--contrib/xz/src/xz/message.c9
-rw-r--r--contrib/xz/src/xz/mytime.c7
-rw-r--r--contrib/xz/src/xz/suffix.c3
-rw-r--r--lib/liblzma/config.h27
24 files changed, 744 insertions, 44 deletions
diff --git a/contrib/xz/ChangeLog b/contrib/xz/ChangeLog
index f2c2bd3cad3f..c068ad3e3901 100644
--- a/contrib/xz/ChangeLog
+++ b/contrib/xz/ChangeLog
@@ -1,3 +1,655 @@
+commit 18b845e69752c975dfeda418ec00eda22605c2ee
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2023-01-11 18:52:54 +0200
+
+ Bump version and soname for 5.4.1.
+
+ src/liblzma/Makefile.am | 2 +-
+ src/liblzma/api/lzma/version.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 4080bbb844fb36701ffb978f0c41ea2c2c9f8960
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2023-01-11 23:58:16 +0800
+
+ Add NEWS for 5.4.1.
+
+ NEWS | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 70 insertions(+)
+
+commit 674c89fdb8c457ebc3a0652e235d8b6cd7b7dee2
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2023-01-10 11:56:11 +0200
+
+ sysdefs.h: Don't include strings.h anymore.
+
+ On some platforms src/xz/suffix.c may need <strings.h> for
+ strcasecmp() but suffix.c includes the header when it needs it.
+
+ Unless there is an old system that otherwise supports enough C99
+ to build XZ Utils but doesn't have C89/C90-compatible <string.h>,
+ there should be no need to include <strings.h> in sysdefs.h.
+
+ src/common/sysdefs.h | 6 ------
+ 1 file changed, 6 deletions(-)
+
+commit 2a6b938084fac9ddb39cd69c9beeed15c3b6f6f6
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2023-01-10 11:23:41 +0200
+
+ xz: Include <strings.h> in suffix.c if needed for strcasecmp().
+
+ SUSv2 and POSIX.1‐2017 declare only a few functions in <strings.h>.
+ Of these, strcasecmp() is used on some platforms in suffix.c.
+ Nothing else in the project needs <strings.h> (at least if
+ building on a modern system).
+
+ sysdefs.h currently includes <strings.h> if HAVE_STRINGS_H is
+ defined and suffix.c relied on this.
+
+ Note that dos/config.h doesn't #define HAVE_STRINGS_H even though
+ DJGPP does have strings.h. It isn't needed with DJGPP as strcasecmp()
+ is also in <string.h> in DJGPP.
+
+ src/xz/suffix.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit aea639e81beb548e3114c74b6d9a894d6e036189
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2023-01-11 22:46:48 +0800
+
+ xz: Fix warning -Wformat-nonliteral on clang in message.c.
+
+ clang and gcc differ in how they handle -Wformat-nonliteral. gcc will
+ allow a non-literal format string as long as the function takes its
+ format arguments as a va_list.
+
+ src/xz/message.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+commit e3b42bfcb0f67988beee7c7022fed0361282be45
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2023-01-11 20:58:31 +0800
+
+ Tests: Fix test_filter_flags copy/paste error.
+
+ tests/test_filter_flags.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 21625b7e11d004788e40eb5eb88d9d89f65fe347
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2023-01-11 20:42:29 +0800
+
+ Tests: Fix type-limits warning in test_filter_flags.
+
+ This only occurs in test_filter_flags when the BCJ filters are not
+ configured and built. In this case, ARRAY_SIZE() returns 0 and causes a
+ type-limits warning with the loop variable since an unsigned number will
+ always be >= 0.
+
+ tests/test_filter_flags.c | 13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+commit c337983e928682d56ce3470b286a8d5b8646e0ad
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2023-01-10 22:14:03 +0200
+
+ liblzma: CLMUL CRC64: Work around a bug in MSVC, second attempt.
+
+ This affects only 32-bit x86 builds. x86-64 is OK as is.
+
+ I still cannot easily test this myself. The reporter has tested
+ this and it passes the tests included in the CMake build and
+ performance is good: raw CRC64 is 2-3 times faster than the
+ C version of the slice-by-four method. (Note that liblzma doesn't
+ include a MSVC-compatible version of the 32-bit x86 assembly code
+ for the slice-by-four method.)
+
+ Thanks to Iouri Kharon for figuring out a fix, testing, and
+ benchmarking.
+
+ src/liblzma/check/crc64_fast.c | 18 ++++++++++++++++++
+ 1 file changed, 18 insertions(+)
+
+commit b7fb438ea0e3ee02e3a164f3b72fae456cbe34d7
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2023-01-11 01:18:50 +0800
+
+ Tests: Fix unused function warning in test_block_header.
+
+ One of the global arrays of filters was only used in a test that
+ required both encoders and decoders to be configured in the build.
+
+ tests/test_block_header.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+commit 68e9ef036d18d7c3952bff0b391d5989b86934da
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2023-01-11 01:08:03 +0800
+
+ Tests: Fix unused function warning in test_index_hash.
+
+ test_index_hash does not use fill_index_hash() unless both encoders
+ and decoders are configured in the build.
+
+ tests/test_index_hash.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+commit a387707cd8cdefbffb5b7429bda4b7fcc192954a
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2023-01-10 00:33:14 +0200
+
+ Windows: Update INSTALL-MSVC.txt to recommend CMake over project files.
+
+ windows/INSTALL-MSVC.txt | 19 ++++++++++++-------
+ 1 file changed, 12 insertions(+), 7 deletions(-)
+
+commit 52902ad69518255a14b0144f0a2379e06fde5b6e
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2023-01-10 12:47:16 +0200
+
+ Revert "liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022)."
+
+ This reverts commit 36edc65ab4cf10a131f239acbd423b4510ba52d5.
+
+ It was reported that it wasn't a good enough fix and MSVC
+ still produced (different kind of) bad code when building
+ for 32-bit x86 if optimizations are enabled.
+
+ Thanks to Iouri Kharon.
+
+ src/liblzma/check/crc64_fast.c | 6 ------
+ 1 file changed, 6 deletions(-)
+
+commit e81b9fc48ca70f9228308d3f1871cd81f9a5a496
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2023-01-10 10:05:13 +0200
+
+ sysdefs.h: Fix a comment.
+
+ src/common/sysdefs.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 6e89ab58b031aa046308a0b3504ff0a5be042571
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2023-01-10 10:04:06 +0200
+
+ sysdefs.h: Don't include memory.h anymore even if it were available.
+
+ It quite probably was never needed, that is, any system where memory.h
+ was required likely couldn't compile XZ Utils for other reasons anyway.
+
+ XZ Utils 5.2.6 and later source packages were generated using
+ Autoconf 2.71 which no longer defines HAVE_MEMORY_H. So the code
+ being removed is no longer used anyway.
+
+ src/common/sysdefs.h | 8 ++------
+ 1 file changed, 2 insertions(+), 6 deletions(-)
+
+commit 65c59ad429aa59f9df0326d9fc82931ba4a9d123
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2023-01-10 08:50:26 +0200
+
+ CMake/Windows: Add a workaround for windres from GNU binutils.
+
+ This is combined from the following commits in the master branch:
+ 443dfebced041adc88f10d824188eeef5b5821a9
+ 6b117d3b1fe91eb26d533ab16a2e552f84148d47
+ 5e34774c31d1b7509b5cb77a3be9973adec59ea0
+
+ Thanks to Iouri Kharon for the bug report, the original patch,
+ and testing.
+
+ CMakeLists.txt | 32 +++++++++++++++++++++++++++++++-
+ 1 file changed, 31 insertions(+), 1 deletion(-)
+
+commit 43521e77acc907863fa4f94aae276366172cb9ee
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2023-01-06 22:53:38 +0200
+
+ Tests: test_filter_flags: Clean up minor issues.
+
+ Here are the list of the most significant issues addressed:
+ - Avoid using internal common.h header. It's not good to copy the
+ constants like this but common.h cannot be included for use outside
+ of liblzma. This is the quickest thing to do that could be fixed later.
+
+ - Omit the INIT_FILTER macro. Initialization should be done with just
+ regular designated initializers.
+
+ - Use start_offset = 257 for BCJ tests. It demonstrates that Filter
+ Flags encoder and decoder don't validate the options thoroughly.
+ 257 is valid only for the x86 filter. This is a bit silly but
+ not a significant problem in practice because the encoder and
+ decoder initialization functions will catch bad alignment still.
+ Perhaps this should be fixed but it's not urgent and doesn't need
+ to be in 5.4.x.
+
+ - Various tweaks to comments such as filter id -> Filter ID
+
+ tests/test_filter_flags.c | 153 +++++++++++++++++++++++-----------------------
+ 1 file changed, 78 insertions(+), 75 deletions(-)
+
+commit 6b44cead95d767414272dc3a67898a36bfdf95b3
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2022-12-29 23:33:33 +0800
+
+ Tests: Refactors existing filter flags tests.
+
+ Converts the existing filter flags tests into tuktests.
+
+ tests/test_filter_flags.c | 655 ++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 457 insertions(+), 198 deletions(-)
+
+commit 1bbefa9659b202ba31bd244a9d0e4f0d37ff3ed7
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2023-01-08 00:32:29 +0200
+
+ Tests: tuktest.h: Support tuktest_malloc(0).
+
+ It's not needed in XZ Utils at least for now. It's good to support
+ it still because if such use is needed later, it wouldn't be
+ caught on GNU/Linux since malloc(0) from glibc returns non-NULL.
+
+ tests/tuktest.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit ce3a3fbc7c2c399aeed644d54f3bd56ac914dfee
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2023-01-07 21:57:11 +0200
+
+ CMake: Update cmake_minimum_required from 3.13...3.16 to 3.13...3.25.
+
+ The changes listed on cmake-policies(7) for versions 3.17 to 3.25
+ shouldn't affect this project.
+
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 99fcd57f2ea35eaa94e09f674d5364329c880fa2
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2023-01-08 00:24:23 +0200
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit c0c13d9d82eb8a4302c8bbb8b4c5178d285fe9ab
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2023-01-07 19:50:35 +0200
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 3d45987451b1c3bb42697b29341824c0e5484cba
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2023-01-09 11:27:24 +0200
+
+ CMake: Fix a copypaste error in xzdec Windows resource file handling.
+
+ It was my mistake. Thanks to Iouri Kharon for the bug report.
+
+ CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 706bce5018d7cf83094e13454a0731169ec119b5
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2023-01-07 19:50:03 +0200
+
+ CMake/Windows: Add resource files to xz.exe and xzdec.exe.
+
+ The command line tools cannot be built with MSVC for now but
+ they can be built with MinGW-w64.
+
+ Thanks to Iouri Kharon for the bug report and the original patch.
+
+ CMakeLists.txt | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+commit e96dee55df04113c33b387ccdb6cb70935422d91
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2023-01-09 12:22:05 +0200
+
+ liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022).
+
+ I haven't tested with MSVC myself and there doesn't seem to be
+ information about the problem online, so I'm relying on the bug report.
+
+ Thanks to Iouri Kharon for the bug report and the patch.
+
+ src/liblzma/check/crc64_fast.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+commit 52bc1ee34dda9bb6fb40175e5952863066681b77
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2023-01-07 19:31:15 +0200
+
+ Build: Require that _mm_set_epi64x() is usable to enable CLMUL support.
+
+ VS2013 doesn't have _mm_set_epi64x() so this way CLMUL gets
+ disabled with VS2013.
+
+ Thanks to Iouri Kharon for the bug report.
+
+ CMakeLists.txt | 3 ++-
+ configure.ac | 8 ++++++--
+ 2 files changed, 8 insertions(+), 3 deletions(-)
+
+commit bad44cfe19e8be8ae76755369be2a34abcd2b4fa
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2022-12-29 00:25:18 +0800
+
+ Tests: Creates test_index_hash.c
+
+ Tests all API functions exported from index_hash.h. Does not have a
+ dedicated test for lzma_index_hash_end.
+
+ [Minor edits were made by Lasse Collin.]
+
+ .gitignore | 1 +
+ CMakeLists.txt | 2 +
+ tests/Makefile.am | 3 +
+ tests/test_index_hash.c | 388 ++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 394 insertions(+)
+
+commit 692ccdf5516dfe55fb6e9c5cdfb31f4c02c1ecd1
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2023-01-05 20:57:25 +0800
+
+ liblzma: Remove common.h include from common/index.h.
+
+ common/index.h is needed by liblzma internally and tests. common.h will
+ include and define many things that are not needed by the tests.
+
+ Also, this prevents include order problems because both common.h and
+ lzma.h define LZMA_API. On most platforms it results only in a warning
+ but on Windows it would break the build as the definition in common.h
+ must be used only for building liblzma itself.
+
+ src/liblzma/common/index.c | 1 +
+ src/liblzma/common/index.h | 9 +++++++--
+ src/liblzma/common/index_decoder.h | 1 +
+ src/liblzma/common/stream_buffer_encoder.c | 1 +
+ 4 files changed, 10 insertions(+), 2 deletions(-)
+
+commit 2ac7bafc8f07c1edefe96a4a7a040ddfff0eb5bb
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2022-08-17 20:20:16 +0800
+
+ liblzma: Add NULL check to lzma_index_hash_append.
+
+ This is for consistency with lzma_index_append.
+
+ src/liblzma/common/index_hash.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit db714d30e0c74d1dd4af1a23ed62b44e0e8e4efc
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2022-08-17 17:59:51 +0800
+
+ liblzma: Replaced hardcoded 0x0 index indicator byte with macro
+
+ src/liblzma/common/index.h | 3 +++
+ src/liblzma/common/index_decoder.c | 2 +-
+ src/liblzma/common/index_encoder.c | 2 +-
+ src/liblzma/common/index_hash.c | 2 +-
+ src/liblzma/common/stream_decoder.c | 3 ++-
+ src/liblzma/common/stream_decoder_mt.c | 2 +-
+ 6 files changed, 9 insertions(+), 5 deletions(-)
+
+commit 39d2585dcd3e827cfc3c46025ab6708c4aeb36c6
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2023-01-06 20:43:31 +0800
+
+ Style: Change #if !defined() to #ifndef in mythread.h.
+
+ src/common/mythread.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 3f0130aa288e4ed57ace609517db9700a41223af
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2023-01-06 20:35:55 +0800
+
+ Build: Add missing stream_decoder_mt.c to .vcxproj files.
+
+ The line in the .vcxproj files for building with was missing in 5.4.0.
+ Thank to Hajin Jang for reporting the issue.
+
+ windows/vs2013/liblzma.vcxproj | 1 +
+ windows/vs2013/liblzma_dll.vcxproj | 1 +
+ windows/vs2017/liblzma.vcxproj | 1 +
+ windows/vs2017/liblzma_dll.vcxproj | 1 +
+ windows/vs2019/liblzma.vcxproj | 1 +
+ windows/vs2019/liblzma_dll.vcxproj | 1 +
+ 6 files changed, 6 insertions(+)
+
+commit f204d1050a515d17851eed9049862ce5a9c729c1
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2023-01-04 22:40:54 +0200
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 34a9c2d650d6c30bd88e1b21910dd863209aa884
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2023-01-04 18:40:28 +0200
+
+ Tests: Adjust style in test_compress.sh.
+
+ tests/test_compress.sh | 12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
+
+commit 761c208d58e0c3daa0f46e68b406adfc318d2a46
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2023-01-04 23:58:58 +0800
+
+ Tests: Replace non portable shell parameter expansion
+
+ The shell parameter expansion using # and ## is not supported in
+ Solaris 10 Bourne shell (/bin/sh). Even though this is POSIX, it is not fully
+ portable, so we should avoid it.
+
+ tests/create_compress_files.c | 2 +-
+ tests/test_compress.sh | 20 +++++++++++++-------
+ tests/test_compress_prepared_bcj_sparc | 2 +-
+ tests/test_compress_prepared_bcj_x86 | 2 +-
+ 4 files changed, 16 insertions(+), 10 deletions(-)
+
+commit 8a7cbc074547e55e57f4f3696f69bedeb05e14c4
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2023-01-03 21:02:38 +0800
+
+ Translations: Add Korean translation of man pages.
+
+ Thanks to Seong-ho Cho
+
+ po4a/ko.po | 5552 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ po4a/po4a.conf | 2 +-
+ 2 files changed, 5553 insertions(+), 1 deletion(-)
+
+commit ca2af49bb8be5995eb0e6a3abf457622626d49a7
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2023-01-03 20:47:27 +0800
+
+ Translations: Update the Esperanto translation.
+
+ po/eo.po | 620 ++++++++++++++++++++++++++++++++++-----------------------------
+ 1 file changed, 332 insertions(+), 288 deletions(-)
+
+commit bfba3394aed03311fe9a746d3141b2e16d8b9325
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2023-01-02 17:05:07 +0200
+
+ Build: Fix config.h comments.
+
+ configure.ac | 2 +-
+ m4/tuklib_progname.m4 | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 507648ad114c2ae0cd6d181063e1ac07e8106718
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2023-01-02 22:33:48 +0800
+
+ Build: Only define HAVE_PROGRAM_INVOCATION_NAME if it is set to 1.
+
+ HAVE_DECL_PROGRAM_INVOCATION_NAME is renamed to
+ HAVE_PROGRAM_INVOCATION_NAME. Previously,
+ HAVE_DECL_PROGRAM_INVOCATION_NAME was always set when
+ building with autotools. CMake would only set this when it was 1, and the
+ dos/config.h did not define it. The new macro definition is consistent
+ across build systems.
+
+ cmake/tuklib_progname.cmake | 5 ++---
+ m4/tuklib_progname.m4 | 5 ++++-
+ src/common/tuklib_progname.c | 2 +-
+ src/common/tuklib_progname.h | 2 +-
+ 4 files changed, 8 insertions(+), 6 deletions(-)
+
+commit ab5229d32adfec1f3fbc95228d9dd6f560732ab5
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2022-12-30 20:10:08 +0200
+
+ Tests: test_check: Test corner cases of CLMUL CRC64.
+
+ tests/test_check.c | 27 +++++++++++++++++++++++++++
+ 1 file changed, 27 insertions(+)
+
+commit 8791826f31733fda0a13b411c2ed930faaeb25aa
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2022-12-30 19:36:49 +0200
+
+ Tests: Clarify a comment in test_lzip_decoder.c.
+
+ tests/test_lzip_decoder.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+commit c410d812ea12bfc74f6b727c1a799478c79f19ca
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2022-12-29 01:55:19 +0800
+
+ xz: Includes <time.h> and <sys/time.h> conditionally in mytime.c.
+
+ Previously, mytime.c depended on mythread.h for <time.h> to be included.
+
+ src/xz/mytime.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 501c6013d4a59fae5d4368e9657c4885493db809
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2022-12-29 01:15:27 +0800
+
+ liblzma: Includes sys/time.h conditionally in mythread
+
+ Previously, <sys/time.h> was always included, even if mythread only used
+ clock_gettime. <time.h> is still needed even if clock_gettime is not used
+ though because struct timespec is needed for mythread_condtime.
+
+ src/common/mythread.h | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+commit 9e3cb514b5b95bd235dcdff3db4436f57444ee4f
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2022-12-29 01:10:53 +0800
+
+ Build: No longer require HAVE_DECL_CLOCK_MONOTONIC to always be set.
+
+ Previously, if threading was enabled HAVE_DECL_CLOCK_MONOTONIC would always
+ be set to 0 or 1. However, this macro was needed in xz so if xz was not
+ built with threading and HAVE_DECL_CLOCK_MONOTONIC was not defined but
+ HAVE_CLOCK_GETTIME was, it caused a warning during build. Now,
+ HAVE_DECL_CLOCK_MONOTONIC has been renamed to HAVE_CLOCK_MONOTONIC and
+ will only be set if it is 1.
+
+ CMakeLists.txt | 8 +++-----
+ configure.ac | 5 ++++-
+ src/common/mythread.h | 4 ++--
+ src/xz/mytime.c | 5 ++---
+ 4 files changed, 11 insertions(+), 11 deletions(-)
+
+commit 6fc3e5467911572fa9af4021ea46396261aae796
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2022-12-28 01:14:07 +0800
+
+ Translations: Add Ukrainian translations of man pages.
+
+ Thanks to Yuri Chornoivan
+
+ po4a/po4a.conf | 2 +-
+ po4a/uk.po | 3676 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 3677 insertions(+), 1 deletion(-)
+
+commit e84f2ab7f8bc38cd8f8befa0bb398656c3c11f8e
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2022-12-22 23:14:53 +0800
+
+ liblzma: Update documentation for lzma_filter_encoder.
+
+ src/liblzma/common/filter_encoder.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+commit b14b8dbba9a3b232787ae218b46430b9246383dd
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2022-12-21 21:12:03 +0800
+
+ Tests: Adds lzip decoder tests
+
+ .gitignore | 1 +
+ tests/Makefile.am | 2 +
+ tests/test_lzip_decoder.c | 471 ++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 474 insertions(+)
+
+commit 09a114805e1d4f9a02a06cee7dbf2f5014d1f710
+Author: Jia Cheong Tan <jiat0218@gmail.com>
+Date: 2022-12-20 22:05:21 +0800
+
+ Doxygen: Update .gitignore for generating docs for in source build.
+
+ In source builds are not recommended, but we should still ignore
+ the generated artifacts.
+
+ .gitignore | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit d3e6fe44196bf9478ad193522e2b48febf2eca6b
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2022-12-20 20:46:44 +0800
+
+ liblzma: Fix lzma_microlzma_encoder() return value.
+
+ Using return_if_error on lzma_lzma_lclppb_encode was improper because
+ return_if_error is expecting an lzma_ret value, but
+ lzma_lzma_lclppb_encode returns a boolean. This could result in
+ lzma_microlzma_encoder, which would be misleading for applications.
+
+ src/liblzma/common/microlzma_encoder.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit b55a27b46f52524a4a8d9cdef03e6689cefc1375
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2022-12-16 18:30:02 +0200
+
+ liblzma: Update authors list in arm64.c.
+
+ src/liblzma/simple/arm64.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 2fd28d2b7cec3468324a6f15eff7e73c285b1d7d
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2022-12-16 20:58:55 +0800
+
+ CMake: Update .gitignore for CMake artifacts from in source build.
+
+ In source builds are not recommended, but we can make it easier
+ by ignoring the generated artifacts from CMake.
+
+ .gitignore | 23 +++++++++++++++++++++++
+ 1 file changed, 23 insertions(+)
+
commit b69da6d4bb6bb11fc0cf066920791990d2b22a06
Author: Lasse Collin <lasse.collin@tukaani.org>
Date: 2022-12-13 20:37:17 +0200
diff --git a/contrib/xz/THANKS b/contrib/xz/THANKS
index 94055dab7872..e7b62b33312f 100644
--- a/contrib/xz/THANKS
+++ b/contrib/xz/THANKS
@@ -30,6 +30,7 @@ has been important. :-) In alphabetical order:
- Vitaly Chikunov
- Antoine Cœur
- Gabi Davar
+ - İhsan Doğan
- Chris Donawa
- Andrew Dudman
- Markus Duft
@@ -56,10 +57,12 @@ has been important. :-) In alphabetical order:
- Peter Ivanov
- Nicholas Jackson
- Sam James
+ - Hajin Jang
- Jouk Jansen
- Jun I Jin
- Kiyoshi Kanazawa
- Per Øyvind Karlsen
+ - Iouri Kharon
- Thomas Klausner
- Richard Koch
- Ville Koskinen
diff --git a/contrib/xz/src/common/mythread.h b/contrib/xz/src/common/mythread.h
index 413821836020..37b5216b7c14 100644
--- a/contrib/xz/src/common/mythread.h
+++ b/contrib/xz/src/common/mythread.h
@@ -100,12 +100,18 @@ mythread_sigmask(int how, const sigset_t *restrict set,
// Using pthreads //
////////////////////
-#include <sys/time.h>
#include <pthread.h>
#include <signal.h>
#include <time.h>
#include <errno.h>
+// If clock_gettime() isn't available, use gettimeofday() from <sys/time.h>
+// as a fallback. gettimeofday() is in SUSv2 and thus is supported on all
+// relevant POSIX systems.
+#ifndef HAVE_CLOCK_GETTIME
+# include <sys/time.h>
+#endif
+
#define MYTHREAD_RET_TYPE void *
#define MYTHREAD_RET_VALUE NULL
@@ -219,8 +225,8 @@ static inline int
mythread_cond_init(mythread_cond *mycond)
{
#ifdef HAVE_CLOCK_GETTIME
- // NOTE: HAVE_DECL_CLOCK_MONOTONIC is always defined to 0 or 1.
-# if defined(HAVE_PTHREAD_CONDATTR_SETCLOCK) && HAVE_DECL_CLOCK_MONOTONIC
+# if defined(HAVE_PTHREAD_CONDATTR_SETCLOCK) && \
+ defined(HAVE_CLOCK_MONOTONIC)
struct timespec ts;
pthread_condattr_t condattr;
diff --git a/contrib/xz/src/common/sysdefs.h b/contrib/xz/src/common/sysdefs.h
index df7ecf400289..97be4ee380d0 100644
--- a/contrib/xz/src/common/sysdefs.h
+++ b/contrib/xz/src/common/sysdefs.h
@@ -127,7 +127,7 @@
#include <stdlib.h>
#include <assert.h>
-// Pre-C99 systems lack stdbool.h. All the code in LZMA Utils must be written
+// Pre-C99 systems lack stdbool.h. All the code in XZ Utils must be written
// so that it works with fake bool type, for example:
//
// bool foo = (flags & 0x100) != 0;
@@ -149,18 +149,8 @@ typedef unsigned char _Bool;
# define __bool_true_false_are_defined 1
#endif
-// string.h should be enough but let's include strings.h and memory.h too if
-// they exists, since that shouldn't do any harm, but may improve portability.
#include <string.h>
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-
-#ifdef HAVE_MEMORY_H
-# include <memory.h>
-#endif
-
// As of MSVC 2013, inline and restrict are supported with
// non-standard keywords.
#if defined(_WIN32) && defined(_MSC_VER)
diff --git a/contrib/xz/src/common/tuklib_progname.c b/contrib/xz/src/common/tuklib_progname.c
index 7cb7e203dd9d..e2ef4e555f35 100644
--- a/contrib/xz/src/common/tuklib_progname.c
+++ b/contrib/xz/src/common/tuklib_progname.c
@@ -14,7 +14,7 @@
#include <string.h>
-#if !HAVE_DECL_PROGRAM_INVOCATION_NAME
+#ifndef HAVE_PROGRAM_INVOCATION_NAME
char *progname = NULL;
#endif
diff --git a/contrib/xz/src/common/tuklib_progname.h b/contrib/xz/src/common/tuklib_progname.h
index 791b12517e59..bb80f25e0381 100644
--- a/contrib/xz/src/common/tuklib_progname.h
+++ b/contrib/xz/src/common/tuklib_progname.h
@@ -18,7 +18,7 @@
TUKLIB_DECLS_BEGIN
-#if HAVE_DECL_PROGRAM_INVOCATION_NAME
+#ifdef HAVE_PROGRAM_INVOCATION_NAME
# define progname program_invocation_name
#else
# define progname TUKLIB_SYMBOL(tuklib_progname)
diff --git a/contrib/xz/src/liblzma/api/lzma/version.h b/contrib/xz/src/liblzma/api/lzma/version.h
index 7d37130f240f..0dd90fc872a9 100644
--- a/contrib/xz/src/liblzma/api/lzma/version.h
+++ b/contrib/xz/src/liblzma/api/lzma/version.h
@@ -22,7 +22,7 @@
*/
#define LZMA_VERSION_MAJOR 5
#define LZMA_VERSION_MINOR 4
-#define LZMA_VERSION_PATCH 0
+#define LZMA_VERSION_PATCH 1
#define LZMA_VERSION_STABILITY LZMA_VERSION_STABILITY_STABLE
#ifndef LZMA_VERSION_COMMIT
diff --git a/contrib/xz/src/liblzma/check/crc64_fast.c b/contrib/xz/src/liblzma/check/crc64_fast.c
index e3cbf1b1e91d..db44633bfaf7 100644
--- a/contrib/xz/src/liblzma/check/crc64_fast.c
+++ b/contrib/xz/src/liblzma/check/crc64_fast.c
@@ -184,6 +184,20 @@ calc_hi(uint64_t poly, uint64_t a)
MASK_H(in, mask, high)
+// MSVC (VS2015 - VS2022) produces bad 32-bit x86 code from the CLMUL CRC
+// code when optimizations are enabled (release build). According to the bug
+// report, the ebx register is corrupted and the calculated result is wrong.
+// Trying to workaround the problem with "__asm mov ebx, ebx" didn't help.
+// The following pragma works and performance is still good. x86-64 builds
+// aren't affected by this problem.
+//
+// NOTE: Another pragma after the function restores the optimizations.
+// If the #if condition here is updated, the other one must be updated too.
+#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && !defined(__clang__) \
+ && defined(_M_IX86)
+# pragma optimize("g", off)
+#endif
+
// EDG-based compilers (Intel's classic compiler and compiler for E2K) can
// define __GNUC__ but the attribute must not be used with them.
// The new Clang-based ICX needs the attribute.
@@ -371,6 +385,10 @@ crc64_clmul(const uint8_t *buf, size_t size, uint64_t crc)
# pragma GCC diagnostic pop
#endif
}
+#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && !defined(__clang__) \
+ && defined(_M_IX86)
+# pragma optimize("", on)
+#endif
#endif
diff --git a/contrib/xz/src/liblzma/common/filter_encoder.c b/contrib/xz/src/liblzma/common/filter_encoder.c
index 978b7a6bb5b8..46fe8af1c153 100644
--- a/contrib/xz/src/liblzma/common/filter_encoder.c
+++ b/contrib/xz/src/liblzma/common/filter_encoder.c
@@ -37,9 +37,12 @@ typedef struct {
uint64_t (*block_size)(const void *options);
/// Tells the size of the Filter Properties field. If options are
- /// invalid, UINT32_MAX is returned. If this is NULL, props_size_fixed
- /// is used.
+ /// invalid, LZMA_OPTIONS_ERROR is returned and size is set to
+ /// UINT32_MAX.
lzma_ret (*props_size_get)(uint32_t *size, const void *options);
+
+ /// Some filters will always have the same size Filter Properties
+ /// field. If props_size_get is NULL, this value is used.
uint32_t props_size_fixed;
/// Encodes Filter Properties.
diff --git a/contrib/xz/src/liblzma/common/index.c b/contrib/xz/src/liblzma/common/index.c
index 24ec3c10c2e9..97cc9f953fae 100644
--- a/contrib/xz/src/liblzma/common/index.c
+++ b/contrib/xz/src/liblzma/common/index.c
@@ -10,6 +10,7 @@
//
///////////////////////////////////////////////////////////////////////////////
+#include "common.h"
#include "index.h"
#include "stream_flags_common.h"
diff --git a/contrib/xz/src/liblzma/common/index.h b/contrib/xz/src/liblzma/common/index.h
index 64e97247dd33..031efcc718f2 100644
--- a/contrib/xz/src/liblzma/common/index.h
+++ b/contrib/xz/src/liblzma/common/index.h
@@ -2,6 +2,13 @@
//
/// \file index.h
/// \brief Handling of Index
+/// \note This header file does not include common.h or lzma.h because
+/// this file is needed by both liblzma internally and by the
+/// tests. Including common.h will include and define many things
+/// the tests do not need and prevents issues with header file
+/// include order. This way, if lzma.h or common.h are not
+/// included before this file it will break on every OS instead
+/// of causing more subtle errors.
//
// Author: Lasse Collin
//
@@ -13,8 +20,6 @@
#ifndef LZMA_INDEX_H
#define LZMA_INDEX_H
-#include "common.h"
-
/// Minimum Unpadded Size
#define UNPADDED_SIZE_MIN LZMA_VLI_C(5)
@@ -22,6 +27,9 @@
/// Maximum Unpadded Size
#define UNPADDED_SIZE_MAX (LZMA_VLI_MAX & ~LZMA_VLI_C(3))
+/// Index Indicator based on xz specification
+#define INDEX_INDICATOR 0
+
/// Get the size of the Index Padding field. This is needed by Index encoder
/// and decoder, but applications should have no use for this.
diff --git a/contrib/xz/src/liblzma/common/index_decoder.c b/contrib/xz/src/liblzma/common/index_decoder.c
index b26898853381..8622b2f07704 100644
--- a/contrib/xz/src/liblzma/common/index_decoder.c
+++ b/contrib/xz/src/liblzma/common/index_decoder.c
@@ -80,7 +80,7 @@ index_decode(void *coder_ptr, const lzma_allocator *allocator,
// format". One could argue that the application should
// verify the Index Indicator before trying to decode the
// Index, but well, I suppose it is simpler this way.
- if (in[(*in_pos)++] != 0x00)
+ if (in[(*in_pos)++] != INDEX_INDICATOR)
return LZMA_DATA_ERROR;
coder->sequence = SEQ_COUNT;
diff --git a/contrib/xz/src/liblzma/common/index_decoder.h b/contrib/xz/src/liblzma/common/index_decoder.h
index 1af433b58b56..3fec483331a6 100644
--- a/contrib/xz/src/liblzma/common/index_decoder.h
+++ b/contrib/xz/src/liblzma/common/index_decoder.h
@@ -13,6 +13,7 @@
#ifndef LZMA_INDEX_DECODER_H
#define LZMA_INDEX_DECODER_H
+#include "common.h"
#include "index.h"
diff --git a/contrib/xz/src/liblzma/common/index_encoder.c b/contrib/xz/src/liblzma/common/index_encoder.c
index ac97d0cebf81..c7cafb72decc 100644
--- a/contrib/xz/src/liblzma/common/index_encoder.c
+++ b/contrib/xz/src/liblzma/common/index_encoder.c
@@ -65,7 +65,7 @@ index_encode(void *coder_ptr,
while (*out_pos < out_size)
switch (coder->sequence) {
case SEQ_INDICATOR:
- out[*out_pos] = 0x00;
+ out[*out_pos] = INDEX_INDICATOR;
++*out_pos;
coder->sequence = SEQ_COUNT;
break;
diff --git a/contrib/xz/src/liblzma/common/index_hash.c b/contrib/xz/src/liblzma/common/index_hash.c
index 34df85d72f94..f55f7bc8ff8f 100644
--- a/contrib/xz/src/liblzma/common/index_hash.c
+++ b/contrib/xz/src/liblzma/common/index_hash.c
@@ -145,7 +145,7 @@ lzma_index_hash_append(lzma_index_hash *index_hash, lzma_vli unpadded_size,
lzma_vli uncompressed_size)
{
// Validate the arguments.
- if (index_hash->sequence != SEQ_BLOCK
+ if (index_hash == NULL || index_hash->sequence != SEQ_BLOCK
|| unpadded_size < UNPADDED_SIZE_MIN
|| unpadded_size > UNPADDED_SIZE_MAX
|| uncompressed_size > LZMA_VLI_MAX)
@@ -190,7 +190,7 @@ lzma_index_hash_decode(lzma_index_hash *index_hash, const uint8_t *in,
switch (index_hash->sequence) {
case SEQ_BLOCK:
// Check the Index Indicator is present.
- if (in[(*in_pos)++] != 0x00)
+ if (in[(*in_pos)++] != INDEX_INDICATOR)
return LZMA_DATA_ERROR;
index_hash->sequence = SEQ_COUNT;
diff --git a/contrib/xz/src/liblzma/common/microlzma_encoder.c b/contrib/xz/src/liblzma/common/microlzma_encoder.c
index d3ef0632ddb3..a787ca25b839 100644
--- a/contrib/xz/src/liblzma/common/microlzma_encoder.c
+++ b/contrib/xz/src/liblzma/common/microlzma_encoder.c
@@ -111,7 +111,8 @@ microlzma_encoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
// Encode the properties byte. Bitwise-negation of it will be the
// first output byte.
- return_if_error(lzma_lzma_lclppb_encode(options, &coder->props));
+ if (lzma_lzma_lclppb_encode(options, &coder->props))
+ return LZMA_OPTIONS_ERROR;
// Initialize the LZMA encoder.
const lzma_filter_info filters[2] = {
diff --git a/contrib/xz/src/liblzma/common/stream_buffer_encoder.c b/contrib/xz/src/liblzma/common/stream_buffer_encoder.c
index af49554a6b0c..73157590e6f4 100644
--- a/contrib/xz/src/liblzma/common/stream_buffer_encoder.c
+++ b/contrib/xz/src/liblzma/common/stream_buffer_encoder.c
@@ -10,6 +10,7 @@
//
///////////////////////////////////////////////////////////////////////////////
+#include "common.h"
#include "index.h"
diff --git a/contrib/xz/src/liblzma/common/stream_decoder.c b/contrib/xz/src/liblzma/common/stream_decoder.c
index dcf7c1499f7e..64283812f29a 100644
--- a/contrib/xz/src/liblzma/common/stream_decoder.c
+++ b/contrib/xz/src/liblzma/common/stream_decoder.c
@@ -12,6 +12,7 @@
#include "stream_decoder.h"
#include "block_decoder.h"
+#include "index.h"
typedef struct {
@@ -164,7 +165,7 @@ stream_decode(void *coder_ptr, const lzma_allocator *allocator,
if (coder->pos == 0) {
// Detect if it's Index.
- if (in[*in_pos] == 0x00) {
+ if (in[*in_pos] == INDEX_INDICATOR) {
coder->sequence = SEQ_INDEX;
break;
}
diff --git a/contrib/xz/src/liblzma/common/stream_decoder_mt.c b/contrib/xz/src/liblzma/common/stream_decoder_mt.c
index 5733c764892d..fd5cd7fd280a 100644
--- a/contrib/xz/src/liblzma/common/stream_decoder_mt.c
+++ b/contrib/xz/src/liblzma/common/stream_decoder_mt.c
@@ -887,7 +887,7 @@ decode_block_header(struct lzma_stream_coder *coder,
if (coder->pos == 0) {
// Detect if it's Index.
- if (in[*in_pos] == 0x00)
+ if (in[*in_pos] == INDEX_INDICATOR)
return LZMA_INDEX_DETECTED;
// Calculate the size of the Block Header. Note that
diff --git a/contrib/xz/src/liblzma/simple/arm64.c b/contrib/xz/src/liblzma/simple/arm64.c
index 5e7f26562d5a..0fe0824eb931 100644
--- a/contrib/xz/src/liblzma/simple/arm64.c
+++ b/contrib/xz/src/liblzma/simple/arm64.c
@@ -14,6 +14,7 @@
//
// Authors: Lasse Collin
// Jia Tan
+// Igor Pavlov
//
// This file has been put into the public domain.
// You can do whatever you want with this file.
diff --git a/contrib/xz/src/xz/message.c b/contrib/xz/src/xz/message.c
index 4b5776568dd1..c54ebc5b5800 100644
--- a/contrib/xz/src/xz/message.c
+++ b/contrib/xz/src/xz/message.c
@@ -723,7 +723,16 @@ vmessage(enum message_verbosity v, const char *fmt, va_list ap)
// This is a translatable string because French needs
// a space before a colon.
fprintf(stderr, _("%s: "), progname);
+
+#ifdef __clang__
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Wformat-nonliteral"
+#endif
vfprintf(stderr, fmt, ap);
+#ifdef __clang__
+# pragma GCC diagnostic pop
+#endif
+
fputc('\n', stderr);
signals_unblock();
diff --git a/contrib/xz/src/xz/mytime.c b/contrib/xz/src/xz/mytime.c
index 70444001bdd7..7e8a074961f4 100644
--- a/contrib/xz/src/xz/mytime.c
+++ b/contrib/xz/src/xz/mytime.c
@@ -12,7 +12,9 @@
#include "private.h"
-#if !(defined(HAVE_CLOCK_GETTIME) && HAVE_DECL_CLOCK_MONOTONIC)
+#if defined(HAVE_CLOCK_GETTIME) && defined(HAVE_CLOCK_MONOTONIC)
+# include <time.h>
+#else
# include <sys/time.h>
#endif
@@ -28,8 +30,7 @@ static uint64_t next_flush;
static uint64_t
mytime_now(void)
{
- // NOTE: HAVE_DECL_CLOCK_MONOTONIC is always defined to 0 or 1.
-#if defined(HAVE_CLOCK_GETTIME) && HAVE_DECL_CLOCK_MONOTONIC
+#if defined(HAVE_CLOCK_GETTIME) && defined(HAVE_CLOCK_MONOTONIC)
// If CLOCK_MONOTONIC was available at compile time but for some
// reason isn't at runtime, fallback to CLOCK_REALTIME which
// according to POSIX is mandatory for all implementations.
diff --git a/contrib/xz/src/xz/suffix.c b/contrib/xz/src/xz/suffix.c
index 6bb35d4229f6..09add3817ebd 100644
--- a/contrib/xz/src/xz/suffix.c
+++ b/contrib/xz/src/xz/suffix.c
@@ -18,6 +18,9 @@
// For case-insensitive filename suffix on case-insensitive systems
#if defined(TUKLIB_DOSLIKE) || defined(__VMS)
+# ifdef HAVE_STRINGS_H
+# include <strings.h>
+# endif
# define strcmp strcasecmp
#endif
diff --git a/lib/liblzma/config.h b/lib/liblzma/config.h
index 7f9d3265c120..d88e3e105dad 100644
--- a/lib/liblzma/config.h
+++ b/lib/liblzma/config.h
@@ -53,22 +53,20 @@
/* Define to 1 if you have the `clock_gettime' function. */
#define HAVE_CLOCK_GETTIME 1
+/* Define to 1 if `CLOCK_MONOTONIC' is declared in <time.h>. */
+#define HAVE_CLOCK_MONOTONIC 1
+
/* Define to 1 if you have the <CommonCrypto/CommonDigest.h> header file. */
/* #undef HAVE_COMMONCRYPTO_COMMONDIGEST_H */
+/* Define to 1 if you have the <cpuid.h> header file. */
+#define HAVE_CPUID_H 1
+
/* Define if the GNU dcgettext() function is already present or preinstalled.
*/
/* FreeBSD - disabled intentionally */
/* #undef HAVE_DCGETTEXT */
-/* Define to 1 if you have the declaration of `CLOCK_MONOTONIC', and to 0 if
- you don't. */
-#define HAVE_DECL_CLOCK_MONOTONIC 1
-
-/* Define to 1 if you have the declaration of `program_invocation_name', and
- to 0 if you don't. */
-#define HAVE_DECL_PROGRAM_INVOCATION_NAME 0
-
/* Define to 1 if any of HAVE_DECODER_foo have been defined. */
#define HAVE_DECODERS 1
@@ -212,6 +210,9 @@
/* Define to 1 if you have the `posix_fadvise' function. */
#define HAVE_POSIX_FADVISE 1
+/* Define to 1 if `program_invocation_name' is declared in <errno.h>. */
+/* #undef HAVE_PROGRAM_INVOCATION_NAME */
+
/* Define to 1 if you have the `pthread_condattr_setclock' function. */
#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1
@@ -306,8 +307,8 @@
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
-/* Define to 1 if _mm_clmulepi64_si128 is usable. See configure.ac for
- details. */
+/* Define to 1 if _mm_set_epi64x and _mm_clmulepi64_si128 are usable. See
+ configure.ac for details. */
#if defined(__FreeBSD__) && defined(__amd64__)
#define HAVE_USABLE_CLMUL 1
#endif
@@ -374,7 +375,7 @@
#define PACKAGE_NAME "XZ Utils"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "XZ Utils 5.4.0"
+#define PACKAGE_STRING "XZ Utils 5.4.1"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "xz"
@@ -383,7 +384,7 @@
#define PACKAGE_URL "https://tukaani.org/xz/"
/* Define to the version of this package. */
-#define PACKAGE_VERSION "5.4.0"
+#define PACKAGE_VERSION "5.4.1"
/* Define to necessary symbol if this constant uses a non-standard name on
your system. */
@@ -544,7 +545,7 @@
/* Version number of package */
-#define VERSION "5.4.0"
+#define VERSION "5.4.1"
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */