MFV r273494: xz 5.0.7.
MFC after: 2 weeks
This commit is contained in:
commit
e08aa0528f
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=273498
6977
contrib/xz/ChangeLog
6977
contrib/xz/ChangeLog
File diff suppressed because it is too large
Load Diff
@ -20,6 +20,7 @@ has been important. :-) In alphabetical order:
|
|||||||
- Daniel Mealha Cabrita
|
- Daniel Mealha Cabrita
|
||||||
- Milo Casagrande
|
- Milo Casagrande
|
||||||
- Marek Černocký
|
- Marek Černocký
|
||||||
|
- Tomer Chachamu
|
||||||
- Chris Donawa
|
- Chris Donawa
|
||||||
- Andrew Dudman
|
- Andrew Dudman
|
||||||
- Markus Duft
|
- Markus Duft
|
||||||
|
@ -12,10 +12,6 @@ Known bugs
|
|||||||
it would be possible by switching from BT2/BT3/BT4 match finder to
|
it would be possible by switching from BT2/BT3/BT4 match finder to
|
||||||
HC3/HC4.
|
HC3/HC4.
|
||||||
|
|
||||||
The code to detect number of CPU cores doesn't count hyperthreading
|
|
||||||
as multiple cores. In context of xz, it probably should.
|
|
||||||
Hyperthreading is good at least with p7zip.
|
|
||||||
|
|
||||||
XZ Utils compress some files significantly worse than LZMA Utils.
|
XZ Utils compress some files significantly worse than LZMA Utils.
|
||||||
This is due to faster compression presets used by XZ Utils, and
|
This is due to faster compression presets used by XZ Utils, and
|
||||||
can often be worked around by using "xz --extreme". With some files
|
can often be worked around by using "xz --extreme". With some files
|
||||||
|
@ -318,6 +318,9 @@ extern LZMA_API(lzma_ret) lzma_block_header_encode(
|
|||||||
* The size of the Block Header must have already been decoded with
|
* The size of the Block Header must have already been decoded with
|
||||||
* lzma_block_header_size_decode() macro and stored to block->header_size.
|
* lzma_block_header_size_decode() macro and stored to block->header_size.
|
||||||
*
|
*
|
||||||
|
* The integrity check type from Stream Header must have been stored
|
||||||
|
* to block->check.
|
||||||
|
*
|
||||||
* block->filters must have been allocated, but they don't need to be
|
* block->filters must have been allocated, but they don't need to be
|
||||||
* initialized (possible existing filter options are not freed).
|
* initialized (possible existing filter options are not freed).
|
||||||
*
|
*
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
*/
|
*/
|
||||||
#define LZMA_VERSION_MAJOR 5
|
#define LZMA_VERSION_MAJOR 5
|
||||||
#define LZMA_VERSION_MINOR 0
|
#define LZMA_VERSION_MINOR 0
|
||||||
#define LZMA_VERSION_PATCH 5
|
#define LZMA_VERSION_PATCH 7
|
||||||
#define LZMA_VERSION_STABILITY LZMA_VERSION_STABILITY_STABLE
|
#define LZMA_VERSION_STABILITY LZMA_VERSION_STABILITY_STABLE
|
||||||
|
|
||||||
#ifndef LZMA_VERSION_COMMIT
|
#ifndef LZMA_VERSION_COMMIT
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
#include "crc_macros.h"
|
#include "crc_macros.h"
|
||||||
|
|
||||||
|
|
||||||
// If you make any changes, do some bench marking! Seemingly unrelated
|
// If you make any changes, do some benchmarking! Seemingly unrelated
|
||||||
// changes can very easily ruin the performance (and very probably is
|
// changes can very easily ruin the performance (and very probably is
|
||||||
// very compiler dependent).
|
// very compiler dependent).
|
||||||
extern LZMA_API(uint32_t)
|
extern LZMA_API(uint32_t)
|
||||||
|
@ -80,7 +80,7 @@ static const uint32_t SHA256_K[64] = {
|
|||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
transform(uint32_t state[static 8], const uint32_t data[static 16])
|
transform(uint32_t state[8], const uint32_t data[16])
|
||||||
{
|
{
|
||||||
uint32_t W[16];
|
uint32_t W[16];
|
||||||
uint32_t T[8];
|
uint32_t T[8];
|
||||||
|
@ -30,14 +30,16 @@ lzma_lzma_preset(lzma_options_lzma *options, uint32_t preset)
|
|||||||
options->lp = LZMA_LP_DEFAULT;
|
options->lp = LZMA_LP_DEFAULT;
|
||||||
options->pb = LZMA_PB_DEFAULT;
|
options->pb = LZMA_PB_DEFAULT;
|
||||||
|
|
||||||
options->dict_size = UINT32_C(1) << (uint8_t []){
|
static const uint8_t dict_pow2[]
|
||||||
18, 20, 21, 22, 22, 23, 23, 24, 25, 26 }[level];
|
= { 18, 20, 21, 22, 22, 23, 23, 24, 25, 26 };
|
||||||
|
options->dict_size = UINT32_C(1) << dict_pow2[level];
|
||||||
|
|
||||||
if (level <= 3) {
|
if (level <= 3) {
|
||||||
options->mode = LZMA_MODE_FAST;
|
options->mode = LZMA_MODE_FAST;
|
||||||
options->mf = level == 0 ? LZMA_MF_HC3 : LZMA_MF_HC4;
|
options->mf = level == 0 ? LZMA_MF_HC3 : LZMA_MF_HC4;
|
||||||
options->nice_len = level <= 1 ? 128 : 273;
|
options->nice_len = level <= 1 ? 128 : 273;
|
||||||
options->depth = (uint8_t []){ 4, 8, 24, 48 }[level];
|
static const uint8_t depths[] = { 4, 8, 24, 48 };
|
||||||
|
options->depth = depths[level];
|
||||||
} else {
|
} else {
|
||||||
options->mode = LZMA_MODE_NORMAL;
|
options->mode = LZMA_MODE_NORMAL;
|
||||||
options->mf = LZMA_MF_BT4;
|
options->mf = LZMA_MF_BT4;
|
||||||
|
@ -200,9 +200,9 @@ coder_set_compression_settings(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (memory_usage > memory_limit) {
|
if (memory_usage > memory_limit) {
|
||||||
// If --no-auto-adjust was used or we didn't find LZMA1 or
|
// If --no-adjust was used or we didn't find LZMA1 or
|
||||||
// LZMA2 as the last filter, give an error immediately.
|
// LZMA2 as the last filter, give an error immediately.
|
||||||
// --format=raw implies --no-auto-adjust.
|
// --format=raw implies --no-adjust.
|
||||||
if (!opt_auto_adjust || opt_format == FORMAT_RAW)
|
if (!opt_auto_adjust || opt_format == FORMAT_RAW)
|
||||||
memlimit_too_small(memory_usage);
|
memlimit_too_small(memory_usage);
|
||||||
|
|
||||||
|
@ -77,17 +77,19 @@ signals_init(void)
|
|||||||
sigaddset(&hooked_signals, message_progress_sigs[i]);
|
sigaddset(&hooked_signals, message_progress_sigs[i]);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
struct sigaction sa;
|
// Using "my_sa" because "sa" may conflict with a sockaddr variable
|
||||||
|
// from system headers on Solaris.
|
||||||
|
struct sigaction my_sa;
|
||||||
|
|
||||||
// All the signals that we handle we also blocked while the signal
|
// All the signals that we handle we also blocked while the signal
|
||||||
// handler runs.
|
// handler runs.
|
||||||
sa.sa_mask = hooked_signals;
|
my_sa.sa_mask = hooked_signals;
|
||||||
|
|
||||||
// Don't set SA_RESTART, because we want EINTR so that we can check
|
// Don't set SA_RESTART, because we want EINTR so that we can check
|
||||||
// for user_abort and cleanup before exiting. We block the signals
|
// for user_abort and cleanup before exiting. We block the signals
|
||||||
// for which we have established a handler when we don't want EINTR.
|
// for which we have established a handler when we don't want EINTR.
|
||||||
sa.sa_flags = 0;
|
my_sa.sa_flags = 0;
|
||||||
sa.sa_handler = &signal_handler;
|
my_sa.sa_handler = &signal_handler;
|
||||||
|
|
||||||
for (size_t i = 0; i < ARRAY_SIZE(sigs); ++i) {
|
for (size_t i = 0; i < ARRAY_SIZE(sigs); ++i) {
|
||||||
// If the parent process has left some signals ignored,
|
// If the parent process has left some signals ignored,
|
||||||
@ -98,7 +100,7 @@ signals_init(void)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Establish the signal handler.
|
// Establish the signal handler.
|
||||||
if (sigaction(sigs[i], &sa, NULL))
|
if (sigaction(sigs[i], &my_sa, NULL))
|
||||||
message_signal_handler();
|
message_signal_handler();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -232,7 +232,7 @@ suffix_set(const char *suffix)
|
|||||||
// Empty suffix and suffixes having a directory separator are
|
// Empty suffix and suffixes having a directory separator are
|
||||||
// rejected. Such suffixes would break things later.
|
// rejected. Such suffixes would break things later.
|
||||||
if (suffix[0] == '\0' || has_dir_sep(suffix))
|
if (suffix[0] == '\0' || has_dir_sep(suffix))
|
||||||
message_fatal(_("%s: Invalid filename suffix"), optarg);
|
message_fatal(_("%s: Invalid filename suffix"), suffix);
|
||||||
|
|
||||||
// Replace the old custom_suffix (if any) with the new suffix.
|
// Replace the old custom_suffix (if any) with the new suffix.
|
||||||
free(custom_suffix);
|
free(custom_suffix);
|
||||||
|
Loading…
Reference in New Issue
Block a user