View | Details | Raw Unified | Return to bug 46323
Collapse All | Expand All

(-)xz-5.2.5/AUTHORS (-4 / +16 lines)
Lines 3-23 Link Here
3
===================
3
===================
4
4
5
    XZ Utils is developed and maintained by Lasse Collin
5
    XZ Utils is developed and maintained by Lasse Collin
6
    <lasse.collin@tukaani.org>.
6
    <lasse.collin@tukaani.org> and Jia Tan <jiat0218@gmail.com>.
7
7
8
    Major parts of liblzma are based on code written by Igor Pavlov,
8
    Major parts of liblzma are based on code written by Igor Pavlov,
9
    specifically the LZMA SDK <http://7-zip.org/sdk.html>. Without
9
    specifically the LZMA SDK <https://7-zip.org/sdk.html>. Without
10
    this code, XZ Utils wouldn't exist.
10
    this code, XZ Utils wouldn't exist.
11
11
12
    The SHA-256 implementation in liblzma is based on the code found from
12
    The SHA-256 implementation in liblzma is based on the code found from
13
    7-Zip <http://7-zip.org/>, which has a modified version of the SHA-256
13
    7-Zip <https://7-zip.org/>, which has a modified version of the SHA-256
14
    code found from Crypto++ <http://www.cryptopp.com/>. The SHA-256 code
14
    code found from Crypto++ <https://www.cryptopp.com/>. The SHA-256 code
15
    in Crypto++ was written by Kevin Springle and Wei Dai.
15
    in Crypto++ was written by Kevin Springle and Wei Dai.
16
16
17
    Some scripts have been adapted from gzip. The original versions
17
    Some scripts have been adapted from gzip. The original versions
18
    were written by Jean-loup Gailly, Charles Levert, and Paul Eggert.
18
    were written by Jean-loup Gailly, Charles Levert, and Paul Eggert.
19
    Andrew Dudman helped adapting the scripts and their man pages for
19
    Andrew Dudman helped adapting the scripts and their man pages for
20
    XZ Utils.
20
    XZ Utils.
21
22
    The initial version of the threaded .xz decompressor was written
23
    by Sebastian Andrzej Siewior.
24
25
    The initial version of the .lz (lzip) decoder was written
26
    by Michał Górny.
27
28
    CLMUL-accelerated CRC code was contributed by Ilya Kurdyukov.
29
30
    Other authors:
31
      - Jonathan Nieder
32
      - Joachim Henke
21
33
22
    The GNU Autotools-based build system contains files from many authors,
34
    The GNU Autotools-based build system contains files from many authors,
23
    which I'm not trying to list here.
35
    which I'm not trying to list here.
(-)xz-5.2.5/COPYING (+11 lines)
Lines 21-26 Link Here
21
        XZ Utils specific documentation files in other directories
21
        XZ Utils specific documentation files in other directories
22
        are in the public domain.
22
        are in the public domain.
23
23
24
        Note: The JavaScript files (under the MIT license) have
25
        been removed from the Doxygen-generated HTML version of the
26
        liblzma API documentation. Doxygen itself is under the GNU GPL
27
        but the remaining files generated by Doxygen are not affected
28
        by the licenses used in Doxygen because Doxygen licensing has
29
        the following exception:
30
31
            "Documents produced by doxygen are derivative works
32
            derived from the input used in their production;
33
            they are not affected by this license."
34
24
      - Translated messages are in the public domain.
35
      - Translated messages are in the public domain.
25
36
26
      - The build system contains public domain files, and files that
37
      - The build system contains public domain files, and files that
(-)xz-5.2.5/COPYING.GPLv3 (-4 / +4 lines)
Lines 1-7 Link Here
1
                    GNU GENERAL PUBLIC LICENSE
1
                    GNU GENERAL PUBLIC LICENSE
2
                       Version 3, 29 June 2007
2
                       Version 3, 29 June 2007
3
3
4
 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
4
 Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
5
 Everyone is permitted to copy and distribute verbatim copies
5
 Everyone is permitted to copy and distribute verbatim copies
6
 of this license document, but changing it is not allowed.
6
 of this license document, but changing it is not allowed.
7
7
Lines 645-651 Link Here
645
    GNU General Public License for more details.
645
    GNU General Public License for more details.
646
646
647
    You should have received a copy of the GNU General Public License
647
    You should have received a copy of the GNU General Public License
648
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
648
    along with this program.  If not, see <https://www.gnu.org/licenses/>.
649
649
650
Also add information on how to contact you by electronic and paper mail.
650
Also add information on how to contact you by electronic and paper mail.
651
651
Lines 664-674 Link Here
664
  You should also get your employer (if you work as a programmer) or school,
664
  You should also get your employer (if you work as a programmer) or school,
665
if any, to sign a "copyright disclaimer" for the program, if necessary.
665
if any, to sign a "copyright disclaimer" for the program, if necessary.
666
For more information on this, and how to apply and follow the GNU GPL, see
666
For more information on this, and how to apply and follow the GNU GPL, see
667
<http://www.gnu.org/licenses/>.
667
<https://www.gnu.org/licenses/>.
668
668
669
  The GNU General Public License does not permit incorporating your program
669
  The GNU General Public License does not permit incorporating your program
670
into proprietary programs.  If your program is a subroutine library, you
670
into proprietary programs.  If your program is a subroutine library, you
671
may consider it more useful to permit linking proprietary applications with
671
may consider it more useful to permit linking proprietary applications with
672
the library.  If this is what you want to do, use the GNU Lesser General
672
the library.  If this is what you want to do, use the GNU Lesser General
673
Public License instead of this License.  But first, please read
673
Public License instead of this License.  But first, please read
674
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
674
<https://www.gnu.org/licenses/why-not-lgpl.html>.
(-)xz-5.2.5/ChangeLog (-4511 / +7750 lines)
Lines 1-6947 Link Here
1
commit 2327a461e1afce862c22269b80d3517801103c1b
1
commit 238b4e5458b4bd2cadefb768b8ea7c6b70a191ac
2
Author: Lasse Collin <lasse.collin@tukaani.org>
2
Author: Jia Tan <jiat0218@gmail.com>
3
Date:   2020-03-17 16:27:42 +0200
3
Date:   2023-05-04 20:38:52 +0800
4
4
5
    Bump version and soname for 5.2.5.
5
    Translations: Update the Croatian translation.
6
6
7
 po/hr.po | 6 +++---
8
 1 file changed, 3 insertions(+), 3 deletions(-)
9
10
commit 0cee63c3c6c4f9084a5e7fa7c15a1863ac8e5ffc
11
Author: Jia Tan <jiat0218@gmail.com>
12
Date:   2023-05-04 19:50:42 +0800
13
14
    Bump version and soname for 5.4.3.
15
7
 src/liblzma/Makefile.am        | 2 +-
16
 src/liblzma/Makefile.am        | 2 +-
8
 src/liblzma/api/lzma/version.h | 2 +-
17
 src/liblzma/api/lzma/version.h | 2 +-
9
 2 files changed, 2 insertions(+), 2 deletions(-)
18
 2 files changed, 2 insertions(+), 2 deletions(-)
10
19
11
commit 3be82d2f7dc882258caf0f0a69214e5916b2bdda
20
commit 01f937ea9a49005c5091c0165fa0c1e572dd1749
12
Author: Lasse Collin <lasse.collin@tukaani.org>
21
Author: Jia Tan <jiat0218@gmail.com>
13
Date:   2020-03-17 16:26:04 +0200
22
Date:   2023-05-02 20:39:56 +0800
14
23
15
    Update NEWS for 5.2.5.
24
    Add NEWS for 5.4.3.
16
25
17
 NEWS | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
26
 NEWS | 10 ++++++++++
18
 1 file changed, 105 insertions(+)
27
 1 file changed, 10 insertions(+)
19
28
20
commit ab3e57539c7337f0653b13b75dbc5d03ade9700e
29
commit e9b9ea953179502d5245b4e6ca4f5ffe9d5797b1
21
Author: Lasse Collin <lasse.collin@tukaani.org>
30
Author: Lasse Collin <lasse.collin@tukaani.org>
22
Date:   2020-03-16 21:57:21 +0200
31
Date:   2023-05-03 22:46:42 +0300
23
32
24
    Translations: Rebuild cs.po to avoid incorrect fuzzy strings.
33
    tuklib_integer.h: Fix a recent copypaste error in Clang detection.
25
    
34
    
26
    "make dist" updates the .po files and the fuzzy strings would
35
    Wrong line was changed in 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7.
27
    result in multiple very wrong translations.
36
    Also, this has >= instead of == since ints larger than 32 bits would
37
    work too even if not relevant in practice.
28
38
29
 po/cs.po | 592 ++++++++++++++++++++++++++++++++++-----------------------------
39
 src/common/tuklib_integer.h | 4 ++--
30
 1 file changed, 322 insertions(+), 270 deletions(-)
40
 1 file changed, 2 insertions(+), 2 deletions(-)
31
41
32
commit 3a6f38309dc5d44d8a63ebb337b6b2028561c93e
42
commit be6e39a8622f0d905072874ec25b1ffd155b12e1
33
Author: Lasse Collin <lasse.collin@tukaani.org>
43
Author: Jia Tan <jiat0218@gmail.com>
34
Date:   2020-03-16 20:01:37 +0200
44
Date:   2023-04-20 20:15:00 +0800
35
45
36
    README: Update outdated sections.
46
    Update THANKS.
37
47
38
 README | 21 +++++++++++----------
48
 THANKS | 1 +
39
 1 file changed, 11 insertions(+), 10 deletions(-)
49
 1 file changed, 1 insertion(+)
40
50
41
commit 9cc0901798217e258e91c13cf6fda7ad42ba108c
51
commit 9e343a46cf87a345799222c0b0b3a6f3358dde0c
42
Author: Lasse Collin <lasse.collin@tukaani.org>
52
Author: Jia Tan <jiat0218@gmail.com>
43
Date:   2020-03-16 19:46:27 +0200
53
Date:   2023-04-19 22:22:16 +0800
44
54
45
    README: Mention that translatable strings will change after 5.2.x.
55
    Windows: Include <intrin.h> when needed.
56
    
57
    Legacy Windows did not need to #include <intrin.h> to use the MSVC
58
    intrinsics. Newer versions likely just issue a warning, but the MSVC
59
    documentation says to include the header file for the intrinsics we use.
60
    
61
    GCC and Clang can "pretend" to be MSVC on Windows, so extra checks are
62
    needed in tuklib_integer.h to only include <intrin.h> when it will is
63
    actually needed.
46
64
47
 README | 74 +++---------------------------------------------------------------
65
 src/common/tuklib_integer.h    |  6 ++++++
48
 1 file changed, 3 insertions(+), 71 deletions(-)
66
 src/liblzma/common/memcmplen.h | 10 ++++++++++
67
 2 files changed, 16 insertions(+)
49
68
50
commit cc163574249f6a4a66f3dc09d6fe5a71bee24fab
69
commit 12321a9390acc076b414035a46df9d7545ac379f
51
Author: Lasse Collin <lasse.collin@tukaani.org>
70
Author: Jia Tan <jiat0218@gmail.com>
52
Date:   2020-03-16 19:39:45 +0200
71
Date:   2023-04-19 21:59:03 +0800
53
72
54
    README: Mention that man pages can be translated.
73
    tuklib_integer: Use __builtin_clz() with Clang.
74
    
75
    Clang has support for __builtin_clz(), but previously Clang would
76
    fallback to either the MSVC intrinsic or the regular C code. This was
77
    discovered due to a bug where a new version of Clang required the
78
    <intrin.h> header file in order to use the MSVC intrinsics.
79
    
80
    Thanks to Anton Kochkov for notifying us about the bug.
55
81
56
 README | 7 ++++---
82
 src/common/tuklib_integer.h | 6 +++---
57
 1 file changed, 4 insertions(+), 3 deletions(-)
83
 1 file changed, 3 insertions(+), 3 deletions(-)
58
84
59
commit ca261994edc3f2d03d5589c037171c63471ee9dc
85
commit d1f0e01c395960efd6c29ff144eda4f4c8c1c6d3
60
Author: Lasse Collin <lasse.collin@tukaani.org>
86
Author: Lasse Collin <lasse.collin@tukaani.org>
61
Date:   2020-03-16 17:30:39 +0200
87
Date:   2023-04-14 18:42:33 +0300
62
88
63
    Translations: Add partial Danish translation.
89
    liblzma: Update project maintainers in lzma.h.
64
    
90
    
65
    I made a few minor white space changes without getting them
91
    AUTHORS was updated earlier, lzma.h was simply forgotten.
66
    approved by the Danish translation team.
67
92
68
 po/LINGUAS |   1 +
93
 src/liblzma/api/lzma.h | 2 +-
69
 po/da.po   | 896 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
94
 1 file changed, 1 insertion(+), 1 deletion(-)
70
 2 files changed, 897 insertions(+)
71
95
72
commit 51cd5d051fc730d61411dee292e863582784e189
96
commit 8204c5d1304e1e3b7487801b4acaf8e3179a6c52
73
Author: Lasse Collin <lasse.collin@tukaani.org>
97
Author: Jia Tan <jiat0218@gmail.com>
74
Date:   2020-03-16 16:43:29 +0200
98
Date:   2023-04-13 20:45:19 +0800
75
99
76
    Update INSTALL.generic from Automake 1.16.1.
100
    liblzma: Cleans up old commented out code.
77
101
78
 INSTALL.generic | 321 ++++++++++++++++++++++++++++----------------------------
102
 src/liblzma/common/alone_encoder.c | 11 -----------
79
 1 file changed, 162 insertions(+), 159 deletions(-)
103
 1 file changed, 11 deletions(-)
80
104
81
commit 69d694e5f1beae2bbfa3b6c348ec0ec5f14b5cd0
105
commit 32980d1562bc031013306be1c787761fa63da87d
82
Author: Lasse Collin <lasse.collin@tukaani.org>
106
Author: Jia Tan <jiat0218@gmail.com>
83
Date:   2020-03-15 15:27:22 +0200
107
Date:   2023-03-28 22:32:40 +0800
84
108
85
    Update INSTALL for Windows and DOS and add preliminary info for z/OS.
109
    CMake: Update liblzma-config.cmake generation.
110
    
111
    Now that the threading is configurable, the liblzma CMake package only
112
    needs the threading library when using POSIX threads.
86
113
87
 INSTALL | 51 +++++++++++++++++++++++++++++++++++++++++----------
114
 CMakeLists.txt | 33 ++++++++++++++++++++++-----------
88
 1 file changed, 41 insertions(+), 10 deletions(-)
115
 1 file changed, 22 insertions(+), 11 deletions(-)
89
116
90
commit 2c3b1bb80a3ca7e09728fe4d7a1d8648a5cb9bca
117
commit 023907faa965476fb921a6344253c50e0ba795f9
91
Author: Lasse Collin <lasse.collin@tukaani.org>
118
Author: Jia Tan <jiat0218@gmail.com>
92
Date:   2020-03-15 15:26:20 +0200
119
Date:   2023-03-28 22:25:33 +0800
93
120
94
    Build: Update m4/ax_pthread.m4 from Autoconf Archive (again).
121
    CMake: Allows setting thread method.
122
    
123
    The thread method is now configurable for the CMake build. It matches
124
    the Autotools build by allowing ON (pick the best threading method),
125
    OFF (no threading), posix, win95, and vista. If both Windows and
126
    posix threading are both available, then ON will choose Windows
127
    threading. Windows threading will also not use:
128
    
129
    target_link_libraries(liblzma Threads::Threads)
130
    
131
    since on systems like MinGW-w64 it would link the posix threads
132
    without purpose.
95
133
96
 m4/ax_pthread.m4 | 219 +++++++++++++++++++++++++++++--------------------------
134
 CMakeLists.txt | 144 +++++++++++++++++++++++++++++++++++++++++----------------
97
 1 file changed, 117 insertions(+), 102 deletions(-)
135
 1 file changed, 104 insertions(+), 40 deletions(-)
98
136
99
commit 74a5af180a6a6c4b8c90cefb37ee900d3fea7dc6
137
commit ba176d77cbb164b13006516660fc1ff6c59dedb5
100
Author: Lasse Collin <lasse.collin@tukaani.org>
138
Author: Jia Tan <jiat0218@gmail.com>
101
Date:   2020-03-11 21:15:35 +0200
139
Date:   2023-03-24 20:05:59 +0800
102
140
103
    xz: Never use thousand separators in DJGPP builds.
141
    CMake: Only build xzdec if decoders are enabled.
104
    
105
    DJGPP 2.05 added support for thousands separators but it's
106
    broken at least under WinXP with Finnish locale that uses
107
    a non-breaking space as the thousands separator. Workaround
108
    by disabling thousands separators for DJGPP builds.
109
142
110
 src/xz/util.c | 14 ++++++++++++--
143
 CMakeLists.txt | 2 +-
111
 1 file changed, 12 insertions(+), 2 deletions(-)
144
 1 file changed, 1 insertion(+), 1 deletion(-)
112
145
113
commit ceba0d25e826bcdbf64bb4cb03385a2a66f8cbcb
146
commit c99d697df800e9bc47e09facf88bcfdb9e0264a5
114
Author: Lasse Collin <lasse.collin@tukaani.org>
147
Author: Jia Tan <jiat0218@gmail.com>
115
Date:   2020-03-11 19:38:08 +0200
148
Date:   2023-03-22 15:42:04 +0800
116
149
117
    DOS: Update dos/Makefile for DJGPP 2.05.
150
    Build: Removes redundant check for LZMA1 filter support.
118
    
119
    It doesn't need -fgnu89-inline like 2.04beta did.
120
151
121
 dos/Makefile | 4 +---
152
 src/liblzma/lzma/Makefile.inc | 5 +----
122
 1 file changed, 1 insertion(+), 3 deletions(-)
153
 1 file changed, 1 insertion(+), 4 deletions(-)
123
154
124
commit 29e5bd71612253281fb22bbaa0a566990a74dcc3
155
commit 54a2fd8c850e626343b79c4cc8fcac2f638ec890
125
Author: Lasse Collin <lasse.collin@tukaani.org>
156
Author: Lasse Collin <lasse.collin@tukaani.org>
126
Date:   2020-03-11 19:36:07 +0200
157
Date:   2023-03-23 15:14:29 +0200
127
158
128
    DOS: Update instructions in dos/INSTALL.txt.
159
    CMake: Bump maximum policy version to 3.26.
160
    
161
    It adds only one new policy related to FOLDERS which we don't use.
162
    This makes it clear that the code is compatible with the policies
163
    up to 3.26.
129
164
130
 dos/INSTALL.txt | 59 ++++++++++++++++++++++++++++-----------------------------
165
 CMakeLists.txt | 2 +-
131
 1 file changed, 29 insertions(+), 30 deletions(-)
166
 1 file changed, 1 insertion(+), 1 deletion(-)
132
167
133
commit 00a037ee9c8ee5a03cf9744e05570ae93d56b875
168
commit 622d0fdc02d5f565c2872d79bc70c669c95c8284
134
Author: Lasse Collin <lasse.collin@tukaani.org>
169
Author: Jia Tan <jiat0218@gmail.com>
135
Date:   2020-03-11 17:58:51 +0200
170
Date:   2023-03-21 23:36:00 +0800
136
171
137
    DOS: Update config.h.
172
    CMake: Conditionally build xz list.* files if decoders are enabled.
138
    
139
    The added defines assume GCC >= 4.8.
140
173
141
 dos/config.h | 8 ++++++++
174
 CMakeLists.txt | 9 +++++++--
142
 1 file changed, 8 insertions(+)
175
 1 file changed, 7 insertions(+), 2 deletions(-)
143
176
144
commit 4ec2feaefa310b4249eb41893caf526e5c51ee39
177
commit 3e2dc523c596cd770a6a7c58cacc0d0d8761e853
145
Author: Lasse Collin <lasse.collin@tukaani.org>
178
Author: Jia Tan <jiat0218@gmail.com>
146
Date:   2020-03-11 22:37:54 +0200
179
Date:   2023-02-25 11:46:50 +0800
147
180
148
    Translations: Add hu, zh_CN, and zh_TW.
181
    CMake: Allow configuring features as cache variables.
149
    
182
    
150
    I made a few white space changes to these without getting them
183
    This allows users to change the features they build either in
151
    approved by the translation teams. (I tried to contact the hu and
184
    CMakeCache.txt or by using a CMake GUI. The sources built for
152
    zh_TW teams but didn't succeed. I didn't contact the zh_CN team.)
185
    liblzma are affected by this too, so only the necessary files
186
    will be compiled.
153
187
154
 po/LINGUAS  |   3 +
188
 CMakeLists.txt | 528 ++++++++++++++++++++++++++++++++++++++++++---------------
155
 po/hu.po    | 985 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
189
 1 file changed, 391 insertions(+), 137 deletions(-)
156
 po/zh_CN.po | 963 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
157
 po/zh_TW.po | 956 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
158
 4 files changed, 2907 insertions(+)
159
190
160
commit b6ed09729ae408be4533a0ddbc7df3d6f566846a
191
commit 0c053f97337fa4ead77acefb577e8e86f8ef388d
161
Author: Lasse Collin <lasse.collin@tukaani.org>
192
Author: Lasse Collin <lasse.collin@tukaani.org>
162
Date:   2020-03-11 14:33:30 +0200
193
Date:   2023-03-21 14:07:51 +0200
163
194
164
    Translations: Update vi.po to match the file from the TP.
195
    Build: Add a comment that AC_PROG_CC_C99 is needed for Autoconf 2.69.
165
    
196
    
166
    The translated strings haven't been updated but word wrapping
197
    It's obsolete in Autoconf >= 2.70 and just an alias for AC_PROG_CC
167
    is different.
198
    but Autoconf 2.69 requires AC_PROG_CC_C99 to get a C99 compiler.
168
199
169
 po/vi.po | 407 ++++++++++++++++++++++++++++-----------------------------------
200
 configure.ac | 3 +++
170
 1 file changed, 179 insertions(+), 228 deletions(-)
201
 1 file changed, 3 insertions(+)
171
202
172
commit 7c85e8953ced204c858101872a15183e4639e9fb
203
commit 915d4f6058d52f84d2b58b0a5f3c8272eaa6c1bd
173
Author: Lasse Collin <lasse.collin@tukaani.org>
204
Author: Lasse Collin <lasse.collin@tukaani.org>
174
Date:   2020-03-11 14:18:03 +0200
205
Date:   2023-03-21 14:04:37 +0200
175
206
176
    Translations: Add fi and pt_BR, and update de, fr, it, and pl.
207
    Build: configure.ac: Use AS_IF and AS_CASE where required.
177
    
208
    
178
    The German translation isn't identical to the file in
209
    This makes no functional difference in the generated configure
179
    the Translation Project but the changes (white space changes
210
    (at least with the Autotools versions I have installed) but this
180
    only) were approved by the translator Mario Blättermann.
211
    change might prevent future bugs like the one that was just
212
    fixed in the commit 5a5bd7f871818029d5ccbe189f087f591258c294.
181
213
182
 po/LINGUAS  |    2 +
214
 configure.ac | 30 +++++++++++++++---------------
183
 po/de.po    |  476 ++++++++++++++--------------
215
 1 file changed, 15 insertions(+), 15 deletions(-)
184
 po/fi.po    |  974 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
185
 po/fr.po    |  272 ++++++++--------
186
 po/it.po    |  479 ++++++++++++----------------
187
 po/pl.po    |  239 +++++++-------
188
 po/pt_BR.po | 1001 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
189
 7 files changed, 2697 insertions(+), 746 deletions(-)
190
216
191
commit 7da3ebc67fb5414034685ec16c7a29dad03dfa9b
217
commit b848c039586ed2cddb6fb033680dac107cc5143f
192
Author: Lasse Collin <lasse.collin@tukaani.org>
218
Author: Lasse Collin <lasse.collin@tukaani.org>
193
Date:   2020-02-25 21:35:14 +0200
219
Date:   2023-03-21 13:12:03 +0200
194
220
195
    Update THANKS.
221
    Update THANKS.
196
222
197
 THANKS | 1 +
223
 THANKS | 1 +
198
 1 file changed, 1 insertion(+)
224
 1 file changed, 1 insertion(+)
199
225
200
commit 1acc48794364606c9091cae6fa56db75a1325114
226
commit c775ba1602a74f29dbc2088bbe4d02c23fc32ba1
201
Author: Lasse Collin <lasse.collin@tukaani.org>
227
Author: Lasse Collin <lasse.collin@tukaani.org>
202
Date:   2020-03-11 13:05:29 +0200
228
Date:   2023-03-21 13:11:49 +0200
203
229
204
    Build: Add very limited experimental CMake support.
230
    Build: Fix --disable-threads breaking the building of shared libs.
205
    
231
    
206
    This version matches CMake files in the master branch (commit
232
    This is broken in the releases 5.2.6 to 5.4.2. A workaround
207
    265daa873c0d871f5f23f9b56e133a6f20045a0a) except that this omits
233
    for these releases is to pass EGREP='grep -E' as an argument
208
    two source files that aren't in v5.2 and in the beginning of
234
    to configure in addition to --disable-threads.
209
    CMakeLists.txt the first paragraph in the comment is slightly
235
    
210
    different to point out possible issues in building shared liblzma.
236
    The problem appeared when m4/ax_pthread.m4 was updated in
237
    the commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad which
238
    introduced the use of AC_EGREP_CPP. AC_EGREP_CPP calls
239
    AC_REQUIRE([AC_PROG_EGREP]) to set the shell variable EGREP
240
    but this was only executed if POSIX threads were enabled.
241
    Libtool code also has AC_REQUIRE([AC_PROG_EGREP]) but Autoconf
242
    omits it as AC_PROG_EGREP has already been required earlier.
243
    Thus, if not using POSIX threads, the shell variable EGREP
244
    would be undefined in the Libtool code in configure.
245
    
246
    ax_pthread.m4 is fine. The bug was in configure.ac which called
247
    AX_PTHREAD conditionally in an incorrect way. Using AS_CASE
248
    ensures that all AC_REQUIREs get always run.
249
    
250
    Thanks to Frank Busse for reporting the bug.
251
    Fixes: https://github.com/tukaani-project/xz/issues/45
211
252
212
 CMakeLists.txt              | 659 ++++++++++++++++++++++++++++++++++++++++++++
253
 configure.ac | 16 ++++++++--------
213
 cmake/tuklib_common.cmake   |  49 ++++
254
 1 file changed, 8 insertions(+), 8 deletions(-)
214
 cmake/tuklib_cpucores.cmake | 175 ++++++++++++
215
 cmake/tuklib_integer.cmake  | 102 +++++++
216
 cmake/tuklib_mbstr.cmake    |  20 ++
217
 cmake/tuklib_physmem.cmake  | 150 ++++++++++
218
 cmake/tuklib_progname.cmake |  19 ++
219
 7 files changed, 1174 insertions(+)
220
255
221
commit 9acc6abea1552803c74c1486fbb10af119550772
256
commit 0673c9ec98b6bae12b33dc295564514aaa26e2fc
222
Author: Lasse Collin <lasse.collin@tukaani.org>
257
Author: Lasse Collin <lasse.collin@tukaani.org>
223
Date:   2020-02-27 20:24:27 +0200
258
Date:   2023-03-19 22:45:59 +0200
224
259
225
    Build: Add support for --no-po4a option to autogen.sh.
260
    liblzma: Silence -Wsign-conversion in SSE2 code in memcmplen.h.
226
    
261
    
227
    Normally, if po4a isn't available, autogen.sh will return
262
    Thanks to Christian Hesse for reporting the issue.
228
    with non-zero exit status. The option --no-po4a can be useful
263
    Fixes: https://github.com/tukaani-project/xz/issues/44
229
    when one knows that po4a isn't available but wants autogen.sh
230
    to still return with zero exit status.
231
264
232
 autogen.sh | 11 ++++++++++-
265
 src/liblzma/common/memcmplen.h | 3 ++-
233
 1 file changed, 10 insertions(+), 1 deletion(-)
266
 1 file changed, 2 insertions(+), 1 deletion(-)
234
267
235
commit c8853b31545db7bd0551be85949624b1261efd47
268
commit 6ca8046ecbc7a1c81ee08f544bfd1414819fb2e8
269
Author: Jia Tan <jiat0218@gmail.com>
270
Date:   2023-03-18 23:22:06 +0800
271
272
    Bump version and soname for 5.4.2.
273
274
 src/liblzma/Makefile.am        | 2 +-
275
 src/liblzma/api/lzma/version.h | 2 +-
276
 2 files changed, 2 insertions(+), 2 deletions(-)
277
278
commit ce4f246600db10e77fc93d492ea045b4c9830bc6
279
Author: Jia Tan <jiat0218@gmail.com>
280
Date:   2023-03-18 22:10:57 +0800
281
282
    Add NEWS for 5.4.2.
283
284
 NEWS | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
285
 1 file changed, 48 insertions(+)
286
287
commit 3634fe330788fc0df217acdb6581031a851600a3
236
Author: Lasse Collin <lasse.collin@tukaani.org>
288
Author: Lasse Collin <lasse.collin@tukaani.org>
237
Date:   2020-02-24 23:37:07 +0200
289
Date:   2023-03-18 16:00:54 +0200
238
290
239
    Update m4/.gitignore.
291
    Update the copy of GNU GPLv3 from gnu.org to COPYING.GPLv3.
240
292
241
 m4/.gitignore | 1 +
293
 COPYING.GPLv3 | 8 ++++----
242
 1 file changed, 1 insertion(+)
294
 1 file changed, 4 insertions(+), 4 deletions(-)
243
295
244
commit 901eb4a8c992354c3ea482f5bad60a1f8ad6fcc8
296
commit 97679d25ce7cb014328f1455bb338903c003d54f
245
Author: Lasse Collin <lasse.collin@tukaani.org>
297
Author: Lasse Collin <lasse.collin@tukaani.org>
246
Date:   2020-02-24 23:01:00 +0200
298
Date:   2023-03-18 15:51:57 +0200
247
299
248
    liblzma: Remove unneeded <sys/types.h> from fastpos_tablegen.c.
300
    Change a few HTTP URLs to HTTPS.
249
    
301
    
250
    This file only generates fastpos_table.c.
302
    The xz man page timestamp was intentionally left unchanged.
251
    It isn't built as a part of liblzma.
252
303
253
 src/liblzma/lzma/fastpos_tablegen.c | 1 -
304
 INSTALL                    |  2 +-
254
 1 file changed, 1 deletion(-)
305
 README                     |  8 ++++----
306
 configure.ac               |  2 +-
307
 dos/INSTALL.txt            |  4 ++--
308
 src/liblzma/api/lzma.h     |  8 ++++----
309
 src/liblzma/check/sha256.c |  2 +-
310
 src/xz/xz.1                |  2 +-
311
 windows/INSTALL-MinGW.txt  | 10 +++++-----
312
 8 files changed, 19 insertions(+), 19 deletions(-)
255
313
256
commit ac35c9585fb734b7a19785d490c152e0b8cd4663
314
commit 01a67e89a56c3ebf5f6681bd06f0edc22a1ae594
315
Author: Jia Tan <jiat0218@gmail.com>
316
Date:   2023-03-18 00:40:28 +0800
317
318
    CMake: Fix typo in a comment.
319
320
 CMakeLists.txt | 2 +-
321
 1 file changed, 1 insertion(+), 1 deletion(-)
322
323
commit 5dca3f5cbab31105196c89cd6df0a9bbc3307c05
257
Author: Lasse Collin <lasse.collin@tukaani.org>
324
Author: Lasse Collin <lasse.collin@tukaani.org>
258
Date:   2020-02-22 14:15:07 +0200
325
Date:   2023-03-17 18:36:22 +0200
259
326
260
    Use defined(__GNUC__) before __GNUC__ in preprocessor lines.
327
    Windows: build.bash: Copy liblzma API docs to the output package.
261
    
262
    This should silence the equivalent of -Wundef in compilers that
263
    don't define __GNUC__.
264
328
265
 src/common/sysdefs.h   | 3 ++-
329
 windows/build.bash | 3 ++-
266
 src/liblzma/api/lzma.h | 5 +++--
330
 1 file changed, 2 insertions(+), 1 deletion(-)
267
 2 files changed, 5 insertions(+), 3 deletions(-)
268
331
269
commit fb9cada7cfade1156d6277717280e05b5cd342d6
332
commit ae252862b30b509ab88b2bbcaa08e8d51b57e928
270
Author: Lasse Collin <lasse.collin@tukaani.org>
333
Author: Lasse Collin <lasse.collin@tukaani.org>
271
Date:   2020-02-21 17:40:02 +0200
334
Date:   2023-03-17 08:53:38 +0200
272
335
273
    liblzma: Add more uses of lzma_memcmplen() to the normal mode of LZMA.
336
    Windows: Add microlzma_*.c to the VS project files.
274
    
337
    
275
    This gives a tiny encoder speed improvement. This could have been done
338
    These should have been included in 5.3.2alpha already.
276
    in 2014 after the commit 544aaa3d13554e8640f9caf7db717a96360ec0f6 but
277
    it was forgotten.
278
339
279
 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 16 ++++++++++------
340
 windows/vs2013/liblzma.vcxproj     | 2 ++
280
 1 file changed, 10 insertions(+), 6 deletions(-)
341
 windows/vs2013/liblzma_dll.vcxproj | 2 ++
342
 windows/vs2017/liblzma.vcxproj     | 2 ++
343
 windows/vs2017/liblzma_dll.vcxproj | 2 ++
344
 windows/vs2019/liblzma.vcxproj     | 2 ++
345
 windows/vs2019/liblzma_dll.vcxproj | 2 ++
346
 6 files changed, 12 insertions(+)
281
347
282
commit 6117955af0b9cef5acde7859e86f773692b5f43c
348
commit 147d282cc3733e2723df82622b6540ddfb52635e
283
Author: Lasse Collin <lasse.collin@tukaani.org>
349
Author: Lasse Collin <lasse.collin@tukaani.org>
284
Date:   2020-02-21 17:01:15 +0200
350
Date:   2023-03-17 08:43:51 +0200
285
351
286
    Build: Add visibility.m4 from gnulib.
352
    CMake: Add microlzma_*.c to the build.
287
    
353
    
288
    Appears that this file used to get included as a side effect of
354
    These should have been included in 5.3.2alpha already.
289
    gettext. After the change to gettext version requirements this file
290
    no longer got copied to the package and so the build was broken.
291
355
292
 m4/.gitignore    |  1 -
356
 CMakeLists.txt | 2 ++
293
 m4/visibility.m4 | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
357
 1 file changed, 2 insertions(+)
294
 2 files changed, 77 insertions(+), 1 deletion(-)
295
358
296
commit c2cc64d78c098834231f9cfd7d852c9cd8950d74
359
commit 4523a5ee29f45c0256af67a15771bc8bbd25ba53
297
Author: Lasse Collin <lasse.collin@tukaani.org>
360
Author: Lasse Collin <lasse.collin@tukaani.org>
298
Date:   2020-02-21 16:10:44 +0200
361
Date:   2023-03-17 08:41:36 +0200
299
362
300
    xz: Silence a warning when sig_atomic_t is long int.
363
    Build: Update comments about unaligned access to mention 64-bit.
301
    
302
    It can be true at least on z/OS.
303
364
304
 src/xz/signals.c | 2 +-
365
 cmake/tuklib_integer.cmake | 7 +++----
305
 1 file changed, 1 insertion(+), 1 deletion(-)
366
 m4/tuklib_integer.m4       | 4 ++--
367
 2 files changed, 5 insertions(+), 6 deletions(-)
306
368
307
commit b6314aa275b35c714e0a191d0b2e9b6106129ea9
369
commit 82aacb40367dc580b09c5a7b270f6c98b63e49b9
308
Author: Lasse Collin <lasse.collin@tukaani.org>
370
Author: Lasse Collin <lasse.collin@tukaani.org>
309
Date:   2020-02-21 15:59:26 +0200
371
Date:   2023-03-17 00:02:30 +0200
310
372
311
    xz: Avoid unneeded access of a volatile variable.
373
    Tests: Update .gitignore.
312
374
313
 src/xz/signals.c | 2 +-
375
 .gitignore | 3 ++-
314
 1 file changed, 1 insertion(+), 1 deletion(-)
376
 1 file changed, 2 insertions(+), 1 deletion(-)
315
377
316
commit f772a1572f723e5dc7d2d32e1d4287ac7a0da55e
378
commit 5d022c24921eec938604a8cb10d70aa08dbd8575
317
Author: Lasse Collin <lasse.collin@tukaani.org>
379
Author: Lasse Collin <lasse.collin@tukaani.org>
318
Date:   2020-02-21 01:24:18 +0200
380
Date:   2023-03-14 20:04:03 +0200
319
381
320
    tuklib_integer.m4: Optimize the check order.
382
    po4a/update-po: Display the script name consistently in error messages.
383
384
 po4a/update-po | 2 +-
385
 1 file changed, 1 insertion(+), 1 deletion(-)
386
387
commit 896295117324f323c0b8db6a31ad6ebfaa88793d
388
Author: Jia Tan <jiat0218@gmail.com>
389
Date:   2023-03-17 01:30:36 +0800
390
391
    Doc: Rename Doxygen HTML doc directory name liblzma => api.
321
    
392
    
322
    The __builtin byteswapping is the preferred one so check for it first.
393
    When the docs are installed, calling the directory "liblzma" is
394
    confusing since multiple other files in the doc directory are for
395
    liblzma. This should also make it more natural for distros when they
396
    package the documentation.
323
397
324
 m4/tuklib_integer.m4 | 56 +++++++++++++++++++++++++++-------------------------
398
 .gitignore             |  2 +-
325
 1 file changed, 29 insertions(+), 27 deletions(-)
399
 Makefile.am            | 18 +++++++++---------
400
 PACKAGERS              |  4 ++--
401
 doxygen/Doxyfile       |  2 +-
402
 doxygen/update-doxygen | 18 +++++++++---------
403
 5 files changed, 22 insertions(+), 22 deletions(-)
326
404
327
commit 641042e63f665f3231c2fd1241fd3dddda3fb313
405
commit 94097157fae308b2c1a5edb4e8597c68b45eeaea
328
Author: Lasse Collin <lasse.collin@tukaani.org>
406
Author: Jia Tan <jiat0218@gmail.com>
329
Date:   2020-02-20 18:54:04 +0200
407
Date:   2023-03-16 22:07:15 +0800
330
408
331
    tuklib_exit: Add missing header.
409
    liblzma: Remove note from lzma_options_bcj about the ARM64 exception.
332
    
410
    
333
    strerror() needs <string.h> which happened to be included via
411
    This was left in by mistake since an early version of the ARM64 filter
334
    tuklib_common.h -> tuklib_config.h -> sysdefs.h if HAVE_CONFIG_H
412
    used a different struct for its options.
335
    was defined. This wasn't tested without config.h before so it
336
    had worked fine.
337
413
338
 src/common/tuklib_exit.c | 1 +
414
 src/liblzma/api/lzma/bcj.h | 2 +-
339
 1 file changed, 1 insertion(+)
415
 1 file changed, 1 insertion(+), 1 deletion(-)
340
416
341
commit dbd55a69e530fec9ae866aaf6c3ccc0b4daf1f1f
417
commit da16d0b73b79d7785ece6f78a577fadd1fb59d0e
342
Author: Lasse Collin <lasse.collin@tukaani.org>
418
Author: Lasse Collin <lasse.collin@tukaani.org>
343
Date:   2020-02-16 11:18:28 +0200
419
Date:   2023-03-15 19:19:13 +0200
344
420
345
    sysdefs.h: Omit the conditionals around string.h and limits.h.
421
    COPYING: Add a note about the included Doxygen-generated HTML.
422
423
 COPYING | 11 +++++++++++
424
 1 file changed, 11 insertions(+)
425
426
commit e57c74f9ef19201f72c106f2c347596f40229936
427
Author: Jia Tan <jiat0218@gmail.com>
428
Date:   2023-03-16 21:41:09 +0800
429
430
    Doc: Update PACKAGERS with details about liblzma API docs install.
431
432
 PACKAGERS | 22 ++++++++++++++++------
433
 1 file changed, 16 insertions(+), 6 deletions(-)
434
435
commit 7e2fa48bb73edb25457232e2e62a4f81c6b95281
436
Author: Jia Tan <jiat0218@gmail.com>
437
Date:   2023-03-16 21:38:32 +0800
438
439
    liblzma: Add set lzma.h as the main page for Doxygen documentation.
346
    
440
    
347
    string.h is used unconditionally elsewhere in the project and
441
    The \mainpage command is used in the first block of comments in lzma.h.
348
    configure has always stopped if limits.h is missing, so these
442
    This changes the previously nearly empty index.html to use the first
349
    headers must have been always available even on the weirdest
443
    comment block in lzma.h for its contents.
350
    systems.
444
    
445
    lzma.h is no longer documented separately, but this is for the better
446
    since lzma.h only defined a few macros that users do not need to use.
447
    The individual API header files all have a disclaimer that they should
448
    not be #included directly, so there should be no confusion on the fact
449
    that lzma.h should be the only header used by applications.
450
    
451
    Additionally, the note "See ../lzma.h for information about liblzma as
452
    a whole." was removed since lzma.h is now the main page of the
453
    generated HTML and does not have its own page anymore. So it would be
454
    confusing in the HTML version and was only a "nice to have" when
455
    browsing the source files.
351
456
352
 src/common/sysdefs.h | 8 ++------
457
 src/liblzma/api/lzma.h              | 1 +
353
 1 file changed, 2 insertions(+), 6 deletions(-)
458
 src/liblzma/api/lzma/base.h         | 2 --
459
 src/liblzma/api/lzma/bcj.h          | 2 --
460
 src/liblzma/api/lzma/block.h        | 2 --
461
 src/liblzma/api/lzma/check.h        | 2 --
462
 src/liblzma/api/lzma/container.h    | 2 --
463
 src/liblzma/api/lzma/delta.h        | 2 --
464
 src/liblzma/api/lzma/filter.h       | 2 --
465
 src/liblzma/api/lzma/hardware.h     | 2 --
466
 src/liblzma/api/lzma/index.h        | 2 --
467
 src/liblzma/api/lzma/index_hash.h   | 4 +---
468
 src/liblzma/api/lzma/lzma12.h       | 2 --
469
 src/liblzma/api/lzma/stream_flags.h | 2 --
470
 src/liblzma/api/lzma/version.h      | 2 --
471
 src/liblzma/api/lzma/vli.h          | 2 --
472
 15 files changed, 2 insertions(+), 29 deletions(-)
354
473
355
commit 9294909861e6d22b32418467e0e988f953a82264
474
commit d42977c7acfdf7fd9acc8803cf411eca7dc10478
356
Author: Lasse Collin <lasse.collin@tukaani.org>
475
Author: Jia Tan <jiat0218@gmail.com>
357
Date:   2020-02-15 15:07:11 +0200
476
Date:   2023-03-16 21:37:32 +0800
358
477
359
    Build: Bump Autoconf and Libtool version requirements.
478
    Build: Generate doxygen documentation in autogen.sh.
360
    
479
    
361
    There is no specific reason for this other than blocking
480
    Another command line option (--no-doxygen) was added to disable
362
    the most ancient versions. These are still old:
481
    creating the doxygen documenation in cases where it not wanted or
482
    if the doxygen tool is not installed.
483
484
 autogen.sh | 35 +++++++++++++++++++++++++++++------
485
 1 file changed, 29 insertions(+), 6 deletions(-)
486
487
commit 8fc712fcf41d821069c670f22b8bf628e7a4a877
488
Author: Jia Tan <jiat0218@gmail.com>
489
Date:   2023-03-16 21:35:55 +0800
490
491
    Build: Create doxygen/update-doxygen script.
363
    
492
    
364
    Autoconf 2.69 (2012)
493
    This is a helper script to generate the Doxygen documentation. It can be
365
    Automake 1.12 (2012)
494
    run in 'liblzma' or 'internal' mode by setting the first argument. It
366
    gettext 0.19.6 (2015)
495
    will default to 'liblzma' mode and only generate documentation for the
367
    Libtool 2.4 (2010)
496
    liblzma API header files.
497
    
498
    The helper script will be run during the custom mydist hook when we
499
    create releases. This hook already alters the source directory, so its
500
    fine to do it here too. This way, we can include the Doxygen generated
501
    files in the distrubtion and when installing.
502
    
503
    In 'liblzma' mode, the JavaScript is stripped from the .html files and
504
    the .js files are removed. This avoids license hassle from jQuery and
505
    other libraries that Doxygen 1.9.6 puts into jquery.js in minified form.
368
506
369
 configure.ac | 4 ++--
507
 Makefile.am            |   1 +
370
 1 file changed, 2 insertions(+), 2 deletions(-)
508
 doxygen/update-doxygen | 111 +++++++++++++++++++++++++++++++++++++++++++++++++
509
 2 files changed, 112 insertions(+)
371
510
372
commit bd09081bbdf552f730030d2fd0e5e39ccb3936af
511
commit 77d2c025d19fbac7277c63239cfb1338f02c66c0
373
Author: Lasse Collin <lasse.collin@tukaani.org>
512
Author: Jia Tan <jiat0218@gmail.com>
374
Date:   2020-02-15 03:08:32 +0200
513
Date:   2023-03-16 21:34:36 +0800
375
514
376
    Build: Use AM_GNU_GETTEXT_REQUIRE_VERSION and require 0.19.6.
515
    Build: Install Doxygen docs and include in distribution if generated.
377
    
516
    
378
    This bumps the version requirement from 0.19 (from 2014) to
517
    Added a install-data-local target to install the Doxygen documentation
379
    0.19.6 (2015).
518
    only when it has been generated. In order to correctly remove the docs,
519
    a corresponding uninstall-local target was added.
380
    
520
    
381
    Using only the old AM_GNU_GETTEXT_VERSION results in old
521
    If the doxygen docs exist in the source tree, they will also be included
382
    gettext infrastructure being placed in the package. By using
522
    in the distribution now too.
383
    both macros we get the latest gettext files while the other
384
    programs in the Autotools family can still see the old macro.
385
523
386
 configure.ac | 6 +++++-
524
 Makefile.am | 18 ++++++++++++++++++
387
 1 file changed, 5 insertions(+), 1 deletion(-)
525
 1 file changed, 18 insertions(+)
388
526
389
commit 1e5e08d86534aec7ca957982c7f6e90203c19e9f
527
commit 9af8f6f947a43974a4ff025f4c896f2fb4c91b4f
390
Author: Lasse Collin <lasse.collin@tukaani.org>
528
Author: Jia Tan <jiat0218@gmail.com>
391
Date:   2020-02-14 20:42:06 +0200
529
Date:   2023-01-03 20:37:30 +0800
392
530
393
    Translations: Add German translation of the man pages.
531
    Doxygen: Refactor Doxyfile.in to doxygen/Doxyfile.
394
    
532
    
395
    Thanks to Mario Blättermann.
533
    Instead of having Doxyfile.in configured by Autoconf, the Doxyfile
534
    can have the tags that need to be configured piped into the doxygen
535
    command through stdin with the overrides after Doxyfile's contents.
536
    
537
    Going forward, the documentation should be generated in two different
538
    modes: liblzma or internal.
539
    
540
    liblzma is useful for most users. It is the documentation for just
541
    the liblzma API header files. This is the default.
542
    
543
    internal is for people who want to understand how xz and liblzma work.
544
    It might be useful for people who want to contribute to the project.
396
545
397
 po4a/de.po     | 5532 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
546
 .gitignore       |    3 +-
398
 po4a/po4a.conf |    2 +-
547
 Doxyfile.in      | 1234 -------------------------
399
 2 files changed, 5533 insertions(+), 1 deletion(-)
548
 Makefile.am      |    1 -
549
 configure.ac     |    1 -
550
 doxygen/Doxyfile | 2684 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
551
 5 files changed, 2686 insertions(+), 1237 deletions(-)
400
552
401
commit 4b1447809ffbc0d77c0ad456bd6b3afcf0b8623e
553
commit 1c558a26928b753fcf1c0d4bce9c0643285edd86
554
Author: Jia Tan <jiat0218@gmail.com>
555
Date:   2023-02-28 23:22:36 +0800
556
557
    Tests: Remove unused macros and functions.
558
559
 tests/tests.h | 75 -----------------------------------------------------------
560
 1 file changed, 75 deletions(-)
561
562
commit 7479a69a45a1b8fdb9a209e11f247dce11ac1ba0
563
Author: Jia Tan <jiat0218@gmail.com>
564
Date:   2023-01-12 22:29:07 +0800
565
566
    Tests: Refactors existing lzma_index tests.
567
    
568
    Converts the existing lzma_index tests into tuktests and covers every
569
    API function from index.h except for lzma_file_info_decoder, which can
570
    be tested in the future.
571
572
 tests/test_index.c | 2036 ++++++++++++++++++++++++++++++++++++++--------------
573
 1 file changed, 1492 insertions(+), 544 deletions(-)
574
575
commit fd56d5353360279c10e8e5e05f5bc6ea03f64584
402
Author: Lasse Collin <lasse.collin@tukaani.org>
576
Author: Lasse Collin <lasse.collin@tukaani.org>
403
Date:   2020-02-07 15:32:21 +0200
577
Date:   2023-03-07 19:59:23 +0200
404
578
405
    Build: Add support for translated man pages using po4a.
579
    xz: Make Capsicum sandbox more strict with stdin and stdout.
580
581
 src/xz/file_io.c | 8 ++++++++
582
 1 file changed, 8 insertions(+)
583
584
commit d1bdaaebc68cae7f0ba457fa990b520df2186fd1
585
Author: Lasse Collin <lasse.collin@tukaani.org>
586
Date:   2023-03-11 19:31:40 +0200
587
588
    xz: Don't fail if Capsicum is enabled but kernel doesn't support it.
406
    
589
    
407
    The dependency on po4a is optional. It's never required to install
590
    (This commit combines related commits from the master branch.)
408
    the translated man pages when xz is built from a release tarball.
409
    If po4a is missing when building from xz.git, the translated man
410
    pages won't be generated but otherwise the build will work normally.
411
    
591
    
412
    The translations are only updated automatically by autogen.sh and
592
    If Capsicum support is missing from the kernel or xz is being run
413
    by "make mydist". This makes it easy to keep po4a as an optional
593
    in an emulator that lacks Capsicum suport, the syscalls will fail
414
    dependency and ensures that I won't forget to put updated
594
    and set errno to ENOSYS. Previously xz would display and error and
415
    translations to a release tarball.
595
    exit, making xz unusable. Now it will check for ENOSYS and run
596
    without sandbox support. Other tools like ssh behave similarly.
416
    
597
    
417
    The translated man pages aren't installed if --disable-nls is used.
598
    Displaying a warning for missing Capsicum support was considered
599
    but such extra output would quickly become annoying. It would also
600
    break test_scripts.sh in "make check".
418
    
601
    
419
    The installation of translated man pages abuses Automake internals
602
    Also move cap_enter() to be the first step instead of the last one.
420
    by calling "install-man" with redefined dist_man_MANS and man_MANS.
603
    This matches the example in the cap_rights_limit(2) man page. With
421
    This makes the hairy script code slightly less hairy. If it breaks
604
    the current code it shouldn't make any practical difference though.
422
    some day, this code needs to be fixed; don't blame Automake developers.
423
    
605
    
424
    Also, this adds more quotes to the existing shell script code in
606
    Thanks to Xin Li for the bug report, suggesting a fix, and testing:
425
    the Makefile.am "-hook"s.
607
    https://github.com/tukaani-project/xz/pull/43
608
    
609
    Thanks to Jia Tan for most of the original commits.
426
610
427
 Makefile.am             |  4 ++++
611
 src/xz/file_io.c | 15 ++++++++++++---
428
 autogen.sh              |  8 ++++---
612
 1 file changed, 12 insertions(+), 3 deletions(-)
429
 po4a/.gitignore         |  2 ++
430
 po4a/po4a.conf          | 14 +++++++++++
431
 po4a/update-po          | 45 ++++++++++++++++++++++++++++++++++
432
 src/scripts/Makefile.am | 64 +++++++++++++++++++++++++++++++++++++------------
433
 src/xz/Makefile.am      | 50 +++++++++++++++++++++++++++-----------
434
 src/xzdec/Makefile.am   | 55 ++++++++++++++++++++++++++++++++----------
435
 8 files changed, 197 insertions(+), 45 deletions(-)
436
613
437
commit 882fcfdcd86525cc5c6f6d0bf0230d0089206d13
614
commit 5d351c69c19d212ddd2cf1f3bdb24900820c6776
615
Author: Jia Tan <jiat0218@gmail.com>
616
Date:   2023-02-04 21:06:35 +0800
617
618
    Build: Adjust CMake version search regex.
619
    
620
    Now, the LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, and LZMA_VERSION_PATCH
621
    macros do not need to be on consecutive lines in version.h. They can be
622
    separated by more whitespace, comments, or even other content, as long
623
    as they appear in the proper order (major, minor, patch).
624
625
 CMakeLists.txt | 2 ++
626
 1 file changed, 2 insertions(+)
627
628
commit b82d4831e3f2339c4cdbc47776c99462088c11b7
629
Author: Jia Tan <jiat0218@gmail.com>
630
Date:   2023-01-26 09:50:21 +0800
631
632
    liblzma: Improve documentation for version.h.
633
    
634
    Specified parameter and return values for API functions and documented
635
    a few more of the macros.
636
637
 src/liblzma/api/lzma/version.h | 29 ++++++++++++++++++++++-------
638
 1 file changed, 22 insertions(+), 7 deletions(-)
639
640
commit 2caba3efe3e0c2d7c6dca00e22c56812326a34e6
641
Author: Jia Tan <jiat0218@gmail.com>
642
Date:   2023-02-24 23:46:23 +0800
643
644
    liblzma: Clarify lzma_lzma_preset() documentation in lzma12.h.
645
    
646
    lzma_lzma_preset() does not guarentee that the lzma_options_lzma are
647
    usable in an encoder even if it returns false (success). If liblzma
648
    is built with default configurations, then the options will always be
649
    usable. However if the match finders hc3, hc4, or bt4 are disabled, then
650
    the options may not be usable depending on the preset level requested.
651
    
652
    The documentation was updated to reflect this complexity, since this
653
    behavior was unclear before.
654
655
 src/liblzma/api/lzma/lzma12.h | 5 +++++
656
 1 file changed, 5 insertions(+)
657
658
commit 594f904673ba55a833adfa60bbab6b60d4902d08
438
Author: Lasse Collin <lasse.collin@tukaani.org>
659
Author: Lasse Collin <lasse.collin@tukaani.org>
439
Date:   2020-02-06 00:04:42 +0200
660
Date:   2023-02-27 18:38:35 +0200
440
661
441
    Update THANKS (sync with the master branch).
662
    CMake: Require that the C compiler supports C99 or a newer standard.
663
    
664
    Thanks to autoantwort for reporting the issue and suggesting
665
    a different patch:
666
    https://github.com/tukaani-project/xz/pull/42
442
667
443
 THANKS | 3 +++
668
 CMakeLists.txt | 8 ++++++++
444
 1 file changed, 3 insertions(+)
669
 1 file changed, 8 insertions(+)
445
670
446
commit 134bb7765815d5f265eb0bc9e6ebacd9ae4a52bc
671
commit 88101143cb774bca6b7006c8335b09dc3f334140
672
Author: Jia Tan <jiat0218@gmail.com>
673
Date:   2023-02-24 18:10:37 +0800
674
675
    Tests: Small tweak to test-vli.c.
676
    
677
    The static global variables can be disabled if encoders and decoders
678
    are not built. If they are not disabled and -Werror is used, it will
679
    cause an usused warning as an error.
680
681
 tests/test_vli.c | 2 ++
682
 1 file changed, 2 insertions(+)
683
684
commit 4042dbf03a06e019ccdd1e9d1b94cf613d62d5a9
685
Author: Jia Tan <jiat0218@gmail.com>
686
Date:   2023-02-06 21:46:43 +0800
687
688
    liblzma: Replace '\n' -> newline in filter.h documentation.
689
    
690
    The '\n' renders as a newline when the comments are converted to html
691
    by Doxygen.
692
693
 src/liblzma/api/lzma/filter.h | 2 +-
694
 1 file changed, 1 insertion(+), 1 deletion(-)
695
696
commit 3971f5c5024750ce8286891c6f79ae1661047483
697
Author: Jia Tan <jiat0218@gmail.com>
698
Date:   2023-02-06 21:45:37 +0800
699
700
    liblzma: Shorten return description for two functions in filter.h.
701
    
702
    Shorten the description for lzma_raw_encoder_memusage() and
703
    lzma_raw_decoder_memusage().
704
705
 src/liblzma/api/lzma/filter.h | 8 ++------
706
 1 file changed, 2 insertions(+), 6 deletions(-)
707
708
commit 5e61b39432752b6cd1a7b518f0f9e4f0c3f0f242
709
Author: Jia Tan <jiat0218@gmail.com>
710
Date:   2023-02-06 21:44:45 +0800
711
712
    liblzma: Reword a few lines in filter.h
713
714
 src/liblzma/api/lzma/filter.h | 10 +++++-----
715
 1 file changed, 5 insertions(+), 5 deletions(-)
716
717
commit 8a53533869defa1191b41f176a0312cb53a139e2
718
Author: Jia Tan <jiat0218@gmail.com>
719
Date:   2023-02-06 21:35:06 +0800
720
721
    liblzma: Improve documentation in filter.h.
722
    
723
    All functions now explicitly specify parameter and return values.
724
    The notes and code annotations were moved before the parameter and
725
    return value descriptions for consistency.
726
    
727
    Also, the description above lzma_filter_encoder_is_supported() about
728
    not being able to list available filters was removed since
729
    lzma_str_list_filters() will do this.
730
731
 src/liblzma/api/lzma/filter.h | 226 ++++++++++++++++++++++++++----------------
732
 1 file changed, 143 insertions(+), 83 deletions(-)
733
734
commit 6d05b08b17ac8cb93165ee8f310fdd925b0b258f
447
Author: Lasse Collin <lasse.collin@tukaani.org>
735
Author: Lasse Collin <lasse.collin@tukaani.org>
448
Date:   2020-02-05 22:35:06 +0200
736
Date:   2023-02-23 20:46:16 +0200
449
737
450
    Update tests/.gitignore.
738
    Update THANKS.
451
739
452
 .gitignore | 4 ++++
740
 THANKS | 1 +
453
 1 file changed, 4 insertions(+)
741
 1 file changed, 1 insertion(+)
454
742
455
commit 6912472fafb656be8f4c5b4ac9ea28fea3065de4
743
commit dfc9a54082e0fc7b3b796ea15336b5075acc79d5
456
Author: Lasse Collin <lasse.collin@tukaani.org>
744
Author: Lasse Collin <lasse.collin@tukaani.org>
457
Date:   2020-02-05 22:28:51 +0200
745
Date:   2023-02-21 22:57:10 +0200
458
746
459
    Update m4/.gitignore.
747
    liblzma: Avoid null pointer + 0 (undefined behavior in C).
748
    
749
    In the C99 and C17 standards, section 6.5.6 paragraph 8 means that
750
    adding 0 to a null pointer is undefined behavior. As of writing,
751
    "clang -fsanitize=undefined" (Clang 15) diagnoses this. However,
752
    I'm not aware of any compiler that would take advantage of this
753
    when optimizing (Clang 15 included). It's good to avoid this anyway
754
    since compilers might some day infer that pointer arithmetic implies
755
    that the pointer is not NULL. That is, the following foo() would then
756
    unconditionally return 0, even for foo(NULL, 0):
757
    
758
        void bar(char *a, char *b);
759
    
760
        int foo(char *a, size_t n)
761
        {
762
            bar(a, a + n);
763
            return a == NULL;
764
        }
765
    
766
    In contrast to C, C++ explicitly allows null pointer + 0. So if
767
    the above is compiled as C++ then there is no undefined behavior
768
    in the foo(NULL, 0) call.
769
    
770
    To me it seems that changing the C standard would be the sane
771
    thing to do (just add one sentence) as it would ensure that a huge
772
    amount of old code won't break in the future. Based on web searches
773
    it seems that a large number of codebases (where null pointer + 0
774
    occurs) are being fixed instead to be future-proof in case compilers
775
    will some day optimize based on it (like making the above foo(NULL, 0)
776
    return 0) which in the worst case will cause security bugs.
777
    
778
    Some projects don't plan to change it. For example, gnulib and thus
779
    many GNU tools currently require that null pointer + 0 is defined:
780
    
781
        https://lists.gnu.org/archive/html/bug-gnulib/2021-11/msg00000.html
782
    
783
        https://www.gnu.org/software/gnulib/manual/html_node/Other-portability-assumptions.html
784
    
785
    In XZ Utils null pointer + 0 issue should be fixed after this
786
    commit. This adds a few if-statements and thus branches to avoid
787
    null pointer + 0. These check for size > 0 instead of ptr != NULL
788
    because this way bugs where size > 0 && ptr == NULL will likely
789
    get caught quickly. None of them are in hot spots so it shouldn't
790
    matter for performance.
791
    
792
    A little less readable version would be replacing
793
    
794
        ptr + offset
795
    
796
    with
797
    
798
        offset != 0 ? ptr + offset : ptr
799
    
800
    or creating a macro for it:
801
    
802
        #define my_ptr_add(ptr, offset) \
803
                ((offset) != 0 ? ((ptr) + (offset)) : (ptr))
804
    
805
    Checking for offset != 0 instead of ptr != NULL allows GCC >= 8.1,
806
    Clang >= 7, and Clang-based ICX to optimize it to the very same code
807
    as ptr + offset. That is, it won't create a branch. So for hot code
808
    this could be a good solution to avoid null pointer + 0. Unfortunately
809
    other compilers like ICC 2021 or MSVC 19.33 (VS2022) will create a
810
    branch from my_ptr_add().
811
    
812
    Thanks to Marcin Kowalczyk for reporting the problem:
813
    https://github.com/tukaani-project/xz/issues/36
460
814
461
 m4/.gitignore | 1 +
815
 src/liblzma/common/block_decoder.c |  5 ++++-
816
 src/liblzma/common/block_encoder.c |  7 +++++--
817
 src/liblzma/common/common.c        | 20 ++++++++++++++------
818
 src/liblzma/common/index_decoder.c | 13 ++++++++++---
819
 src/liblzma/common/index_encoder.c | 11 +++++++++--
820
 src/liblzma/common/index_hash.c    | 13 ++++++++++---
821
 src/liblzma/common/lzip_decoder.c  |  6 +++++-
822
 src/liblzma/delta/delta_decoder.c  |  7 ++++++-
823
 src/liblzma/delta/delta_encoder.c  | 12 ++++++++++--
824
 src/liblzma/simple/simple_coder.c  |  6 ++++--
825
 10 files changed, 77 insertions(+), 23 deletions(-)
826
827
commit f6dce49cb656b358e2fb2a3032e35e20af34dc84
828
Author: Jia Tan <jiat0218@gmail.com>
829
Date:   2023-02-07 00:00:44 +0800
830
831
    liblzma: Adjust container.h for consistency with filter.h.
832
833
 src/liblzma/api/lzma/container.h | 20 +++++++++-----------
834
 1 file changed, 9 insertions(+), 11 deletions(-)
835
836
commit 173d240bb4763aedc8c01df4d9c83e311d954c33
837
Author: Jia Tan <jiat0218@gmail.com>
838
Date:   2023-02-07 00:00:09 +0800
839
840
    liblzma: Fix small typos and reword a few things in filter.h.
841
842
 src/liblzma/api/lzma/container.h | 13 ++++++-------
843
 1 file changed, 6 insertions(+), 7 deletions(-)
844
845
commit 17797bacde3f7264048ef0976c137a600148d6cf
846
Author: Jia Tan <jiat0218@gmail.com>
847
Date:   2023-02-06 23:42:08 +0800
848
849
    liblzma: Convert list of flags in lzma_mt to bulleted list.
850
851
 src/liblzma/api/lzma/container.h | 9 ++++++---
852
 1 file changed, 6 insertions(+), 3 deletions(-)
853
854
commit 37da0e727161b401b8bfd8dccf163a4b2fc0460b
855
Author: Jia Tan <jiat0218@gmail.com>
856
Date:   2023-01-26 23:17:41 +0800
857
858
    liblzma: Fix typo in documentation in container.h
859
    
860
    lzma_microlzma_decoder -> lzma_microlzma_encoder
861
862
 src/liblzma/api/lzma/container.h | 2 +-
863
 1 file changed, 1 insertion(+), 1 deletion(-)
864
865
commit b8331077c626e6bf14f4671d09b561146eaf816a
866
Author: Jia Tan <jiat0218@gmail.com>
867
Date:   2023-01-26 23:16:34 +0800
868
869
    liblzma: Improve documentation for container.h
870
    
871
    Standardizing each function to always specify parameters and return
872
    values. Also moved the parameters and return values to the end of each
873
    function description.
874
875
 src/liblzma/api/lzma/container.h | 146 +++++++++++++++++++++++++--------------
876
 1 file changed, 93 insertions(+), 53 deletions(-)
877
878
commit b9a3511bb61d3b6ce49abd33dce6155a573f5272
879
Author: Jia Tan <jiat0218@gmail.com>
880
Date:   2023-02-22 20:59:41 +0800
881
882
    CMake: Add LZIP decoder test to list of tests.
883
884
 CMakeLists.txt | 1 +
462
 1 file changed, 1 insertion(+)
885
 1 file changed, 1 insertion(+)
463
886
464
commit 68c60735bbb6e51d4205ba8a9fde307bcfb22f8c
887
commit cd82ef2fb48b174c57cd03b84a9a0f978772cb89
465
Author: Lasse Collin <lasse.collin@tukaani.org>
888
Author: Lasse Collin <lasse.collin@tukaani.org>
466
Date:   2020-02-05 20:47:38 +0200
889
Date:   2023-02-17 20:56:49 +0200
467
890
468
    Update THANKS.
891
    Update THANKS.
469
892
470
 THANKS | 1 +
893
 THANKS | 1 +
471
 1 file changed, 1 insertion(+)
894
 1 file changed, 1 insertion(+)
472
895
473
commit e1beaa74bc7cb5a409d59b55870e01ae7784ce3a
896
commit 076e911ba25cadf2cbdfbd0f65991a002e210c0b
474
Author: Lasse Collin <lasse.collin@tukaani.org>
897
Author: Lasse Collin <lasse.collin@tukaani.org>
475
Date:   2020-02-05 20:33:50 +0200
898
Date:   2023-02-17 20:48:28 +0200
476
899
477
    xz: Comment out annoying sandboxing messages.
900
    Build: Use only the generic symbol versioning on MicroBlaze.
901
    
902
    On MicroBlaze, GCC 12 is broken in sense that
903
    __has_attribute(__symver__) returns true but it still doesn't
904
    support the __symver__ attribute even though the platform is ELF
905
    and symbol versioning is supported if using the traditional
906
    __asm__(".symver ...") method. Avoiding the traditional method is
907
    good because it breaks LTO (-flto) builds with GCC.
908
    
909
    See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766
910
    
911
    For now the only extra symbols in liblzma_linux.map are the
912
    compatibility symbols with the patch that spread from RHEL/CentOS 7.
913
    These require the use of __symver__ attribute or __asm__(".symver ...")
914
    in the C code. Compatibility with the patch from CentOS 7 doesn't
915
    seem valuable on MicroBlaze so use liblzma_generic.map on MicroBlaze
916
    instead. It doesn't require anything special in the C code and thus
917
    no LTO issues either.
918
    
919
    An alternative would be to detect support for __symver__
920
    attribute in configure.ac and CMakeLists.txt and fall back
921
    to __asm__(".symver ...") but then LTO would be silently broken
922
    on MicroBlaze. It sounds likely that MicroBlaze is a special
923
    case so let's treat it as a such because that is simpler. If
924
    a similar issue exists on some other platform too then hopefully
925
    someone will report it and this can be reconsidered.
926
    
927
    (This doesn't do the same fix in CMakeLists.txt. Perhaps it should
928
    but perhaps CMake build of liblzma doesn't matter much on MicroBlaze.
929
    The problem breaks the build so it's easy to notice and can be fixed
930
    later.)
931
    
932
    Thanks to Vincent Fazio for reporting the problem and proposing
933
    a patch (in the end that solution wasn't used):
934
    https://github.com/tukaani-project/xz/pull/32
478
935
479
 src/xz/file_io.c | 10 +++++++---
936
 configure.ac | 12 ++++++++++--
480
 1 file changed, 7 insertions(+), 3 deletions(-)
937
 1 file changed, 10 insertions(+), 2 deletions(-)
481
938
482
commit 8238192652290df78bd728b20e3f6542d1a2819e
939
commit bc34e5ac9996667d2c1ec9a7895ec5931ac4caea
483
Author: Lasse Collin <lasse.collin@tukaani.org>
940
Author: Lasse Collin <lasse.collin@tukaani.org>
484
Date:   2020-02-05 19:33:37 +0200
941
Date:   2023-02-16 21:09:00 +0200
485
942
486
    Build: Workaround a POSIX shell detection problem on Solaris.
943
    liblzma: Very minor API doc tweaks.
487
    
944
    
488
    I don't know if the problem is in gnulib's gl_POSIX_SHELL macro
945
    Use "member" to refer to struct members as that's the term used
489
    or if xzgrep does something that isn't in POSIX. The workaround
946
    by the C standard.
490
    adds a special case for Solaris: if /usr/xpg4/bin/sh exists and
947
    
491
    gl_cv_posix_shell wasn't overriden on the configure command line,
948
    Use lzma_options_delta.dist and such in docs so that in Doxygen's
492
    use that shell for xzgrep and other scripts. That shell is known
949
    HTML output they will link to the doc of the struct member.
493
    to work and exists on most Solaris systems.
950
    
951
    Clean up a few trailing white spaces too.
494
952
495
 configure.ac | 10 ++++++++++
953
 src/liblzma/api/lzma/block.h        |  6 +++---
496
 1 file changed, 10 insertions(+)
954
 src/liblzma/api/lzma/delta.h        |  6 +++---
955
 src/liblzma/api/lzma/index.h        | 10 +++++-----
956
 src/liblzma/api/lzma/stream_flags.h |  6 +++---
957
 4 files changed, 14 insertions(+), 14 deletions(-)
497
958
498
commit 93a1f61e892e145607dd938e3b30098af19a1672
959
commit d31fbd28be5b79eb682db50004b0fb7aad5299ec
499
Author: Lasse Collin <lasse.collin@tukaani.org>
960
Author: Jia Tan <jiat0218@gmail.com>
500
Date:   2020-02-03 22:03:50 +0200
961
Date:   2023-02-17 00:54:33 +0800
501
962
502
    Build: Update m4/ax_pthread.m4 from Autoconf Archive.
963
    liblzma: Adjust spacing in doc headers in bcj.h.
503
964
504
 m4/ax_pthread.m4 | 398 ++++++++++++++++++++++++++++++++++++++-----------------
965
 src/liblzma/api/lzma/bcj.h | 14 +++++++-------
505
 1 file changed, 279 insertions(+), 119 deletions(-)
966
 1 file changed, 7 insertions(+), 7 deletions(-)
506
967
507
commit d0daa21792ff861e5423bbd82aaa6c8ba9fa0462
968
commit 701e9be6bede19771895f756082db0c017f86f07
969
Author: Jia Tan <jiat0218@gmail.com>
970
Date:   2023-02-17 00:44:44 +0800
971
972
    liblzma: Adjust documentation in bcj.h for consistent style.
973
974
 src/liblzma/api/lzma/bcj.h | 43 ++++++++++++++++++++++---------------------
975
 1 file changed, 22 insertions(+), 21 deletions(-)
976
977
commit 762c4d0b62d2694cf3a01e030fdfe68e09e7b503
978
Author: Jia Tan <jiat0218@gmail.com>
979
Date:   2023-02-17 00:36:05 +0800
980
981
    liblzma: Rename field => member in documentation.
982
    
983
    Also adjusted preset value => preset level.
984
985
 src/liblzma/api/lzma/base.h         | 18 +++++++--------
986
 src/liblzma/api/lzma/block.h        | 44 ++++++++++++++++++-------------------
987
 src/liblzma/api/lzma/container.h    | 26 +++++++++++-----------
988
 src/liblzma/api/lzma/delta.h        | 12 +++++-----
989
 src/liblzma/api/lzma/index.h        | 30 ++++++++++++-------------
990
 src/liblzma/api/lzma/lzma12.h       | 28 +++++++++++------------
991
 src/liblzma/api/lzma/stream_flags.h | 32 +++++++++++++--------------
992
 7 files changed, 95 insertions(+), 95 deletions(-)
993
994
commit 0ce1db0223854d94b4a0d17737ac0486a75d9e6a
508
Author: Lasse Collin <lasse.collin@tukaani.org>
995
Author: Lasse Collin <lasse.collin@tukaani.org>
509
Date:   2020-02-01 19:56:18 +0200
996
Date:   2023-02-16 17:59:50 +0200
510
997
511
    xz: Limit --memlimit-compress to at most 4020 MiB for 32-bit xz.
998
    liblzma: Silence a warning from MSVC.
512
    
999
    
513
    See the code comment for reasoning. It's far from perfect but
1000
    It gives C4146 here since unary minus with unsigned integer
514
    hopefully good enough for certain cases while hopefully doing
1001
    is still unsigned (which is the intention here). Doing it
515
    nothing bad in other situations.
1002
    with substraction makes it clearer and avoids the warning.
516
    
1003
    
517
    At presets -5 ... -9, 4020 MiB vs. 4096 MiB makes no difference
1004
    Thanks to Nathan Moinvaziri for reporting this.
518
    on how xz scales down the number of threads.
1005
1006
 src/liblzma/check/crc64_fast.c | 2 +-
1007
 1 file changed, 1 insertion(+), 1 deletion(-)
1008
1009
commit d83da006b3e8dbad9112e6cde6b27049d193c9ec
1010
Author: Jia Tan <jiat0218@gmail.com>
1011
Date:   2023-02-16 21:04:54 +0800
1012
1013
    liblzma: Improve documentation for stream_flags.h
519
    
1014
    
520
    The limit has to be a few MiB below 4096 MiB because otherwise
1015
    Standardizing each function to always specify parameters and return
521
    things like "xz --lzma2=dict=500MiB" won't scale down the dict
1016
    values. Also moved the parameters and return values to the end of each
522
    size enough and xz cannot allocate enough memory. With
1017
    function description.
523
    "ulimit -v $((4096 * 1024))" on x86-64, the limit in xz had
524
    to be no more than 4085 MiB. Some safety margin is good though.
525
    
1018
    
526
    This is hack but it should be useful when running 32-bit xz on
1019
    A few small things were reworded and long sentences broken up.
527
    a 64-bit kernel that gives full 4 GiB address space to xz.
1020
528
    Hopefully this is enough to solve this:
1021
 src/liblzma/api/lzma/stream_flags.h | 76 ++++++++++++++++++++++---------------
1022
 1 file changed, 46 insertions(+), 30 deletions(-)
1023
1024
commit 2796bb4736f645d34939b5d62d5958f534e41e69
1025
Author: Jia Tan <jiat0218@gmail.com>
1026
Date:   2023-02-14 21:50:16 +0800
1027
1028
    liblzma: Improve documentation in lzma12.h.
529
    
1029
    
530
    https://bugzilla.redhat.com/show_bug.cgi?id=1196786
1030
    All functions now explicitly specify parameter and return values.
1031
1032
 src/liblzma/api/lzma/lzma12.h | 32 +++++++++++++++++++++++---------
1033
 1 file changed, 23 insertions(+), 9 deletions(-)
1034
1035
commit ebebaa8d9381afea440eb1b01917117551adf68f
1036
Author: Jia Tan <jiat0218@gmail.com>
1037
Date:   2023-01-27 22:44:06 +0800
1038
1039
    liblzma: Improve documentation in check.h.
531
    
1040
    
532
    FreeBSD has a patch that limits the result in tuklib_physmem()
1041
    All functions now explicitly specify parameter and return values.
533
    to SIZE_MAX on 32-bit systems. While I think it's not the way
1042
    Also moved the note about SHA-256 functions not being exported to the
534
    to do it, the results on --memlimit-compress have been good. This
1043
    top of the file.
535
    commit should achieve practically identical results for compression
536
    while leaving decompression and tuklib_physmem() and thus
537
    lzma_physmem() unaffected.
538
1044
539
 src/xz/hardware.c | 32 +++++++++++++++++++++++++++++++-
1045
 src/liblzma/api/lzma/check.h | 41 ++++++++++++++++++++++++++++-------------
540
 src/xz/xz.1       | 21 ++++++++++++++++++++-
1046
 1 file changed, 28 insertions(+), 13 deletions(-)
541
 2 files changed, 51 insertions(+), 2 deletions(-)
542
1047
543
commit 4433c2dc5727ee6aef570e001a5a024e0d94e609
1048
commit 765fa2865aab97ea713c1715922e322b3cf599a7
544
Author: Lasse Collin <lasse.collin@tukaani.org>
1049
Author: Jia Tan <jiat0218@gmail.com>
545
Date:   2020-01-26 20:53:25 +0200
1050
Date:   2023-02-08 21:33:52 +0800
546
1051
547
    xz: Set the --flush-timeout deadline when the first input byte arrives.
1052
    liblzma: Improve documentation in index.h
548
    
1053
    
549
    xz --flush-timeout=2000, old version:
1054
    All functions now explicitly specify parameter and return values.
1055
1056
 src/liblzma/api/lzma/index.h | 177 ++++++++++++++++++++++++++++++-------------
1057
 1 file changed, 126 insertions(+), 51 deletions(-)
1058
1059
commit 918e208af5960728b6def01e692b395f7d8e3701
1060
Author: Jia Tan <jiat0218@gmail.com>
1061
Date:   2023-02-08 20:35:32 +0800
1062
1063
    liblzma: Reword a comment in index.h.
1064
1065
 src/liblzma/api/lzma/index.h | 4 ++--
1066
 1 file changed, 2 insertions(+), 2 deletions(-)
1067
1068
commit 1f157d214bc09338876d2467b549935679abc0bf
1069
Author: Jia Tan <jiat0218@gmail.com>
1070
Date:   2023-02-08 20:30:23 +0800
1071
1072
    liblzma: Omit lzma_index_iter's internal field from Doxygen docs.
550
    
1073
    
551
      1. xz is started. The next flush will happen after two seconds.
1074
    Add \private above this field and its sub-fields since it is not meant
552
      2. No input for one second.
1075
    to be modified by users.
553
      3. A burst of a few kilobytes of input.
1076
554
      4. No input for one second.
1077
 src/liblzma/api/lzma/index.h | 9 ++++++++-
555
      5. Two seconds have passed and flushing starts.
1078
 1 file changed, 8 insertions(+), 1 deletion(-)
1079
1080
commit 28757fa46d8e0f0a9c17628b2b6af9bcb3cd96fc
1081
Author: Jia Tan <jiat0218@gmail.com>
1082
Date:   2023-01-21 21:32:03 +0800
1083
1084
    liblzma: Fix documentation for LZMA_MEMLIMIT_ERROR.
556
    
1085
    
557
    The first second counted towards the flush-timeout even though
1086
    LZMA_MEMLIMIT_ERROR was missing the "<" character needed to put
558
    there was no pending data. This can cause flushing to occur more
1087
    documentation after a member.
559
    often than needed.
1088
1089
 src/liblzma/api/lzma/base.h | 2 +-
1090
 1 file changed, 1 insertion(+), 1 deletion(-)
1091
1092
commit 135d5a1a65a9e199b9a5550c1f788cf43cd81018
1093
Author: Jia Tan <jiat0218@gmail.com>
1094
Date:   2023-01-21 00:29:38 +0800
1095
1096
    liblzma: Improve documentation for base.h.
560
    
1097
    
561
    xz --flush-timeout=2000, after this commit:
1098
    Standardizing each function to always specify params and return values.
1099
    Also fixed a small grammar mistake.
1100
1101
 src/liblzma/api/lzma/base.h | 30 +++++++++++++++++++++++++-----
1102
 1 file changed, 25 insertions(+), 5 deletions(-)
1103
1104
commit 2287d5668384e289d51e72724997dc920483768e
1105
Author: Jia Tan <jiat0218@gmail.com>
1106
Date:   2023-02-14 00:08:33 +0800
1107
1108
    liblzma: Minor improvements to vli.h.
562
    
1109
    
563
      1. xz is started.
1110
    Added [out] annotations to parameters that are pointers and can have
564
      2. No input for one second.
1111
    their value changed. Also added a clarification to lzma_vli_is_valid.
565
      3. A burst of a few kilobytes of input. The next flush will
566
         happen after two seconds counted from the time when the
567
         first bytes of the burst were read.
568
      4. No input for one second.
569
      5. No input for another second.
570
      6. Two seconds have passed and flushing starts.
571
1112
572
 src/xz/coder.c   | 6 +-----
1113
 src/liblzma/api/lzma/vli.h | 15 ++++++++-------
573
 src/xz/file_io.c | 6 +++++-
1114
 1 file changed, 8 insertions(+), 7 deletions(-)
574
 src/xz/mytime.c  | 1 -
575
 3 files changed, 6 insertions(+), 7 deletions(-)
576
1115
577
commit acc0ef3ac80f18e349c6d0252177707105c0a29c
1116
commit 7124b8a16ae60cb2e93218ff531868eebd673bde
578
Author: Lasse Collin <lasse.collin@tukaani.org>
1117
Author: Jia Tan <jiat0218@gmail.com>
579
Date:   2020-01-26 20:19:19 +0200
1118
Date:   2023-02-10 21:38:02 +0800
580
1119
581
    xz: Move flush_needed from mytime.h to file_pair struct in file_io.h.
1120
    liblzma: Add comments for macros in delta.h.
1121
    
1122
    Document LZMA_DELTA_DIST_MIN and LZMA_DELTA_DIST_MAX for completeness
1123
    and to avoid Doxygen warnings.
582
1124
583
 src/xz/coder.c   | 3 ++-
1125
 src/liblzma/api/lzma/delta.h | 8 ++++++++
584
 src/xz/file_io.c | 3 ++-
1126
 1 file changed, 8 insertions(+)
585
 src/xz/file_io.h | 3 +++
586
 src/xz/mytime.c  | 3 ---
587
 src/xz/mytime.h  | 4 ----
588
 5 files changed, 7 insertions(+), 9 deletions(-)
589
1127
590
commit 4afe69d30b66812682a2016ee18441958019cbb2
1128
commit 59c7bb8931159fdb1a31bbbeaed0e6984e2d3c81
591
Author: Lasse Collin <lasse.collin@tukaani.org>
1129
Author: Jia Tan <jiat0218@gmail.com>
592
Date:   2020-01-26 14:49:22 +0200
1130
Date:   2023-02-10 21:35:23 +0800
593
1131
594
    xz: coder.c: Make writing output a separate function.
1132
    liblzma: Improve documentation in index_hash.h.
595
    
1133
    
596
    The same code sequence repeats so it's nicer as a separate function.
1134
    All functions now explicitly specify parameter and return values.
597
    Note that in one case there was no test for opt_mode != MODE_TEST,
1135
    Also reworded the description of lzma_index_hash_init() for readability.
598
    but that was only because that condition would always be true, so
599
    this commit doesn't change the behavior there.
600
1136
601
 src/xz/coder.c | 30 +++++++++++++++++-------------
1137
 src/liblzma/api/lzma/index_hash.h | 36 +++++++++++++++++++++++++++---------
602
 1 file changed, 17 insertions(+), 13 deletions(-)
1138
 1 file changed, 27 insertions(+), 9 deletions(-)
603
1139
604
commit ec26f3ace5f9b260ca91508030f07465ae2f9f78
1140
commit e970c28ac3cb2e8051925f81db2fe953664c2645
605
Author: Lasse Collin <lasse.collin@tukaani.org>
1141
Author: Jia Tan <jiat0218@gmail.com>
606
Date:   2020-01-26 14:13:42 +0200
1142
Date:   2023-02-03 00:33:32 +0800
607
1143
608
    xz: Fix semi-busy-waiting in xz --flush-timeout.
1144
    liblzma: Fix bug in lzma_str_from_filters() not checking filters[] length.
609
    
1145
    
610
    When input blocked, xz --flush-timeout=1 would wake up every
1146
    The bug is only a problem in applications that do not properly terminate
611
    millisecond and initiate flushing which would have nothing to
1147
    the filters[] array with LZMA_VLI_UNKNOWN or have more than
612
    flush and thus would just waste CPU time. The fix disables the
1148
    LZMA_FILTERS_MAX filters. This bug does not affect xz.
613
    timeout when no input has been seen since the previous flush.
614
1149
615
 src/xz/coder.c   |  4 ++++
1150
 src/liblzma/common/string_conversion.c | 7 +++++++
616
 src/xz/file_io.c | 15 +++++++++++----
1151
 1 file changed, 7 insertions(+)
617
 src/xz/file_io.h |  4 ++++
618
 3 files changed, 19 insertions(+), 4 deletions(-)
619
1152
620
commit 38915703241e69a64f133ff9a02ec9100c6019c6
1153
commit 85e01266a96689448abb249da6c6abc3afcd4a4e
621
Author: Lasse Collin <lasse.collin@tukaani.org>
1154
Author: Jia Tan <jiat0218@gmail.com>
622
Date:   2020-01-26 13:47:31 +0200
1155
Date:   2023-02-03 00:32:47 +0800
623
1156
624
    xz: Refactor io_read() a bit.
1157
    Tests: Create test_filter_str.c.
1158
    
1159
    Tests lzma_str_to_filters(), lzma_str_from_filters(), and
1160
    lzma_str_list_filters() API functions.
625
1161
626
 src/xz/file_io.c | 17 ++++++++---------
1162
 CMakeLists.txt          |   1 +
627
 1 file changed, 8 insertions(+), 9 deletions(-)
1163
 tests/Makefile.am       |   2 +
1164
 tests/test_filter_str.c | 593 ++++++++++++++++++++++++++++++++++++++++++++++++
1165
 3 files changed, 596 insertions(+)
628
1166
629
commit f6d24245349cecfae6ec0d2366fa80716c9f6d37
1167
commit 3fa0f3ba12dd3383f62dbfa18a864f9b4217fa0a
630
Author: Lasse Collin <lasse.collin@tukaani.org>
1168
Author: Jia Tan <jiat0218@gmail.com>
631
Date:   2020-01-26 13:37:08 +0200
1169
Date:   2023-01-22 08:49:00 +0800
632
1170
633
    xz: Update a comment in file_io.h.
1171
    liblzma: Fix typos in comments in string_conversion.c.
634
1172
635
 src/xz/file_io.h | 5 ++++-
1173
 src/liblzma/common/string_conversion.c | 4 ++--
636
 1 file changed, 4 insertions(+), 1 deletion(-)
1174
 1 file changed, 2 insertions(+), 2 deletions(-)
637
1175
638
commit 15b55d5c63d27f81776edb1abc05872a751fc674
1176
commit 32dbe045d74e94f75c53236fa2a6c0454d7b6d9e
639
Author: Lasse Collin <lasse.collin@tukaani.org>
1177
Author: Jia Tan <jiat0218@gmail.com>
640
Date:   2020-01-26 13:27:51 +0200
1178
Date:   2023-02-03 00:20:20 +0800
641
1179
642
    xz: Move the setting of flush_needed in file_io.c to a nicer location.
1180
    liblzma: Clarify block encoder and decoder documentation.
1181
    
1182
    Added a few sentences to the description for lzma_block_encoder() and
1183
    lzma_block_decoder() to highlight that the Block Header must be coded
1184
    before calling these functions.
643
1185
644
 src/xz/file_io.c | 6 ++----
1186
 src/liblzma/api/lzma/block.h | 15 +++++++++++----
645
 1 file changed, 2 insertions(+), 4 deletions(-)
1187
 1 file changed, 11 insertions(+), 4 deletions(-)
646
1188
647
commit 609c7067859146ffc62ac655f6ba53599c891801
1189
commit ccf12acbfa7331b1bbb99ec55879186eb35f879f
648
Author: Lasse Collin <lasse.collin@tukaani.org>
1190
Author: Jia Tan <jiat0218@gmail.com>
649
Date:   2020-02-05 19:56:09 +0200
1191
Date:   2023-02-03 00:12:24 +0800
650
1192
651
    xz: Enable Capsicum sandboxing by default if available.
1193
    Update lzma_block documentation for lzma_block_uncomp_encode().
1194
1195
 src/liblzma/api/lzma/block.h | 3 +++
1196
 1 file changed, 3 insertions(+)
1197
1198
commit 6a0b168dd9dc1ef437255c4bfdc6eff8b96fdb24
1199
Author: Jia Tan <jiat0218@gmail.com>
1200
Date:   2023-02-03 00:11:37 +0800
1201
1202
    liblzma: Minor edits to lzma_block header_size documentation.
1203
1204
 src/liblzma/api/lzma/block.h | 3 ++-
1205
 1 file changed, 2 insertions(+), 1 deletion(-)
1206
1207
commit 84ce36f90e68471fec1f0e61cd93ac7ed9ab4883
1208
Author: Jia Tan <jiat0218@gmail.com>
1209
Date:   2023-02-03 00:11:07 +0800
1210
1211
    liblzma: Enumerate functions that read version in lzma_block.
1212
1213
 src/liblzma/api/lzma/block.h | 13 +++++++++++--
1214
 1 file changed, 11 insertions(+), 2 deletions(-)
1215
1216
commit d6620774682830d606f57109861b6763805b3492
1217
Author: Jia Tan <jiat0218@gmail.com>
1218
Date:   2023-02-03 00:10:34 +0800
1219
1220
    liblzma: Clarify comment in block.h.
1221
1222
 src/liblzma/api/lzma/block.h | 3 ++-
1223
 1 file changed, 2 insertions(+), 1 deletion(-)
1224
1225
commit 880adb5aa25f66a53d81c2f3acc716f7a4d373d1
1226
Author: Jia Tan <jiat0218@gmail.com>
1227
Date:   2023-02-03 00:07:23 +0800
1228
1229
    liblzma: Improve documentation for block.h.
652
    
1230
    
653
    It has been enabled in FreeBSD for a while and reported to work fine.
1231
    Standardizing each function to always specify params and return values.
1232
    Output pointer parameters are also marked with doxygen style [out] to
1233
    make it clear. Any note sections were also moved above the parameter and
1234
    return sections for consistency.
1235
1236
 src/liblzma/api/lzma/block.h | 96 ++++++++++++++++++++++++++++++++++----------
1237
 1 file changed, 75 insertions(+), 21 deletions(-)
1238
1239
commit b5b1b1f061c342271e4977ce5cba604a19c0ca52
1240
Author: Jia Tan <jiat0218@gmail.com>
1241
Date:   2023-02-01 23:38:30 +0800
1242
1243
    liblzma: Clarify a comment about LZMA_STR_NO_VALIDATION.
654
    
1244
    
655
    Thanks to Xin Li.
1245
    The flag description for LZMA_STR_NO_VALIDATION was previously confusing
1246
    about the treatment for filters than cannot be used with .xz format
1247
    (lzma1) without using LZMA_STR_ALL_FILTERS. Now, it is clear that
1248
    LZMA_STR_NO_VALIDATION is not a super set of LZMA_STR_ALL_FILTERS.
656
1249
657
 INSTALL      | 6 ------
1250
 src/liblzma/api/lzma/filter.h | 5 +++--
658
 configure.ac | 8 ++++----
1251
 1 file changed, 3 insertions(+), 2 deletions(-)
659
 2 files changed, 4 insertions(+), 10 deletions(-)
660
1252
661
commit 00517d125cc26ecece0eebb84c1c3975cd19bee0
1253
commit e904e778b82b14f2779aab80d6c8f3c01a3fc54b
662
Author: Lasse Collin <lasse.collin@tukaani.org>
1254
Author: Jia Tan <jiat0218@gmail.com>
663
Date:   2019-12-31 22:41:45 +0200
1255
Date:   2023-01-27 20:14:51 +0800
664
1256
665
    Rename unaligned_read32ne to read32ne, and similarly for the others.
1257
    Translations: Add Brazilian Portuguese translation of man pages.
1258
    
1259
    Thanks to Rafael Fontenelle.
666
1260
667
 src/common/tuklib_integer.h               | 64 +++++++++++++++----------------
1261
 po4a/po4a.conf |    2 +-
668
 src/liblzma/common/alone_encoder.c        |  2 +-
1262
 po4a/pt_BR.po  | 3677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
669
 src/liblzma/common/block_header_decoder.c |  2 +-
1263
 2 files changed, 3678 insertions(+), 1 deletion(-)
670
 src/liblzma/common/block_header_encoder.c |  2 +-
671
 src/liblzma/common/memcmplen.h            |  9 ++---
672
 src/liblzma/common/stream_flags_decoder.c |  6 +--
673
 src/liblzma/common/stream_flags_encoder.c |  8 ++--
674
 src/liblzma/lz/lz_encoder_hash.h          |  2 +-
675
 src/liblzma/lzma/lzma_decoder.c           |  2 +-
676
 src/liblzma/lzma/lzma_encoder.c           |  2 +-
677
 src/liblzma/lzma/lzma_encoder_private.h   |  3 +-
678
 src/liblzma/simple/simple_decoder.c       |  2 +-
679
 src/liblzma/simple/simple_encoder.c       |  2 +-
680
 tests/test_block_header.c                 |  4 +-
681
 tests/test_stream_flags.c                 |  6 +--
682
 15 files changed, 54 insertions(+), 62 deletions(-)
683
1264
684
commit 52d89d8443c4a31a69c0701062f2c7711d82bbed
1265
commit e9c47e79c9584ba1126f5fa0dbe6c96e67411aa6
685
Author: Lasse Collin <lasse.collin@tukaani.org>
1266
Author: Jia Tan <jiat0218@gmail.com>
686
Date:   2019-12-31 00:29:48 +0200
1267
Date:   2023-01-24 20:48:50 +0800
687
1268
688
    Rename read32ne to aligned_read32ne, and similarly for the others.
1269
    liblzma: Fix documentation in filter.h for lzma_str_to_filters()
689
    
1270
    
690
    Using the aligned methods requires more care to ensure that
1271
    The previous documentation for lzma_str_to_filters() was technically
691
    the address really is aligned, so it's nicer if the aligned
1272
    correct, but misleading. lzma_str_to_filters() returns NULL on success,
692
    methods are prefixed. The next commit will remove the unaligned_
1273
    which is in practice always defined to 0. This is the same value as
693
    prefix from the unaligned methods which in liblzma are used in
1274
    LZMA_OK, but lzma_str_to_filters() does not return lzma_ret so we should
694
    more places than the aligned ones.
1275
    be more clear.
695
1276
696
 src/common/tuklib_integer.h    | 56 +++++++++++++++++++++---------------------
1277
 src/liblzma/api/lzma/filter.h | 2 +-
697
 src/liblzma/check/crc32_fast.c |  4 +--
1278
 1 file changed, 1 insertion(+), 1 deletion(-)
698
 src/liblzma/check/crc64_fast.c |  4 +--
699
 3 files changed, 32 insertions(+), 32 deletions(-)
700
1279
701
commit 850620468b57d49f16093e5870d1050886fcb37a
1280
commit 99575947a58a60416c570eb78038d18a1ea4cef4
702
Author: Lasse Collin <lasse.collin@tukaani.org>
1281
Author: Jia Tan <jiat0218@gmail.com>
703
Date:   2019-12-31 00:18:24 +0200
1282
Date:   2023-01-07 21:55:06 +0800
704
1283
705
    Revise tuklib_integer.h and .m4.
1284
    xz: Refactor duplicated check for custom suffix when using --format=raw
1285
1286
 src/xz/args.c   |  8 ++++++++
1287
 src/xz/suffix.c | 26 ++++++++------------------
1288
 src/xz/suffix.h |  8 ++++++++
1289
 3 files changed, 24 insertions(+), 18 deletions(-)
1290
1291
commit 76dec92fcca4a9ccd2063ed6d5d9e3474665baad
1292
Author: Jia Tan <jiat0218@gmail.com>
1293
Date:   2023-01-20 21:53:14 +0800
1294
1295
    liblzma: Set documentation on all reserved fields to private.
706
    
1296
    
707
    Add a configure option --enable-unsafe-type-punning to get the
1297
    This prevents the reserved fields from being part of the generated
708
    old non-conforming memory access methods. It can be useful with
1298
    Doxygen documentation.
709
    old compilers or in some other less typical situations but
1299
710
    shouldn't normally be used.
1300
 src/liblzma/api/lzma/base.h         | 17 +++++++++++++++
1301
 src/liblzma/api/lzma/block.h        | 43 +++++++++++++++++++++++++++++++++++++
1302
 src/liblzma/api/lzma/container.h    | 24 +++++++++++++++++++++
1303
 src/liblzma/api/lzma/delta.h        | 12 +++++++++++
1304
 src/liblzma/api/lzma/index.h        | 27 +++++++++++++++++++++++
1305
 src/liblzma/api/lzma/lzma12.h       | 22 +++++++++++++++++++
1306
 src/liblzma/api/lzma/stream_flags.h | 28 ++++++++++++++++++++++++
1307
 7 files changed, 173 insertions(+)
1308
1309
commit bd213d06ebf92cf42eeb97e7c578bddc857f8ea8
1310
Author: Jia Tan <jiat0218@gmail.com>
1311
Date:   2022-12-21 23:59:43 +0800
1312
1313
    liblzma: Highlight liblzma API headers should not be included directly.
711
    
1314
    
712
    Omit the packed struct trick for unaligned access. While it's
1315
    This improves the generated Doxygen HTML files to better highlight
713
    best in some cases, this is simpler. If the memcpy trick doesn't
1316
    how to properly use the liblzma API header files.
714
    work, one can request unsafe type punning from configure.
1317
1318
 src/liblzma/api/lzma/base.h         | 5 +++--
1319
 src/liblzma/api/lzma/bcj.h          | 5 +++--
1320
 src/liblzma/api/lzma/block.h        | 5 +++--
1321
 src/liblzma/api/lzma/check.h        | 5 +++--
1322
 src/liblzma/api/lzma/container.h    | 5 +++--
1323
 src/liblzma/api/lzma/delta.h        | 5 +++--
1324
 src/liblzma/api/lzma/filter.h       | 5 +++--
1325
 src/liblzma/api/lzma/hardware.h     | 5 +++--
1326
 src/liblzma/api/lzma/index.h        | 5 +++--
1327
 src/liblzma/api/lzma/index_hash.h   | 5 +++--
1328
 src/liblzma/api/lzma/lzma12.h       | 5 +++--
1329
 src/liblzma/api/lzma/stream_flags.h | 5 +++--
1330
 src/liblzma/api/lzma/version.h      | 5 +++--
1331
 src/liblzma/api/lzma/vli.h          | 5 +++--
1332
 14 files changed, 42 insertions(+), 28 deletions(-)
1333
1334
commit 257dbff0ba1a7bc45a74d203ece015c9f70c88cd
1335
Author: Jia Tan <jiat0218@gmail.com>
1336
Date:   2023-01-19 20:35:09 +0800
1337
1338
    tuklib_physmem: Silence warning from -Wcast-function-type on MinGW-w64.
715
    
1339
    
716
    Because CRC32/CRC64 code needs fast aligned reads, if no very
1340
    tuklib_physmem depends on GetProcAddress() for both MSVC and MinGW-w64
717
    safe way to do it is found, type punning is used as a fallback.
1341
    to retrieve a function address. The proper way to do this is to cast the
718
    This sucks but since it currently works in practice, it seems to
1342
    return value to the type of function pointer retrieved. Unfortunately,
719
    be the least bad option. It's never needed with GCC >= 4.7 or
1343
    this causes a cast-function-type warning, so the best solution is to
720
    Clang >= 3.6 since these support __builtin_assume_aligned and
1344
    simply ignore the warning.
721
    thus fast aligned access can be done with the memcpy trick.
1345
1346
 src/common/tuklib_physmem.c | 18 ++++++++++++++++++
1347
 1 file changed, 18 insertions(+)
1348
1349
commit 720ad4a44282a7ee59aa9920eaf495d85d245d97
1350
Author: Jia Tan <jiat0218@gmail.com>
1351
Date:   2023-01-16 21:35:45 +0800
1352
1353
    xz: Add missing comment for coder_set_compression_settings()
1354
1355
 src/xz/coder.h | 3 ++-
1356
 1 file changed, 2 insertions(+), 1 deletion(-)
1357
1358
commit 88dc19163421282369c0989e997c05f9a447edc6
1359
Author: Jia Tan <jiat0218@gmail.com>
1360
Date:   2023-01-16 20:55:10 +0800
1361
1362
    xz: Do not set compression settings with raw format in list mode.
722
    
1363
    
723
    Other things:
1364
    Calling coder_set_compression_settings() in list mode with verbose mode
724
      - Support GCC/Clang __builtin_bswapXX
1365
    on caused the filter chain and memory requirements to print. This was
725
      - Cleaner bswap fallback macros
1366
    unnecessary since the command results in an error and not consistent
726
      - Minor cleanups
1367
    with other formats like lzma and alone.
727
1368
728
 m4/tuklib_integer.m4        |  43 ++++
1369
 src/xz/args.c | 3 ++-
729
 src/common/tuklib_integer.h | 488 ++++++++++++++++++++++++--------------------
1370
 1 file changed, 2 insertions(+), 1 deletion(-)
730
 2 files changed, 314 insertions(+), 217 deletions(-)
731
1371
732
commit a45badf0342666462cc6a7107a071418570ab773
1372
commit 039e0ab13efb144642f9d99eeeb9c668e76bb430
1373
Author: Jia Tan <jiat0218@gmail.com>
1374
Date:   2023-01-13 20:37:06 +0800
1375
1376
    Translations: Update the Brazilian Portuguese translation.
1377
1378
 po/pt_BR.po | 603 ++++++++++++++++++++++++++++++++++--------------------------
1379
 1 file changed, 344 insertions(+), 259 deletions(-)
1380
1381
commit 718f7a60e740b26b8353965edaaddc7d4deb4d85
733
Author: Lasse Collin <lasse.collin@tukaani.org>
1382
Author: Lasse Collin <lasse.collin@tukaani.org>
734
Date:   2019-12-29 22:51:58 +0200
1383
Date:   2023-01-12 13:04:05 +0200
735
1384
736
    Tests: Hopefully fix test_check.c to work on EBCDIC systems.
1385
    Build: Omit -Wmissing-noreturn from the default warnings.
737
    
1386
    
738
    Thanks to Daniel Richard G.
1387
    It's not that important. It can be annoying in builds that
1388
    disable many features since in those cases the tests programs
1389
    will correctly trigger this warning with Clang.
739
1390
740
 tests/test_check.c | 9 +++++++--
1391
 configure.ac | 1 -
741
 1 file changed, 7 insertions(+), 2 deletions(-)
1392
 1 file changed, 1 deletion(-)
742
1393
743
commit c9a8071e6690a8db8a485c075920df254e7c70ea
1394
commit 3ccedb09724c998c39d708c945f6da5852c39e13
744
Author: Lasse Collin <lasse.collin@tukaani.org>
1395
Author: Lasse Collin <lasse.collin@tukaani.org>
745
Date:   2019-09-24 23:02:40 +0300
1396
Date:   2023-01-12 06:05:58 +0200
746
1397
747
    Scripts: Put /usr/xpg4/bin to the beginning of PATH on Solaris.
1398
    xz: Use ssize_t for the to-be-ignored return value from write(fd, ptr, 1).
748
    
1399
    
749
    This adds a configure option --enable-path-for-scripts=PREFIX
1400
    It makes no difference here as the return value fits into an int
750
    which defaults to empty except on Solaris it is /usr/xpg4/bin
1401
    too and it then gets ignored but this looks better.
751
    to make POSIX grep and others available. The Solaris case had
752
    been documented in INSTALL with a manual fix but it's better
753
    to do this automatically since it is needed on most Solaris
754
    systems anyway.
755
    
756
    Thanks to Daniel Richard G.
757
1402
758
 INSTALL               | 43 +++++++++++++++++++++++++++++++++++--------
1403
 src/xz/file_io.c | 2 +-
759
 configure.ac          | 26 ++++++++++++++++++++++++++
1404
 1 file changed, 1 insertion(+), 1 deletion(-)
760
 src/scripts/xzdiff.in |  1 +
761
 src/scripts/xzgrep.in |  1 +
762
 src/scripts/xzless.in |  1 +
763
 src/scripts/xzmore.in |  1 +
764
 6 files changed, 65 insertions(+), 8 deletions(-)
765
1405
766
commit aba140e2df3ff63ad124ae997de16d517b98ca50
1406
commit 09fbd2f0527def89e839c8907de4fe7ef6bc5019
767
Author: Lasse Collin <lasse.collin@tukaani.org>
1407
Author: Lasse Collin <lasse.collin@tukaani.org>
768
Date:   2019-07-12 18:57:43 +0300
1408
Date:   2023-01-12 06:01:12 +0200
769
1409
770
    Fix comment typos in tuklib_mbstr* files.
1410
    xz: Silence warnings from -Wsign-conversion in a 32-bit build.
771
1411
772
 src/common/tuklib_mbstr.h       | 2 +-
1412
 src/common/tuklib_mbstr_fw.c | 2 +-
773
 src/common/tuklib_mbstr_fw.c    | 2 +-
1413
 src/xz/list.c                | 4 ++--
774
 src/common/tuklib_mbstr_width.c | 2 +-
1414
 2 files changed, 3 insertions(+), 3 deletions(-)
775
 3 files changed, 3 insertions(+), 3 deletions(-)
776
1415
777
commit 710f5bd769a5d2bd8684256c2727d15350ee2ab8
1416
commit 683d3f178ef1487b5418be49f331b0131a101b40
778
Author: Lasse Collin <lasse.collin@tukaani.org>
1417
Author: Lasse Collin <lasse.collin@tukaani.org>
779
Date:   2019-07-12 18:30:46 +0300
1418
Date:   2023-01-12 05:38:48 +0200
780
1419
781
    Add missing include to tuklib_mbstr_width.c.
1420
    liblzma: Silence another warning from -Wsign-conversion in a 32-bit build.
782
    
1421
    
783
    It didn't matter in XZ Utils because sysdefs.h
1422
    It doesn't warn on a 64-bit system because truncating
784
    includes string.h anyway.
1423
    a ptrdiff_t (signed long) to uint32_t is diagnosed under
1424
    -Wconversion by GCC and -Wshorten-64-to-32 by Clang.
785
1425
786
 src/common/tuklib_mbstr_width.c | 1 +
1426
 src/liblzma/lz/lz_encoder_mf.c | 7 ++++---
787
 1 file changed, 1 insertion(+)
1427
 1 file changed, 4 insertions(+), 3 deletions(-)
788
1428
789
commit 0e491aa8cd72e0100cd15c1b9469cd57fae500b0
1429
commit 2b8062ef94a38d0f9ad0d1b309e8748db52f5c15
790
Author: Lasse Collin <lasse.collin@tukaani.org>
1430
Author: Lasse Collin <lasse.collin@tukaani.org>
791
Date:   2019-06-25 23:15:21 +0300
1431
Date:   2023-01-12 04:46:45 +0200
792
1432
793
    liblzma: Fix a buggy comment.
1433
    liblzma: Silence a warning from -Wsign-conversion in a 32-bit build.
794
1434
795
 src/liblzma/lz/lz_encoder_mf.c | 2 +-
1435
 src/common/mythread.h | 4 ++--
796
 1 file changed, 1 insertion(+), 1 deletion(-)
1436
 1 file changed, 2 insertions(+), 2 deletions(-)
797
1437
798
commit bfc245569f340a75bd71ad32a6beba786712683b
1438
commit b16b9c0d22227012518595c2222facc73bd833a8
799
Author: Lasse Collin <lasse.collin@tukaani.org>
1439
Author: Lasse Collin <lasse.collin@tukaani.org>
800
Date:   2019-06-25 00:16:06 +0300
1440
Date:   2023-01-12 04:17:24 +0200
801
1441
802
    configure.ac: Fix a typo in a comment.
1442
    Build: Make configure add more warning flags for GCC and Clang.
1443
    
1444
    -Wstrict-aliasing was removed from the list since it is enabled
1445
    by -Wall already.
1446
    
1447
    A normal build is clean with these on GNU/Linux x86-64 with
1448
    GCC 12.2.0 and Clang 14.0.6.
803
1449
804
 configure.ac | 2 +-
1450
 configure.ac | 36 +++++++++++++++++++++++++++++++-----
805
 1 file changed, 1 insertion(+), 1 deletion(-)
1451
 1 file changed, 31 insertions(+), 5 deletions(-)
806
1452
807
commit f18eee9d15a22c8449ef395a05f0eb637c4ad253
1453
commit c47ecd6d3909d0d3ff48dfd6e2ee41e7c7130b94
808
Author: Lasse Collin <lasse.collin@tukaani.org>
1454
Author: Lasse Collin <lasse.collin@tukaani.org>
809
Date:   2019-06-25 00:08:13 +0300
1455
Date:   2023-01-12 04:14:18 +0200
810
1456
811
    Tests: Silence warnings from clang -Wassign-enum.
1457
    Tests: Fix warnings from clang --Wassign-enum.
812
    
1458
    
813
    Also changed 999 to 99 so it fits even if lzma_check happened
1459
    Explicitly casting the integer to lzma_check silences the warning.
814
    to be 8 bits wide.
1460
    Since such an invalid value is needed in multiple tests, a constant
1461
    INVALID_LZMA_CHECK_ID was added to tests.h.
1462
    
1463
    The use of 0x1000 for lzma_block.check wasn't optimal as if
1464
    the underlying type is a char then 0x1000 will be truncated to 0.
1465
    However, in these test cases the value is ignored, thus even with
1466
    such truncation the test would have passed.
815
1467
816
 tests/test_block_header.c | 3 ++-
1468
 tests/test_block_header.c | 6 +++---
817
 tests/test_stream_flags.c | 2 +-
1469
 tests/test_check.c        | 2 +-
818
 2 files changed, 3 insertions(+), 2 deletions(-)
1470
 tests/test_stream_flags.c | 8 ++++----
1471
 tests/tests.h             | 9 +++++++++
1472
 4 files changed, 17 insertions(+), 8 deletions(-)
819
1473
820
commit 25f74554723e8deabc66fed1abf0ec27a4ed19d5
1474
commit 34e13ce015232968731de2a9ec3440a08b0084b1
821
Author: Lasse Collin <lasse.collin@tukaani.org>
1475
Author: Lasse Collin <lasse.collin@tukaani.org>
822
Date:   2019-06-24 23:52:17 +0300
1476
Date:   2023-01-12 03:51:07 +0200
823
1477
824
    liblzma: Add a comment.
1478
    Tests: Silence warnings from -Wsign-conversion.
1479
    
1480
    Note that assigning an unsigned int to lzma_check doesn't warn
1481
    on GNU/Linux x86-64 since the enum type is unsigned on that
1482
    platform. The enum can be signed on some other platform though
1483
    so it's best to use enumeration type lzma_check in these situations.
825
1484
1485
 tests/test_check.c        |  6 +++---
1486
 tests/test_stream_flags.c | 10 +++++-----
1487
 2 files changed, 8 insertions(+), 8 deletions(-)
1488
1489
commit 6671d0fe46b77f0fafce860836b7a12dc3cda14a
1490
Author: Lasse Collin <lasse.collin@tukaani.org>
1491
Date:   2023-01-12 03:19:59 +0200
1492
1493
    liblzma: Silence warnings from clang -Wconditional-uninitialized.
1494
    
1495
    This is similar to 2ce4f36f179a81d0c6e182a409f363df759d1ad0.
1496
    The actual initialization of the variables is done inside
1497
    mythread_sync() macro. Clang doesn't seem to see that
1498
    the initialization code inside the macro is always executed.
1499
1500
 src/liblzma/common/stream_decoder_mt.c | 8 +++++---
826
 src/liblzma/common/stream_encoder_mt.c | 2 +-
1501
 src/liblzma/common/stream_encoder_mt.c | 2 +-
827
 1 file changed, 1 insertion(+), 1 deletion(-)
1502
 2 files changed, 6 insertions(+), 4 deletions(-)
828
1503
829
commit 44eb961f2a51d02420d017bc5ff470360663650c
1504
commit d3e833ca1d2abda54648494c33aca73a40a47efe
830
Author: Lasse Collin <lasse.collin@tukaani.org>
1505
Author: Lasse Collin <lasse.collin@tukaani.org>
831
Date:   2019-06-24 23:45:21 +0300
1506
Date:   2023-01-12 03:11:40 +0200
832
1507
833
    liblzma: Silence clang -Wmissing-variable-declarations.
1508
    Fix warnings from clang -Wdocumentation.
834
1509
835
 src/liblzma/check/crc32_table.c | 3 +++
1510
 src/liblzma/check/check.h      | 4 ----
836
 src/liblzma/check/crc64_table.c | 3 +++
1511
 src/liblzma/lz/lz_encoder_mf.c | 4 ++--
837
 2 files changed, 6 insertions(+)
1512
 src/xz/options.c               | 4 ++--
1513
 3 files changed, 4 insertions(+), 8 deletions(-)
838
1514
839
commit 267afcd9955e668c1532b069230c21c348eb4f82
1515
commit 977dd2e26bc50efec8d30fb90380394042d24558
840
Author: Lasse Collin <lasse.collin@tukaani.org>
1516
Author: Lasse Collin <lasse.collin@tukaani.org>
841
Date:   2019-06-24 22:57:43 +0300
1517
Date:   2023-01-12 03:04:28 +0200
842
1518
843
    xz: Silence a warning from clang -Wsign-conversion in main.c.
1519
    Tests: test_lzip_decoder: Remove trailing white-space.
844
1520
845
 src/xz/main.c | 2 +-
1521
 tests/test_lzip_decoder.c | 4 ++--
846
 1 file changed, 1 insertion(+), 1 deletion(-)
1522
 1 file changed, 2 insertions(+), 2 deletions(-)
847
1523
848
commit 0e3c4002f809311ecef239b05e556d9c462b5703
1524
commit c55157ed7437ab14f2afb7fecf331e321f2edf9a
849
Author: Lasse Collin <lasse.collin@tukaani.org>
1525
Author: Lasse Collin <lasse.collin@tukaani.org>
850
Date:   2019-06-24 22:47:39 +0300
1526
Date:   2023-01-12 03:03:55 +0200
851
1527
852
    liblzma: Remove incorrect uses of lzma_attribute((__unused__)).
1528
    Tests: test_lzip_decoder: Silence warnings from -Wsign-conversion.
853
    
854
    Caught by clang -Wused-but-marked-unused.
855
1529
856
 src/liblzma/common/alone_decoder.c | 3 +--
1530
 tests/test_lzip_decoder.c | 13 +++++++------
857
 src/liblzma/common/alone_encoder.c | 3 +--
1531
 1 file changed, 7 insertions(+), 6 deletions(-)
858
 src/liblzma/lz/lz_decoder.c        | 3 +--
859
 3 files changed, 3 insertions(+), 6 deletions(-)
860
1532
861
commit cb708e8fa3405ec13a0ebfebbbf2793f927deab1
1533
commit 18b845e69752c975dfeda418ec00eda22605c2ee
862
Author: Lasse Collin <lasse.collin@tukaani.org>
1534
Author: Lasse Collin <lasse.collin@tukaani.org>
863
Date:   2019-06-24 20:53:55 +0300
1535
Date:   2023-01-11 18:52:54 +0200
864
1536
865
    Tests: Silence a warning from -Wsign-conversion.
1537
    Bump version and soname for 5.4.1.
866
1538
867
 tests/create_compress_files.c | 8 ++++----
1539
 src/liblzma/Makefile.am        | 2 +-
868
 1 file changed, 4 insertions(+), 4 deletions(-)
1540
 src/liblzma/api/lzma/version.h | 2 +-
1541
 2 files changed, 2 insertions(+), 2 deletions(-)
869
1542
870
commit c8cace3d6e965c0fb537591372bf71b9357dd76c
1543
commit 4080bbb844fb36701ffb978f0c41ea2c2c9f8960
1544
Author: Jia Tan <jiat0218@gmail.com>
1545
Date:   2023-01-11 23:58:16 +0800
1546
1547
    Add NEWS for 5.4.1.
1548
1549
 NEWS | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1550
 1 file changed, 70 insertions(+)
1551
1552
commit 674c89fdb8c457ebc3a0652e235d8b6cd7b7dee2
871
Author: Lasse Collin <lasse.collin@tukaani.org>
1553
Author: Lasse Collin <lasse.collin@tukaani.org>
872
Date:   2019-06-24 20:45:49 +0300
1554
Date:   2023-01-10 11:56:11 +0200
873
1555
874
    xz: Fix an integer overflow with 32-bit off_t.
1556
    sysdefs.h: Don't include strings.h anymore.
875
    
1557
    
876
    Or any off_t which isn't very big (like signed 64 bit integer
1558
    On some platforms src/xz/suffix.c may need <strings.h> for
877
    that most system have). A small off_t could overflow if the
1559
    strcasecmp() but suffix.c includes the header when it needs it.
878
    file being decompressed had long enough run of zero bytes,
1560
    
879
    which would result in corrupt output.
1561
    Unless there is an old system that otherwise supports enough C99
1562
    to build XZ Utils but doesn't have C89/C90-compatible <string.h>,
1563
    there should be no need to include <strings.h> in sysdefs.h.
880
1564
881
 src/xz/file_io.c | 11 +++++++++--
1565
 src/common/sysdefs.h | 6 ------
882
 1 file changed, 9 insertions(+), 2 deletions(-)
1566
 1 file changed, 6 deletions(-)
883
1567
884
commit 65a42741e290fbcd85dfc5db8a62c4bce5f7712c
1568
commit 2a6b938084fac9ddb39cd69c9beeed15c3b6f6f6
885
Author: Lasse Collin <lasse.collin@tukaani.org>
1569
Author: Lasse Collin <lasse.collin@tukaani.org>
886
Date:   2019-06-24 00:57:23 +0300
1570
Date:   2023-01-10 11:23:41 +0200
887
1571
888
    Tests: Remove a duplicate branch from tests/tests.h.
1572
    xz: Include <strings.h> in suffix.c if needed for strcasecmp().
889
    
1573
    
890
    The duplication was introduced about eleven years ago and
1574
    SUSv2 and POSIX.1‐2017 declare only a few functions in <strings.h>.
891
    should have been cleaned up back then already.
1575
    Of these, strcasecmp() is used on some platforms in suffix.c.
1576
    Nothing else in the project needs <strings.h> (at least if
1577
    building on a modern system).
892
    
1578
    
893
    This was caught by -Wduplicated-branches.
1579
    sysdefs.h currently includes <strings.h> if HAVE_STRINGS_H is
1580
    defined and suffix.c relied on this.
1581
    
1582
    Note that dos/config.h doesn't #define HAVE_STRINGS_H even though
1583
    DJGPP does have strings.h. It isn't needed with DJGPP as strcasecmp()
1584
    is also in <string.h> in DJGPP.
894
1585
895
 tests/tests.h | 9 ++-------
1586
 src/xz/suffix.c | 3 +++
896
 1 file changed, 2 insertions(+), 7 deletions(-)
1587
 1 file changed, 3 insertions(+)
897
1588
898
commit 5c4fb60e8df026e933afab0cfe0a8b55be20036c
1589
commit aea639e81beb548e3114c74b6d9a894d6e036189
1590
Author: Jia Tan <jiat0218@gmail.com>
1591
Date:   2023-01-11 22:46:48 +0800
1592
1593
    xz: Fix warning -Wformat-nonliteral on clang in message.c.
1594
    
1595
    clang and gcc differ in how they handle -Wformat-nonliteral. gcc will
1596
    allow a non-literal format string as long as the function takes its
1597
    format arguments as a va_list.
1598
1599
 src/xz/message.c | 9 +++++++++
1600
 1 file changed, 9 insertions(+)
1601
1602
commit e3b42bfcb0f67988beee7c7022fed0361282be45
1603
Author: Jia Tan <jiat0218@gmail.com>
1604
Date:   2023-01-11 20:58:31 +0800
1605
1606
    Tests: Fix test_filter_flags copy/paste error.
1607
1608
 tests/test_filter_flags.c | 4 ++--
1609
 1 file changed, 2 insertions(+), 2 deletions(-)
1610
1611
commit 21625b7e11d004788e40eb5eb88d9d89f65fe347
1612
Author: Jia Tan <jiat0218@gmail.com>
1613
Date:   2023-01-11 20:42:29 +0800
1614
1615
    Tests: Fix type-limits warning in test_filter_flags.
1616
    
1617
    This only occurs in test_filter_flags when the BCJ filters are not
1618
    configured and built. In this case, ARRAY_SIZE() returns 0 and causes a
1619
    type-limits warning with the loop variable since an unsigned number will
1620
    always be >= 0.
1621
1622
 tests/test_filter_flags.c | 13 ++++++++++---
1623
 1 file changed, 10 insertions(+), 3 deletions(-)
1624
1625
commit c337983e928682d56ce3470b286a8d5b8646e0ad
899
Author: Lasse Collin <lasse.collin@tukaani.org>
1626
Author: Lasse Collin <lasse.collin@tukaani.org>
900
Date:   2019-06-23 23:22:45 +0300
1627
Date:   2023-01-10 22:14:03 +0200
901
1628
902
    tuklib_mbstr_width: Fix a warning from -Wsign-conversion.
1629
    liblzma: CLMUL CRC64: Work around a bug in MSVC, second attempt.
1630
    
1631
    This affects only 32-bit x86 builds. x86-64 is OK as is.
1632
    
1633
    I still cannot easily test this myself. The reporter has tested
1634
    this and it passes the tests included in the CMake build and
1635
    performance is good: raw CRC64 is 2-3 times faster than the
1636
    C version of the slice-by-four method. (Note that liblzma doesn't
1637
    include a MSVC-compatible version of the 32-bit x86 assembly code
1638
    for the slice-by-four method.)
1639
    
1640
    Thanks to Iouri Kharon for figuring out a fix, testing, and
1641
    benchmarking.
903
1642
904
 src/common/tuklib_mbstr_width.c | 2 +-
1643
 src/liblzma/check/crc64_fast.c | 18 ++++++++++++++++++
905
 1 file changed, 1 insertion(+), 1 deletion(-)
1644
 1 file changed, 18 insertions(+)
906
1645
907
commit 37df03ce52ce53710e1513387648763f8a744154
1646
commit b7fb438ea0e3ee02e3a164f3b72fae456cbe34d7
1647
Author: Jia Tan <jiat0218@gmail.com>
1648
Date:   2023-01-11 01:18:50 +0800
1649
1650
    Tests: Fix unused function warning in test_block_header.
1651
    
1652
    One of the global arrays of filters was only used in a test that
1653
    required both encoders and decoders to be configured in the build.
1654
1655
 tests/test_block_header.c | 4 ++++
1656
 1 file changed, 4 insertions(+)
1657
1658
commit 68e9ef036d18d7c3952bff0b391d5989b86934da
1659
Author: Jia Tan <jiat0218@gmail.com>
1660
Date:   2023-01-11 01:08:03 +0800
1661
1662
    Tests: Fix unused function warning in test_index_hash.
1663
    
1664
    test_index_hash does not use fill_index_hash() unless both encoders
1665
    and decoders are configured in the build.
1666
1667
 tests/test_index_hash.c | 4 +---
1668
 1 file changed, 1 insertion(+), 3 deletions(-)
1669
1670
commit a387707cd8cdefbffb5b7429bda4b7fcc192954a
908
Author: Lasse Collin <lasse.collin@tukaani.org>
1671
Author: Lasse Collin <lasse.collin@tukaani.org>
909
Date:   2019-06-23 23:19:34 +0300
1672
Date:   2023-01-10 00:33:14 +0200
910
1673
911
    xz: Fix some of the warnings from -Wsign-conversion.
1674
    Windows: Update INSTALL-MSVC.txt to recommend CMake over project files.
912
1675
913
 src/xz/args.c    | 4 ++--
1676
 windows/INSTALL-MSVC.txt | 19 ++++++++++++-------
914
 src/xz/coder.c   | 4 ++--
1677
 1 file changed, 12 insertions(+), 7 deletions(-)
915
 src/xz/file_io.c | 5 +++--
916
 src/xz/message.c | 4 ++--
917
 src/xz/mytime.c  | 4 ++--
918
 src/xz/options.c | 2 +-
919
 src/xz/util.c    | 4 ++--
920
 7 files changed, 14 insertions(+), 13 deletions(-)
921
1678
922
commit 7c65ae0f5f2e2431f88621e8fe6d1dc7907e30c1
1679
commit 52902ad69518255a14b0144f0a2379e06fde5b6e
923
Author: Lasse Collin <lasse.collin@tukaani.org>
1680
Author: Lasse Collin <lasse.collin@tukaani.org>
924
Date:   2019-06-23 22:27:45 +0300
1681
Date:   2023-01-10 12:47:16 +0200
925
1682
926
    tuklib_cpucores: Silence warnings from -Wsign-conversion.
1683
    Revert "liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022)."
1684
    
1685
    This reverts commit 36edc65ab4cf10a131f239acbd423b4510ba52d5.
1686
    
1687
    It was reported that it wasn't a good enough fix and MSVC
1688
    still produced (different kind of) bad code when building
1689
    for 32-bit x86 if optimizations are enabled.
1690
    
1691
    Thanks to Iouri Kharon.
927
1692
928
 src/common/tuklib_cpucores.c | 10 +++++-----
1693
 src/liblzma/check/crc64_fast.c | 6 ------
929
 1 file changed, 5 insertions(+), 5 deletions(-)
1694
 1 file changed, 6 deletions(-)
930
1695
931
commit a502dd1d000b598406637d452f535f4bbd43e2a4
1696
commit e81b9fc48ca70f9228308d3f1871cd81f9a5a496
932
Author: Lasse Collin <lasse.collin@tukaani.org>
1697
Author: Lasse Collin <lasse.collin@tukaani.org>
933
Date:   2019-06-23 21:40:47 +0300
1698
Date:   2023-01-10 10:05:13 +0200
934
1699
935
    xzdec: Fix warnings from -Wsign-conversion.
1700
    sysdefs.h: Fix a comment.
936
1701
937
 src/xzdec/xzdec.c | 2 +-
1702
 src/common/sysdefs.h | 2 +-
938
 1 file changed, 1 insertion(+), 1 deletion(-)
1703
 1 file changed, 1 insertion(+), 1 deletion(-)
939
1704
940
commit a45d1a5374ceb22e23255b0b595b9e641e9860af
1705
commit 6e89ab58b031aa046308a0b3504ff0a5be042571
941
Author: Lasse Collin <lasse.collin@tukaani.org>
1706
Author: Lasse Collin <lasse.collin@tukaani.org>
942
Date:   2019-06-23 21:38:56 +0300
1707
Date:   2023-01-10 10:04:06 +0200
943
1708
944
    liblzma: Fix warnings from -Wsign-conversion.
1709
    sysdefs.h: Don't include memory.h anymore even if it were available.
945
    
1710
    
946
    Also, more parentheses were added to the literal_subcoder
1711
    It quite probably was never needed, that is, any system where memory.h
947
    macro in lzma_comon.h (better style but no functional change
1712
    was required likely couldn't compile XZ Utils for other reasons anyway.
948
    in the current usage).
1713
    
1714
    XZ Utils 5.2.6 and later source packages were generated using
1715
    Autoconf 2.71 which no longer defines HAVE_MEMORY_H. So the code
1716
    being removed is no longer used anyway.
949
1717
950
 src/liblzma/common/block_header_decoder.c |  2 +-
1718
 src/common/sysdefs.h | 8 ++------
951
 src/liblzma/delta/delta_decoder.c         |  2 +-
1719
 1 file changed, 2 insertions(+), 6 deletions(-)
952
 src/liblzma/lzma/fastpos.h                |  2 +-
953
 src/liblzma/lzma/lzma2_decoder.c          |  8 ++++----
954
 src/liblzma/lzma/lzma_common.h            |  3 ++-
955
 src/liblzma/lzma/lzma_decoder.c           | 16 ++++++++--------
956
 src/liblzma/simple/arm.c                  |  6 +++---
957
 src/liblzma/simple/armthumb.c             |  8 ++++----
958
 src/liblzma/simple/ia64.c                 |  2 +-
959
 src/liblzma/simple/powerpc.c              |  9 +++++----
960
 src/liblzma/simple/x86.c                  |  2 +-
961
 11 files changed, 31 insertions(+), 29 deletions(-)
962
1720
963
commit 4ff87ddf80ed7cb233444cddd86ab1940b5b55ec
1721
commit 65c59ad429aa59f9df0326d9fc82931ba4a9d123
964
Author: Lasse Collin <lasse.collin@tukaani.org>
1722
Author: Lasse Collin <lasse.collin@tukaani.org>
965
Date:   2019-06-23 19:33:55 +0300
1723
Date:   2023-01-10 08:50:26 +0200
966
1724
967
    tuklib_integer: Silence warnings from -Wsign-conversion.
1725
    CMake/Windows: Add a workaround for windres from GNU binutils.
1726
    
1727
    This is combined from the following commits in the master branch:
1728
    443dfebced041adc88f10d824188eeef5b5821a9
1729
    6b117d3b1fe91eb26d533ab16a2e552f84148d47
1730
    5e34774c31d1b7509b5cb77a3be9973adec59ea0
1731
    
1732
    Thanks to Iouri Kharon for the bug report, the original patch,
1733
    and testing.
968
1734
969
 src/common/tuklib_integer.h | 6 +++---
1735
 CMakeLists.txt | 32 +++++++++++++++++++++++++++++++-
970
 1 file changed, 3 insertions(+), 3 deletions(-)
1736
 1 file changed, 31 insertions(+), 1 deletion(-)
971
1737
972
commit ed1a9d33984a3a37ae9a775a46859850d98ea4d0
1738
commit 43521e77acc907863fa4f94aae276366172cb9ee
973
Author: Lasse Collin <lasse.collin@tukaani.org>
1739
Author: Lasse Collin <lasse.collin@tukaani.org>
974
Date:   2019-06-20 19:40:30 +0300
1740
Date:   2023-01-06 22:53:38 +0200
975
1741
976
    tuklib_integer: Fix usage of conv macros.
1742
    Tests: test_filter_flags: Clean up minor issues.
977
    
1743
    
978
    Use a temporary variable instead of e.g.
1744
    Here are the list of the most significant issues addressed:
979
    conv32le(unaligned_read32ne(buf)) because the macro can
1745
    - Avoid using internal common.h header. It's not good to copy the
980
    evaluate its argument multiple times.
1746
    constants like this but common.h cannot be included for use outside
1747
    of liblzma. This is the quickest thing to do that could be fixed later.
1748
    
1749
    - Omit the INIT_FILTER macro. Initialization should be done with just
1750
    regular designated initializers.
1751
    
1752
    - Use start_offset = 257 for BCJ tests. It demonstrates that Filter
1753
    Flags encoder and decoder don't validate the options thoroughly.
1754
    257 is valid only for the x86 filter. This is a bit silly but
1755
    not a significant problem in practice because the encoder and
1756
    decoder initialization functions will catch bad alignment still.
1757
    Perhaps this should be fixed but it's not urgent and doesn't need
1758
    to be in 5.4.x.
1759
    
1760
    - Various tweaks to comments such as filter id -> Filter ID
981
1761
982
 src/common/tuklib_integer.h | 12 ++++++++----
1762
 tests/test_filter_flags.c | 153 +++++++++++++++++++++++-----------------------
983
 1 file changed, 8 insertions(+), 4 deletions(-)
1763
 1 file changed, 78 insertions(+), 75 deletions(-)
984
1764
985
commit 612c88dfc08e2c572623954ecfde541d21c84882
1765
commit 6b44cead95d767414272dc3a67898a36bfdf95b3
986
Author: Lasse Collin <lasse.collin@tukaani.org>
1766
Author: Jia Tan <jiat0218@gmail.com>
987
Date:   2019-06-03 20:44:19 +0300
1767
Date:   2022-12-29 23:33:33 +0800
988
1768
989
    Update THANKS.
1769
    Tests: Refactors existing filter flags tests.
1770
    
1771
    Converts the existing filter flags tests into tuktests.
990
1772
991
 THANKS | 1 +
1773
 tests/test_filter_flags.c | 655 ++++++++++++++++++++++++++++++++--------------
992
 1 file changed, 1 insertion(+)
1774
 1 file changed, 457 insertions(+), 198 deletions(-)
993
1775
994
commit 85da31d8b882b8b9671ab3e3d74d88bd945cd0bb
1776
commit 1bbefa9659b202ba31bd244a9d0e4f0d37ff3ed7
995
Author: Lasse Collin <lasse.collin@tukaani.org>
1777
Author: Lasse Collin <lasse.collin@tukaani.org>
996
Date:   2019-06-03 20:41:54 +0300
1778
Date:   2023-01-08 00:32:29 +0200
997
1779
998
    liblzma: Fix comments.
1780
    Tests: tuktest.h: Support tuktest_malloc(0).
999
    
1781
    
1000
    Thanks to Bruce Stark.
1782
    It's not needed in XZ Utils at least for now. It's good to support
1783
    it still because if such use is needed later, it wouldn't be
1784
    caught on GNU/Linux since malloc(0) from glibc returns non-NULL.
1001
1785
1002
 src/liblzma/common/alone_encoder.c        | 4 ++--
1786
 tests/tuktest.h | 4 ++--
1003
 src/liblzma/common/block_util.c           | 2 +-
1787
 1 file changed, 2 insertions(+), 2 deletions(-)
1004
 src/liblzma/common/common.c               | 2 +-
1005
 src/liblzma/common/filter_common.h        | 2 +-
1006
 src/liblzma/common/filter_decoder.h       | 2 +-
1007
 src/liblzma/common/filter_flags_encoder.c | 2 +-
1008
 6 files changed, 7 insertions(+), 7 deletions(-)
1009
1788
1010
commit 6a73a7889587aa394e236c7e9e4f870b44851036
1789
commit ce3a3fbc7c2c399aeed644d54f3bd56ac914dfee
1011
Author: Lasse Collin <lasse.collin@tukaani.org>
1790
Author: Lasse Collin <lasse.collin@tukaani.org>
1012
Date:   2019-06-02 00:50:59 +0300
1791
Date:   2023-01-07 21:57:11 +0200
1013
1792
1014
    liblzma: Fix one more unaligned read to use unaligned_read16ne().
1793
    CMake: Update cmake_minimum_required from 3.13...3.16 to 3.13...3.25.
1794
    
1795
    The changes listed on cmake-policies(7) for versions 3.17 to 3.25
1796
    shouldn't affect this project.
1015
1797
1016
 src/liblzma/lz/lz_encoder_hash.h | 2 +-
1798
 CMakeLists.txt | 2 +-
1017
 1 file changed, 1 insertion(+), 1 deletion(-)
1799
 1 file changed, 1 insertion(+), 1 deletion(-)
1018
1800
1019
commit ce59b34ec9ac344d62a57cad5f94f695f42cdaee
1801
commit 99fcd57f2ea35eaa94e09f674d5364329c880fa2
1020
Author: Lasse Collin <lasse.collin@tukaani.org>
1802
Author: Lasse Collin <lasse.collin@tukaani.org>
1021
Date:   2019-06-01 21:41:55 +0300
1803
Date:   2023-01-08 00:24:23 +0200
1022
1804
1023
    Update THANKS.
1805
    Update THANKS.
1024
1806
1025
 THANKS | 1 +
1807
 THANKS | 1 +
1026
 1 file changed, 1 insertion(+)
1808
 1 file changed, 1 insertion(+)
1027
1809
1028
commit 94aa3fb568fe41dd4925a961966ed5cf8213bd1f
1810
commit c0c13d9d82eb8a4302c8bbb8b4c5178d285fe9ab
1029
Author: Lasse Collin <lasse.collin@tukaani.org>
1811
Author: Lasse Collin <lasse.collin@tukaani.org>
1030
Date:   2019-06-01 21:36:13 +0300
1812
Date:   2023-01-07 19:50:35 +0200
1031
1813
1032
    liblzma: memcmplen: Use ctz32() from tuklib_integer.h.
1814
    Update THANKS.
1033
    
1034
    The same compiler-specific #ifdefs are already in tuklib_integer.h
1035
1815
1036
 src/liblzma/common/memcmplen.h | 10 +---------
1816
 THANKS | 1 +
1037
 1 file changed, 1 insertion(+), 9 deletions(-)
1817
 1 file changed, 1 insertion(+)
1038
1818
1039
commit 412791486dfb430219d8e30bcbebbfc57a99484a
1819
commit 3d45987451b1c3bb42697b29341824c0e5484cba
1040
Author: Lasse Collin <lasse.collin@tukaani.org>
1820
Author: Lasse Collin <lasse.collin@tukaani.org>
1041
Date:   2019-06-01 21:30:03 +0300
1821
Date:   2023-01-09 11:27:24 +0200
1042
1822
1043
    tuklib_integer: Cleanup MSVC-specific code.
1823
    CMake: Fix a copypaste error in xzdec Windows resource file handling.
1824
    
1825
    It was my mistake. Thanks to Iouri Kharon for the bug report.
1044
1826
1045
 src/common/tuklib_integer.h | 20 +++++++++-----------
1827
 CMakeLists.txt | 4 ++--
1046
 1 file changed, 9 insertions(+), 11 deletions(-)
1828
 1 file changed, 2 insertions(+), 2 deletions(-)
1047
1829
1048
commit efbf6e5f0932e6c1a4250f91ee99059f449f2470
1830
commit 706bce5018d7cf83094e13454a0731169ec119b5
1049
Author: Lasse Collin <lasse.collin@tukaani.org>
1831
Author: Lasse Collin <lasse.collin@tukaani.org>
1050
Date:   2019-06-01 19:01:21 +0300
1832
Date:   2023-01-07 19:50:03 +0200
1051
1833
1052
    liblzma: Use unaligned_readXXne functions instead of type punning.
1834
    CMake/Windows: Add resource files to xz.exe and xzdec.exe.
1053
    
1835
    
1054
    Now gcc -fsanitize=undefined should be clean.
1836
    The command line tools cannot be built with MSVC for now but
1837
    they can be built with MinGW-w64.
1055
    
1838
    
1056
    Thanks to Jeffrey Walton.
1839
    Thanks to Iouri Kharon for the bug report and the original patch.
1057
1840
1058
 src/liblzma/common/memcmplen.h          | 12 ++++++------
1841
 CMakeLists.txt | 16 ++++++++++++++++
1059
 src/liblzma/lzma/lzma_encoder_private.h |  2 +-
1842
 1 file changed, 16 insertions(+)
1060
 2 files changed, 7 insertions(+), 7 deletions(-)
1061
1843
1062
commit 29afef03486d461c23f57150ac5436684bff7811
1844
commit e96dee55df04113c33b387ccdb6cb70935422d91
1063
Author: Lasse Collin <lasse.collin@tukaani.org>
1845
Author: Lasse Collin <lasse.collin@tukaani.org>
1064
Date:   2019-06-01 18:41:16 +0300
1846
Date:   2023-01-09 12:22:05 +0200
1065
1847
1066
    tuklib_integer: Improve unaligned memory access.
1848
    liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022).
1067
    
1849
    
1068
    Now memcpy() or GNU C packed structs for unaligned access instead
1850
    I haven't tested with MSVC myself and there doesn't seem to be
1069
    of type punning. See the comment in this commit for details.
1851
    information about the problem online, so I'm relying on the bug report.
1070
    
1852
    
1071
    Avoiding type punning with unaligned access is needed to
1853
    Thanks to Iouri Kharon for the bug report and the patch.
1072
    silence gcc -fsanitize=undefined.
1073
    
1074
    New functions: unaliged_readXXne and unaligned_writeXXne where
1075
    XX is 16, 32, or 64.
1076
1854
1077
 src/common/tuklib_integer.h | 180 +++++++++++++++++++++++++++++++++++++++++---
1855
 src/liblzma/check/crc64_fast.c | 6 ++++++
1078
 1 file changed, 168 insertions(+), 12 deletions(-)
1856
 1 file changed, 6 insertions(+)
1079
1857
1080
commit 596ed3de4485a4b1d83b5fe506ae9d0a172139b4
1858
commit 52bc1ee34dda9bb6fb40175e5952863066681b77
1081
Author: Lasse Collin <lasse.collin@tukaani.org>
1859
Author: Lasse Collin <lasse.collin@tukaani.org>
1082
Date:   2019-05-13 20:05:17 +0300
1860
Date:   2023-01-07 19:31:15 +0200
1083
1861
1084
    liblzma: Avoid memcpy(NULL, foo, 0) because it is undefined behavior.
1862
    Build: Require that _mm_set_epi64x() is usable to enable CLMUL support.
1085
    
1863
    
1086
    I should have always known this but I didn't. Here is an example
1864
    VS2013 doesn't have _mm_set_epi64x() so this way CLMUL gets
1087
    as a reminder to myself:
1865
    disabled with VS2013.
1088
    
1866
    
1089
        int mycopy(void *dest, void *src, size_t n)
1867
    Thanks to Iouri Kharon for the bug report.
1090
        {
1868
1091
            memcpy(dest, src, n);
1869
 CMakeLists.txt | 3 ++-
1092
            return dest == NULL;
1870
 configure.ac   | 8 ++++++--
1093
        }
1871
 2 files changed, 8 insertions(+), 3 deletions(-)
1872
1873
commit bad44cfe19e8be8ae76755369be2a34abcd2b4fa
1874
Author: Jia Tan <jiat0218@gmail.com>
1875
Date:   2022-12-29 00:25:18 +0800
1876
1877
    Tests: Creates test_index_hash.c
1094
    
1878
    
1095
    In the example, a compiler may assume that dest != NULL because
1879
    Tests all API functions exported from index_hash.h. Does not have a
1096
    passing NULL to memcpy() would be undefined behavior. Testing
1880
    dedicated test for lzma_index_hash_end.
1097
    with GCC 8.2.1, mycopy(NULL, NULL, 0) returns 1 with -O0 and -O1.
1098
    With -O2 the return value is 0 because the compiler infers that
1099
    dest cannot be NULL because it was already used with memcpy()
1100
    and thus the test for NULL gets optimized out.
1101
    
1881
    
1102
    In liblzma, if a null-pointer was passed to memcpy(), there were
1882
    [Minor edits were made by Lasse Collin.]
1103
    no checks for NULL *after* the memcpy() call, so I cautiously
1104
    suspect that it shouldn't have caused bad behavior in practice,
1105
    but it's hard to be sure, and the problematic cases had to be
1106
    fixed anyway.
1107
    
1108
    Thanks to Jeffrey Walton.
1109
1883
1110
 src/liblzma/common/common.c       |  6 +++++-
1884
 .gitignore              |   1 +
1111
 src/liblzma/lz/lz_decoder.c       | 12 +++++++++---
1885
 CMakeLists.txt          |   2 +
1112
 src/liblzma/simple/simple_coder.c | 10 +++++++++-
1886
 tests/Makefile.am       |   3 +
1113
 3 files changed, 23 insertions(+), 5 deletions(-)
1887
 tests/test_index_hash.c | 388 ++++++++++++++++++++++++++++++++++++++++++++++++
1888
 4 files changed, 394 insertions(+)
1114
1889
1115
commit b4b83555c576e1d845a2b98a193b23c021437804
1890
commit 692ccdf5516dfe55fb6e9c5cdfb31f4c02c1ecd1
1116
Author: Lasse Collin <lasse.collin@tukaani.org>
1891
Author: Jia Tan <jiat0218@gmail.com>
1117
Date:   2019-05-11 20:56:08 +0300
1892
Date:   2023-01-05 20:57:25 +0800
1118
1893
1119
    Update THANKS.
1894
    liblzma: Remove common.h include from common/index.h.
1895
    
1896
    common/index.h is needed by liblzma internally and tests. common.h will
1897
    include and define many things that are not needed by the tests.
1898
    
1899
    Also, this prevents include order problems because both common.h and
1900
    lzma.h define LZMA_API. On most platforms it results only in a warning
1901
    but on Windows it would break the build as the definition in common.h
1902
    must be used only for building liblzma itself.
1120
1903
1121
 THANKS | 1 +
1904
 src/liblzma/common/index.c                 | 1 +
1122
 1 file changed, 1 insertion(+)
1905
 src/liblzma/common/index.h                 | 9 +++++++--
1906
 src/liblzma/common/index_decoder.h         | 1 +
1907
 src/liblzma/common/stream_buffer_encoder.c | 1 +
1908
 4 files changed, 10 insertions(+), 2 deletions(-)
1123
1909
1124
commit 8d4906262b45557ed164cd74adb270e6ef7f6f03
1910
commit 2ac7bafc8f07c1edefe96a4a7a040ddfff0eb5bb
1125
Author: Lasse Collin <lasse.collin@tukaani.org>
1911
Author: Jia Tan <jiat0218@gmail.com>
1126
Date:   2019-05-11 20:54:12 +0300
1912
Date:   2022-08-17 20:20:16 +0800
1127
1913
1128
    xz: Update xz man page date.
1914
    liblzma: Add NULL check to lzma_index_hash_append.
1915
    
1916
    This is for consistency with lzma_index_append.
1129
1917
1130
 src/xz/xz.1 | 2 +-
1918
 src/liblzma/common/index_hash.c | 2 +-
1131
 1 file changed, 1 insertion(+), 1 deletion(-)
1919
 1 file changed, 1 insertion(+), 1 deletion(-)
1132
1920
1133
commit 0d318402f8a022f707622c72f8f1894ea476cf89
1921
commit db714d30e0c74d1dd4af1a23ed62b44e0e8e4efc
1134
Author: Antoine Cœur <antoine.coeur@ef.com>
1922
Author: Jia Tan <jiat0218@gmail.com>
1135
Date:   2019-05-08 13:30:57 +0800
1923
Date:   2022-08-17 17:59:51 +0800
1136
1924
1137
    spelling
1925
    liblzma: Replaced hardcoded 0x0 index indicator byte with macro
1138
1926
1139
 Doxyfile.in                            | 2 +-
1927
 src/liblzma/common/index.h             | 3 +++
1140
 NEWS                                   | 2 +-
1928
 src/liblzma/common/index_decoder.c     | 2 +-
1141
 src/liblzma/api/lzma/block.h           | 2 +-
1929
 src/liblzma/common/index_encoder.c     | 2 +-
1142
 src/liblzma/api/lzma/hardware.h        | 2 +-
1930
 src/liblzma/common/index_hash.c        | 2 +-
1143
 src/liblzma/api/lzma/lzma12.h          | 2 +-
1931
 src/liblzma/common/stream_decoder.c    | 3 ++-
1144
 src/liblzma/api/lzma/vli.h             | 2 +-
1932
 src/liblzma/common/stream_decoder_mt.c | 2 +-
1145
 src/liblzma/common/hardware_physmem.c  | 2 +-
1933
 6 files changed, 9 insertions(+), 5 deletions(-)
1146
 src/liblzma/common/index.c             | 4 ++--
1147
 src/liblzma/common/stream_encoder_mt.c | 2 +-
1148
 src/liblzma/common/vli_decoder.c       | 2 +-
1149
 src/liblzma/lz/lz_decoder.c            | 2 +-
1150
 src/scripts/xzgrep.in                  | 2 +-
1151
 src/xz/args.c                          | 2 +-
1152
 src/xz/coder.c                         | 4 ++--
1153
 src/xz/main.c                          | 2 +-
1154
 src/xz/mytime.h                        | 2 +-
1155
 src/xz/private.h                       | 2 +-
1156
 src/xz/xz.1                            | 2 +-
1157
 windows/build.bash                     | 2 +-
1158
 19 files changed, 21 insertions(+), 21 deletions(-)
1159
1934
1160
commit aeb3be8ac4c4b06a745c3799b80b38159fb78b1a
1935
commit 39d2585dcd3e827cfc3c46025ab6708c4aeb36c6
1161
Author: Lasse Collin <lasse.collin@tukaani.org>
1936
Author: Jia Tan <jiat0218@gmail.com>
1162
Date:   2019-03-04 22:49:04 +0200
1937
Date:   2023-01-06 20:43:31 +0800
1163
1938
1164
    README: Update translation instructions.
1939
    Style: Change #if !defined() to #ifndef in mythread.h.
1940
1941
 src/common/mythread.h | 2 +-
1942
 1 file changed, 1 insertion(+), 1 deletion(-)
1943
1944
commit 3f0130aa288e4ed57ace609517db9700a41223af
1945
Author: Jia Tan <jiat0218@gmail.com>
1946
Date:   2023-01-06 20:35:55 +0800
1947
1948
    Build: Add missing stream_decoder_mt.c to .vcxproj files.
1165
    
1949
    
1166
    XZ Utils is now part of the Translation Project
1950
    The line in the .vcxproj files for building with was missing in 5.4.0.
1167
    <https://translationproject.org/>.
1951
    Thank to Hajin Jang for reporting the issue.
1168
1952
1169
 README | 32 +++++++++++++-------------------
1953
 windows/vs2013/liblzma.vcxproj     | 1 +
1170
 1 file changed, 13 insertions(+), 19 deletions(-)
1954
 windows/vs2013/liblzma_dll.vcxproj | 1 +
1955
 windows/vs2017/liblzma.vcxproj     | 1 +
1956
 windows/vs2017/liblzma_dll.vcxproj | 1 +
1957
 windows/vs2019/liblzma.vcxproj     | 1 +
1958
 windows/vs2019/liblzma_dll.vcxproj | 1 +
1959
 6 files changed, 6 insertions(+)
1171
1960
1172
commit 0c238dc3feb0a3eea1e713feb8d338c8dfba9f74
1961
commit f204d1050a515d17851eed9049862ce5a9c729c1
1173
Author: Lasse Collin <lasse.collin@tukaani.org>
1962
Author: Lasse Collin <lasse.collin@tukaani.org>
1174
Date:   2018-12-20 20:42:29 +0200
1963
Date:   2023-01-04 22:40:54 +0200
1175
1964
1176
    Update THANKS.
1965
    Update THANKS.
1177
1966
1178
 THANKS | 1 +
1967
 THANKS | 1 +
1179
 1 file changed, 1 insertion(+)
1968
 1 file changed, 1 insertion(+)
1180
1969
1181
commit 3ca432d9cce4bf7e793de173dd22025b68611c42
1970
commit 34a9c2d650d6c30bd88e1b21910dd863209aa884
1182
Author: Lasse Collin <lasse.collin@tukaani.org>
1971
Author: Lasse Collin <lasse.collin@tukaani.org>
1183
Date:   2018-12-14 20:34:30 +0200
1972
Date:   2023-01-04 18:40:28 +0200
1184
1973
1185
    xz: Fix a crash in progress indicator when in passthru mode.
1974
    Tests: Adjust style in test_compress.sh.
1975
1976
 tests/test_compress.sh | 12 +++++++-----
1977
 1 file changed, 7 insertions(+), 5 deletions(-)
1978
1979
commit 761c208d58e0c3daa0f46e68b406adfc318d2a46
1980
Author: Jia Tan <jiat0218@gmail.com>
1981
Date:   2023-01-04 23:58:58 +0800
1982
1983
    Tests: Replace non portable shell parameter expansion
1186
    
1984
    
1187
    "xz -dcfv not_an_xz_file" crashed (all four options are
1985
    The shell parameter expansion using # and ## is not supported in
1188
    required to trigger it). It caused xz to call
1986
    Solaris 10 Bourne shell (/bin/sh). Even though this is POSIX, it is not fully
1189
    lzma_get_progress(&strm, ...) when no coder was initialized
1987
    portable, so we should avoid it.
1190
    in strm. In this situation strm.internal is NULL which leads
1988
1191
    to a crash in lzma_get_progress().
1989
 tests/create_compress_files.c          |  2 +-
1990
 tests/test_compress.sh                 | 20 +++++++++++++-------
1991
 tests/test_compress_prepared_bcj_sparc |  2 +-
1992
 tests/test_compress_prepared_bcj_x86   |  2 +-
1993
 4 files changed, 16 insertions(+), 10 deletions(-)
1994
1995
commit 8a7cbc074547e55e57f4f3696f69bedeb05e14c4
1996
Author: Jia Tan <jiat0218@gmail.com>
1997
Date:   2023-01-03 21:02:38 +0800
1998
1999
    Translations: Add Korean translation of man pages.
1192
    
2000
    
1193
    The bug was introduced when xz started using lzma_get_progress()
2001
    Thanks to Seong-ho Cho
1194
    to get progress info for multi-threaded compression, so the
1195
    bug is present in versions 5.1.3alpha and higher.
1196
    
1197
    Thanks to Filip Palian <Filip.Palian@pjwstk.edu.pl> for
1198
    the bug report.
1199
2002
1200
 src/xz/coder.c   | 11 +++++++----
2003
 po4a/ko.po     | 5552 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1201
 src/xz/message.c | 18 ++++++++++++++++--
2004
 po4a/po4a.conf |    2 +-
1202
 src/xz/message.h |  3 ++-
2005
 2 files changed, 5553 insertions(+), 1 deletion(-)
1203
 3 files changed, 25 insertions(+), 7 deletions(-)
1204
2006
1205
commit fcc419e3c3f77a8b6fc5056a86b1b8abbe266e62
2007
commit ca2af49bb8be5995eb0e6a3abf457622626d49a7
1206
Author: Lasse Collin <lasse.collin@tukaani.org>
2008
Author: Jia Tan <jiat0218@gmail.com>
1207
Date:   2018-11-22 17:20:31 +0200
2009
Date:   2023-01-03 20:47:27 +0800
1208
2010
1209
    xz: Update man page timestamp.
2011
    Translations: Update the Esperanto translation.
1210
2012
1211
 src/xz/xz.1 | 2 +-
2013
 po/eo.po | 620 ++++++++++++++++++++++++++++++++++-----------------------------
1212
 1 file changed, 1 insertion(+), 1 deletion(-)
2014
 1 file changed, 332 insertions(+), 288 deletions(-)
1213
2015
1214
commit 5a2fc3cd0194e55df329dd29f805299aaca5f32f
2016
commit bfba3394aed03311fe9a746d3141b2e16d8b9325
1215
Author: Pavel Raiskup <praiskup@redhat.com>
2017
Author: Lasse Collin <lasse.collin@tukaani.org>
1216
Date:   2018-11-22 15:14:34 +0100
2018
Date:   2023-01-02 17:05:07 +0200
1217
2019
1218
    'have have' typos
2020
    Build: Fix config.h comments.
1219
2021
1220
 src/xz/signals.c | 2 +-
2022
 configure.ac          | 2 +-
1221
 src/xz/xz.1      | 2 +-
2023
 m4/tuklib_progname.m4 | 2 +-
1222
 2 files changed, 2 insertions(+), 2 deletions(-)
2024
 2 files changed, 2 insertions(+), 2 deletions(-)
1223
2025
1224
commit 7143b04fe49390807f355b1dad686a3d8c4dbdcf
2026
commit 507648ad114c2ae0cd6d181063e1ac07e8106718
2027
Author: Jia Tan <jiat0218@gmail.com>
2028
Date:   2023-01-02 22:33:48 +0800
2029
2030
    Build: Only define HAVE_PROGRAM_INVOCATION_NAME if it is set to 1.
2031
    
2032
    HAVE_DECL_PROGRAM_INVOCATION_NAME is renamed to
2033
    HAVE_PROGRAM_INVOCATION_NAME. Previously,
2034
    HAVE_DECL_PROGRAM_INVOCATION_NAME was always set when
2035
    building with autotools. CMake would only set this when it was 1, and the
2036
    dos/config.h did not define it. The new macro definition is consistent
2037
    across build systems.
2038
2039
 cmake/tuklib_progname.cmake  | 5 ++---
2040
 m4/tuklib_progname.m4        | 5 ++++-
2041
 src/common/tuklib_progname.c | 2 +-
2042
 src/common/tuklib_progname.h | 2 +-
2043
 4 files changed, 8 insertions(+), 6 deletions(-)
2044
2045
commit ab5229d32adfec1f3fbc95228d9dd6f560732ab5
1225
Author: Lasse Collin <lasse.collin@tukaani.org>
2046
Author: Lasse Collin <lasse.collin@tukaani.org>
1226
Date:   2018-07-27 18:10:44 +0300
2047
Date:   2022-12-30 20:10:08 +0200
1227
2048
1228
    xzless: Rename unused variables to silence static analysers.
2049
    Tests: test_check: Test corner cases of CLMUL CRC64.
2050
2051
 tests/test_check.c | 27 +++++++++++++++++++++++++++
2052
 1 file changed, 27 insertions(+)
2053
2054
commit 8791826f31733fda0a13b411c2ed930faaeb25aa
2055
Author: Lasse Collin <lasse.collin@tukaani.org>
2056
Date:   2022-12-30 19:36:49 +0200
2057
2058
    Tests: Clarify a comment in test_lzip_decoder.c.
2059
2060
 tests/test_lzip_decoder.c | 8 ++++++--
2061
 1 file changed, 6 insertions(+), 2 deletions(-)
2062
2063
commit c410d812ea12bfc74f6b727c1a799478c79f19ca
2064
Author: Jia Tan <jiat0218@gmail.com>
2065
Date:   2022-12-29 01:55:19 +0800
2066
2067
    xz: Includes <time.h> and <sys/time.h> conditionally in mytime.c.
1229
    
2068
    
1230
    In this particular case I don't see this affecting readability
2069
    Previously, mytime.c depended on mythread.h for <time.h> to be included.
1231
    of the code.
2070
2071
 src/xz/mytime.c | 4 +++-
2072
 1 file changed, 3 insertions(+), 1 deletion(-)
2073
2074
commit 501c6013d4a59fae5d4368e9657c4885493db809
2075
Author: Jia Tan <jiat0218@gmail.com>
2076
Date:   2022-12-29 01:15:27 +0800
2077
2078
    liblzma: Includes sys/time.h conditionally in mythread
1232
    
2079
    
1233
    Thanks to Pavel Raiskup.
2080
    Previously, <sys/time.h> was always included, even if mythread only used
2081
    clock_gettime. <time.h> is still needed even if clock_gettime is not used
2082
    though because struct timespec is needed for mythread_condtime.
1234
2083
1235
 src/scripts/xzless.in | 2 +-
2084
 src/common/mythread.h | 8 +++++++-
1236
 1 file changed, 1 insertion(+), 1 deletion(-)
2085
 1 file changed, 7 insertions(+), 1 deletion(-)
1237
2086
1238
commit 273c33297bb69621045ed19665eaf8338bcf4a50
2087
commit 9e3cb514b5b95bd235dcdff3db4436f57444ee4f
1239
Author: Lasse Collin <lasse.collin@tukaani.org>
2088
Author: Jia Tan <jiat0218@gmail.com>
1240
Date:   2018-07-27 16:02:58 +0300
2089
Date:   2022-12-29 01:10:53 +0800
1241
2090
1242
    liblzma: Remove an always-true condition from lzma_index_cat().
2091
    Build: No longer require HAVE_DECL_CLOCK_MONOTONIC to always be set.
1243
    
2092
    
1244
    This should help static analysis tools to see that newg
2093
    Previously, if threading was enabled HAVE_DECL_CLOCK_MONOTONIC would always
1245
    isn't leaked.
2094
    be set to 0 or 1. However, this macro was needed in xz so if xz was not
2095
    built with threading and HAVE_DECL_CLOCK_MONOTONIC was not defined but
2096
    HAVE_CLOCK_GETTIME was, it caused a warning during build. Now,
2097
    HAVE_DECL_CLOCK_MONOTONIC has been renamed to HAVE_CLOCK_MONOTONIC and
2098
    will only be set if it is 1.
2099
2100
 CMakeLists.txt        | 8 +++-----
2101
 configure.ac          | 5 ++++-
2102
 src/common/mythread.h | 4 ++--
2103
 src/xz/mytime.c       | 5 ++---
2104
 4 files changed, 11 insertions(+), 11 deletions(-)
2105
2106
commit 6fc3e5467911572fa9af4021ea46396261aae796
2107
Author: Jia Tan <jiat0218@gmail.com>
2108
Date:   2022-12-28 01:14:07 +0800
2109
2110
    Translations: Add Ukrainian translations of man pages.
1246
    
2111
    
1247
    Thanks to Pavel Raiskup.
2112
    Thanks to Yuri Chornoivan
1248
2113
1249
 src/liblzma/common/index.c | 4 ++--
2114
 po4a/po4a.conf |    2 +-
1250
 1 file changed, 2 insertions(+), 2 deletions(-)
2115
 po4a/uk.po     | 3676 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2116
 2 files changed, 3677 insertions(+), 1 deletion(-)
1251
2117
1252
commit 65b4aba6d06d2cd24ba9ad01fa389c238ad8f352
2118
commit e84f2ab7f8bc38cd8f8befa0bb398656c3c11f8e
1253
Author: Lasse Collin <lasse.collin@tukaani.org>
2119
Author: Jia Tan <jiat0218@gmail.com>
1254
Date:   2018-05-19 21:23:25 +0300
2120
Date:   2022-12-22 23:14:53 +0800
1255
2121
1256
    liblzma: Improve lzma_properties_decode() API documentation.
2122
    liblzma: Update documentation for lzma_filter_encoder.
1257
2123
1258
 src/liblzma/api/lzma/filter.h | 7 ++++---
2124
 src/liblzma/common/filter_encoder.c | 7 +++++--
1259
 1 file changed, 4 insertions(+), 3 deletions(-)
2125
 1 file changed, 5 insertions(+), 2 deletions(-)
1260
2126
1261
commit 531e78e5a253a3e2c4d4dd1505acaccee48f4083
2127
commit b14b8dbba9a3b232787ae218b46430b9246383dd
1262
Author: Lasse Collin <lasse.collin@tukaani.org>
2128
Author: Jia Tan <jiat0218@gmail.com>
1263
Date:   2019-05-01 16:52:36 +0300
2129
Date:   2022-12-21 21:12:03 +0800
1264
2130
1265
    Update THANKS.
2131
    Tests: Adds lzip decoder tests
1266
2132
1267
 THANKS | 1 +
2133
 .gitignore                |   1 +
1268
 1 file changed, 1 insertion(+)
2134
 tests/Makefile.am         |   2 +
2135
 tests/test_lzip_decoder.c | 471 ++++++++++++++++++++++++++++++++++++++++++++++
2136
 3 files changed, 474 insertions(+)
1269
2137
1270
commit 905de7e93528ca5a47039e7e1e5270163f9fc67e
2138
commit 09a114805e1d4f9a02a06cee7dbf2f5014d1f710
1271
Author: Lasse Collin <lasse.collin@tukaani.org>
2139
Author: Jia Cheong Tan <jiat0218@gmail.com>
1272
Date:   2019-05-01 16:43:16 +0300
2140
Date:   2022-12-20 22:05:21 +0800
1273
2141
1274
    Windows: Update VS version in windows/vs2019/config.h.
2142
    Doxygen: Update .gitignore for generating docs for in source build.
2143
    
2144
    In source builds are not recommended, but we should still ignore
2145
    the generated artifacts.
1275
2146
1276
 windows/vs2019/config.h | 2 +-
2147
 .gitignore | 2 ++
1277
 1 file changed, 1 insertion(+), 1 deletion(-)
2148
 1 file changed, 2 insertions(+)
1278
2149
1279
commit 0ffd30e172fd18cc619823b2a86448bf56a67e22
2150
commit d3e6fe44196bf9478ad193522e2b48febf2eca6b
1280
Author: Julien Marrec <julien.marrec@gmail.com>
2151
Author: Jia Tan <jiat0218@gmail.com>
1281
Date:   2019-04-25 17:44:06 +0200
2152
Date:   2022-12-20 20:46:44 +0800
1282
2153
1283
    Windows: Upgrade solution itself
2154
    liblzma: Fix lzma_microlzma_encoder() return value.
2155
    
2156
    Using return_if_error on lzma_lzma_lclppb_encode was improper because
2157
    return_if_error is expecting an lzma_ret value, but
2158
    lzma_lzma_lclppb_encode returns a boolean. This could result in
2159
    lzma_microlzma_encoder, which would be misleading for applications.
1284
2160
1285
 windows/vs2019/xz_win.sln | 7 +++++--
2161
 src/liblzma/common/microlzma_encoder.c | 3 ++-
1286
 1 file changed, 5 insertions(+), 2 deletions(-)
2162
 1 file changed, 2 insertions(+), 1 deletion(-)
1287
2163
1288
commit c2ef96685fc7ca36311649eeb2284b9808292040
2164
commit b55a27b46f52524a4a8d9cdef03e6689cefc1375
1289
Author: Julien Marrec <julien.marrec@gmail.com>
2165
Author: Lasse Collin <lasse.collin@tukaani.org>
1290
Date:   2019-04-25 17:40:24 +0200
2166
Date:   2022-12-16 18:30:02 +0200
1291
2167
1292
    Windows: Upgrade solution with VS2019
2168
    liblzma: Update authors list in arm64.c.
1293
2169
1294
 windows/vs2019/liblzma.vcxproj     | 15 ++++++++-------
2170
 src/liblzma/simple/arm64.c | 1 +
1295
 windows/vs2019/liblzma_dll.vcxproj | 15 ++++++++-------
2171
 1 file changed, 1 insertion(+)
1296
 2 files changed, 16 insertions(+), 14 deletions(-)
1297
2172
1298
commit 25fccaf00bea399d8aa026e5b8fa254ce196e6e0
2173
commit 2fd28d2b7cec3468324a6f15eff7e73c285b1d7d
1299
Author: Julien Marrec <julien.marrec@gmail.com>
2174
Author: Jia Tan <jiat0218@gmail.com>
1300
Date:   2019-04-25 17:39:32 +0200
2175
Date:   2022-12-16 20:58:55 +0800
1301
2176
1302
    Windows: Duplicate windows/vs2017 before upgrading
2177
    CMake: Update .gitignore for CMake artifacts from in source build.
2178
    
2179
    In source builds are not recommended, but we can make it easier
2180
    by ignoring the generated artifacts from CMake.
1303
2181
1304
 windows/vs2019/config.h            | 148 ++++++++++++++
2182
 .gitignore | 23 +++++++++++++++++++++++
1305
 windows/vs2019/liblzma.vcxproj     | 354 ++++++++++++++++++++++++++++++++++
2183
 1 file changed, 23 insertions(+)
1306
 windows/vs2019/liblzma_dll.vcxproj | 383 +++++++++++++++++++++++++++++++++++++
1307
 windows/vs2019/xz_win.sln          |  48 +++++
1308
 4 files changed, 933 insertions(+)
1309
2184
1310
commit 1424078d6328291c7c524b64328ce9660617cb24
2185
commit b69da6d4bb6bb11fc0cf066920791990d2b22a06
1311
Author: Lasse Collin <lasse.collin@tukaani.org>
2186
Author: Lasse Collin <lasse.collin@tukaani.org>
1312
Date:   2019-01-13 17:29:23 +0200
2187
Date:   2022-12-13 20:37:17 +0200
1313
2188
1314
    Windows/VS2017: Omit WindowsTargetPlatformVersion from project files.
2189
    Bump version to 5.4.0 and soname to 5.4.0.
2190
2191
 src/liblzma/Makefile.am         | 2 +-
2192
 src/liblzma/api/lzma/version.h  | 6 +++---
2193
 src/liblzma/liblzma_generic.map | 2 +-
2194
 src/liblzma/liblzma_linux.map   | 2 +-
2195
 4 files changed, 6 insertions(+), 6 deletions(-)
2196
2197
commit 20869eb3fb280ff4f271ef527b12b6bf68b05e19
2198
Author: Lasse Collin <lasse.collin@tukaani.org>
2199
Date:   2022-12-13 20:29:39 +0200
2200
2201
    Update INSTALL: CMake on Windows isn't experimental anymore.
1315
    
2202
    
1316
    I understood that if a WTPV is specified, it's often wrong
2203
    Using CMake to build liblzma should work on a few other OSes
1317
    because different VS installations have different SDK version
2204
    but building the command line tools is still subtly broken.
1318
    installed. Omitting the WTPV tag makes VS2017 default to
1319
    Windows SDK 8.1 which often is also missing, so in any case
1320
    people may need to specify the WTPV before building. But some
1321
    day in the future a missing WTPV tag will start to default to
1322
    the latest installed SDK which sounds reasonable:
1323
    
2205
    
1324
    https://developercommunity.visualstudio.com/content/problem/140294/windowstargetplatformversion-makes-it-impossible-t.html
2206
    It is known that shared library versioning may differ between
1325
    
2207
    CMake and Libtool builds on some OSes, most notably Darwin.
1326
    Thanks to "dom".
1327
2208
1328
 windows/INSTALL-MSVC.txt           | 4 ++++
2209
 INSTALL | 10 ++++------
1329
 windows/vs2017/liblzma.vcxproj     | 1 -
2210
 1 file changed, 4 insertions(+), 6 deletions(-)
1330
 windows/vs2017/liblzma_dll.vcxproj | 1 -
1331
 3 files changed, 4 insertions(+), 2 deletions(-)
1332
2211
1333
commit b5be61cc06088bb07f488f9baf7d447ff47b37c1
2212
commit cbbd84451944e3e8c63acfaa3c923f6d8aff7852
1334
Author: Lasse Collin <lasse.collin@tukaani.org>
2213
Author: Lasse Collin <lasse.collin@tukaani.org>
1335
Date:   2018-04-29 19:00:06 +0300
2214
Date:   2022-12-13 19:47:53 +0200
1336
2215
1337
    Bump version and soname for 5.2.4.
2216
    Add NEWS for 5.4.0.
1338
2217
1339
 src/liblzma/Makefile.am        | 2 +-
2218
 NEWS | 202 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1340
 src/liblzma/api/lzma/version.h | 2 +-
2219
 1 file changed, 202 insertions(+)
1341
 2 files changed, 2 insertions(+), 2 deletions(-)
1342
2220
1343
commit c47fa6d06745bb2e99866e76b81ac7a9c5a8bfec
2221
commit c3e94d37e8d10a3e96019864b6f5d7b578db2c14
1344
Author: Lasse Collin <lasse.collin@tukaani.org>
2222
Author: Lasse Collin <lasse.collin@tukaani.org>
1345
Date:   2018-04-29 18:48:00 +0300
2223
Date:   2022-12-13 17:41:20 +0200
1346
2224
1347
    extra/scanlzma: Fix compiler warnings.
2225
    Fix a typo in NEWS.
1348
2226
1349
 extra/scanlzma/scanlzma.c | 6 +++++-
2227
 NEWS | 2 +-
1350
 1 file changed, 5 insertions(+), 1 deletion(-)
2228
 1 file changed, 1 insertion(+), 1 deletion(-)
1351
2229
1352
commit 7b350fe21aa4fd6495a3b6188a40e3f1ae7c0edf
2230
commit 0d2a2e0a545c3da2b3e9500f1e531eb903087245
1353
Author: Lasse Collin <lasse.collin@tukaani.org>
2231
Author: Lasse Collin <lasse.collin@tukaani.org>
1354
Date:   2018-04-29 18:15:37 +0300
2232
Date:   2022-12-13 17:41:03 +0200
1355
2233
1356
    Add NEWS for 5.2.4.
2234
    Add NEWS for 5.2.10.
1357
2235
1358
 NEWS | 27 +++++++++++++++++++++++++++
2236
 NEWS | 12 ++++++++++++
1359
 1 file changed, 27 insertions(+)
2237
 1 file changed, 12 insertions(+)
1360
2238
1361
commit 5801591162a280aa52d156dfde42c531ec7fd8b6
2239
commit 177ece1c8eb007188fb1b04eff09ca2193fbdea6
1362
Author: Lasse Collin <lasse.collin@tukaani.org>
2240
Author: Lasse Collin <lasse.collin@tukaani.org>
1363
Date:   2018-02-06 19:36:30 +0200
2241
Date:   2022-12-13 12:30:45 +0200
1364
2242
1365
    Update THANKS.
2243
    Tests: Fix a typo in tests/files/README.
1366
2244
1367
 THANKS | 2 ++
2245
 tests/files/README | 2 +-
1368
 1 file changed, 2 insertions(+)
2246
 1 file changed, 1 insertion(+), 1 deletion(-)
1369
2247
1370
commit c4a616f4536146f8906e1b4412eefeec07b28fae
2248
commit 60f45bdbaa6b07558b3f4baac285739b0c6342f5
1371
Author: Ben Boeckel <mathstuf@gmail.com>
2249
Author: Lasse Collin <lasse.collin@tukaani.org>
1372
Date:   2018-01-29 13:58:18 -0500
2250
Date:   2022-12-13 12:30:09 +0200
1373
2251
1374
    nothrow: use noexcept for C++11 and newer
2252
    Tests: Add two ARM64 test files.
1375
    
1376
    In C++11, the `throw()` specifier is deprecated and `noexcept` is
1377
    preffered instead.
1378
2253
1379
 src/liblzma/api/lzma.h | 6 +++++-
2254
 tests/files/README                  |   7 +++++++
1380
 1 file changed, 5 insertions(+), 1 deletion(-)
2255
 tests/files/good-1-arm64-lzma2-1.xz | Bin 0 -> 512 bytes
2256
 tests/files/good-1-arm64-lzma2-2.xz | Bin 0 -> 488 bytes
2257
 tests/test_files.sh                 |   5 +++++
2258
 4 files changed, 12 insertions(+)
1381
2259
1382
commit 0b8947782ff3c5ef830a7f85412e44dcf3cdeb77
2260
commit f5e419550619c548c7c35d7e367cf00580a56521
1383
Author: Lasse Collin <lasse.collin@tukaani.org>
2261
Author: Lasse Collin <lasse.collin@tukaani.org>
1384
Date:   2018-02-06 18:02:48 +0200
2262
Date:   2022-12-12 22:44:21 +0200
1385
2263
1386
    liblzma: Remove incorrect #ifdef from range_common.h.
2264
    Translations: Update the Catalan translation.
1387
    
1388
    In most cases it was harmless but it could affect some
1389
    custom build systems.
1390
    
1391
    Thanks to Pippijn van Steenhoven.
1392
2265
1393
 src/liblzma/rangecoder/range_common.h | 4 +---
2266
 po/ca.po | 657 +++++++++++++++++++++++++++++----------------------------------
1394
 1 file changed, 1 insertion(+), 3 deletions(-)
2267
 1 file changed, 306 insertions(+), 351 deletions(-)
1395
2268
1396
commit 48f3b9f73ffea7f55d5678997aba0e79d2e82168
2269
commit 0fb9d355da3789b1757040af475b4e6bbc8b8af8
1397
Author: Lasse Collin <lasse.collin@tukaani.org>
2270
Author: Lasse Collin <lasse.collin@tukaani.org>
1398
Date:   2018-01-10 22:10:39 +0200
2271
Date:   2022-12-12 19:18:12 +0200
1399
2272
1400
    Update THANKS.
2273
    Update THANKS.
1401
2274
1402
 THANKS | 1 +
2275
 THANKS | 1 +
1403
 1 file changed, 1 insertion(+)
2276
 1 file changed, 1 insertion(+)
1404
2277
1405
commit a3ce3e902342be37c626a561ce3d9ffcf27d0f94
2278
commit e5b6c161c61a37c54dcb76a99bbb83ac4abe02dc
1406
Author: Lasse Collin <lasse.collin@tukaani.org>
2279
Author: Lasse Collin <lasse.collin@tukaani.org>
1407
Date:   2018-01-10 21:54:27 +0200
2280
Date:   2022-12-12 19:07:58 +0200
1408
2281
1409
    tuklib_integer: New Intel C compiler needs immintrin.h.
2282
    Update AUTHORS.
2283
2284
 AUTHORS | 12 ++++++++++++
2285
 1 file changed, 12 insertions(+)
2286
2287
commit f2d98e691099d82054d5f3071ef6f5e809932e44
2288
Author: Lasse Collin <lasse.collin@tukaani.org>
2289
Date:   2022-12-12 15:31:14 +0200
2290
2291
    Docs: Omit multi-threaded decompress from TODO.
1410
    
2292
    
1411
    Thanks to Melanie Blower (Intel) for the patch.
2293
    The TODO file outdated still.
1412
2294
1413
 src/common/tuklib_integer.h | 11 +++++++++++
2295
 TODO | 2 --
1414
 1 file changed, 11 insertions(+)
2296
 1 file changed, 2 deletions(-)
1415
2297
1416
commit 4505ca483985f88c6923c05a43b4327feaab83b1
2298
commit b42908c42a4cc091db45a7e5ba0e0ecceaa3f6da
1417
Author: Lasse Collin <lasse.collin@tukaani.org>
2299
Author: Lasse Collin <lasse.collin@tukaani.org>
1418
Date:   2017-09-24 20:04:24 +0300
2300
Date:   2022-12-11 21:16:09 +0200
1419
2301
1420
    Update THANKS.
2302
    Docs: Update xz-file-format.txt to 1.1.0 for ARM64 filter.
1421
2303
1422
 THANKS | 1 +
2304
 doc/xz-file-format.txt | 29 ++++++++++++++++++++++-------
1423
 1 file changed, 1 insertion(+)
2305
 1 file changed, 22 insertions(+), 7 deletions(-)
1424
2306
1425
commit 1ef3cc226e3ce173575c218238b71a4eecabc470
2307
commit 854f2f5946b353cb0963fd6dfd54d363adc89b9f
1426
Author: Lasse Collin <lasse.collin@tukaani.org>
2308
Author: Lasse Collin <lasse.collin@tukaani.org>
1427
Date:   2017-09-16 20:36:20 +0300
2309
Date:   2022-12-11 21:13:57 +0200
1428
2310
1429
    Windows: Fix paths in VS project files.
2311
    xz: Rename --experimental-arm64 to --arm64.
1430
    
1431
    Some paths use slashes instead of backslashes as directory
1432
    separators... now it should work (I tested VS2013 version).
1433
2312
1434
 windows/vs2013/liblzma.vcxproj     | 12 ++++++------
2313
 src/xz/args.c | 2 +-
1435
 windows/vs2013/liblzma_dll.vcxproj | 24 ++++++++++++------------
2314
 1 file changed, 1 insertion(+), 1 deletion(-)
1436
 windows/vs2017/liblzma.vcxproj     | 12 ++++++------
1437
 windows/vs2017/liblzma_dll.vcxproj | 24 ++++++++++++------------
1438
 4 files changed, 36 insertions(+), 36 deletions(-)
1439
2315
1440
commit e775d2a8189d24f60470e6e49d8af881df3a1680
2316
commit 31dbd1e5fb65831915a7bbb531c3f19aea8d57a5
1441
Author: Lasse Collin <lasse.collin@tukaani.org>
2317
Author: Lasse Collin <lasse.collin@tukaani.org>
1442
Date:   2017-09-16 12:54:23 +0300
2318
Date:   2022-12-11 21:13:06 +0200
1443
2319
1444
    Windows: Add project files for VS2017.
2320
    liblzma: Change LZMA_FILTER_ARM64 to the official Filter ID 0x0A.
1445
    
1446
    These files match the v5.2 branch (no file info decoder).
1447
2321
1448
 windows/vs2017/config.h            | 148 ++++++++++++++
2322
 src/liblzma/api/lzma/bcj.h | 6 +-----
1449
 windows/vs2017/liblzma.vcxproj     | 355 ++++++++++++++++++++++++++++++++++
2323
 1 file changed, 1 insertion(+), 5 deletions(-)
1450
 windows/vs2017/liblzma_dll.vcxproj | 384 +++++++++++++++++++++++++++++++++++++
1451
 windows/vs2017/xz_win.sln          |  48 +++++
1452
 4 files changed, 935 insertions(+)
1453
2324
1454
commit 10e02e0fbb6e2173f8b41f6e39b7b570f47dd74d
2325
commit 01b3549e523edac899ec4925b282ceddd20da116
1455
Author: Lasse Collin <lasse.collin@tukaani.org>
2326
Author: Lasse Collin <lasse.collin@tukaani.org>
1456
Date:   2017-09-16 12:39:43 +0300
2327
Date:   2022-12-08 19:24:22 +0200
1457
2328
1458
    Windows: Move VS2013 files into windows/vs2013 directory.
2329
    xz: Make args_info.files_name a const pointer.
1459
2330
1460
 windows/{ => vs2013}/config.h            |   0
2331
 src/xz/args.c | 2 +-
1461
 windows/{ => vs2013}/liblzma.vcxproj     | 278 +++++++++++++++---------------
2332
 src/xz/args.h | 2 +-
1462
 windows/{ => vs2013}/liblzma_dll.vcxproj | 280 +++++++++++++++----------------
2333
 2 files changed, 2 insertions(+), 2 deletions(-)
1463
 windows/{ => vs2013}/xz_win.sln          |   0
1464
 4 files changed, 279 insertions(+), 279 deletions(-)
1465
2334
1466
commit 06eebd4543196ded36fa9b8b9544195b38b24ef2
2335
commit bc665b84ea6bf7946394a08122177efe41b26a5f
1467
Author: Lasse Collin <lasse.collin@tukaani.org>
2336
Author: Lasse Collin <lasse.collin@tukaani.org>
1468
Date:   2017-08-14 20:08:33 +0300
2337
Date:   2022-12-08 19:18:16 +0200
1469
2338
1470
    Fix or hide warnings from GCC 7's -Wimplicit-fallthrough.
2339
    xz: Don't modify argv[].
2340
    
2341
    The code that parses --memlimit options and --block-list modified
2342
    the argv[] when parsing the option string from optarg. This was
2343
    visible in "ps auxf" and such and could be confusing. I didn't
2344
    understand it back in the day when I wrote that code. Now a copy
2345
    is allocated when modifiable strings are needed.
1471
2346
1472
 src/liblzma/lzma/lzma_decoder.c | 6 ++++++
2347
 src/xz/args.c | 23 +++++++++++++++++++----
1473
 src/xz/list.c                   | 2 ++
2348
 1 file changed, 19 insertions(+), 4 deletions(-)
1474
 2 files changed, 8 insertions(+)
1475
2349
1476
commit ea4ea1dffafebaa8b2770bf3eca46900e4dd22dc
2350
commit a13064e1c290de7933db72b6dffbd65cfce59c9f
1477
Author: Alexey Tourbin <alexey.tourbin@gmail.com>
2351
Author: Lasse Collin <lasse.collin@tukaani.org>
1478
Date:   2017-05-16 23:56:35 +0300
2352
Date:   2022-12-08 18:18:57 +0200
1479
2353
1480
    Docs: Fix a typo in a comment in doc/examples/02_decompress.c.
2354
    Translations: Update the German man page translations.
1481
2355
1482
 doc/examples/02_decompress.c | 2 +-
2356
 po4a/de.po | 4570 ++++++++++++++++++------------------------------------------
1483
 1 file changed, 1 insertion(+), 1 deletion(-)
2357
 1 file changed, 1374 insertions(+), 3196 deletions(-)
1484
2358
1485
commit eb2ef4c79bf405ea0d215f3b1df3d0eaf5e1d27b
2359
commit 8bdbe42a8d0d75dff70206b923fc4bce5c69a40a
2360
Author: Jia Tan <jiat0218@gmail.com>
2361
Date:   2022-12-06 23:05:56 +0800
2362
2363
    Translations: Update the German translation.
2364
2365
 po/de.po | 586 ++++++++++++++++++++++++++++++++++-----------------------------
2366
 1 file changed, 315 insertions(+), 271 deletions(-)
2367
2368
commit 5c304b57c24ef40ff57f864301065f0244c05bde
2369
Author: Jia Tan <jiat0218@gmail.com>
2370
Date:   2022-12-06 23:04:25 +0800
2371
2372
    Translations: Update the Turkish translation.
2373
2374
 po/tr.po | 221 +++++++++++++++++++++++++++++++--------------------------------
2375
 1 file changed, 108 insertions(+), 113 deletions(-)
2376
2377
commit 6d86781fdb937970486500447ebb49b98244235b
2378
Author: Jia Tan <jiat0218@gmail.com>
2379
Date:   2022-12-06 23:02:11 +0800
2380
2381
    Translations: Update the Croatian translation.
2382
2383
 po/hr.po | 228 +++++++++++++++++++++++++++++++--------------------------------
2384
 1 file changed, 113 insertions(+), 115 deletions(-)
2385
2386
commit 7a5b4b8075eb36026b1796f04ffed5830c42396a
2387
Author: Jia Tan <jiat0218@gmail.com>
2388
Date:   2022-12-06 22:56:30 +0800
2389
2390
    Translations: Add Romanian translation of man pages.
2391
    
2392
    Thanks to Remus-Gabriel Chelu.
2393
2394
 po4a/po4a.conf |    2 +-
2395
 po4a/ro.po     | 3692 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2396
 2 files changed, 3693 insertions(+), 1 deletion(-)
2397
2398
commit c6977e7400088177556e8771bcb839eb7d90caa3
2399
Author: Jia Tan <jiat0218@gmail.com>
2400
Date:   2022-12-06 22:52:13 +0800
2401
2402
    Translations: Update the Romanian translation.
2403
2404
 po/ro.po | 294 +++++++++++++++++++++++++++++++--------------------------------
2405
 1 file changed, 147 insertions(+), 147 deletions(-)
2406
2407
commit ac2a747e939c2cbccff7a49c399769af5e02d2ab
1486
Author: Lasse Collin <lasse.collin@tukaani.org>
2408
Author: Lasse Collin <lasse.collin@tukaani.org>
1487
Date:   2017-05-23 18:34:43 +0300
2409
Date:   2022-12-08 17:30:09 +0200
1488
2410
1489
    xz: Fix "xz --list --robot missing_or_bad_file.xz".
2411
    liblzma: Check for unexpected NULL pointers in block_header_decode().
1490
    
2412
    
1491
    It ended up printing an uninitialized char-array when trying to
2413
    The API docs gave an impression that such checks are done
1492
    print the check names (column 7) on the "totals" line.
2414
    but they actually weren't done. In practice it made little
2415
    difference since the calling code has a bug if these are NULL.
1493
    
2416
    
1494
    This also changes the column 12 (minimum xz version) to
2417
    Thanks to Jia Tan for the original patch that checked for
1495
    50000002 (xz 5.0.0) instead of 0 when there are no valid
2418
    block->filters == NULL.
1496
    input files.
1497
    
1498
    Thanks to kidmin for the bug report.
1499
2419
1500
 src/xz/list.c | 8 ++++++--
2420
 src/liblzma/common/block_header_decoder.c | 4 ++++
1501
 1 file changed, 6 insertions(+), 2 deletions(-)
2421
 1 file changed, 4 insertions(+)
1502
2422
1503
commit 3ea5dbd9b0d79048e336e40cef3b6d814fb74e13
2423
commit 24790f49ae66938c1c7574315e1c0aba1ed5ed25
1504
Author: Lasse Collin <lasse.collin@tukaani.org>
2424
Author: Lasse Collin <lasse.collin@tukaani.org>
1505
Date:   2017-04-24 19:48:47 +0300
2425
Date:   2022-12-01 20:59:32 +0200
1506
2426
1507
    Build: Omit pre-5.0.0 entries from the generated ChangeLog.
2427
    Bump version number for 5.3.5beta.
1508
    
2428
    
1509
    It makes ChangeLog significantly smaller.
2429
    This also sorts the symbol names alphabetically in liblzma_*.map.
1510
2430
1511
 Makefile.am | 3 ++-
2431
 src/liblzma/api/lzma/version.h  |  4 ++--
1512
 1 file changed, 2 insertions(+), 1 deletion(-)
2432
 src/liblzma/liblzma_generic.map | 10 +++++-----
2433
 src/liblzma/liblzma_linux.map   | 10 +++++-----
2434
 3 files changed, 12 insertions(+), 12 deletions(-)
1513
2435
1514
commit bae24675936df99064de1502593c006bd902594b
2436
commit 7e53c5bcb3c2c17f47c096c06ff6b1481e6ecafa
1515
Author: Lasse Collin <lasse.collin@tukaani.org>
2437
Author: Lasse Collin <lasse.collin@tukaani.org>
1516
Date:   2017-04-24 19:30:22 +0300
2438
Date:   2022-12-01 20:57:26 +0200
1517
2439
1518
    Update the Git repository URL to HTTPS in ChangeLog.
2440
    Add NEWS for 5.3.5beta.
1519
2441
1520
 ChangeLog | 2 +-
2442
 NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++
1521
 1 file changed, 1 insertion(+), 1 deletion(-)
2443
 1 file changed, 43 insertions(+)
1522
2444
1523
commit 70f479211973b5361f4d7cb08ba5be69b4266e7a
2445
commit 5865f2aaac326fcbd9f8a7d62defa230e4cb644e
1524
Author: Lasse Collin <lasse.collin@tukaani.org>
2446
Author: Lasse Collin <lasse.collin@tukaani.org>
1525
Date:   2017-04-19 22:17:35 +0300
2447
Date:   2022-12-01 20:57:09 +0200
1526
2448
1527
    Update the home page URLs to HTTPS.
2449
    Update THANKS.
1528
2450
1529
 COPYING                     | 2 +-
2451
 THANKS | 3 +++
1530
 README                      | 2 +-
2452
 1 file changed, 3 insertions(+)
1531
 configure.ac                | 2 +-
1532
 doc/faq.txt                 | 4 ++--
1533
 dos/config.h                | 2 +-
1534
 src/common/common_w32res.rc | 2 +-
1535
 src/xz/xz.1                 | 6 +++---
1536
 src/xzdec/xzdec.1           | 4 ++--
1537
 windows/README-Windows.txt  | 2 +-
1538
 windows/config.h            | 2 +-
1539
 10 files changed, 14 insertions(+), 14 deletions(-)
1540
2453
1541
commit 2a4b2fa75d06a097261a02ecd3cf2b6d449bf754
2454
commit 62b270988ec67314d69976df484d2974c6eacfda
1542
Author: Lasse Collin <lasse.collin@tukaani.org>
2455
Author: Lasse Collin <lasse.collin@tukaani.org>
1543
Date:   2017-03-30 22:01:54 +0300
2456
Date:   2022-12-01 20:04:17 +0200
1544
2457
1545
    xz: Use POSIX_FADV_RANDOM for in "xz --list" mode.
2458
    liblzma: Use __has_attribute(__symver__) to fix Clang detection.
1546
    
2459
    
1547
    xz --list is random access so POSIX_FADV_SEQUENTIAL was clearly
2460
    If someone sets up Clang to define __GNUC__ to 10 or greater
1548
    wrong.
2461
    then symvers broke. __has_attribute is supported by such GCC
2462
    and Clang versions that don't support __symver__ so this should
2463
    be much better and simpler way to detect if __symver__ is
2464
    actually supported.
2465
    
2466
    Thanks to Tomasz Gajc for the bug report.
1549
2467
1550
 src/xz/file_io.c | 10 ++++++++--
2468
 src/liblzma/common/common.h | 15 ++++++++++++++-
1551
 1 file changed, 8 insertions(+), 2 deletions(-)
2469
 1 file changed, 14 insertions(+), 1 deletion(-)
1552
2470
1553
commit eb25743ade39170cffd9566a1aae272098cce216
2471
commit f9ca7d45162664ddd9fb70e19335c2426e5d75bb
1554
Author: Lasse Collin <lasse.collin@tukaani.org>
2472
Author: Lasse Collin <lasse.collin@tukaani.org>
1555
Date:   2017-03-30 19:47:45 +0300
2473
Date:   2022-12-01 18:51:52 +0200
1556
2474
1557
    liblzma: Fix lzma_memlimit_set(strm, 0).
2475
    liblzma: Omit zero-skipping from ARM64 filter.
1558
    
2476
    
1559
    The 0 got treated specially in a buggy way and as a result
2477
    It has some complicated downsides and its usefulness is more limited
1560
    the function did nothing. The API doc said that 0 was supposed
2478
    than I originally thought. So this change is bad for certain very
1561
    to return LZMA_PROG_ERROR but it didn't.
2479
    specific situations but a generic solution that works for other
2480
    filters (and is otherwise better too) is planned anyway. And this
2481
    way 7-Zip can use the same compatible filter for the .7z format.
1562
    
2482
    
1563
    Now 0 is treated as if 1 had been specified. This is done because
2483
    This is still marked as experimental with a new temporary Filter ID.
1564
    0 is already used to indicate an error from lzma_memlimit_get()
1565
    and lzma_memusage().
1566
    
1567
    In addition, lzma_memlimit_set() no longer checks that the new
1568
    limit is at least LZMA_MEMUSAGE_BASE. It's counter-productive
1569
    for the Index decoder and was actually needed only by the
1570
    auto decoder. Auto decoder has now been modified to check for
1571
    LZMA_MEMUSAGE_BASE.
1572
2484
1573
 src/liblzma/api/lzma/base.h       | 7 ++++++-
2485
 src/liblzma/api/lzma/bcj.h |  2 +-
1574
 src/liblzma/common/auto_decoder.c | 3 +++
2486
 src/liblzma/simple/arm64.c | 81 +++++++++++++---------------------------------
1575
 src/liblzma/common/common.c       | 6 ++++--
2487
 2 files changed, 24 insertions(+), 59 deletions(-)
1576
 3 files changed, 13 insertions(+), 3 deletions(-)
1577
2488
1578
commit ef36c6362f3f3853f21b8a6359bcd06576ebf207
2489
commit 5baec3f0a9c85e6abf45c0f652f699b074129a8b
1579
Author: Lasse Collin <lasse.collin@tukaani.org>
2490
Author: Lasse Collin <lasse.collin@tukaani.org>
1580
Date:   2017-03-30 19:16:55 +0300
2491
Date:   2022-12-01 18:13:27 +0200
1581
2492
1582
    liblzma: Similar memlimit fix for stream_, alone_, and auto_decoder.
2493
    xz: Omit the special notes about ARM64 filter on the man page.
1583
2494
1584
 src/liblzma/api/lzma/container.h    | 21 +++++++++++++++++----
2495
 src/xz/xz.1 | 5 ++---
1585
 src/liblzma/common/alone_decoder.c  |  5 +----
2496
 1 file changed, 2 insertions(+), 3 deletions(-)
1586
 src/liblzma/common/auto_decoder.c   |  5 +----
1587
 src/liblzma/common/stream_decoder.c |  5 +----
1588
 4 files changed, 20 insertions(+), 16 deletions(-)
1589
2497
1590
commit 57616032650f03840480b696d7878acdd2065521
2498
commit 0c3627b51862eb0dcdd4fc283d046250571991c6
1591
Author: Lasse Collin <lasse.collin@tukaani.org>
2499
Author: Lasse Collin <lasse.collin@tukaani.org>
1592
Date:   2017-03-30 18:58:18 +0300
2500
Date:   2022-12-01 18:12:03 +0200
1593
2501
1594
    liblzma: Fix handling of memlimit == 0 in lzma_index_decoder().
2502
    liblzma: Don't be over-specific in lzma_str_to_filters API doc.
1595
    
1596
    It returned LZMA_PROG_ERROR, which was done to avoid zero as
1597
    the limit (because it's a special value elsewhere), but using
1598
    LZMA_PROG_ERROR is simply inconvenient and can cause bugs.
1599
    
1600
    The fix/workaround is to treat 0 as if it were 1 byte. It's
1601
    effectively the same thing. The only weird consequence is
1602
    that then lzma_memlimit_get() will return 1 even when 0 was
1603
    specified as the limit.
1604
    
1605
    This fixes a very rare corner case in xz --list where a specific
1606
    memory usage limit and a multi-stream file could print the
1607
    error message "Internal error (bug)" instead of saying that
1608
    the memory usage limit is too low.
1609
2503
1610
 src/liblzma/api/lzma/index.h       | 18 +++++++++++-------
2504
 src/liblzma/api/lzma/filter.h | 3 +--
1611
 src/liblzma/common/index_decoder.c |  4 ++--
2505
 1 file changed, 1 insertion(+), 2 deletions(-)
1612
 2 files changed, 13 insertions(+), 9 deletions(-)
1613
2506
1614
commit 3d566cd519017eee1a400e7961ff14058dfaf33c
2507
commit 94adf057f27b1970f493dc99cd166407d7255639
1615
Author: Lasse Collin <lasse.collin@tukaani.org>
2508
Author: Lasse Collin <lasse.collin@tukaani.org>
1616
Date:   2016-12-30 13:26:36 +0200
2509
Date:   2022-12-01 17:54:23 +0200
1617
2510
1618
    Bump version and soname for 5.2.3.
2511
    liblzma: Silence unused variable warning when BCJ filters are disabled.
2512
    
2513
    Thanks to Jia Tan for the original patch.
1619
2514
1620
 src/liblzma/Makefile.am        | 2 +-
2515
 src/liblzma/common/string_conversion.c | 15 +++++++++++++++
1621
 src/liblzma/api/lzma/version.h | 2 +-
2516
 1 file changed, 15 insertions(+)
1622
 2 files changed, 2 insertions(+), 2 deletions(-)
1623
2517
1624
commit 053e624fe33795e779ff736f16ce44a129c829b5
2518
commit c68af4441744e5ffc41a472e1be9c9d53a1d9780
1625
Author: Lasse Collin <lasse.collin@tukaani.org>
2519
Author: Lasse Collin <lasse.collin@tukaani.org>
1626
Date:   2016-12-30 13:25:10 +0200
2520
Date:   2022-12-01 17:38:03 +0200
1627
2521
1628
    Update NEWS for 5.2.3.
2522
    Translations: Update the Chinese (simplified) translation.
1629
2523
1630
 NEWS | 39 +++++++++++++++++++++++++++++++++++++++
2524
 po/zh_CN.po | 608 ++++++++++++++++++++++++++++++++++--------------------------
1631
 1 file changed, 39 insertions(+)
2525
 1 file changed, 348 insertions(+), 260 deletions(-)
1632
2526
1633
commit cae412b2b77d7fd88d187ed7659331709311f80d
2527
commit 3be6942e5c27d29995d41da52fbe274e4ce4a537
1634
Author: Lasse Collin <lasse.collin@tukaani.org>
2528
Author: Lasse Collin <lasse.collin@tukaani.org>
1635
Date:   2015-04-01 14:45:25 +0300
2529
Date:   2022-11-30 18:55:03 +0200
1636
2530
1637
    xz: Fix the Capsicum rights on user_abort_pipe.
2531
    Add NEWS for 5.2.9.
1638
2532
1639
 src/xz/file_io.c | 6 +++++-
2533
 NEWS | 34 ++++++++++++++++++++++++++++++++++
1640
 1 file changed, 5 insertions(+), 1 deletion(-)
2534
 1 file changed, 34 insertions(+)
1641
2535
1642
commit 9ccbae41000572193b9a09e7102f9e84dc6d96de
2536
commit 7c16e312cb2f40b81154c0e5be13a3c6b8da485d
1643
Author: Lasse Collin <lasse.collin@tukaani.org>
2537
Author: Jia Tan <jiat0218@gmail.com>
1644
Date:   2016-12-28 21:05:22 +0200
2538
Date:   2022-11-30 23:33:08 +0800
1645
2539
1646
    Mention potential sandboxing bugs in INSTALL.
2540
    xz: Remove message_filters_to_str function prototype from message.h.
2541
    
2542
    This was forgotten from 7484744af6cbabe81e92af7d9e061dfd597fff7b.
1647
2543
1648
 INSTALL | 5 ++++-
2544
 src/xz/message.h | 16 ----------------
1649
 1 file changed, 4 insertions(+), 1 deletion(-)
2545
 1 file changed, 16 deletions(-)
1650
2546
1651
commit e013a337d3de77cce24360dffe956ea2339489b6
2547
commit 764955e2d4f2a5e8d6d6fec63af694f799e050e7
1652
Author: Lasse Collin <lasse.collin@tukaani.org>
2548
Author: Lasse Collin <lasse.collin@tukaani.org>
1653
Date:   2016-11-21 20:24:50 +0200
2549
Date:   2022-11-30 18:08:34 +0200
1654
2550
1655
    liblzma: Avoid multiple definitions of lzma_coder structures.
2551
    Change the bug report address.
1656
    
2552
    
1657
    Only one definition was visible in a translation unit.
2553
    It forwards to me and Jia Tan.
1658
    It avoided a few casts and temp variables but seems that
1659
    this hack doesn't work with link-time optimizations in compilers
1660
    as it's not C99/C11 compliant.
1661
    
2554
    
1662
    Fixes:
2555
    Also update the IRC reference in README as #tukaani was moved
1663
    http://www.mail-archive.com/xz-devel@tukaani.org/msg00279.html
2556
    to Libera Chat long ago.
1664
2557
1665
 src/liblzma/common/alone_decoder.c             |  44 +++++----
2558
 CMakeLists.txt             |  2 +-
1666
 src/liblzma/common/alone_encoder.c             |  34 ++++---
2559
 README                     | 11 +++++------
1667
 src/liblzma/common/auto_decoder.c              |  35 ++++---
2560
 configure.ac               |  2 +-
1668
 src/liblzma/common/block_decoder.c             |  41 ++++----
2561
 dos/config.h               |  2 +-
1669
 src/liblzma/common/block_encoder.c             |  40 ++++----
2562
 windows/README-Windows.txt |  2 +-
1670
 src/liblzma/common/common.h                    |  18 ++--
2563
 5 files changed, 9 insertions(+), 10 deletions(-)
1671
 src/liblzma/common/index_decoder.c             |  33 ++++---
1672
 src/liblzma/common/index_encoder.c             |  16 ++--
1673
 src/liblzma/common/stream_decoder.c            |  50 +++++-----
1674
 src/liblzma/common/stream_encoder.c            |  56 ++++++-----
1675
 src/liblzma/common/stream_encoder_mt.c         | 124 ++++++++++++++-----------
1676
 src/liblzma/delta/delta_common.c               |  25 ++---
1677
 src/liblzma/delta/delta_decoder.c              |   6 +-
1678
 src/liblzma/delta/delta_encoder.c              |  12 ++-
1679
 src/liblzma/delta/delta_private.h              |   4 +-
1680
 src/liblzma/lz/lz_decoder.c                    |  60 ++++++------
1681
 src/liblzma/lz/lz_decoder.h                    |  13 ++-
1682
 src/liblzma/lz/lz_encoder.c                    |  57 +++++++-----
1683
 src/liblzma/lz/lz_encoder.h                    |   9 +-
1684
 src/liblzma/lzma/lzma2_decoder.c               |  32 ++++---
1685
 src/liblzma/lzma/lzma2_encoder.c               |  51 +++++-----
1686
 src/liblzma/lzma/lzma_decoder.c                |  27 +++---
1687
 src/liblzma/lzma/lzma_encoder.c                |  29 +++---
1688
 src/liblzma/lzma/lzma_encoder.h                |   9 +-
1689
 src/liblzma/lzma/lzma_encoder_optimum_fast.c   |   3 +-
1690
 src/liblzma/lzma/lzma_encoder_optimum_normal.c |  23 ++---
1691
 src/liblzma/lzma/lzma_encoder_private.h        |   6 +-
1692
 src/liblzma/simple/arm.c                       |   2 +-
1693
 src/liblzma/simple/armthumb.c                  |   2 +-
1694
 src/liblzma/simple/ia64.c                      |   2 +-
1695
 src/liblzma/simple/powerpc.c                   |   2 +-
1696
 src/liblzma/simple/simple_coder.c              |  61 ++++++------
1697
 src/liblzma/simple/simple_private.h            |  12 +--
1698
 src/liblzma/simple/sparc.c                     |   2 +-
1699
 src/liblzma/simple/x86.c                       |  15 +--
1700
 35 files changed, 532 insertions(+), 423 deletions(-)
1701
2564
1702
commit 8e0f1af3dcaec00a3879cce8ad7441edc6359d1c
2565
commit c21983c76031e01da01ad3c6cc716fe4b8a75070
1703
Author: Lasse Collin <lasse.collin@tukaani.org>
2566
Author: Lasse Collin <lasse.collin@tukaani.org>
1704
Date:   2016-12-26 20:50:25 +0200
2567
Date:   2022-11-30 17:50:17 +0200
1705
2568
1706
    Document --enable-sandbox configure option in INSTALL.
2569
    Build: Add string_conversion.c to CMake, DOS, and VS files.
1707
2570
1708
 INSTALL | 25 +++++++++++++++++++++++++
2571
 CMakeLists.txt                     | 1 +
1709
 1 file changed, 25 insertions(+)
2572
 dos/Makefile                       | 1 +
2573
 windows/vs2013/liblzma.vcxproj     | 1 +
2574
 windows/vs2013/liblzma_dll.vcxproj | 1 +
2575
 windows/vs2017/liblzma.vcxproj     | 1 +
2576
 windows/vs2017/liblzma_dll.vcxproj | 1 +
2577
 windows/vs2019/liblzma.vcxproj     | 1 +
2578
 windows/vs2019/liblzma_dll.vcxproj | 1 +
2579
 8 files changed, 8 insertions(+)
1710
2580
1711
commit ce2542d220de06acd618fd9f5c0a6683029fb4eb
2581
commit 30be0c35d24eb5175459d69dbf7d92e2b087ef82
1712
Author: Lasse Collin <lasse.collin@tukaani.org>
2582
Author: Lasse Collin <lasse.collin@tukaani.org>
1713
Date:   2015-03-31 22:19:34 +0300
2583
Date:   2022-11-30 17:38:32 +0200
1714
2584
1715
    xz: Add support for sandboxing with Capsicum (disabled by default).
2585
    Update to HTTPS URLs in AUTHORS.
1716
    
1717
    In the v5.2 branch this feature is considered experimental
1718
    and thus disabled by default.
1719
    
1720
    The sandboxing is used conditionally as described in main.c.
1721
    This isn't optimal but it was much easier to implement than
1722
    a full sandboxing solution and it still covers the most common
1723
    use cases where xz is writing to standard output. This should
1724
    have practically no effect on performance even with small files
1725
    as fork() isn't needed.
1726
    
1727
    C and locale libraries can open files as needed. This has been
1728
    fine in the past, but it's a problem with things like Capsicum.
1729
    io_sandbox_enter() tries to ensure that various locale-related
1730
    files have been loaded before cap_enter() is called, but it's
1731
    possible that there are other similar problems which haven't
1732
    been seen yet.
1733
    
1734
    Currently Capsicum is available on FreeBSD 10 and later
1735
    and there is a port to Linux too.
1736
    
1737
    Thanks to Loganaden Velvindron for help.
1738
2586
1739
 configure.ac       | 41 +++++++++++++++++++++++++++
2587
 AUTHORS | 6 +++---
1740
 src/xz/Makefile.am |  2 +-
2588
 1 file changed, 3 insertions(+), 3 deletions(-)
1741
 src/xz/file_io.c   | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1742
 src/xz/file_io.h   |  6 ++++
1743
 src/xz/main.c      | 18 ++++++++++++
1744
 src/xz/private.h   |  4 +++
1745
 6 files changed, 151 insertions(+), 1 deletion(-)
1746
2589
1747
commit 3ca1d5e6320111043e19434da881065fadafa0e4
2590
commit 0a72b9ca2fe20082da9b7128fe0d908af947a851
2591
Author: Jia Tan <jiat0218@gmail.com>
2592
Date:   2022-11-30 00:52:06 +0800
2593
2594
    liblzma: Improve documentation for string to filter functions.
2595
2596
 src/liblzma/api/lzma/filter.h | 17 +++++++++--------
2597
 1 file changed, 9 insertions(+), 8 deletions(-)
2598
2599
commit a6e21fcede3b196160a52dd294d965c508a4bb33
1748
Author: Lasse Collin <lasse.collin@tukaani.org>
2600
Author: Lasse Collin <lasse.collin@tukaani.org>
1749
Date:   2015-03-31 21:12:30 +0300
2601
Date:   2022-11-29 22:27:42 +0200
1750
2602
1751
    Fix bugs and otherwise improve ax_check_capsicum.m4.
2603
    liblzma: Two fixes to lzma_str_list_filters() API docs.
1752
    
2604
    
1753
    AU_ALIAS was removed because the new version is incompatible
2605
    Thanks to Jia Tan.
1754
    with the old version.
1755
    
1756
    It no longer checks for <sys/capability.h> separately.
1757
    It's enough to test for it as part of AC_CHECK_DECL.
1758
    The defines HAVE_CAPSICUM_SYS_CAPSICUM_H and
1759
    HAVE_CAPSICUM_SYS_CAPABILITY_H were removed as unneeded.
1760
    HAVE_SYS_CAPSICUM_H from AC_CHECK_HEADERS is enough.
1761
    
1762
    It no longer does a useless search for the Capsicum library
1763
    if the header wasn't found.
1764
    
1765
    Fixed a bug in ACTION-IF-FOUND (the first argument). Specifying
1766
    the argument omitted the default action but the given action
1767
    wasn't used instead.
1768
    
1769
    AC_DEFINE([HAVE_CAPSICUM]) is now always called when Capsicum
1770
    support is found. Previously it was part of the default
1771
    ACTION-IF-FOUND which a custom action would override. Now
1772
    the default action only prepends ${CAPSICUM_LIB} to LIBS.
1773
    
1774
    The documentation was updated.
1775
    
1776
    Since there as no serial number, "#serial 2" was added.
1777
2606
1778
 m4/ax_check_capsicum.m4 | 103 ++++++++++++++++++++++++------------------------
2607
 src/liblzma/api/lzma/filter.h | 6 +++---
1779
 1 file changed, 51 insertions(+), 52 deletions(-)
2608
 1 file changed, 3 insertions(+), 3 deletions(-)
1780
2609
1781
commit 5f3a742b64197fe8bedb6f05fc6ce5d177d11145
2610
commit 7484744af6cbabe81e92af7d9e061dfd597fff7b
1782
Author: Lasse Collin <lasse.collin@tukaani.org>
2611
Author: Lasse Collin <lasse.collin@tukaani.org>
1783
Date:   2015-03-31 19:20:24 +0300
2612
Date:   2022-11-28 21:57:47 +0200
1784
2613
1785
    Add m4/ax_check_capsicum.m4 for detecting Capsicum support.
2614
    xz: Use lzma_str_from_filters().
1786
    
2615
    
1787
    The file was loaded from this web page:
2616
    Two uses: Displaying encoder filter chain when compressing with -vv,
1788
    https://github.com/google/capsicum-test/blob/dev/autoconf/m4/ax_check_capsicum.m4
2617
    and displaying the decoder filter chain in --list -vv.
1789
    
1790
    Thanks to Loganaden Velvindron for pointing it out for me.
1791
2618
1792
 m4/ax_check_capsicum.m4 | 86 +++++++++++++++++++++++++++++++++++++++++++++++++
2619
 src/xz/list.c    |  28 ++++++---
1793
 1 file changed, 86 insertions(+)
2620
 src/xz/message.c | 175 +++----------------------------------------------------
2621
 2 files changed, 28 insertions(+), 175 deletions(-)
1794
2622
1795
commit d74377e62b4c649e40294dd441de72c0f092e67c
2623
commit cedeeca2ea6ada5b0411b2ae10d7a859e837f203
1796
Author: Lasse Collin <lasse.collin@tukaani.org>
2624
Author: Lasse Collin <lasse.collin@tukaani.org>
1797
Date:   2015-10-12 20:29:09 +0300
2625
Date:   2022-11-28 21:37:48 +0200
1798
2626
1799
    liblzma: Fix a memory leak in error path of lzma_index_dup().
2627
    liblzma: Add lzma_str_to_filters, _from_filters, and _list_filters.
1800
    
2628
    
1801
    lzma_index_dup() calls index_dup_stream() which, in case of
2629
    lzma_str_to_filters() uses static error messages which makes
1802
    an error, calls index_stream_end() to free memory allocated
2630
    them not very precise. It tells the position in the string
1803
    by index_stream_init(). However, it illogically didn't
2631
    where an error occurred though which helps quite a bit if
1804
    actually free the memory. To make it logical, the tree
2632
    applications take advantage of it. Dynamic error messages can
1805
    handling code was modified a bit in addition to changing
2633
    be added later with a new flag if it seems important enough.
1806
    index_stream_end().
1807
    
1808
    Thanks to Evan Nemerson for the bug report.
1809
2634
1810
 src/liblzma/common/index.c | 18 +++++++++---------
2635
 src/liblzma/api/lzma/filter.h          |  258 +++++++
1811
 1 file changed, 9 insertions(+), 9 deletions(-)
2636
 src/liblzma/common/Makefile.inc        |    1 +
2637
 src/liblzma/common/string_conversion.c | 1302 ++++++++++++++++++++++++++++++++
2638
 src/liblzma/liblzma_generic.map        |    3 +
2639
 src/liblzma/liblzma_linux.map          |    3 +
2640
 5 files changed, 1567 insertions(+)
1812
2641
1813
commit f580732216dcf971f3f006fe8e01cd4979e1d964
2642
commit 072ebf7b1335421193ffa9d4a70d5533786b8995
1814
Author: Lasse Collin <lasse.collin@tukaani.org>
2643
Author: Lasse Collin <lasse.collin@tukaani.org>
1815
Date:   2016-10-24 18:53:25 +0300
2644
Date:   2022-11-28 21:02:19 +0200
1816
2645
1817
    Update THANKS.
2646
    liblzma: Make lzma_validate_chain() available outside filter_common.c.
1818
2647
1819
 THANKS | 1 +
2648
 src/liblzma/common/filter_common.c | 8 ++++----
1820
 1 file changed, 1 insertion(+)
2649
 src/liblzma/common/filter_common.h | 3 +++
2650
 2 files changed, 7 insertions(+), 4 deletions(-)
1821
2651
1822
commit 88d7a7fd153bf1355cdf798ffdac7443d0169afc
2652
commit 5f22bd2d37e3bd01a5d701b51750eb51f09c11bf
1823
Author: Lasse Collin <lasse.collin@tukaani.org>
2653
Author: Lasse Collin <lasse.collin@tukaani.org>
1824
Date:   2016-10-24 18:51:36 +0300
2654
Date:   2022-11-28 10:51:03 +0200
1825
2655
1826
    tuklib_cpucores: Add support for sched_getaffinity().
2656
    liblzma: Remove lzma_lz_decoder_uncompressed() as it's now unused.
2657
2658
 src/liblzma/lz/lz_decoder.c | 14 --------------
2659
 src/liblzma/lz/lz_decoder.h |  3 ---
2660
 2 files changed, 17 deletions(-)
2661
2662
commit cee83206465b95729ab649aa2f57fdbde8dcaf89
2663
Author: Lasse Collin <lasse.collin@tukaani.org>
2664
Date:   2022-11-28 10:48:53 +0200
2665
2666
    liblzma: Use LZMA1EXT feature in lzma_microlzma_decoder().
1827
    
2667
    
1828
    It's available in glibc (GNU/Linux, GNU/kFreeBSD). It's better
2668
    Here too this avoids the slightly ugly method to set
1829
    than sysconf(_SC_NPROCESSORS_ONLN) because sched_getaffinity()
2669
    the uncompressed size.
1830
    gives the number of cores available to the process instead of
1831
    the total number of cores online.
1832
    
2670
    
1833
    As a side effect, this commit fixes a bug on GNU/kFreeBSD where
2671
    Also moved the setting of dict_size to the struct initializer.
1834
    configure would detect the FreeBSD-specific cpuset_getaffinity()
2672
1835
    but it wouldn't actually work because on GNU/kFreeBSD it requires
2673
 src/liblzma/common/microlzma_decoder.c | 15 ++++++++-------
1836
    using -lfreebsd-glue when linking. Now the glibc-specific function
2674
 1 file changed, 8 insertions(+), 7 deletions(-)
1837
    will be used instead.
2675
2676
commit e310e8b6a490dfb468f4ed68feff246d776b323c
2677
Author: Lasse Collin <lasse.collin@tukaani.org>
2678
Date:   2022-11-28 10:28:20 +0200
2679
2680
    liblzma: Use LZMA1EXT feature in lzma_alone_decoder().
1838
    
2681
    
1839
    Thanks to Sebastian Andrzej Siewior for the original patch
2682
    This avoids the need to use the slightly ugly method to
1840
    and testing.
2683
    set the uncompressed size.
1841
2684
1842
 m4/tuklib_cpucores.m4        | 30 +++++++++++++++++++++++++++++-
2685
 src/liblzma/common/alone_decoder.c | 18 +++++++++++++-----
1843
 src/common/tuklib_cpucores.c |  9 +++++++++
2686
 1 file changed, 13 insertions(+), 5 deletions(-)
1844
 2 files changed, 38 insertions(+), 1 deletion(-)
1845
2687
1846
commit 51baf684376903dbeddd840582bfdf9fa91b311b
2688
commit 33b8a24b6646a9dbfd8358405aec466b13078559
1847
Author: Lasse Collin <lasse.collin@tukaani.org>
2689
Author: Lasse Collin <lasse.collin@tukaani.org>
1848
Date:   2016-06-30 20:27:36 +0300
2690
Date:   2022-11-27 23:16:21 +0200
1849
2691
1850
    xz: Fix copying of timestamps on Windows.
2692
    liblzma: Add LZMA_FILTER_LZMA1EXT to support LZMA1 without end marker.
1851
    
2693
    
1852
    xz used to call utime() on Windows, but its result gets lost
2694
    Some file formats need support for LZMA1 streams that don't use
1853
    on close(). Using _futime() seems to work.
2695
    the end of payload marker (EOPM) alias end of stream (EOS) marker.
2696
    So far liblzma API has supported decompressing such streams via
2697
    lzma_alone_decoder() when .lzma header specifies a known
2698
    uncompressed size. Encoding support hasn't been available in the API.
1854
    
2699
    
1855
    Thanks to Martok for reporting the bug:
2700
    Instead of adding a new LZMA1-only API for this purpose, this commit
1856
    http://www.mail-archive.com/xz-devel@tukaani.org/msg00261.html
2701
    adds a new filter ID for use with raw encoder and decoder. The main
2702
    benefit of this approach is that then also filter chains are possible,
2703
    for example, if someone wants to implement support for .7z files that
2704
    use the x86 BCJ filter with LZMA1 (not BCJ2 as that isn't supported
2705
    in liblzma).
1857
2706
1858
 configure.ac     |  2 +-
2707
 src/liblzma/api/lzma/lzma12.h           | 123 ++++++++++++++++++++++++++++++--
1859
 src/xz/file_io.c | 18 ++++++++++++++++++
2708
 src/liblzma/common/filter_common.c      |   7 ++
1860
 2 files changed, 19 insertions(+), 1 deletion(-)
2709
 src/liblzma/common/filter_decoder.c     |   6 ++
2710
 src/liblzma/common/filter_encoder.c     |   9 +++
2711
 src/liblzma/lzma/lzma2_encoder.c        |   2 +-
2712
 src/liblzma/lzma/lzma_decoder.c         |  26 ++++++-
2713
 src/liblzma/lzma/lzma_encoder.c         |  40 +++++++++--
2714
 src/liblzma/lzma/lzma_encoder.h         |   3 +-
2715
 src/liblzma/lzma/lzma_encoder_private.h |   3 +
2716
 9 files changed, 204 insertions(+), 15 deletions(-)
1861
2717
1862
commit 1ddc479851139d6e8202e5835421bfe6578d9e07
2718
commit 9a304bf1e45b3ddf61aaeaa7c764915b34618ede
1863
Author: Lasse Collin <lasse.collin@tukaani.org>
2719
Author: Lasse Collin <lasse.collin@tukaani.org>
1864
Date:   2016-06-16 22:46:02 +0300
2720
Date:   2022-11-27 18:43:07 +0200
1865
2721
1866
    xz: Silence warnings from -Wlogical-op.
2722
    liblzma: Avoid unneeded use of void pointer in LZMA decoder.
1867
    
1868
    Thanks to Evan Nemerson.
1869
2723
1870
 src/xz/file_io.c | 12 ++++++++++--
2724
 src/liblzma/lzma/lzma_decoder.c | 3 +--
1871
 1 file changed, 10 insertions(+), 2 deletions(-)
2725
 src/liblzma/lzma/lzma_decoder.h | 2 +-
2726
 2 files changed, 2 insertions(+), 3 deletions(-)
1872
2727
1873
commit be647ff5ed5a1c244a65722af6ce250259f3b14a
2728
commit 218394958c7683f892275bb40eae880620feebcc
1874
Author: Lasse Collin <lasse.collin@tukaani.org>
2729
Author: Lasse Collin <lasse.collin@tukaani.org>
1875
Date:   2016-04-10 20:55:49 +0300
2730
Date:   2022-11-27 18:20:33 +0200
1876
2731
1877
    Build: Fix = to += for xz_SOURCES in src/xz/Makefile.am.
2732
    liblzma: Pass the Filter ID to LZ encoder and decoder.
1878
    
2733
    
1879
    Thanks to Christian Kujau.
2734
    This allows using two Filter IDs with the same
2735
    initialization function and data structures.
1880
2736
1881
 src/xz/Makefile.am | 2 +-
2737
 src/liblzma/common/alone_decoder.c     | 1 +
1882
 1 file changed, 1 insertion(+), 1 deletion(-)
2738
 src/liblzma/common/alone_encoder.c     | 1 +
2739
 src/liblzma/common/common.h            | 7 +++++--
2740
 src/liblzma/common/lzip_decoder.c      | 1 +
2741
 src/liblzma/common/microlzma_decoder.c | 1 +
2742
 src/liblzma/common/microlzma_encoder.c | 1 +
2743
 src/liblzma/lz/lz_decoder.c            | 5 +++--
2744
 src/liblzma/lz/lz_decoder.h            | 3 ++-
2745
 src/liblzma/lz/lz_encoder.c            | 5 +++--
2746
 src/liblzma/lz/lz_encoder.h            | 3 ++-
2747
 src/liblzma/lzma/lzma2_decoder.c       | 3 ++-
2748
 src/liblzma/lzma/lzma2_encoder.c       | 3 ++-
2749
 src/liblzma/lzma/lzma_decoder.c        | 2 +-
2750
 src/liblzma/lzma/lzma_encoder.c        | 2 +-
2751
 14 files changed, 26 insertions(+), 12 deletions(-)
1883
2752
1884
commit fb6d50c15343831f35305982cefa82053099191d
2753
commit 1663c7676b76f4c514031797f3db1896e8100f7f
1885
Author: Lasse Collin <lasse.collin@tukaani.org>
2754
Author: Lasse Collin <lasse.collin@tukaani.org>
1886
Date:   2016-04-10 20:54:17 +0300
2755
Date:   2022-11-27 01:03:16 +0200
1887
2756
1888
    Build: Bump GNU Gettext version requirement to 0.19.
2757
    liblzma: Remove two FIXME comments.
1889
    
1890
    It silences a few warnings and most people probably have
1891
    0.19 even on stable distributions.
1892
    
1893
    Thanks to Christian Kujau.
1894
2758
1895
 configure.ac | 2 +-
2759
 src/liblzma/common/filter_encoder.c | 4 ++--
1896
 1 file changed, 1 insertion(+), 1 deletion(-)
2760
 1 file changed, 2 insertions(+), 2 deletions(-)
1897
2761
1898
commit 74f8dad9f912a2993768d93d108ea2b0b2c196e0
2762
commit 11fe708db783ac36ebeeb85da164e29e8c300910
1899
Author: Lasse Collin <lasse.collin@tukaani.org>
2763
Author: Lasse Collin <lasse.collin@tukaani.org>
1900
Date:   2016-03-13 20:21:49 +0200
2764
Date:   2022-11-26 22:25:30 +0200
1901
2765
1902
    liblzma: Disable external SHA-256 by default.
2766
    xz: Use lzma_filters_free().
1903
    
1904
    This is the sane thing to do. The conflict with OpenSSL
1905
    on some OSes and especially that the OS-provided versions
1906
    can be significantly slower makes it clear that it was
1907
    a mistake to have the external SHA-256 support enabled by
1908
    default.
1909
    
1910
    Those who want it can now pass --enable-external-sha256 to
1911
    configure. INSTALL was updated with notes about OSes where
1912
    this can be a bad idea.
1913
    
1914
    The SHA-256 detection code in configure.ac had some bugs that
1915
    could lead to a build failure in some situations. These were
1916
    fixed, although it doesn't matter that much now that the
1917
    external SHA-256 is disabled by default.
1918
    
1919
    MINIX >= 3.2.0 uses NetBSD's libc and thus has SHA256_Init
1920
    in libc instead of libutil. Support for the libutil version
1921
    was removed.
1922
2767
1923
 INSTALL                   | 36 ++++++++++++++++++++++
2768
 src/xz/list.c | 8 ++------
1924
 configure.ac              | 76 +++++++++++++++++++++++------------------------
2769
 1 file changed, 2 insertions(+), 6 deletions(-)
1925
 src/liblzma/check/check.h | 16 ++++------
1926
 3 files changed, 79 insertions(+), 49 deletions(-)
1927
2770
1928
commit ea7f6ff04cb5bb1498088eb09960a4c3f13dfe39
2771
commit e782af9110d8499c7ac2929bc871540eefea5ea1
1929
Author: Lasse Collin <lasse.collin@tukaani.org>
2772
Author: Lasse Collin <lasse.collin@tukaani.org>
1930
Date:   2016-03-10 20:27:05 +0200
2773
Date:   2022-11-26 22:21:13 +0200
1931
2774
1932
    Update THANKS.
2775
    liblzma: Use lzma_filters_free() in more places.
1933
2776
1934
 THANKS | 1 +
2777
 src/liblzma/common/block_header_decoder.c | 20 ++------------------
1935
 1 file changed, 1 insertion(+)
2778
 src/liblzma/common/stream_decoder.c       |  4 +---
2779
 src/liblzma/common/stream_decoder_mt.c    | 22 +++++-----------------
2780
 3 files changed, 8 insertions(+), 38 deletions(-)
1936
2781
1937
commit d0e018016b311232e82d9a98dc68f1e3dabce794
2782
commit 90caaded2dc6db1d6a55b01160d7e87f4a423628
1938
Author: Lasse Collin <lasse.collin@tukaani.org>
2783
Author: Lasse Collin <lasse.collin@tukaani.org>
1939
Date:   2016-03-10 20:26:49 +0200
2784
Date:   2022-11-25 18:04:37 +0200
1940
2785
1941
    Build: Avoid SHA256_Init on FreeBSD and MINIX 3.
2786
    liblzma: Omit simple coder init functions if they are disabled.
2787
2788
 src/liblzma/simple/arm.c      | 4 ++++
2789
 src/liblzma/simple/armthumb.c | 4 ++++
2790
 src/liblzma/simple/ia64.c     | 4 ++++
2791
 src/liblzma/simple/powerpc.c  | 4 ++++
2792
 src/liblzma/simple/sparc.c    | 4 ++++
2793
 src/liblzma/simple/x86.c      | 4 ++++
2794
 6 files changed, 24 insertions(+)
2795
2796
commit 5cd9f0df78cc4f8a7807bf6104adea13034fbb45
2797
Author: Lasse Collin <lasse.collin@tukaani.org>
2798
Date:   2022-11-24 23:24:59 +0200
2799
2800
    xz: Allow nice_len 2 and 3 even if match finder requires 3 or 4.
1942
    
2801
    
1943
    On FreeBSD 10 and older, SHA256_Init from libmd conflicts
2802
    Now that liblzma accepts these, we avoid the extra check and
1944
    with libcrypto from OpenSSL. The OpenSSL version has
2803
    there's one message less for translators too.
1945
    different sizeof(SHA256_CTX) and it can cause weird
2804
1946
    problems if wrong SHA256_Init gets used.
2805
 src/xz/options.c | 5 -----
2806
 1 file changed, 5 deletions(-)
2807
2808
commit 3be88ae071371caa279b44e13f4836fb178fe4ae
2809
Author: Lasse Collin <lasse.collin@tukaani.org>
2810
Date:   2022-11-24 23:23:55 +0200
2811
2812
    liblzma: Allow nice_len 2 and 3 even if match finder requires 3 or 4.
1947
    
2813
    
1948
    Looking at the source, MINIX 3 seems to have a similar issue but
2814
    That is, if the specified nice_len is smaller than the minimum
1949
    I'm not sure. To be safe, I disabled SHA256_Init on MINIX 3 too.
2815
    of the match finder, silently use the match finder's minimum value
1950
    
2816
    instead of reporting an error. The old behavior is annoying to users
1951
    NetBSD has SHA256_Init in libc and they had a similar problem,
2817
    and it complicates xz options handling too.
1952
    but they already fixed it in 2009.
1953
    
1954
    Thanks to Jim Wilcoxson for the bug report that helped
1955
    in finding the problem.
1956
2818
1957
 configure.ac | 27 +++++++++++++++++++++------
2819
 src/liblzma/lz/lz_encoder.c     | 14 +++++++++-----
1958
 1 file changed, 21 insertions(+), 6 deletions(-)
2820
 src/liblzma/lz/lz_encoder.h     |  9 +++++++++
2821
 src/liblzma/lzma/lzma_encoder.c | 11 ++++++++---
2822
 3 files changed, 26 insertions(+), 8 deletions(-)
1959
2823
1960
commit 5daae123915f32a4ed6dc948b831533c2d1beec3
2824
commit 93439cfafe1768b3b18d67d2356ef7e7559bba59
1961
Author: Lasse Collin <lasse.collin@tukaani.org>
2825
Author: Lasse Collin <lasse.collin@tukaani.org>
1962
Date:   2015-11-08 20:16:10 +0200
2826
Date:   2022-11-24 16:25:10 +0200
1963
2827
1964
    tuklib_physmem: Hopefully silence a warning on Windows.
2828
    liblzma: Add lzma_filters_update() support to the multi-threaded encoder.
2829
    
2830
    A tiny downside of this is that now a 1-4 tiny allocations are made
2831
    for every Block because each worker thread needs its own copy of
2832
    the filter chain.
1965
2833
1966
 src/common/tuklib_physmem.c | 3 ++-
2834
 src/liblzma/api/lzma/filter.h          | 36 +++++++------
1967
 1 file changed, 2 insertions(+), 1 deletion(-)
2835
 src/liblzma/common/stream_encoder_mt.c | 96 +++++++++++++++++++++++++++++++---
2836
 2 files changed, 109 insertions(+), 23 deletions(-)
1968
2837
1969
commit 491acc406e098167ccb7fce0728b94c2f32cff9f
2838
commit 17ac51e689794eb41cab3e80946fec689caea2d2
1970
Author: Lasse Collin <lasse.collin@tukaani.org>
2839
Author: Lasse Collin <lasse.collin@tukaani.org>
1971
Date:   2015-11-04 23:17:43 +0200
2840
Date:   2022-11-24 14:53:22 +0200
1972
2841
1973
    Update THANKS.
2842
    Update THANKS.
1974
2843
1975
 THANKS | 1 +
2844
 THANKS | 1 +
1976
 1 file changed, 1 insertion(+)
2845
 1 file changed, 1 insertion(+)
1977
2846
1978
commit 8173ff8790ad3502d04e1c07d014cb84a3b8187b
2847
commit 06824396b2b6c84f3a235cb7c19c2a9701167797
1979
Author: Lasse Collin <lasse.collin@tukaani.org>
2848
Author: Lasse Collin <lasse.collin@tukaani.org>
1980
Date:   2015-11-04 23:14:00 +0200
2849
Date:   2022-11-24 14:52:44 +0200
1981
2850
1982
    liblzma: Make Valgrind happier with optimized (gcc -O2) liblzma.
2851
    Build: Don't put GNU/Linux-specific symbol versions into static liblzma.
1983
    
2852
    
1984
    When optimizing, GCC can reorder code so that an uninitialized
2853
    It not only makes no sense to put symbol versions into a static library
1985
    value gets used in a comparison, which makes Valgrind unhappy.
2854
    but it can also cause breakage.
1986
    It doesn't happen when compiled with -O0, which I tend to use
1987
    when running Valgrind.
1988
    
2855
    
1989
    Thanks to Rich Prohaska. I remember this being mentioned long
2856
    By default Libtool #defines PIC if building a shared library and
1990
    ago by someone else but nothing was done back then.
2857
    doesn't define it for static libraries. This is documented in the
2858
    Libtool manual. It can be overriden using --with-pic or --without-pic.
2859
    configure.ac detects if --with-pic or --without-pic is used and then
2860
    gives an error if neither --disable-shared nor --disable-static was
2861
    used at the same time. Thus, in normal situations it works to build
2862
    both shared and static library at the same time on GNU/Linux,
2863
    only --with-pic or --without-pic requires that only one type of
2864
    library is built.
2865
    
2866
    Thanks to John Paul Adrian Glaubitz from Debian for reporting
2867
    the problem that occurred on ia64:
2868
    https://www.mail-archive.com/xz-devel@tukaani.org/msg00610.html
1991
2869
1992
 src/liblzma/lz/lz_encoder.c | 4 ++++
2870
 CMakeLists.txt              |   5 +-
1993
 1 file changed, 4 insertions(+)
2871
 configure.ac                | 143 +++++++++++++++++++++++++++++---------------
2872
 src/liblzma/common/common.h |  12 ++++
2873
 3 files changed, 111 insertions(+), 49 deletions(-)
1994
2874
1995
commit 013de2b5ab8094d2c82a2771f3d143eeb656eda9
2875
commit e1acf7107291f8b3d6d609a7133331ff36d35d14
1996
Author: Lasse Collin <lasse.collin@tukaani.org>
2876
Author: Lasse Collin <lasse.collin@tukaani.org>
1997
Date:   2015-11-03 20:55:45 +0200
2877
Date:   2022-11-24 01:32:16 +0200
1998
2878
1999
    liblzma: Rename lzma_presets.c back to lzma_encoder_presets.c.
2879
    liblzma: Refactor to use lzma_filters_free().
2000
    
2880
    
2001
    It would be too annoying to update other build systems
2881
    lzma_filters_free() sets the options to NULL and ids to
2002
    just because of this.
2882
    LZMA_VLI_UNKNOWN so there is no need to do it by caller;
2883
    the filter arrays will always be left in a safe state.
2884
    
2885
    Also use memcpy() instead of a loop to copy a filter chain
2886
    when it is known to be safe to copy LZMA_FILTERS_MAX + 1
2887
    (even if the elements past the terminator might be uninitialized).
2003
2888
2004
 src/liblzma/lzma/Makefile.inc                               | 2 +-
2889
 src/liblzma/common/stream_encoder.c    | 16 ++++------------
2005
 src/liblzma/lzma/{lzma_presets.c => lzma_encoder_presets.c} | 2 +-
2890
 src/liblzma/common/stream_encoder_mt.c | 11 ++---------
2006
 2 files changed, 2 insertions(+), 2 deletions(-)
2891
 2 files changed, 6 insertions(+), 21 deletions(-)
2007
2892
2008
commit a322f70ad96de88968c2c36e6a36bc08ae30bd20
2893
commit cb05dbcf8b868441ec805016222f3fd77f1c5caa
2009
Author: Lasse Collin <lasse.collin@tukaani.org>
2894
Author: Lasse Collin <lasse.collin@tukaani.org>
2010
Date:   2015-11-03 20:47:07 +0200
2895
Date:   2022-11-24 01:26:37 +0200
2011
2896
2012
    Build: Disable xzdec, lzmadec, and lzmainfo when they cannot be built.
2897
    liblzma: Fix another invalid free() after memory allocation failure.
2013
    
2898
    
2014
    They all need decoder support and if that isn't available,
2899
    This time it can happen when lzma_stream_encoder_mt() is used
2015
    there's no point trying to build them.
2900
    to reinitialize an existing multi-threaded Stream encoder
2901
    and one of 1-4 tiny allocations in lzma_filters_copy() fail.
2902
    
2903
    It's very similar to the previous bug
2904
    10430fbf3820dafd4eafd38ec8be161a6978ed2b, happening with
2905
    an array of lzma_filter structures whose old options are freed
2906
    but the replacement never arrives due to a memory allocation
2907
    failure in lzma_filters_copy().
2016
2908
2017
 configure.ac | 3 +++
2909
 src/liblzma/common/stream_encoder_mt.c | 4 ++++
2018
 1 file changed, 3 insertions(+)
2910
 1 file changed, 4 insertions(+)
2019
2911
2020
commit 8ea49606cf6427e32319de7693eca9e43f1c8ad6
2912
commit 75f1a6c26df4ce329da0882786403e3ccf5cd898
2021
Author: Lasse Collin <lasse.collin@tukaani.org>
2913
Author: Jia Tan <jiat0218@gmail.com>
2022
Date:   2015-11-03 20:35:19 +0200
2914
Date:   2022-05-05 20:53:42 +0800
2023
2915
2024
    Build: Simplify $enable_{encoders,decoders} usage a bit.
2916
    liblzma: Add support for LZMA_SYNC_FLUSH in the Block encoder.
2917
    
2918
    The documentation mentions that lzma_block_encoder() supports
2919
    LZMA_SYNC_FLUSH but it was never added to supported_actions[]
2920
    in the internal structure. Because of this, LZMA_SYNC_FLUSH could
2921
    not be used with the Block encoder unless it was the next coder
2922
    after something like stream_encoder() or stream_encoder_mt().
2025
2923
2026
 configure.ac | 6 ++++--
2924
 src/liblzma/common/block_encoder.c | 1 +
2027
 1 file changed, 4 insertions(+), 2 deletions(-)
2925
 1 file changed, 1 insertion(+)
2028
2926
2029
commit 42131a25e52bfe400acfa7df93469a96bb78bb78
2927
commit d0901645170b638c517f5c50866b6ef48f491c65
2030
Author: Lasse Collin <lasse.collin@tukaani.org>
2928
Author: Lasse Collin <lasse.collin@tukaani.org>
2031
Date:   2015-11-03 20:31:31 +0200
2929
Date:   2022-11-24 01:02:50 +0200
2032
2930
2033
    Windows/MSVC: Update config.h.
2931
    liblzma: Add new API function lzma_filters_free().
2932
    
2933
    This is small but convenient and should have been added
2934
    a long time ago.
2034
2935
2035
 windows/config.h | 6 ++++++
2936
 src/liblzma/api/lzma/filter.h      | 21 +++++++++++++++++++++
2036
 1 file changed, 6 insertions(+)
2937
 src/liblzma/common/filter_common.c | 26 ++++++++++++++++++++++++++
2938
 src/liblzma/liblzma_generic.map    |  1 +
2939
 src/liblzma/liblzma_linux.map      |  1 +
2940
 4 files changed, 49 insertions(+)
2037
2941
2038
commit e9184e87cc989d14c7413e6adb3eca98f6ae0290
2942
commit ae1f8a723dcde2f2c5cf444bcbb5fc5026b3c3c5
2039
Author: Lasse Collin <lasse.collin@tukaani.org>
2943
Author: Lasse Collin <lasse.collin@tukaani.org>
2040
Date:   2015-11-03 20:29:58 +0200
2944
Date:   2022-11-24 00:02:31 +0200
2041
2945
2042
    DOS: Update config.h.
2946
    CMake: Don't use symbol versioning with static library.
2043
2947
2044
 dos/config.h | 6 ++++++
2948
 CMakeLists.txt | 10 +++++++---
2045
 1 file changed, 6 insertions(+)
2949
 1 file changed, 7 insertions(+), 3 deletions(-)
2046
2950
2047
commit 2296778f3c9a1e3a8699973b09dd3610b8baa402
2951
commit 48c1b99dc537a27e1ca929d8837e778e5ba32191
2048
Author: Lasse Collin <lasse.collin@tukaani.org>
2952
Author: Lasse Collin <lasse.collin@tukaani.org>
2049
Date:   2015-11-03 20:29:33 +0200
2953
Date:   2022-11-23 21:55:22 +0200
2050
2954
2051
    xz: Make xz buildable even when encoders or decoders are disabled.
2955
    liblzma: Add lzma_attr_warn_unused_result to lzma_filters_copy().
2052
    
2053
    The patch is quite long but it's mostly about adding new #ifdefs
2054
    to omit code when encoders or decoders have been disabled.
2055
    
2056
    This adds two new #defines to config.h: HAVE_ENCODERS and
2057
    HAVE_DECODERS.
2058
2956
2059
 configure.ac       |  4 ++++
2957
 src/liblzma/api/lzma/filter.h | 3 ++-
2060
 src/xz/Makefile.am |  8 ++++++--
2958
 1 file changed, 2 insertions(+), 1 deletion(-)
2061
 src/xz/args.c      | 16 ++++++++++++++++
2062
 src/xz/coder.c     | 33 +++++++++++++++++++++++++--------
2063
 src/xz/main.c      |  9 +++++++--
2064
 src/xz/private.h   |  5 ++++-
2065
 6 files changed, 62 insertions(+), 13 deletions(-)
2066
2959
2067
commit 97a3109281e475d9cf1b5095237d672fa0ad25e5
2960
commit 10430fbf3820dafd4eafd38ec8be161a6978ed2b
2068
Author: Lasse Collin <lasse.collin@tukaani.org>
2961
Author: Lasse Collin <lasse.collin@tukaani.org>
2069
Date:   2015-11-03 18:06:40 +0200
2962
Date:   2022-11-23 21:26:21 +0200
2070
2963
2071
    Build: Build LZMA1/2 presets also when only decoder is wanted.
2964
    liblzma: Fix invalid free() after memory allocation failure.
2072
    
2965
    
2073
    People shouldn't rely on the presets when decoding raw streams,
2966
    The bug was in the single-threaded .xz Stream encoder
2074
    but xz uses the presets as the starting point for raw decoder
2967
    in the code that is used for both re-initialization and for
2075
    options anyway.
2968
    lzma_filters_update(). To trigger it, an application had
2969
    to either re-initialize an existing encoder instance with
2970
    lzma_stream_encoder() or use lzma_filters_update(), and
2971
    then one of the 1-4 tiny allocations in lzma_filters_copy()
2972
    (called from stream_encoder_update()) must fail. An error
2973
    was correctly reported but the encoder state was corrupted.
2076
    
2974
    
2077
    lzma_encocder_presets.c was renamed to lzma_presets.c to
2975
    This is related to the recent fix in
2078
    make it clear it's not used solely by the encoder code.
2976
    f8ee61e74eb40600445fdb601c374d582e1e9c8a which is good but
2977
    it wasn't enough to fix the main problem in stream_encoder.c.
2079
2978
2080
 src/liblzma/lzma/Makefile.inc                               | 6 +++++-
2979
 src/liblzma/common/stream_encoder.c | 39 +++++++++++++++++++++++++++++--------
2081
 src/liblzma/lzma/{lzma_encoder_presets.c => lzma_presets.c} | 3 ++-
2980
 1 file changed, 31 insertions(+), 8 deletions(-)
2082
 2 files changed, 7 insertions(+), 2 deletions(-)
2083
2981
2084
commit dc6b78d7f0f6fe43e9d4215146e8581feb8090e7
2982
commit cafd6dc397ca8b5b5f7775e8d6876b8fe70f8e70
2085
Author: Lasse Collin <lasse.collin@tukaani.org>
2983
Author: Lasse Collin <lasse.collin@tukaani.org>
2086
Date:   2015-11-03 17:54:48 +0200
2984
Date:   2022-11-22 16:37:15 +0200
2087
2985
2088
    Build: Fix configure to handle LZMA1 dependency with LZMA2.
2986
    liblzma: Fix language in a comment.
2089
    
2090
    Now it gives an error if LZMA1 encoder/decoder is missing
2091
    when LZMA2 encoder/decoder was requested. Even better would
2092
    be LZMA2 implicitly enabling LZMA1 but it would need more code.
2093
2987
2094
 configure.ac | 5 -----
2988
 src/liblzma/common/stream_encoder.c | 2 +-
2095
 1 file changed, 5 deletions(-)
2989
 1 file changed, 1 insertion(+), 1 deletion(-)
2096
2990
2097
commit 46d76c9cd3cb26a31f5ae6c3a8bbcf38e6da1add
2991
commit c392bf8ccba857baaf50399c4b460119befacd54
2098
Author: Lasse Collin <lasse.collin@tukaani.org>
2992
Author: Lasse Collin <lasse.collin@tukaani.org>
2099
Date:   2015-11-03 17:41:54 +0200
2993
Date:   2022-11-22 11:20:17 +0200
2100
2994
2101
    Build: Don't omit lzma_cputhreads() unless using --disable-threads.
2995
    liblzma: Fix infinite loop in LZMA encoder init with dict_size >= 2 GiB.
2102
    
2996
    
2103
    Previously it was omitted if encoders were disabled
2997
    The encoder doesn't support dictionary sizes larger than 1536 MiB.
2104
    with --disable-encoders. It didn't make sense and
2998
    This is validated, for example, when calculating the memory usage
2105
    it also broke the build.
2999
    via lzma_raw_encoder_memusage(). It is also enforced by the LZ
3000
    part of the encoder initialization. However, LZMA encoder with
3001
    LZMA_MODE_NORMAL did an unsafe calculation with dict_size before
3002
    such validation and that results in an infinite loop if dict_size
3003
    was 2 << 30 or greater.
2106
3004
2107
 src/liblzma/common/Makefile.inc | 5 ++++-
3005
 src/liblzma/lzma/lzma_encoder.c | 19 +++++++++++++++----
2108
 1 file changed, 4 insertions(+), 1 deletion(-)
3006
 1 file changed, 15 insertions(+), 4 deletions(-)
2109
3007
2110
commit 16d68f874d89f1e4a1919786a35bbaef7d71a077
3008
commit f50534c973a591ccf65485adfc827a8a7126ca6c
2111
Author: Lasse Collin <lasse.collin@tukaani.org>
3009
Author: Lasse Collin <lasse.collin@tukaani.org>
2112
Date:   2015-11-02 18:16:51 +0200
3010
Date:   2022-11-21 13:02:33 +0200
2113
3011
2114
    liblzma: Fix a build failure related to external SHA-256 support.
3012
    liblzma: Fix two Doxygen commands in the API headers.
2115
    
3013
    
2116
    If an appropriate header and structure were found by configure,
3014
    These were caught by clang -Wdocumentation.
2117
    but a library with a usable SHA-256 functions wasn't, the build
2118
    failed.
2119
3015
2120
 src/liblzma/check/check.h | 32 +++++++++++++++++++++++---------
3016
 src/liblzma/api/lzma/hardware.h   | 2 +-
2121
 1 file changed, 23 insertions(+), 9 deletions(-)
3017
 src/liblzma/api/lzma/index_hash.h | 2 +-
3018
 2 files changed, 2 insertions(+), 2 deletions(-)
2122
3019
2123
commit d9311647fc1ab512a3394596221ab8039c00af6b
3020
commit 649d4872ed2f55196114a061d45b416fc4353569
2124
Author: Lasse Collin <lasse.collin@tukaani.org>
3021
Author: Lasse Collin <lasse.collin@tukaani.org>
2125
Date:   2015-11-02 15:19:10 +0200
3022
Date:   2022-11-19 19:09:55 +0200
2126
3023
2127
    xz: Always close the file before trying to delete it.
3024
    xz: Refactor duplicate code from hardware_memlimit_mtenc_get().
2128
    
2129
    unlink() can return EBUSY in errno for open files on some
2130
    operating systems and file systems.
2131
3025
2132
 src/xz/file_io.c | 25 ++++++++++++-------------
3026
 src/xz/hardware.c | 2 +-
2133
 1 file changed, 12 insertions(+), 13 deletions(-)
3027
 1 file changed, 1 insertion(+), 1 deletion(-)
2134
3028
2135
commit f59c4183f3c9066626ce45dc3db4642fa603fa21
3029
commit d327743bb547a53364e5951a16e5f1663fe4b9ff
2136
Author: Lasse Collin <lasse.collin@tukaani.org>
3030
Author: Lasse Collin <lasse.collin@tukaani.org>
2137
Date:   2015-10-12 21:08:42 +0300
3031
Date:   2022-11-19 19:06:13 +0200
2138
3032
2139
    Update THANKS.
3033
    xz: Add support --threads=+N so that -T+1 gives threaded mode.
2140
3034
2141
 THANKS | 1 +
3035
 src/xz/args.c     | 18 +++++++++++++++---
3036
 src/xz/hardware.c | 17 +++++++++++++++--
3037
 src/xz/hardware.h |  1 +
3038
 src/xz/xz.1       | 21 ++++++++++++++++++++-
3039
 4 files changed, 51 insertions(+), 6 deletions(-)
3040
3041
commit a11a2b8b5e830ba682c1d81aaa7078842b296995
3042
Author: Jia Tan <jiat0218@gmail.com>
3043
Date:   2022-11-19 23:18:04 +0800
3044
3045
    CMake: Adds test_memlimit to CMake tests
3046
3047
 CMakeLists.txt | 1 +
2142
 1 file changed, 1 insertion(+)
3048
 1 file changed, 1 insertion(+)
2143
3049
2144
commit 35f189673e280c12e4c5129f9f97e54eef3bbc04
3050
commit 2af8d9e9b3f44f62d19e7c39297ec63af2e8c64f
2145
Author: Lasse Collin <lasse.collin@tukaani.org>
3051
Author: Lasse Collin <lasse.collin@tukaani.org>
2146
Date:   2015-10-12 21:07:41 +0300
3052
Date:   2022-11-15 19:10:21 +0200
2147
3053
2148
    Tests: Add tests for the two bugs fixed in index.c.
3054
    Translations: Update the Korean translation.
2149
3055
2150
 tests/test_index.c | 30 ++++++++++++++++++++++++++++++
3056
 po/ko.po | 652 ++++++++++++++++++++++++++++++++++++---------------------------
2151
 1 file changed, 30 insertions(+)
3057
 1 file changed, 371 insertions(+), 281 deletions(-)
2152
3058
2153
commit e10bfdb0fcaff12f3a6dadee51e0a022aadccb51
3059
commit 16ac05677292f7e21a4feaddcfb2ab062ea5f385
2154
Author: Lasse Collin <lasse.collin@tukaani.org>
3060
Author: Lasse Collin <lasse.collin@tukaani.org>
2155
Date:   2015-10-12 20:45:15 +0300
3061
Date:   2022-11-15 19:09:28 +0200
2156
3062
2157
    liblzma: Fix lzma_index_dup() for empty Streams.
3063
    Translations: Update the Turkish translation.
2158
    
2159
    Stream Flags and Stream Padding weren't copied from
2160
    empty Streams.
2161
3064
2162
 src/liblzma/common/index.c | 11 ++++++-----
3065
 po/tr.po | 568 ++++++++++++++++++++++++++++++++++-----------------------------
2163
 1 file changed, 6 insertions(+), 5 deletions(-)
3066
 1 file changed, 310 insertions(+), 258 deletions(-)
2164
3067
2165
commit 06f434bd8980f25ca23232eb7bb7df7e37dc8448
3068
commit b9a67d9a5fa207062d4aa8a01639234609315d31
2166
Author: Lasse Collin <lasse.collin@tukaani.org>
3069
Author: Lasse Collin <lasse.collin@tukaani.org>
2167
Date:   2015-10-12 20:31:44 +0300
3070
Date:   2022-11-15 10:58:39 +0200
2168
3071
2169
    liblzma: Add a note to index.c for those using static analyzers.
3072
    Bump version number for 5.3.4alpha.
2170
3073
2171
 src/liblzma/common/index.c | 3 +++
3074
 src/liblzma/api/lzma/version.h  | 2 +-
2172
 1 file changed, 3 insertions(+)
3075
 src/liblzma/liblzma_generic.map | 2 +-
3076
 src/liblzma/liblzma_linux.map   | 2 +-
3077
 3 files changed, 3 insertions(+), 3 deletions(-)
2173
3078
2174
commit 9815cdf6987ef91a85493bfcfd1ce2aaf3b47a0a
3079
commit 5b999ba289b3280457b7386b9ac65dbbdf1575a5
2175
Author: Lasse Collin <lasse.collin@tukaani.org>
3080
Author: Lasse Collin <lasse.collin@tukaani.org>
2176
Date:   2015-09-29 13:59:35 +0300
3081
Date:   2022-11-15 10:54:40 +0200
2177
3082
2178
    Bump version and soname for 5.2.2.
3083
    Add NEWS for 5.3.4alpha.
2179
3084
2180
 src/liblzma/Makefile.am        | 2 +-
3085
 NEWS | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2181
 src/liblzma/api/lzma/version.h | 2 +-
3086
 1 file changed, 96 insertions(+)
2182
 2 files changed, 2 insertions(+), 2 deletions(-)
2183
3087
2184
commit cbe0cec8476bdd0416c7ca9bc83895c9bea1cf78
3088
commit ce8db9e37da4f6c87691c5066f51f91f2411c44a
2185
Author: Lasse Collin <lasse.collin@tukaani.org>
3089
Author: Lasse Collin <lasse.collin@tukaani.org>
2186
Date:   2015-09-29 13:57:28 +0300
3090
Date:   2022-11-15 10:54:08 +0200
2187
3091
2188
    Update NEWS for 5.2.2.
3092
    Add NEWS for 5.2.8.
2189
3093
2190
 NEWS | 18 ++++++++++++++++++
3094
 NEWS | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2191
 1 file changed, 18 insertions(+)
3095
 1 file changed, 79 insertions(+)
2192
3096
2193
commit 49427ce7eececdd18bbd35dab23c81910d083e1c
3097
commit b56bc8251d2736224af6bdaaae734ceb8926a879
2194
Author: Andre Noll <maan@tuebingen.mpg.de>
3098
Author: Lasse Collin <lasse.collin@tukaani.org>
2195
Date:   2015-05-28 15:50:00 +0200
3099
Date:   2022-11-14 23:19:57 +0200
2196
3100
2197
    Fix typo in German translation.
3101
    Revert "liblzma: Simple/BCJ filters: Allow disabling generic BCJ options."
2198
    
3102
    
2199
    As pointed out by Robert Pollak, there's a typo in the German
3103
    This reverts commit 177bdc922cb17bd0fd831ab8139dfae912a5c2b8
2200
    translation of the compression preset option (-0 ... -9) help text.
3104
    and also does equivalent change to arm64.c.
2201
    "The compressor" translates to "der Komprimierer", and the genitive
3105
    
2202
    form is "des Komprimierers". The old word makes no sense at all.
3106
    Now that ARM64 filter will use lzma_options_bcj, this change
3107
    is not needed anymore.
2203
3108
2204
 po/de.po | 2 +-
3109
 src/liblzma/simple/arm.c            | 2 +-
2205
 1 file changed, 1 insertion(+), 1 deletion(-)
3110
 src/liblzma/simple/arm64.c          | 2 +-
3111
 src/liblzma/simple/armthumb.c       | 2 +-
3112
 src/liblzma/simple/ia64.c           | 2 +-
3113
 src/liblzma/simple/powerpc.c        | 2 +-
3114
 src/liblzma/simple/simple_coder.c   | 4 ++--
3115
 src/liblzma/simple/simple_private.h | 2 +-
3116
 src/liblzma/simple/sparc.c          | 2 +-
3117
 src/liblzma/simple/x86.c            | 3 +--
3118
 9 files changed, 10 insertions(+), 11 deletions(-)
2206
3119
2207
commit 608d6f06c940e7f28c25de005e8b99bdff42d27c
3120
commit 8370ec8edf9ddf8d1d9fef03d8d1027503ec4c35
2208
Author: Hauke Henningsen <sqrt@entless.org>
3121
Author: Lasse Collin <lasse.collin@tukaani.org>
2209
Date:   2015-08-17 04:59:54 +0200
3122
Date:   2022-11-14 23:14:41 +0200
2210
3123
2211
    Update German translation, mostly wrt orthography
3124
    Replace the experimental ARM64 filter with a new experimental version.
2212
    
3125
    
2213
    Provide an update of the German translation.
3126
    This is incompatible with the previous version.
2214
    * A lot of compound words were previously written with spaces, while
2215
      German orthography is relatively clear in that the components
2216
      should not be separated.
2217
    * When referring to the actual process of (de)compression rather than the
2218
      concept, replace “(De-)Kompression” with “(De-)Komprimierung”.
2219
      Previously, both forms were used in this context and are now used in a
2220
      manner consistent with “Komprimierung” being more likely to refer to
2221
      a process.
2222
    * Consistently translate “standard input”/“output”
2223
    * Use “Zeichen” instead of false friend “Charakter” for “character”
2224
    * Insert commas around relative clauses (as required in German)
2225
    * Some other minor corrections
2226
    * Capitalize “ß” as “ẞ”
2227
    * Consistently start option descriptions in --help with capital letters
2228
    
3127
    
2229
    Acked-By: Andre Noll <maan@tuebingen.mpg.de>
3128
    This has space/tab fixes in filter_*.c and bcj.h too.
2230
    
2231
    * Update after msgmerge
2232
3129
2233
 po/de.po | 383 ++++++++++++++++++++++++++++++++-------------------------------
3130
 src/liblzma/api/lzma/bcj.h          |  41 +-----
2234
 1 file changed, 196 insertions(+), 187 deletions(-)
3131
 src/liblzma/common/filter_common.c  |  14 +-
3132
 src/liblzma/common/filter_decoder.c |  12 +-
3133
 src/liblzma/common/filter_encoder.c |  17 +--
3134
 src/liblzma/simple/arm64.c          | 283 ++++++++++++++----------------------
3135
 src/liblzma/simple/simple_decoder.h |   4 -
3136
 src/liblzma/simple/simple_encoder.h |   2 -
3137
 src/xz/args.c                       |   2 +-
3138
 src/xz/message.c                    |  13 +-
3139
 src/xz/options.c                    |  39 -----
3140
 src/xz/options.h                    |   7 -
3141
 11 files changed, 147 insertions(+), 287 deletions(-)
2235
3142
2236
commit c8988414e5b67b8ef2fe0ba7b1ccdd0ec73c60d3
3143
commit f644473a211394447824ea00518d0a214ff3f7f2
2237
Author: Lasse Collin <lasse.collin@tukaani.org>
3144
Author: Lasse Collin <lasse.collin@tukaani.org>
2238
Date:   2015-08-11 13:23:04 +0300
3145
Date:   2022-11-14 21:34:57 +0200
2239
3146
2240
    Build: Minor Cygwin cleanup.
3147
    liblzma: Add fast CRC64 for 32/64-bit x86 using SSSE3 + SSE4.1 + CLMUL.
2241
    
3148
    
2242
    Some tests used "cygwin*" and some used "cygwin". I changed
3149
    It also works on E2K as it supports these intrinsics.
2243
    them all to use "cygwin". Shouldn't affect anything in practice.
3150
    
3151
    On x86-64 runtime detection is used so the code keeps working on
3152
    older processors too. A CLMUL-only build can be done by using
3153
    -msse4.1 -mpclmul in CFLAGS and this will reduce the library
3154
    size since the generic implementation and its 8 KiB lookup table
3155
    will be omitted.
3156
    
3157
    On 32-bit x86 this isn't used by default for now because by default
3158
    on 32-bit x86 the separate assembly file crc64_x86.S is used.
3159
    If --disable-assembler is used then this new CLMUL code is used
3160
    the same way as on 64-bit x86. However, a CLMUL-only build
3161
    (-msse4.1 -mpclmul) won't omit the 8 KiB lookup table on
3162
    32-bit x86 due to a currently-missing check for disabled
3163
    assembler usage.
3164
    
3165
    The configure.ac check should be such that the code won't be
3166
    built if something in the toolchain doesn't support it but
3167
    --disable-clmul-crc option can be used to unconditionally
3168
    disable this feature.
3169
    
3170
    CLMUL speeds up decompression of files that have compressed very
3171
    well (assuming CRC64 is used as a check type). It is know that
3172
    the CLMUL code is significantly slower than the generic code for
3173
    tiny inputs (especially 1-8 bytes but up to 16 bytes). If that
3174
    is a real-world problem then there is already a commented-out
3175
    variant that uses the generic version for small inputs.
3176
    
3177
    Thanks to Ilya Kurdyukov for the original patch which was
3178
    derived from a white paper from Intel [1] (published in 2009)
3179
    and public domain code from [2] (released in 2016).
3180
    
3181
    [1] https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/fast-crc-computation-generic-polynomials-pclmulqdq-paper.pdf
3182
    [2] https://github.com/rawrunprotected/crc
2244
3183
2245
 configure.ac | 6 +++---
3184
 CMakeLists.txt                  |  26 ++-
3185
 INSTALL                         |  12 ++
3186
 configure.ac                    |  59 +++++-
3187
 src/liblzma/check/crc64_fast.c  | 449 +++++++++++++++++++++++++++++++++++++++-
3188
 src/liblzma/check/crc64_table.c |  21 +-
3189
 5 files changed, 554 insertions(+), 13 deletions(-)
3190
3191
commit 3b466bc79672bb2b06d1245a500588e6026e0ba0
3192
Author: Lasse Collin <lasse.collin@tukaani.org>
3193
Date:   2022-11-14 20:14:34 +0200
3194
3195
    Translations: Update the Swedish translation one more time.
3196
3197
 po/sv.po | 6 +++---
2246
 1 file changed, 3 insertions(+), 3 deletions(-)
3198
 1 file changed, 3 insertions(+), 3 deletions(-)
2247
3199
2248
commit 85a6dfed53477906bfe9a7c0123dd412e391cb48
3200
commit e963379a8622ebdff6ce78e76b803bcd1e1d16d6
2249
Author: Lasse Collin <lasse.collin@tukaani.org>
3201
Author: Lasse Collin <lasse.collin@tukaani.org>
2250
Date:   2015-08-11 13:21:52 +0300
3202
Date:   2022-11-14 19:34:15 +0200
2251
3203
2252
    Build: Support building of MSYS2 binaries.
3204
    Translations: Update the Swedish translation again.
2253
3205
2254
 configure.ac | 16 +++++++++++-----
3206
 po/sv.po | 16 ++++++++--------
2255
 1 file changed, 11 insertions(+), 5 deletions(-)
3207
 1 file changed, 8 insertions(+), 8 deletions(-)
2256
3208
2257
commit 77f270be8432df2e4516a0c48814b6976d6618c5
3209
commit a4bc689a823a2254f29ac9d233170add5121b307
2258
Author: Lasse Collin <lasse.collin@tukaani.org>
3210
Author: Lasse Collin <lasse.collin@tukaani.org>
2259
Date:   2015-08-09 21:06:26 +0300
3211
Date:   2022-11-14 19:07:45 +0200
2260
3212
2261
    Windows: Define DLL_EXPORT when building liblzma.dll with MSVC.
3213
    Translations: Update the Swedish translation.
2262
    
2263
    src/liblzma/common/common.h uses it to set __declspec(dllexport)
2264
    for the API symbols.
2265
    
2266
    Thanks to Adam Walling.
2267
3214
2268
 windows/liblzma_dll.vcxproj | 12 ++++++------
3215
 po/sv.po | 671 ++++++++++++++++++++++++++++++++++++---------------------------
2269
 1 file changed, 6 insertions(+), 6 deletions(-)
3216
 1 file changed, 382 insertions(+), 289 deletions(-)
2270
3217
2271
commit 8c975446c5903090a5a8493b5b96b71003056a88
3218
commit bbf2073d824ab4ba33bed4b77f467435abd333a5
2272
Author: Lasse Collin <lasse.collin@tukaani.org>
3219
Author: Lasse Collin <lasse.collin@tukaani.org>
2273
Date:   2015-08-09 21:02:20 +0300
3220
Date:   2022-11-14 18:58:09 +0200
2274
3221
2275
    Windows: Omit unneeded header files from MSVC project files.
3222
    Translations: Update the Ukrainian translation.
2276
3223
2277
 windows/liblzma.vcxproj     | 5 -----
3224
 po/uk.po | 618 ++++++++++++++++++++++++++++++++++++---------------------------
2278
 windows/liblzma_dll.vcxproj | 5 -----
3225
 1 file changed, 354 insertions(+), 264 deletions(-)
2279
 2 files changed, 10 deletions(-)
2280
3226
2281
commit 119a00434954726ca58e4a578e6469f530fca30e
3227
commit ac10b1b3622e70881595586edfb8a3ebdcd76bb6
2282
Author: Lasse Collin <lasse.collin@tukaani.org>
3228
Author: Lasse Collin <lasse.collin@tukaani.org>
2283
Date:   2015-07-12 20:48:19 +0300
3229
Date:   2022-11-14 17:58:07 +0200
2284
3230
2285
    liblzma: A MSVC-specific hack isn't needed with MSVC 2013 and newer.
3231
    Build: Omit x86_64 from --enable-assembler.
3232
    
3233
    It didn't do anything. There are only 32-bit x86 assembly files
3234
    and it feels likely that new files won't be added as intrinsics
3235
    in C are more portable across toolchains and OSes.
2286
3236
2287
 src/liblzma/api/lzma.h | 18 +++++++++++++-----
3237
 configure.ac | 6 ++----
2288
 1 file changed, 13 insertions(+), 5 deletions(-)
3238
 1 file changed, 2 insertions(+), 4 deletions(-)
2289
3239
2290
commit d4e7c557fcab353539c9481a8d95cb04bcb15c7c
3240
commit eb0f1450ad9f23dac03050d9c8375980240aee21
2291
Author: Lasse Collin <lasse.collin@tukaani.org>
3241
Author: Lasse Collin <lasse.collin@tukaani.org>
2292
Date:   2015-06-19 20:38:55 +0300
3242
Date:   2022-11-14 16:00:52 +0200
2293
3243
2294
    Update THANKS.
3244
    liblzma: Use __attribute__((__constructor__)) if available.
3245
    
3246
    This uses it for CRC table initializations when using --disable-small.
3247
    It avoids mythread_once() overhead. It also means that then
3248
    --disable-small --disable-threads is thread-safe if this attribute
3249
    is supported.
2295
3250
2296
 THANKS | 2 ++
3251
 CMakeLists.txt                  | 15 +++++++++++++++
2297
 1 file changed, 2 insertions(+)
3252
 INSTALL                         |  4 +++-
3253
 configure.ac                    | 31 ++++++++++++++++++++++++++++---
3254
 src/liblzma/check/crc32_small.c |  7 +++++++
3255
 src/liblzma/check/crc64_small.c |  5 +++++
3256
 src/liblzma/lz/lz_encoder.c     |  2 +-
3257
 6 files changed, 59 insertions(+), 5 deletions(-)
2298
3258
2299
commit 98001740ca56c894a7bd32eb47e9857a8a7d878d
3259
commit 6553f49b11dafad35c73b05f12e14865ea1fd8a1
2300
Author: Lasse Collin <lasse.collin@tukaani.org>
3260
Author: Lasse Collin <lasse.collin@tukaani.org>
2301
Date:   2015-06-19 20:21:30 +0300
3261
Date:   2022-11-12 21:19:52 +0200
2302
3262
2303
    Windows: Update the docs.
3263
    Translations: Update the Romanian translation.
2304
3264
2305
 INSTALL                                            | 29 ++++++++-----
3265
 po/ro.po | 651 +++++++++++++++++++++++++++++++++++++--------------------------
2306
 windows/INSTALL-MSVC.txt                           | 47 ++++++++++++++++++++++
3266
 1 file changed, 380 insertions(+), 271 deletions(-)
2307
 windows/{INSTALL-Windows.txt => INSTALL-MinGW.txt} |  2 +-
2308
 3 files changed, 67 insertions(+), 11 deletions(-)
2309
3267
2310
commit 28195e4c877007cc760ecea1d17f740693d66873
3268
commit db97e69e12393becc29f8febd53133d0d36989bd
2311
Author: Lasse Collin <lasse.collin@tukaani.org>
3269
Author: Lasse Collin <lasse.collin@tukaani.org>
2312
Date:   2015-06-19 17:25:31 +0300
3270
Date:   2022-11-12 21:17:45 +0200
2313
3271
2314
    Windows: Add MSVC project files for building liblzma.
3272
    Translations: Update the Hungarian translation.
2315
    
2316
    Thanks to Adam Walling for creating these files.
2317
3273
2318
 windows/liblzma.vcxproj     | 359 ++++++++++++++++++++++++++++++++++++++++
3274
 po/hu.po | 625 ++++++++++++++++++++++++++++++++++++---------------------------
2319
 windows/liblzma_dll.vcxproj | 388 ++++++++++++++++++++++++++++++++++++++++++++
3275
 1 file changed, 357 insertions(+), 268 deletions(-)
2320
 windows/xz_win.sln          |  48 ++++++
2321
 3 files changed, 795 insertions(+)
2322
3276
2323
commit 960440f3230dc628f6966d9f7614fc1b28baf44e
3277
commit 2bbb9c0f3829a8b121b36998d273a6c6f92000f4
2324
Author: Lasse Collin <lasse.collin@tukaani.org>
3278
Author: Lasse Collin <lasse.collin@tukaani.org>
2325
Date:   2015-05-13 20:57:55 +0300
3279
Date:   2022-11-11 17:58:57 +0200
2326
3280
2327
    Tests: Fix a memory leak in test_bcj_exact_size.
3281
    Translations: Update the Finnish translation.
2328
    
2329
    Thanks to Cristian Rodríguez.
2330
3282
2331
 tests/test_bcj_exact_size.c | 1 +
3283
 po/fi.po | 610 ++++++++++++++++++++++++++++++++++++---------------------------
2332
 1 file changed, 1 insertion(+)
3284
 1 file changed, 348 insertions(+), 262 deletions(-)
2333
3285
2334
commit 68cd35acafbdcdf4e8ea8b5bb843c736939d6f8b
3286
commit 3c8cbb8137b6f8ed9416c1209d73cdbcb015251f
2335
Author: Lasse Collin <lasse.collin@tukaani.org>
3287
Author: Lasse Collin <lasse.collin@tukaani.org>
2336
Date:   2015-05-12 18:08:24 +0300
3288
Date:   2022-11-11 17:58:18 +0200
2337
3289
2338
    Fix NEWS about threading in 5.2.0.
3290
    Translations: Update the Croatian translation.
2339
    
2340
    Thanks to Andy Hochhaus.
2341
3291
2342
 NEWS | 3 ++-
3292
 po/hr.po | 680 +++++++++++++++++++++++++++++++++++----------------------------
2343
 1 file changed, 2 insertions(+), 1 deletion(-)
3293
 1 file changed, 381 insertions(+), 299 deletions(-)
2344
3294
2345
commit ff96ed6d25786728356017a13baf8c14731b4f1e
3295
commit 26c3359eac0988d6f3986735cd1363bec1678e8e
2346
Author: Lasse Collin <lasse.collin@tukaani.org>
3296
Author: Lasse Collin <lasse.collin@tukaani.org>
2347
Date:   2015-05-11 21:26:16 +0300
3297
Date:   2022-11-11 17:57:18 +0200
2348
3298
2349
    xz: Document that threaded decompression hasn't been implemented yet.
3299
    Translations: Update the Polish translation.
2350
3300
2351
 src/xz/xz.1 | 10 +++++++++-
3301
 po/pl.po | 569 ++++++++++++++++++++++++++++++++++-----------------------------
2352
 1 file changed, 9 insertions(+), 1 deletion(-)
3302
 1 file changed, 309 insertions(+), 260 deletions(-)
2353
3303
2354
commit 00d37b64a64ea8597fd2422d5187afd761ab9531
3304
commit 577e467b137c735afb8de6ae71ac7a73c2960cc4
2355
Author: Lasse Collin <lasse.collin@tukaani.org>
3305
Author: Lasse Collin <lasse.collin@tukaani.org>
2356
Date:   2015-04-20 20:20:29 +0300
3306
Date:   2022-11-11 17:56:44 +0200
2357
3307
3308
    Translations: Update the Spanish translation.
3309
3310
 po/es.po | 598 ++++++++++++++++++++++++++++++++++++---------------------------
3311
 1 file changed, 344 insertions(+), 254 deletions(-)
3312
3313
commit f9b4ff6e9a0f1678650775582d3e4fe782abce97
3314
Author: Lasse Collin <lasse.collin@tukaani.org>
3315
Date:   2022-11-11 17:16:03 +0200
3316
2358
    Update THANKS.
3317
    Update THANKS.
2359
3318
2360
 THANKS | 1 +
3319
 THANKS | 1 +
2361
 1 file changed, 1 insertion(+)
3320
 1 file changed, 1 insertion(+)
2362
3321
2363
commit db190a832c49ca3aed6d69cc992fa5583cae7b11
3322
commit a39961ef211e1bf030b17edeea3cff29fe263b67
2364
Author: Lasse Collin <lasse.collin@tukaani.org>
3323
Author: Lasse Collin <lasse.collin@tukaani.org>
2365
Date:   2015-04-20 19:59:18 +0300
3324
Date:   2022-11-11 17:15:25 +0200
2366
3325
2367
    Revert "xz: Use pipe2() if available."
3326
    liblzma: Fix building with Intel ICC (the classic compiler).
2368
    
3327
    
2369
    This reverts commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd.
3328
    It claims __GNUC__ >= 10 but doesn't support __symver__ attribute.
2370
    It is a problem when libc has pipe2() but the kernel is too
2371
    old to have pipe2() and thus pipe2() fails. In xz it's pointless
2372
    to have a fallback for non-functioning pipe2(); it's better to
2373
    avoid pipe2() completely.
2374
    
3329
    
2375
    Thanks to Michael Fox for the bug report.
3330
    Thanks to Stephen Sachs.
2376
3331
2377
 configure.ac     | 4 ++--
3332
 src/liblzma/common/common.h | 2 +-
2378
 src/xz/file_io.c | 9 +--------
3333
 1 file changed, 1 insertion(+), 1 deletion(-)
2379
 2 files changed, 3 insertions(+), 10 deletions(-)
2380
3334
2381
commit eccd8155e107c5ada03d13e7730675cdf1a44ddc
3335
commit c715f683dcb1a817d565da292cddfbceda643e12
2382
Author: Lasse Collin <lasse.collin@tukaani.org>
3336
Author: Lasse Collin <lasse.collin@tukaani.org>
2383
Date:   2015-03-29 22:14:47 +0300
3337
Date:   2022-11-11 14:35:58 +0200
2384
3338
2385
    Update THANKS.
3339
    liblzma: Fix incorrect #ifdef for x86 SSE2 support.
3340
    
3341
    __SSE2__ is the correct macro for SSE2 support with GCC, Clang,
3342
    and ICC. __SSE2_MATH__ means doing floating point math with SSE2
3343
    instead of 387. Often the latter macro is defined if the first
3344
    one is but it was still a bug.
2386
3345
2387
 THANKS | 1 +
3346
 src/liblzma/common/memcmplen.h | 3 +--
2388
 1 file changed, 1 insertion(+)
3347
 1 file changed, 1 insertion(+), 2 deletions(-)
2389
3348
2390
commit 25263fd9e7a8a913395cb93d7c104cd48c2b4a00
3349
commit bd334ae56afe7f642ad4d0f1ac19e74e82daa1ce
2391
Author: Lasse Collin <lasse.collin@tukaani.org>
3350
Author: Lasse Collin <lasse.collin@tukaani.org>
2392
Date:   2015-03-29 22:13:48 +0300
3351
Date:   2022-11-11 13:27:06 +0200
2393
3352
2394
    Fix the detection of installed RAM on QNX.
3353
    Add NEWS for 5.2.7 (forgotten cherry-pick from v5.2).
3354
3355
 NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3356
 1 file changed, 74 insertions(+)
3357
3358
commit 3c7860cf49de6f81046b3a4034a89f3a4803a576
3359
Author: Lasse Collin <lasse.collin@tukaani.org>
3360
Date:   2022-11-11 13:16:21 +0200
3361
3362
    xzdiff: Add support for .lz files.
2395
    
3363
    
2396
    The earlier version compiled but didn't actually work
3364
    The other scripts don't need changes for .lz support because
2397
    since sysconf(_SC_PHYS_PAGES) always fails (or so I was told).
3365
    in those scripts it is enough that xz supports .lz.
3366
3367
 src/scripts/xzdiff.in | 10 +++++-----
3368
 1 file changed, 5 insertions(+), 5 deletions(-)
3369
3370
commit d76c752a6d77052e5ad57ade555082585f7ac5d8
3371
Author: Lasse Collin <lasse.collin@tukaani.org>
3372
Date:   2022-11-11 12:23:58 +0200
3373
3374
    Scripts: Ignore warnings from xz.
2398
    
3375
    
2399
    Thanks to Ole André Vadla Ravnås for the patch and testing.
3376
    In practice this means making the scripts work when
3377
    the input files have an unsupported check type which
3378
    isn't a problem in practice unless support for
3379
    some check types has been disabled at build time.
2400
3380
2401
 m4/tuklib_physmem.m4        |  6 +++---
3381
 src/scripts/xzdiff.in | 5 +++--
2402
 src/common/tuklib_physmem.c | 14 +++++++++++++-
3382
 src/scripts/xzgrep.in | 2 +-
2403
 2 files changed, 16 insertions(+), 4 deletions(-)
3383
 src/scripts/xzless.in | 4 ++--
3384
 src/scripts/xzmore.in | 4 ++--
3385
 4 files changed, 8 insertions(+), 7 deletions(-)
2404
3386
2405
commit 4c544d2410903d38402221cb783ed85585b6a007
3387
commit 6552535afd1fe29d726ab6e68cf14ce3624fd48c
2406
Author: Lasse Collin <lasse.collin@tukaani.org>
3388
Author: Lasse Collin <lasse.collin@tukaani.org>
2407
Date:   2015-03-27 22:39:07 +0200
3389
Date:   2022-11-10 12:34:43 +0200
2408
3390
2409
    Fix CPU core count detection on QNX.
3391
    Translations: Rename poa4/fr_FR.po to po4a/fr.po.
2410
    
3392
    
2411
    It tried to use sysctl() on QNX but
3393
    That's how it is preferred at the Translation Project.
2412
      - it broke the build because sysctl() needs -lsocket on QNX;
3394
    On my system /usr/share/man/fr_FR doesn't contain any
2413
      - sysctl() doesn't work for detecting the core count on QNX
3395
    other man pages than XZ Utils while /usr/share/man/fr
2414
        even if it compiled.
3396
    has quite a few, so this will fix that too.
2415
    
3397
    
2416
    sysconf() works. An alternative would have been to use
3398
    Thanks to Benno Schulenberg from the Translation Project.
2417
    QNX-specific SYSPAGE_ENTRY(num_cpu) from <sys/syspage.h>.
2418
    
2419
    Thanks to Ole André Vadla Ravnås.
2420
3399
2421
 m4/tuklib_cpucores.m4 | 15 +++++++++++----
3400
 po4a/{fr_FR.po => fr.po} | 0
2422
 1 file changed, 11 insertions(+), 4 deletions(-)
3401
 po4a/po4a.conf           | 2 +-
3402
 2 files changed, 1 insertion(+), 1 deletion(-)
2423
3403
2424
commit e0ea6737b03e83ccaff4514d00e31bb926f8f0f3
3404
commit 0918159ce4c75bfb60aff0193b559f8a9f41d25a
2425
Author: Lasse Collin <lasse.collin@tukaani.org>
3405
Author: Lasse Collin <lasse.collin@tukaani.org>
2426
Date:   2015-03-07 22:05:57 +0200
3406
Date:   2022-11-09 18:48:50 +0200
2427
3407
2428
    xz: size_t/uint32_t cleanup in options.c.
3408
    xz: Update the man page about BCJ filters, including upcoming --arm64.
3409
    
3410
    The --arm64 isn't actually implemented yet in the form
3411
    described in this commit.
3412
    
3413
    Thanks to Jia Tan.
2429
3414
2430
 src/xz/options.c | 12 ++++++------
3415
 src/xz/xz.1 | 66 +++++++++++++++++++++++++++----------------------------------
2431
 1 file changed, 6 insertions(+), 6 deletions(-)
3416
 1 file changed, 29 insertions(+), 37 deletions(-)
2432
3417
2433
commit 8bcca29a65335fd679c13814b70b35b68fa5daed
3418
commit ba2ae3596f6be1587495f33b367488f6e00e56f1
2434
Author: Lasse Collin <lasse.collin@tukaani.org>
3419
Author: Lasse Collin <lasse.collin@tukaani.org>
2435
Date:   2015-03-07 22:04:23 +0200
3420
Date:   2022-11-09 18:14:14 +0200
2436
3421
2437
    xz: Fix a comment and silence a warning in message.c.
3422
    xz: Add --arm64 to --long-help and omit endianness from ARM(-Thumb).
3423
    
3424
    Modern 32-bit ARM in big endian mode use little endian for
3425
    instruction encoding still, so the filters work on such
3426
    executables too. It's likely less confusing for users this way.
3427
    
3428
    The --arm64 option hasn't been implemented yet (there is
3429
    --experimental-arm64 but it's different). The --arm64 option
3430
    is added now anyway because this is the likely result and the
3431
    strings need to be ready for translators.
3432
    
3433
    Thanks to Jia Tan.
2438
3434
2439
 src/xz/message.c | 5 +++--
3435
 src/xz/message.c | 5 +++--
2440
 1 file changed, 3 insertions(+), 2 deletions(-)
3436
 1 file changed, 3 insertions(+), 2 deletions(-)
2441
3437
2442
commit f243f5f44c6b19a7c289a0ec73a03ee08364cb5b
3438
commit 802d57d9215d9c81dbee86edb43c9e93a7f7ec55
2443
Author: Lasse Collin <lasse.collin@tukaani.org>
3439
Author: Lasse Collin <lasse.collin@tukaani.org>
2444
Date:   2015-03-07 22:01:00 +0200
3440
Date:   2022-11-09 15:12:13 +0200
2445
3441
2446
    liblzma: Silence more uint32_t vs. size_t warnings.
3442
    Windows: Update the VS project files for ARM64 and .lz support.
2447
3443
2448
 src/liblzma/lz/lz_encoder.c     | 2 +-
3444
 windows/vs2013/config.h            | 9 +++++++++
2449
 src/liblzma/lzma/lzma_encoder.c | 2 +-
3445
 windows/vs2013/liblzma.vcxproj     | 5 ++++-
2450
 2 files changed, 2 insertions(+), 2 deletions(-)
3446
 windows/vs2013/liblzma_dll.vcxproj | 5 ++++-
3447
 windows/vs2017/config.h            | 9 +++++++++
3448
 windows/vs2017/liblzma.vcxproj     | 3 +++
3449
 windows/vs2017/liblzma_dll.vcxproj | 3 +++
3450
 windows/vs2019/config.h            | 9 +++++++++
3451
 windows/vs2019/liblzma.vcxproj     | 5 ++++-
3452
 windows/vs2019/liblzma_dll.vcxproj | 5 ++++-
3453
 9 files changed, 49 insertions(+), 4 deletions(-)
2451
3454
2452
commit 7f0a4c50f4a374c40acf4b86848f301ad1e82d34
3455
commit 5846aeda05972bc803c6094821ae836229ebe691
2453
Author: Lasse Collin <lasse.collin@tukaani.org>
3456
Author: Lasse Collin <lasse.collin@tukaani.org>
2454
Date:   2015-03-07 19:54:00 +0200
3457
Date:   2022-11-09 14:57:48 +0200
2455
3458
2456
    xz: Make arg_count an unsigned int to silence a warning.
3459
    DOS: Update Makefile and config.h to include ARM64 and .lz support.
2457
    
2458
    Actually the value of arg_count cannot exceed INT_MAX
2459
    but it's nicer as an unsigned int.
2460
3460
2461
 src/xz/args.h | 2 +-
3461
 dos/Makefile | 2 ++
2462
 src/xz/main.c | 2 +-
3462
 dos/config.h | 9 +++++++++
2463
 2 files changed, 2 insertions(+), 2 deletions(-)
3463
 2 files changed, 11 insertions(+)
2464
3464
2465
commit f6ec46801588b1be29c07c9db98558b521304002
3465
commit 781da8d6c44de6aa278c916375250668a0b107f2
2466
Author: Lasse Collin <lasse.collin@tukaani.org>
3466
Author: Lasse Collin <lasse.collin@tukaani.org>
2467
Date:   2015-03-07 19:33:17 +0200
3467
Date:   2022-11-09 14:45:05 +0200
2468
3468
2469
    liblzma: Fix a warning in index.c.
3469
    CMake: Add lzip decoder files and #define to the build.
2470
3470
2471
 src/liblzma/common/index.c | 4 +++-
3471
 CMakeLists.txt | 3 +++
2472
 1 file changed, 3 insertions(+), 1 deletion(-)
3472
 1 file changed, 3 insertions(+)
2473
3473
2474
commit a24518971cc621315af142dd3bb7614fab04ad27
3474
commit df8ad4af65a9c4846b108550d0083770a69dee64
2475
Author: Lasse Collin <lasse.collin@tukaani.org>
3475
Author: Lasse Collin <lasse.collin@tukaani.org>
2476
Date:   2015-02-26 20:46:14 +0200
3476
Date:   2022-11-09 14:41:56 +0200
2477
3477
2478
    Build: Fix a CR+LF problem when running autoreconf -fi on OS/2.
3478
    Docs: Update INSTALL and also add new prohibited options to PACKAGERS.
2479
3479
2480
 build-aux/version.sh | 2 +-
3480
 INSTALL   | 49 +++++++++++++++++++++++++++++++++++++++++--------
2481
 1 file changed, 1 insertion(+), 1 deletion(-)
3481
 PACKAGERS |  2 ++
3482
 2 files changed, 43 insertions(+), 8 deletions(-)
2482
3483
2483
commit dec11497a71518423b5ff0e759100cf8aadf6c7b
3484
commit c8ef089c149afaab413c3a51be827dd1d11afe0e
2484
Author: Lasse Collin <lasse.collin@tukaani.org>
3485
Author: Lasse Collin <lasse.collin@tukaani.org>
2485
Date:   2015-02-26 16:53:44 +0200
3486
Date:   2022-10-20 17:39:06 +0300
2486
3487
2487
    Bump version and soname for 5.2.1.
3488
    Tests: Test the .lz files in test_files.sh.
2488
3489
2489
 src/liblzma/Makefile.am        | 2 +-
3490
 tests/test_files.sh | 25 +++++++++++++++++++++++++
2490
 src/liblzma/api/lzma/version.h | 2 +-
3491
 1 file changed, 25 insertions(+)
2491
 2 files changed, 2 insertions(+), 2 deletions(-)
2492
3492
2493
commit 29e39c79975ab89ee5dd671e97064534a9f3a649
3493
commit c8f70ebb4628ceb6cb29cc9195d9deadf69d2bd7
2494
Author: Lasse Collin <lasse.collin@tukaani.org>
3494
Author: Lasse Collin <lasse.collin@tukaani.org>
2495
Date:   2015-02-26 13:01:09 +0200
3495
Date:   2022-10-20 15:35:59 +0300
2496
3496
2497
    Update NEWS for 5.2.1.
3497
    Tests: Add .lz (lzip) test files.
2498
3498
2499
 NEWS | 14 ++++++++++++++
3499
 tests/files/README                     | 109 +++++++++++++++++++++++++++++----
2500
 1 file changed, 14 insertions(+)
3500
 tests/files/bad-1-v0-uncomp-size.lz    | Bin 0 -> 42 bytes
3501
 tests/files/bad-1-v1-crc32.lz          | Bin 0 -> 50 bytes
3502
 tests/files/bad-1-v1-dict-1.lz         | Bin 0 -> 50 bytes
3503
 tests/files/bad-1-v1-dict-2.lz         | Bin 0 -> 50 bytes
3504
 tests/files/bad-1-v1-magic-1.lz        | Bin 0 -> 50 bytes
3505
 tests/files/bad-1-v1-magic-2.lz        | Bin 0 -> 50 bytes
3506
 tests/files/bad-1-v1-member-size.lz    | Bin 0 -> 50 bytes
3507
 tests/files/bad-1-v1-trailing-magic.lz | Bin 0 -> 54 bytes
3508
 tests/files/bad-1-v1-uncomp-size.lz    | Bin 0 -> 50 bytes
3509
 tests/files/good-1-v0-trailing-1.lz    | Bin 0 -> 59 bytes
3510
 tests/files/good-1-v0.lz               | Bin 0 -> 42 bytes
3511
 tests/files/good-1-v1-trailing-1.lz    | Bin 0 -> 67 bytes
3512
 tests/files/good-1-v1-trailing-2.lz    | Bin 0 -> 70 bytes
3513
 tests/files/good-1-v1.lz               | Bin 0 -> 50 bytes
3514
 tests/files/good-2-v0-v1.lz            | Bin 0 -> 78 bytes
3515
 tests/files/good-2-v1-v0.lz            | Bin 0 -> 78 bytes
3516
 tests/files/good-2-v1-v1.lz            | Bin 0 -> 86 bytes
3517
 tests/files/unsupported-1-v234.lz      | Bin 0 -> 50 bytes
3518
 19 files changed, 98 insertions(+), 11 deletions(-)
2501
3519
2502
commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd
3520
commit 731db13e6fa3ad3e3fc786c0ccf6eac4cce6865f
2503
Author: Lasse Collin <lasse.collin@tukaani.org>
3521
Author: Lasse Collin <lasse.collin@tukaani.org>
2504
Date:   2015-02-22 19:38:48 +0200
3522
Date:   2022-10-19 22:32:51 +0300
2505
3523
2506
    xz: Use pipe2() if available.
3524
    xz: Remove the commented-out FORMAT_GZIP, gzip, .gz, and .tgz.
2507
3525
2508
 configure.ac     | 4 ++--
3526
 src/xz/args.c   | 2 --
2509
 src/xz/file_io.c | 9 ++++++++-
3527
 src/xz/coder.h  | 1 -
2510
 2 files changed, 10 insertions(+), 3 deletions(-)
3528
 src/xz/suffix.c | 9 ---------
3529
 3 files changed, 12 deletions(-)
2511
3530
2512
commit 117d962685c72682c63edc9bb765367189800202
3531
commit 3176f992c55b8d788c4633809aaf9447376a5a12
2513
Author: Lasse Collin <lasse.collin@tukaani.org>
3532
Author: Lasse Collin <lasse.collin@tukaani.org>
2514
Date:   2015-02-21 23:40:26 +0200
3533
Date:   2022-10-08 21:28:15 +0300
2515
3534
2516
    liblzma: Fix a compression-ratio regression in LZMA1/2 in fast mode.
3535
    xz: Add .lz (lzip) decompression support.
2517
    
3536
    
2518
    The bug was added in the commit
3537
    If configured with --disable-lzip-decoder then --long-help will
2519
    f48fce093b07aeda95c18850f5e086d9f2383380 and thus
3538
    still list `lzip' in --format but I left it like that since
2520
    affected 5.1.4beta and 5.2.0. Luckily the bug cannot
3539
    due to translations it would be messy to have two help strings.
2521
    cause data corruption or other nasty things.
3540
    Features are disabled only in special situations so wrong help
3541
    in such a situation shouldn't matter much.
3542
    
3543
    Thanks to Michał Górny for the original patch.
2522
3544
2523
 src/liblzma/lzma/lzma_encoder_optimum_fast.c | 2 +-
3545
 src/xz/args.c    |  9 ++++++++
2524
 1 file changed, 1 insertion(+), 1 deletion(-)
3546
 src/xz/coder.c   | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
3547
 src/xz/coder.h   |  3 +++
3548
 src/xz/message.c |  2 +-
3549
 src/xz/suffix.c  | 26 ++++++++++++++++++----
3550
 src/xz/xz.1      | 46 +++++++++++++++++++++++++++++++++-----
3551
 6 files changed, 141 insertions(+), 13 deletions(-)
2525
3552
2526
commit ae984e31c167d3bc52972ec422dd1ebd5f5d5719
3553
commit 034086e1ae1459210837a24e04878435c86dc41b
2527
Author: Lasse Collin <lasse.collin@tukaani.org>
3554
Author: Lasse Collin <lasse.collin@tukaani.org>
2528
Date:   2015-02-21 23:00:19 +0200
3555
Date:   2022-10-08 00:29:20 +0300
2529
3556
2530
    xz: Fix the fcntl() usage when creating a pipe for the self-pipe trick.
3557
    liblzma: Add .lz support to lzma_auto_decoder().
2531
    
3558
    
2532
    Now it reads the old flags instead of blindly setting O_NONBLOCK.
3559
    Thanks to Michał Górny for the original patch.
2533
    The old code may have worked correctly, but this is better.
2534
3560
2535
 src/xz/file_io.c | 16 +++++++++++-----
3561
 src/liblzma/api/lzma/container.h  | 10 ++++++----
2536
 1 file changed, 11 insertions(+), 5 deletions(-)
3562
 src/liblzma/common/Makefile.inc   |  3 ++-
3563
 src/liblzma/common/auto_decoder.c | 23 +++++++++++++++++------
3564
 src/liblzma/common/lzip_decoder.h | 22 ++++++++++++++++++++++
3565
 4 files changed, 47 insertions(+), 11 deletions(-)
2537
3566
2538
commit 2205bb5853098aea36a56df6f5747037175f66b4
3567
commit 0538db038f3cdc352007dacb42454aa1806b8e40
2539
Author: Lasse Collin <lasse.collin@tukaani.org>
3568
Author: Lasse Collin <lasse.collin@tukaani.org>
2540
Date:   2015-02-10 15:29:34 +0200
3569
Date:   2022-10-06 15:50:20 +0300
2541
3570
2542
    Update THANKS.
3571
    liblzma: Add .lz (lzip) decompression support (format versions 0 and 1).
3572
    
3573
    Support for format version 0 was removed from lzip 1.18 for some
3574
    reason. .lz format version 0 files are rare (and old) but some
3575
    source packages were released in this format, and some people might
3576
    have personal files in this format too. It's very little extra code
3577
    to support it along side format version 1 so this commits adds
3578
    support for both.
3579
    
3580
    The Sync Flush marker extentension to the original .lz format
3581
    version 1 isn't supported. It would require changes to the
3582
    LZMA decoder itself. Such files are very rare anyway.
3583
    
3584
    See the API doc for lzma_lzip_decoder() for more details about
3585
    the .lz format support.
3586
    
3587
    Thanks to Michał Górny for the original patch.
2543
3588
2544
 THANKS | 1 +
3589
 configure.ac                      |  21 ++
2545
 1 file changed, 1 insertion(+)
3590
 src/liblzma/api/lzma/container.h  |  62 +++++-
3591
 src/liblzma/common/Makefile.inc   |   5 +
3592
 src/liblzma/common/lzip_decoder.c | 413 ++++++++++++++++++++++++++++++++++++++
3593
 src/liblzma/liblzma_generic.map   |   1 +
3594
 src/liblzma/liblzma_linux.map     |   1 +
3595
 6 files changed, 501 insertions(+), 2 deletions(-)
2546
3596
2547
commit d935b0cdf3db440269b9d952b2b281b18f8c7b08
3597
commit 633d48a075b9ce4b9c08a7a56a7eb4cabc18100c
2548
Author: Lasse Collin <lasse.collin@tukaani.org>
3598
Author: Lasse Collin <lasse.collin@tukaani.org>
2549
Date:   2015-02-10 15:28:30 +0200
3599
Date:   2022-11-09 14:17:23 +0200
2550
3600
2551
    tuklib_cpucores: Use cpuset_getaffinity() on FreeBSD if available.
3601
    liblzma: Add the missing Makefile.inc change for --disable-microlzma.
2552
    
3602
    
2553
    In FreeBSD, cpuset_getaffinity() is the preferred way to get
3603
    This was forgotten from commit 59c4d6e1390f6f4176f43ac1dad1f7ac03c449b8.
2554
    the number of available cores.
3604
3605
 src/liblzma/common/Makefile.inc | 12 ++++++++++--
3606
 1 file changed, 10 insertions(+), 2 deletions(-)
3607
3608
commit 724285dadbdc88765c8fb83eab9816575a260966
3609
Author: Lasse Collin <lasse.collin@tukaani.org>
3610
Date:   2022-11-09 14:10:52 +0200
3611
3612
    xz: Add comments about stdin and src_st.st_size.
2555
    
3613
    
2556
    Thanks to Rui Paulo for the patch. I edited it slightly, but
3614
    "xz -v < regular_file > out.xz" doesn't display the percentage
2557
    hopefully I didn't break anything.
3615
    and estimated remaining time because it doesn't even try to
3616
    check the input file size when input is read from stdin.
3617
    This could be improved but for now there's just a comment
3618
    to remind about it.
2558
3619
2559
 m4/tuklib_cpucores.m4        | 23 ++++++++++++++++++++++-
3620
 src/xz/coder.c   | 9 +++++++++
2560
 src/common/tuklib_cpucores.c | 18 ++++++++++++++++++
3621
 src/xz/file_io.c | 4 ++++
2561
 2 files changed, 40 insertions(+), 1 deletion(-)
3622
 2 files changed, 13 insertions(+)
2562
3623
2563
commit eb61bc58c20769cac4d05f363b9c0e8c9c71a560
3624
commit f723eec68b0e44234910f669a29119de33018967
2564
Author: Lasse Collin <lasse.collin@tukaani.org>
3625
Author: Lasse Collin <lasse.collin@tukaani.org>
2565
Date:   2015-02-09 22:08:37 +0200
3626
Date:   2022-11-09 12:48:22 +0200
2566
3627
2567
    xzdiff: Make the mktemp usage compatible with FreeBSD's mktemp.
3628
    xz: Fix displaying of file sizes in progress indicator in passthru mode.
2568
    
3629
    
2569
    Thanks to Rui Paulo for the fix.
3630
    It worked for one input file since the counters are zero when
3631
    xz starts but they weren't reset when starting a new file in
3632
    passthru mode. For example, if files A, B, and C are one byte each,
3633
    then "xz -dcvf A B C" would show file sizes as 1, 2, and 3 bytes
3634
    instead of 1, 1, and 1 byte.
2570
3635
2571
 src/scripts/xzdiff.in | 7 ++++++-
3636
 src/xz/coder.c | 6 +++++-
2572
 1 file changed, 6 insertions(+), 1 deletion(-)
3637
 1 file changed, 5 insertions(+), 1 deletion(-)
2573
3638
2574
commit b9a5b6b7a29029680af733082b6a46e0fc01623a
3639
commit 69265d0f223ddf1d66f799b8b047df22923e376f
2575
Author: Lasse Collin <lasse.collin@tukaani.org>
3640
Author: Lasse Collin <lasse.collin@tukaani.org>
2576
Date:   2015-02-03 21:45:53 +0200
3641
Date:   2022-11-09 11:27:20 +0200
2577
3642
2578
    Add a few casts to tuklib_integer.h to silence possible warnings.
3643
    xz: Add a comment why --to-stdout is not in --help.
2579
    
3644
    
2580
    I heard that Visual Studio 2013 gave warnings without the casts.
3645
    It is on the man page still.
2581
    
2582
    Thanks to Gabi Davar.
2583
3646
2584
 src/common/tuklib_integer.h | 24 ++++++++++++------------
3647
 src/xz/message.c | 3 +++
2585
 1 file changed, 12 insertions(+), 12 deletions(-)
3648
 1 file changed, 3 insertions(+)
2586
3649
2587
commit c45757135f40e4a0de730ba5fff0100219493982
3650
commit fe6b8852a3c6a0eb5a3c33512e0a69af257d3bc7
2588
Author: Lasse Collin <lasse.collin@tukaani.org>
3651
Author: Lasse Collin <lasse.collin@tukaani.org>
2589
Date:   2015-01-26 21:24:39 +0200
3652
Date:   2022-11-08 23:05:37 +0200
2590
3653
2591
    liblzma: Set LZMA_MEMCMPLEN_EXTRA depending on the compare method.
3654
    xz: Make xz -lvv show that the upcoming --arm64 needs 5.4.0 to decompress.
2592
3655
2593
 src/liblzma/common/memcmplen.h | 15 ++++++++++-----
3656
 src/xz/list.c | 20 +++++++++++++++-----
2594
 1 file changed, 10 insertions(+), 5 deletions(-)
3657
 1 file changed, 15 insertions(+), 5 deletions(-)
2595
3658
2596
commit 3c500174ed5485f550972a2a6109c361e875f069
3659
commit fb3f05ac9f2b4b0e3643401960fbeab31997ac7a
2597
Author: Lasse Collin <lasse.collin@tukaani.org>
3660
Author: Lasse Collin <lasse.collin@tukaani.org>
2598
Date:   2015-01-26 20:40:16 +0200
3661
Date:   2022-11-08 22:26:54 +0200
2599
3662
2600
    Update THANKS.
3663
    Docs: Update faq.txt a little.
2601
3664
2602
 THANKS | 1 +
3665
 doc/faq.txt | 66 ++++++++++++++++++++++++++++++++++++++++---------------------
2603
 1 file changed, 1 insertion(+)
3666
 1 file changed, 43 insertions(+), 23 deletions(-)
2604
3667
2605
commit fec88d41e672d9e197c9442aecf02bd0dfa6d516
3668
commit 05331f091ec3b68eccbfb2a9a7a576072768fb4b
2606
Author: Lasse Collin <lasse.collin@tukaani.org>
3669
Author: Lasse Collin <lasse.collin@tukaani.org>
2607
Date:   2015-01-26 20:39:28 +0200
3670
Date:   2022-11-08 16:57:17 +0200
2608
3671
2609
    liblzma: Silence harmless Valgrind errors.
3672
    Translations: Update Turkish translation.
2610
    
2611
    Thanks to Torsten Rupp for reporting this. I had
2612
    forgotten to run Valgrind before the 5.2.0 release.
2613
3673
2614
 src/liblzma/lz/lz_encoder.c | 6 ++++++
3674
 po/tr.po | 2 +-
2615
 1 file changed, 6 insertions(+)
3675
 1 file changed, 1 insertion(+), 1 deletion(-)
2616
3676
2617
commit a9b45badfec0928d20a27c7176c005fa637f7d1e
3677
commit ed3a4822963b4940d84e6f44d47277c394fc046d
2618
Author: Lasse Collin <lasse.collin@tukaani.org>
3678
Author: Lasse Collin <lasse.collin@tukaani.org>
2619
Date:   2015-01-09 21:50:19 +0200
3679
Date:   2022-11-08 14:55:32 +0200
2620
3680
2621
    xz: Fix comments.
3681
    Translations: Update Croatian translation.
2622
3682
2623
 src/xz/file_io.c | 12 ++++++++----
3683
 po/hr.po | 190 ++++++++++++++++++++++++++++++++-------------------------------
2624
 1 file changed, 8 insertions(+), 4 deletions(-)
3684
 1 file changed, 96 insertions(+), 94 deletions(-)
2625
3685
2626
commit 541aee6dd4aa97a809aba281475a21b641bb89e2
3686
commit 4746f5ec721316bc4c6fec9905b2902e0360e0af
2627
Author: Lasse Collin <lasse.collin@tukaani.org>
3687
Author: Lasse Collin <lasse.collin@tukaani.org>
2628
Date:   2015-01-09 21:35:06 +0200
3688
Date:   2022-11-08 14:13:03 +0200
2629
3689
2630
    Update THANKS.
3690
    liblzma: Update API docs about decoder flags.
2631
3691
2632
 THANKS | 1 +
3692
 src/liblzma/api/lzma/container.h | 21 +++++++++++++++++----
2633
 1 file changed, 1 insertion(+)
3693
 1 file changed, 17 insertions(+), 4 deletions(-)
2634
3694
2635
commit 4170edc914655310d2363baccf5e615e09b04911
3695
commit 8779a9db5d0cec00c9dc9e9965dd2dda04f9d80d
2636
Author: Lasse Collin <lasse.collin@tukaani.org>
3696
Author: Lasse Collin <lasse.collin@tukaani.org>
2637
Date:   2015-01-09 21:34:06 +0200
3697
Date:   2022-11-08 14:01:50 +0200
2638
3698
2639
    xz: Don't fail if stdout doesn't support O_NONBLOCK.
3699
    liblzma: Use the return_if_error() macro in alone_decoder.c.
3700
3701
 src/liblzma/common/alone_decoder.c | 6 ++----
3702
 1 file changed, 2 insertions(+), 4 deletions(-)
3703
3704
commit 3f4990b6822961e75cd9b4e2e82b1df63f6f8fcc
3705
Author: Lasse Collin <lasse.collin@tukaani.org>
3706
Date:   2022-11-08 14:00:58 +0200
3707
3708
    liblzma: Fix a comment in auto_decoder.c.
3709
3710
 src/liblzma/common/auto_decoder.c | 4 ++--
3711
 1 file changed, 2 insertions(+), 2 deletions(-)
3712
3713
commit 026a5897c72a2041ae08ceec54ce8b1cdeb51334
3714
Author: Lasse Collin <lasse.collin@tukaani.org>
3715
Date:   2022-11-08 13:43:19 +0200
3716
3717
    xz: Initialize the pledge(2) sandbox at the very beginning of main().
2640
    
3718
    
2641
    This is similar to the case with stdin.
3719
    It feels better that the initializations are sandboxed too.
3720
    They don't do anything that the pledge() call wouldn't allow.
3721
3722
 src/xz/main.c | 27 ++++++++++++++-------------
3723
 1 file changed, 14 insertions(+), 13 deletions(-)
3724
3725
commit 49a59f6ca001c3ce9affa2c162b437aad021b4d5
3726
Author: Lasse Collin <lasse.collin@tukaani.org>
3727
Date:   2022-11-07 22:51:16 +0200
3728
3729
    xz: Extend --robot --info-memory output.
2642
    
3730
    
2643
    Thanks to Brad Smith for the bug report and testing
3731
    Now it includes everything that the human-readable --info-memory shows.
2644
    on OpenBSD.
2645
3732
2646
 src/xz/file_io.c | 36 +++++++++++++++---------------------
3733
 src/xz/hardware.c | 24 +++++++++++++++---------
2647
 1 file changed, 15 insertions(+), 21 deletions(-)
3734
 src/xz/xz.1       | 47 +++++++++++++++++++++++++++++++++++++++++------
3735
 2 files changed, 56 insertions(+), 15 deletions(-)
2648
3736
2649
commit 04bbc0c2843c50c8ad1cba42b937118e38b0508d
3737
commit 5e2450c75cbac966c62cf2231c824f2cc91ddba8
2650
Author: Lasse Collin <lasse.collin@tukaani.org>
3738
Author: Lasse Collin <lasse.collin@tukaani.org>
2651
Date:   2015-01-07 19:18:20 +0200
3739
Date:   2022-11-07 17:22:04 +0200
2652
3740
2653
    xz: Fix a memory leak in DOS-specific code.
3741
    liblzma: Include cached memory in reported memusage in threaded decoder.
3742
    
3743
    This affects lzma_memusage() and lzma_memlimit_set() when used
3744
    with the threaded decompressor. Now all allocations are reported
3745
    by lzma_memusage() (so it's not misleading) and lzma_memlimit_set()
3746
    cannot lower the limit below that value.
3747
    
3748
    The alternative would have been to allow lowering the limit if
3749
    doing so is possible by freeing the cached memory but since
3750
    the primary use case of lzma_memlimit_set() is to increase
3751
    memlimit after LZMA_MEMLIMIT_ERROR this simple approach
3752
    was selected.
3753
    
3754
    The cached memory was always included when enforcing
3755
    the memory usage limit while decoding.
3756
    
3757
    Thanks to Jia Tan.
2654
3758
2655
 src/xz/file_io.c | 2 ++
3759
 src/liblzma/common/stream_decoder_mt.c | 22 +++++++++++++++++++---
2656
 1 file changed, 2 insertions(+)
3760
 1 file changed, 19 insertions(+), 3 deletions(-)
2657
3761
2658
commit f0f1f6c7235ffa901cf76fe18e33749e200b3eea
3762
commit 1fc6e7dd1fabdb60124d449b99273330ccab3ff1
3763
Author: Jia Tan <jiat0218@gmail.com>
3764
Date:   2022-11-07 16:24:14 +0200
3765
3766
    xz: Avoid a compiler warning in progress_speed() in message.c.
3767
    
3768
    This should be smaller too since it avoids the string constants.
3769
3770
 src/xz/message.c | 9 +++------
3771
 1 file changed, 3 insertions(+), 6 deletions(-)
3772
3773
commit cf118c014683069b5dbe91898acdc40f2f0a1f5d
2659
Author: Lasse Collin <lasse.collin@tukaani.org>
3774
Author: Lasse Collin <lasse.collin@tukaani.org>
2660
Date:   2015-01-07 19:08:06 +0200
3775
Date:   2022-10-31 16:26:05 +0200
2661
3776
2662
    xz: Don't fail if stdin doesn't support O_NONBLOCK.
3777
    Build: Clarify comment in configure.ac about SSE2.
3778
3779
 configure.ac | 5 ++++-
3780
 1 file changed, 4 insertions(+), 1 deletion(-)
3781
3782
commit aad3c609ffb72f581a7a2b67be3ad70b2b327840
3783
Author: Lasse Collin <lasse.collin@tukaani.org>
3784
Date:   2022-10-31 16:16:37 +0200
3785
3786
    Build: Remove obsolete commented-out lines from configure.ac.
3787
3788
 configure.ac | 4 ----
3789
 1 file changed, 4 deletions(-)
3790
3791
commit e53e0e2186c6b8ce866bd19aec52f1c318ed31ba
3792
Author: Lasse Collin <lasse.collin@tukaani.org>
3793
Date:   2022-10-31 13:31:58 +0200
3794
3795
    Windows: Fix mythread_once() macro with Vista threads.
2663
    
3796
    
2664
    It's a problem at least on OpenBSD which doesn't support
3797
    Don't call InitOnceComplete() if initialization was already done.
2665
    O_NONBLOCK on e.g. /dev/null. I'm not surprised if it's
2666
    a problem on other OSes too since this behavior is allowed
2667
    in POSIX-1.2008.
2668
    
3798
    
2669
    The code relying on this behavior was committed in June 2013
3799
    So far mythread_once() has been needed only when building
2670
    and included in 5.1.3alpha released on 2013-10-26. Clearly
3800
    with --enable-small. windows/build.bash does this together
2671
    the development releases only get limited testing.
3801
    with --disable-threads so the Vista-specific mythread_once()
3802
    is never needed by those builds. VS project files or
3803
    CMake-builds don't support HAVE_SMALL builds at all.
2672
3804
2673
 src/xz/file_io.c | 18 +++++++-----------
3805
 src/common/mythread.h | 7 ++++---
2674
 1 file changed, 7 insertions(+), 11 deletions(-)
3806
 1 file changed, 4 insertions(+), 3 deletions(-)
2675
3807
2676
commit d2d484647d9d9d679f03c75abb0404f67069271c
3808
commit 48dde3bab9dc04081acb5aa7cf7c5044b8a49f58
2677
Author: Lasse Collin <lasse.collin@tukaani.org>
3809
Author: Lasse Collin <lasse.collin@tukaani.org>
2678
Date:   2015-01-06 20:30:15 +0200
3810
Date:   2022-10-31 11:54:44 +0200
2679
3811
2680
    Tests: Don't hide unexpected error messages in test_files.sh.
3812
    liblzma: Silence -Wconversion warning from crc64_fast.c.
3813
3814
 src/liblzma/check/crc64_fast.c | 5 +++--
3815
 1 file changed, 3 insertions(+), 2 deletions(-)
3816
3817
commit a243c617ff249d915ac123de4f536b80322c1fdb
3818
Author: Lasse Collin <lasse.collin@tukaani.org>
3819
Date:   2022-10-31 11:49:47 +0200
3820
3821
    CMake: Sync tuklib_cpucores.cmake with tuklib_cpucores.m4.
2681
    
3822
    
2682
    Hiding them makes no sense since normally there's no error
3823
    This was forgotten from commit 2611c4d90535652d3eb7ef4a026a6691276fab43.
2683
    when testing the "good" files. With "bad" files errors are
2684
    expected and then it makes sense to keep the messages hidden.
2685
3824
2686
 tests/test_files.sh | 4 ++--
3825
 cmake/tuklib_cpucores.cmake | 5 +++++
2687
 1 file changed, 2 insertions(+), 2 deletions(-)
3826
 1 file changed, 5 insertions(+)
2688
3827
2689
commit aae6a6aeda51cf94a47e39ad624728f9bee75e30
3828
commit 05c72de06fcaaedc78f8abba7d5ec568ddcf1e75
2690
Author: Lasse Collin <lasse.collin@tukaani.org>
3829
Author: Lasse Collin <lasse.collin@tukaani.org>
2691
Date:   2014-12-30 11:17:16 +0200
3830
Date:   2022-10-27 15:49:18 +0300
2692
3831
2693
    Update Solaris notes in INSTALL.
3832
    Tests: test_files.sh: Make it not fail if features were disabled at build.
2694
    
3833
    
2695
    Mention the possible "make check" failure on Solaris in the
3834
    It now tries to test as many files as easily possible.
2696
    Solaris-specific section of INSTALL. It was already in
3835
    The exit status indicates skipping if any of the files were
2697
    section 4.5 but it is better mention it in the OS-specific
3836
    skipped. This way it is easy to notice if something is being
2698
    section too.
3837
    skipped when it isn't expected.
2699
3838
2700
 INSTALL | 4 ++++
3839
 tests/test_files.sh | 50 ++++++++++++++++++++++++++++++++++++++++++++++----
2701
 1 file changed, 4 insertions(+)
3840
 1 file changed, 46 insertions(+), 4 deletions(-)
2702
3841
2703
commit 7815112153178800a3521b9f31960e7cdc26cfba
3842
commit b3459327a51f4b8239d19e6c34b4e0c6bc2d81de
2704
Author: Lasse Collin <lasse.collin@tukaani.org>
3843
Author: Lasse Collin <lasse.collin@tukaani.org>
2705
Date:   2014-12-26 12:00:05 +0200
3844
Date:   2022-10-27 15:30:13 +0300
2706
3845
2707
    Build: POSIX shell isn't required if scripts are disabled.
3846
    Tests: test_files.sh: Suppress an expected warning from the log.
3847
    
3848
    xz (but not xzdec) will normally warn about unsupported check
3849
    but since we are testing specifically such a file, it's better
3850
    to silence that warning so that it doesn't look suspicious in
3851
    test_files.sh.log.
3852
    
3853
    The use of -q and -Q in xzdec is just for consistency and
3854
    doesn't affect the result at least for now.
2708
3855
2709
 INSTALL      | 3 ++-
3856
 tests/test_files.sh | 4 ++--
2710
 configure.ac | 2 +-
3857
 1 file changed, 2 insertions(+), 2 deletions(-)
2711
 2 files changed, 3 insertions(+), 2 deletions(-)
2712
3858
2713
commit a0cd05ee71d330b79ead6eb9222e1b24e1559d3a
3859
commit 798c86e4231e0835ab76ccd0810c8ea30833b2ce
2714
Author: Lasse Collin <lasse.collin@tukaani.org>
3860
Author: Lasse Collin <lasse.collin@tukaani.org>
2715
Date:   2014-12-21 20:48:37 +0200
3861
Date:   2022-10-27 15:27:50 +0300
2716
3862
2717
    DOS: Update Makefile.
3863
    Tests: test_files.sh: Print the reason for skipping if xz & xzdec missing.
2718
3864
2719
 dos/Makefile | 1 +
3865
 tests/test_files.sh | 1 +
2720
 1 file changed, 1 insertion(+)
3866
 1 file changed, 1 insertion(+)
2721
3867
2722
commit b85ee0905ec4ab7656d22e63519fdd3bedb21f2e
3868
commit c1dd8524e1af07f16b790463899de06a6a5fcc08
2723
Author: Lasse Collin <lasse.collin@tukaani.org>
3869
Author: Lasse Collin <lasse.collin@tukaani.org>
2724
Date:   2014-12-21 19:50:38 +0200
3870
Date:   2022-10-27 01:12:40 +0300
2725
3871
2726
    Windows: Fix bin_i486 to bin_i686 in build.bash.
3872
    Tests: Keep test_compress_* working when some filters are unavailable.
2727
3873
2728
 windows/build.bash | 2 +-
3874
 tests/test_compress.sh | 34 ++++++++++++++++++++--------------
2729
 1 file changed, 1 insertion(+), 1 deletion(-)
3875
 1 file changed, 20 insertions(+), 14 deletions(-)
2730
3876
2731
commit cbafa710918195dbba3db02c3fab4f0538235206
3877
commit ce30ada91951d0746879ae438da11f1ee8a90aa0
2732
Author: Lasse Collin <lasse.collin@tukaani.org>
3878
Author: Jia Tan <jiat0218@gmail.com>
2733
Date:   2014-12-21 18:58:44 +0200
3879
Date:   2022-10-23 21:01:08 +0800
2734
3880
2735
    Docs: Use lzma_cputhreads() in 04_compress_easy_mt.c.
3881
    Tests: test_bcj_exact_size skips properly now if PowerPC filter disabled.
2736
3882
2737
 doc/examples/04_compress_easy_mt.c | 30 ++++++++++++++++++++++++++----
3883
 tests/test_bcj_exact_size.c | 3 +++
2738
 1 file changed, 26 insertions(+), 4 deletions(-)
3884
 1 file changed, 3 insertions(+)
2739
3885
2740
commit 8dbb57238d372c7263cfeb3e7f7fd9a73173156a
3886
commit 89c5cfcacaca7130509fac836e2f30c46b824502
2741
Author: Lasse Collin <lasse.collin@tukaani.org>
3887
Author: Lasse Collin <lasse.collin@tukaani.org>
2742
Date:   2014-12-21 18:56:44 +0200
3888
Date:   2022-10-26 00:05:57 +0300
2743
3889
2744
    Docs: Update docs/examples/00_README.txt.
3890
    Tests: Test also unsupported-*.xz.
2745
3891
2746
 doc/examples/00_README.txt | 4 ++++
3892
 tests/test_files.sh | 37 +++++++++++++++++++++++++++++++++++++
2747
 1 file changed, 4 insertions(+)
3893
 1 file changed, 37 insertions(+)
2748
3894
2749
commit 6060f7dc76fd6c2a8a1f8e85d0e4d86bb78273e6
3895
commit a4b214b93ac741edef9c41e55865b0b867ca2587
2750
Author: Lasse Collin <lasse.collin@tukaani.org>
3896
Author: Lasse Collin <lasse.collin@tukaani.org>
2751
Date:   2014-12-21 18:11:17 +0200
3897
Date:   2022-10-25 23:45:03 +0300
2752
3898
2753
    Bump version and soname for 5.2.0.
3899
    Build: Use AC_CONFIG_HEADERS instead of the ancient AC_CONFIG_HEADER.
2754
    
3900
    
2755
    I know that soname != app version, but I skip AGE=1
3901
    We require Autoconf >= 2.69 and that has AC_CONFIG_HEADERS.
2756
    in -version-info to make the soname match the liblzma
3902
    
2757
    version anyway. It doesn't hurt anything as long as
3903
    There is a warning about AC_PROG_CC_C99 being obsolete but
2758
    it doesn't conflict with library versioning rules.
3904
    it cannot be removed because it is needed with Autoconf 2.69.
2759
3905
2760
 src/liblzma/Makefile.am        | 2 +-
3906
 configure.ac | 2 +-
2761
 src/liblzma/api/lzma/version.h | 6 +++---
3907
 1 file changed, 1 insertion(+), 1 deletion(-)
2762
 src/liblzma/liblzma.map        | 2 +-
2763
 3 files changed, 5 insertions(+), 5 deletions(-)
2764
3908
2765
commit 3e8bd1d15e417f2d588e9be50ce027ee3d48b2da
3909
commit 04f299b64e73f50afc188c2590ebebc6b73ed744
2766
Author: Lasse Collin <lasse.collin@tukaani.org>
3910
Author: Lasse Collin <lasse.collin@tukaani.org>
2767
Date:   2014-12-21 18:05:03 +0200
3911
Date:   2022-10-25 23:31:44 +0300
2768
3912
2769
    Avoid variable-length arrays in the debug programs.
3913
    Build: Update m4/ax_pthread.m4 from Autoconf Archive.
2770
3914
2771
 debug/full_flush.c | 3 ++-
3915
 m4/ax_pthread.m4 | 29 ++++++++++++++++++++++-------
2772
 debug/sync_flush.c | 3 ++-
3916
 1 file changed, 22 insertions(+), 7 deletions(-)
2773
 2 files changed, 4 insertions(+), 2 deletions(-)
2774
3917
2775
commit 72f7307cfdceb941aeb2bf30d424cc0d13621786
3918
commit 59c4d6e1390f6f4176f43ac1dad1f7ac03c449b8
2776
Author: Lasse Collin <lasse.collin@tukaani.org>
3919
Author: Lasse Collin <lasse.collin@tukaani.org>
2777
Date:   2014-12-21 18:01:45 +0200
3920
Date:   2022-10-25 23:28:34 +0300
2778
3921
2779
    Build: Include 04_compress_easy_mt.c in the tarball.
3922
    Build: Add configure option --disable-microlzma.
3923
    
3924
    MicroLZMA was made for EROFS and used by erofs-utils.
3925
    It might be used by something else in the future but
3926
    those wanting a smaller build for specific situations
3927
    can now disable this rarely-needed feature.
2780
3928
2781
 Makefile.am | 1 +
3929
 configure.ac | 22 ++++++++++++++++++++++
2782
 1 file changed, 1 insertion(+)
3930
 1 file changed, 22 insertions(+)
2783
3931
2784
commit 2cb82ff21c62def11f3683a8bb0aaf363102aaa0
3932
commit 054ccd6d14b2cc6eddc56897af280d3221414150
2785
Author: Lasse Collin <lasse.collin@tukaani.org>
3933
Author: Lasse Collin <lasse.collin@tukaani.org>
2786
Date:   2014-12-21 18:00:38 +0200
3934
Date:   2022-10-25 23:09:11 +0300
2787
3935
2788
    Fix build when --disable-threads is used.
3936
    xz: Fix --single-stream with an empty .xz Stream.
3937
    
3938
    Example:
3939
    
3940
        $ xz -dc --single-stream good-0-empty.xz
3941
        xz: good-0-empty.xz: Internal error (bug)
3942
    
3943
    The code, that is tries to catch some input file issues early,
3944
    didn't anticipate LZMA_STREAM_END which is possible in that
3945
    code only when --single-stream is used.
2789
3946
2790
 src/common/mythread.h | 2 ++
3947
 src/xz/coder.c | 9 +++++++++
2791
 1 file changed, 2 insertions(+)
3948
 1 file changed, 9 insertions(+)
2792
3949
2793
commit 9b9e3536e458ef958f66b0e8982efc9d36de4d17
3950
commit 563288ea705e83ff5cb292adf794650c263bca1d
2794
Author: Adrien Nader <adrien@notk.org>
3951
Author: Lasse Collin <lasse.collin@tukaani.org>
2795
Date:   2014-12-21 15:56:15 +0100
3952
Date:   2022-10-25 21:11:58 +0300
2796
3953
2797
    po/fr: improve wording for help for --lzma1/--lzma2.
3954
    xz: Add support for OpenBSD's pledge() sandbox.
2798
3955
2799
 po/fr.po | 2 +-
3956
 configure.ac     | 12 +++++++++---
2800
 1 file changed, 1 insertion(+), 1 deletion(-)
3957
 src/xz/file_io.c | 11 +++++++++++
3958
 src/xz/main.c    | 13 +++++++++++++
3959
 src/xz/private.h |  2 +-
3960
 4 files changed, 34 insertions(+), 4 deletions(-)
2801
3961
2802
commit a8b6b569e7fadbf5b5b9139d53bc764015c15027
3962
commit f9913e8ee2ba0b1e4ff4d0aa4c001aae305ed944
2803
Author: Adrien Nader <adrien@notk.org>
3963
Author: Lasse Collin <lasse.collin@tukaani.org>
2804
Date:   2014-12-21 15:55:48 +0100
3964
Date:   2022-10-25 19:07:17 +0300
2805
3965
2806
    po/fr: missing line in translation of --extreme.
3966
    xz: Fix decompressor behavior if input uses an unsupported check type.
3967
    
3968
    Now files with unsupported check will make xz display
3969
    a warning, set the exit status to 2 (unless --no-warn is used),
3970
    and then decompress the file normally. This is how it was
3971
    supposed to work since the beginning but this was broken by
3972
    the commit 231c3c7098f1099a56abb8afece76fc9b8699f05, that is,
3973
    a little before 5.0.0 was released. The buggy behavior displayed
3974
    a message, set exit status 1 (error), and xz didn't attempt to
3975
    to decompress the file.
3976
    
3977
    This doesn't matter today except for special builds that disable
3978
    CRC64 or SHA-256 at build time (but such builds should be used
3979
    in special situations only). The bug matters if new check type
3980
    is added in the future and an old xz version is used to decompress
3981
    such a file; however, it's likely that such files would use a new
3982
    filter too and an old xz wouldn't be able to decompress the file
3983
    anyway.
3984
    
3985
    The first hunk in the commit is the actual fix. The second hunk
3986
    is a cleanup since LZMA_TELL_ANY_CHECK isn't used in xz.
3987
    
3988
    There is a test file for unsupported check type but it wasn't
3989
    used by test_files.sh, perhaps due to different behavior between
3990
    xz and the simpler xzdec.
2807
3991
2808
 po/fr.po | 1 +
3992
 src/xz/coder.c | 19 +++++++++++++++----
2809
 1 file changed, 1 insertion(+)
3993
 1 file changed, 15 insertions(+), 4 deletions(-)
2810
3994
2811
commit f168a6fd1a888cf4f0caaddcafcb21dadc6ab6e9
3995
commit aa4fe145b9486adc454f44fd3e09be9add808a0f
2812
Author: Lasse Collin <lasse.collin@tukaani.org>
3996
Author: Lasse Collin <lasse.collin@tukaani.org>
2813
Date:   2014-12-21 14:32:33 +0200
3997
Date:   2022-10-25 18:36:19 +0300
2814
3998
2815
    Update NEWS for 5.2.0.
3999
    xz: Clarify the man page: input file isn't removed if an error occurs.
2816
4000
2817
 NEWS | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4001
 src/xz/xz.1 | 5 +++--
2818
 1 file changed, 65 insertions(+)
4002
 1 file changed, 3 insertions(+), 2 deletions(-)
2819
4003
2820
commit cec2ee863b3a88f4bf039cb00f73c4a4fc93a429
4004
commit 8b46ae8cdeddfd7dc01fec92971b8696e9a96c5d
2821
Author: Lasse Collin <lasse.collin@tukaani.org>
4005
Author: Lasse Collin <lasse.collin@tukaani.org>
2822
Date:   2014-12-21 14:32:22 +0200
4006
Date:   2022-10-25 18:30:55 +0300
2823
4007
2824
    Update NEWS for 5.0.8.
4008
    xz: Refactor to remove is_empty_filename().
4009
    
4010
    Long ago it was used in list.c too but nowadays it's needed
4011
    only in io_open_src() so it's nicer to avoid a separate function.
2825
4012
2826
 NEWS | 12 ++++++++++++
4013
 src/xz/file_io.c |  4 +++-
2827
 1 file changed, 12 insertions(+)
4014
 src/xz/util.c    | 12 ------------
4015
 src/xz/util.h    |  4 ----
4016
 3 files changed, 3 insertions(+), 17 deletions(-)
2828
4017
2829
commit 42e97a32649bf53ce43be2258b902a417c6e7fa1
4018
commit 85624015978b0de294cff3df79006df987c552b1
2830
Author: Lasse Collin <lasse.collin@tukaani.org>
4019
Author: Lasse Collin <lasse.collin@tukaani.org>
2831
Date:   2014-12-21 14:07:54 +0200
4020
Date:   2022-10-25 18:23:54 +0300
2832
4021
2833
    xz: Fix a comment.
4022
    xz: If input file cannot be removed, treat it as a warning, not error.
4023
    
4024
    Treating it as a warning (message + exit status 2) matches gzip
4025
    and it seems more logical as at that point the output file has
4026
    already been successfully closed. When it's a warning it is
4027
    possible to suppress it with --no-warn.
2834
4028
2835
 src/xz/options.c | 4 ++--
4029
 src/xz/file_io.c | 4 ++--
2836
 1 file changed, 2 insertions(+), 2 deletions(-)
4030
 1 file changed, 2 insertions(+), 2 deletions(-)
2837
4031
2838
commit 29b95d5d6665cedffa6a9d6d3d914f981e852182
4032
commit fda9f85f52c546f7ca0313cf89481da4707fecb3
2839
Author: Lasse Collin <lasse.collin@tukaani.org>
4033
Author: Lasse Collin <lasse.collin@tukaani.org>
2840
Date:   2014-12-20 20:43:14 +0200
4034
Date:   2022-10-24 16:25:09 +0300
2841
4035
2842
    Update INSTALL about the dependencies of the scripts.
4036
    liblzma: Threaded decoder: Stop the worker threads on errors.
4037
    
4038
    It's waste of CPU time and electricity to leave the unfinished
4039
    worker threads running when it is known that their output will
4040
    get ignored.
2843
4041
2844
 INSTALL | 15 ++++++++++-----
4042
 src/liblzma/common/stream_decoder_mt.c | 33 ++++++++++++++++++++++++++-------
2845
 1 file changed, 10 insertions(+), 5 deletions(-)
4043
 1 file changed, 26 insertions(+), 7 deletions(-)
2846
4044
2847
commit 3af91040bb42c21afbb81f5568c3313125e61192
4045
commit 2611c4d90535652d3eb7ef4a026a6691276fab43
2848
Author: Lasse Collin <lasse.collin@tukaani.org>
4046
Author: Lasse Collin <lasse.collin@tukaani.org>
2849
Date:   2014-12-20 20:42:33 +0200
4047
Date:   2022-10-20 20:22:50 +0300
2850
4048
2851
    Windows: Update build instructions.
4049
    tuklib_cpucores: Use HW_NCPUONLINE on OpenBSD.
4050
    
4051
    On OpenBSD the number of cores online is often less
4052
    than what HW_NCPU would return because OpenBSD disables
4053
    simultaneous multi-threading (SMT) by default.
4054
    
4055
    Thanks to Christian Weisgerber.
2852
4056
2853
 INSTALL                     | 15 +++++++++------
4057
 m4/tuklib_cpucores.m4        | 5 +++++
2854
 windows/INSTALL-Windows.txt | 44 +++++++++++++++++++++-----------------------
4058
 src/common/tuklib_cpucores.c | 9 +++++++++
2855
 2 files changed, 30 insertions(+), 29 deletions(-)
4059
 2 files changed, 14 insertions(+)
2856
4060
2857
commit 0152f72bf6289d744823dc6c849538f3a139ad70
4061
commit 424ac91c7e0419393ff2bde4f62e21fa611c776d
2858
Author: Lasse Collin <lasse.collin@tukaani.org>
4062
Author: Lasse Collin <lasse.collin@tukaani.org>
2859
Date:   2014-12-20 20:41:48 +0200
4063
Date:   2022-10-19 19:39:35 +0300
2860
4064
2861
    Windows: Update the build script and README-Windows.txt.
4065
    Tests: Skip tests in test_*.sh if encoders and/or decoders are disabled.
2862
    
4066
    
2863
    The 32-bit build is now for i686 or newer because the
4067
    This isn't perfect as the scripts can still fail if only
2864
    prebuilt MinGW-w64 toolchains include i686 code in the
4068
    certain filters are disabled. This is still an improvement
2865
    executables even if one uses -march=i486.
4069
    as now "make check" has better behavior when all encoders
4070
    or decoders are disabled.
2866
    
4071
    
2867
    The build script builds 32-bit SSE2 enabled version too.
4072
    Grepping ../config.h is simple and fairly clean but it only
2868
    Run-time detection of SSE2 support would be nice (on any OS)
4073
    works if config.h was created. CMake builds don't create
2869
    but it's not implemented in XZ Utils yet.
4074
    config.h but they don't use these test scripts either.
4075
    
4076
    Thanks to Sebastian Andrzej Siewior for reporting the problem.
4077
    Thanks to Jia Tan for the original patch which grepped xz
4078
    error messages instead of config.h.
2870
4079
2871
 windows/README-Windows.txt | 30 ++++++++++++++++--------------
4080
 tests/test_compress.sh | 12 ++++++++++++
2872
 windows/build.bash         | 23 ++++++++++++++---------
4081
 tests/test_files.sh    | 11 +++++++++++
2873
 2 files changed, 30 insertions(+), 23 deletions(-)
4082
 tests/test_scripts.sh  | 11 +++++++++++
4083
 3 files changed, 34 insertions(+)
2874
4084
2875
commit 4a1f6133ee5533cee8d91e06fcc22443e5f1881a
4085
commit ca8bf9d7c5a30be8ba1eeb106fd892f19e83ed09
2876
Author: Lasse Collin <lasse.collin@tukaani.org>
4086
Author: Lasse Collin <lasse.collin@tukaani.org>
2877
Date:   2014-12-19 15:51:50 +0200
4087
Date:   2022-10-19 18:54:34 +0300
2878
4088
2879
    Windows: Define TUKLIB_SYMBOL_PREFIX in config.h.
4089
    Test: Remove the (exit 1) lines.
2880
    
4090
    
2881
    It is to keep all symbols in the lzma_ namespace.
4091
    I suspect that I used these in the original version because
4092
    Autoconf's manual describes that such a trick is needed in
4093
    some specific situations for portability reasons. None of those
4094
    situations listed on Autoconf 2.71 manual apply to these test
4095
    scripts though so this cleans them up.
2882
4096
2883
 windows/config.h | 3 +++
4097
 tests/test_compress.sh | 10 ----------
2884
 1 file changed, 3 insertions(+)
4098
 tests/test_files.sh    |  9 ---------
4099
 tests/test_scripts.sh  |  6 ------
4100
 3 files changed, 25 deletions(-)
2885
4101
2886
commit 7f7d093de79eee0c7dbfd7433647e46302f19f82
4102
commit 82fcb7cfc17ce62f79ebc7ca2374e1daca5e4d5e
2887
Author: Lasse Collin <lasse.collin@tukaani.org>
4103
Author: Lasse Collin <lasse.collin@tukaani.org>
2888
Date:   2014-12-16 21:00:09 +0200
4104
Date:   2022-10-19 17:14:57 +0300
2889
4105
2890
    xz: Update the man page about --threads.
4106
    Tests: Fix a warning in test_memlimit.c when decoders are disabled.
2891
4107
2892
 src/xz/xz.1 | 5 -----
4108
 tests/test_memlimit.c | 3 +++
2893
 1 file changed, 5 deletions(-)
4109
 1 file changed, 3 insertions(+)
2894
4110
2895
commit 009823448b82aa5f465668878a544c5842885407
4111
commit b5f8271b45b9b0e59485ffba3640ca3418835ec4
2896
Author: Lasse Collin <lasse.collin@tukaani.org>
4112
Author: Lasse Collin <lasse.collin@tukaani.org>
2897
Date:   2014-12-16 20:57:43 +0200
4113
Date:   2022-10-19 17:11:46 +0300
2898
4114
2899
    xz: Update the man page about --block-size.
4115
    Tests: Add test_memlimit to .gitignore.
4116
    
4117
    Thanks to Jia Tan.
2900
4118
2901
 src/xz/xz.1 | 41 +++++++++++++++++++++++++++++++++--------
4119
 .gitignore | 1 +
2902
 1 file changed, 33 insertions(+), 8 deletions(-)
4120
 1 file changed, 1 insertion(+)
2903
4121
2904
commit 7dddfbeb499e528940bc12047355c184644aafe9
4122
commit 6a86e81cab202d0a812a7b2e9efacaf70c58ba38
2905
Author: Adrien Nader <adrien@notk.org>
4123
Author: Jia Tan <jiat0218@gmail.com>
2906
Date:   2014-12-10 22:26:57 +0100
4124
Date:   2022-10-06 21:53:09 +0300
2907
4125
2908
    po/fr: several more translation updates: reword and handle --ignore-check.
4126
    Tests: Refactor test_stream_flags.c.
4127
    
4128
    Converts test_stream_flags to tuktest. Also the test will now
4129
    compile and skip properly if encoders or decoders are disabled.
4130
    
4131
    Thanks to Sebastian Andrzej Siewior.
2909
4132
2910
 po/fr.po | 50 ++++++++++++++++++++++++++------------------------
4133
 tests/test_stream_flags.c | 533 ++++++++++++++++++++++++++++++++++++----------
2911
 1 file changed, 26 insertions(+), 24 deletions(-)
4134
 1 file changed, 416 insertions(+), 117 deletions(-)
2912
4135
2913
commit 6eca5be40e04ddc4b738d493e4e56835956d8b69
4136
commit 827ac5b4821491fd3afe0d0e1ddac326253aeb66
2914
Author: Adrien Nader <adrien@notk.org>
4137
Author: Jia Tan <jiat0218@gmail.com>
2915
Date:   2014-12-10 22:23:01 +0100
4138
Date:   2022-10-06 17:00:38 +0800
2916
4139
2917
    po/fr: yet another place where my email address had to be updated.
4140
    Tests: Refactor test_block_header.c.
4141
    
4142
    test_block_header now achieves higher test coverage. Also the
4143
    test will now compile and skip properly if encoders or decoders
4144
    are disabled.
4145
    
4146
    Thanks to Sebastian Andrzej Siewior.
2918
4147
2919
 po/fr.po | 2 +-
4148
 tests/test_block_header.c | 486 +++++++++++++++++++++++++++++++++++-----------
2920
 1 file changed, 1 insertion(+), 1 deletion(-)
4149
 1 file changed, 370 insertions(+), 116 deletions(-)
2921
4150
2922
commit d1003673e92ba47edd6aeeb3dbea05c18269d0e7
4151
commit 84963318952064a93bfc52edd6b0ef70593384ee
2923
Author: Adrien Nader <adrien@notk.org>
4152
Author: Jia Tan <jiat0218@gmail.com>
2924
Date:   2014-12-10 22:22:20 +0100
4153
Date:   2022-10-05 23:54:12 +0800
2925
4154
2926
    po/fr: fix several typos that have been around since the beginning.
4155
    Tests: Fix compilation issues.
4156
    
4157
    test_bcj_exact_size, test_check, test_hardware, and test_index will
4158
    all now compile and skip properly if encoders or decoders are disabled.
4159
    
4160
    Also fixed a small typo (disabed -> disabled).
4161
    
4162
    Thanks to Sebastian Andrzej Siewior.
2927
4163
2928
 po/fr.po | 22 +++++++++++-----------
4164
 tests/test_bcj_exact_size.c | 20 ++++++++++++++------
2929
 1 file changed, 11 insertions(+), 11 deletions(-)
4165
 tests/test_check.c          |  8 +++++++-
4166
 tests/test_hardware.c       |  2 +-
4167
 tests/test_index.c          |  6 ++++++
4168
 tests/test_memlimit.c       | 16 +++++++++++++++-
4169
 tests/test_vli.c            | 13 +++++++++++++
4170
 6 files changed, 56 insertions(+), 9 deletions(-)
2930
4171
2931
commit 4c5aa911a0df027e46171e368debc543d2fa72b2
4172
commit 7dcabeec63d46b436fa5f043c3d1f09d0e15be16
2932
Author: Adrien Nader <adrien@notk.org>
4173
Author: Lasse Collin <lasse.collin@tukaani.org>
2933
Date:   2014-12-03 20:02:31 +0100
4174
Date:   2022-10-05 16:20:47 +0300
2934
4175
2935
    po/fr: last batch of new translations for now.
4176
    Tests: Include mythread.h in the tests that use MYTHREAD_ENABLED.
4177
4178
 tests/test_check.c    | 1 +
4179
 tests/test_hardware.c | 1 +
4180
 tests/test_memlimit.c | 1 +
4181
 3 files changed, 3 insertions(+)
4182
4183
commit 14af758a770c7781af18fb66d6d21ee5b1c27f04
4184
Author: Jia Tan <jiat0218@gmail.com>
4185
Date:   2022-10-05 20:57:16 +0800
4186
4187
    liblzma: Fix a compilation issue when encoders are disabled.
2936
    
4188
    
2937
    Four new error messages.
4189
    When encoders were disabled and threading enabled, outqueue.c and
4190
    outqueue.h were not compiled. The multi threaded decoder required
4191
    these files, so compilation failed.
2938
4192
2939
 po/fr.po | 16 ++++++++--------
4193
 src/liblzma/common/Makefile.inc | 7 ++++---
2940
 1 file changed, 8 insertions(+), 8 deletions(-)
4194
 1 file changed, 4 insertions(+), 3 deletions(-)
2941
4195
2942
commit 3e3099e36d27059499e7996fb38a62e8ab01d356
4196
commit 6ca5c354bd4620aa7f81da68870eef1b1f26288f
2943
Author: Adrien Nader <adrien@notk.org>
4197
Author: Jia Tan <jiat0218@gmail.com>
2944
Date:   2014-12-03 20:01:32 +0100
4198
Date:   2022-10-05 16:41:38 +0800
2945
4199
2946
    po/fr: translations for --threads, --block-size and --block-list.
4200
    Tests: Fix compilation error when threading support has been disabled.
4201
    
4202
    Now tests that require threading are skipped when threading
4203
    support has been disabled.
4204
    
4205
    Thanks to Sebastian Andrzej Siewior.
2947
4206
2948
 po/fr.po | 12 ++++++++----
4207
 tests/test_check.c    | 4 ++++
2949
 1 file changed, 8 insertions(+), 4 deletions(-)
4208
 tests/test_hardware.c | 4 ++++
4209
 tests/test_memlimit.c | 4 ++++
4210
 3 files changed, 12 insertions(+)
2950
4211
2951
commit e7d96a5933eec4e9d4a62569ee88df0ebb0f1d53
4212
commit fae37ad2affd8fe8871f4ff93d5cab5ec14d5e58
2952
Author: Adrien Nader <adrien@notk.org>
4213
Author: Lasse Collin <lasse.collin@tukaani.org>
2953
Date:   2014-12-03 20:00:53 +0100
4214
Date:   2022-10-05 14:26:00 +0300
2954
4215
2955
    po/fr: remove fuzzy marker for error messages that will be kept in English.
4216
    tuklib_integer: Add 64-bit endianness-converting reads and writes.
2956
    
4217
    
2957
    The following is a copy of a comment inside fr.po:
4218
    Also update the comment in liblzma's memcmplen.h.
2958
    
4219
    
2959
    Note from translator on "file status flags".
4220
    Thanks to Michał Górny for the original patch for the reads.
2960
    The following entry is kept un-translated on purpose. It is difficult to
2961
    translate and should only happen in exceptional circumstances which means
2962
    that translating would:
2963
    - lose some of the meaning
2964
    - make it more difficult to look up in search engines; it might happen one
2965
    in
2966
    a million times, if we dilute the error message in 20 languages, it will be
2967
    almost impossible to find an explanation and support for the error.
2968
4221
2969
 po/fr.po | 22 ++++++++++++++++------
4222
 m4/tuklib_integer.m4           |  8 ++++----
2970
 1 file changed, 16 insertions(+), 6 deletions(-)
4223
 src/common/tuklib_integer.h    | 46 ++++++++++++++++++++++++++++++++++++++++--
4224
 src/liblzma/common/memcmplen.h |  9 +++------
4225
 3 files changed, 51 insertions(+), 12 deletions(-)
2971
4226
2972
commit 46cbb9033af8a21fafe543302d6919746e0d72af
4227
commit 508a44372c5b0dede8863fd0d358d4a9d8645c95
2973
Author: Adrien Nader <adrien@notk.org>
4228
Author: Lasse Collin <lasse.collin@tukaani.org>
2974
Date:   2014-12-03 19:58:25 +0100
4229
Date:   2022-09-30 12:06:13 +0300
2975
4230
2976
    po/fr: several minor updates and better wording.
4231
    liblzma: Add API doc note about the .xz decoder LZMA_MEMLIMIT_ERROR bug.
2977
    
4232
    
2978
    Meaning doesn't change at all: it's only for better wording and/or
4233
    The bug was fixed in 660739f99ab211edec4071de98889fb32ed04e98.
2979
    formatting of a few strings.
2980
4234
2981
 po/fr.po | 14 +++++++-------
4235
 src/liblzma/api/lzma/base.h | 11 +++++++++++
2982
 1 file changed, 7 insertions(+), 7 deletions(-)
4236
 1 file changed, 11 insertions(+)
2983
4237
2984
commit 7ce49d444f04e73145f79c832eb4d510594b074a
4238
commit 8cc9874a7974cd575aee44f218836f7acdbeb0ed
2985
Author: Adrien Nader <adrien@notk.org>
4239
Author: Jia Tan <jiat0218@gmail.com>
2986
Date:   2014-12-03 19:56:12 +0100
4240
Date:   2022-09-21 16:15:50 +0800
2987
4241
2988
    po/fr: update my email address and copyright years.
4242
    liblzma: Add dest and src NULL checks to lzma_index_cat.
4243
    
4244
    The documentation states LZMA_PROG_ERROR can be returned from
4245
    lzma_index_cat. Previously, lzma_index_cat could not return
4246
    LZMA_PROG_ERROR. Now, the validation is similar to
4247
    lzma_index_append, which does a NULL check on the index
4248
    parameter.
2989
4249
2990
 po/fr.po | 4 ++--
4250
 src/liblzma/common/index.c | 3 +++
2991
 1 file changed, 2 insertions(+), 2 deletions(-)
4251
 1 file changed, 3 insertions(+)
2992
4252
2993
commit 214c553ebc3047cd720da1ce5c80cf7c38118d3c
4253
commit afd5a8bf5374eba82804a999e1ea7af680784086
2994
Author: Adrien Nader <adrien@notk.org>
4254
Author: Jia Tan <jiat0218@gmail.com>
2995
Date:   2014-11-26 10:08:26 +0100
4255
Date:   2022-09-21 20:29:28 +0800
2996
4256
2997
    fr.po: commit file after only "update-po" so actual is readable.
4257
    Tests: Create a test for the lzma_index_cat bug.
2998
4258
2999
 po/fr.po | 311 ++++++++++++++++++++++++++++++++++++++++-----------------------
4259
 tests/test_index.c | 43 ++++++++++++++++++++++++++++++++++++++++++-
3000
 1 file changed, 199 insertions(+), 112 deletions(-)
4260
 1 file changed, 42 insertions(+), 1 deletion(-)
3001
4261
3002
commit 1190c641af09cde85f8bd0fbe5c4906f4a29431b
4262
commit 3d5a99ca373a4e86faf671226ca6487febb9eeac
4263
Author: Jia Tan <jiat0218@gmail.com>
4264
Date:   2022-09-21 19:28:53 +0800
4265
4266
    liblzma: Fix copying of check type statistics in lzma_index_cat().
4267
    
4268
    The check type of the last Stream in dest was never copied to
4269
    dest->checks (the code tried to copy it but it was done too late).
4270
    This meant that the value returned by lzma_index_checks() would
4271
    only include the check type of the last Stream when multiple
4272
    lzma_indexes had been concatenated.
4273
    
4274
    In xz --list this meant that the summary would only list the
4275
    check type of the last Stream, so in this sense this was only
4276
    a visual bug. However, it's possible that some applications
4277
    use this information for purposes other than merely showing
4278
    it to the users in an informational message. I'm not aware of
4279
    such applications though and it's quite possible that such
4280
    applications don't exist.
4281
    
4282
    Regular streamed decompression in xz or any other application
4283
    doesn't use lzma_index_cat() and so this bug cannot affect them.
4284
4285
 src/liblzma/common/index.c | 7 ++++++-
4286
 1 file changed, 6 insertions(+), 1 deletion(-)
4287
4288
commit a61d32172789735350a941e23baf6b587c49e5d9
3003
Author: Lasse Collin <lasse.collin@tukaani.org>
4289
Author: Lasse Collin <lasse.collin@tukaani.org>
3004
Date:   2014-12-02 20:04:07 +0200
4290
Date:   2022-09-28 12:20:41 +0300
3005
4291
3006
    liblzma: Document how lzma_mt.block_size affects memory usage.
4292
    tuklib_physmem: Fix Unicode builds on Windows.
4293
    
4294
    Thanks to ArSaCiA Game.
3007
4295
3008
 src/liblzma/api/lzma/container.h | 4 ++++
4296
 src/common/tuklib_physmem.c | 2 +-
3009
 1 file changed, 4 insertions(+)
4297
 1 file changed, 1 insertion(+), 1 deletion(-)
3010
4298
3011
commit e4fc1d2f9571fba79ce383595be2ea2a9257def0
4299
commit 5a4d3548ab214fdca364d5c734baf1d1fab47308
3012
Author: Lasse Collin <lasse.collin@tukaani.org>
4300
Author: Lasse Collin <lasse.collin@tukaani.org>
3013
Date:   2014-11-28 20:07:18 +0200
4301
Date:   2022-09-28 11:12:07 +0300
3014
4302
3015
    Update INSTALL about a "make check" failure in test_scripts.sh.
4303
    Tests: Add test_memlimit.c to test restarting after LZMA_MEMLIMIT_ERROR.
3016
4304
3017
 INSTALL | 24 +++++++++++++++++-------
4305
 tests/Makefile.am     |   2 +
3018
 1 file changed, 17 insertions(+), 7 deletions(-)
4306
 tests/test_memlimit.c | 151 ++++++++++++++++++++++++++++++++++++++++++++++++++
4307
 2 files changed, 153 insertions(+)
3019
4308
3020
commit 34f9e40a0a0c3bd2c2730cdb9cd550bbb8a3f2fe
4309
commit 660739f99ab211edec4071de98889fb32ed04e98
3021
Author: Lasse Collin <lasse.collin@tukaani.org>
4310
Author: Lasse Collin <lasse.collin@tukaani.org>
3022
Date:   2014-11-26 20:12:27 +0200
4311
Date:   2022-09-28 11:05:15 +0300
3023
4312
3024
    Remove LZMA_UNSTABLE macro.
4313
    liblzma: Stream decoder: Fix restarting after LZMA_MEMLIMIT_ERROR.
4314
    
4315
    If lzma_code() returns LZMA_MEMLIMIT_ERROR it is now possible
4316
    to use lzma_memlimit_set() to increase the limit and continue
4317
    decoding. This was supposed to work from the beginning but
4318
    there was a bug. With other decoders (.lzma or threaded .xz)
4319
    this already worked correctly.
3025
4320
3026
 src/liblzma/api/lzma/container.h | 4 ----
4321
 src/liblzma/common/stream_decoder.c | 16 +++++++++++++---
3027
 src/liblzma/common/common.h      | 2 --
4322
 1 file changed, 13 insertions(+), 3 deletions(-)
3028
 src/xz/private.h                 | 1 -
3029
 3 files changed, 7 deletions(-)
3030
4323
3031
commit 6d9c0ce9f2677b159e32b224aba5b535b304a705
4324
commit 7e68fda58c74ad9e5b876cc22fcbe80fc0e4747b
3032
Author: Lasse Collin <lasse.collin@tukaani.org>
4325
Author: Lasse Collin <lasse.collin@tukaani.org>
3033
Date:   2014-11-26 20:10:33 +0200
4326
Date:   2022-09-28 11:00:23 +0300
3034
4327
3035
    liblzma: Update lzma_stream_encoder_mt() API docs.
4328
    liblzma: Stream decoder: Fix comments.
3036
4329
3037
 src/liblzma/api/lzma/container.h | 5 +++--
4330
 src/liblzma/common/stream_decoder.c | 12 +++++-------
3038
 1 file changed, 3 insertions(+), 2 deletions(-)
4331
 1 file changed, 5 insertions(+), 7 deletions(-)
3039
4332
3040
commit 2301f3f05dd9742f42cda8f0f318864f5dc39ab3
4333
commit f664cb25841fc1c478b819034a224a558e2ac6e7
3041
Author: Lasse Collin <lasse.collin@tukaani.org>
4334
Author: Lasse Collin <lasse.collin@tukaani.org>
3042
Date:   2014-11-25 12:32:05 +0200
4335
Date:   2022-09-20 16:58:22 +0300
3043
4336
3044
    liblzma: Verify the filter chain in threaded encoder initialization.
4337
    liblzma: ARM64: Add comments.
4338
4339
 src/liblzma/simple/arm64.c | 13 +++++++++++++
4340
 1 file changed, 13 insertions(+)
4341
4342
commit b557b4a0eea05470fae8ba5ef4ad5a6dfb36ac41
4343
Author: Lasse Collin <lasse.collin@tukaani.org>
4344
Date:   2022-09-20 16:27:50 +0300
4345
4346
    liblzma: ARM64: Fix wrong comment in API doc.
3045
    
4347
    
3046
    This way an invalid filter chain is detected at the Stream
4348
    Thanks to Jia Tan.
3047
    encoder initialization instead of delaying it to the first
3048
    call to lzma_code() which triggers the initialization of
3049
    the actual filter encoder(s).
3050
4349
3051
 src/liblzma/common/stream_encoder_mt.c | 9 ++++++---
4350
 src/liblzma/api/lzma/bcj.h | 4 ++--
3052
 1 file changed, 6 insertions(+), 3 deletions(-)
4351
 1 file changed, 2 insertions(+), 2 deletions(-)
3053
4352
3054
commit 107a263d5bb63cd3593fd6a5c938706539f84523
4353
commit d5b0906fa55157f48c200188a3951d80df9cb308
3055
Author: Lasse Collin <lasse.collin@tukaani.org>
4354
Author: Lasse Collin <lasse.collin@tukaani.org>
3056
Date:   2014-11-17 19:11:49 +0200
4355
Date:   2022-09-19 20:24:26 +0300
3057
4356
3058
    Build: Update m4/ax_pthread.m4 from Autoconf Archive.
4357
    xz: Add --experimental-arm64[=width=WIDTH].
4358
    
4359
    It will be renamed to --arm64 once it is stable.
4360
    
4361
    Man page or --long-help weren't updated yet.
3059
4362
3060
 m4/ax_pthread.m4 | 71 +++++++++++++++++++++++++++++++++++++-------------------
4363
 src/xz/args.c    |  7 +++++++
3061
 1 file changed, 47 insertions(+), 24 deletions(-)
4364
 src/xz/message.c |  7 +++++++
4365
 src/xz/options.c | 39 +++++++++++++++++++++++++++++++++++++++
4366
 src/xz/options.h |  7 +++++++
4367
 4 files changed, 60 insertions(+)
3062
4368
3063
commit b13a781833399ff5726cfc997f3cb2f0acbdbf31
4369
commit ecb966de308c255bb4735a7307ef9901c643a9de
3064
Author: Lasse Collin <lasse.collin@tukaani.org>
4370
Author: Lasse Collin <lasse.collin@tukaani.org>
3065
Date:   2014-11-17 18:52:21 +0200
4371
Date:   2022-09-19 19:34:56 +0300
3066
4372
3067
    Build: Replace obsolete AC_HELP_STRING with AS_HELP_STRING.
4373
    liblzma: Add experimental ARM64 BCJ filter with a temporary Filter ID.
4374
    
4375
    That is, the Filter ID will be changed once the design is final.
4376
    The current version will be removed. So files created with the
4377
    tempoary Filter ID won't be supported in the future.
3068
4378
3069
 configure.ac         | 36 ++++++++++++++++++------------------
4379
 CMakeLists.txt                      |   3 +
3070
 m4/tuklib_integer.m4 |  2 +-
4380
 configure.ac                        |   4 +-
3071
 2 files changed, 19 insertions(+), 19 deletions(-)
4381
 src/liblzma/api/lzma/bcj.h          |  35 +++++-
4382
 src/liblzma/common/filter_common.c  |   9 ++
4383
 src/liblzma/common/filter_decoder.c |   8 ++
4384
 src/liblzma/common/filter_encoder.c |  11 ++
4385
 src/liblzma/simple/Makefile.inc     |   4 +
4386
 src/liblzma/simple/arm64.c          | 227 ++++++++++++++++++++++++++++++++++++
4387
 src/liblzma/simple/simple_coder.h   |   9 ++
4388
 src/liblzma/simple/simple_decoder.h |   4 +
4389
 src/liblzma/simple/simple_encoder.h |   2 +
4390
 11 files changed, 313 insertions(+), 3 deletions(-)
3072
4391
3073
commit 542cac122ed3550148a2af0033af22b757491378
4392
commit 177bdc922cb17bd0fd831ab8139dfae912a5c2b8
3074
Author: Lasse Collin <lasse.collin@tukaani.org>
4393
Author: Lasse Collin <lasse.collin@tukaani.org>
3075
Date:   2014-11-17 18:43:19 +0200
4394
Date:   2022-09-17 22:42:18 +0300
3076
4395
3077
    Build: Fix Autoconf warnings about escaped backquotes.
4396
    liblzma: Simple/BCJ filters: Allow disabling generic BCJ options.
3078
    
4397
    
3079
    Thanks to Daniel Richard G. for pointing out that it's
4398
    This will be needed for the ARM64 BCJ filter as it will use
3080
    good to sometimes run autoreconf -fi with -Wall.
4399
    its own options struct.
3081
4400
3082
 configure.ac | 7 +++----
4401
 src/liblzma/simple/arm.c            | 2 +-
3083
 1 file changed, 3 insertions(+), 4 deletions(-)
4402
 src/liblzma/simple/armthumb.c       | 2 +-
4403
 src/liblzma/simple/ia64.c           | 2 +-
4404
 src/liblzma/simple/powerpc.c        | 2 +-
4405
 src/liblzma/simple/simple_coder.c   | 4 ++--
4406
 src/liblzma/simple/simple_private.h | 2 +-
4407
 src/liblzma/simple/sparc.c          | 2 +-
4408
 src/liblzma/simple/x86.c            | 3 ++-
4409
 8 files changed, 10 insertions(+), 9 deletions(-)
3084
4410
3085
commit 7b03a15cea8cd4f19ed680b51c4bcbae3ce4142f
4411
commit c3592d0a55114144686ecf960cb516d6b31c98e9
3086
Author: Lasse Collin <lasse.collin@tukaani.org>
4412
Author: Lasse Collin <lasse.collin@tukaani.org>
3087
Date:   2014-11-10 18:54:40 +0200
4413
Date:   2022-09-16 17:08:53 +0300
3088
4414
3089
    xzdiff: Use mkdir if mktemp isn't available.
4415
    Tests: Add a test file for lzma_index_append() integer overflow bug.
4416
    
4417
    This test fails before commit 18d7facd3802b55c287581405c4d49c98708c136.
4418
    
4419
    test_files.sh now runs xz -l for bad-3-index-uncomp-overflow.xz
4420
    because only then the previously-buggy code path gets tested.
4421
    Normal decompression doesn't use lzma_index_append() at all.
4422
    Instead, lzma_index_hash functions are used and those already
4423
    did the overflow check.
3090
4424
3091
 src/scripts/xzdiff.in | 17 ++++++++++++++++-
4425
 tests/files/README                         |  10 ++++++++++
3092
 1 file changed, 16 insertions(+), 1 deletion(-)
4426
 tests/files/bad-3-index-uncomp-overflow.xz | Bin 0 -> 132 bytes
4427
 tests/test_files.sh                        |   8 ++++++++
4428
 3 files changed, 18 insertions(+)
3093
4429
3094
commit f8c13e5e3609581d5dd9f8777985ca07f2390ad7
4430
commit 982b29f828079a2a26253a40e975127a40a7d2bd
3095
Author: Lasse Collin <lasse.collin@tukaani.org>
4431
Author: Lasse Collin <lasse.collin@tukaani.org>
3096
Date:   2014-11-10 18:45:01 +0200
4432
Date:   2022-09-16 15:10:07 +0300
3097
4433
3098
    xzdiff: Create a temporary directory to hold a temporary file.
4434
    Translations: Add Turkish translation.
4435
4436
 po/LINGUAS |   1 +
4437
 po/tr.po   | 977 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4438
 2 files changed, 978 insertions(+)
4439
4440
commit 1fc088d9f6d1697924aaeac8cd1fb9918d1532e2
4441
Author: Lasse Collin <lasse.collin@tukaani.org>
4442
Date:   2022-09-16 14:09:07 +0300
4443
4444
    Update THANKS.
4445
4446
 THANKS | 1 +
4447
 1 file changed, 1 insertion(+)
4448
4449
commit 097c7b67ce86ff16a7cef7631b39e5ca4ee3d420
4450
Author: Lasse Collin <lasse.collin@tukaani.org>
4451
Date:   2022-09-16 14:07:03 +0300
4452
4453
    xzgrep: Fix compatibility with old shells.
3099
    
4454
    
3100
    This avoids the possibility of "File name too long" when
4455
    Running the current xzgrep on Slackware 10.1 with GNU bash 3.00.15:
3101
    creating a temp file when the input file name is very long.
3102
    
4456
    
3103
    This also means that other users on the system can no longer
4457
        xzgrep: line 231: syntax error near unexpected token `;;'
3104
    see the input file names in /tmp (or whatever $TMPDIR is)
3105
    since the temporary directory will have a generic name. This
3106
    usually doesn't matter since on many systems one can see
3107
    the arguments given to all processes anyway.
3108
    
4458
    
3109
    The number X chars to mktemp where increased from 6 to 10.
4459
    On SCO OpenServer 5.0.7 with Korn Shell 93r:
3110
    
4460
    
3111
    Note that with some shells temp files or dirs won't be used at all.
4461
        syntax error at line 231 : `;;' unexpected
4462
    
4463
    Turns out that some old shells don't like apostrophes (') inside
4464
    command substitutions. For example, the following fails:
4465
    
4466
        x=$(echo foo
4467
        # asdf'zxcv
4468
        echo bar)
4469
        printf '%s\n' "$x"
4470
    
4471
    The problem was introduced by commits
4472
    69d1b3fc29677af8ade8dc15dba83f0589cb63d6 (2022-03-29),
4473
    bd7b290f3fe4faeceb7d3497ed9bf2e6ed5e7dc5 (2022-07-18), and
4474
    a648978b20495b7aa4a8b029c5a810b5ad9d08ff (2022-07-19).
4475
    5.2.6 is the only stable release that included
4476
    this problem.
4477
    
4478
    Thanks to Kevin R. Bulgrien for reporting the problem
4479
    on SCO OpenServer 5.0.7 and for providing the fix.
3112
4480
3113
 src/scripts/xzdiff.in | 10 +++++-----
4481
 src/scripts/xzgrep.in | 6 +++---
3114
 1 file changed, 5 insertions(+), 5 deletions(-)
4482
 1 file changed, 3 insertions(+), 3 deletions(-)
3115
4483
3116
commit 7716dcf9df7f457500cb657314e7a9aea5fedb06
4484
commit f2d084fe3f0d6d71488bfc6987f26542f67bfd99
3117
Author: Lasse Collin <lasse.collin@tukaani.org>
4485
Author: Lasse Collin <lasse.collin@tukaani.org>
3118
Date:   2014-11-10 15:38:47 +0200
4486
Date:   2022-09-09 14:12:30 +0300
3119
4487
3120
    liblzma: Fix lzma_mt.preset in lzma_stream_encoder_mt_memusage().
4488
    Tests: Silence warnings about unused functions from tuktest.h.
3121
    
4489
    
3122
    It read the filter chain from a wrong variable. This is a similar
4490
    Warnings about unused tuktest_run_test conveniently tell which
3123
    bug that was fixed in 9494fb6d0ff41c585326f00aa8f7fe58f8106a5e.
4491
    test programs haven't been converted to tuktest.h yet but I
4492
    silenced that warning too for now anyway.
4493
    
4494
    It is fine to use __attribute__((__unused__)) even when the
4495
    function is actually used because the attribute only means
4496
    that the function might be unused.
3124
4497
3125
 src/liblzma/common/stream_encoder_mt.c | 3 +--
4498
 tests/tuktest.h | 10 ++++++++++
3126
 1 file changed, 1 insertion(+), 2 deletions(-)
4499
 1 file changed, 10 insertions(+)
3127
4500
3128
commit 230fa4a605542c84b4178a57381695a0af4e779b
4501
commit f8ee61e74eb40600445fdb601c374d582e1e9c8a
3129
Author: Lasse Collin <lasse.collin@tukaani.org>
4502
Author: Lasse Collin <lasse.collin@tukaani.org>
3130
Date:   2014-11-10 14:49:55 +0200
4503
Date:   2022-09-09 13:51:57 +0300
3131
4504
4505
    liblzma: lzma_filters_copy: Keep dest[] unmodified if an error occurs.
4506
    
4507
    lzma_stream_encoder() and lzma_stream_encoder_mt() always assumed
4508
    this. Before this patch, failing lzma_filters_copy() could result
4509
    in free(invalid_pointer) or invalid memory reads in stream_encoder.c
4510
    or stream_encoder_mt.c.
4511
    
4512
    To trigger this, allocating memory for a filter options structure
4513
    has to fail. These are tiny allocations so in practice they very
4514
    rarely fail.
4515
    
4516
    Certain badness in the filter chain array could also make
4517
    lzma_filters_copy() fail but both stream_encoder.c and
4518
    stream_encoder_mt.c validate the filter chain before
4519
    trying to copy it, so the crash cannot occur this way.
4520
4521
 src/liblzma/api/lzma/filter.h      |  4 +++-
4522
 src/liblzma/common/filter_common.c | 18 ++++++++++++------
4523
 2 files changed, 15 insertions(+), 7 deletions(-)
4524
4525
commit 18d7facd3802b55c287581405c4d49c98708c136
4526
Author: Jia Tan <jiat0218@gmail.com>
4527
Date:   2022-09-02 20:18:55 +0800
4528
4529
    liblzma: lzma_index_append: Add missing integer overflow check.
4530
    
4531
    The documentation in src/liblzma/api/lzma/index.h suggests that
4532
    both the unpadded (compressed) size and the uncompressed size
4533
    are checked for overflow, but only the unpadded size was checked.
4534
    The uncompressed check is done first since that is more likely to
4535
    occur than the unpadded or index field size overflows.
4536
4537
 src/liblzma/common/index.c | 4 ++++
4538
 1 file changed, 4 insertions(+)
4539
4540
commit 9ac06cb5b85274d18f9f70d82cf2d8c9c1151bd4
4541
Author: Lasse Collin <lasse.collin@tukaani.org>
4542
Date:   2022-09-08 15:11:08 +0300
4543
3132
    Update THANKS.
4544
    Update THANKS.
3133
4545
3134
 THANKS | 1 +
4546
 THANKS | 1 +
3135
 1 file changed, 1 insertion(+)
4547
 1 file changed, 1 insertion(+)
3136
4548
3137
commit 4e4ae08bc7c1711e399c9f2d26eb375d39d08101
4549
commit ba3e4ba2de034ae93a513f9c3a0823b80cdb66dc
4550
Author: Jia Tan <jiat0218@gmail.com>
4551
Date:   2022-09-08 15:07:00 +0300
4552
4553
    CMake: Clarify a comment about Windows symlinks without file extension.
4554
4555
 CMakeLists.txt | 7 +++----
4556
 1 file changed, 3 insertions(+), 4 deletions(-)
4557
4558
commit 17485e884ce5c74315f29a8a1507bc706cd5cd1d
3138
Author: Lasse Collin <lasse.collin@tukaani.org>
4559
Author: Lasse Collin <lasse.collin@tukaani.org>
3139
Date:   2014-10-29 21:28:25 +0200
4560
Date:   2022-09-08 15:02:41 +0300
3140
4561
3141
    Update .gitignore files.
4562
    CMake: Update for liblzma_*.map files and fix wrong common_w32res.rc dep.
4563
    
4564
    The previous commit split liblzma.map into liblzma_linux.map and
4565
    liblzma_generic.map. This commit updates the CMake build for those.
4566
    
4567
    common_w32res.rc dependency was listed under Linux/FreeBSD while
4568
    obviously it belongs to Windows when building a DLL.
3142
4569
3143
 .gitignore    | 2 ++
4570
 CMakeLists.txt | 24 +++++++++++++++++++-----
3144
 m4/.gitignore | 3 +++
4571
 1 file changed, 19 insertions(+), 5 deletions(-)
3145
 2 files changed, 5 insertions(+)
3146
4572
3147
commit c923b140b27d1a055db6284e10fd546ad1a7fcdb
4573
commit 913ddc5572b9455fa0cf299be2e35c708840e922
3148
Author: Lasse Collin <lasse.collin@tukaani.org>
4574
Author: Lasse Collin <lasse.collin@tukaani.org>
3149
Date:   2014-10-29 21:15:35 +0200
4575
Date:   2022-09-04 23:23:00 +0300
3150
4576
3151
    Build: Prepare to support Automake's subdir-objects.
4577
    liblzma: Vaccinate against an ill patch from RHEL/CentOS 7.
3152
    
4578
    
3153
    Due to a bug in Automake, subdir-objects won't be enabled
4579
    RHEL/CentOS 7 shipped with 5.1.2alpha, including the threaded
3154
    for now.
4580
    encoder that is behind #ifdef LZMA_UNSTABLE in the API headers.
4581
    In 5.1.2alpha these symbols are under XZ_5.1.2alpha in liblzma.map.
4582
    API/ABI compatibility tracking isn't done between development
4583
    releases so newer releases didn't have XZ_5.1.2alpha anymore.
3155
    
4584
    
3156
    http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17354
4585
    Later RHEL/CentOS 7 updated xz to 5.2.2 but they wanted to keep
4586
    the exported symbols compatible with 5.1.2alpha. After checking
4587
    the ABI changes it turned out that >= 5.2.0 ABI is backward
4588
    compatible with the threaded encoder functions from 5.1.2alpha
4589
    (but not vice versa as fixes and extensions to these functions
4590
    were made between 5.1.2alpha and 5.2.0).
3157
    
4591
    
3158
    Thanks to Daniel Richard G. for the original patches.
4592
    In RHEL/CentOS 7, XZ Utils 5.2.2 was patched with
4593
    xz-5.2.2-compat-libs.patch to modify liblzma.map:
4594
    
4595
      - XZ_5.1.2alpha was added with lzma_stream_encoder_mt and
4596
        lzma_stream_encoder_mt_memusage. This matched XZ Utils 5.1.2alpha.
4597
    
4598
      - XZ_5.2 was replaced with XZ_5.2.2. It is clear that this was
4599
        an error; the intention was to keep using XZ_5.2 (XZ_5.2.2
4600
        has never been used in XZ Utils). So XZ_5.2.2 lists all
4601
        symbols that were listed under XZ_5.2 before the patch.
4602
        lzma_stream_encoder_mt and _mt_memusage are included too so
4603
        they are listed both here and under XZ_5.1.2alpha.
4604
    
4605
    The patch didn't add any __asm__(".symver ...") lines to the .c
4606
    files. Thus the resulting liblzma.so exports the threaded encoder
4607
    functions under XZ_5.1.2alpha only. Listing the two functions
4608
    also under XZ_5.2.2 in liblzma.map has no effect without
4609
    matching .symver lines.
4610
    
4611
    The lack of XZ_5.2 in RHEL/CentOS 7 means that binaries linked
4612
    against unpatched XZ Utils 5.2.x won't run on RHEL/CentOS 7.
4613
    This is unfortunate but this alone isn't too bad as the problem
4614
    is contained within RHEL/CentOS 7 and doesn't affect users
4615
    of other distributions. It could also be fixed internally in
4616
    RHEL/CentOS 7.
4617
    
4618
    The second problem is more serious: In XZ Utils 5.2.2 the API
4619
    headers don't have #ifdef LZMA_UNSTABLE for obvious reasons.
4620
    This is true in RHEL/CentOS 7 version too. Thus now programs
4621
    using new APIs can be compiled without an extra #define. However,
4622
    the programs end up depending on symbol version XZ_5.1.2alpha
4623
    (and possibly also XZ_5.2.2) instead of XZ_5.2 as they would
4624
    with an unpatched XZ Utils 5.2.2. This means that such binaries
4625
    won't run on other distributions shipping XZ Utils >= 5.2.0 as
4626
    they don't provide XZ_5.1.2alpha or XZ_5.2.2; they only provide
4627
    XZ_5.2 (and XZ_5.0). (This includes RHEL/CentOS 8 as the patch
4628
    luckily isn't included there anymore with XZ Utils 5.2.4.)
4629
    
4630
    Binaries built by RHEL/CentOS 7 users get distributed and then
4631
    people wonder why they don't run on some other distribution.
4632
    Seems that people have found out about the patch and been copying
4633
    it to some build scripts, seemingly curing the symptoms but
4634
    actually spreading the illness further and outside RHEL/CentOS 7.
4635
    
4636
    The ill patch seems to be from late 2016 (RHEL 7.3) and in 2017 it
4637
    had spread at least to EasyBuild. I heard about the events only
4638
    recently. :-(
4639
    
4640
    This commit splits liblzma.map into two versions: one for
4641
    GNU/Linux and another for other OSes that can use symbol versioning
4642
    (FreeBSD, Solaris, maybe others). The Linux-specific file and the
4643
    matching additions to .c files add full compatibility with binaries
4644
    that have been built against a RHEL/CentOS-patched liblzma. Builds
4645
    for OSes other than GNU/Linux won't get the vaccine as they should
4646
    be immune to the problem (I really hope that no build script uses
4647
    the RHEL/CentOS 7 patch outside GNU/Linux).
4648
    
4649
    The RHEL/CentOS compatibility symbols XZ_5.1.2alpha and XZ_5.2.2
4650
    are intentionally put *after* XZ_5.2 in liblzma_linux.map. This way
4651
    if one forgets to #define HAVE_SYMBOL_VERSIONS_LINUX when building,
4652
    the resulting liblzma.so.5 will have lzma_stream_encoder_mt@@XZ_5.2
4653
    since XZ_5.2 {...} is the first one that lists that function.
4654
    Without HAVE_SYMBOL_VERSIONS_LINUX @XZ_5.1.2alpha and @XZ_5.2.2
4655
    will be missing but that's still a minor problem compared to
4656
    only having lzma_stream_encoder_mt@@XZ_5.1.2alpha!
4657
    
4658
    The "local: *;" line was moved to XZ_5.0 so that it doesn't need
4659
    to be moved around. It doesn't matter where it is put.
4660
    
4661
    Having two similar liblzma_*.map files is a bit silly as it is,
4662
    at least for now, easily possible to generate the generic one
4663
    from the Linux-specific file. But that adds extra steps and
4664
    increases the risk of mistakes when supporting more than one
4665
    build system. So I rather maintain two files in parallel and let
4666
    validate_map.sh check that they are in sync when "make mydist"
4667
    is run.
4668
    
4669
    This adds .symver lines for lzma_stream_encoder_mt@XZ_5.2.2 and
4670
    lzma_stream_encoder_mt_memusage@XZ_5.2.2 even though these
4671
    weren't exported by RHEL/CentOS 7 (only @@XZ_5.1.2alpha was
4672
    for these two). I added these anyway because someone might
4673
    misunderstand the RHEL/CentOS 7 patch and think that @XZ_5.2.2
4674
    (@@XZ_5.2.2) versions were exported too.
4675
    
4676
    At glance one could suggest using __typeof__ to copy the function
4677
    prototypes when making aliases. However, this doesn't work trivially
4678
    because __typeof__ won't copy attributes (lzma_nothrow, lzma_pure)
4679
    and it won't change symbol visibility from hidden to default (done
4680
    by LZMA_API()). Attributes could be copied with __copy__ attribute
4681
    but that needs GCC 9 and a fallback method would be needed anyway.
4682
    
4683
    This uses __symver__ attribute with GCC >= 10 and
4684
    __asm__(".symver ...") with everything else. The attribute method
4685
    is required for LTO (-flto) support with GCC. Using -flto with
4686
    GCC older than 10 is now broken on GNU/Linux and will not be fixed
4687
    (can silently result in a broken liblzma build that has dangerously
4688
    incorrect symbol versions). LTO builds with Clang seem to work
4689
    with the traditional __asm__(".symver ...") method.
4690
    
4691
    Thanks to Boud Roukema for reporting the problem and discussing
4692
    the details and testing the fix.
3159
4693
3160
 configure.ac             |  7 ++++++-
4694
 configure.ac                                     |  23 +++-
3161
 src/Makefile.am          | 22 +++++++++++++++++++++-
4695
 src/liblzma/Makefile.am                          |  10 +-
3162
 src/liblzma/Makefile.am  |  4 ++--
4696
 src/liblzma/common/block_buffer_encoder.c        |  18 ++++
3163
 src/lzmainfo/Makefile.am |  4 ++--
4697
 src/liblzma/common/common.c                      |  14 +++
3164
 src/xz/Makefile.am       | 10 +++++-----
4698
 src/liblzma/common/common.h                      |  28 +++++
3165
 src/xzdec/Makefile.am    |  8 ++++----
4699
 src/liblzma/common/hardware_cputhreads.c         |  12 +++
3166
 6 files changed, 40 insertions(+), 15 deletions(-)
4700
 src/liblzma/common/stream_encoder_mt.c           |  42 ++++++++
4701
 src/liblzma/{liblzma.map => liblzma_generic.map} |   6 +-
4702
 src/liblzma/liblzma_linux.map                    | 131 +++++++++++++++++++++++
4703
 src/liblzma/validate_map.sh                      | 113 +++++++++++++++++--
4704
 10 files changed, 382 insertions(+), 15 deletions(-)
3167
4705
3168
commit 08c2aa16bea0df82828f665d51fba2e0a5e8997f
4706
commit 80a1a8bb838842a2be343bd88ad1462c21c5e2c9
3169
Author: Lasse Collin <lasse.collin@tukaani.org>
4707
Author: Lasse Collin <lasse.collin@tukaani.org>
3170
Date:   2014-10-24 20:09:29 +0300
4708
Date:   2022-08-31 16:42:04 +0300
3171
4709
3172
    Translations: Update the Italian translation.
4710
    CMake: Add xz symlinks.
3173
    
4711
    
3174
    Thanks to Milo Casagrande.
4712
    These are a minor thing especially since the xz build has
4713
    some real problems still like lack of large file support
4714
    on 32-bit systems but I'll commit this since the code exists.
4715
    
4716
    Thanks to Jia Tan.
3175
4717
3176
 po/it.po | 452 ++++++++++++++++++++++++++++++++++++++-------------------------
4718
 CMakeLists.txt | 38 +++++++++++++++++++++++++++++++++++++-
3177
 1 file changed, 275 insertions(+), 177 deletions(-)
4719
 1 file changed, 37 insertions(+), 1 deletion(-)
3178
4720
3179
commit 2f9f61aa83539c54ff6c118a2693890f0519b3dd
4721
commit a4193bb6d85d7765b1b87faeab3e50106d3ab2e9
3180
Author: Lasse Collin <lasse.collin@tukaani.org>
4722
Author: Lasse Collin <lasse.collin@tukaani.org>
3181
Date:   2014-10-18 18:51:45 +0300
4723
Date:   2022-08-31 16:29:38 +0300
3182
4724
3183
    Translations: Update the Polish translation.
4725
    CMake: Put xz man page install under if(UNIX) like is for xzdec.
3184
    
4726
    
3185
    Thanks to Jakub Bogusz.
4727
    Thanks to Jia Tan.
3186
4728
3187
 po/pl.po | 332 ++++++++++++++++++++++++++++++++++++++++-----------------------
4729
 CMakeLists.txt | 8 +++++---
3188
 1 file changed, 214 insertions(+), 118 deletions(-)
4730
 1 file changed, 5 insertions(+), 3 deletions(-)
3189
4731
3190
commit 4f9d233f67aea25e532824d11b7642cf7dee7a76
4732
commit c1555b1a221a1427d4d650647531016d754bc4da
3191
Author: Andre Noll <maan@tuebingen.mpg.de>
4733
Author: Lasse Collin <lasse.collin@tukaani.org>
3192
Date:   2014-10-14 17:30:30 +0200
4734
Date:   2022-08-22 18:16:40 +0300
3193
4735
3194
    l10n: de.po: Change translator email address.
4736
    Bump version number for 5.3.3alpha.
3195
    
3196
    Although the old address is still working, the new one should
3197
    be preferred. So this commit changes all three places in de.po
3198
    accordingly.
3199
    
3200
    Signed-off-by: Andre Noll <maan@tuebingen.mpg.de>
3201
4737
3202
 po/de.po | 6 +++---
4738
 src/liblzma/api/lzma/version.h | 2 +-
3203
 1 file changed, 3 insertions(+), 3 deletions(-)
4739
 src/liblzma/liblzma.map        | 2 +-
4740
 2 files changed, 2 insertions(+), 2 deletions(-)
3204
4741
3205
commit 00502b2bedad43f0cc167ac17ae0608837ee196b
4742
commit 44fedddc11c3f6ec2f7fe35a3e38f15ca93f90eb
3206
Author: Andre Noll <maan@tuebingen.mpg.de>
4743
Author: Lasse Collin <lasse.collin@tukaani.org>
3207
Date:   2014-10-14 17:30:29 +0200
4744
Date:   2022-08-22 18:13:56 +0300
3208
4745
3209
    l10n: de.po: Update German translation
4746
    Add NEWS for 5.3.3alpha.
3210
    
3211
    Signed-off-by: Andre Noll <maan@systemlinux.org>
3212
4747
3213
 po/de.po | 531 +++++++++++++++++++++++++++++++++------------------------------
4748
 NEWS | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3214
 1 file changed, 281 insertions(+), 250 deletions(-)
4749
 1 file changed, 119 insertions(+)
3215
4750
3216
commit 706b0496753fb609e69f1570ec603f11162189d1
4751
commit a93e235d7ca764cc19f8f9f9063b40ff361c3cfa
3217
Author: Andre Noll <maan@tuebingen.mpg.de>
4752
Author: Lasse Collin <lasse.collin@tukaani.org>
3218
Date:   2014-10-14 17:30:28 +0200
4753
Date:   2022-07-12 17:59:41 +0300
3219
4754
3220
    l10n: de.po: Fix typo: Schießen -> Schließen.
4755
    Translations: Add Portuguese translation.
3221
    
4756
    
3222
    That's a funny one since "schießen" means to shoot :)
4757
    Jia Tan made white-space changes and also changed "Language: pt_BR\n"
4758
    to pt. The translator wasn't reached so I'm hoping these changes
4759
    are OK and will commit it without translator's approval.
3223
    
4760
    
3224
    Signed-off-by: Andre Noll <maan@systemlinux.org>
4761
    Thanks to Pedro Albuquerque and Jia Tan.
3225
4762
3226
 po/de.po | 2 +-
4763
 po/LINGUAS |    1 +
3227
 1 file changed, 1 insertion(+), 1 deletion(-)
4764
 po/pt.po   | 1001 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4765
 2 files changed, 1002 insertions(+)
3228
4766
3229
commit 7c32e6a935c3d7ee366abad1679bd5f322f0c7d4
4767
commit e7cf5a946f25e40d77f45e41f0dee7d42a04e9ae
3230
Author: Lasse Collin <lasse.collin@tukaani.org>
4768
Author: Lasse Collin <lasse.collin@tukaani.org>
3231
Date:   2014-10-09 19:42:26 +0300
4769
Date:   2022-07-10 21:16:40 +0300
3232
4770
3233
    Update THANKS.
4771
    Translations: Add Serbian translation.
4772
    
4773
    Quite a few white-space changes were made by Jia Tan to make
4774
    this look good. Contacting the translator didn't succeed so
4775
    I'm committing this without getting translator's approval.
4776
    
4777
    Thanks to Мирослав Николић (Miroslav Nikolic) and Jia Tan.
3234
4778
3235
 THANKS | 1 +
4779
 po/LINGUAS |   1 +
3236
 1 file changed, 1 insertion(+)
4780
 po/sr.po   | 987 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4781
 2 files changed, 988 insertions(+)
3237
4782
3238
commit 076258cc458f1e705041ac7a729b15ffe8c5214a
4783
commit cc8617ab53b1f2a4da212fa76c92fe538269c5de
3239
Author: Lasse Collin <lasse.collin@tukaani.org>
4784
Author: Lasse Collin <lasse.collin@tukaani.org>
3240
Date:   2014-10-09 19:41:51 +0300
4785
Date:   2022-07-04 23:51:36 +0300
3241
4786
3242
    Add support for AmigaOS/AROS to tuklib_physmem().
4787
    Translations: Add Swedish translation.
3243
    
4788
    
3244
    Thanks to Fredrik Wikstrom.
4789
    Thanks to Sebastian Rasmussen and Jia Tan.
3245
4790
3246
 m4/tuklib_physmem.m4        | 3 ++-
4791
 po/LINGUAS |   1 +
3247
 src/common/tuklib_physmem.c | 7 +++++++
4792
 po/sv.po   | 983 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3248
 2 files changed, 9 insertions(+), 1 deletion(-)
4793
 2 files changed, 984 insertions(+)
3249
4794
3250
commit efa7b0a210e1baa8e128fc98c5443a944c39ad24
4795
commit c613598c358b640682d0ca2aed38fa7df763e8c7
3251
Author: Lasse Collin <lasse.collin@tukaani.org>
4796
Author: Lasse Collin <lasse.collin@tukaani.org>
3252
Date:   2014-10-09 18:42:14 +0300
4797
Date:   2022-07-04 23:40:27 +0300
3253
4798
3254
    xzgrep: Avoid passing both -q and -l to grep.
4799
    Translations: Add Esperanto translation.
3255
    
4800
    
3256
    The behavior of grep -ql varies:
4801
    Thanks to Keith Bowes and Jia Tan.
3257
      - GNU grep behaves like grep -q.
3258
      - OpenBSD grep behaves like grep -l.
3259
    
3260
    POSIX doesn't make it 100 % clear what behavior is expected.
3261
    Anyway, using both -q and -l at the same time makes no sense
3262
    so both options simply should never be used at the same time.
3263
    
3264
    Thanks to Christian Weisgerber.
3265
4802
3266
 src/scripts/xzgrep.in | 6 ++++--
4803
 po/LINGUAS |   1 +
3267
 1 file changed, 4 insertions(+), 2 deletions(-)
4804
 po/eo.po   | 984 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4805
 2 files changed, 985 insertions(+)
3268
4806
3269
commit 9c5f76098c9986b48d2fc574a0b764f4cde0c538
4807
commit 659a587d678f21e98e91d2751c31d4ce050c081a
3270
Author: Trần Ngọc Quân <vnwildman@gmail.com>
4808
Author: Lasse Collin <lasse.collin@tukaani.org>
3271
Date:   2014-09-25 09:22:45 +0700
4809
Date:   2022-07-01 00:22:33 +0300
3272
4810
3273
    l10n: vi.po: Update Vietnamese translation
4811
    Translations: Add Catalan translation.
3274
    
4812
    
3275
    Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com>
4813
    Thanks to Jordi Mas and Jia Tan.
3276
4814
3277
 po/vi.po | 136 +++++++++++++++++++++++++++++++++++++++------------------------
4815
 po/LINGUAS |    1 +
3278
 1 file changed, 84 insertions(+), 52 deletions(-)
4816
 po/ca.po   | 1076 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4817
 2 files changed, 1077 insertions(+)
3279
4818
3280
commit c4911f2db36d811896c73c008b4218d8fa9a4730
4819
commit 739fd8c9bdf1d85f57d56642aad87148d4779530
3281
Author: Lasse Collin <lasse.collin@tukaani.org>
4820
Author: Lasse Collin <lasse.collin@tukaani.org>
3282
Date:   2014-09-25 18:38:48 +0300
4821
Date:   2022-06-30 17:47:08 +0300
3283
4822
3284
    Build: Detect supported compiler warning flags better.
4823
    Translations: Add Ukrainian translation.
3285
    
4824
    
3286
    Clang and nowadays also GCC accept any -Wfoobar option
4825
    Thanks to Yuri Chornoivan and Jia Tan.
3287
    but then may give a warning that an unknown warning option
3288
    was specified. To avoid adding unsupported warning options,
3289
    the options are now tested with -Werror.
3290
    
3291
    Thanks to Charles Diza.
3292
4826
3293
 configure.ac | 5 +++--
4827
 po/LINGUAS |   1 +
3294
 1 file changed, 3 insertions(+), 2 deletions(-)
4828
 po/uk.po   | 996 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4829
 2 files changed, 997 insertions(+)
3295
4830
3296
commit 76e75522ed6f5c228d55587dee5a997893f6e474
4831
commit 73280550b111930c62a667e56add8fd574f80bc8
3297
Author: Lasse Collin <lasse.collin@tukaani.org>
4832
Author: Lasse Collin <lasse.collin@tukaani.org>
3298
Date:   2014-09-20 21:01:21 +0300
4833
Date:   2022-06-30 17:45:26 +0300
3299
4834
3300
    Update NEWS for 5.0.7.
4835
    Translators: Add Romanian translation.
4836
    
4837
    Thanks to Remus-Gabriel Chelu and Jia Tan.
3301
4838
3302
 NEWS | 11 +++++++++++
4839
 po/LINGUAS |    1 +
3303
 1 file changed, 11 insertions(+)
4840
 po/ro.po   | 1016 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4841
 2 files changed, 1017 insertions(+)
3304
4842
3305
commit d62028b4c1174fc67b6929f126f5eb24c018c700
4843
commit 2465f5b825152714b2c357d96c2422c31109d320
3306
Author: Lasse Collin <lasse.collin@tukaani.org>
4844
Author: Lasse Collin <lasse.collin@tukaani.org>
3307
Date:   2014-09-20 19:42:56 +0300
4845
Date:   2022-06-29 18:33:32 +0300
3308
4846
3309
    liblzma: Fix a portability problem in Makefile.am.
4847
    Translations: Update Brazilian Portuguese translation.
3310
    
4848
    
3311
    POSIX supports $< only in inference rules (suffix rules).
4849
    One msgstr was changed. The diff is long due to changes
3312
    Using it elsewhere is a GNU make extension and doesn't
4850
    in the source code line numbers in the comments.
3313
    work e.g. with OpenBSD make.
3314
    
4851
    
3315
    Thanks to Christian Weisgerber for the patch.
4852
    Thanks to Rafael Fontenelle.
3316
4853
3317
 src/liblzma/Makefile.am | 2 +-
4854
 po/pt_BR.po | 186 ++++++++++++++++++++++++++++++------------------------------
3318
 1 file changed, 1 insertion(+), 1 deletion(-)
4855
 1 file changed, 92 insertions(+), 94 deletions(-)
3319
4856
3320
commit c35de31d4283edad3e57d37ffe939406542cb7bb
4857
commit 434e1ffd3e62719d509da10b646216f5ef53fe4d
3321
Author: Lasse Collin <lasse.collin@tukaani.org>
4858
Author: Lasse Collin <lasse.collin@tukaani.org>
3322
Date:   2014-09-14 21:54:09 +0300
4859
Date:   2022-06-29 18:04:44 +0300
3323
4860
3324
    Bump the version number to 5.1.4beta.
4861
    Translations: Add Croatian translation.
4862
    
4863
    Thanks to Božidar Putanec and Jia Tan.
3325
4864
3326
 src/liblzma/api/lzma/version.h | 4 ++--
4865
 po/LINGUAS |   1 +
3327
 src/liblzma/liblzma.map        | 2 +-
4866
 po/hr.po   | 987 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3328
 2 files changed, 3 insertions(+), 3 deletions(-)
4867
 2 files changed, 988 insertions(+)
3329
4868
3330
commit e9e097e22cacdaa23e5414fea7913535449cb340
4869
commit 0732d0f7065c9bd48bfe4f5983144ae970c4a499
3331
Author: Lasse Collin <lasse.collin@tukaani.org>
4870
Author: Lasse Collin <lasse.collin@tukaani.org>
3332
Date:   2014-09-14 21:50:13 +0300
4871
Date:   2022-06-29 17:58:48 +0300
3333
4872
3334
    Update NEWS for 5.0.6 and 5.1.4beta.
4873
    Translations: Add Spanish translation.
4874
    
4875
    Thanks to Cristian Othón Martínez Vera and Jia Tan.
3335
4876
3336
 NEWS | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
4877
 po/LINGUAS |   1 +
3337
 1 file changed, 50 insertions(+)
4878
 po/es.po   | 984 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4879
 2 files changed, 985 insertions(+)
3338
4880
3339
commit 642f856bb8562ab66704b1e01ac7bc08b6d0a663
4881
commit 9899b0f82bc130998d1f1f618a6ab805b73f2696
3340
Author: Lasse Collin <lasse.collin@tukaani.org>
4882
Author: Lasse Collin <lasse.collin@tukaani.org>
3341
Date:   2014-09-14 21:02:41 +0300
4883
Date:   2022-06-29 17:49:43 +0300
3342
4884
3343
    Update TODO.
4885
    Translations: Add Korean translation.
4886
    
4887
    Thanks to Seong-ho Cho and Jia Tan.
3344
4888
3345
 TODO | 38 ++++++++++++++++++++++++++++++++++----
4889
 po/LINGUAS |   1 +
3346
 1 file changed, 34 insertions(+), 4 deletions(-)
4890
 po/ko.po   | 972 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4891
 2 files changed, 973 insertions(+)
3347
4892
3348
commit 6b5e3b9eff5b8cedb2aac5f524d4d60fc8a48124
4893
commit 65217eaf6bd195f3ef027d4ac55d57b7d133d69f
3349
Author: Lasse Collin <lasse.collin@tukaani.org>
4894
Author: Lasse Collin <lasse.collin@tukaani.org>
3350
Date:   2014-08-05 22:32:36 +0300
4895
Date:   2020-03-16 21:57:21 +0200
3351
4896
3352
    xz: Add --ignore-check.
4897
    Translations: Rebuild cs.po to avoid incorrect fuzzy strings.
4898
    
4899
    "make dist" updates the .po files and the fuzzy strings would
4900
    result in multiple very wrong translations.
3353
4901
3354
 src/xz/args.c    |  7 +++++++
4902
 po/cs.po | 592 ++++++++++++++++++++++++++++++++++-----------------------------
3355
 src/xz/args.h    |  1 +
4903
 1 file changed, 322 insertions(+), 270 deletions(-)
3356
 src/xz/coder.c   | 10 +++++++++-
3357
 src/xz/message.c |  2 ++
3358
 src/xz/xz.1      | 19 +++++++++++++++++++
3359
 5 files changed, 38 insertions(+), 1 deletion(-)
3360
4904
3361
commit 9adbc2ff373f979c917cdfd3679ce0ebd59f1040
4905
commit e56ff423ee7af9e648e16b132f0d835d2cb4db26
3362
Author: Lasse Collin <lasse.collin@tukaani.org>
4906
Author: Lasse Collin <lasse.collin@tukaani.org>
3363
Date:   2014-08-05 22:15:07 +0300
4907
Date:   2020-03-16 17:30:39 +0200
3364
4908
3365
    liblzma: Add support for LZMA_IGNORE_CHECK.
4909
    Translations: Add partial Danish translation.
4910
    
4911
    I made a few minor white space changes without getting them
4912
    approved by the Danish translation team.
3366
4913
3367
 src/liblzma/api/lzma/container.h    | 24 ++++++++++++++++++++++++
4914
 po/LINGUAS |   1 +
3368
 src/liblzma/common/common.h         |  1 +
4915
 po/da.po   | 896 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3369
 src/liblzma/common/stream_decoder.c | 14 ++++++++++++--
4916
 2 files changed, 897 insertions(+)
3370
 3 files changed, 37 insertions(+), 2 deletions(-)
3371
4917
3372
commit 0e0f34b8e4f1c60ecaec15c2105982381cc9c3e6
4918
commit 43e09c62e77cb8807d932c81de4decbdb956e184
3373
Author: Lasse Collin <lasse.collin@tukaani.org>
4919
Author: Lasse Collin <lasse.collin@tukaani.org>
3374
Date:   2014-08-05 22:03:30 +0300
4920
Date:   2020-03-11 22:37:54 +0200
3375
4921
3376
    liblzma: Add support for lzma_block.ignore_check.
4922
    Translations: Add hu, zh_CN, and zh_TW.
3377
    
4923
    
3378
    Note that this slightly changes how lzma_block_header_decode()
4924
    I made a few white space changes to these without getting them
3379
    has been documented. Earlier it said that the .version is set
4925
    approved by the translation teams. (I tried to contact the hu and
3380
    to the lowest required value, but now it says that the .version
4926
    zh_TW teams but didn't succeed. I didn't contact the zh_CN team.)
3381
    field is kept unchanged if possible. In practice this doesn't
3382
    affect any old code, because before this commit the only
3383
    possible .version was 0.
3384
4927
3385
 src/liblzma/api/lzma/block.h              | 50 ++++++++++++++++++++++++-------
4928
 po/LINGUAS  |   3 +
3386
 src/liblzma/common/block_buffer_encoder.c |  2 +-
4929
 po/hu.po    | 985 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3387
 src/liblzma/common/block_decoder.c        | 18 ++++++++---
4930
 po/zh_CN.po | 963 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3388
 src/liblzma/common/block_encoder.c        |  2 +-
4931
 po/zh_TW.po | 956 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3389
 src/liblzma/common/block_header_decoder.c | 12 ++++++--
4932
 4 files changed, 2907 insertions(+)
3390
 src/liblzma/common/block_header_encoder.c |  2 +-
3391
 src/liblzma/common/block_util.c           |  2 +-
3392
 7 files changed, 68 insertions(+), 20 deletions(-)
3393
4933
3394
commit 71e1437ab585b46f7a25f5a131557d3d1c0cbaa2
4934
commit 982b6b198ae1ffe6093236dd8a3d03d1415b912b
3395
Author: Lasse Collin <lasse.collin@tukaani.org>
4935
Author: Lasse Collin <lasse.collin@tukaani.org>
3396
Date:   2014-08-04 19:25:58 +0300
4936
Date:   2020-03-11 14:33:30 +0200
3397
4937
3398
    liblzma: Use lzma_memcmplen() in the BT3 match finder.
4938
    Translations: Update vi.po to match the file from the TP.
3399
    
4939
    
3400
    I had missed this when writing the commit
4940
    The translated strings haven't been updated but word wrapping
3401
    5db75054e900fa06ef5ade5f2c21dffdd5d16141.
4941
    is different.
4942
4943
 po/vi.po | 407 ++++++++++++++++++++++++++++-----------------------------------
4944
 1 file changed, 179 insertions(+), 228 deletions(-)
4945
4946
commit 801f39691fc4abc6dd33d7653d498781b593f3eb
4947
Author: Lasse Collin <lasse.collin@tukaani.org>
4948
Date:   2020-03-11 14:18:03 +0200
4949
4950
    Translations: Add fi and pt_BR, and update de, fr, it, and pl.
3402
    
4951
    
3403
    Thanks to Jun I Jin.
4952
    The German translation isn't identical to the file in
4953
    the Translation Project but the changes (white space changes
4954
    only) were approved by the translator Mario Blättermann.
3404
4955
3405
 src/liblzma/lz/lz_encoder_mf.c | 5 ++---
4956
 po/LINGUAS  |    2 +
3406
 1 file changed, 2 insertions(+), 3 deletions(-)
4957
 po/de.po    |  476 ++++++++++++++--------------
4958
 po/fi.po    |  974 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4959
 po/fr.po    |  272 ++++++++--------
4960
 po/it.po    |  479 ++++++++++++----------------
4961
 po/pl.po    |  239 +++++++-------
4962
 po/pt_BR.po | 1001 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4963
 7 files changed, 2697 insertions(+), 746 deletions(-)
3407
4964
3408
commit 41dc9ea06e1414ebe8ef52afc8fc15b6e3282b04
4965
commit 311e4f85ede5d2f0bb71f3ad70b5b7db1b5adf33
3409
Author: Lasse Collin <lasse.collin@tukaani.org>
4966
Author: Lasse Collin <lasse.collin@tukaani.org>
3410
Date:   2014-08-04 00:25:44 +0300
4967
Date:   2022-08-22 17:27:19 +0300
3411
4968
3412
    Update THANKS.
4969
    xz: Try to clarify --memlimit-mt-decompress vs. --memlimit-compress.
3413
4970
3414
 THANKS | 1 +
4971
 src/xz/xz.1 | 31 +++++++++++++++++++------------
3415
 1 file changed, 1 insertion(+)
4972
 1 file changed, 19 insertions(+), 12 deletions(-)
3416
4973
3417
commit 5dcffdbcc23a68abc3ac3539b30be71bc9b5af84
4974
commit df23c31000283c00e5ef1ca32a0bc3bb757bd707
3418
Author: Lasse Collin <lasse.collin@tukaani.org>
4975
Author: Lasse Collin <lasse.collin@tukaani.org>
3419
Date:   2014-08-03 21:32:25 +0300
4976
Date:   2022-08-22 16:46:18 +0300
3420
4977
3421
    liblzma: SHA-256: Optimize the Maj macro slightly.
4978
    CMake: Add liblzma tests.
3422
    
4979
    
3423
    The Maj macro is used where multiple things are added
4980
    Thanks to Jia Tan for the patch.
3424
    together, so making Maj a sum of two expressions allows
3425
    some extra freedom for the compiler to schedule the
3426
    instructions.
3427
    
3428
    I learned this trick from
3429
    <http://www.hackersdelight.org/corres.txt>.
3430
4981
3431
 src/liblzma/check/sha256.c | 2 +-
4982
 CMakeLists.txt | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
3432
 1 file changed, 1 insertion(+), 1 deletion(-)
4983
 1 file changed, 52 insertions(+), 1 deletion(-)
3433
4984
3434
commit a9477d1e0c6fd0e47e637d051e7b9e2a5d9af517
4985
commit 02a777f9c422d3b5ec895078530bb1a2b6f7bdf5
3435
Author: Lasse Collin <lasse.collin@tukaani.org>
4986
Author: Lasse Collin <lasse.collin@tukaani.org>
3436
Date:   2014-08-03 21:08:12 +0300
4987
Date:   2022-08-19 23:32:22 +0300
3437
4988
3438
    liblzma: SHA-256: Optimize the way rotations are done.
4989
    xz: Revise --info-memory output.
3439
    
4990
    
3440
    This looks weird because the rotations become sequential,
4991
    The strings could be more descriptive but it's good
3441
    but it helps quite a bit on both 32-bit and 64-bit x86:
4992
    to have some version of this committed now.
3442
    
4993
    
3443
      - It requires fewer instructions on two-operand
4994
    --robot mode wasn't changed yet.
3444
        instruction sets like x86.
3445
    
3446
      - It requires one register less which matters especially
3447
        on 32-bit x86.
3448
    
3449
    I hope this doesn't hurt other archs.
3450
    
3451
    I didn't invent this idea myself, but I don't remember where
3452
    I saw it first.
3453
4995
3454
 src/liblzma/check/sha256.c | 17 +++++++++++------
4996
 src/xz/hardware.c | 32 ++++++++++++++++++++++++++------
3455
 1 file changed, 11 insertions(+), 6 deletions(-)
4997
 src/xz/xz.1       |  1 +
4998
 2 files changed, 27 insertions(+), 6 deletions(-)
3456
4999
3457
commit 5a76c7c8ee9a0afbeedb1c211db9224260404347
5000
commit f864f6d42eab57ea8ed82cc2dd19a03b51377442
3458
Author: Lasse Collin <lasse.collin@tukaani.org>
5001
Author: Lasse Collin <lasse.collin@tukaani.org>
3459
Date:   2014-08-03 20:38:13 +0300
5002
Date:   2022-08-19 23:12:02 +0300
3460
5003
3461
    liblzma: SHA-256: Remove the GCC #pragma that became unneeded.
5004
    xz: Update the man page for threaded decompression and memlimits.
3462
    
5005
    
3463
    The unrolling in the previous commit should avoid the
5006
    This documents the changes made in commits
3464
    situation where a compiler may think that an uninitialized
5007
    6c6da57ae2aa962aabde6892442227063d87e88c,
3465
    variable might be accessed.
5008
    cad299008cf73ec566f0662a9cf2b94f86a99659, and
5009
    898faa97287a756231c663a3ed5165672b417207.
5010
    
5011
    The --info-memory bit hasn't been finished yet
5012
    even though it's already mentioned in this commit
5013
    under --memlimit-mt-decompress and --threads.
3466
5014
3467
 src/liblzma/check/sha256.c | 5 -----
5015
 src/xz/xz.1 | 148 +++++++++++++++++++++++++++++++++++++++++++++++++-----------
3468
 1 file changed, 5 deletions(-)
5016
 1 file changed, 121 insertions(+), 27 deletions(-)
3469
5017
3470
commit 9a096f8e57509775c331950b8351bbca77bdcfa8
5018
commit d13bfcc0056617dd648f655a01653932fad7067f
3471
Author: Lasse Collin <lasse.collin@tukaani.org>
5019
Author: Lasse Collin <lasse.collin@tukaani.org>
3472
Date:   2014-08-03 20:33:38 +0300
5020
Date:   2022-08-18 17:49:16 +0300
3473
5021
3474
    liblzma: SHA-256: Unroll a little more.
5022
    Build: Include the CMake files in the distribution.
3475
    
5023
    
3476
    This way a branch isn't needed for each operation
5024
    This was supposed to be done in 2020 with 5.2.5 release
3477
    to choose between blk0 and blk2, and still the code
5025
    already but it was noticed only today. 5.2.5 and 5.2.6
3478
    doesn't grow as much as it would with full unrolling.
5026
    even mention experiemental CMake support in the NEWS entries.
5027
    
5028
    Thanks to Olivier B. for reporting the problem.
3479
5029
3480
 src/liblzma/check/sha256.c | 25 ++++++++++++++++---------
5030
 Makefile.am | 2 ++
3481
 1 file changed, 16 insertions(+), 9 deletions(-)
5031
 1 file changed, 2 insertions(+)
3482
5032
3483
commit bc7650d87bf27f85f1a2a806dc2db1780e09e6a5
5033
commit e66787bcfefdb93f19c974f895f65969a77937b0
3484
Author: Lasse Collin <lasse.collin@tukaani.org>
5034
Author: Lasse Collin <lasse.collin@tukaani.org>
3485
Date:   2014-08-03 19:56:43 +0300
5035
Date:   2022-08-18 17:38:05 +0300
3486
5036
3487
    liblzma: SHA-256: Do the byteswapping without a temporary buffer.
5037
    Windows: Fix broken liblzma.dll build with Visual Studio project files.
5038
    
5039
    The bug was introduced in 352ba2d69af2136bc814aa1df1a132559d445616
5040
    "Windows: Fix building of resource files when config.h isn't used."
5041
    
5042
    That commit fixed liblzma.dll build with CMake while keeping it
5043
    working with Autotools on Windows but the VS project files were
5044
    forgotten.
5045
    
5046
    I haven't tested these changes.
5047
    
5048
    Thanks to Olivier B. for reporting the bug and for the initial patch.
3488
5049
3489
 src/liblzma/check/sha256.c | 13 +------------
5050
 windows/vs2013/liblzma_dll.vcxproj | 6 ++++++
3490
 1 file changed, 1 insertion(+), 12 deletions(-)
5051
 windows/vs2017/liblzma_dll.vcxproj | 6 ++++++
5052
 windows/vs2019/liblzma_dll.vcxproj | 6 ++++++
5053
 3 files changed, 18 insertions(+)
3491
5054
3492
commit 544aaa3d13554e8640f9caf7db717a96360ec0f6
5055
commit c4e8e5fb311225b8b48d34157891a640b2535e0c
3493
Author: Lasse Collin <lasse.collin@tukaani.org>
5056
Author: Lasse Collin <lasse.collin@tukaani.org>
3494
Date:   2014-07-25 22:38:28 +0300
5057
Date:   2022-08-18 17:16:49 +0300
3495
5058
3496
    liblzma: Use lzma_memcmplen() in normal mode of LZMA.
5059
    liblzma: Threaded decoder: Improve LZMA_FAIL_FAST when LZMA_FINISH is used.
3497
    
5060
    
3498
    Two locations were not changed yet because the simplest change
5061
    It will now return LZMA_DATA_ERROR (not LZMA_OK or LZMA_BUF_ERROR)
3499
    assumes that the initial "len" may be greater than "limit".
5062
    if LZMA_FINISH is used and there isn't enough input to finish
5063
    decoding the Block Header or the Block. The use of LZMA_DATA_ERROR
5064
    is simpler and the less risky than LZMA_BUF_ERROR but this might
5065
    be changed before 5.4.0.
3500
5066
3501
 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 20 +++++---------------
5067
 src/liblzma/api/lzma/container.h       |  6 +++++
3502
 1 file changed, 5 insertions(+), 15 deletions(-)
5068
 src/liblzma/common/stream_decoder_mt.c | 42 ++++++++++++++++++++++++++++++++++
5069
 2 files changed, 48 insertions(+)
3503
5070
3504
commit f48fce093b07aeda95c18850f5e086d9f2383380
5071
commit 6dcf606e7efa2b259f0262f9e2f61e00116842d3
3505
Author: Lasse Collin <lasse.collin@tukaani.org>
5072
Author: Lasse Collin <lasse.collin@tukaani.org>
3506
Date:   2014-07-25 22:30:38 +0300
5073
Date:   2022-08-12 18:31:47 +0300
3507
5074
3508
    liblzma: Simplify LZMA fast mode code by using memcmp().
5075
    Add NEWS for 5.2.6.
3509
5076
3510
 src/liblzma/lzma/lzma_encoder_optimum_fast.c | 11 +----------
5077
 NEWS | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3511
 1 file changed, 1 insertion(+), 10 deletions(-)
5078
 1 file changed, 121 insertions(+)
3512
5079
3513
commit 6bf5308e34e23dede5b301b1b9b4f131dacd9218
5080
commit 413b86fcf8934fae5a004f378a9483d37d8fcaab
3514
Author: Lasse Collin <lasse.collin@tukaani.org>
5081
Author: Lasse Collin <lasse.collin@tukaani.org>
3515
Date:   2014-07-25 22:29:49 +0300
5082
Date:   2022-08-12 14:28:41 +0300
3516
5083
3517
    liblzma: Use lzma_memcmplen() in fast mode of LZMA.
5084
    Add Jia Tan to AUTHORS.
3518
5085
3519
 src/liblzma/lzma/lzma_encoder_optimum_fast.c | 6 +++---
5086
 AUTHORS | 2 +-
3520
 1 file changed, 3 insertions(+), 3 deletions(-)
5087
 1 file changed, 1 insertion(+), 1 deletion(-)
3521
5088
3522
commit 353212137e51e45b105a3a3fc2e6879f1cf0d492
5089
commit 352672732c346c546ff3c26d0605bc0ed1c8b7c7
3523
Author: Lasse Collin <lasse.collin@tukaani.org>
5090
Author: Lasse Collin <lasse.collin@tukaani.org>
3524
Date:   2014-07-25 21:16:23 +0300
5091
Date:   2022-07-25 19:28:26 +0300
3525
5092
3526
    Update THANKS.
5093
    Build: Start the generated ChangeLog from around 5.2.0 instead of 5.0.0.
5094
    
5095
    This makes ChangeLog smaller.
3527
5096
3528
 THANKS | 1 +
5097
 Makefile.am | 2 +-
3529
 1 file changed, 1 insertion(+)
5098
 1 file changed, 1 insertion(+), 1 deletion(-)
3530
5099
3531
commit 5db75054e900fa06ef5ade5f2c21dffdd5d16141
5100
commit 6f6d11225d6016be2bbb55d845b66f6b04d048df
3532
Author: Lasse Collin <lasse.collin@tukaani.org>
5101
Author: Lasse Collin <lasse.collin@tukaani.org>
3533
Date:   2014-07-25 21:15:07 +0300
5102
Date:   2022-07-25 19:11:05 +0300
3534
5103
3535
    liblzma: Use lzma_memcmplen() in the match finders.
5104
    Translations: Change the copyright comment string to use with po4a.
3536
    
5105
    
3537
    This doesn't change the match finder output.
5106
    This affects the second line in po4a/xz-man.pot. The man pages of
5107
    xzdiff, xzgrep, and xzmore are from GNU gzip and under GNU GPLv2+
5108
    while the rest of the man pages are in the public domain.
3538
5109
3539
 src/liblzma/lz/lz_encoder.c    | 13 ++++++++++++-
5110
 po4a/update-po | 2 +-
3540
 src/liblzma/lz/lz_encoder_mf.c | 33 +++++++++++----------------------
5111
 1 file changed, 1 insertion(+), 1 deletion(-)
3541
 2 files changed, 23 insertions(+), 23 deletions(-)
3542
5112
3543
commit e1c8f1d01f4a4e2136173edab2dc63c71ef038f4
5113
commit 61f8ec804abdb4c5dac01e8ae9b90c7be58a5c24
3544
Author: Lasse Collin <lasse.collin@tukaani.org>
5114
Author: Jia Tan <jiat0218@gmail.com>
3545
Date:   2014-07-25 20:57:20 +0300
5115
Date:   2022-07-25 18:30:05 +0300
3546
5116
3547
    liblzma: Add lzma_memcmplen() for fast memory comparison.
5117
    liblzma: Refactor lzma_mf_is_supported() to use a switch-statement.
5118
5119
 src/liblzma/lz/lz_encoder.c | 32 ++++++++++++++------------------
5120
 1 file changed, 14 insertions(+), 18 deletions(-)
5121
5122
commit 4d80b463a1251aa22eabc87d2732fec13b1adda6
5123
Author: Jia Tan <jiat0218@gmail.com>
5124
Date:   2022-07-25 18:20:01 +0300
5125
5126
    Build: Don't allow empty LIST in --enable-match-finders=LIST.
3548
    
5127
    
3549
    This commit just adds the function. Its uses will be in
5128
    It's enforced only when a match finder is needed, that is,
3550
    separate commits.
5129
    when LZMA1 or LZMA2 encoder is enabled.
3551
    
3552
    This hasn't been tested much yet and it's perhaps a bit early
3553
    to commit it but if there are bugs they should get found quite
3554
    quickly.
3555
    
3556
    Thanks to Jun I Jin from Intel for help and for pointing out
3557
    that string comparison needs to be optimized in liblzma.
3558
5130
3559
 configure.ac                    |  13 +++
5131
 configure.ac | 4 ++++
3560
 src/liblzma/common/Makefile.inc |   1 +
5132
 1 file changed, 4 insertions(+)
3561
 src/liblzma/common/memcmplen.h  | 170 ++++++++++++++++++++++++++++++++++++++++
3562
 3 files changed, 184 insertions(+)
3563
5133
3564
commit 765735cf52e5123586e74a51b9c073b5257f631f
5134
commit 9cc721af5436908f2d5a828aebbc4050a32a3487
3565
Author: Lasse Collin <lasse.collin@tukaani.org>
5135
Author: Lasse Collin <lasse.collin@tukaani.org>
3566
Date:   2014-07-12 21:10:09 +0300
5136
Date:   2022-07-24 13:27:48 +0300
3567
5137
5138
    xz: Update the man page that change to --keep will be in 5.2.6.
5139
5140
 src/xz/xz.1 | 4 ++--
5141
 1 file changed, 2 insertions(+), 2 deletions(-)
5142
5143
commit b81bf0c7d1873e52a4086a9abb494471d652cb55
5144
Author: Lasse Collin <lasse.collin@tukaani.org>
5145
Date:   2022-07-19 23:23:54 +0300
5146
3568
    Update THANKS.
5147
    Update THANKS.
3569
5148
3570
 THANKS | 1 +
5149
 THANKS | 1 +
3571
 1 file changed, 1 insertion(+)
5150
 1 file changed, 1 insertion(+)
3572
5151
3573
commit 59da01785ef66c7e62f36e70ca808fd2824bb995
5152
commit 340cf1ec3927767046b8293a49da3db4e393f426
3574
Author: Lasse Collin <lasse.collin@tukaani.org>
5153
Author: Nicholas Jackson <nickajacks1@gmail.com>
3575
Date:   2014-07-12 20:06:08 +0300
5154
Date:   2022-07-17 17:39:23 -0700
3576
5155
3577
    Translations: Add Vietnamese translation.
5156
    CMake: Add missing source file to liblzma build
3578
    
3579
    Thanks to Trần Ngọc Quân.
3580
5157
3581
 po/LINGUAS |    1 +
5158
 CMakeLists.txt | 1 +
3582
 po/vi.po   | 1007 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5159
 1 file changed, 1 insertion(+)
3583
 2 files changed, 1008 insertions(+)
3584
5160
3585
commit 17215f751c354852700e7f8592ccf319570a0721
5161
commit d796b6d7fdb8b7238b277056cf9146cce25db604
3586
Author: Lasse Collin <lasse.collin@tukaani.org>
5162
Author: Lasse Collin <lasse.collin@tukaani.org>
3587
Date:   2014-06-29 20:54:14 +0300
5163
Date:   2022-07-19 23:19:49 +0300
3588
5164
3589
    xz: Update the help message of a few options.
5165
    xzgrep man page: Document exit statuses.
3590
    
3591
    Updated: --threads, --block-size, and --block-list
3592
    Added: --flush-timeout
3593
5166
3594
 src/xz/message.c | 18 +++++++++++-------
5167
 src/scripts/xzgrep.1 | 15 ++++++++++++++-
3595
 1 file changed, 11 insertions(+), 7 deletions(-)
5168
 1 file changed, 14 insertions(+), 1 deletion(-)
3596
5169
3597
commit 96864a6ddf91ad693d102ea165f3d7918744d582
5170
commit 923bf96b55e5216a6c8df9d8331934f54784390e
3598
Author: Lasse Collin <lasse.collin@tukaani.org>
5171
Author: Lasse Collin <lasse.collin@tukaani.org>
3599
Date:   2014-06-18 22:07:06 +0300
5172
Date:   2022-07-19 23:13:24 +0300
3600
5173
3601
    xz: Use lzma_cputhreads() instead of own copy of tuklib_cpucores().
5174
    xzgrep: Improve error handling, especially signals.
5175
    
5176
    xzgrep wouldn't exit on SIGPIPE or SIGQUIT when it clearly
5177
    should have. It's quite possible that it's not perfect still
5178
    but at least it's much better.
5179
    
5180
    If multiple exit statuses compete, now it tries to pick
5181
    the largest of value.
5182
    
5183
    Some comments were added.
5184
    
5185
    The exit status handling of signals is still broken if the shell
5186
    uses values larger than 255 in $? to indicate that a process
5187
    died due to a signal ***and*** their "exit" command doesn't take
5188
    this into account. This seems to work well with the ksh and yash
5189
    versions I tried. However, there is a report in gzip/zgrep that
5190
    OpenSolaris 5.11 (not 5.10) has a problem with "exit" truncating
5191
    the argument to 8 bits:
5192
    
5193
        https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22900#25
5194
    
5195
    Such a bug would break xzgrep but I didn't add a workaround
5196
    at least for now. 5.11 is old and I don't know if the problem
5197
    exists in modern descendants, or if the problem exists in other
5198
    ksh implementations in use.
3602
5199
3603
 src/xz/Makefile.am |  1 -
5200
 src/scripts/xzgrep.in | 72 +++++++++++++++++++++++++++++++++++++--------------
3604
 src/xz/hardware.c  | 12 +++++++++---
5201
 1 file changed, 53 insertions(+), 19 deletions(-)
3605
 2 files changed, 9 insertions(+), 4 deletions(-)
3606
5202
3607
commit a115cc3748482e277f42a968baa3cd266f031dba
5203
commit a648978b20495b7aa4a8b029c5a810b5ad9d08ff
3608
Author: Lasse Collin <lasse.collin@tukaani.org>
5204
Author: Lasse Collin <lasse.collin@tukaani.org>
3609
Date:   2014-06-18 22:04:24 +0300
5205
Date:   2022-07-19 00:10:55 +0300
3610
5206
3611
    liblzma: Add lzma_cputhreads().
5207
    xzgrep: Make the fix for ZDI-CAN-16587 more robust.
5208
    
5209
    I don't know if this can make a difference in the real world
5210
    but it looked kind of suspicious (what happens with sed
5211
    implementations that cannot process very long lines?).
5212
    At least this commit shouldn't make it worse.
3612
5213
3613
 src/liblzma/Makefile.am                  |  8 +++++++-
5214
 src/scripts/xzgrep.in | 5 ++++-
3614
 src/liblzma/api/lzma/hardware.h          | 14 ++++++++++++++
5215
 1 file changed, 4 insertions(+), 1 deletion(-)
3615
 src/liblzma/common/Makefile.inc          |  1 +
3616
 src/liblzma/common/hardware_cputhreads.c | 22 ++++++++++++++++++++++
3617
 src/liblzma/liblzma.map                  |  1 +
3618
 5 files changed, 45 insertions(+), 1 deletion(-)
3619
5216
3620
commit 3ce3e7976904fbab4e6482bafa442856f77a51fa
5217
commit bd7b290f3fe4faeceb7d3497ed9bf2e6ed5e7dc5
3621
Author: Lasse Collin <lasse.collin@tukaani.org>
5218
Author: Lasse Collin <lasse.collin@tukaani.org>
3622
Date:   2014-06-18 19:11:52 +0300
5219
Date:   2022-07-18 21:52:31 +0300
3623
5220
3624
    xz: Check for filter chain compatibility for --flush-timeout.
5221
    xzgrep: Use grep -H --label when available (GNU, *BSDs).
3625
    
5222
    
3626
    This avoids LZMA_PROG_ERROR from lzma_code() with filter chains
5223
    It avoids the use of sed for prefixing filenames to output lines.
3627
    that don't support LZMA_SYNC_FLUSH.
5224
    Using sed for that is slower and prone to security bugs so now
5225
    the sed method is only used as a fallback.
5226
    
5227
    This also fixes an actual bug: When grepping a binary file,
5228
    GNU grep nowadays prints its diagnostics to stderr instead of
5229
    stdout and thus the sed-method for prefixing the filename doesn't
5230
    work. So with this commit grepping binary files gives reasonable
5231
    output with GNU grep now.
5232
    
5233
    This was inspired by zgrep but the implementation is different.
3628
5234
3629
 src/xz/coder.c | 30 +++++++++++++++++++++---------
5235
 src/scripts/xzgrep.in | 21 +++++++++++++++++++++
3630
 1 file changed, 21 insertions(+), 9 deletions(-)
5236
 1 file changed, 21 insertions(+)
3631
5237
3632
commit 381ac14ed79e5d38809f251705be8b3193bba417
5238
commit b56729af9f1a596e57aeefd7570d8d7dce5c9f52
3633
Author: Lasse Collin <lasse.collin@tukaani.org>
5239
Author: Lasse Collin <lasse.collin@tukaani.org>
3634
Date:   2014-06-13 19:21:54 +0300
5240
Date:   2022-07-18 21:10:25 +0300
3635
5241
3636
    xzgrep: List xzgrep_expected_output in tests/Makefile.am.
5242
    xzgrep: Use -e to specify the pattern to grep.
5243
    
5244
    Now we don't need the separate test for adding the -q option
5245
    as it can be added directly in the two places where it's needed.
3637
5246
3638
 tests/Makefile.am | 3 ++-
5247
 src/scripts/xzgrep.in | 12 ++++--------
3639
 1 file changed, 2 insertions(+), 1 deletion(-)
5248
 1 file changed, 4 insertions(+), 8 deletions(-)
3640
5249
3641
commit 4244b65b06d5ecaf6f9dd0387ac7e3166bd2364e
5250
commit bad61b5997e6647911974022bfb72f3d4818a594
3642
Author: Lasse Collin <lasse.collin@tukaani.org>
5251
Author: Lasse Collin <lasse.collin@tukaani.org>
3643
Date:   2014-06-13 18:58:22 +0300
5252
Date:   2022-07-18 19:18:48 +0300
3644
5253
3645
    xzgrep: Improve the test script.
5254
    Scripts: Use printf instead of echo in a few places.
3646
    
5255
    
3647
    Now it should be close to the functionality of the original
5256
    It's a good habbit as echo has some portability corner cases
3648
    version by Pavel Raiskup.
5257
    when the string contents can be anything.
3649
5258
3650
 tests/Makefile.am            |  3 ++-
5259
 src/scripts/xzdiff.in | 6 +++---
3651
 tests/test_scripts.sh        | 24 ++++++++++++++----------
5260
 src/scripts/xzgrep.in | 4 ++--
3652
 tests/xzgrep_expected_output | 39 +++++++++++++++++++++++++++++++++++++++
5261
 src/scripts/xzless.in | 4 ++--
3653
 3 files changed, 55 insertions(+), 11 deletions(-)
5262
 src/scripts/xzmore.in | 8 ++++----
5263
 4 files changed, 11 insertions(+), 11 deletions(-)
3654
5264
3655
commit 1e60f2c0a0ee6c18b02943ce56214799a70aac26
5265
commit 6a4a4a7d2667837dc824c26fcb19ed6ca5aff645
3656
Author: Lasse Collin <lasse.collin@tukaani.org>
5266
Author: Lasse Collin <lasse.collin@tukaani.org>
3657
Date:   2014-06-11 21:03:25 +0300
5267
Date:   2022-07-17 21:36:25 +0300
3658
5268
3659
    xzgrep: Add a test for the previous fix.
5269
    xzgrep: Add more LC_ALL=C to avoid bugs with multibyte characters.
3660
    
5270
    
3661
    This is a simplified version of Pavel Raiskup's
5271
    Also replace one use of expr with printf.
3662
    original patch.
5272
    
5273
    The rationale for LC_ALL=C was already mentioned in
5274
    69d1b3fc29677af8ade8dc15dba83f0589cb63d6 that fixed a security
5275
    issue. However, unrelated uses weren't changed in that commit yet.
5276
    
5277
    POSIX says that with sed and such tools one should use LC_ALL=C
5278
    to ensure predictable behavior when strings contain byte sequences
5279
    that aren't valid multibyte characters in the current locale. See
5280
    under "Application usage" in here:
5281
    
5282
    https://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html
5283
    
5284
    With GNU sed invalid multibyte strings would work without this;
5285
    it's documented in its Texinfo manual. Some other implementations
5286
    aren't so forgiving.
3663
5287
3664
 tests/test_scripts.sh | 26 ++++++++++++++++++++++----
5288
 src/scripts/xzgrep.in | 14 ++++++++------
3665
 1 file changed, 22 insertions(+), 4 deletions(-)
5289
 1 file changed, 8 insertions(+), 6 deletions(-)
3666
5290
3667
commit ceca37901783988204caaf40dff4623d535cc789
5291
commit b48f9d615f2c2e8d2f6e253d0e48ee66d0652b68
3668
Author: Lasse Collin <lasse.collin@tukaani.org>
5292
Author: Lasse Collin <lasse.collin@tukaani.org>
3669
Date:   2014-06-11 20:43:28 +0300
5293
Date:   2022-07-17 20:55:16 +0300
3670
5294
3671
    xzgrep: exit 0 when at least one file matches.
5295
    xzgrep: Fix parsing of certain options.
3672
    
5296
    
3673
    Mimic the original grep behavior and return exit_success when
5297
    Fix handling of "xzgrep -25 foo" (in GNU grep "grep -25 foo" is
3674
    at least one xz compressed file matches given pattern.
5298
    an alias for "grep -C25 foo"). xzgrep would treat "foo" as filename
5299
    instead of as a pattern. This bug was fixed in zgrep in gzip in 2012.
3675
    
5300
    
3676
    Original bugreport:
5301
    Add -E, -F, -G, and -P to the "no argument required" list.
3677
    https://bugzilla.redhat.com/show_bug.cgi?id=1108085
3678
    
5302
    
3679
    Thanks to Pavel Raiskup for the patch.
5303
    Add -X to "argument required" list. It is an
5304
    intentionally-undocumented GNU grep option so this isn't
5305
    an important option for xzgrep but it seems that other grep
5306
    implementations (well, those that I checked) don't support -X
5307
    so I hope this change is an improvement still.
5308
    
5309
    grep -d (grep --directories=ACTION) requires an argument. In
5310
    contrast to zgrep, I kept -d in the "no argument required" list
5311
    because it's not supported in xzgrep (or zgrep). This way
5312
    "xzgrep -d" gives an error about option being unsupported instead
5313
    of telling that it requires an argument. Both zgrep and xzgrep
5314
    tell that it's unsupported if an argument is specified.
5315
    
5316
    Add comments.
3680
5317
3681
 src/scripts/xzgrep.in | 15 +++++++++++++--
5318
 src/scripts/xzgrep.in | 19 +++++++++++++++++--
3682
 1 file changed, 13 insertions(+), 2 deletions(-)
5319
 1 file changed, 17 insertions(+), 2 deletions(-)
3683
5320
3684
commit 8c19216baccb92d011694590df8a1262da2e980c
5321
commit 2d2201bc6315deda4d43625aa510972467bd51d4
3685
Author: Lasse Collin <lasse.collin@tukaani.org>
5322
Author: Lasse Collin <lasse.collin@tukaani.org>
3686
Date:   2014-06-09 21:21:24 +0300
5323
Date:   2022-07-14 20:33:05 +0300
3687
5324
3688
    xz: Force single-threaded mode when --flush-timeout is used.
5325
    Tests: Add the .lzma files to test_files.sh.
3689
5326
3690
 src/xz/coder.c | 11 +++++++++++
5327
 tests/test_files.sh | 20 ++++++++++++++++++++
3691
 1 file changed, 11 insertions(+)
5328
 1 file changed, 20 insertions(+)
3692
5329
3693
commit 87f1a24810805187d7bbc8ac5512e7eec307ddf5
5330
commit ce5549a591bf126300618879f5b24023351baff6
3694
Author: Lasse Collin <lasse.collin@tukaani.org>
5331
Author: Lasse Collin <lasse.collin@tukaani.org>
3695
Date:   2014-05-25 22:05:39 +0300
5332
Date:   2022-07-14 19:37:42 +0300
3696
5333
5334
    Tests: Add .lzma test files.
5335
5336
 tests/files/README                                 |  63 ++++++++++++++++-----
5337
 tests/files/bad-too_big_size-with_eopm.lzma        | Bin 0 -> 37 bytes
5338
 tests/files/bad-too_small_size-without_eopm-1.lzma | Bin 0 -> 31 bytes
5339
 tests/files/bad-too_small_size-without_eopm-2.lzma | Bin 0 -> 31 bytes
5340
 tests/files/bad-too_small_size-without_eopm-3.lzma | Bin 0 -> 36 bytes
5341
 tests/files/bad-unknown_size-without_eopm.lzma     | Bin 0 -> 31 bytes
5342
 tests/files/good-known_size-with_eopm.lzma         | Bin 0 -> 37 bytes
5343
 tests/files/good-known_size-without_eopm.lzma      | Bin 0 -> 31 bytes
5344
 tests/files/good-unknown_size-with_eopm.lzma       | Bin 0 -> 37 bytes
5345
 9 files changed, 50 insertions(+), 13 deletions(-)
5346
5347
commit 107c93ee5cad51a6ea0cee471209bfe8d76deaa3
5348
Author: Lasse Collin <lasse.collin@tukaani.org>
5349
Date:   2022-07-14 18:12:38 +0300
5350
5351
    liblzma: Rename a variable and improve a comment.
5352
5353
 src/liblzma/lzma/lzma_decoder.c | 13 +++++++++----
5354
 1 file changed, 9 insertions(+), 4 deletions(-)
5355
5356
commit 511feb5eadb988d641b025d597f4fac7502003b8
5357
Author: Lasse Collin <lasse.collin@tukaani.org>
5358
Date:   2022-07-13 22:24:41 +0300
5359
3697
    Update THANKS.
5360
    Update THANKS.
3698
5361
3699
 THANKS | 1 +
5362
 THANKS | 1 +
3700
 1 file changed, 1 insertion(+)
5363
 1 file changed, 1 insertion(+)
3701
5364
3702
commit da1718f266fcfc091e7bf08aae1bc986d0e6cc6b
5365
commit 9595a3119b9faf0ce01375329cad8bbf85c35ea2
3703
Author: Lasse Collin <lasse.collin@tukaani.org>
5366
Author: Lasse Collin <lasse.collin@tukaani.org>
3704
Date:   2014-05-25 21:45:56 +0300
5367
Date:   2022-07-13 22:24:07 +0300
3705
5368
3706
    liblzma: Use lzma_alloc_zero() in LZ encoder initialization.
5369
    liblzma: Add optional autodetection of LZMA end marker.
3707
    
5370
    
3708
    This avoids a memzero() call for a newly-allocated memory,
5371
    Turns out that this is needed for .lzma files as the spec in
3709
    which can be expensive when encoding small streams with
5372
    LZMA SDK says that end marker may be present even if the size
3710
    an over-sized dictionary.
5373
    is stored in the header. Such files are rare but exist in the
5374
    real world. The code in liblzma is so old that the spec didn't
5375
    exist in LZMA SDK back then and I had understood that such
5376
    files weren't possible (the lzma tool in LZMA SDK didn't
5377
    create such files).
3711
    
5378
    
3712
    To avoid using lzma_alloc_zero() for memory that doesn't
5379
    This modifies the internal API so that LZMA decoder can be told
3713
    need to be zeroed, lzma_mf.son is now allocated separately,
5380
    if EOPM is allowed even when the uncompressed size is known.
3714
    which requires handling it separately in normalize() too.
5381
    It's allowed with .lzma and not with other uses.
3715
    
5382
    
3716
    Thanks to Vincenzo Innocente for reporting the problem.
5383
    Thanks to Karl Beldan for reporting the problem.
3717
5384
3718
 src/liblzma/lz/lz_encoder.c    | 84 ++++++++++++++++++++++--------------------
5385
 doc/lzma-file-format.txt               | 11 +++-
3719
 src/liblzma/lz/lz_encoder.h    |  2 +-
5386
 src/liblzma/common/alone_decoder.c     |  2 +-
3720
 src/liblzma/lz/lz_encoder_mf.c | 31 +++++++++-------
5387
 src/liblzma/common/microlzma_decoder.c |  2 +-
3721
 3 files changed, 62 insertions(+), 55 deletions(-)
5388
 src/liblzma/lz/lz_decoder.c            | 10 +++-
5389
 src/liblzma/lz/lz_decoder.h            |  8 +--
5390
 src/liblzma/lzma/lzma2_decoder.c       |  2 +-
5391
 src/liblzma/lzma/lzma_decoder.c        | 99 ++++++++++++++++++++++++----------
5392
 7 files changed, 95 insertions(+), 39 deletions(-)
3722
5393
3723
commit 28af24e9cf2eb259997c85dce13d4c97b3daa47a
5394
commit 0c0f8e9761eb6eaf199082cf144db7ac5f9d8cb2
3724
Author: Lasse Collin <lasse.collin@tukaani.org>
5395
Author: Lasse Collin <lasse.collin@tukaani.org>
3725
Date:   2014-05-25 19:25:57 +0300
5396
Date:   2022-07-12 18:53:04 +0300
3726
5397
3727
    liblzma: Add the internal function lzma_alloc_zero().
5398
    xz: Document the special memlimit case of 2000 MiB on MIPS32.
5399
    
5400
    See commit fc3d3a7296ef58bb799a73943636b8bfd95339f7.
3728
5401
3729
 src/liblzma/common/common.c | 21 +++++++++++++++++++++
5402
 src/xz/xz.1 | 8 ++++++--
3730
 src/liblzma/common/common.h |  6 ++++++
5403
 1 file changed, 6 insertions(+), 2 deletions(-)
3731
 2 files changed, 27 insertions(+)
3732
5404
3733
commit ed9ac85822c490e34b68c259afa0b385d21d1c40
5405
commit d1bfa3dc703325ecd974167e864a8712fdfe936e
3734
Author: Lasse Collin <lasse.collin@tukaani.org>
5406
Author: Jia Tan <jiat0218@gmail.com>
3735
Date:   2014-05-08 18:03:09 +0300
5407
Date:   2022-07-01 21:19:26 +0800
3736
5408
3737
    xz: Fix uint64_t vs. size_t which broke 32-bit build.
5409
    Created script to generate code coverage reports.
3738
    
5410
    
3739
    Thanks to Christian Hesse.
5411
    The script uses lcov and genhtml after running the tests
5412
    to show the code coverage statistics. The script will create
5413
    a coverage directory where it is run. It can be run both in
5414
    and out of the source directory.
3740
5415
3741
 src/xz/coder.c | 2 +-
5416
 .gitignore             |  4 +++
3742
 1 file changed, 1 insertion(+), 1 deletion(-)
5417
 tests/code_coverage.sh | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++
5418
 2 files changed, 83 insertions(+)
3743
5419
3744
commit d716acdae3fa7996f9e68a7bac012e6d8d13dd02
5420
commit 86a30b0255d8064169fabfd213d907016d2f9f2a
3745
Author: Lasse Collin <lasse.collin@tukaani.org>
5421
Author: Jia Tan <jiat0218@gmail.com>
3746
Date:   2014-05-04 11:09:11 +0300
5422
Date:   2022-06-16 17:32:19 +0300
3747
5423
3748
    Docs: Update comments to refer to lzma/lzma12.h in example programs.
5424
    Tests: Add more tests into test_check.
3749
5425
3750
 doc/examples/03_compress_custom.c | 6 +++---
5426
 tests/test_check.c | 279 +++++++++++++++++++++++++++++++++++++++++++++++++++--
3751
 1 file changed, 3 insertions(+), 3 deletions(-)
5427
 tests/tests.h      |  23 +++++
5428
 2 files changed, 295 insertions(+), 7 deletions(-)
3752
5429
3753
commit 4d5b7b3fda31241ca86ed35e08e73f776ee916e0
5430
commit 82e30fed66a89706388a8c15dc954d84e63f38fa
3754
Author: Lasse Collin <lasse.collin@tukaani.org>
5431
Author: Lasse Collin <lasse.collin@tukaani.org>
3755
Date:   2014-05-04 11:07:17 +0300
5432
Date:   2022-06-16 15:02:57 +0300
3756
5433
3757
    liblzma: Rename the private API header lzma/lzma.h to lzma/lzma12.h.
5434
    Tests: Use char[][24] array for enum_strings_lzma_ret.
3758
    
5435
    
3759
    It can be confusing that two header files have the same name.
5436
    Array of pointers to short strings is a bit pointless here
3760
    The public API file is still lzma.h.
5437
    and now it's fully const.
3761
5438
3762
 src/liblzma/api/Makefile.am               | 2 +-
5439
 tests/tests.h | 2 +-
3763
 src/liblzma/api/lzma.h                    | 2 +-
5440
 1 file changed, 1 insertion(+), 1 deletion(-)
3764
 src/liblzma/api/lzma/{lzma.h => lzma12.h} | 2 +-
3765
 3 files changed, 3 insertions(+), 3 deletions(-)
3766
5441
3767
commit 1555a9c5664afc7893a2b75e9970105437f01ef1
5442
commit 5ba9459e6c4a29f6870ca78ce8ac6e519d59c41e
3768
Author: Lasse Collin <lasse.collin@tukaani.org>
5443
Author: Lasse Collin <lasse.collin@tukaani.org>
3769
Date:   2014-04-25 17:53:42 +0300
5444
Date:   2022-06-16 14:12:14 +0300
3770
5445
3771
    Build: Fix the combination of --disable-xzdec --enable-lzmadec.
5446
    Tests: tuktest.h: Add tuktest_error_impl to help with error conditions.
3772
    
3773
    In this case "make install" could fail if the man page directory
3774
    didn't already exist at the destination. If it did exist, a
3775
    dangling symlink was created there. Now the link is omitted
3776
    instead. This isn't the best fix but it's better than the old
3777
    behavior.
3778
5447
3779
 src/xzdec/Makefile.am | 10 +++++++++-
5448
 tests/tuktest.h | 72 +++++++++++++++++++++++++--------------------------------
3780
 1 file changed, 9 insertions(+), 1 deletion(-)
5449
 1 file changed, 32 insertions(+), 40 deletions(-)
3781
5450
3782
commit 56056571df3377eaa6ae6233b3ccc5d72e81d43d
5451
commit b339892668da20aea22a93668c82b87a38e4a97f
3783
Author: Lasse Collin <lasse.collin@tukaani.org>
5452
Author: Lasse Collin <lasse.collin@tukaani.org>
3784
Date:   2014-04-25 17:44:26 +0300
5453
Date:   2022-06-16 13:29:59 +0300
3785
5454
3786
    Build: Add --disable-doc to configure.
5455
    Tests: tuktest.h: Rename file_from_* and use tuktest_malloc there.
3787
5456
3788
 INSTALL      | 6 ++++++
5457
 tests/test_bcj_exact_size.c |  4 +---
3789
 Makefile.am  | 2 ++
5458
 tests/tuktest.h             | 52 +++++++++++++++++++++------------------------
3790
 configure.ac | 6 ++++++
5459
 2 files changed, 25 insertions(+), 31 deletions(-)
3791
 3 files changed, 14 insertions(+)
3792
5460
3793
commit 6de61d8721097a6214810841aa85b08e303ac538
5461
commit d8b63a0ad68d1c461eb373466679ebc41fbc207d
3794
Author: Lasse Collin <lasse.collin@tukaani.org>
5462
Author: Lasse Collin <lasse.collin@tukaani.org>
3795
Date:   2014-04-24 18:06:24 +0300
5463
Date:   2022-06-16 13:08:19 +0300
3796
5464
3797
    Update INSTALL.
5465
    Tests: tuktest.h: Add malloc wrapper with automatic freeing.
3798
    
3799
    Add a note about failing "make check". The source of
3800
    the problem should be fixed in libtool (if it really is
3801
    a libtool bug and not mine) but I'm unable to spend time
3802
    on that for now. Thanks to Nelson H. F. Beebe for reporting
3803
    the issue.
3804
    
3805
    Add a note about a possible need to run "ldconfig" after
3806
    "make install".
3807
5466
3808
 INSTALL | 25 +++++++++++++++++++++++++
5467
 tests/tuktest.h | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3809
 1 file changed, 25 insertions(+)
5468
 1 file changed, 124 insertions(+)
3810
5469
3811
commit 54df428799a8d853639b753d0e6784694d73eb3e
5470
commit 1d51536a4b19a8fae768f8eb462fc2238cb36d53
3812
Author: Lasse Collin <lasse.collin@tukaani.org>
5471
Author: Lasse Collin <lasse.collin@tukaani.org>
3813
Date:   2014-04-09 17:26:10 +0300
5472
Date:   2022-06-16 11:47:37 +0300
3814
5473
3815
    xz: Rename a variable to avoid a namespace collision on Solaris.
5474
    Tests: tuktest.h: Move a function.
3816
    
3817
    I don't know the details but I have an impression that there's
3818
    no problem in practice if using GCC since people have built xz
3819
    with GCC (without patching xz), but renaming the variable cannot
3820
    hurt either.
3821
    
3822
    Thanks to Mark Ashley.
3823
5475
3824
 src/xz/signals.c | 12 +++++++-----
5476
 tests/tuktest.h | 44 ++++++++++++++++++++++----------------------
3825
 1 file changed, 7 insertions(+), 5 deletions(-)
5477
 1 file changed, 22 insertions(+), 22 deletions(-)
3826
5478
3827
commit 5876ca27daa1429676b1160007d9688266907f00
5479
commit 70c7555f6403553ee35539e869de0025592d8564
3828
Author: Lasse Collin <lasse.collin@tukaani.org>
5480
Author: Lasse Collin <lasse.collin@tukaani.org>
3829
Date:   2014-01-29 20:19:41 +0200
5481
Date:   2022-06-14 22:21:15 +0300
3830
5482
3831
    Docs: Add example program for threaded encoding.
5483
    Tests: test_vli: Remove an invalid test-assertion.
3832
    
5484
    
3833
    I didn't add -DLZMA_UNSTABLE to Makefile so one has to
5485
    lzma_vli is unsigned so trying a signed value results in
3834
    specify it manually as long as LZMA_UNSTABLE is needed.
5486
    a compiler warning from -Wsign-conversion. (lzma_vli)-1
5487
    equals to LZMA_VLI_UNKNOWN anyway which is the next assertion.
3835
5488
3836
 doc/examples/04_compress_easy_mt.c | 184 +++++++++++++++++++++++++++++++++++++
5489
 tests/test_vli.c | 2 --
3837
 doc/examples/Makefile              |   3 +-
5490
 1 file changed, 2 deletions(-)
3838
 2 files changed, 186 insertions(+), 1 deletion(-)
3839
5491
3840
commit 9494fb6d0ff41c585326f00aa8f7fe58f8106a5e
5492
commit 154b73c5a1092c3f785e01666b564ad7ff1be555
3841
Author: Lasse Collin <lasse.collin@tukaani.org>
5493
Author: Lasse Collin <lasse.collin@tukaani.org>
3842
Date:   2014-01-29 20:13:51 +0200
5494
Date:   2022-06-14 22:10:10 +0300
3843
5495
3844
    liblzma: Fix lzma_mt.preset not working with lzma_stream_encoder_mt().
5496
    Tests: test_vli: Add const where appropriate.
5497
5498
 tests/test_vli.c | 53 ++++++++++++++++++++++++++++-------------------------
5499
 1 file changed, 28 insertions(+), 25 deletions(-)
5500
5501
commit 0354d6cce3ff98ea6f927107baf216253f6ce2bb
5502
Author: Jia Tan <jiat75@gmail.com>
5503
Date:   2022-06-13 20:27:03 +0800
5504
5505
    Added vli tests to .gitignore
5506
5507
 .gitignore | 1 +
5508
 1 file changed, 1 insertion(+)
5509
5510
commit a08f5ccf6bdc20ef70e41f6f3321618ef146f96e
5511
Author: Jia Tan <jiat0218@gmail.com>
5512
Date:   2022-06-12 11:31:40 +0800
5513
5514
    Created tests for all functions exported in vli.h
3845
    
5515
    
3846
    It read the filter chain from a wrong variable.
5516
    Achieved 100% code coverage vli_encoder.c, vli_decoder.c, and vli_size.c
3847
5517
3848
 src/liblzma/common/stream_encoder_mt.c | 4 ++--
5518
 tests/Makefile.am |   4 +-
3849
 1 file changed, 2 insertions(+), 2 deletions(-)
5519
 tests/test_vli.c  | 308 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
5520
 2 files changed, 311 insertions(+), 1 deletion(-)
3850
5521
3851
commit 673a4cb53de3a715685cb1b836da57a3c7dcd43c
5522
commit 1e3eb61815a91c0a1bfbb802e2d95593f523491f
3852
Author: Lasse Collin <lasse.collin@tukaani.org>
5523
Author: jiat75 <jiat0218@gmail.com>
3853
Date:   2014-01-20 11:20:40 +0200
5524
Date:   2022-06-03 21:24:54 +0800
3854
5525
3855
    liblzma: Fix typo in a comment.
5526
    Added parallel test artifacts to .gitignore
3856
5527
3857
 src/liblzma/api/lzma/block.h | 2 +-
5528
 .gitignore | 2 ++
3858
 1 file changed, 1 insertion(+), 1 deletion(-)
5529
 1 file changed, 2 insertions(+)
3859
5530
3860
commit ad96a871a1470eb76d6233d3890ce9338047b7a3
5531
commit 00e3613f1212eaa84e721585fdb4de6967cf2476
3861
Author: Lasse Collin <lasse.collin@tukaani.org>
5532
Author: Lasse Collin <lasse.collin@tukaani.org>
3862
Date:   2014-01-12 19:38:43 +0200
5533
Date:   2022-06-14 21:29:21 +0300
3863
5534
3864
    Windows: Add config.h for building liblzma with MSVC 2013.
5535
    Tests: Use good-1-empty-bcj-lzma2.xz in test_bcj_exact_size.
3865
    
5536
    
3866
    This is for building liblzma. Building xz tool too requires
5537
    It's much nicer this way so that the test data isn't a hardcoded
3867
    a little more work. Maybe it will be supported, but for most
5538
    table inside the C file.
3868
    MSVC users it's enough to be able to build liblzma.
3869
    
3870
    C99 support in MSVC 2013 is almost usable which is a big
3871
    improvement over earlier versions. It's "almost" because
3872
    there's a dumb bug that breaks mixed declarations after
3873
    an "if" statements unless the "if" statement uses braces:
3874
    
3875
    https://connect.microsoft.com/VisualStudio/feedback/details/808650/visual-studio-2013-c99-compiler-bug
3876
    https://connect.microsoft.com/VisualStudio/feedback/details/808472/c99-support-of-mixed-declarations-and-statements-fails-with-certain-types-and-constructs
3877
    
3878
    Hopefully it will get fixed. Then liblzma should be
3879
    compilable with MSVC 2013 without patching.
3880
5539
3881
 windows/config.h | 139 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
5540
 tests/test_bcj_exact_size.c | 19 +++++++------------
3882
 1 file changed, 139 insertions(+)
5541
 1 file changed, 7 insertions(+), 12 deletions(-)
3883
5542
3884
commit 3d5c090872fab4212b57c290e8ed4d02c78c1737
5543
commit 86bab755be252bfd3e0a9aee8e7b83a9bbb23ed0
3885
Author: Lasse Collin <lasse.collin@tukaani.org>
5544
Author: Lasse Collin <lasse.collin@tukaani.org>
3886
Date:   2014-01-12 17:41:14 +0200
5545
Date:   2022-06-14 21:26:13 +0300
3887
5546
3888
    xz: Fix a comment.
5547
    Tests: Add file reading helpers to tuktest.h.
3889
5548
3890
 src/xz/coder.c | 4 ++--
5549
 tests/tuktest.h | 183 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
3891
 1 file changed, 2 insertions(+), 2 deletions(-)
5550
 1 file changed, 176 insertions(+), 7 deletions(-)
3892
5551
3893
commit 69fd4e1c932c7975476a0143c86e45d81b60d3f9
5552
commit 83d2337b72dbf391c6f3b41889eea99e51679105
3894
Author: Lasse Collin <lasse.collin@tukaani.org>
5553
Author: Lasse Collin <lasse.collin@tukaani.org>
3895
Date:   2014-01-12 17:04:33 +0200
5554
Date:   2022-06-14 18:21:57 +0300
3896
5555
3897
    Windows: Add MSVC defines for inline and restrict keywords.
5556
    Tests: tuktest.h: Move a printf from a macro to a helper function.
3898
5557
3899
 src/common/sysdefs.h | 10 ++++++++++
5558
 tests/tuktest.h | 26 ++++++++++++++++++--------
3900
 1 file changed, 10 insertions(+)
5559
 1 file changed, 18 insertions(+), 8 deletions(-)
3901
5560
3902
commit a19d9e8575ee6647cd9154cf1f20203f1330485f
5561
commit f9e8176ea7d520797a2db2d49a5a632c285674a8
3903
Author: Lasse Collin <lasse.collin@tukaani.org>
5562
Author: Lasse Collin <lasse.collin@tukaani.org>
3904
Date:   2014-01-12 16:44:52 +0200
5563
Date:   2022-06-14 17:20:49 +0300
3905
5564
3906
    liblzma: Avoid C99 compound literal arrays.
5565
    Tests: Add test file good-1-empty-bcj-lzma2.xz.
3907
    
5566
    
3908
    MSVC 2013 doesn't like them. Maybe they aren't so good
5567
    This is from test_bcj_exact_size.c.
3909
    for readability either since many aren't used to them.
5568
    It's good to have it as a standalone file.
3910
5569
3911
 src/liblzma/lzma/lzma_encoder_presets.c | 8 +++++---
5570
 tests/files/README                    |   5 +++++
3912
 1 file changed, 5 insertions(+), 3 deletions(-)
5571
 tests/files/good-1-empty-bcj-lzma2.xz | Bin 0 -> 52 bytes
5572
 2 files changed, 5 insertions(+)
3913
5573
3914
commit e28528f1c867b2ed4ac91195ad08efb9bb8a6263
5574
commit aa75c5563a760aea3aa23d997d519e702e82726b
3915
Author: Lasse Collin <lasse.collin@tukaani.org>
5575
Author: Jia Tan <jiat0218@gmail.com>
3916
Date:   2014-01-12 12:50:30 +0200
5576
Date:   2022-06-10 21:35:18 +0800
3917
5577
3918
    liblzma: Remove a useless C99ism from sha256.c.
5578
    Tests: Created tests for hardware functions.
3919
    
5579
    
3920
    Unsurprisingly it makes no difference in compiled output.
5580
    Created tests for all API functions exported in
5581
    src/liblzma/api/lzma/hardware.h. The tests are fairly trivial
5582
    but are helpful because they will inform users if their machines
5583
    cannot support these functions. They also improve the code
5584
    coverage metrics.
3921
5585
3922
 src/liblzma/check/sha256.c | 2 +-
5586
 .gitignore            |  1 +
3923
 1 file changed, 1 insertion(+), 1 deletion(-)
5587
 tests/Makefile.am     |  2 ++
5588
 tests/test_hardware.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
5589
 3 files changed, 48 insertions(+)
3924
5590
3925
commit 5ad1effc45adfb7dabc9a98e79736077e6b7e2d5
5591
commit 5c8ffdca20813939818843476fb212dfae8838a3
3926
Author: Lasse Collin <lasse.collin@tukaani.org>
5592
Author: Lasse Collin <lasse.collin@tukaani.org>
3927
Date:   2014-01-12 12:17:08 +0200
5593
Date:   2022-06-02 21:01:45 +0300
3928
5594
3929
    xz: Fix use of wrong variable.
5595
    Tests: Convert test_check to tuktest.
3930
    
5596
    
3931
    Since the only call to suffix_set() uses optarg
5597
    Thanks to Jia Tan for help with all the tests.
3932
    as the argument, fixing this bug doesn't change
3933
    the behavior of the program.
3934
5598
3935
 src/xz/suffix.c | 2 +-
5599
 tests/test_check.c | 67 +++++++++++++++++++++++++++---------------------------
3936
 1 file changed, 1 insertion(+), 1 deletion(-)
5600
 1 file changed, 33 insertions(+), 34 deletions(-)
3937
5601
3938
commit 3e62c68d75b5a3fdd46dbb34bb335d73289860d5
5602
commit faf5ff8899d539b4dcd2a7e5280cb820a4746c86
3939
Author: Lasse Collin <lasse.collin@tukaani.org>
5603
Author: Lasse Collin <lasse.collin@tukaani.org>
3940
Date:   2014-01-12 12:11:36 +0200
5604
Date:   2022-06-02 20:31:03 +0300
3941
5605
3942
    Fix typos in comments.
5606
    Tests: Convert test_block_header to tuktest.
3943
5607
3944
 src/common/mythread.h          | 2 +-
5608
 tests/test_block_header.c | 89 +++++++++++++++++++++++++++--------------------
3945
 src/liblzma/check/crc32_fast.c | 2 +-
5609
 1 file changed, 52 insertions(+), 37 deletions(-)
3946
 2 files changed, 2 insertions(+), 2 deletions(-)
3947
5610
3948
commit e90ea601fb72867ec04adf456cbe4bf9520fd412
5611
commit 754d39fbebee3782258d42f154a223d3c5770ec7
3949
Author: Lasse Collin <lasse.collin@tukaani.org>
5612
Author: Lasse Collin <lasse.collin@tukaani.org>
3950
Date:   2013-11-26 18:20:16 +0200
5613
Date:   2022-06-02 20:28:23 +0300
3951
5614
3952
    Update THANKS.
5615
    Tests: Convert test_bcj_exact_size to tuktest.
5616
    
5617
    The compress() and decompress() functions were merged because
5618
    the later depends on the former so they need to be a single
5619
    test case.
3953
5620
3954
 THANKS | 1 +
5621
 tests/test_bcj_exact_size.c | 75 +++++++++++++++++++++++++--------------------
3955
 1 file changed, 1 insertion(+)
5622
 1 file changed, 41 insertions(+), 34 deletions(-)
3956
5623
3957
commit b22e94d8d15764416354e04729382a7371ae2c30
5624
commit 96da21470f9570cd08286906a050a7c22631775b
3958
Author: Lasse Collin <lasse.collin@tukaani.org>
5625
Author: Lasse Collin <lasse.collin@tukaani.org>
3959
Date:   2013-11-26 18:20:09 +0200
5626
Date:   2022-06-02 20:27:00 +0300
3960
5627
3961
    liblzma: Document the need for block->check for lzma_block_header_decode().
5628
    Tests: Include tuktest.h in tests.h.
3962
    
5629
    
3963
    Thanks to Tomer Chachamu.
5630
    This breaks -Werror because none of the tests so far use
5631
    tuktest.h and thus there are warnings about unused variables
5632
    and functions.
3964
5633
3965
 src/liblzma/api/lzma/block.h | 3 +++
5634
 tests/tests.h | 47 +++++++++++++++++++++++------------------------
3966
 1 file changed, 3 insertions(+)
5635
 1 file changed, 23 insertions(+), 24 deletions(-)
3967
5636
3968
commit d1cd8b1cb824b72421d1ee370e628024d2fcbec4
5637
commit df71ba1c991f60c3269aaadd398247e632714626
3969
Author: Lasse Collin <lasse.collin@tukaani.org>
5638
Author: Lasse Collin <lasse.collin@tukaani.org>
3970
Date:   2013-11-12 16:38:57 +0200
5639
Date:   2022-06-02 20:25:21 +0300
3971
5640
3972
    xz: Update the man page about --block-size and --block-list.
5641
    Tests: Add tuktest.h mini-test-framework.
3973
5642
3974
 src/xz/xz.1 | 24 +++++++++++++++---------
5643
 tests/Makefile.am |   1 +
3975
 1 file changed, 15 insertions(+), 9 deletions(-)
5644
 tests/tuktest.h   | 752 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
5645
 2 files changed, 753 insertions(+)
3976
5646
3977
commit 76be7c612e6bcc38724488ccc3b8bcb1cfec9f0a
5647
commit 4773608554d1b684a05ff9c1d879cf5c42266d33
3978
Author: Lasse Collin <lasse.collin@tukaani.org>
5648
Author: Lasse Collin <lasse.collin@tukaani.org>
3979
Date:   2013-11-12 16:30:53 +0200
5649
Date:   2022-05-23 21:31:36 +0300
3980
5650
3981
    Update THANKS.
5651
    Build: Enable Automake's parallel test harness.
5652
    
5653
    It has been the default for quite some time already and
5654
    the old serial harness isn't discouraged. The downside is
5655
    that with parallel tests one cannot print progress info or
5656
    other diagnostics to the terminal; all output from the tests
5657
    will be in the log files only. But now that the compression
5658
    tests are separated the parallel tests will speed things up.
3982
5659
3983
 THANKS | 1 +
5660
 configure.ac | 2 +-
3984
 1 file changed, 1 insertion(+)
5661
 1 file changed, 1 insertion(+), 1 deletion(-)
3985
5662
3986
commit dd750acbe2259d75444ef0f8da2d4bacc90d7afc
5663
commit 9a6dd6d46f7f256a5573e5d874c1052033ed7b05
3987
Author: Lasse Collin <lasse.collin@tukaani.org>
5664
Author: Lasse Collin <lasse.collin@tukaani.org>
3988
Date:   2013-11-12 16:29:48 +0200
5665
Date:   2022-05-23 21:17:47 +0300
3989
5666
3990
    xz: Make --block-list and --block-size work together in single-threaded.
5667
    Tests: Split test_compress.sh into separate test unit for each file.
3991
    
5668
    
3992
    Previously, --block-list and --block-size only worked together
5669
    test_compress.sh now takes one command line argument:
3993
    in threaded mode. Boundaries are specified by --block-list, but
5670
    a filename to be tested. If it begins with "compress_generated_"
3994
    --block-size specifies the maximum size for a Block. Now this
5671
    the file will be created with create_compress_files.
3995
    works in single-threaded mode too.
3996
    
5672
    
3997
    Thanks to James M Leddy for the original patch.
5673
    This will allow parallel execution of the slow tests.
3998
5674
3999
 src/xz/coder.c | 90 ++++++++++++++++++++++++++++++++++++++++++++++++----------
5675
 tests/Makefile.am                      | 11 +++-
4000
 1 file changed, 75 insertions(+), 15 deletions(-)
5676
 tests/test_compress.sh                 | 91 +++++++++++++++++++---------------
5677
 tests/test_compress_generated_abc      |  3 ++
5678
 tests/test_compress_generated_random   |  3 ++
5679
 tests/test_compress_generated_text     |  3 ++
5680
 tests/test_compress_prepared_bcj_sparc |  3 ++
5681
 tests/test_compress_prepared_bcj_x86   |  3 ++
5682
 7 files changed, 77 insertions(+), 40 deletions(-)
4001
5683
4002
commit ae222fe9805d0161d022d75ba8485dab8bf6d7d5
5684
commit c7758ac9c734707514dd34f254173ebac5eea7f8
4003
Author: Lasse Collin <lasse.collin@tukaani.org>
5685
Author: Lasse Collin <lasse.collin@tukaani.org>
4004
Date:   2013-10-26 13:26:14 +0300
5686
Date:   2022-05-23 20:32:49 +0300
4005
5687
4006
    Bump the version number to 5.1.3alpha.
5688
    Test: Make create_compress_files.c a little more flexible.
5689
    
5690
    If a command line argument is given, then only the test file
5691
    of that type is created. It's quite dumb in sense that unknown
5692
    names don't give an error but it's good enough here.
5693
    
5694
    Also use EXIT_FAILURE instead of 1 as exit status for errors.
4007
5695
4008
 src/liblzma/api/lzma/version.h | 2 +-
5696
 tests/create_compress_files.c | 25 +++++++++++++++----------
4009
 src/liblzma/liblzma.map        | 2 +-
5697
 1 file changed, 15 insertions(+), 10 deletions(-)
4010
 2 files changed, 2 insertions(+), 2 deletions(-)
4011
5698
4012
commit 2193837a6a597cd3bf4e9ddf49421a5697d8e155
5699
commit 4a8e4a7b0ad4b03c0ac6862716c3457452cdaf8c
4013
Author: Lasse Collin <lasse.collin@tukaani.org>
5700
Author: Lasse Collin <lasse.collin@tukaani.org>
4014
Date:   2013-10-26 13:25:02 +0300
5701
Date:   2022-05-23 20:17:42 +0300
4015
5702
4016
    Update NEWS for 5.1.3alpha.
5703
    Tests: Remove unneeded commented lines from test_compress.sh.
4017
5704
4018
 NEWS | 35 +++++++++++++++++++++++++++++++++++
5705
 tests/test_compress.sh | 13 -------------
4019
 1 file changed, 35 insertions(+)
5706
 1 file changed, 13 deletions(-)
4020
5707
4021
commit ed48e75e2763876173aef8902da407a8eb28854b
5708
commit 2ee50d150ee009f36135540b459e6ff328549725
4022
Author: Lasse Collin <lasse.collin@tukaani.org>
5709
Author: Lasse Collin <lasse.collin@tukaani.org>
4023
Date:   2013-10-26 12:47:04 +0300
5710
Date:   2022-05-23 20:16:00 +0300
4024
5711
4025
    Update TODO.
5712
    Tests: Remove progress indicator from test_compress.sh.
5713
    
5714
    It will be useless with Automake's parallel tests.
4026
5715
4027
 TODO | 4 ----
5716
 tests/test_compress.sh | 9 ---------
4028
 1 file changed, 4 deletions(-)
5717
 1 file changed, 9 deletions(-)
4029
5718
4030
commit 841da0352d79a56a44796a4c39163429c9f039a3
5719
commit 2ce4f36f179a81d0c6e182a409f363df759d1ad0
4031
Author: Lasse Collin <lasse.collin@tukaani.org>
5720
Author: Lasse Collin <lasse.collin@tukaani.org>
4032
Date:   2013-10-25 22:41:28 +0300
5721
Date:   2022-05-23 19:37:18 +0300
4033
5722
4034
    xz: Document behavior of --block-list with threads.
5723
    liblzma: Silence a warning.
4035
    
5724
    
4036
    This needs to be updated before 5.2.0.
5725
    The actual initialization is done via mythread_sync and seems
5726
    that GCC doesn't necessarily see that it gets initialized there.
4037
5727
4038
 src/xz/xz.1 | 24 +++++++++++++++++++++---
5728
 src/liblzma/common/stream_decoder_mt.c | 2 +-
4039
 1 file changed, 21 insertions(+), 3 deletions(-)
5729
 1 file changed, 1 insertion(+), 1 deletion(-)
4040
5730
4041
commit 56feb8665b78c1032aabd53c619c62af51defe64
5731
commit 5d8f3764ef43c35910e6d7003c0900a961ef6544
4042
Author: Lasse Collin <lasse.collin@tukaani.org>
5732
Author: Lasse Collin <lasse.collin@tukaani.org>
4043
Date:   2013-10-22 20:03:12 +0300
5733
Date:   2022-04-14 20:53:16 +0300
4044
5734
4045
    xz: Document --flush-timeout=TIMEOUT on the man page.
5735
    xz: Fix build with --disable-threads.
4046
5736
4047
 src/xz/xz.1 | 37 ++++++++++++++++++++++++++++++++++++-
5737
 src/xz/hardware.c | 4 ++++
4048
 1 file changed, 36 insertions(+), 1 deletion(-)
5738
 1 file changed, 4 insertions(+)
4049
5739
4050
commit ba413da1d5bb3324287cf3174922acd921165971
5740
commit 1d592897278b172d8549aa29c3a1f3a4f432a9b9
4051
Author: Lasse Collin <lasse.collin@tukaani.org>
5741
Author: Lasse Collin <lasse.collin@tukaani.org>
4052
Date:   2013-10-22 19:51:55 +0300
5742
Date:   2022-04-14 14:50:17 +0300
4053
5743
4054
    xz: Take advantage of LZMA_FULL_BARRIER with --block-list.
5744
    xz: Change the cap of the default -T0 memlimit for 32-bit xz.
4055
    
5745
    
4056
    Now if --block-list is used in threaded mode, the encoder
5746
    The SIZE_MAX / 3 was 1365 MiB. 1400 MiB gives little more room
4057
    won't need to flush at each Block boundary specified via
5747
    and it looks like a round (artificial) number in --info-memory
4058
    --block-list. This improves performance a lot, making
5748
    once --info-memory is made to display it.
4059
    threading helpful with --block-list.
4060
    
5749
    
4061
    The flush timer was reset after LZMA_FULL_FLUSH but since
5750
    Also, using #if avoids useless code on 64-bit builds.
4062
    LZMA_FULL_BARRIER doesn't flush, resetting the timer is
4063
    no longer done.
4064
5751
4065
 src/xz/coder.c | 32 +++++++++++++++-----------------
5752
 src/xz/hardware.c | 4 +++-
4066
 1 file changed, 15 insertions(+), 17 deletions(-)
5753
 1 file changed, 3 insertions(+), 1 deletion(-)
4067
5754
4068
commit 0cd45fc2bc5537de287a0bc005e2d67467a92148
5755
commit c77fe55ddb7752ed0fec46967c5ec9a72632ea0c
4069
Author: Lasse Collin <lasse.collin@tukaani.org>
5756
Author: Lasse Collin <lasse.collin@tukaani.org>
4070
Date:   2013-10-02 20:05:23 +0300
5757
Date:   2022-04-14 14:20:46 +0300
4071
5758
4072
    liblzma: Support LZMA_FULL_FLUSH and _BARRIER in threaded encoder.
5759
    xz: Add a default soft memory usage limit for --threads=0.
4073
    
5760
    
4074
    Now --block-list=SIZES works with in the threaded mode too,
5761
    This is a soft limit in sense that it only affects the number of
4075
    although the performance is still bad due to the use of
5762
    threads. It never makes xz fail and it never makes xz change
4076
    LZMA_FULL_FLUSH instead of the new LZMA_FULL_BARRIER.
5763
    settings that would affect the compressed output.
5764
    
5765
    The idea is to make -T0 have more reasonable behavior when
5766
    the system has very many cores or when a memory-hungry
5767
    compression options are used. This also helps with 32-bit xz,
5768
    preventing it from running out of address space.
5769
    
5770
    The downside of this commit is that now the number of threads
5771
    might become too low compared to what the user expected. I
5772
    hope this to be an acceptable compromise as the old behavior
5773
    has been a source of well-argued complaints for a long time.
4077
5774
4078
 src/liblzma/common/stream_encoder_mt.c | 55 ++++++++++++++++++++++++----------
5775
 src/xz/coder.c    | 28 ++++++++++++++++++++++++++--
4079
 1 file changed, 39 insertions(+), 16 deletions(-)
5776
 src/xz/hardware.c | 38 +++++++++++++++++++++++++++++---------
5777
 src/xz/hardware.h | 27 +++++++++++++++++++++++++++
5778
 3 files changed, 82 insertions(+), 11 deletions(-)
4080
5779
4081
commit 97bb38712f414fabecca908af2e38a12570293fd
5780
commit 0adc13bfe32c14f3e4c6ce9f2d4fdf4112ab53f4
4082
Author: Lasse Collin <lasse.collin@tukaani.org>
5781
Author: Lasse Collin <lasse.collin@tukaani.org>
4083
Date:   2013-10-02 12:55:11 +0300
5782
Date:   2022-04-14 12:59:09 +0300
4084
5783
4085
    liblzma: Add LZMA_FULL_BARRIER support to single-threaded encoder.
5784
    xz: Make -T0 use multithreaded mode on single-core systems.
4086
    
5785
    
4087
    In the single-threaded encoder LZMA_FULL_BARRIER is simply
5786
    The main problem withi the old behavior is that the compressed
4088
    an alias for LZMA_FULL_FLUSH.
5787
    output is different on single-core systems vs. multicore systems.
5788
    This commit fixes it by making -T0 one thread in multithreaded mode
5789
    on single-core systems.
5790
    
5791
    The downside of this is that it uses more memory. However, if
5792
    --memlimit-compress is used, xz can (thanks to the previous commit)
5793
    drop to the single-threaded mode still.
4089
5794
4090
 src/liblzma/api/lzma/base.h         | 37 ++++++++++++++++++++++++++++++-------
5795
 src/xz/coder.c    | 18 +++++++++---------
4091
 src/liblzma/common/common.c         | 17 +++++++++++++++--
5796
 src/xz/hardware.c | 14 ++++++++++++++
4092
 src/liblzma/common/common.h         |  7 ++++++-
5797
 src/xz/hardware.h |  4 ++++
4093
 src/liblzma/common/stream_encoder.c |  4 +++-
5798
 3 files changed, 27 insertions(+), 9 deletions(-)
4094
 4 files changed, 54 insertions(+), 11 deletions(-)
4095
5799
4096
commit fef0c6b410c08e581c9178700a4e7599f0895ff9
5800
commit 898faa97287a756231c663a3ed5165672b417207
4097
Author: Lasse Collin <lasse.collin@tukaani.org>
5801
Author: Lasse Collin <lasse.collin@tukaani.org>
4098
Date:   2013-09-17 11:57:51 +0300
5802
Date:   2022-04-14 12:38:00 +0300
4099
5803
4100
    liblzma: Add block_buffer_encoder.h into Makefile.inc.
5804
    xz: Changes to --memlimit-compress and --no-adjust.
4101
    
5805
    
4102
    This should have been in b465da5988dd59ad98fda10c2e4ea13d0b9c73bc.
5806
    In single-threaded mode, --memlimit-compress can make xz scale down
5807
    the LZMA2 dictionary size to meet the memory usage limit. This
5808
    obviously affects the compressed output. However, if xz was in
5809
    threaded mode, --memlimit-compress could make xz reduce the number
5810
    of threads but it wouldn't make xz switch from multithreaded mode
5811
    to single-threaded mode or scale down the LZMA2 dictionary size.
5812
    This seemed illogical and there was even a "FIXME?" about it.
5813
    
5814
    Now --memlimit-compress can make xz switch to single-threaded
5815
    mode if one thread in multithreaded mode uses too much memory.
5816
    If memory usage is still too high, then the LZMA2 dictionary
5817
    size can be scaled down too.
5818
    
5819
    The option --no-adjust was also changed so that it no longer
5820
    prevents xz from scaling down the number of threads as that
5821
    doesn't affect compressed output (only performance). After
5822
    this commit --no-adjust only prevents adjustments that affect
5823
    compressed output, that is, with --no-adjust xz won't switch
5824
    from multithreaded mode to single-threaded mode and won't
5825
    scale down the LZMA2 dictionary size.
5826
    
5827
    The man page wasn't updated yet.
4103
5828
4104
 src/liblzma/common/Makefile.inc | 1 +
5829
 src/xz/coder.c | 63 +++++++++++++++++++++++++++++++++++++++-------------------
4105
 1 file changed, 1 insertion(+)
5830
 1 file changed, 43 insertions(+), 20 deletions(-)
4106
5831
4107
commit 8083e03291b6d21c0f538163e187b4e8cd5594e4
5832
commit cad299008cf73ec566f0662a9cf2b94f86a99659
4108
Author: Lasse Collin <lasse.collin@tukaani.org>
5833
Author: Lasse Collin <lasse.collin@tukaani.org>
4109
Date:   2013-09-17 11:55:38 +0300
5834
Date:   2022-04-11 22:20:49 +0300
4110
5835
4111
    xz: Add a missing test for TUKLIB_DOSLIKE.
5836
    xz: Add --memlimit-mt-decompress along with a default limit value.
4112
4113
 src/xz/file_io.c | 2 ++
4114
 1 file changed, 2 insertions(+)
4115
4116
commit 6b44b4a775fe29ecc7bcb7996e086e3bc09e5fd0
4117
Author: Lasse Collin <lasse.collin@tukaani.org>
4118
Date:   2013-09-17 11:52:28 +0300
4119
4120
    Add native threading support on Windows.
4121
    
5837
    
4122
    Now liblzma only uses "mythread" functions and types
5838
    --memlimit-mt-decompress allows specifying the limit for
4123
    which are defined in mythread.h matching the desired
5839
    multithreaded decompression. This matches memlimit_threading in
4124
    threading method.
5840
    liblzma. This limit can only affect the number of threads being
5841
    used; it will never prevent xz from decompressing a file. The
5842
    old --memlimit-decompress option is still used at the same time.
4125
    
5843
    
4126
    Before Windows Vista, there is no direct equivalent to
5844
    If the value of --memlimit-decompress (the default value or
4127
    pthread condition variables. Since this package doesn't
5845
    one specified by the user) is less than the value of
4128
    use pthread_cond_broadcast(), pre-Vista threading can
5846
    --memlimit-mt-decompress , then --memlimit-mt-decompress is
4129
    still be kept quite simple. The pre-Vista code doesn't
5847
    reduced to match --memlimit-decompress.
4130
    use anything that wasn't already available in Windows 95,
5848
    
4131
    so the binaries should run even on Windows 95 if someone
5849
    Man page wasn't updated yet.
4132
    happens to care.
4133
5850
4134
 INSTALL                                |  41 ++-
5851
 src/xz/args.c     | 24 +++++++++++++++-------
4135
 configure.ac                           | 118 ++++++--
5852
 src/xz/coder.c    | 34 ++++++++++---------------------
4136
 src/common/mythread.h                  | 513 ++++++++++++++++++++++++++-------
5853
 src/xz/hardware.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
4137
 src/liblzma/common/stream_encoder_mt.c |  83 +++---
5854
 src/xz/hardware.h | 17 ++++++++++------
4138
 src/xz/coder.c                         |   8 +-
5855
 src/xz/message.c  |  4 +++-
4139
 windows/README-Windows.txt             |   2 +-
5856
 5 files changed, 97 insertions(+), 42 deletions(-)
4140
 windows/build.bash                     |  23 +-
4141
 7 files changed, 573 insertions(+), 215 deletions(-)
4142
5857
4143
commit ae0ab74a88d5b9b15845f1d9a24ade4349a54f9f
5858
commit fe87b4cd5364f5bbb6a75a0299f1500c852d7c9a
4144
Author: Lasse Collin <lasse.collin@tukaani.org>
5859
Author: Lasse Collin <lasse.collin@tukaani.org>
4145
Date:   2013-09-11 14:40:35 +0300
5860
Date:   2022-04-06 23:11:59 +0300
4146
5861
4147
    Build: Remove a comment about Automake 1.10 from configure.ac.
5862
    liblzma: Threaded decoder: Improve setting of pending_error.
4148
    
5863
    
4149
    The previous commit supports silent rules and that requires
5864
    It doesn't need to be done conditionally. The comments try
4150
    Automake 1.11.
5865
    to explain it.
4151
5866
4152
 configure.ac | 2 --
5867
 src/liblzma/common/stream_decoder_mt.c | 51 +++++++++++++++++++++++-----------
4153
 1 file changed, 2 deletions(-)
5868
 1 file changed, 35 insertions(+), 16 deletions(-)
4154
5869
4155
commit 72975df6c8c59aaf849138ab3606e8fb6970596a
5870
commit 90621da7f6e1bfd6d91d60415eae04b2bca274c2
4156
Author: Lasse Collin <lasse.collin@tukaani.org>
5871
Author: Lasse Collin <lasse.collin@tukaani.org>
4157
Date:   2013-09-09 20:37:03 +0300
5872
Date:   2022-04-06 12:39:49 +0300
4158
5873
4159
    Build: Create liblzma.pc in a src/liblzma/Makefile.am.
5874
    liblzma: Add a new flag LZMA_FAIL_FAST for threaded decoder.
4160
    
5875
    
4161
    Previously it was done in configure, but doing that goes
5876
    In most cases if the input file is corrupt the application won't
4162
    against the Autoconf manual. Autoconf requires that it is
5877
    care about the uncompressed content at all. With this new flag
4163
    possible to override e.g. prefix after running configure
5878
    the threaded decoder will return an error as soon as any thread
4164
    and that doesn't work correctly if liblzma.pc is created
5879
    has detected an error; it won't wait to copy out the data before
4165
    by configure.
5880
    the location of the error.
4166
    
5881
    
4167
    A potential downside of this change is that now e.g.
5882
    I don't plan to use this in xz to keep the behavior consistent
4168
    libdir in liblzma.pc is a standalone string instead of
5883
    between single-threaded and multi-threaded modes.
4169
    being defined via ${prefix}, so if one overrides prefix
4170
    when running pkg-config the libdir won't get the new value.
4171
    I don't know if this matters in practice.
4172
    
4173
    Thanks to Vincent Torri.
4174
5884
4175
 configure.ac            |  1 -
5885
 src/liblzma/api/lzma/container.h       | 25 ++++++++++++++++-
4176
 src/liblzma/Makefile.am | 20 ++++++++++++++++++++
5886
 src/liblzma/common/common.h            |  7 +++--
4177
 2 files changed, 20 insertions(+), 1 deletion(-)
5887
 src/liblzma/common/stream_decoder_mt.c | 50 +++++++++++++++++++---------------
5888
 3 files changed, 56 insertions(+), 26 deletions(-)
4178
5889
4179
commit 1c2b6e7e8382ed390f53e140f160488bb2205ecc
5890
commit 64b6d496dc815a176d8307f418f6834a26783484
4180
Author: Lasse Collin <lasse.collin@tukaani.org>
5891
Author: Lasse Collin <lasse.collin@tukaani.org>
4181
Date:   2013-08-04 15:24:09 +0300
5892
Date:   2022-04-05 12:24:57 +0300
4182
5893
4183
    Fix the previous commit which broke the build.
5894
    liblzma: Threaded decoder: Always wait for output if LZMA_FINISH is used.
4184
    
5895
    
4185
    Apparently I didn't even compile-test the previous commit.
5896
    This makes the behavior consistent with the single-threaded
5897
    decoder when handling truncated .xz files.
4186
    
5898
    
4187
    Thanks to Christian Hesse.
5899
    Thanks to Jia Tan for finding this issue.
4188
5900
4189
 src/common/tuklib_cpucores.c | 2 +-
5901
 src/liblzma/common/stream_decoder_mt.c | 26 ++++++++++++++++++++++++--
4190
 1 file changed, 1 insertion(+), 1 deletion(-)
5902
 1 file changed, 24 insertions(+), 2 deletions(-)
4191
5903
4192
commit 124eb69c7857f618b4807588c51bc9ba21bf8691
5904
commit e671bc8828b9c0c5406c3a22c541301d0eb54518
4193
Author: Lasse Collin <lasse.collin@tukaani.org>
5905
Author: Lasse Collin <lasse.collin@tukaani.org>
4194
Date:   2013-08-03 13:52:58 +0300
5906
Date:   2022-04-02 21:49:59 +0300
4195
5907
4196
    Windows: Add Windows support to tuklib_cpucores().
5908
    liblzma: Threaded decoder: Support zpipe.c-style decoding loop.
4197
    
5909
    
4198
    It is used for Cygwin too. I'm not sure if that is
5910
    This makes it possible to call lzma_code() in a loop that only
4199
    a good or bad idea.
5911
    reads new input when lzma_code() didn't fill the output buffer
5912
    completely. That isn't the calling style suggested by the
5913
    liblzma example program 02_decompress.c so perhaps the usefulness
5914
    of this feature is limited.
4200
    
5915
    
4201
    Thanks to Vincent Torri.
5916
    Also, it is possible to write such a loop so that it works
5917
    with the single-threaded decoder but not with the threaded
5918
    decoder even after this commit, or so that it works only if
5919
    lzma_mt.timeout = 0.
5920
    
5921
    The zlib tutorial <https://zlib.net/zlib_how.html> is a well-known
5922
    example of a loop where more input is read only when output isn't
5923
    full. Porting this as is to liblzma would work with the
5924
    single-threaded decoder (if LZMA_CONCATENATED isn't used) but it
5925
    wouldn't work with threaded decoder even after this commit because
5926
    the loop assumes that no more output is possible when it cannot
5927
    read more input ("if (strm.avail_in == 0) break;"). This cannot
5928
    be fixed at liblzma side; the loop has to be modified at least
5929
    a little.
5930
    
5931
    I'm adding this in any case because the actual code is simple
5932
    and short and should have no harmful side-effects in other
5933
    situations.
4202
5934
4203
 m4/tuklib_cpucores.m4        | 19 +++++++++++++++++--
5935
 src/liblzma/common/stream_decoder_mt.c | 77 +++++++++++++++++++++++++++++-----
4204
 src/common/tuklib_cpucores.c | 13 ++++++++++++-
5936
 1 file changed, 67 insertions(+), 10 deletions(-)
4205
 2 files changed, 29 insertions(+), 3 deletions(-)
4206
5937
4207
commit eada8a875ce3fd521cb42e4ace2624d3d49c5f35
5938
commit 2ba8173e27be4793edb46497e499ac2ae753a316
4208
Author: Anders F Bjorklund <afb@users.sourceforge.net>
5939
Author: Lasse Collin <lasse.collin@tukaani.org>
4209
Date:   2013-08-02 15:59:46 +0200
5940
Date:   2022-03-31 00:05:07 +0300
4210
5941
4211
    macosx: separate liblzma package
5942
    Update THANKS.
4212
5943
4213
 macosx/build.sh | 23 +++++++++++++++--------
5944
 THANKS | 1 +
4214
 1 file changed, 15 insertions(+), 8 deletions(-)
5945
 1 file changed, 1 insertion(+)
4215
5946
4216
commit be0100d01ca6a75899d051bee00acf17e6dc0c15
5947
commit 69d1b3fc29677af8ade8dc15dba83f0589cb63d6
4217
Author: Anders F Bjorklund <afb@users.sourceforge.net>
5948
Author: Lasse Collin <lasse.collin@tukaani.org>
4218
Date:   2013-08-02 15:58:44 +0200
5949
Date:   2022-03-29 19:19:12 +0300
4219
5950
4220
    macosx: set minimum to leopard
5951
    xzgrep: Fix escaping of malicious filenames (ZDI-CAN-16587).
5952
    
5953
    Malicious filenames can make xzgrep to write to arbitrary files
5954
    or (with a GNU sed extension) lead to arbitrary code execution.
5955
    
5956
    xzgrep from XZ Utils versions up to and including 5.2.5 are
5957
    affected. 5.3.1alpha and 5.3.2alpha are affected as well.
5958
    This patch works for all of them.
5959
    
5960
    This bug was inherited from gzip's zgrep. gzip 1.12 includes
5961
    a fix for zgrep.
5962
    
5963
    The issue with the old sed script is that with multiple newlines,
5964
    the N-command will read the second line of input, then the
5965
    s-commands will be skipped because it's not the end of the
5966
    file yet, then a new sed cycle starts and the pattern space
5967
    is printed and emptied. So only the last line or two get escaped.
5968
    
5969
    One way to fix this would be to read all lines into the pattern
5970
    space first. However, the included fix is even simpler: All lines
5971
    except the last line get a backslash appended at the end. To ensure
5972
    that shell command substitution doesn't eat a possible trailing
5973
    newline, a colon is appended to the filename before escaping.
5974
    The colon is later used to separate the filename from the grep
5975
    output so it is fine to add it here instead of a few lines later.
5976
    
5977
    The old code also wasn't POSIX compliant as it used \n in the
5978
    replacement section of the s-command. Using \<newline> is the
5979
    POSIX compatible method.
5980
    
5981
    LC_ALL=C was added to the two critical sed commands. POSIX sed
5982
    manual recommends it when using sed to manipulate pathnames
5983
    because in other locales invalid multibyte sequences might
5984
    cause issues with some sed implementations. In case of GNU sed,
5985
    these particular sed scripts wouldn't have such problems but some
5986
    other scripts could have, see:
5987
    
5988
        info '(sed)Locale Considerations'
5989
    
5990
    This vulnerability was discovered by:
5991
    cleemy desu wayo working with Trend Micro Zero Day Initiative
5992
    
5993
    Thanks to Jim Meyering and Paul Eggert discussing the different
5994
    ways to fix this and for coordinating the patch release schedule
5995
    with gzip.
4221
5996
4222
 macosx/build.sh | 13 ++++++++-----
5997
 src/scripts/xzgrep.in | 20 ++++++++++++--------
4223
 1 file changed, 8 insertions(+), 5 deletions(-)
5998
 1 file changed, 12 insertions(+), 8 deletions(-)
4224
5999
4225
commit 416729e2d743f4b2fe9fd438eedeb98adce033c3
6000
commit bd93b776c1bd15e90661033c918cdeb354dbcc38
4226
Author: Anders F Bjorklund <afb@users.sourceforge.net>
6001
Author: Lasse Collin <lasse.collin@tukaani.org>
4227
Date:   2011-08-07 13:13:30 +0200
6002
Date:   2022-03-26 01:02:44 +0200
4228
6003
4229
    move configurables into variables
6004
    liblzma: Fix a deadlock in threaded decoder.
6005
    
6006
    If a worker thread has consumed all input so far and it's
6007
    waiting on thr->cond and then the main thread enables
6008
    partial update for that thread, the code used to deadlock.
6009
    This commit allows one dummy decoding pass to occur in this
6010
    situation which then also does the partial update.
6011
    
6012
    As part of the fix, this moves thr->progress_* updates to
6013
    avoid the second thr->mutex locking.
6014
    
6015
    Thanks to Jia Tan for finding, debugging, and reporting the bug.
4230
6016
4231
 macosx/build.sh | 25 ++++++++++++++++++-------
6017
 src/liblzma/common/stream_decoder_mt.c | 71 +++++++++++++++++++++++++---------
4232
 1 file changed, 18 insertions(+), 7 deletions(-)
6018
 1 file changed, 52 insertions(+), 19 deletions(-)
4233
6019
4234
commit 16581080e5f29f9a4e49efece21c5bf572323acc
6020
commit e0394e94230f208682ac1e1f4c41f22f9ad79916
4235
Author: Lasse Collin <lasse.collin@tukaani.org>
6021
Author: Lasse Collin <lasse.collin@tukaani.org>
4236
Date:   2013-07-15 14:08:41 +0300
6022
Date:   2022-03-23 16:34:00 +0200
4237
6023
4238
    Update THANKS.
6024
    Update THANKS.
4239
6025
4240
 THANKS | 1 +
6026
 THANKS | 1 +
4241
 1 file changed, 1 insertion(+)
6027
 1 file changed, 1 insertion(+)
4242
6028
4243
commit 3e2b198ba37b624efd9c7caee2a435dc986b46c6
6029
commit 487c77d48760564b1949c5067630b675b87be4de
4244
Author: Lasse Collin <lasse.collin@tukaani.org>
6030
Author: Lasse Collin <lasse.collin@tukaani.org>
4245
Date:   2013-07-15 14:08:02 +0300
6031
Date:   2022-03-23 16:28:55 +0200
4246
6032
4247
    Build: Fix the detection of missing CRC32.
6033
    liblzma: Threaded decoder: Don't stop threads on LZMA_TIMED_OUT.
4248
    
6034
    
4249
    Thanks to Vincent Torri.
6035
    LZMA_TIMED_OUT is not an error and thus stopping threads on
6036
    LZMA_TIMED_OUT breaks the decoder badly.
6037
    
6038
    Thanks to Jia Tan for finding the bug and for the patch.
4250
6039
4251
 configure.ac | 2 +-
6040
 src/liblzma/common/stream_decoder_mt.c | 2 +-
4252
 1 file changed, 1 insertion(+), 1 deletion(-)
6041
 1 file changed, 1 insertion(+), 1 deletion(-)
4253
6042
4254
commit dee6ad3d5915422bc30a6821efeacaeb8ca8ef00
6043
commit 6c6da57ae2aa962aabde6892442227063d87e88c
4255
Author: Lasse Collin <lasse.collin@tukaani.org>
6044
Author: Lasse Collin <lasse.collin@tukaani.org>
4256
Date:   2013-07-04 14:18:46 +0300
6045
Date:   2022-03-07 00:36:16 +0200
4257
6046
4258
    xz: Add preliminary support for --flush-timeout=TIMEOUT.
6047
    xz: Add initial support for threaded decompression.
4259
    
6048
    
4260
    When --flush-timeout=TIMEOUT is used, xz will use
6049
    If threading support is enabled at build time, this will
4261
    LZMA_SYNC_FLUSH if read() would block and at least
6050
    use lzma_stream_decoder_mt() even for single-threaded mode.
4262
    TIMEOUT milliseconds has elapsed since the previous flush.
6051
    With memlimit_threading=0 the behavior should be identical.
4263
    
6052
    
4264
    This can be useful in realtime-like use cases where the
6053
    This needs some work like adding --memlimit-threading=LIMIT.
4265
    data is simultanously decompressed by another process
4266
    (possibly on a different computer). If new uncompressed
4267
    input data is produced slowly, without this option xz could
4268
    buffer the data for a long time until it would become
4269
    decompressible from the output.
4270
    
6054
    
4271
    If TIMEOUT is 0, the feature is disabled. This is the default.
6055
    The original patch from Sebastian Andrzej Siewior included
6056
    a method to get currently available RAM on Linux. It might
6057
    be one way to go but as it is Linux-only, the available-RAM
6058
    approach needs work for portability or using a fallback method
6059
    on other OSes.
4272
    
6060
    
4273
    This commit affects the compression side. Using xz for
6061
    The man page wasn't updated yet.
4274
    the decompression side for the above purpose doesn't work
6062
4275
    yet so well because there is quite a bit of input and
6063
 src/xz/coder.c | 36 +++++++++++++++++++++++++++++++++++-
4276
    output buffering when decompressing.
6064
 1 file changed, 35 insertions(+), 1 deletion(-)
6065
6066
commit 4cce3e27f529af33e0e7749a8cbcec59954946b5
6067
Author: Lasse Collin <lasse.collin@tukaani.org>
6068
Date:   2022-03-06 23:36:20 +0200
6069
6070
    liblzma: Add threaded .xz decompressor.
4277
    
6071
    
4278
    The --long-help or man page were not updated yet.
6072
    I realize that this is about a decade late.
4279
    The details of this feature may change.
6073
    
6074
    Big thanks to Sebastian Andrzej Siewior for the original patch.
6075
    I made a bunch of smaller changes but after a while quite a few
6076
    things got rewritten. So any bugs in the commit were created by me.
4280
6077
4281
 src/xz/args.c    |  7 +++++++
6078
 src/liblzma/api/lzma/container.h       |   90 +-
4282
 src/xz/coder.c   | 46 +++++++++++++++++++++++++++++++++++-----------
6079
 src/liblzma/common/Makefile.inc        |    5 +
4283
 src/xz/file_io.c | 46 ++++++++++++++++++++++++++++++++++++----------
6080
 src/liblzma/common/common.h            |    4 +
4284
 3 files changed, 78 insertions(+), 21 deletions(-)
6081
 src/liblzma/common/stream_decoder_mt.c | 1814 ++++++++++++++++++++++++++++++++
6082
 src/liblzma/liblzma.map                |    1 +
6083
 5 files changed, 1907 insertions(+), 7 deletions(-)
4285
6084
4286
commit fa381acaf9a29a8114e1c0a97de99bab9adb014e
6085
commit 717631b9788dc9c100ee0c87d3c14a2782638ff4
4287
Author: Lasse Collin <lasse.collin@tukaani.org>
6086
Author: Lasse Collin <lasse.collin@tukaani.org>
4288
Date:   2013-07-04 13:41:03 +0300
6087
Date:   2022-03-06 16:54:23 +0200
4289
6088
4290
    xz: Don't set src_eof=true after an I/O error because it's useless.
6089
    liblzma: Fix docs: lzma_block_decoder() cannot return LZMA_UNSUPPORTED_CHECK.
6090
    
6091
    If Check is unsupported, it will be silently ignored.
6092
    It's the caller's job to handle it.
4291
6093
4292
 src/xz/file_io.c | 3 ---
6094
 src/liblzma/api/lzma/block.h | 3 ---
4293
 1 file changed, 3 deletions(-)
6095
 1 file changed, 3 deletions(-)
4294
6096
4295
commit ea00545beace5b950f709ec21e46878e0f448678
6097
commit 1a4bb97a00936535e30ac61945aeee38882b5d1a
4296
Author: Lasse Collin <lasse.collin@tukaani.org>
6098
Author: Lasse Collin <lasse.collin@tukaani.org>
4297
Date:   2013-07-04 13:25:11 +0300
6099
Date:   2022-03-06 16:41:19 +0200
4298
6100
4299
    xz: Fix the test when to read more input.
6101
    liblzma: Add new output queue (lzma_outq) features.
4300
    
6102
    
4301
    Testing for end of file was no longer correct after full flushing
6103
    Add lzma_outq_clear_cache2() which may leave one buffer allocated
4302
    became possible with --block-size=SIZE and --block-list=SIZES.
6104
    in the cache.
4303
    There was no bug in practice though because xz just made a few
6105
    
4304
    unneeded zero-byte reads.
6106
    Add lzma_outq_outbuf_memusage() to get the memory needed for
6107
    a single lzma_outbuf. This is now used internally in outqueue.c too.
6108
    
6109
    Track both the total amount of memory allocated and the amount of
6110
    memory that is in active use (not in cache).
6111
    
6112
    In lzma_outbuf, allow storing the current input position that
6113
    matches the current output position. This way the main thread
6114
    can notice when no more output is possible without first providing
6115
    more input.
6116
    
6117
    Allow specifying return code for lzma_outq_read() in a finished
6118
    lzma_outbuf.
4305
6119
4306
 src/xz/coder.c | 6 +++---
6120
 src/liblzma/common/outqueue.c | 43 +++++++++++++++++++++++++++++++++++-------
4307
 1 file changed, 3 insertions(+), 3 deletions(-)
6121
 src/liblzma/common/outqueue.h | 44 ++++++++++++++++++++++++++++++++++++++++++-
6122
 2 files changed, 79 insertions(+), 8 deletions(-)
4308
6123
4309
commit 736903c64bef394c06685d79908e397bcb08b88f
6124
commit ddbc6f58c2de388eed24cd7ea91b523d397da5f4
4310
Author: Lasse Collin <lasse.collin@tukaani.org>
6125
Author: Lasse Collin <lasse.collin@tukaani.org>
4311
Date:   2013-07-04 12:51:57 +0300
6126
Date:   2022-03-06 15:18:58 +0200
4312
6127
4313
    xz: Move some of the timing code into mytime.[hc].
6128
    liblzma: Index hash: Change return value type of hash_append() to void.
6129
6130
 src/liblzma/common/index_hash.c | 11 +++++------
6131
 1 file changed, 5 insertions(+), 6 deletions(-)
6132
6133
commit 20e7a33e2d59c6a814447d3991f21e2702174b20
6134
Author: Lasse Collin <lasse.collin@tukaani.org>
6135
Date:   2022-02-22 03:42:57 +0200
6136
6137
    liblzma: Minor addition to lzma_vli_size() API doc.
4314
    
6138
    
4315
    This switches units from microseconds to milliseconds.
6139
    Thanks to Jia Tan.
6140
6141
 src/liblzma/api/lzma/vli.h | 2 ++
6142
 1 file changed, 2 insertions(+)
6143
6144
commit 4f78f5fcf63592f2d77e921cfe0d5de300867374
6145
Author: Lasse Collin <lasse.collin@tukaani.org>
6146
Date:   2022-02-22 02:04:18 +0200
6147
6148
    liblzma: Check the return value of lzma_index_append() in threaded encoder.
4316
    
6149
    
4317
    New clock_gettime(CLOCK_MONOTONIC) will be used if available.
6150
    If lzma_index_append() failed (most likely memory allocation failure)
4318
    There is still a fallback to gettimeofday().
6151
    it could have gone unnoticed and the resulting .xz file would have
6152
    an incorrect Index. Decompressing such a file would produce the
6153
    correct uncompressed data but then an error would occur when
6154
    verifying the Index field.
4319
6155
4320
 src/xz/Makefile.am |  2 ++
6156
 src/liblzma/common/stream_encoder_mt.c | 7 +++++--
4321
 src/xz/coder.c     |  5 +++
6157
 1 file changed, 5 insertions(+), 2 deletions(-)
4322
 src/xz/message.c   | 54 +++++++++------------------------
4323
 src/xz/mytime.c    | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
4324
 src/xz/mytime.h    | 47 ++++++++++++++++++++++++++++
4325
 src/xz/private.h   |  1 +
4326
 6 files changed, 158 insertions(+), 40 deletions(-)
4327
6158
4328
commit 24edf8d807e24ffaa1e793114d94cca3b970027d
6159
commit 5313ad66b40aab822ddca3e9905254cb99a4080d
4329
Author: Lasse Collin <lasse.collin@tukaani.org>
6160
Author: Lasse Collin <lasse.collin@tukaani.org>
4330
Date:   2013-07-01 14:35:03 +0300
6161
Date:   2022-02-22 01:37:39 +0200
4331
6162
4332
    Update THANKS.
6163
    Update THANKS.
4333
6164
4334
 THANKS | 1 +
6165
 THANKS | 1 +
4335
 1 file changed, 1 insertion(+)
6166
 1 file changed, 1 insertion(+)
4336
6167
4337
commit c0627b3fceacfa1ed162f5f55235360ea26f569a
6168
commit 865e0a3689a25a7ee8eecae1a34c1775e3aa676e
6169
Author: Ed Maste <emaste@FreeBSD.org>
6170
Date:   2022-02-11 15:25:46 +0000
6171
6172
    liblzma: Use non-executable stack on FreeBSD as on Linux
6173
6174
 src/liblzma/check/crc32_x86.S | 4 ++--
6175
 src/liblzma/check/crc64_x86.S | 4 ++--
6176
 2 files changed, 4 insertions(+), 4 deletions(-)
6177
6178
commit 1c9a5786d206b4abc8e427326651c8174baea753
4338
Author: Lasse Collin <lasse.collin@tukaani.org>
6179
Author: Lasse Collin <lasse.collin@tukaani.org>
4339
Date:   2013-07-01 14:34:11 +0300
6180
Date:   2022-02-20 20:36:27 +0200
4340
6181
4341
    xz: Silence a warning seen with _FORTIFY_SOURCE=2.
6182
    liblzma: Make Block decoder catch certain types of errors better.
4342
    
6183
    
4343
    Thanks to Christian Hesse.
6184
    Now it limits the input and output buffer sizes that are
6185
    passed to a raw decoder. This way there's no need to check
6186
    if the sizes can grow too big or overflow when updating
6187
    Compressed Size and Uncompressed Size counts. This also means
6188
    that a corrupt file cannot cause the raw decoder to process
6189
    useless extra input or output that would exceed the size info
6190
    in Block Header (and thus cause LZMA_DATA_ERROR anyway).
6191
    
6192
    More importantly, now the size information is verified more
6193
    carefully in case raw decoder returns LZMA_OK. This doesn't
6194
    really matter with the current single-threaded .xz decoder
6195
    as the errors would be detected slightly later anyway. But
6196
    this helps avoiding corner cases in the upcoming threaded
6197
    decompressor, and it might help other Block decoder uses
6198
    outside liblzma too.
6199
    
6200
    The test files bad-1-lzma2-{9,10,11}.xz test these conditions.
6201
    With the single-threaded .xz decoder the only difference is
6202
    that LZMA_DATA_ERROR is detected in a difference place now.
4344
6203
4345
 src/xz/file_io.c | 8 +++++++-
6204
 src/liblzma/common/block_decoder.c | 79 ++++++++++++++++++++++++++------------
4346
 1 file changed, 7 insertions(+), 1 deletion(-)
6205
 1 file changed, 54 insertions(+), 25 deletions(-)
4347
6206
4348
commit 1936718bb38ee394bd89836fdd4eabc0beb02443
6207
commit 555de11873eb00c9b94a8be70645db502e5a9dbd
4349
Author: Lasse Collin <lasse.collin@tukaani.org>
6208
Author: Lasse Collin <lasse.collin@tukaani.org>
4350
Date:   2013-06-30 19:40:11 +0300
6209
Date:   2022-02-20 19:38:55 +0200
4351
6210
4352
    Update NEWS for 5.0.5.
6211
    Tests: Add bad-1-lzma2-11.xz.
4353
6212
4354
 NEWS | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
6213
 tests/files/README            |   5 +++++
4355
 1 file changed, 52 insertions(+)
6214
 tests/files/bad-1-lzma2-11.xz | Bin 0 -> 64 bytes
6215
 2 files changed, 5 insertions(+)
4356
6216
4357
commit a37ae8b5eb6093a530198f109c6f7a538c80ecf0
6217
commit f0da507f22e7f4e3edb75b45b74d344244ca03fb
4358
Author: Lasse Collin <lasse.collin@tukaani.org>
6218
Author: Lasse Collin <lasse.collin@tukaani.org>
4359
Date:   2013-06-30 18:02:27 +0300
6219
Date:   2022-02-18 18:51:10 +0200
4360
6220
4361
    Man pages: Use similar syntax for synopsis as in xz.
6221
    Translations: Fix po4a failure with the French man page translations.
4362
    
6222
    
4363
    The man pages of lzmainfo, xzmore, and xzdec had similar
6223
    Thanks to Mario Blättermann for the patch.
4364
    constructs as the man page of xz had before the commit
4365
    eb6ca9854b8eb9fbf72497c1cf608d6b19d2d494. Eric S. Raymond
4366
    didn't mention these man pages in his bug report, but
4367
    it's nice to be consistent.
4368
6224
4369
 src/lzmainfo/lzmainfo.1 |  4 ++--
6225
 po4a/fr_FR.po | 6 ++++--
4370
 src/scripts/xzmore.1    |  6 +++---
6226
 1 file changed, 4 insertions(+), 2 deletions(-)
4371
 src/xzdec/xzdec.1       | 10 +++++-----
4372
 3 files changed, 10 insertions(+), 10 deletions(-)
4373
6227
4374
commit cdba9ddd870ae72fd6219a125662c20ec997f86c
6228
commit f7711d228c3c32395460c82498c60a9f730d0239
4375
Author: Lasse Collin <lasse.collin@tukaani.org>
6229
Author: Lasse Collin <lasse.collin@tukaani.org>
4376
Date:   2013-06-29 15:59:13 +0300
6230
Date:   2022-02-07 01:14:37 +0200
4377
6231
4378
    xz: Use non-blocking I/O for the output file.
6232
    Translations: Add French translation of man pages.
4379
    
6233
    
4380
    Now both reading and writing should be without
6234
    This matches xz-utils 5.2.5-2 in Debian.
4381
    race conditions with signals.
4382
    
6235
    
4383
    They might still be signal handling issues left.
6236
    The translation was done by "bubu", proofread by the debian-l10n-french
4384
    Signals are blocked during many operations to avoid
6237
    mailing list contributors, and submitted to me on the xz-devel mailing
4385
    EINTR but it may cause problems e.g. if writing to
6238
    list by Jean-Pierre Giraud. Thanks to everyone!
4386
    stderr blocks when trying to display an error message.
4387
6239
4388
 src/xz/file_io.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++++--------
6240
 po4a/fr_FR.po  | 3541 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4389
 1 file changed, 49 insertions(+), 8 deletions(-)
6241
 po4a/po4a.conf |    2 +-
6242
 2 files changed, 3542 insertions(+), 1 deletion(-)
4390
6243
4391
commit e61a5c95da3fe31281d959e5e842885a8ba2b5bd
6244
commit 6468f7e41a8e9c611e4ba8d34e2175c5dacdbeb4
4392
Author: Lasse Collin <lasse.collin@tukaani.org>
6245
Author: jiat75 <jiat0218@gmail.com>
4393
Date:   2013-06-28 23:56:17 +0300
6246
Date:   2022-01-28 20:47:55 +0800
4394
6247
4395
    xz: Fix return value type in io_write_buf().
6248
    liblzma: Add NULL checks to LZMA and LZMA2 properties encoders.
4396
    
6249
    
4397
    It didn't affect the behavior of the code since -1
6250
    Previously lzma_lzma_props_encode() and lzma_lzma2_props_encode()
4398
    becomes true anyway.
6251
    assumed that the options pointers must be non-NULL because the
6252
    with these filters the API says it must never be NULL. It is
6253
    good to do these checks anyway.
4399
6254
4400
 src/xz/file_io.c | 2 +-
6255
 src/liblzma/lzma/lzma2_encoder.c | 3 +++
4401
 1 file changed, 1 insertion(+), 1 deletion(-)
6256
 src/liblzma/lzma/lzma_encoder.c  | 3 +++
6257
 2 files changed, 6 insertions(+)
4402
6258
4403
commit 9dc319eabb34a826f4945f91c71620f14a60e9e2
6259
commit 2523c30705f49eabd27b854aa656ae87cc224808
4404
Author: Lasse Collin <lasse.collin@tukaani.org>
6260
Author: Lasse Collin <lasse.collin@tukaani.org>
4405
Date:   2013-06-28 23:48:05 +0300
6261
Date:   2022-02-06 23:19:32 +0200
4406
6262
4407
    xz: Use the self-pipe trick to avoid a race condition with signals.
6263
    liblzma: Fix uint64_t vs. size_t confusion.
4408
    
6264
    
4409
    It is possible that a signal to set user_abort arrives right
6265
    This broke 32-bit builds due to a pointer type mismatch.
4410
    before a blocking system call is made. In this case the call
4411
    may block until another signal arrives, while the wanted
4412
    behavior is to make xz clean up and exit as soon as possible.
4413
    
6266
    
4414
    After this commit, the race condition is avoided with the
6267
    This bug was introduced with the output-size-limited encoding
4415
    input side which already uses non-blocking I/O. The output
6268
    in 625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c.
4416
    side still uses blocking I/O and thus has the race condition.
6269
    
6270
    Thanks to huangqinjin for the bug report.
4417
6271
4418
 src/xz/file_io.c | 56 ++++++++++++++++++++++++++++++++++++++++++++------------
6272
 src/liblzma/rangecoder/range_encoder.h | 11 +++++++----
4419
 src/xz/file_io.h |  8 ++++++++
6273
 1 file changed, 7 insertions(+), 4 deletions(-)
4420
 src/xz/signals.c |  5 +++++
4421
 3 files changed, 57 insertions(+), 12 deletions(-)
4422
6274
4423
commit 3541bc79d0cfabc0ad155c99bfdad1289f17fec3
6275
commit 2bd36c91d03e03b31a4f12fd0afc100ae32d66e2
6276
Author: huangqinjin <huangqinjin@gmail.com>
6277
Date:   2021-12-13 20:49:21 +0800
6278
6279
    CMake: Keep compatible with Windows 95 for 32-bit build.
6280
6281
 CMakeLists.txt | 12 +++++++++++-
6282
 1 file changed, 11 insertions(+), 1 deletion(-)
6283
6284
commit 2024fbf2794885277d05378d40b2b8015a7c3b40
4424
Author: Lasse Collin <lasse.collin@tukaani.org>
6285
Author: Lasse Collin <lasse.collin@tukaani.org>
4425
Date:   2013-06-28 22:51:02 +0300
6286
Date:   2021-11-13 21:04:05 +0200
4426
6287
4427
    xz: Use non-blocking I/O for the input file.
6288
    xzgrep: Update man page timestamp.
4428
6289
4429
 src/xz/file_io.c | 156 +++++++++++++++++++++++++++++++++++++++----------------
6290
 src/scripts/xzgrep.1 | 2 +-
4430
 1 file changed, 111 insertions(+), 45 deletions(-)
6291
 1 file changed, 1 insertion(+), 1 deletion(-)
4431
6292
4432
commit 78673a08bed5066c81e8a8e90d20e670c28ecfd5
6293
commit 400e7a239a53282cedaad927a41f3463d7f542e5
4433
Author: Lasse Collin <lasse.collin@tukaani.org>
6294
Author: Lasse Collin <lasse.collin@tukaani.org>
4434
Date:   2013-06-28 18:46:13 +0300
6295
Date:   2021-11-13 18:23:24 +0200
4435
6296
4436
    xz: Remove an outdated NetBSD-specific comment.
6297
    Update THANKS.
6298
6299
 THANKS | 1 +
6300
 1 file changed, 1 insertion(+)
6301
6302
commit 3a512c7787b2642ca946f4adc6e9a0a5d9b0d5a0
6303
Author: Ville Skyttä <ville.skytta@iki.fi>
6304
Date:   2021-11-13 10:11:57 +0200
6305
6306
    xzgrep: use `grep -E/-F` instead of `egrep` and `fgrep`
4437
    
6307
    
4438
    Nowadays errno == EFTYPE is documented in open(2).
6308
    `egrep` and `fgrep` have been deprecated in GNU grep since 2007, and in
6309
    current post 3.7 Git they have been made to emit obsolescence warnings:
6310
    https://git.savannah.gnu.org/cgit/grep.git/commit/?id=a9515624709865d480e3142fd959bccd1c9372d1
4439
6311
4440
 src/xz/file_io.c | 4 ----
6312
 src/scripts/xzgrep.1  | 8 ++++----
4441
 1 file changed, 4 deletions(-)
6313
 src/scripts/xzgrep.in | 4 ++--
6314
 2 files changed, 6 insertions(+), 6 deletions(-)
4442
6315
4443
commit a616fdad34b48b2932ef03fb87309dcc8b829527
6316
commit edf525e2b1840dcaf377df472c67d8f11f8ace1b
4444
Author: Lasse Collin <lasse.collin@tukaani.org>
6317
Author: Lasse Collin <lasse.collin@tukaani.org>
4445
Date:   2013-06-28 18:09:47 +0300
6318
Date:   2021-10-28 23:02:11 +0300
4446
6319
4447
    xz: Fix error detection of fcntl(fd, F_SETFL, flags) calls.
6320
    Bump the version number for 5.3.2alpha.
4448
    
4449
    POSIX says that fcntl(fd, F_SETFL, flags) returns -1 on
4450
    error and "other than -1" on success. This is how it is
4451
    documented e.g. on OpenBSD too. On Linux, success with
4452
    F_SETFL is always 0 (at least accorinding to fcntl(2)
4453
    from man-pages 3.51).
4454
6321
4455
 src/xz/file_io.c | 8 ++++----
6322
 src/liblzma/api/lzma/version.h | 2 +-
4456
 1 file changed, 4 insertions(+), 4 deletions(-)
6323
 src/liblzma/liblzma.map        | 2 +-
6324
 2 files changed, 2 insertions(+), 2 deletions(-)
4457
6325
4458
commit 4a08a6e4c61c65ab763ab314100a6d7a3bb89298
6326
commit ea8c948655a86290524efe59cff067e06a886709
4459
Author: Lasse Collin <lasse.collin@tukaani.org>
6327
Author: Lasse Collin <lasse.collin@tukaani.org>
4460
Date:   2013-06-28 17:36:47 +0300
6328
Date:   2021-10-28 22:59:52 +0300
4461
6329
4462
    xz: Fix use of wrong variable in a fcntl() call.
6330
    Add NEWS for 5.3.2alpha.
4463
    
4464
    Due to a wrong variable name, when writing a sparse file
4465
    to standard output, *all* file status flags were cleared
4466
    (to the extent the operating system allowed it) instead of
4467
    only clearing the O_APPEND flag. In practice this worked
4468
    fine in the common situations on GNU/Linux, but I didn't
4469
    check how it behaved elsewhere.
4470
    
4471
    The original flags were still restored correctly. I still
4472
    changed the code to use a separate boolean variable to
4473
    indicate when the flags should be restored instead of
4474
    relying on a special value in stdout_flags.
4475
6331
4476
 src/xz/file_io.c | 24 +++++++++++++-----------
6332
 NEWS | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4477
 1 file changed, 13 insertions(+), 11 deletions(-)
6333
 1 file changed, 86 insertions(+)
4478
6334
4479
commit b790b435daa3351067f80a5973b647f8d55367a2
6335
commit 52435f302f4724157ec50b4210cbe42b285c3cbc
4480
Author: Lasse Collin <lasse.collin@tukaani.org>
6336
Author: Lasse Collin <lasse.collin@tukaani.org>
4481
Date:   2013-06-28 14:55:37 +0300
6337
Date:   2021-10-27 23:27:48 +0300
4482
6338
4483
    xz: Fix assertion related to posix_fadvise().
6339
    Update THANKS.
4484
    
4485
    Input file can be a FIFO or something else that doesn't
4486
    support posix_fadvise() so don't check the return value
4487
    even with an assertion. Nothing bad happens if the call
4488
    to posix_fadvise() fails.
4489
6340
4490
 src/xz/file_io.c | 10 ++--------
6341
 THANKS | 1 +
4491
 1 file changed, 2 insertions(+), 8 deletions(-)
6342
 1 file changed, 1 insertion(+)
4492
6343
4493
commit 84d2da6c9dc252f441deb7626c2522202b005d4d
6344
commit f2aea1d5a504b2021bf47a238390e4f12bdd518d
4494
Author: Lasse Collin <lasse.collin@tukaani.org>
6345
Author: Lasse Collin <lasse.collin@tukaani.org>
4495
Date:   2013-06-26 13:30:57 +0300
6346
Date:   2021-10-27 23:23:11 +0300
4496
6347
4497
    xz: Check the value of lzma_stream_flags.version in --list.
6348
    xz: Change the coding style of the previous commit.
4498
    
6349
    
4499
    It is a no-op for now, but if an old xz version is used
6350
    It isn't any better now but it's consistent with
4500
    together with a newer liblzma that supports something new,
6351
    the rest of the code base.
4501
    then this check becomes important and will stop the old xz
4502
    from trying to parse files that it won't understand.
4503
6352
4504
 src/xz/list.c | 14 ++++++++++++++
6353
 src/xz/file_io.c | 11 ++++++-----
4505
 1 file changed, 14 insertions(+)
6354
 1 file changed, 6 insertions(+), 5 deletions(-)
4506
6355
4507
commit 9376f5f8f762296f2173d61af9101112c36f38c0
6356
commit 892b16cc282f5b4e1c49871b326f4db25c5b4d81
6357
Author: Alexander Bluhm <alexander.bluhm@gmx.net>
6358
Date:   2021-10-05 23:33:16 +0200
6359
6360
    xz: Avoid fchown(2) failure.
6361
    
6362
    OpenBSD does not allow to change the group of a file if the user
6363
    does not belong to this group.  In contrast to Linux, OpenBSD also
6364
    fails if the new group is the same as the old one.  Do not call
6365
    fchown(2) in this case, it would change nothing anyway.
6366
    
6367
    This fixes an issue with Perl Alien::Build module.
6368
    https://github.com/PerlAlien/Alien-Build/issues/62
6369
6370
 src/xz/file_io.c | 8 +++++++-
6371
 1 file changed, 7 insertions(+), 1 deletion(-)
6372
6373
commit 2b509c868cae3988bf21cd693fbf9021cdc85628
4508
Author: Lasse Collin <lasse.collin@tukaani.org>
6374
Author: Lasse Collin <lasse.collin@tukaani.org>
4509
Date:   2013-06-26 12:17:00 +0300
6375
Date:   2021-09-17 17:31:11 +0300
4510
6376
4511
    Build: Require Automake 1.12 and use serial-tests option.
6377
    liblzma: Fix liblzma.map for the lzma_microlzma_* symbols.
4512
    
6378
    
4513
    It should actually still work with Automake 1.10 if
6379
    This should have been part of d267d109c370a40b502e73f8664b154b15e4f253.
4514
    the serial-tests option is removed. Automake 1.13 started
4515
    using parallel tests by default and the option to get
4516
    the old behavior isn't supported before 1.12.
4517
    
6380
    
4518
    At least for now, parallel tests don't improve anything
6381
    Thanks to Gao Xiang.
4519
    in XZ Utils but they hide the progress output from
4520
    test_compress.sh.
4521
6382
4522
 configure.ac | 4 +++-
6383
 src/liblzma/liblzma.map | 4 ++--
4523
 1 file changed, 3 insertions(+), 1 deletion(-)
6384
 1 file changed, 2 insertions(+), 2 deletions(-)
4524
6385
4525
commit b7e200d7bd0a3c7c171c13ad37d68296d6f73374
6386
commit cacb06a954b58255dfc084a0bc9708f43a0fd6d6
4526
Author: Lasse Collin <lasse.collin@tukaani.org>
6387
Author: Lasse Collin <lasse.collin@tukaani.org>
4527
Date:   2013-06-23 18:59:13 +0300
6388
Date:   2021-09-09 22:21:07 +0300
4528
6389
4529
    Update THANKS.
6390
    Update THANKS.
4530
6391
4531
 THANKS | 1 +
6392
 THANKS | 1 +
4532
 1 file changed, 1 insertion(+)
6393
 1 file changed, 1 insertion(+)
4533
6394
4534
commit 46540e4c10923e363741ff5aab99e79fc0ce6ee8
6395
commit 6928aac9da6ba612780b9f72ba1d6ecbe1e8b54e
4535
Author: Lasse Collin <lasse.collin@tukaani.org>
6396
Author: Lasse Collin <lasse.collin@tukaani.org>
4536
Date:   2013-06-23 18:57:23 +0300
6397
Date:   2021-09-09 21:41:51 +0300
4537
6398
4538
    liblzma: Avoid a warning about a shadowed variable.
6399
    liblzma: Use _MSVC_LANG to detect when "noexcept" can be used with MSVC.
4539
    
6400
    
4540
    On Mac OS X wait() is declared in <sys/wait.h> that
6401
    By default, MSVC always sets __cplusplus to 199711L. The real
4541
    we include one way or other so don't use "wait" as
6402
    C++ standard version is available in _MSVC_LANG (or one could
4542
    a variable name.
6403
    use /Zc:__cplusplus to set __cplusplus correctly).
4543
    
6404
    
4544
    Thanks to Christian Kujau.
6405
    Fixes <https://sourceforge.net/p/lzmautils/discussion/708858/thread/f6bc3b108a/>.
6406
    
6407
    Thanks to Dan Weiss.
4545
6408
4546
 src/liblzma/common/stream_encoder_mt.c | 4 ++--
6409
 src/liblzma/api/lzma.h | 3 ++-
6410
 1 file changed, 2 insertions(+), 1 deletion(-)
6411
6412
commit d267d109c370a40b502e73f8664b154b15e4f253
6413
Author: Lasse Collin <lasse.collin@tukaani.org>
6414
Date:   2021-09-05 20:38:12 +0300
6415
6416
    liblzma: Rename EROFS LZMA to MicroLZMA.
6417
    
6418
    It still exists primarily for EROFS but MicroLZMA is
6419
    a more generic name (that hopefully doesn't clash with
6420
    something that already exists).
6421
6422
 src/liblzma/api/lzma/container.h                   | 33 +++++++++++++---------
6423
 src/liblzma/common/Makefile.inc                    |  4 +--
6424
 .../{erofs_decoder.c => microlzma_decoder.c}       | 32 ++++++++++-----------
6425
 .../{erofs_encoder.c => microlzma_encoder.c}       | 30 ++++++++++----------
6426
 4 files changed, 52 insertions(+), 47 deletions(-)
6427
6428
commit 3247e95115acb95bc27f41e8cf4501db5b0b4309
6429
Author: Lasse Collin <lasse.collin@tukaani.org>
6430
Date:   2021-06-04 19:02:38 +0300
6431
6432
    xzdiff: Update the man page about the exit status.
6433
    
6434
    This was forgotten from 194029ffaf74282a81f0c299c07f73caca3232ca.
6435
6436
 src/scripts/xzdiff.1 | 4 ++--
4547
 1 file changed, 2 insertions(+), 2 deletions(-)
6437
 1 file changed, 2 insertions(+), 2 deletions(-)
4548
6438
4549
commit ebb501ec73cecc546c67117dd01b5e33c90bfb4a
6439
commit 96f5a28a46fc93ac4e296808ac0f8631d05498bc
4550
Author: Lasse Collin <lasse.collin@tukaani.org>
6440
Author: Lasse Collin <lasse.collin@tukaani.org>
4551
Date:   2013-06-23 17:36:47 +0300
6441
Date:   2021-06-04 18:52:48 +0300
4552
6442
4553
    xz: Validate Uncompressed Size from Block Header in list.c.
6443
    xzless: Fix less(1) version detection when it contains a dot.
4554
    
6444
    
4555
    This affects only "xz -lvv". Normal decompression with xz
6445
    Sometimes the version number from "less -V" contains a dot,
4556
    already detected if Block Header and Index had mismatched
6446
    sometimes not. xzless failed detect the version number when
4557
    Uncompressed Size fields. So this just makes "xz -lvv"
6447
    it does contain a dot. This fixes it.
4558
    show such files as corrupt instead of showing the
6448
    
4559
    Uncompressed Size from Index.
6449
    Thanks to nick87720z for reporting this. Apparently it had been
6450
    reported here <https://bugs.gentoo.org/489362> in 2013.
4560
6451
4561
 src/xz/list.c | 14 +++++++++++++-
6452
 src/scripts/xzless.in | 2 +-
4562
 1 file changed, 13 insertions(+), 1 deletion(-)
6453
 1 file changed, 1 insertion(+), 1 deletion(-)
4563
6454
4564
commit c09e91dd236d3cabee0fc48312b3dc8cceae41ab
6455
commit 5fb5212d816addbc523d0798cb482fdd0484f8fa
4565
Author: Lasse Collin <lasse.collin@tukaani.org>
6456
Author: Lasse Collin <lasse.collin@tukaani.org>
4566
Date:   2013-06-21 22:08:11 +0300
6457
Date:   2021-04-11 19:58:10 +0300
4567
6458
4568
    Update THANKS.
6459
    Update THANKS.
4569
6460
4570
 THANKS | 2 ++
6461
 THANKS | 2 ++
4571
 1 file changed, 2 insertions(+)
6462
 1 file changed, 2 insertions(+)
4572
6463
4573
commit eb6ca9854b8eb9fbf72497c1cf608d6b19d2d494
6464
commit fc3d3a7296ef58bb799a73943636b8bfd95339f7
4574
Author: Lasse Collin <lasse.collin@tukaani.org>
6465
Author: Ivan A. Melnikov <iv@altlinux.org>
4575
Date:   2013-06-21 22:04:45 +0300
6466
Date:   2021-04-09 11:45:10 +0300
4576
6467
4577
    xz: Make the man page more friendly to doclifter.
6468
    Reduce maximum possible memory limit on MIPS32
4578
    
6469
    
4579
    Thanks to Eric S. Raymond.
6470
    Due to architectural limitations, address space available to a single
6471
    userspace process on MIPS32 is limited to 2 GiB, not 4, even on systems
6472
    that have more physical RAM -- e.g. 64-bit systems with 32-bit
6473
    userspace, or systems that use XPA (an extension similar to x86's PAE).
6474
    
6475
    So, for MIPS32, we have to impose stronger memory limits. I've chosen
6476
    2000MiB to give the process some headroom.
4580
6477
4581
 src/xz/xz.1 | 7 ++++---
6478
 src/xz/hardware.c | 6 ++++++
4582
 1 file changed, 4 insertions(+), 3 deletions(-)
6479
 1 file changed, 6 insertions(+)
4583
6480
4584
commit 0c0a1947e6ad90a0a10b7a5c39f6ab99a0aa5c93
6481
commit e7da44d5151e21f153925781ad29334ae0786101
4585
Author: Lasse Collin <lasse.collin@tukaani.org>
6482
Author: Lasse Collin <lasse.collin@tukaani.org>
4586
Date:   2013-06-21 21:54:59 +0300
6483
Date:   2021-02-13 23:31:27 +0200
4587
6484
4588
    xz: A couple of man page fixes.
6485
    CMake: Use interface library for better FindLibLZMA compatibility.
4589
    
6486
    
4590
    Now the interaction of presets and custom filter chains
6487
    https://www.mail-archive.com/xz-devel@tukaani.org/msg00446.html
4591
    is described correctly. Earlier it contradicted itself.
4592
    
6488
    
4593
    Thanks to DevHC who reported these issues on IRC to me
6489
    Thanks to Markus Rickert.
4594
    on 2012-12-14.
4595
6490
4596
 src/xz/xz.1 | 35 +++++++++++++++++++++++------------
6491
 CMakeLists.txt | 11 +++++++++--
4597
 1 file changed, 23 insertions(+), 12 deletions(-)
6492
 1 file changed, 9 insertions(+), 2 deletions(-)
4598
6493
4599
commit 2fcda89939c903106c429e109083d43d894049e0
6494
commit a61dd82ada39030f41b4ffca9ea551714908bedc
4600
Author: Lasse Collin <lasse.collin@tukaani.org>
6495
Author: Lasse Collin <lasse.collin@tukaani.org>
4601
Date:   2013-06-21 21:50:26 +0300
6496
Date:   2021-01-30 18:36:04 +0200
4602
6497
4603
    xz: Fix interaction between preset and custom filter chains.
6498
    CMake: Try to improve compatibility with the FindLibLZMA module.
4604
    
6499
    
4605
    There was somewhat illogical behavior when --extreme was
6500
    The naming conflict with FindLibLZMA module gets worse.
4606
    specified and mixed with custom filter chains.
6501
    Not avoiding it in the first place was stupid.
4607
    
6502
    
4608
    Before this commit, "xz -9 --lzma2 -e" was equivalent
6503
    Normally find_package(LibLZMA) will use the module and
4609
    to "xz --lzma2". After it is equivalent to "xz -6e"
6504
    find_package(liblzma 5.2.5 REQUIRED CONFIG) will use the config
4610
    (all earlier preset options get forgotten when a custom
6505
    file even with a case insensitive file system. However, if
4611
    filter chain is specified and the default preset is 6
6506
    CMAKE_FIND_PACKAGE_PREFER_CONFIG is TRUE and the file system
4612
    to which -e is applied). I find this less illogical.
6507
    is case insensitive, find_package(LibLZMA) will find our liblzma
6508
    config file instead of using FindLibLZMA module.
4613
    
6509
    
4614
    This also affects the meaning of "xz -9e --lzma2 -7".
6510
    One big problem with this is that FindLibLZMA uses
4615
    Earlier it was equivalent to "xz -7e" (the -e specified
6511
    LibLZMA::LibLZMA and we use liblzma::liblzma as the target
4616
    before a custom filter chain wasn't forgotten). Now it
6512
    name. With target names CMake happens to be case sensitive.
4617
    is "xz -7". Note that "xz -7e" still is the same as "xz -e7".
6513
    To workaround this, this commit adds
4618
    
6514
    
4619
    Hopefully very few cared about this in the first place,
6515
        add_library(LibLZMA::LibLZMA ALIAS liblzma::liblzma)
4620
    so pretty much no one should even notice this change.
4621
    
6516
    
4622
    Thanks to Conley Moorhous.
6517
    to the config file. Then both spellings work.
6518
    
6519
    To make the behavior consistent between case sensitive and
6520
    insensitive file systems, the config and related files are
6521
    renamed from liblzmaConfig.cmake to liblzma-config.cmake style.
6522
    With this style CMake looks for lowercase version of the package
6523
    name so find_package(LiBLzmA 5.2.5 REQUIRED CONFIG) will work
6524
    to find our config file.
6525
    
6526
    There are other differences between our config file and
6527
    FindLibLZMA so it's still possible that things break for
6528
    reasons other than the spelling of the target name. Hopefully
6529
    those situations aren't too common.
6530
    
6531
    When the config file is available, it should always give as good or
6532
    better results as FindLibLZMA so this commit doesn't affect the
6533
    recommendation to use find_package(liblzma 5.2.5 REQUIRED CONFIG)
6534
    which explicitly avoids FindLibLZMA.
6535
    
6536
    Thanks to Markus Rickert.
4623
6537
4624
 src/xz/coder.c | 35 +++++++++++++++++++++--------------
6538
 CMakeLists.txt | 21 +++++++++++++--------
4625
 1 file changed, 21 insertions(+), 14 deletions(-)
6539
 1 file changed, 13 insertions(+), 8 deletions(-)
4626
6540
4627
commit 97379c5ea758da3f8b0bc444d5f7fa43753ce610
6541
commit 5b7bc1b8ae766a76710ca1b99f909cf52c697f05
4628
Author: Lasse Collin <lasse.collin@tukaani.org>
6542
Author: Lasse Collin <lasse.collin@tukaani.org>
4629
Date:   2013-04-27 22:07:46 +0300
6543
Date:   2021-01-29 21:19:43 +0200
4630
6544
4631
    Build: Use -Wvla with GCC if supported.
6545
    Update THANKS.
4632
    
4633
    Variable-length arrays are mandatory in C99 but optional in C11.
4634
    The code doesn't currently use any VLAs and it shouldn't in the
4635
    future either to stay compatible with C11 without requiring any
4636
    optional C11 features.
4637
6546
4638
 configure.ac | 1 +
6547
 THANKS | 1 +
4639
 1 file changed, 1 insertion(+)
6548
 1 file changed, 1 insertion(+)
4640
6549
4641
commit 8957c58609d3987c58aa72b96c436cf565cc4917
6550
commit 6c6f0db340dcb8bb424411cedba713405d55f6b8
4642
Author: Lasse Collin <lasse.collin@tukaani.org>
6551
Author: Lasse Collin <lasse.collin@tukaani.org>
4643
Date:   2013-04-15 19:29:09 +0300
6552
Date:   2021-01-29 21:19:08 +0200
4644
6553
4645
    xzdec: Improve the --help message.
6554
    liblzma: Fix unitialized variable.
4646
    
6555
    
4647
    The options are now ordered in the same order as in xz's help
6556
    This was introduced two weeks ago in the commit
4648
    message.
6557
    625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c.
4649
    
6558
    
4650
    Descriptions were added to the options that are ignored.
6559
    Thanks to Nathan Moinvaziri.
4651
    I left them in parenthesis even if it looks a bit weird
4652
    because I find it easier to spot the ignored vs. non-ignored
4653
    options from the list that way.
4654
6560
4655
 src/xzdec/xzdec.c | 10 +++++-----
6561
 src/liblzma/lzma/lzma_encoder.c | 1 +
4656
 1 file changed, 5 insertions(+), 5 deletions(-)
6562
 1 file changed, 1 insertion(+)
4657
6563
4658
commit ed886e1a92534a24401d0e99c11f1dcff3b5220a
6564
commit bb1d5c1fdd30550d4221ecd336e0be1206132a5c
4659
Author: Lasse Collin <lasse.collin@tukaani.org>
6565
Author: Lasse Collin <lasse.collin@tukaani.org>
4660
Date:   2013-04-05 19:25:40 +0300
6566
Date:   2021-01-24 22:32:41 +0200
4661
6567
4662
    Update THANKS.
6568
    Tests: Add bad-1-lzma2-10.xz and also modify -9.xz.
4663
6569
4664
 THANKS | 2 ++
6570
 tests/files/README            |  11 +++++++++--
4665
 1 file changed, 2 insertions(+)
6571
 tests/files/bad-1-lzma2-10.xz | Bin 0 -> 60 bytes
6572
 tests/files/bad-1-lzma2-9.xz  | Bin 72 -> 72 bytes
6573
 3 files changed, 9 insertions(+), 2 deletions(-)
4666
6574
4667
commit 5019413a055ce29e660dbbf15e02443cb5a26c59
6575
commit 6b8abc84a5469792e0355d0bfc0784d41cfdfef7
4668
Author: Jeff Bastian <jbastian@redhat.com>
6576
Author: Lasse Collin <lasse.collin@tukaani.org>
4669
Date:   2013-04-03 13:59:17 +0200
6577
Date:   2021-01-24 19:22:35 +0200
4670
6578
4671
    xzgrep: make the '-h' option to be --no-filename equivalent
6579
    liblzma: Fix a wrong comment in stream_encoder_mt.c.
4672
    
4673
    * src/scripts/xzgrep.in: Accept the '-h' option in argument parsing.
4674
6580
4675
 src/scripts/xzgrep.in | 2 +-
6581
 src/liblzma/common/stream_encoder_mt.c | 10 +++++++---
4676
 1 file changed, 1 insertion(+), 1 deletion(-)
6582
 1 file changed, 7 insertions(+), 3 deletions(-)
4677
6583
4678
commit 5ea900cb5ad862bca81316729f92357c1fc040ce
6584
commit 939fc5ed654aac25fe0c8684b2df8dbeadb2de1e
4679
Author: Lasse Collin <lasse.collin@tukaani.org>
6585
Author: Lasse Collin <lasse.collin@tukaani.org>
4680
Date:   2013-03-23 22:25:15 +0200
6586
Date:   2021-01-24 18:51:51 +0200
4681
6587
4682
    liblzma: Be less picky in lzma_alone_decoder().
6588
    Tests: Add bad-1-lzma2-9.xz.
4683
    
4684
    To avoid false positives when detecting .lzma files,
4685
    rare values in dictionary size and uncompressed size fields
4686
    were rejected. They will still be rejected if .lzma files
4687
    are decoded with lzma_auto_decoder(), but when using
4688
    lzma_alone_decoder() directly, such files will now be accepted.
4689
    Hopefully this is an OK compromise.
4690
    
4691
    This doesn't affect xz because xz still has its own file
4692
    format detection code. This does affect lzmadec though.
4693
    So after this commit lzmadec will accept files that xz or
4694
    xz-emulating-lzma doesn't.
4695
    
4696
    NOTE: lzma_alone_decoder() still won't decode all .lzma files
4697
    because liblzma's LZMA decoder doesn't support lc + lp > 4.
4698
    
4699
    Reported here:
4700
    http://sourceforge.net/projects/lzmautils/forums/forum/708858/topic/7068827
4701
6589
4702
 src/liblzma/common/alone_decoder.c | 22 ++++++++++++++--------
6590
 tests/files/README           |   4 ++++
4703
 src/liblzma/common/alone_decoder.h |  5 +++--
6591
 tests/files/bad-1-lzma2-9.xz | Bin 0 -> 72 bytes
4704
 src/liblzma/common/auto_decoder.c  |  2 +-
6592
 2 files changed, 4 insertions(+)
4705
 3 files changed, 18 insertions(+), 11 deletions(-)
4706
6593
4707
commit bb117fffa84604b6e3811b068c80db82bf7f7b05
6594
commit fdd30032f8531ac89519b48c21d810ecf06825f6
4708
Author: Lasse Collin <lasse.collin@tukaani.org>
6595
Author: Lasse Collin <lasse.collin@tukaani.org>
4709
Date:   2013-03-23 21:55:13 +0200
6596
Date:   2021-01-24 17:02:00 +0200
4710
6597
4711
    liblzma: Use lzma_block_buffer_bound64() in threaded encoder.
6598
    Tests: Add bad-1-check-crc32-2.xz.
6599
6600
 tests/files/README                 |   7 +++++++
6601
 tests/files/bad-1-check-crc32-2.xz | Bin 0 -> 72 bytes
6602
 2 files changed, 7 insertions(+)
6603
6604
commit db465419ae26ec7fb9b9472183911ff521620c77
6605
Author: Lasse Collin <lasse.collin@tukaani.org>
6606
Date:   2021-01-17 19:20:50 +0200
6607
6608
    liblzma: In EROFS LZMA decoder, verify that comp_size matches at the end.
4712
    
6609
    
4713
    Now it uses lzma_block_uncomp_encode() if the data doesn't
6610
    When the uncompressed size is known to be exact, after decompressing
4714
    fit into the space calculated by lzma_block_buffer_bound64().
6611
    the stream exactly comp_size bytes of input must have been consumed.
6612
    This is a minor improvement to error detection.
4715
6613
4716
 src/liblzma/common/stream_encoder_mt.c | 66 +++++++++++++++++++++++++---------
6614
 src/liblzma/common/erofs_decoder.c | 7 ++++++-
4717
 1 file changed, 50 insertions(+), 16 deletions(-)
6615
 1 file changed, 6 insertions(+), 1 deletion(-)
4718
6616
4719
commit e572e123b55b29527e54ce5f0807f115481d78b9
6617
commit 774cc0118ba2496581cb2621505a04bb6598cc75
4720
Author: Lasse Collin <lasse.collin@tukaani.org>
6618
Author: Lasse Collin <lasse.collin@tukaani.org>
4721
Date:   2013-03-23 21:51:38 +0200
6619
Date:   2021-01-17 18:53:34 +0200
4722
6620
4723
    liblzma: Fix another deadlock in the threaded encoder.
6621
    liblzma: Make EROFS LZMA decoder work when exact uncomp_size isn't known.
4724
    
6622
    
4725
    This race condition could cause a deadlock if lzma_end() was
6623
    The caller must still not specify an uncompressed size bigger
4726
    called before finishing the encoding. This can happen with
6624
    than the actual uncompressed size.
4727
    xz with debugging enabled (non-debugging version doesn't
6625
    
4728
    call lzma_end() before exiting).
6626
    As a downside, this now needs the exact compressed size.
4729
6627
4730
 src/liblzma/common/stream_encoder_mt.c | 9 ++++++---
6628
 src/liblzma/api/lzma/container.h   | 23 ++++++++---
4731
 1 file changed, 6 insertions(+), 3 deletions(-)
6629
 src/liblzma/common/erofs_decoder.c | 80 ++++++++++++++++++++++++++++++++++----
6630
 2 files changed, 91 insertions(+), 12 deletions(-)
4732
6631
4733
commit b465da5988dd59ad98fda10c2e4ea13d0b9c73bc
6632
commit 421b0aa352da244075db10205cf33712f91b9835
4734
Author: Lasse Collin <lasse.collin@tukaani.org>
6633
Author: Lasse Collin <lasse.collin@tukaani.org>
4735
Date:   2013-03-23 19:17:33 +0200
6634
Date:   2021-01-14 20:57:11 +0200
4736
6635
4737
    liblzma: Add lzma_block_uncomp_encode().
6636
    liblzma: Fix missing normalization in rc_encode_dummy().
4738
    
6637
    
4739
    This also adds a new internal function
6638
    Without this fix it could attempt to create too much output.
4740
    lzma_block_buffer_bound64() which is similar to
4741
    lzma_block_buffer_bound() but uses uint64_t instead
4742
    of size_t.
4743
6639
4744
 src/liblzma/api/lzma/block.h              | 18 ++++++
6640
 src/liblzma/rangecoder/range_encoder.h | 7 ++++++-
4745
 src/liblzma/common/block_buffer_encoder.c | 94 +++++++++++++++++++++----------
6641
 1 file changed, 6 insertions(+), 1 deletion(-)
4746
 src/liblzma/common/block_buffer_encoder.h | 24 ++++++++
4747
 src/liblzma/liblzma.map                   |  1 +
4748
 4 files changed, 106 insertions(+), 31 deletions(-)
4749
6642
4750
commit 9e6dabcf22ef4679f4faaae15ebd5b137ae2fad1
6643
commit 601ec0311e769fc704daaaa7dac0ca840aff080e
4751
Author: Lasse Collin <lasse.collin@tukaani.org>
6644
Author: Lasse Collin <lasse.collin@tukaani.org>
4752
Date:   2013-03-05 19:14:50 +0200
6645
Date:   2021-01-14 20:07:01 +0200
4753
6646
4754
    Avoid unneeded use of awk in xzless.
6647
    liblzma: Add EROFS LZMA encoder and decoder.
4755
    
6648
    
4756
    Use "read" instead of "awk" in xzless to get the version
6649
    Right now this is just a planned extra-compact format for use
4757
    number of "less". The need for awk was introduced in
6650
    in the EROFS file system in Linux. At this point it's possible
4758
    the commit db5c1817fabf7cbb9e4087b1576eb26f0747338e.
6651
    that the format will either change or be abandoned and removed
6652
    completely.
4759
    
6653
    
4760
    Thanks to Ariel P for the patch.
6654
    The special thing about the encoder is that it uses the
6655
    output-size-limited encoding added in the previous commit.
6656
    EROFS uses fixed-sized blocks (e.g. 4 KiB) to hold compressed
6657
    data so the compressors must be able to create valid streams
6658
    that fill the given block size.
4761
6659
4762
 src/scripts/xzless.in | 3 +--
6660
 src/liblzma/api/lzma/container.h   |  76 +++++++++++++++++++
4763
 1 file changed, 1 insertion(+), 2 deletions(-)
6661
 src/liblzma/common/Makefile.inc    |   2 +
6662
 src/liblzma/common/erofs_decoder.c | 148 +++++++++++++++++++++++++++++++++++++
6663
 src/liblzma/common/erofs_encoder.c | 139 ++++++++++++++++++++++++++++++++++
6664
 src/liblzma/liblzma.map            |   2 +
6665
 5 files changed, 367 insertions(+)
4764
6666
4765
commit e7b424d267a34803db8d92a3515528be2ed45abd
6667
commit 625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c
4766
Author: Lasse Collin <lasse.collin@tukaani.org>
6668
Author: Lasse Collin <lasse.collin@tukaani.org>
4767
Date:   2012-12-14 20:13:32 +0200
6669
Date:   2021-01-13 19:16:32 +0200
4768
6670
4769
    Make the progress indicator smooth in threaded mode.
6671
    liblzma: Add rough support for output-size-limited encoding in LZMA1.
4770
    
6672
    
4771
    This adds lzma_get_progress() to liblzma and takes advantage
6673
    With this it is possible to encode LZMA1 data without EOPM so that
4772
    of it in xz.
6674
    the encoder will encode as much input as it can without exceeding
6675
    the specified output size limit. The resulting LZMA1 stream will
6676
    be a normal LZMA1 stream without EOPM. The actual uncompressed size
6677
    will be available to the caller via the uncomp_size pointer.
4773
    
6678
    
4774
    lzma_get_progress() collects progress information from
6679
    One missing thing is that the LZMA layer doesn't inform the LZ layer
4775
    the thread-specific structures so that fairly accurate
6680
    when the encoding is finished and thus the LZ may read more input
4776
    progress information is available to applications. Adding
6681
    when it won't be used. However, this doesn't matter if encoding is
4777
    a new function seemed to be a better way than making the
6682
    done with a single call (which is the planned use case for now).
4778
    information directly available in lzma_stream (like total_in
6683
    For proper multi-call encoding this should be improved.
4779
    and total_out are) because collecting the information requires
6684
    
4780
    locking mutexes. It's waste of time to do it more often than
6685
    This commit only adds the functionality for internal use.
4781
    the up to date information is actually needed by an application.
6686
    Nothing uses it yet.
4782
6687
4783
 src/liblzma/api/lzma/base.h            | 22 +++++++++-
6688
 src/liblzma/common/common.h             |  11 +++
4784
 src/liblzma/common/common.c            | 16 +++++++
6689
 src/liblzma/lz/lz_encoder.c             |  16 ++++
4785
 src/liblzma/common/common.h            |  6 +++
6690
 src/liblzma/lz/lz_encoder.h             |   4 +
4786
 src/liblzma/common/stream_encoder_mt.c | 77 +++++++++++++++++++++++++++++++---
6691
 src/liblzma/lzma/lzma_encoder.c         | 127 +++++++++++++++++++++++---------
4787
 src/liblzma/liblzma.map                |  1 +
6692
 src/liblzma/lzma/lzma_encoder_private.h |  12 +++
4788
 src/xz/message.c                       | 20 +++++----
6693
 src/liblzma/rangecoder/range_encoder.h  | 111 ++++++++++++++++++++++++++++
4789
 6 files changed, 129 insertions(+), 13 deletions(-)
6694
 6 files changed, 246 insertions(+), 35 deletions(-)
4790
6695
4791
commit 2ebbb994e367f55f2561aa7c9e7451703c171f2f
6696
commit 9cdabbeea891e8f1e7741b076f7db6ac05ae392a
4792
Author: Lasse Collin <lasse.collin@tukaani.org>
6697
Author: Lasse Collin <lasse.collin@tukaani.org>
4793
Date:   2012-12-14 11:01:41 +0200
6698
Date:   2021-01-11 23:57:11 +0200
4794
6699
4795
    liblzma: Fix mythread_sync for nested locking.
6700
    Scripts: Add zstd support to xzdiff.
4796
6701
4797
 src/common/mythread.h | 5 +++--
6702
 src/scripts/xzdiff.1  |  6 ++++--
4798
 1 file changed, 3 insertions(+), 2 deletions(-)
6703
 src/scripts/xzdiff.in | 16 +++++++++++-----
6704
 2 files changed, 15 insertions(+), 7 deletions(-)
4799
6705
4800
commit 4c7e28705f6de418d19cc77324ef301f996e01ff
6706
commit d9ec3add97cf4c999a7f594c6529680227b6c274
4801
Author: Lasse Collin <lasse.collin@tukaani.org>
6707
Author: Lasse Collin <lasse.collin@tukaani.org>
4802
Date:   2012-12-13 21:05:36 +0200
6708
Date:   2021-01-11 23:41:30 +0200
4803
6709
4804
    xz: Mention --threads in --help.
6710
    Update THANKS.
4805
    
4806
    Thanks to Olivier Delhomme for pointing out that this
4807
    was still missing.
4808
6711
4809
 src/xz/message.c | 4 ++++
6712
 THANKS | 2 ++
4810
 1 file changed, 4 insertions(+)
6713
 1 file changed, 2 insertions(+)
4811
6714
4812
commit db5c1817fabf7cbb9e4087b1576eb26f0747338e
6715
commit 074259f4f3966aeac6edb205fecbc1a8d2b58bb2
4813
Author: Jonathan Nieder <jrnieder@gmail.com>
6716
Author: Lasse Collin <lasse.collin@tukaani.org>
4814
Date:   2012-11-19 00:10:10 -0800
6717
Date:   2021-01-11 23:41:16 +0200
4815
6718
4816
    xzless: Make "less -V" parsing more robust
6719
    xz: Make --keep accept symlinks, hardlinks, and setuid/setgid/sticky.
4817
    
6720
    
4818
    In v4.999.9beta~30 (xzless: Support compressed standard input,
6721
    Previously this required using --force but that has other
4819
    2009-08-09), xzless learned to parse ‘less -V’ output to figure out
6722
    effects too which might be undesirable. Changing the behavior
4820
    whether less is new enough to handle $LESSOPEN settings starting
6723
    of --keep has a small risk of breaking existing scripts but
4821
    with “|-”.  That worked well for a while, but the version string from
6724
    since this is a fairly special corner case I expect the
4822
    ‘less’ versions 448 (June, 2012) is misparsed, producing a warning:
6725
    likehood of breakage to be low enough.
4823
    
6726
    
4824
            $ xzless /tmp/test.xz; echo $?
6727
    I think the new behavior is more logical. The only reason for
4825
            /usr/bin/xzless: line 49: test: 456 (GNU regular expressions): \
6728
    the old behavior was to be consistent with gzip and bzip2.
4826
            integer expression expected
4827
            0
4828
    
6729
    
4829
    More precisely, modern ‘less’ lists the regexp implementation along
6730
    Thanks to Vincent Lefevre and Sebastian Andrzej Siewior.
4830
    with its version number, and xzless passes the entire version number
6731
4831
    with attached parenthetical phrase as a number to "test $a -gt $b",
6732
 src/xz/file_io.c |  9 +++++----
4832
    producing the above confusing message.
6733
 src/xz/xz.1      | 16 +++++++++++++++-
6734
 2 files changed, 20 insertions(+), 5 deletions(-)
6735
6736
commit 73c555b3077c19dda29b6f4592ced2af876f8333
6737
Author: Lasse Collin <lasse.collin@tukaani.org>
6738
Date:   2021-01-11 23:28:52 +0200
6739
6740
    Scripts: Fix exit status of xzgrep.
4833
    
6741
    
4834
            $ less-444 -V | head -1
6742
    Omit the -q option from xz, gzip, and bzip2. With xz this shouldn't
4835
            less 444
6743
    matter. With gzip it's important because -q makes gzip replace SIGPIPE
4836
            $ less -V | head -1
6744
    with exit status 2. With bzip2 it's important because with -q bzip2
4837
            less 456 (no regular expressions)
6745
    is completely silent if input is corrupt while other decompressors
6746
    still give an error message.
4838
    
6747
    
4839
    So relax the pattern matched --- instead of expecting "less <number>",
6748
    Avoiding exit status 2 from gzip is important because bzip2 uses
4840
    look for a line of the form "less <number>[ (extra parenthetical)]".
6749
    exit status 2 to indicate corrupt input. Before this commit xzgrep
4841
    While at it, improve the behavior when no matching line is found ---
6750
    didn't recognize corrupt .bz2 files because xzgrep was treating
4842
    instead of producing a cryptic message, we can fall back on a LESSPIPE
6751
    exit status 2 as SIGPIPE for gzip compatibility.
4843
    setting that is supported by all versions of ‘less’.
4844
    
6752
    
4845
    The implementation uses "awk" for simplicity.  Hopefully that’s
6753
    zstd still needs -q because otherwise it is noisy in normal
4846
    portable enough.
6754
    operation.
4847
    
6755
    
4848
    Reported-by: Jörg-Volker Peetz <jvpeetz@web.de>
6756
    The code to detect real SIGPIPE didn't check if the exit status
4849
    Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
6757
    was due to a signal (>= 128) and so could ignore some other exit
6758
    status too.
4850
6759
4851
 src/scripts/xzless.in | 3 ++-
6760
 src/scripts/xzgrep.in | 20 +++++++++++++-------
4852
 1 file changed, 2 insertions(+), 1 deletion(-)
6761
 1 file changed, 13 insertions(+), 7 deletions(-)
4853
6762
4854
commit 65536214a31ecd33b6b03b68a351fb597d3703d6
6763
commit 194029ffaf74282a81f0c299c07f73caca3232ca
4855
Author: Lasse Collin <lasse.collin@tukaani.org>
6764
Author: Lasse Collin <lasse.collin@tukaani.org>
4856
Date:   2012-10-03 15:54:24 +0300
6765
Date:   2021-01-11 22:01:51 +0200
4857
6766
4858
    xz: Fix the note about --rsyncable on the man page.
6767
    Scripts: Fix exit status of xzdiff/xzcmp.
6768
    
6769
    This is a minor fix since this affects only the situation when
6770
    the files differ and the exit status is something else than 0.
6771
    In such case there could be SIGPIPE from a decompression tool
6772
    and that would result in exit status of 2 from xzdiff/xzcmp
6773
    while the correct behavior would be to return 1 or whatever
6774
    else diff or cmp may have returned.
6775
    
6776
    This commit omits the -q option from xz/gzip/bzip2/lzop arguments.
6777
    I'm not sure why the -q was used in the first place, perhaps it
6778
    hides warnings in some situation that I cannot see at the moment.
6779
    Hopefully the removal won't introduce a new bug.
6780
    
6781
    With gzip the -q option was harmful because it made gzip return 2
6782
    instead of >= 128 with SIGPIPE. Ignoring exit status 2 (warning
6783
    from gzip) isn't practical because bzip2 uses exit status 2 to
6784
    indicate corrupt input file. It's better if SIGPIPE results in
6785
    exit status >= 128.
6786
    
6787
    With bzip2 the removal of -q seems to be good because with -q
6788
    it prints nothing if input is corrupt. The other tools aren't
6789
    silent in this situation even with -q. On the other hand, if
6790
    zstd support is added, it will need -q since otherwise it's
6791
    noisy in normal situations.
6792
    
6793
    Thanks to Étienne Mollier and Sebastian Andrzej Siewior.
4859
6794
4860
 src/xz/xz.1 | 17 +++++++++--------
6795
 src/scripts/xzdiff.in | 35 +++++++++++++++++++++--------------
4861
 1 file changed, 9 insertions(+), 8 deletions(-)
6796
 1 file changed, 21 insertions(+), 14 deletions(-)
4862
6797
4863
commit 3d93b6354927247a1569caf22ad27b07e97ee904
6798
commit f7fa309e1f7178d04c7bedc03b73077639371e97
4864
Author: Lasse Collin <lasse.collin@tukaani.org>
6799
Author: Lasse Collin <lasse.collin@tukaani.org>
4865
Date:   2012-09-28 20:11:09 +0300
6800
Date:   2021-01-09 21:14:36 +0200
4866
6801
4867
    xz: Improve handling of failed realloc in xrealloc.
6802
    liblzma: Make lzma_outq usable for threaded decompression too.
4868
    
6803
    
4869
    Thanks to Jim Meyering.
6804
    Before this commit all output queue buffers were allocated as
6805
    a single big allocation. Now each buffer is allocated separately
6806
    when needed. Used buffers are cached to avoid reallocation
6807
    overhead but the cache will keep only one buffer size at a time.
6808
    This should make things work OK in the decompression where most
6809
    of the time the buffer sizes will be the same but with some less
6810
    common files the buffer sizes may vary.
6811
    
6812
    While this should work fine, it's still a bit preliminary
6813
    and may even get reverted if it turns out to be useless for
6814
    decompression.
4870
6815
4871
 src/xz/util.c | 14 ++++++++++++--
6816
 src/liblzma/common/outqueue.c          | 268 +++++++++++++++++++++------------
4872
 1 file changed, 12 insertions(+), 2 deletions(-)
6817
 src/liblzma/common/outqueue.h          | 138 ++++++++++++-----
6818
 src/liblzma/common/stream_encoder_mt.c |  52 ++++---
6819
 3 files changed, 301 insertions(+), 157 deletions(-)
4873
6820
4874
commit ab225620664e235637833be2329935f9d290ba80
6821
commit a35a69d693ce37d4ba7c1855bda7d9cfa13d1778
4875
Author: Lasse Collin <lasse.collin@tukaani.org>
6822
Author: Lasse Collin <lasse.collin@tukaani.org>
4876
Date:   2012-08-24 16:27:31 +0300
6823
Date:   2020-12-23 17:15:49 +0200
4877
6824
4878
    A few typo fixes to comments and the xz man page.
6825
    Update THANKS.
6826
6827
 THANKS | 1 +
6828
 1 file changed, 1 insertion(+)
6829
6830
commit 4fd79b90c52396d70e0b1206ceb1a873a0ad2589
6831
Author: H.J. Lu <hjl.tools@gmail.com>
6832
Date:   2020-12-23 06:49:04 -0800
6833
6834
    liblzma: Enable Intel CET in x86 CRC assembly codes
4879
    
6835
    
4880
    Thanks to Jim Meyering.
6836
    When Intel CET is enabled, we need to include <cet.h> in assembly codes
6837
    to mark Intel CET support and add _CET_ENDBR to indirect jump targets.
6838
    
6839
    Tested on Intel Tiger Lake under CET enabled Linux.
4881
6840
4882
 configure.ac               | 2 +-
6841
 src/liblzma/check/crc32_x86.S | 9 +++++++++
4883
 src/liblzma/check/sha256.c | 1 -
6842
 src/liblzma/check/crc64_x86.S | 9 +++++++++
4884
 src/xz/xz.1                | 4 ++--
6843
 2 files changed, 18 insertions(+)
4885
 3 files changed, 3 insertions(+), 4 deletions(-)
4886
6844
4887
commit f3c1ec69d910175ffd431fd82968dd35cec806ed
6845
commit bb3b8c6a23e25db79f862b1de325c56052e0354b
4888
Author: Lasse Collin <lasse.collin@tukaani.org>
6846
Author: Lasse Collin <lasse.collin@tukaani.org>
4889
Date:   2012-08-13 21:40:09 +0300
6847
Date:   2020-12-16 18:33:29 +0200
4890
6848
4891
    xz: Add a warning to --help about alpha and beta versions.
6849
    Update THANKS.
4892
6850
4893
 src/xz/message.c | 5 +++++
6851
 THANKS | 1 +
4894
 1 file changed, 5 insertions(+)
6852
 1 file changed, 1 insertion(+)
4895
6853
4896
commit d8eaf9d8278c23c2cf2b7ca5562d4de570d3b5db
6854
commit 21588ca34af98738954fc12ded1b89d7294ef646
4897
Author: Lasse Collin <lasse.collin@tukaani.org>
6855
Author: Lasse Collin <lasse.collin@tukaani.org>
4898
Date:   2012-08-02 17:13:30 +0300
6856
Date:   2020-12-16 18:30:14 +0200
4899
6857
4900
    Build: Bump gettext version requirement to 0.18.
6858
    Build: Don't build bundles on Apple OSes.
4901
    
6859
    
4902
    Otherwise too old version of m4/lib-link.m4 gets included
6860
    Thanks to Daniel Packard.
4903
    when autoreconf -fi is run.
4904
6861
4905
 configure.ac | 2 +-
6862
 CMakeLists.txt | 3 +++
4906
 1 file changed, 1 insertion(+), 1 deletion(-)
6863
 1 file changed, 3 insertions(+)
4907
6864
4908
commit 96e08902b09f0f304d4ff80c6e83ef7fff883f34
6865
commit d05b0c42dd8b38d8c6b8193c8af50e9bd3d16f28
4909
Author: Lasse Collin <lasse.collin@tukaani.org>
6866
Author: Lasse Collin <lasse.collin@tukaani.org>
4910
Date:   2012-07-17 18:29:08 +0300
6867
Date:   2020-12-05 22:44:03 +0200
4911
6868
4912
    Update THANKS.
6869
    Update THANKS.
4913
6870
4914
 THANKS | 1 +
6871
 THANKS | 1 +
4915
 1 file changed, 1 insertion(+)
6872
 1 file changed, 1 insertion(+)
4916
6873
4917
commit 3778db1be53e61ff285c573af5ee468803008456
6874
commit 1890351f3423627ba5c4c495402f32d7e9ed90b7
4918
Author: Lasse Collin <lasse.collin@tukaani.org>
6875
Author: Adam Borowski <kilobyte@angband.pl>
4919
Date:   2012-07-17 18:19:59 +0300
6876
Date:   2020-09-25 03:35:18 +0200
4920
6877
4921
    liblzma: Make the use of lzma_allocator const-correct.
6878
    Scripts: Add zstd support to xzgrep.
4922
    
6879
    
4923
    There is a tiny risk of causing breakage: If an application
6880
    Thanks to Adam Borowski.
4924
    assigns lzma_stream.allocator to a non-const pointer, such
4925
    code won't compile anymore. I don't know why anyone would do
4926
    such a thing though, so in practice this shouldn't cause trouble.
4927
    
4928
    Thanks to Jan Kratochvil for the patch.
4929
6881
4930
 src/liblzma/api/lzma/base.h                |  4 +++-
6882
 src/scripts/xzgrep.1  | 9 ++++++---
4931
 src/liblzma/api/lzma/block.h               |  6 ++---
6883
 src/scripts/xzgrep.in | 1 +
4932
 src/liblzma/api/lzma/container.h           |  9 +++++---
6884
 2 files changed, 7 insertions(+), 3 deletions(-)
4933
 src/liblzma/api/lzma/filter.h              | 13 ++++++-----
4934
 src/liblzma/api/lzma/index.h               | 16 ++++++-------
4935
 src/liblzma/api/lzma/index_hash.h          |  4 ++--
4936
 src/liblzma/common/alone_decoder.c         |  6 ++---
4937
 src/liblzma/common/alone_decoder.h         |  2 +-
4938
 src/liblzma/common/alone_encoder.c         |  8 +++----
4939
 src/liblzma/common/auto_decoder.c          |  6 ++---
4940
 src/liblzma/common/block_buffer_decoder.c  |  2 +-
4941
 src/liblzma/common/block_buffer_encoder.c  |  4 ++--
4942
 src/liblzma/common/block_decoder.c         |  6 ++---
4943
 src/liblzma/common/block_decoder.h         |  2 +-
4944
 src/liblzma/common/block_encoder.c         |  8 +++----
4945
 src/liblzma/common/block_encoder.h         |  2 +-
4946
 src/liblzma/common/block_header_decoder.c  |  4 ++--
4947
 src/liblzma/common/common.c                | 10 ++++-----
4948
 src/liblzma/common/common.h                | 20 +++++++++--------
4949
 src/liblzma/common/easy_buffer_encoder.c   |  4 ++--
4950
 src/liblzma/common/filter_buffer_decoder.c |  3 ++-
4951
 src/liblzma/common/filter_buffer_encoder.c |  7 +++---
4952
 src/liblzma/common/filter_common.c         |  4 ++--
4953
 src/liblzma/common/filter_common.h         |  2 +-
4954
 src/liblzma/common/filter_decoder.c        |  7 +++---
4955
 src/liblzma/common/filter_decoder.h        |  2 +-
4956
 src/liblzma/common/filter_encoder.c        |  2 +-
4957
 src/liblzma/common/filter_encoder.h        |  2 +-
4958
 src/liblzma/common/filter_flags_decoder.c  |  2 +-
4959
 src/liblzma/common/index.c                 | 26 ++++++++++-----------
4960
 src/liblzma/common/index_decoder.c         | 12 +++++-----
4961
 src/liblzma/common/index_encoder.c         |  6 ++---
4962
 src/liblzma/common/index_encoder.h         |  2 +-
4963
 src/liblzma/common/index_hash.c            |  6 +++--
4964
 src/liblzma/common/outqueue.c              |  4 ++--
4965
 src/liblzma/common/outqueue.h              |  5 +++--
4966
 src/liblzma/common/stream_buffer_decoder.c |  2 +-
4967
 src/liblzma/common/stream_buffer_encoder.c |  3 ++-
4968
 src/liblzma/common/stream_decoder.c        |  9 ++++----
4969
 src/liblzma/common/stream_decoder.h        |  5 +++--
4970
 src/liblzma/common/stream_encoder.c        | 10 ++++-----
4971
 src/liblzma/common/stream_encoder_mt.c     | 16 ++++++-------
4972
 src/liblzma/delta/delta_common.c           |  4 ++--
4973
 src/liblzma/delta/delta_decoder.c          |  6 ++---
4974
 src/liblzma/delta/delta_decoder.h          |  5 +++--
4975
 src/liblzma/delta/delta_encoder.c          |  6 ++---
4976
 src/liblzma/delta/delta_encoder.h          |  3 ++-
4977
 src/liblzma/delta/delta_private.h          |  2 +-
4978
 src/liblzma/lz/lz_decoder.c                |  8 +++----
4979
 src/liblzma/lz/lz_decoder.h                |  7 +++---
4980
 src/liblzma/lz/lz_encoder.c                | 19 ++++++++--------
4981
 src/liblzma/lz/lz_encoder.h                |  6 ++---
4982
 src/liblzma/lzma/lzma2_decoder.c           |  8 +++----
4983
 src/liblzma/lzma/lzma2_decoder.h           |  5 +++--
4984
 src/liblzma/lzma/lzma2_encoder.c           |  6 ++---
4985
 src/liblzma/lzma/lzma2_encoder.h           |  2 +-
4986
 src/liblzma/lzma/lzma_decoder.c            |  8 +++----
4987
 src/liblzma/lzma/lzma_decoder.h            |  7 +++---
4988
 src/liblzma/lzma/lzma_encoder.c            |  7 +++---
4989
 src/liblzma/lzma/lzma_encoder.h            |  5 +++--
4990
 src/liblzma/simple/arm.c                   |  8 ++++---
4991
 src/liblzma/simple/armthumb.c              |  8 ++++---
4992
 src/liblzma/simple/ia64.c                  |  8 ++++---
4993
 src/liblzma/simple/powerpc.c               |  8 ++++---
4994
 src/liblzma/simple/simple_coder.c          | 10 ++++-----
4995
 src/liblzma/simple/simple_coder.h          | 36 ++++++++++++++++++++----------
4996
 src/liblzma/simple/simple_decoder.c        |  2 +-
4997
 src/liblzma/simple/simple_decoder.h        |  2 +-
4998
 src/liblzma/simple/simple_private.h        |  3 ++-
4999
 src/liblzma/simple/sparc.c                 |  8 ++++---
5000
 src/liblzma/simple/x86.c                   |  8 ++++---
5001
 71 files changed, 269 insertions(+), 219 deletions(-)
5002
6885
5003
commit d625c7cf824fd3b61c6da84f56179e94917ff603
6886
commit 2f108abb3d82e4e2313b438dae9c0c7c7a6366f2
5004
Author: Lasse Collin <lasse.collin@tukaani.org>
6887
Author: Lasse Collin <lasse.collin@tukaani.org>
5005
Date:   2012-07-05 07:36:28 +0300
6888
Date:   2020-11-17 20:51:48 +0200
5006
6889
5007
    Tests: Remove tests/test_block.c that had gotten committed accidentally.
6890
    CMake: Fix compatibility with CMake 3.13.
6891
    
6892
    The syntax "if(DEFINED CACHE{FOO})" requires CMake 3.14.
6893
    In some other places the code treats the cache variables
6894
    like normal variables already (${FOO} or if(FOO) is used,
6895
    not ${CACHE{FOO}).
6896
    
6897
    Thanks to ygrek for reporting the bug on IRC.
5008
6898
5009
 tests/test_block.c | 52 ----------------------------------------------------
6899
 CMakeLists.txt              | 2 +-
5010
 1 file changed, 52 deletions(-)
6900
 cmake/tuklib_cpucores.cmake | 4 ++--
6901
 cmake/tuklib_physmem.cmake  | 4 ++--
6902
 3 files changed, 5 insertions(+), 5 deletions(-)
5011
6903
5012
commit 0b09d266cce72bc4841933b171e79551e488927c
6904
commit 5af726a79273fafa5de5745b117e567f21c90e49
5013
Author: Lasse Collin <lasse.collin@tukaani.org>
6905
Author: Lasse Collin <lasse.collin@tukaani.org>
5014
Date:   2012-07-05 07:33:35 +0300
6906
Date:   2020-11-01 22:56:43 +0200
5015
6907
5016
    Build: Include macosx/build.sh in the distribution.
6908
    Update THANKS.
5017
    
5018
    It has been in the Git repository since 2010 but probably
5019
    few people have seen it since it hasn't been included in
5020
    the release tarballs. :-(
5021
6909
5022
 Makefile.am | 1 +
6910
 THANKS | 4 +++-
5023
 1 file changed, 1 insertion(+)
6911
 1 file changed, 3 insertions(+), 1 deletion(-)
5024
6912
5025
commit d6e0b23d4613b9f417893dd96cc168c8005ece3d
6913
commit 4575d9d365c756ec189899f9f743e0b3515ce72d
5026
Author: Lasse Collin <lasse.collin@tukaani.org>
6914
Author: Lasse Collin <lasse.collin@tukaani.org>
5027
Date:   2012-07-05 07:28:53 +0300
6915
Date:   2020-11-01 22:34:25 +0200
5028
6916
5029
    Build: Include validate_map.sh in the distribution.
6917
    xz: Avoid unneeded \f escapes on the man page.
5030
    
6918
    
5031
    It's required by "make mydist".
6919
    I don't want to use \c in macro arguments but groff_man(7)
6920
    suggests that \f has better portability. \f would be needed
6921
    for the .TP strings for portability reasons anyway.
5032
    
6922
    
5033
    Fix also the location of EXTRA_DIST+= so that those files
6923
    Thanks to Bjarni Ingi Gislason.
5034
    get distributed also if symbol versioning isn't enabled.
5035
6924
5036
 src/liblzma/Makefile.am | 2 +-
6925
 src/xz/xz.1 | 31 ++++++++++++++++++++++---------
5037
 1 file changed, 1 insertion(+), 1 deletion(-)
6926
 1 file changed, 22 insertions(+), 9 deletions(-)
5038
6927
5039
commit 19de545d86097c3954d69ab5d12820387f6a09bc
6928
commit 620b32f5339f86710cb4435e01ecdac972ccac73
5040
Author: Lasse Collin <lasse.collin@tukaani.org>
6929
Author: Lasse Collin <lasse.collin@tukaani.org>
5041
Date:   2012-07-05 07:24:45 +0300
6930
Date:   2020-11-01 19:09:53 +0200
5042
6931
5043
    Docs: Fix the name LZMA Utils -> XZ Utils in debug/README.
6932
    xz: Use non-breaking spaces when intentionally using more than one space.
6933
    
6934
    This silences some style checker warnings. Seems that spaces
6935
    in the beginning of a line don't need this treatment.
6936
    
6937
    Thanks to Bjarni Ingi Gislason.
5044
6938
5045
 debug/README | 2 +-
6939
 src/xz/xz.1 | 2 +-
5046
 1 file changed, 1 insertion(+), 1 deletion(-)
6940
 1 file changed, 1 insertion(+), 1 deletion(-)
5047
6941
5048
commit 672eccf57c31a40dfb956b7662db06d43e18618e
6942
commit cb1f34988c8a4130485091b2f8b641303d8f701b
5049
Author: Lasse Collin <lasse.collin@tukaani.org>
6943
Author: Lasse Collin <lasse.collin@tukaani.org>
5050
Date:   2012-07-05 07:23:17 +0300
6944
Date:   2020-11-01 18:49:37 +0200
5051
6945
5052
    Include debug/translation.bash in the distribution.
6946
    xz: Protect the ellipsis (...) on the man page with \&.
5053
    
6947
    
5054
    Also fix the script name mentioned in README.
6948
    This does it only when ... appears outside macro calls.
6949
    
6950
    Thanks to Bjarni Ingi Gislason.
5055
6951
5056
 README            | 4 ++--
6952
 src/xz/xz.1 | 4 ++--
5057
 debug/Makefile.am | 3 +++
6953
 1 file changed, 2 insertions(+), 2 deletions(-)
5058
 2 files changed, 5 insertions(+), 2 deletions(-)
5059
6954
5060
commit cafb523adac1caf305e70a04bc37f25602bf990c
6955
commit 5d224da3da87400f2fab313abbd7c710e7169ef9
5061
Author: Lasse Collin <lasse.collin@tukaani.org>
6956
Author: Lasse Collin <lasse.collin@tukaani.org>
5062
Date:   2012-07-04 22:31:58 +0300
6957
Date:   2020-11-01 18:41:21 +0200
5063
6958
5064
    xz: Document --block-list better.
6959
    xz: Avoid the abbreviation "e.g." on the man page.
5065
    
6960
    
5066
    Thanks to Jonathan Nieder.
6961
    A few are simply omitted, most are converted to "for example"
6962
    and surrounded with commas. Sounds like that this is better
6963
    style, for example, man-pages(7) recommends avoiding such
6964
    abbreviations except in parenthesis.
6965
    
6966
    Thanks to Bjarni Ingi Gislason.
5067
6967
5068
 src/xz/xz.1 | 8 +++++++-
6968
 src/xz/xz.1 | 66 ++++++++++++++++++++++++++++++-------------------------------
5069
 1 file changed, 7 insertions(+), 1 deletion(-)
6969
 1 file changed, 33 insertions(+), 33 deletions(-)
5070
6970
5071
commit c7ff218528bc8f7c65e7ef73c6515777346c6794
6971
commit 90457dbe3e5717660f5b81f8c604860fc5137c0c
5072
Author: Lasse Collin <lasse.collin@tukaani.org>
6972
Author: Lasse Collin <lasse.collin@tukaani.org>
5073
Date:   2012-07-04 20:01:49 +0300
6973
Date:   2020-07-12 23:10:03 +0300
5074
6974
5075
    Bump the version number to 5.1.2alpha.
6975
    xz man page: Change \- (minus) to \(en (en-dash) for a numeric range.
6976
    
6977
    Docs of ancient troff/nroff mention \(em (em-dash) but not \(en
6978
    and \- was used for both minus and en-dash. I don't know how
6979
    portable \(en is nowadays but it can be changed back if someone
6980
    complains. At least GNU groff and OpenBSD's mandoc support it.
6981
    
6982
    Thanks to Bjarni Ingi Gislason for the patch.
5076
6983
5077
 src/liblzma/api/lzma/version.h | 2 +-
6984
 src/xz/xz.1 | 16 ++++++++--------
5078
 src/liblzma/liblzma.map        | 2 +-
6985
 1 file changed, 8 insertions(+), 8 deletions(-)
5079
 2 files changed, 2 insertions(+), 2 deletions(-)
5080
6986
5081
commit 8f3c1d886f93e6478ad509ff52102b2ce7faa999
6987
commit 352ba2d69af2136bc814aa1df1a132559d445616
5082
Author: Lasse Collin <lasse.collin@tukaani.org>
6988
Author: Lasse Collin <lasse.collin@tukaani.org>
5083
Date:   2012-07-04 20:01:19 +0300
6989
Date:   2020-07-12 20:46:24 +0300
5084
6990
5085
    Update NEWS for 5.1.2alpha.
6991
    Windows: Fix building of resource files when config.h isn't used.
6992
    
6993
    Now CMake + Visual Studio works for building liblzma.dll.
6994
    
6995
    Thanks to Markus Rickert.
5086
6996
5087
 NEWS | 41 +++++++++++++++++++++++++++++++++++++++++
6997
 src/common/common_w32res.rc | 4 +++-
5088
 1 file changed, 41 insertions(+)
6998
 1 file changed, 3 insertions(+), 1 deletion(-)
5089
6999
5090
commit 0d5fa05466e580fbc458820f87013ae7644e20e5
7000
commit a9e2a87f1d61dcf684d809bf08c8ebea93f8a480
5091
Author: Lasse Collin <lasse.collin@tukaani.org>
7001
Author: Lasse Collin <lasse.collin@tukaani.org>
5092
Date:   2012-07-04 19:58:23 +0300
7002
Date:   2020-04-06 19:31:50 +0300
5093
7003
5094
    xz: Fix the version number printed by xz -lvv.
7004
    src/scripts/xzgrep.1: Filenames to xzgrep are optional.
5095
    
7005
    
5096
    The decoder bug was fixed in 5.0.2 instead of 5.0.3.
7006
    xzgrep --help was correct already.
5097
7007
5098
 src/xz/list.c | 6 +++---
7008
 src/scripts/xzgrep.1 | 2 +-
5099
 1 file changed, 3 insertions(+), 3 deletions(-)
7009
 1 file changed, 1 insertion(+), 1 deletion(-)
5100
7010
5101
commit df11317985a4165731dde12bb0f0028da0e7b77f
7011
commit a7ba275d9b855d186abb29eb7a4f4cb6d9ca6fe0
5102
Author: Lasse Collin <lasse.collin@tukaani.org>
7012
Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
5103
Date:   2012-07-04 17:11:31 +0300
7013
Date:   2020-03-26 22:17:31 +0000
5104
7014
5105
    Build: Add a comment to configure.ac about symbol versioning.
7015
    src/script/xzgrep.1: Remove superfluous '.RB'
7016
    
7017
    Output is from: test-groff -b -e -mandoc -T utf8 -rF0 -t -w w -z
7018
    
7019
      [ "test-groff" is a developmental version of "groff" ]
7020
    
7021
    Input file is ./src/scripts/xzgrep.1
7022
    
7023
    <src/scripts/xzgrep.1>:20 (macro RB): only 1 argument, but more are expected
7024
    <src/scripts/xzgrep.1>:23 (macro RB): only 1 argument, but more are expected
7025
    <src/scripts/xzgrep.1>:26 (macro RB): only 1 argument, but more are expected
7026
    <src/scripts/xzgrep.1>:29 (macro RB): only 1 argument, but more are expected
7027
    <src/scripts/xzgrep.1>:32 (macro RB): only 1 argument, but more are expected
7028
    
7029
     "abc..." does not mean the same as "abc ...".
7030
    
7031
      The output from nroff and troff is unchanged except for the space
7032
    between "file" and "...".
7033
    
7034
    Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
5106
7035
5107
 configure.ac | 4 ++++
7036
 src/scripts/xzgrep.1 | 12 ++++++------
5108
 1 file changed, 4 insertions(+)
7037
 1 file changed, 6 insertions(+), 6 deletions(-)
5109
7038
5110
commit bd9cc179e8be3ef515201d3ed9c7dd79ae88869d
7039
commit 133d498db0f4b14f066d192d64dbcade45deae6b
5111
Author: Lasse Collin <lasse.collin@tukaani.org>
7040
Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
5112
Date:   2012-07-04 17:06:49 +0300
7041
Date:   2020-03-30 21:56:36 +0000
5113
7042
5114
    Update TODO.
7043
    xzgrep.1: Delete superfluous '.PP'
7044
    
7045
    Summary:
7046
    
7047
    mandoc -T lint xzgrep.1 :
7048
    mandoc: xzgrep.1:79:2: WARNING: skipping paragraph macro: PP empty
7049
    
7050
      There is no change in the output of "nroff" and "troff".
7051
    
7052
    Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
5115
7053
5116
 TODO | 12 ++++++++++--
7054
 src/scripts/xzgrep.1 | 1 -
5117
 1 file changed, 10 insertions(+), 2 deletions(-)
7055
 1 file changed, 1 deletion(-)
5118
7056
5119
commit 4a238dd9b22f462cac5e199828bf1beb0df05884
7057
commit 057839ca982f886387b66746bffe749cb14fd8cd
5120
Author: Lasse Collin <lasse.collin@tukaani.org>
7058
Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
5121
Date:   2012-07-04 17:05:46 +0300
7059
Date:   2020-03-26 21:16:18 +0000
5122
7060
5123
    Document --enable-symbol-versions in INSTALL.
7061
    src/xz/xz.1: Correct misused two-fonts macros
7062
    
7063
    Output is from: test-groff -b -e -mandoc -T utf8 -rF0 -t -w w -z
7064
    
7065
      [ "test-groff" is a developmental version of "groff" ]
7066
    
7067
    Input file is ./src/xz/xz.1
7068
    
7069
    <src/xz/xz.1>:408 (macro BR): only 1 argument, but more are expected
7070
    <src/xz/xz.1>:1009 (macro BR): only 1 argument, but more are expected
7071
    <src/xz/xz.1>:1743 (macro BR): only 1 argument, but more are expected
7072
    <src/xz/xz.1>:1920 (macro BR): only 1 argument, but more are expected
7073
    <src/xz/xz.1>:2213 (macro BR): only 1 argument, but more are expected
7074
    
7075
      Output from nroff and troff is unchanged, except for a font change of a
7076
    full stop (.).
7077
    
7078
    Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
5124
7079
5125
 INSTALL | 5 +++++
7080
 src/xz/xz.1 | 10 +++++-----
5126
 1 file changed, 5 insertions(+)
7081
 1 file changed, 5 insertions(+), 5 deletions(-)
5127
7082
5128
commit 88ccf47205d7f3aa314d358c72ef214f10f68b43
7083
commit b8e12f5ab4c9fd3cb09a4330b2861f6b979ababd
5129
Author: Lasse Collin <lasse.collin@tukaani.org>
7084
Author: Lasse Collin <lasse.collin@tukaani.org>
5130
Date:   2012-07-03 21:16:39 +0300
7085
Date:   2020-03-23 18:07:50 +0200
5131
7086
5132
    xz: Add incomplete support for --block-list.
7087
    Typo fixes from fossies.org.
5133
    
7088
    
5134
    It's broken with threads and when also --block-size is used.
7089
    https://fossies.org/linux/misc/xz-5.2.5.tar.xz/codespell.html
5135
7090
5136
 src/xz/args.c    | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
7091
 Makefile.am                     | 2 +-
5137
 src/xz/args.h    |  1 +
7092
 doc/examples/01_compress_easy.c | 2 +-
5138
 src/xz/coder.c   | 48 ++++++++++++++++++++++++++++------
7093
 src/liblzma/api/lzma/base.h     | 2 +-
5139
 src/xz/coder.h   |  4 +++
7094
 src/liblzma/check/crc32_x86.S   | 2 +-
5140
 src/xz/main.c    |  1 +
7095
 src/liblzma/common/index.c      | 2 +-
5141
 src/xz/message.c |  6 +++++
7096
 src/xz/xz.1                     | 4 ++--
5142
 src/xz/xz.1      | 23 +++++++++++++++--
7097
 6 files changed, 7 insertions(+), 7 deletions(-)
5143
 7 files changed, 151 insertions(+), 10 deletions(-)
5144
7098
5145
commit 972179cdcdf5d8949c48ee31737d87d3050b44af
7099
commit 869b9d1b4edd6df07f819d360d306251f8147353
5146
Author: Lasse Collin <lasse.collin@tukaani.org>
7100
Author: Lasse Collin <lasse.collin@tukaani.org>
5147
Date:   2012-07-01 18:44:33 +0300
7101
Date:   2020-03-17 16:24:28 +0200
5148
7102
5149
    xz: Update the man page about the new field in --robot -lvv.
7103
    Update NEWS for 5.2.5.
5150
7104
5151
 src/xz/xz.1 | 18 +++++++++++++++++-
7105
 NEWS | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5152
 1 file changed, 17 insertions(+), 1 deletion(-)
7106
 1 file changed, 105 insertions(+)
5153
7107
5154
commit 1403707fc64a70976aebe66f8d9a9bd12f73a2c5
7108
commit a048e3a92d238c65f050a765174d9c75417231d4
5155
Author: Lasse Collin <lasse.collin@tukaani.org>
7109
Author: Lasse Collin <lasse.collin@tukaani.org>
5156
Date:   2012-06-28 10:47:49 +0300
7110
Date:   2020-03-16 20:01:37 +0200
5157
7111
5158
    liblzma: Check that the first byte of range encoded data is 0x00.
7112
    README: Update outdated sections.
5159
    
5160
    It is just to be more pedantic and thus perhaps catch broken
5161
    files slightly earlier.
5162
7113
5163
 src/liblzma/lzma/lzma_decoder.c        |  8 ++++++--
7114
 README | 21 +++++++++++----------
5164
 src/liblzma/rangecoder/range_decoder.h | 12 +++++++++---
7115
 1 file changed, 11 insertions(+), 10 deletions(-)
5165
 2 files changed, 15 insertions(+), 5 deletions(-)
5166
7116
5167
commit eccd8017ffe2c5de473222c4963ec53c62f7fda2
7117
commit 29aed815ad4f98f3e4d355faa76a244ecd8ce716
5168
Author: Lasse Collin <lasse.collin@tukaani.org>
7118
Author: Lasse Collin <lasse.collin@tukaani.org>
5169
Date:   2012-06-22 19:00:23 +0300
7119
Date:   2020-03-16 19:39:45 +0200
5170
7120
5171
    Update NEWS from 5.0.4.
7121
    README: Mention that man pages can be translated.
5172
7122
5173
 NEWS | 37 +++++++++++++++++++++++++++++++++++++
7123
 README | 7 ++++---
5174
 1 file changed, 37 insertions(+)
7124
 1 file changed, 4 insertions(+), 3 deletions(-)
5175
7125
5176
commit 2e6754eac26a431e8d340c28906f63bcd1e177e8
7126
commit 7fa7653940cc9dcfcbce2fbc5166ea343ad4e3c1
5177
Author: Lasse Collin <lasse.collin@tukaani.org>
7127
Author: Lasse Collin <lasse.collin@tukaani.org>
5178
Date:   2012-06-22 14:34:03 +0300
7128
Date:   2020-03-16 16:43:29 +0200
5179
7129
5180
    xz: Update man page date to match the latest update.
7130
    Update INSTALL.generic from Automake 1.16.1.
5181
7131
5182
 src/xz/xz.1 | 2 +-
7132
 INSTALL.generic | 321 ++++++++++++++++++++++++++++----------------------------
5183
 1 file changed, 1 insertion(+), 1 deletion(-)
7133
 1 file changed, 162 insertions(+), 159 deletions(-)
5184
7134
5185
commit b3235a0b1af45d5e1244cbe3191516966c076fa0
7135
commit 9bd317ef03ab9b3e6a927c27c2e9c4ac041182f0
5186
Author: Lasse Collin <lasse.collin@tukaani.org>
7136
Author: Lasse Collin <lasse.collin@tukaani.org>
5187
Date:   2012-06-18 21:27:47 +0300
7137
Date:   2020-03-15 15:27:22 +0200
5188
7138
5189
    Docs: Language fix to 01_compress_easy.c.
7139
    Update INSTALL for Windows and DOS and add preliminary info for z/OS.
5190
    
5191
    Thanks to Jonathan Nieder.
5192
7140
5193
 doc/examples/01_compress_easy.c | 2 +-
7141
 INSTALL | 51 +++++++++++++++++++++++++++++++++++++++++----------
5194
 1 file changed, 1 insertion(+), 1 deletion(-)
7142
 1 file changed, 41 insertions(+), 10 deletions(-)
5195
7143
5196
commit f1675f765fe228cb5a5f904f853445a03e33cfe9
7144
commit a3148c0446dc7fa96363752df414d22539c9007b
5197
Author: Lasse Collin <lasse.collin@tukaani.org>
7145
Author: Lasse Collin <lasse.collin@tukaani.org>
5198
Date:   2012-06-14 20:15:30 +0300
7146
Date:   2020-03-15 15:26:20 +0200
5199
7147
5200
    Fix the top-level Makefile.am for the new example programs.
7148
    Build: Update m4/ax_pthread.m4 from Autoconf Archive (again).
5201
7149
5202
 Makefile.am | 12 ++++++++++--
7150
 m4/ax_pthread.m4 | 219 +++++++++++++++++++++++++++++--------------------------
5203
 1 file changed, 10 insertions(+), 2 deletions(-)
7151
 1 file changed, 117 insertions(+), 102 deletions(-)
5204
7152
5205
commit 3a0c5378abefaf86aa39a62a7c9682bdb21568a1
7153
commit 7812002dd3ed319e42a14662a8531802cca8ca67
5206
Author: Lasse Collin <lasse.collin@tukaani.org>
7154
Author: Lasse Collin <lasse.collin@tukaani.org>
5207
Date:   2012-06-14 10:52:33 +0300
7155
Date:   2020-03-11 21:15:35 +0200
5208
7156
5209
    Docs: Add new example programs.
7157
    xz: Never use thousand separators in DJGPP builds.
5210
    
7158
    
5211
    These have more comments than the old examples and
7159
    DJGPP 2.05 added support for thousands separators but it's
5212
    human-readable error messages. More tutorial-like examples
7160
    broken at least under WinXP with Finnish locale that uses
5213
    are needed but these are a start.
7161
    a non-breaking space as the thousands separator. Workaround
7162
    by disabling thousands separators for DJGPP builds.
5214
7163
5215
 doc/examples/00_README.txt        |  27 ++++
7164
 src/xz/util.c | 14 ++++++++++++--
5216
 doc/examples/01_compress_easy.c   | 297 ++++++++++++++++++++++++++++++++++++++
7165
 1 file changed, 12 insertions(+), 2 deletions(-)
5217
 doc/examples/02_decompress.c      | 287 ++++++++++++++++++++++++++++++++++++
5218
 doc/examples/03_compress_custom.c | 193 +++++++++++++++++++++++++
5219
 doc/examples/Makefile             |  23 +++
5220
 5 files changed, 827 insertions(+)
5221
7166
5222
commit 1bd2c2c553e30c4a73cfb82abc6908efd6be6b8d
7167
commit 7c8f688bf7fccd65d396e0130cbf4ea5dff5c56f
5223
Author: Lasse Collin <lasse.collin@tukaani.org>
7168
Author: Lasse Collin <lasse.collin@tukaani.org>
5224
Date:   2012-06-14 10:33:27 +0300
7169
Date:   2020-03-11 19:38:08 +0200
5225
7170
5226
    Docs: Move xz_pipe_comp.c and xz_pipe_decomp.c to doc/examples_old.
7171
    DOS: Update dos/Makefile for DJGPP 2.05.
5227
    
7172
    
5228
    It is good to keep these around to so that if someone has
7173
    It doesn't need -fgnu89-inline like 2.04beta did.
5229
    copied the decompressor bug from xz_pipe_decomp.c he has
5230
    an example how to easily fix it.
5231
7174
5232
 doc/{examples => examples_old}/xz_pipe_comp.c   | 0
7175
 dos/Makefile | 4 +---
5233
 doc/{examples => examples_old}/xz_pipe_decomp.c | 0
7176
 1 file changed, 1 insertion(+), 3 deletions(-)
5234
 2 files changed, 0 insertions(+), 0 deletions(-)
5235
7177
5236
commit 905f0ab5b5ce544d4b68a2ed6077df0f3d021292
7178
commit 319ca928d73de87940c54e30bffe69f9fa65efdf
5237
Author: Lasse Collin <lasse.collin@tukaani.org>
7179
Author: Lasse Collin <lasse.collin@tukaani.org>
5238
Date:   2012-06-14 10:33:01 +0300
7180
Date:   2020-03-11 19:36:07 +0200
5239
7181
5240
    Docs: Fix a bug in xz_pipe_decomp.c example program.
7182
    DOS: Update instructions in dos/INSTALL.txt.
5241
7183
5242
 doc/examples/xz_pipe_decomp.c | 10 +++++++++-
7184
 dos/INSTALL.txt | 59 ++++++++++++++++++++++++++++-----------------------------
5243
 1 file changed, 9 insertions(+), 1 deletion(-)
7185
 1 file changed, 29 insertions(+), 30 deletions(-)
5244
7186
5245
commit 4bd1a3bd5fdf4870b2f96dd0b8a21657c8a58ad8
7187
commit cb6b227ce39932824812ccd8a0647bd968de27d2
5246
Author: Lasse Collin <lasse.collin@tukaani.org>
7188
Author: Lasse Collin <lasse.collin@tukaani.org>
5247
Date:   2012-05-30 23:14:33 +0300
7189
Date:   2020-03-11 17:58:51 +0200
5248
7190
5249
    Translations: Update the French translation.
7191
    DOS: Update config.h.
5250
    
7192
    
5251
    Thanks to Adrien Nader.
7193
    The added defines assume GCC >= 4.8.
5252
7194
5253
 po/fr.po | 148 ++++++++++++++++++++++++++++++++++-----------------------------
7195
 dos/config.h | 8 ++++++++
5254
 1 file changed, 79 insertions(+), 69 deletions(-)
7196
 1 file changed, 8 insertions(+)
5255
7197
5256
commit d2e836f2f3a87df6fe6bb0589b037db51205d910
7198
commit 4572d53e16e87eee375bc5624de2fd59bb0ae9cd
5257
Author: Lasse Collin <lasse.collin@tukaani.org>
7199
Author: Lasse Collin <lasse.collin@tukaani.org>
5258
Date:   2012-05-29 23:42:37 +0300
7200
Date:   2020-03-02 13:54:33 +0200
5259
7201
5260
    Translations: Update the German translation.
7202
    liblzma: Fix a comment and RC_SYMBOLS_MAX.
5261
    
7203
    
5262
    The previous only included the new strings in v5.0.
7204
    The comment didn't match the value of RC_SYMBOLS_MAX and the value
7205
    itself was slightly larger than actually needed. The only harm
7206
    about this was that memory usage was a few bytes larger.
5263
7207
5264
 po/de.po | 229 +++++++++++++++++++++++++++++++++++++--------------------------
7208
 src/liblzma/rangecoder/range_encoder.h | 4 ++--
5265
 1 file changed, 133 insertions(+), 96 deletions(-)
7209
 1 file changed, 2 insertions(+), 2 deletions(-)
5266
7210
5267
commit c9a16151577ba459afd6e3528df23bc0ddb95171
7211
commit 265daa873c0d871f5f23f9b56e133a6f20045a0a
5268
Author: Lasse Collin <lasse.collin@tukaani.org>
7212
Author: Lasse Collin <lasse.collin@tukaani.org>
5269
Date:   2012-05-29 22:26:27 +0300
7213
Date:   2020-02-27 20:58:52 +0200
5270
7214
5271
    Translations: Update the German translation.
7215
    Build: Make CMake build fail if tuklib_cpucores or tuklib_physmem fails.
5272
7216
5273
 po/de.po | 169 ++++++++++++++++++++++++++++++++++-----------------------------
7217
 CMakeLists.txt | 18 ++++++++++++++++++
5274
 1 file changed, 91 insertions(+), 78 deletions(-)
7218
 1 file changed, 18 insertions(+)
5275
7219
5276
commit 1530a74fd48f8493372edad137a24541efe24713
7220
commit 7c8b904527cdbe61248c80edcc2e20d840c4fef9
5277
Author: Lasse Collin <lasse.collin@tukaani.org>
7221
Author: Lasse Collin <lasse.collin@tukaani.org>
5278
Date:   2012-05-29 22:14:21 +0300
7222
Date:   2020-02-27 20:24:27 +0200
5279
7223
5280
    Translations: Update Polish translation.
7224
    Build: Add support for --no-po4a option to autogen.sh.
5281
5282
 po/pl.po | 283 +++++++++++++++++++++++++++++++++++++--------------------------
5283
 1 file changed, 165 insertions(+), 118 deletions(-)
5284
5285
commit d8db706acb8316f9861abd432cfbe001dd6d0c5c
5286
Author: Lasse Collin <lasse.collin@tukaani.org>
5287
Date:   2012-05-28 20:42:11 +0300
5288
5289
    liblzma: Fix possibility of incorrect LZMA_BUF_ERROR.
5290
    
7225
    
5291
    lzma_code() could incorrectly return LZMA_BUF_ERROR if
7226
    Normally, if po4a isn't available, autogen.sh will return
5292
    all of the following was true:
7227
    with non-zero exit status. The option --no-po4a can be useful
5293
    
7228
    when one knows that po4a isn't available but wants autogen.sh
5294
      - The caller knows how many bytes of output to expect
7229
    to still return with zero exit status.
5295
        and only provides that much output space.
5296
    
5297
      - When the last output bytes are decoded, the
5298
        caller-provided input buffer ends right before
5299
        the LZMA2 end of payload marker. So LZMA2 won't
5300
        provide more output anymore, but it won't know it
5301
        yet and thus won't return LZMA_STREAM_END yet.
5302
    
5303
      - A BCJ filter is in use and it hasn't left any
5304
        unfiltered bytes in the temp buffer. This can happen
5305
        with any BCJ filter, but in practice it's more likely
5306
        with filters other than the x86 BCJ.
5307
    
5308
    Another situation where the bug can be triggered happens
5309
    if the uncompressed size is zero bytes and no output space
5310
    is provided. In this case the decompression can fail even
5311
    if the whole input file is given to lzma_code().
5312
    
5313
    A similar bug was fixed in XZ Embedded on 2011-09-19.
5314
7230
5315
 src/liblzma/simple/simple_coder.c |   2 +-
7231
 autogen.sh | 11 ++++++++++-
5316
 tests/Makefile.am                 |   4 +-
7232
 1 file changed, 10 insertions(+), 1 deletion(-)
5317
 tests/test_bcj_exact_size.c       | 112 ++++++++++++++++++++++++++++++++++++++
5318
 3 files changed, 116 insertions(+), 2 deletions(-)
5319
7233
5320
commit 3f94b6d87f1b8f1c421ba548f8ebb83dca9c8cda
7234
commit 292a5c0f9c9b3a66f5a5c652dc46381836d4537f
5321
Author: Lasse Collin <lasse.collin@tukaani.org>
7235
Author: Lasse Collin <lasse.collin@tukaani.org>
5322
Date:   2012-05-28 15:38:32 +0300
7236
Date:   2020-02-25 21:35:14 +0200
5323
7237
5324
    Update THANKS.
7238
    Update THANKS.
5325
7239
5326
 THANKS | 1 +
7240
 THANKS | 1 +
5327
 1 file changed, 1 insertion(+)
7241
 1 file changed, 1 insertion(+)
5328
7242
5329
commit 7769ea051d739a38a1640fd448cf5eb83cb119c6
7243
commit 474320e9908786ba2021035f9013191e16cde08a
5330
Author: Lasse Collin <lasse.collin@tukaani.org>
7244
Author: Lasse Collin <lasse.collin@tukaani.org>
5331
Date:   2012-05-28 15:37:43 +0300
7245
Date:   2020-02-25 20:42:31 +0200
5332
7246
5333
    xz: Don't show a huge number in -vv when memory limit is disabled.
7247
    Build: Fix bugs in the CMake files.
7248
    
7249
    Seems that the phrase "add more quotes" from sh/bash scripting
7250
    applies to CMake as well. E.g. passing an unquoted list ${FOO}
7251
    to a function that expects one argument results in only the
7252
    first element of the list being passed as an argument and
7253
    the rest get ignored. Adding quotes helps ("${FOO}").
7254
    
7255
    list(INSERT ...) is weird. Inserting an empty string to an empty
7256
    variable results in empty list, but inserting it to a non-empty
7257
    variable does insert an empty element to the list.
7258
    
7259
    Since INSERT requires at least one element,
7260
    "${CMAKE_THREAD_LIBS_INIT}" needs to be quoted in CMakeLists.txt.
7261
    It might result in an empty element in the list. It seems to not
7262
    matter as empty elements consistently get ignored in that variable.
7263
    In fact, calling cmake_check_push_state() and cmake_check_pop_state()
7264
    will strip the empty elements from CMAKE_REQUIRED_LIBRARIES!
7265
    
7266
    In addition to quoting fixes, this fixes checks for the cache
7267
    variables in tuklib_cpucores.cmake and tuklib_physmem.cmake.
7268
    
7269
    Thanks to Martin Matuška for testing and reporting the problems.
7270
    These fixes aren't tested yet but hopefully they soon will be.
5334
7271
5335
 src/xz/message.c | 12 +++++++++++-
7272
 CMakeLists.txt              | 52 ++++++++++++++++++++++-----------------------
5336
 1 file changed, 11 insertions(+), 1 deletion(-)
7273
 cmake/tuklib_common.cmake   |  8 ++++---
7274
 cmake/tuklib_cpucores.cmake | 30 ++++++++++++++------------
7275
 cmake/tuklib_integer.cmake  | 34 +++++++++++++++--------------
7276
 cmake/tuklib_mbstr.cmake    |  6 +++---
7277
 cmake/tuklib_physmem.cmake  | 29 +++++++++++++------------
7278
 cmake/tuklib_progname.cmake |  4 ++--
7279
 7 files changed, 85 insertions(+), 78 deletions(-)
5337
7280
5338
commit ec921105725e4d3ef0a683dd83eee6f24ab60ccd
7281
commit 7e3493d40eac0c3fa3d5124097745a70e15c41f6
5339
Author: Lasse Collin <lasse.collin@tukaani.org>
7282
Author: Lasse Collin <lasse.collin@tukaani.org>
5340
Date:   2012-05-27 22:30:17 +0300
7283
Date:   2020-02-24 23:38:16 +0200
5341
7284
5342
    xz: Document the "summary" lines of --robot -lvv.
7285
    Build: Add very limited experimental CMake support.
5343
    
7286
    
5344
    This documents only the columns that are in v5.0.
7287
    This does *NOT* replace the Autotools-based build system in
5345
    The new columns added in the master branch aren't
7288
    the foreseeable future. See the comment in the beginning
5346
    necessarily stable yet.
7289
    of CMakeLists.txt.
7290
    
7291
    So far this has been tested only on GNU/Linux but I commit
7292
    it anyway to make it easier for others to test. Since I
7293
    haven't played much with CMake before, it's likely that
7294
    there are things that have been done in a silly or wrong
7295
    way and need to be fixed.
5347
7296
5348
 src/xz/xz.1 | 19 +++++++++++++++++++
7297
 CMakeLists.txt              | 643 ++++++++++++++++++++++++++++++++++++++++++++
5349
 1 file changed, 19 insertions(+)
7298
 cmake/tuklib_common.cmake   |  47 ++++
7299
 cmake/tuklib_cpucores.cmake | 173 ++++++++++++
7300
 cmake/tuklib_integer.cmake  | 100 +++++++
7301
 cmake/tuklib_mbstr.cmake    |  20 ++
7302
 cmake/tuklib_physmem.cmake  | 149 ++++++++++
7303
 cmake/tuklib_progname.cmake |  19 ++
7304
 7 files changed, 1151 insertions(+)
5350
7305
5351
commit 27d24eb0a9f6eed96d6a4594c2b0bf7a91d29f9a
7306
commit 21bd4701fca3e9002ce78bc135debca369ed8545
5352
Author: Lasse Collin <lasse.collin@tukaani.org>
7307
Author: Lasse Collin <lasse.collin@tukaani.org>
5353
Date:   2012-05-27 21:53:20 +0300
7308
Date:   2020-02-24 23:37:07 +0200
5354
7309
5355
    xz: Fix output of verbose --robot --list modes.
7310
    Update m4/.gitignore.
5356
    
5357
    It printed the filename in "filename (x/y)" format
5358
    which it obviously shouldn't do in robot mode.
5359
7311
5360
 src/xz/message.c | 2 +-
7312
 m4/.gitignore | 1 +
5361
 1 file changed, 1 insertion(+), 1 deletion(-)
7313
 1 file changed, 1 insertion(+)
5362
7314
5363
commit ab25b82a91754d9388c89abddf806424671d9431
7315
commit e094d1d0f196a91ec703e8d0055948feef349ae8
5364
Author: Lasse Collin <lasse.collin@tukaani.org>
7316
Author: Lasse Collin <lasse.collin@tukaani.org>
5365
Date:   2012-05-24 18:33:54 +0300
7317
Date:   2020-02-24 23:29:35 +0200
5366
7318
5367
    Build: Upgrade m4/acx_pthread.m4 to the latest version.
7319
    tuklib: Omit an unneeded <sys/types.h> from a tests.
7320
    
7321
    tuklib_cpucores.c and tuklib_physmem.c don't include <sys/types.h>
7322
    even via other files in this package, so clearly that header isn't
7323
    needed in the tests either (no one has reported build problems due
7324
    to a missing header in a .c file).
5368
7325
5369
 m4/ax_pthread.m4 | 98 +++++++++++++++++++++++++++++++++++---------------------
7326
 m4/tuklib_cpucores.m4 | 1 -
5370
 1 file changed, 62 insertions(+), 36 deletions(-)
7327
 m4/tuklib_physmem.m4  | 1 -
7328
 2 files changed, 2 deletions(-)
5371
7329
5372
commit d05d6d65c41a4bc83f162fa3d67c5d84e8751634
7330
commit b3ed19a55fe99a45bd77614e149d39d18498075c
5373
Author: Lasse Collin <lasse.collin@tukaani.org>
7331
Author: Lasse Collin <lasse.collin@tukaani.org>
5374
Date:   2012-05-10 21:15:17 +0300
7332
Date:   2020-02-24 23:01:00 +0200
5375
7333
5376
    Update THANKS.
7334
    liblzma: Remove unneeded <sys/types.h> from fastpos_tablegen.c.
7335
    
7336
    This file only generates fastpos_table.c.
7337
    It isn't built as a part of liblzma.
5377
7338
5378
 THANKS | 1 +
7339
 src/liblzma/lzma/fastpos_tablegen.c | 1 -
5379
 1 file changed, 1 insertion(+)
7340
 1 file changed, 1 deletion(-)
5380
7341
5381
commit e077391982f9f28dbfe542bba8800e7c5b916666
7342
commit 7b8982b29179b3c586e0456dc9ecbd4f58dcea59
5382
Author: Lasse Collin <lasse.collin@tukaani.org>
7343
Author: Lasse Collin <lasse.collin@tukaani.org>
5383
Date:   2012-05-10 21:14:16 +0300
7344
Date:   2020-02-22 14:15:07 +0200
5384
7345
5385
    Docs: Cleanup line wrapping a bit.
7346
    Use defined(__GNUC__) before __GNUC__ in preprocessor lines.
5386
5387
 README          | 12 ++++++------
5388
 doc/history.txt | 49 +++++++++++++++++++++++++------------------------
5389
 2 files changed, 31 insertions(+), 30 deletions(-)
5390
5391
commit fc39849c350225c6a1cd7f6e6adff1020521eabc
5392
Author: Benno Schulenberg <bensberg@justemail.net>
5393
Date:   2012-03-13 22:04:04 +0100
5394
5395
    Fix a few typos and add some missing articles in some documents.
5396
    
7347
    
5397
    Also hyphenate several compound adjectives.
7348
    This should silence the equivalent of -Wundef in compilers that
5398
    
7349
    don't define __GNUC__.
5399
    Signed-off-by: Benno Schulenberg <bensberg@justemail.net>
5400
7350
5401
 AUTHORS         |  6 +++---
7351
 src/common/sysdefs.h   | 3 ++-
5402
 README          | 42 ++++++++++++++++++++---------------------
7352
 src/liblzma/api/lzma.h | 5 +++--
5403
 doc/faq.txt     | 24 ++++++++++++------------
7353
 2 files changed, 5 insertions(+), 3 deletions(-)
5404
 doc/history.txt | 58 ++++++++++++++++++++++++++++-----------------------------
5405
 4 files changed, 65 insertions(+), 65 deletions(-)
5406
7354
5407
commit 29fa0566d5df199cb9acb2d17bf7eea61acc7fa1
7355
commit 43dfe04e6209c691cf4fbe3072d4ee91271748f1
5408
Author: Lasse Collin <lasse.collin@tukaani.org>
7356
Author: Lasse Collin <lasse.collin@tukaani.org>
5409
Date:   2012-04-29 11:51:25 +0300
7357
Date:   2020-02-21 17:40:02 +0200
5410
7358
5411
    Windows: Update notes about static linking with MSVC.
7359
    liblzma: Add more uses of lzma_memcmplen() to the normal mode of LZMA.
7360
    
7361
    This gives a tiny encoder speed improvement. This could have been done
7362
    in 2014 after the commit 544aaa3d13554e8640f9caf7db717a96360ec0f6 but
7363
    it was forgotten.
5412
7364
5413
 windows/README-Windows.txt | 13 +++++++++----
7365
 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 16 ++++++++++------
5414
 1 file changed, 9 insertions(+), 4 deletions(-)
7366
 1 file changed, 10 insertions(+), 6 deletions(-)
5415
7367
5416
commit aac1b31ea4e66cf5a7a8c116bdaa15aa45e6c56e
7368
commit 59e6eb4840b9f52fa3a61544974017279b448216
5417
Author: Lasse Collin <lasse.collin@tukaani.org>
7369
Author: Lasse Collin <lasse.collin@tukaani.org>
5418
Date:   2012-04-19 15:25:26 +0300
7370
Date:   2020-02-21 17:01:15 +0200
5419
7371
5420
    liblzma: Remove outdated comments.
7372
    Build: Add visibility.m4 from gnulib.
7373
    
7374
    Appears that this file used to get included as a side effect of
7375
    gettext. After the change to gettext version requirements this file
7376
    no longer got copied to the package and so the build was broken.
5421
7377
5422
 src/liblzma/simple/simple_coder.c   | 3 ---
7378
 m4/.gitignore    |  1 -
5423
 src/liblzma/simple/simple_private.h | 3 +--
7379
 m4/visibility.m4 | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5424
 2 files changed, 1 insertion(+), 5 deletions(-)
7380
 2 files changed, 77 insertions(+), 1 deletion(-)
5425
7381
5426
commit df14a46013bea70c0bd35be7821b0b9108f97de7
7382
commit 7fe3ef2eaa53d439cec043727ea1998f4ff0e22a
5427
Author: Lasse Collin <lasse.collin@tukaani.org>
7383
Author: Lasse Collin <lasse.collin@tukaani.org>
5428
Date:   2012-04-19 14:17:52 +0300
7384
Date:   2020-02-21 16:10:44 +0200
5429
7385
5430
    DOS: Link against DJGPP's libemu to support FPU emulation.
7386
    xz: Silence a warning when sig_atomic_t is long int.
5431
    
7387
    
5432
    This way xz should work on 386SX and 486SX. Floating point
7388
    It can be true at least on z/OS.
5433
    only is needed for verbose output in xz.
5434
7389
5435
 dos/Makefile | 2 +-
7390
 src/xz/signals.c | 2 +-
5436
 1 file changed, 1 insertion(+), 1 deletion(-)
7391
 1 file changed, 1 insertion(+), 1 deletion(-)
5437
7392
5438
commit 03ed742a3a4931bb5c821357832083b26f577b13
7393
commit b0a2a77d10940c42b449d47a005bfc2e50ab5db8
5439
Author: Lasse Collin <lasse.collin@tukaani.org>
7394
Author: Lasse Collin <lasse.collin@tukaani.org>
5440
Date:   2012-04-19 14:02:25 +0300
7395
Date:   2020-02-21 15:59:26 +0200
5441
7396
5442
    liblzma: Fix Libs.private in liblzma.pc to include -lrt when needed.
7397
    xz: Avoid unneeded access of a volatile variable.
5443
7398
5444
 src/liblzma/liblzma.pc.in | 2 +-
7399
 src/xz/signals.c | 2 +-
5445
 1 file changed, 1 insertion(+), 1 deletion(-)
7400
 1 file changed, 1 insertion(+), 1 deletion(-)
5446
7401
5447
commit 8c5b13ad59df70f49429bfdfd6ac120b8f892fda
7402
commit 524c2f12c762032b819757aeda8af7c47c4cabce
5448
Author: Lasse Collin <lasse.collin@tukaani.org>
7403
Author: Lasse Collin <lasse.collin@tukaani.org>
5449
Date:   2012-04-19 13:58:55 +0300
7404
Date:   2020-02-21 01:24:18 +0200
5450
7405
5451
    Docs: Update MINIX 3 information in INSTALL.
7406
    tuklib_integer.m4: Optimize the check order.
7407
    
7408
    The __builtin byteswapping is the preferred one so check for it first.
5452
7409
5453
 INSTALL | 8 +++++---
7410
 m4/tuklib_integer.m4 | 56 +++++++++++++++++++++++++++-------------------------
5454
 1 file changed, 5 insertions(+), 3 deletions(-)
7411
 1 file changed, 29 insertions(+), 27 deletions(-)
5455
7412
5456
commit c7376fc415a1566f38b2de4b516a17013d516a8b
7413
commit 57360bb4fd79b358b36d2877db26ac828d1fdfcb
5457
Author: Lasse Collin <lasse.collin@tukaani.org>
7414
Author: Lasse Collin <lasse.collin@tukaani.org>
5458
Date:   2012-02-22 14:23:13 +0200
7415
Date:   2020-02-20 18:54:04 +0200
5459
7416
5460
    Update THANKS.
7417
    tuklib_exit: Add missing header.
7418
    
7419
    strerror() needs <string.h> which happened to be included via
7420
    tuklib_common.h -> tuklib_config.h -> sysdefs.h if HAVE_CONFIG_H
7421
    was defined. This wasn't tested without config.h before so it
7422
    had worked fine.
5461
7423
5462
 THANKS | 1 +
7424
 src/common/tuklib_exit.c | 1 +
5463
 1 file changed, 1 insertion(+)
7425
 1 file changed, 1 insertion(+)
5464
7426
5465
commit cff070aba6281ba743d29a62b8c0c66e5da4b2a6
7427
commit fddd31175e74a538997a939d930462fde17d2dd4
5466
Author: Lasse Collin <lasse.collin@tukaani.org>
7428
Author: Lasse Collin <lasse.collin@tukaani.org>
5467
Date:   2012-02-22 14:02:34 +0200
7429
Date:   2020-02-18 19:12:35 +0200
5468
7430
5469
    Fix exit status of xzgrep when grepping binary files.
7431
    Revert the previous commit and add a comment.
5470
    
7432
    
5471
    When grepping binary files, grep may exit before it has
7433
    The previous commit broke crc32_tablegen.c.
5472
    read all the input. In this case, gzip -q returns 2 (eating
5473
    SIGPIPE), but xz and bzip2 show SIGPIPE as the exit status
5474
    (e.g. 141). This causes wrong exit status when grepping
5475
    xz- or bzip2-compressed binary files.
5476
    
7434
    
5477
    The fix checks for the special exit status that indicates SIGPIPE.
7435
    If the whole package is built without config.h (with defines
5478
    It uses kill -l which should be supported everywhere since it
7436
    set on the compiler command line) this should still work fine
5479
    is in both SUSv2 (1997) and POSIX.1-2008.
7437
    as long as these headers conform to C99 well enough.
5480
    
5481
    Thanks to James Buren for the bug report.
5482
7438
5483
 src/scripts/xzgrep.in | 3 ++-
7439
 src/common/tuklib_config.h | 17 ++++++++++-------
5484
 1 file changed, 2 insertions(+), 1 deletion(-)
7440
 1 file changed, 10 insertions(+), 7 deletions(-)
5485
7441
5486
commit 41cafb2bf9beea915710ee68f05fe929cd17759c
7442
commit 4e4e9fbb7e66d45319525ac224bff48fbdd0cf6e
5487
Author: Lasse Collin <lasse.collin@tukaani.org>
7443
Author: Lasse Collin <lasse.collin@tukaani.org>
5488
Date:   2012-02-22 12:08:43 +0200
7444
Date:   2020-02-17 23:37:20 +0200
5489
7445
5490
    Update THANKS.
7446
    Do not check for HAVE_CONFIG_H in tuklib_config.h.
7447
    
7448
    In XZ Utils sysdefs.h takes care of it and the required headers.
5491
7449
5492
 THANKS | 1 +
7450
 src/common/tuklib_config.h | 15 +++++++--------
5493
 1 file changed, 1 insertion(+)
7451
 1 file changed, 7 insertions(+), 8 deletions(-)
5494
7452
5495
commit 2dcea03712fa881930d69ec9eff70855c3d126d9
7453
commit 2d4cef954feba82073951358466a1d614141cf33
5496
Author: Lasse Collin <lasse.collin@tukaani.org>
7454
Author: Lasse Collin <lasse.collin@tukaani.org>
5497
Date:   2012-02-22 12:00:16 +0200
7455
Date:   2020-02-16 11:18:28 +0200
5498
7456
5499
    Fix compiling with IBM XL C on AIX.
7457
    sysdefs.h: Omit the conditionals around string.h and limits.h.
7458
    
7459
    string.h is used unconditionally elsewhere in the project and
7460
    configure has always stopped if limits.h is missing, so these
7461
    headers must have been always available even on the weirdest
7462
    systems.
5500
7463
5501
 INSTALL      | 36 ++++++++++++++++++++++--------------
7464
 src/common/sysdefs.h | 8 ++------
5502
 configure.ac |  6 +++++-
7465
 1 file changed, 2 insertions(+), 6 deletions(-)
5503
 2 files changed, 27 insertions(+), 15 deletions(-)
5504
7466
5505
commit 7db6bdf4abcf524115be2cf5659ed540cef074c5
7467
commit feb9c1969bc3eb33d4ecb72cfa897f92dae84939
5506
Author: Lasse Collin <lasse.collin@tukaani.org>
7468
Author: Lasse Collin <lasse.collin@tukaani.org>
5507
Date:   2012-01-10 17:13:03 +0200
7469
Date:   2020-02-15 15:07:11 +0200
5508
7470
5509
    Tests: Fix a compiler warning with _FORTIFY_SOURCE.
7471
    Build: Bump Autoconf and Libtool version requirements.
5510
    
7472
    
5511
    Reported here:
7473
    There is no specific reason for this other than blocking
5512
    http://sourceforge.net/projects/lzmautils/forums/forum/708858/topic/4927385
7474
    the most ancient versions. These are still old:
7475
    
7476
    Autoconf 2.69 (2012)
7477
    Automake 1.12 (2012)
7478
    gettext 0.19.6 (2015)
7479
    Libtool 2.4 (2010)
5513
7480
5514
 tests/create_compress_files.c | 3 ++-
7481
 configure.ac | 4 ++--
5515
 1 file changed, 2 insertions(+), 1 deletion(-)
7482
 1 file changed, 2 insertions(+), 2 deletions(-)
5516
7483
5517
commit 694952d545b6cf056547893ced69486eff9ece55
7484
commit 3d576cf92158d62790017ad7f2dd6dc1dd6b42bb
5518
Author: Lasse Collin <lasse.collin@tukaani.org>
7485
Author: Lasse Collin <lasse.collin@tukaani.org>
5519
Date:   2011-12-19 21:21:29 +0200
7486
Date:   2020-02-15 03:08:32 +0200
5520
7487
5521
    Docs: Explain the stable releases better in README.
7488
    Build: Use AM_GNU_GETTEXT_REQUIRE_VERSION and require 0.19.6.
7489
    
7490
    This bumps the version requirement from 0.19 (from 2014) to
7491
    0.19.6 (2015).
7492
    
7493
    Using only the old AM_GNU_GETTEXT_VERSION results in old
7494
    gettext infrastructure being placed in the package. By using
7495
    both macros we get the latest gettext files while the other
7496
    programs in the Autotools family can still see the old macro.
5522
7497
5523
 README | 6 +++++-
7498
 configure.ac | 6 +++++-
5524
 1 file changed, 5 insertions(+), 1 deletion(-)
7499
 1 file changed, 5 insertions(+), 1 deletion(-)
5525
7500
5526
commit 418fe668b3c53a9a20020b6cc652aaf25c734b29
7501
commit fa792b8befaf7cb3960b655e0a9410da866d756f
5527
Author: Lasse Collin <lasse.collin@tukaani.org>
7502
Author: Lasse Collin <lasse.collin@tukaani.org>
5528
Date:   2011-11-07 13:07:52 +0200
7503
Date:   2020-02-14 20:42:06 +0200
5529
7504
5530
    xz: Show minimum required XZ Utils version in xz -lvv.
7505
    Translations: Add German translation of the man pages.
5531
    
7506
    
5532
    Man page wasn't updated yet.
7507
    Thanks to Mario Blättermann.
5533
7508
5534
 src/xz/list.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
7509
 po4a/de.po     | 5532 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5535
 1 file changed, 57 insertions(+), 6 deletions(-)
7510
 po4a/po4a.conf |    2 +-
7511
 2 files changed, 5533 insertions(+), 1 deletion(-)
5536
7512
5537
commit 7081d82c37326bac97184e338345fa1c327e3580
7513
commit 6f7211b6bb47a895b47f533282dba9ee9a1b0c8b
5538
Author: Lasse Collin <lasse.collin@tukaani.org>
7514
Author: Lasse Collin <lasse.collin@tukaani.org>
5539
Date:   2011-11-04 17:57:16 +0200
7515
Date:   2020-02-07 15:32:21 +0200
5540
7516
5541
    xz: Fix a typo in a comment.
7517
    Build: Add support for translated man pages using po4a.
5542
    
7518
    
5543
    Thanks to Bela Lubkin.
7519
    The dependency on po4a is optional. It's never required to install
7520
    the translated man pages when xz is built from a release tarball.
7521
    If po4a is missing when building from xz.git, the translated man
7522
    pages won't be generated but otherwise the build will work normally.
7523
    
7524
    The translations are only updated automatically by autogen.sh and
7525
    by "make mydist". This makes it easy to keep po4a as an optional
7526
    dependency and ensures that I won't forget to put updated
7527
    translations to a release tarball.
7528
    
7529
    The translated man pages aren't installed if --disable-nls is used.
7530
    
7531
    The installation of translated man pages abuses Automake internals
7532
    by calling "install-man" with redefined dist_man_MANS and man_MANS.
7533
    This makes the hairy script code slightly less hairy. If it breaks
7534
    some day, this code needs to be fixed; don't blame Automake developers.
7535
    
7536
    Also, this adds more quotes to the existing shell script code in
7537
    the Makefile.am "-hook"s.
5544
7538
5545
 src/xz/args.c | 2 +-
7539
 Makefile.am             |  4 ++++
5546
 1 file changed, 1 insertion(+), 1 deletion(-)
7540
 autogen.sh              |  8 ++++---
7541
 po4a/.gitignore         |  2 ++
7542
 po4a/po4a.conf          | 14 +++++++++++
7543
 po4a/update-po          | 45 ++++++++++++++++++++++++++++++++++
7544
 src/scripts/Makefile.am | 64 +++++++++++++++++++++++++++++++++++++------------
7545
 src/xz/Makefile.am      | 50 +++++++++++++++++++++++++++-----------
7546
 src/xzdec/Makefile.am   | 55 ++++++++++++++++++++++++++++++++----------
7547
 8 files changed, 197 insertions(+), 45 deletions(-)
5547
7548
5548
commit 232fe7cd70ad258d6a37f17e860e0f1b1891eeb5
7549
commit 426f9e5819ff7710a5ff573a96c02940be65d52f
5549
Author: Lasse Collin <lasse.collin@tukaani.org>
7550
Author: Lasse Collin <lasse.collin@tukaani.org>
5550
Date:   2011-11-03 17:08:02 +0200
7551
Date:   2020-02-06 17:31:38 +0200
5551
7552
5552
    Update THANKS.
7553
    Update THANKS.
5553
7554
5554
 THANKS | 1 +
7555
 THANKS | 1 +
5555
 1 file changed, 1 insertion(+)
7556
 1 file changed, 1 insertion(+)
5556
7557
5557
commit 74d2bae4d3449c68453b0473dd3430ce91fd90c1
7558
commit e3a4481d020e4de89efa037f335cf50f3ca55592
5558
Author: Lasse Collin <lasse.collin@tukaani.org>
7559
Author: Lasse Collin <lasse.collin@tukaani.org>
5559
Date:   2011-11-03 17:07:22 +0200
7560
Date:   2020-02-05 22:35:06 +0200
5560
7561
5561
    xz: Fix xz on EBCDIC systems.
7562
    Update tests/.gitignore.
5562
    
5563
    Thanks to Chris Donawa.
5564
7563
5565
 src/xz/coder.c | 5 ++++-
7564
 .gitignore | 4 ++++
5566
 1 file changed, 4 insertions(+), 1 deletion(-)
7565
 1 file changed, 4 insertions(+)
5567
7566
5568
commit 4ac4923f47cc0ef97dd9ca5cfcc44fc53eeab34a
7567
commit 07208de92f2d5bca764f6d0ebe9d9866051dc4ef
5569
Author: Lasse Collin <lasse.collin@tukaani.org>
7568
Author: Lasse Collin <lasse.collin@tukaani.org>
5570
Date:   2011-10-23 17:09:10 +0300
7569
Date:   2020-02-05 22:28:51 +0200
5571
7570
5572
    Update THANKS.
7571
    Update m4/.gitignore.
5573
7572
5574
 THANKS | 1 +
7573
 m4/.gitignore | 1 +
5575
 1 file changed, 1 insertion(+)
7574
 1 file changed, 1 insertion(+)
5576
7575
5577
commit ab50ae3ef40c81e5bf613905ca3fd636548b75e7
7576
commit c91fbf223db46c3b3cb9df769863a1a60cd9c908
5578
Author: Lasse Collin <lasse.collin@tukaani.org>
7577
Author: Lasse Collin <lasse.collin@tukaani.org>
5579
Date:   2011-10-23 17:08:14 +0300
7578
Date:   2020-02-05 20:47:38 +0200
5580
7579
5581
    liblzma: Fix invalid free() in the threaded encoder.
7580
    Update THANKS.
5582
    
5583
    It was triggered if initialization failed e.g. due to
5584
    running out of memory.
5585
    
5586
    Thanks to Arkadiusz Miskiewicz.
5587
7581
5588
 src/liblzma/common/outqueue.c | 4 ++++
7582
 THANKS | 1 +
5589
 1 file changed, 4 insertions(+)
7583
 1 file changed, 1 insertion(+)
5590
7584
5591
commit 6b620a0f0813d28c3c544b4ff8cb595b38a6e908
7585
commit 15a133b6d1a3eab4faf6eb52a71fdc56bd65846f
5592
Author: Lasse Collin <lasse.collin@tukaani.org>
7586
Author: Lasse Collin <lasse.collin@tukaani.org>
5593
Date:   2011-10-23 17:05:55 +0300
7587
Date:   2020-02-05 20:40:14 +0200
5594
7588
5595
    liblzma: Fix a deadlock in the threaded encoder.
7589
    xz: Make it a fatal error if enabling the sandbox fails.
5596
    
7590
    
5597
    It was triggered when reinitializing the encoder,
7591
    Perhaps it's too drastic but on the other hand it will let me
5598
    e.g. when encoding two files.
7592
    learn about possible problems if people report the errors.
7593
    This won't be backported to the v5.2 branch.
5599
7594
5600
 src/liblzma/common/stream_encoder_mt.c | 4 +++-
7595
 src/xz/file_io.c | 2 +-
5601
 1 file changed, 3 insertions(+), 1 deletion(-)
7596
 1 file changed, 1 insertion(+), 1 deletion(-)
5602
7597
5603
commit bd52cf150ecd51e3ab63a9cc1a3cff6a77500178
7598
commit af0fb386ef55db66654ae39e2deec6e04190c4ff
5604
Author: Lasse Collin <lasse.collin@tukaani.org>
7599
Author: Lasse Collin <lasse.collin@tukaani.org>
5605
Date:   2011-09-06 12:03:41 +0300
7600
Date:   2020-02-05 20:33:50 +0200
5606
7601
5607
    Build: Fix "make check" on Windows.
7602
    xz: Comment out annoying sandboxing messages.
5608
7603
5609
 tests/Makefile.am  | 7 +++++--
7604
 src/xz/file_io.c | 10 +++++++---
5610
 windows/build.bash | 2 ++
7605
 1 file changed, 7 insertions(+), 3 deletions(-)
5611
 2 files changed, 7 insertions(+), 2 deletions(-)
5612
7606
5613
commit 5c5b2256969ac473001b7d67615ed3bd0a54cc82
7607
commit 986d8c9b52b824474088e5bb3b6940651660f0e2
5614
Author: Lasse Collin <lasse.collin@tukaani.org>
7608
Author: Lasse Collin <lasse.collin@tukaani.org>
5615
Date:   2011-08-09 21:19:13 +0300
7609
Date:   2020-02-05 19:33:37 +0200
5616
7610
5617
    Update THANKS.
7611
    Build: Workaround a POSIX shell detection problem on Solaris.
7612
    
7613
    I don't know if the problem is in gnulib's gl_POSIX_SHELL macro
7614
    or if xzgrep does something that isn't in POSIX. The workaround
7615
    adds a special case for Solaris: if /usr/xpg4/bin/sh exists and
7616
    gl_cv_posix_shell wasn't overriden on the configure command line,
7617
    use that shell for xzgrep and other scripts. That shell is known
7618
    to work and exists on most Solaris systems.
5618
7619
5619
 THANKS | 2 ++
7620
 configure.ac | 10 ++++++++++
5620
 1 file changed, 2 insertions(+)
7621
 1 file changed, 10 insertions(+)
5621
7622
5622
commit 5b1e1f10741af9e4bbe4cfc3261fb7c7b04f7809
7623
commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad
5623
Author: Lasse Collin <lasse.collin@tukaani.org>
7624
Author: Lasse Collin <lasse.collin@tukaani.org>
5624
Date:   2011-08-09 21:16:44 +0300
7625
Date:   2020-02-03 22:03:50 +0200
5625
7626
5626
    Workaround unusual SIZE_MAX on SCO OpenServer.
7627
    Build: Update m4/ax_pthread.m4 from Autoconf Archive.
5627
7628
5628
 src/common/sysdefs.h | 9 ++++++---
7629
 m4/ax_pthread.m4 | 398 ++++++++++++++++++++++++++++++++++++++-----------------
5629
 1 file changed, 6 insertions(+), 3 deletions(-)
7630
 1 file changed, 279 insertions(+), 119 deletions(-)
5630
7631
5631
commit e9ed88126eee86e2511fa42681a5c7104820cf0a
7632
commit 353970510895f6a80adfe60cf71b70a95adfa8bc
5632
Author: Lasse Collin <lasse.collin@tukaani.org>
7633
Author: Lasse Collin <lasse.collin@tukaani.org>
5633
Date:   2011-08-06 20:37:28 +0300
7634
Date:   2020-02-01 19:56:18 +0200
5634
7635
5635
    Run the scripts with the correct shell in test_scripts.sh.
7636
    xz: Limit --memlimit-compress to at most 4020 MiB for 32-bit xz.
5636
    
7637
    
5637
    The scripts are now made executable in the build tree.
7638
    See the code comment for reasoning. It's far from perfect but
5638
    This way the scripts can be run like programs in
7639
    hopefully good enough for certain cases while hopefully doing
5639
    test_scripts.sh. Previously test_scripts.sh always
7640
    nothing bad in other situations.
5640
    used sh but it's not correct if @POSIX_SHELL@ is set
5641
    to something else by configure.
5642
    
7641
    
5643
    Thanks to Jonathan Nieder for the patch.
7642
    At presets -5 ... -9, 4020 MiB vs. 4096 MiB makes no difference
7643
    on how xz scales down the number of threads.
7644
    
7645
    The limit has to be a few MiB below 4096 MiB because otherwise
7646
    things like "xz --lzma2=dict=500MiB" won't scale down the dict
7647
    size enough and xz cannot allocate enough memory. With
7648
    "ulimit -v $((4096 * 1024))" on x86-64, the limit in xz had
7649
    to be no more than 4085 MiB. Some safety margin is good though.
7650
    
7651
    This is hack but it should be useful when running 32-bit xz on
7652
    a 64-bit kernel that gives full 4 GiB address space to xz.
7653
    Hopefully this is enough to solve this:
7654
    
7655
    https://bugzilla.redhat.com/show_bug.cgi?id=1196786
7656
    
7657
    FreeBSD has a patch that limits the result in tuklib_physmem()
7658
    to SIZE_MAX on 32-bit systems. While I think it's not the way
7659
    to do it, the results on --memlimit-compress have been good. This
7660
    commit should achieve practically identical results for compression
7661
    while leaving decompression and tuklib_physmem() and thus
7662
    lzma_physmem() unaffected.
5644
7663
5645
 configure.ac          | 8 ++++----
7664
 src/xz/hardware.c | 32 +++++++++++++++++++++++++++++++-
5646
 tests/test_scripts.sh | 8 ++++----
7665
 src/xz/xz.1       | 21 ++++++++++++++++++++-
5647
 2 files changed, 8 insertions(+), 8 deletions(-)
7666
 2 files changed, 51 insertions(+), 2 deletions(-)
5648
7667
5649
commit 1c673e5681720491a74fc4b2992e075f47302c22
7668
commit ba76d67585f88677af9f48b48e7bdc3bb7687def
5650
Author: Lasse Collin <lasse.collin@tukaani.org>
7669
Author: Lasse Collin <lasse.collin@tukaani.org>
5651
Date:   2011-07-31 11:01:47 +0300
7670
Date:   2020-01-26 20:53:25 +0200
5652
7671
5653
    Fix exit status of "xzdiff foo.xz bar.xz".
7672
    xz: Set the --flush-timeout deadline when the first input byte arrives.
5654
    
7673
    
5655
    xzdiff was clobbering the exit status from diff in a case
7674
    xz --flush-timeout=2000, old version:
5656
    statement used to analyze the exit statuses from "xz" when
5657
    its operands were two compressed files. Save and restore
5658
    diff's exit status to fix this.
5659
    
7675
    
5660
    The bug is inherited from zdiff in GNU gzip and was fixed
7676
      1. xz is started. The next flush will happen after two seconds.
5661
    there on 2009-10-09.
7677
      2. No input for one second.
7678
      3. A burst of a few kilobytes of input.
7679
      4. No input for one second.
7680
      5. Two seconds have passed and flushing starts.
5662
    
7681
    
5663
    Thanks to Jonathan Nieder for the patch and
7682
    The first second counted towards the flush-timeout even though
5664
    to Peter Pallinger for reporting the bug.
7683
    there was no pending data. This can cause flushing to occur more
7684
    often than needed.
7685
    
7686
    xz --flush-timeout=2000, after this commit:
7687
    
7688
      1. xz is started.
7689
      2. No input for one second.
7690
      3. A burst of a few kilobytes of input. The next flush will
7691
         happen after two seconds counted from the time when the
7692
         first bytes of the burst were read.
7693
      4. No input for one second.
7694
      5. No input for another second.
7695
      6. Two seconds have passed and flushing starts.
5665
7696
5666
 src/scripts/xzdiff.in |  2 ++
7697
 src/xz/coder.c   | 6 +-----
5667
 tests/Makefile.am     |  4 +++-
7698
 src/xz/file_io.c | 6 +++++-
5668
 tests/test_scripts.sh | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++
7699
 src/xz/mytime.c  | 1 -
5669
 3 files changed, 59 insertions(+), 1 deletion(-)
7700
 3 files changed, 6 insertions(+), 7 deletions(-)
5670
7701
5671
commit 324cde7a864f4506c32ae7846d688c359a83fe65
7702
commit fd47fd62bbb1bfd13ab63869137971d8b390025f
5672
Author: Lasse Collin <lasse.collin@tukaani.org>
7703
Author: Lasse Collin <lasse.collin@tukaani.org>
5673
Date:   2011-06-16 12:15:29 +0300
7704
Date:   2020-01-26 20:19:19 +0200
5674
7705
5675
    liblzma: Remove unneeded semicolon.
7706
    xz: Move flush_needed from mytime.h to file_pair struct in file_io.h.
5676
7707
5677
 src/liblzma/lz/lz_encoder_hash.h | 2 +-
7708
 src/xz/coder.c   | 3 ++-
5678
 1 file changed, 1 insertion(+), 1 deletion(-)
7709
 src/xz/file_io.c | 3 ++-
7710
 src/xz/file_io.h | 3 +++
7711
 src/xz/mytime.c  | 3 ---
7712
 src/xz/mytime.h  | 4 ----
7713
 5 files changed, 7 insertions(+), 9 deletions(-)
5679
7714
5680
commit 492c86345551a51a29bf18e55fe55a5e86f169ce
7715
commit 815035681063d5774d3640fc20b8ede783dd574e
5681
Author: Lasse Collin <lasse.collin@tukaani.org>
7716
Author: Lasse Collin <lasse.collin@tukaani.org>
5682
Date:   2011-05-28 19:24:56 +0300
7717
Date:   2020-01-26 14:49:22 +0200
5683
7718
5684
    Build: Make configure print if symbol versioning is enabled or not.
7719
    xz: coder.c: Make writing output a separate function.
7720
    
7721
    The same code sequence repeats so it's nicer as a separate function.
7722
    Note that in one case there was no test for opt_mode != MODE_TEST,
7723
    but that was only because that condition would always be true, so
7724
    this commit doesn't change the behavior there.
5685
7725
5686
 configure.ac | 2 ++
7726
 src/xz/coder.c | 30 +++++++++++++++++-------------
5687
 1 file changed, 2 insertions(+)
7727
 1 file changed, 17 insertions(+), 13 deletions(-)
5688
7728
5689
commit fc4d4436969bd4d71b704d400a165875e596034a
7729
commit 5a49e081a098455bcdbd95cefb90e9b18780fe58
5690
Author: Lasse Collin <lasse.collin@tukaani.org>
7730
Author: Lasse Collin <lasse.collin@tukaani.org>
5691
Date:   2011-05-28 16:43:26 +0300
7731
Date:   2020-01-26 14:13:42 +0200
5692
7732
5693
    Don't call close(-1) in tuklib_open_stdxxx() on error.
7733
    xz: Fix semi-busy-waiting in xz --flush-timeout.
5694
    
7734
    
5695
    Thanks to Jim Meyering.
7735
    When input blocked, xz --flush-timeout=1 would wake up every
7736
    millisecond and initiate flushing which would have nothing to
7737
    flush and thus would just waste CPU time. The fix disables the
7738
    timeout when no input has been seen since the previous flush.
5696
7739
5697
 src/common/tuklib_open_stdxxx.c | 4 +++-
7740
 src/xz/coder.c   |  4 ++++
5698
 1 file changed, 3 insertions(+), 1 deletion(-)
7741
 src/xz/file_io.c | 15 +++++++++++----
7742
 src/xz/file_io.h |  4 ++++
7743
 3 files changed, 19 insertions(+), 4 deletions(-)
5699
7744
5700
commit bd35d903a04c4d388adb4065b0fa271302380895
7745
commit dcca70fe9fa3c4bec56cf9c79e966166c9a9cf6a
5701
Author: Lasse Collin <lasse.collin@tukaani.org>
7746
Author: Lasse Collin <lasse.collin@tukaani.org>
5702
Date:   2011-05-28 15:55:39 +0300
7747
Date:   2020-01-26 13:47:31 +0200
5703
7748
5704
    liblzma: Use symbol versioning.
7749
    xz: Refactor io_read() a bit.
5705
    
5706
    Symbol versioning is enabled by default on GNU/Linux,
5707
    other GNU-based systems, and FreeBSD.
5708
    
5709
    I'm not sure how stable this is, so it may need
5710
    backward-incompatible changes before the next release.
5711
    
5712
    The idea is that alpha and beta symbols are considered
5713
    unstable and require recompiling the applications that
5714
    use those symbols. Once a symbol is stable, it may get
5715
    extended with new features in ways that don't break
5716
    compatibility with older ABI & API.
5717
    
5718
    The mydist target runs validate_map.sh which should
5719
    catch some probable problems in liblzma.map. Otherwise
5720
    I would forget to update the map file for new releases.
5721
7750
5722
 Makefile.am                 |   1 +
7751
 src/xz/file_io.c | 17 ++++++++---------
5723
 configure.ac                |  21 +++++++++
7752
 1 file changed, 8 insertions(+), 9 deletions(-)
5724
 src/liblzma/Makefile.am     |   6 +++
5725
 src/liblzma/liblzma.map     | 105 ++++++++++++++++++++++++++++++++++++++++++++
5726
 src/liblzma/validate_map.sh |  68 ++++++++++++++++++++++++++++
5727
 5 files changed, 201 insertions(+)
5728
7753
5729
commit afbb244362c9426a37ce4eb9d54aab768da3adad
7754
commit 4ae9ab70cd3214395756435d13d8d000368ca2cb
5730
Author: Lasse Collin <lasse.collin@tukaani.org>
7755
Author: Lasse Collin <lasse.collin@tukaani.org>
5731
Date:   2011-05-28 09:46:46 +0300
7756
Date:   2020-01-26 13:37:08 +0200
5732
7757
5733
    Translations: Update the Italian translation.
7758
    xz: Update a comment in file_io.h.
5734
    
5735
    Thanks to Milo Casagrande.
5736
7759
5737
 po/it.po | 365 +++++++++++++++++++++++++++++++++++++--------------------------
7760
 src/xz/file_io.h | 5 ++++-
5738
 1 file changed, 216 insertions(+), 149 deletions(-)
7761
 1 file changed, 4 insertions(+), 1 deletion(-)
5739
7762
5740
commit 79bef85e0543c0c3723281c3c817616c6cec343b
7763
commit 3333ba4a6795a55cf0375329ba08152bd7fcbd46
5741
Author: Lasse Collin <lasse.collin@tukaani.org>
7764
Author: Lasse Collin <lasse.collin@tukaani.org>
5742
Date:   2011-05-28 08:46:04 +0300
7765
Date:   2020-01-26 13:27:51 +0200
5743
7766
5744
    Tests: Add a test file for the bug in the previous commit.
7767
    xz: Move the setting of flush_needed in file_io.c to a nicer location.
5745
7768
5746
 tests/files/README                  |   4 ++++
7769
 src/xz/file_io.c | 6 ++----
5747
 tests/files/bad-1-block_header-6.xz | Bin 0 -> 72 bytes
7770
 1 file changed, 2 insertions(+), 4 deletions(-)
5748
 2 files changed, 4 insertions(+)
5749
7771
5750
commit c0297445064951807803457dca1611b3c47e7f0f
7772
commit cf2df0f05ac98c1158c6e48145900b773223605d
5751
Author: Lasse Collin <lasse.collin@tukaani.org>
7773
Author: Lasse Collin <lasse.collin@tukaani.org>
5752
Date:   2011-05-27 22:25:44 +0300
7774
Date:   2020-01-19 21:54:33 +0200
5753
7775
5754
    xz: Fix error handling in xz -lvv.
7776
    Use $(LIB_FUZZING_ENGINE) in tests/ossfuzz/Makefile.
5755
    
7777
    
5756
    It could do an invalid free() and read past the end
7778
    https://github.com/google/oss-fuzz/pull/3219#issuecomment-573751048
5757
    of the uninitialized filters array.
7779
    
7780
    Thanks to Bhargava Shastry for sending the patch.
5758
7781
5759
 src/xz/list.c | 21 ++++++---------------
7782
 tests/ossfuzz/Makefile | 2 +-
5760
 1 file changed, 6 insertions(+), 15 deletions(-)
7783
 1 file changed, 1 insertion(+), 1 deletion(-)
5761
7784
5762
commit 8bd91918ac50731f00b1a2a48072980572eb2ff9
7785
commit 7136f1735c60ac6967c4b8e277fcde53d485234f
5763
Author: Lasse Collin <lasse.collin@tukaani.org>
7786
Author: Lasse Collin <lasse.collin@tukaani.org>
5764
Date:   2011-05-27 22:09:49 +0300
7787
Date:   2019-12-31 00:41:28 +0200
5765
7788
5766
    liblzma: Handle allocation failures correctly in lzma_index_init().
7789
    Rename unaligned_read32ne to read32ne, and similarly for the others.
5767
    
5768
    Thanks to Jim Meyering.
5769
7790
5770
 src/liblzma/common/index.c | 7 +++++--
7791
 src/common/tuklib_integer.h               | 64 +++++++++++++++----------------
5771
 1 file changed, 5 insertions(+), 2 deletions(-)
7792
 src/liblzma/common/alone_encoder.c        |  2 +-
7793
 src/liblzma/common/block_header_decoder.c |  2 +-
7794
 src/liblzma/common/block_header_encoder.c |  2 +-
7795
 src/liblzma/common/memcmplen.h            |  9 ++---
7796
 src/liblzma/common/stream_flags_decoder.c |  6 +--
7797
 src/liblzma/common/stream_flags_encoder.c |  8 ++--
7798
 src/liblzma/lz/lz_encoder_hash.h          |  2 +-
7799
 src/liblzma/lzma/lzma_decoder.c           |  2 +-
7800
 src/liblzma/lzma/lzma_encoder.c           |  2 +-
7801
 src/liblzma/lzma/lzma_encoder_private.h   |  3 +-
7802
 src/liblzma/simple/simple_decoder.c       |  2 +-
7803
 src/liblzma/simple/simple_encoder.c       |  2 +-
7804
 tests/test_block_header.c                 |  4 +-
7805
 tests/test_stream_flags.c                 |  6 +--
7806
 15 files changed, 54 insertions(+), 62 deletions(-)
5772
7807
5773
commit fe00f95828ef5627721b57e054f7eb2d42a2c961
7808
commit 5e78fcbf2eb21936022c9c5c3625d4da76f4b241
5774
Author: Lasse Collin <lasse.collin@tukaani.org>
7809
Author: Lasse Collin <lasse.collin@tukaani.org>
5775
Date:   2011-05-24 00:23:46 +0300
7810
Date:   2019-12-31 00:29:48 +0200
5776
7811
5777
    Build: Fix checking for system-provided SHA-256.
7812
    Rename read32ne to aligned_read32ne, and similarly for the others.
7813
    
7814
    Using the aligned methods requires more care to ensure that
7815
    the address really is aligned, so it's nicer if the aligned
7816
    methods are prefixed. The next commit will remove the unaligned_
7817
    prefix from the unaligned methods which in liblzma are used in
7818
    more places than the aligned ones.
5778
7819
5779
 configure.ac | 2 +-
7820
 src/common/tuklib_integer.h    | 56 +++++++++++++++++++++---------------------
5780
 1 file changed, 1 insertion(+), 1 deletion(-)
7821
 src/liblzma/check/crc32_fast.c |  4 +--
7822
 src/liblzma/check/crc64_fast.c |  4 +--
7823
 3 files changed, 32 insertions(+), 32 deletions(-)
5781
7824
5782
commit 21b45b9bab541f419712cbfd473ccc31802e0397
7825
commit 77bc5bc6dd67056cfd5888520ac930cfc57b4516
5783
Author: Lasse Collin <lasse.collin@tukaani.org>
7826
Author: Lasse Collin <lasse.collin@tukaani.org>
5784
Date:   2011-05-23 18:30:30 +0300
7827
Date:   2019-12-31 00:18:24 +0200
5785
7828
5786
    Build: Set GZIP_ENV=-9n in top-level Makefile.am.
7829
    Revise tuklib_integer.h and .m4.
7830
    
7831
    Add a configure option --enable-unsafe-type-punning to get the
7832
    old non-conforming memory access methods. It can be useful with
7833
    old compilers or in some other less typical situations but
7834
    shouldn't normally be used.
7835
    
7836
    Omit the packed struct trick for unaligned access. While it's
7837
    best in some cases, this is simpler. If the memcpy trick doesn't
7838
    work, one can request unsafe type punning from configure.
7839
    
7840
    Because CRC32/CRC64 code needs fast aligned reads, if no very
7841
    safe way to do it is found, type punning is used as a fallback.
7842
    This sucks but since it currently works in practice, it seems to
7843
    be the least bad option. It's never needed with GCC >= 4.7 or
7844
    Clang >= 3.6 since these support __builtin_assume_aligned and
7845
    thus fast aligned access can be done with the memcpy trick.
7846
    
7847
    Other things:
7848
      - Support GCC/Clang __builtin_bswapXX
7849
      - Cleaner bswap fallback macros
7850
      - Minor cleanups
5787
7851
5788
 Makefile.am | 3 +++
7852
 m4/tuklib_integer.m4        |  46 ++++-
5789
 1 file changed, 3 insertions(+)
7853
 src/common/tuklib_integer.h | 488 ++++++++++++++++++++++++--------------------
7854
 2 files changed, 316 insertions(+), 218 deletions(-)
5790
7855
5791
commit 48053e8a4550233af46359024538bff90c870ab1
7856
commit 8b72950a6b2e2a36c2d8fdc8857564b57191b088
5792
Author: Lasse Collin <lasse.collin@tukaani.org>
7857
Author: Lasse Collin <lasse.collin@tukaani.org>
5793
Date:   2011-05-22 16:42:11 +0300
7858
Date:   2019-12-29 22:51:58 +0200
5794
7859
5795
    Update NEWS for 5.0.3.
7860
    Tests: Hopefully fix test_check.c to work on EBCDIC systems.
7861
    
7862
    Thanks to Daniel Richard G.
5796
7863
5797
 NEWS | 32 ++++++++++++++++++++++++++++++++
7864
 tests/test_check.c | 9 +++++++--
5798
 1 file changed, 32 insertions(+)
7865
 1 file changed, 7 insertions(+), 2 deletions(-)
5799
7866
5800
commit bba37df2c9e54ad773e15ff00a09d2d6989fb3b2
7867
commit 43ce4ea7c762238d3df9717b34126d3e0d7cd51c
5801
Author: Lasse Collin <lasse.collin@tukaani.org>
7868
Author: Lasse Collin <lasse.collin@tukaani.org>
5802
Date:   2011-05-21 16:28:44 +0300
7869
Date:   2019-09-24 23:02:40 +0300
5803
7870
5804
    Add French translation.
7871
    Scripts: Put /usr/xpg4/bin to the beginning of PATH on Solaris.
5805
    
7872
    
5806
    It is known that the BCJ filter --help text is only
7873
    This adds a configure option --enable-path-for-scripts=PREFIX
5807
    partially translated.
7874
    which defaults to empty except on Solaris it is /usr/xpg4/bin
7875
    to make POSIX grep and others available. The Solaris case had
7876
    been documented in INSTALL with a manual fix but it's better
7877
    to do this automatically since it is needed on most Solaris
7878
    systems anyway.
7879
    
7880
    Thanks to Daniel Richard G.
5808
7881
5809
 po/LINGUAS |   1 +
7882
 INSTALL               | 43 +++++++++++++++++++++++++++++++++++--------
5810
 po/fr.po   | 864 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
7883
 configure.ac          | 26 ++++++++++++++++++++++++++
5811
 2 files changed, 865 insertions(+)
7884
 src/scripts/xzdiff.in |  1 +
7885
 src/scripts/xzgrep.in |  1 +
7886
 src/scripts/xzless.in |  1 +
7887
 src/scripts/xzmore.in |  1 +
7888
 6 files changed, 65 insertions(+), 8 deletions(-)
5812
7889
5813
commit 4161d7634965a7a287bf208dcd79f6185f448fe8
7890
commit 6a89e656ebedd53a10cd1a063a32a9e4ade0da1f
5814
Author: Lasse Collin <lasse.collin@tukaani.org>
7891
Author: Lasse Collin <lasse.collin@tukaani.org>
5815
Date:   2011-05-21 15:12:10 +0300
7892
Date:   2019-07-12 18:57:43 +0300
5816
7893
5817
    xz: Translate also the string used to print the program name.
7894
    Fix comment typos in tuklib_mbstr* files.
5818
    
5819
    French needs a space before a colon, e.g. "xz : foo error".
5820
7895
5821
 src/xz/message.c | 6 +++++-
7896
 src/common/tuklib_mbstr.h       | 2 +-
5822
 1 file changed, 5 insertions(+), 1 deletion(-)
7897
 src/common/tuklib_mbstr_fw.c    | 2 +-
7898
 src/common/tuklib_mbstr_width.c | 2 +-
7899
 3 files changed, 3 insertions(+), 3 deletions(-)
5823
7900
5824
commit b94aa0c8380cdb18cddb33440d625474c16643cf
7901
commit ac0b4212656a48ef0c187c0c941d40ac9489ae36
5825
Author: Lasse Collin <lasse.collin@tukaani.org>
7902
Author: Lasse Collin <lasse.collin@tukaani.org>
5826
Date:   2011-05-21 15:08:44 +0300
7903
Date:   2019-07-12 18:30:46 +0300
5827
7904
5828
    liblzma: Try to use SHA-256 from the operating system.
7905
    Add missing include to tuklib_mbstr_width.c.
5829
    
7906
    
5830
    If the operating system libc or other base libraries
7907
    It didn't matter in XZ Utils because sysdefs.h
5831
    provide SHA-256, use that instead of our own copy.
7908
    includes string.h anyway.
5832
    Note that this doesn't use OpenSSL or libgcrypt or
5833
    such libraries to avoid creating dependencies to
5834
    other packages.
5835
    
5836
    This supports at least FreeBSD, NetBSD, OpenBSD, Solaris,
5837
    MINIX, and Darwin. They all provide similar but not
5838
    identical SHA-256 APIs; everyone is a little different.
5839
    
5840
    Thanks to Wim Lewis for the original patch, improvements,
5841
    and testing.
5842
7909
5843
 configure.ac                   | 54 +++++++++++++++++++++++++++
7910
 src/common/tuklib_mbstr_width.c | 1 +
5844
 src/liblzma/check/Makefile.inc |  2 +
7911
 1 file changed, 1 insertion(+)
5845
 src/liblzma/check/check.h      | 83 ++++++++++++++++++++++++++++++++++++++----
5846
 3 files changed, 131 insertions(+), 8 deletions(-)
5847
7912
5848
commit f004128678d43ea10b4a6401aa184cf83252d6ec
7913
commit 72a443281fb0b91aebf8cdff2ab1f7c07b081240
5849
Author: Lasse Collin <lasse.collin@tukaani.org>
7914
Author: Lasse Collin <lasse.collin@tukaani.org>
5850
Date:   2011-05-17 12:52:18 +0300
7915
Date:   2019-07-12 18:10:57 +0300
5851
7916
5852
    Don't use clockid_t in mythread.h when clock_gettime() isn't available.
7917
    Update tuklib base headers to include stdbool.h.
5853
    
5854
    Thanks to Wim Lewis for the patch.
5855
7918
5856
 src/common/mythread.h | 2 ++
7919
 src/common/tuklib_common.h | 2 +-
5857
 1 file changed, 2 insertions(+)
7920
 src/common/tuklib_config.h | 1 +
7921
 2 files changed, 2 insertions(+), 1 deletion(-)
5858
7922
5859
commit f779516f42ebd2db47a5b7d6143459bf7737cf2f
7923
commit de1f47b2b40e960b7bc3acba754f66dd19705921
5860
Author: Lasse Collin <lasse.collin@tukaani.org>
7924
Author: Lasse Collin <lasse.collin@tukaani.org>
5861
Date:   2011-05-17 12:26:28 +0300
7925
Date:   2019-06-28 00:54:31 +0300
5862
7926
5863
    Update THANKS.
7927
    xz: Automatically align the strings in --info-memory.
7928
    
7929
    This makes it easier to translate the strings.
7930
    
7931
    Also, the string for amount of RAM was shortened.
5864
7932
5865
 THANKS | 3 +++
7933
 src/xz/hardware.c | 45 ++++++++++++++++++++++++++++++++++-----------
5866
 1 file changed, 3 insertions(+)
7934
 1 file changed, 34 insertions(+), 11 deletions(-)
5867
7935
5868
commit 830ba587775bb562f6eaf05cad61bf669d1f8892
7936
commit 8ce679125dbd0e2058d8f886e738d7f19a45cab5
5869
Author: Lasse Collin <lasse.collin@tukaani.org>
7937
Author: Lasse Collin <lasse.collin@tukaani.org>
5870
Date:   2011-05-17 12:21:33 +0300
7938
Date:   2019-06-25 23:15:21 +0300
5871
7939
5872
    Update INSTALL with a note about linker problem on OpenSolaris x86.
7940
    liblzma: Fix a buggy comment.
5873
7941
5874
 INSTALL | 23 +++++++++++++++++------
7942
 src/liblzma/lz/lz_encoder_mf.c | 2 +-
5875
 1 file changed, 17 insertions(+), 6 deletions(-)
7943
 1 file changed, 1 insertion(+), 1 deletion(-)
5876
7944
5877
commit ec7106309c8060e9c646dba20c4f15689a0bbb04
7945
commit fc77929e92e869f6869bf88931066103fd75f376
5878
Author: Lasse Collin <lasse.collin@tukaani.org>
7946
Author: Lasse Collin <lasse.collin@tukaani.org>
5879
Date:   2011-05-17 12:01:37 +0300
7947
Date:   2019-06-25 00:16:06 +0300
5880
7948
5881
    Build: Fix initialization of enable_check_* variables in configure.ac.
7949
    configure.ac: Fix a typo in a comment.
5882
    
5883
    This doesn't matter much in practice since it is unlikely
5884
    that anyone would have such environment variable names.
5885
    
5886
    Thanks to Wim Lewis.
5887
7950
5888
 configure.ac | 2 +-
7951
 configure.ac | 2 +-
5889
 1 file changed, 1 insertion(+), 1 deletion(-)
7952
 1 file changed, 1 insertion(+), 1 deletion(-)
5890
7953
5891
commit 4c6e146df99696920f12410fb17754412797ef36
7954
commit e873902641794210ad7db59743f98e3e1cd6139f
5892
Author: Lasse Collin <lasse.collin@tukaani.org>
7955
Author: Lasse Collin <lasse.collin@tukaani.org>
5893
Date:   2011-05-17 11:54:38 +0300
7956
Date:   2019-06-25 00:08:13 +0300
5894
7957
5895
    Add underscores to attributes (__attribute((__foo__))).
7958
    Tests: Silence warnings from clang -Wassign-enum.
7959
    
7960
    Also changed 999 to 99 so it fits even if lzma_check happened
7961
    to be 8 bits wide.
5896
7962
5897
 src/liblzma/common/alone_decoder.c |  2 +-
7963
 tests/test_block_header.c | 3 ++-
5898
 src/liblzma/common/alone_encoder.c |  2 +-
7964
 tests/test_stream_flags.c | 2 +-
5899
 src/liblzma/common/block_encoder.c |  2 +-
7965
 2 files changed, 3 insertions(+), 2 deletions(-)
5900
 src/liblzma/common/common.c        |  2 +-
5901
 src/liblzma/common/common.h        |  2 +-
5902
 src/liblzma/common/index_decoder.c |  9 +++++----
5903
 src/liblzma/common/index_encoder.c | 11 ++++++-----
5904
 src/liblzma/delta/delta_encoder.c  |  2 +-
5905
 src/liblzma/lz/lz_decoder.c        |  2 +-
5906
 src/liblzma/lz/lz_encoder.c        |  2 +-
5907
 src/liblzma/simple/arm.c           |  2 +-
5908
 src/liblzma/simple/armthumb.c      |  2 +-
5909
 src/liblzma/simple/ia64.c          |  2 +-
5910
 src/liblzma/simple/powerpc.c       |  2 +-
5911
 src/liblzma/simple/simple_coder.c  |  2 +-
5912
 src/liblzma/simple/sparc.c         |  2 +-
5913
 src/lzmainfo/lzmainfo.c            |  4 ++--
5914
 src/xz/coder.c                     |  2 +-
5915
 src/xz/hardware.h                  |  2 +-
5916
 src/xz/message.c                   |  2 +-
5917
 src/xz/message.h                   | 18 +++++++++---------
5918
 src/xz/options.c                   |  6 +++---
5919
 src/xz/signals.c                   |  2 +-
5920
 src/xz/util.h                      |  6 +++---
5921
 src/xzdec/xzdec.c                  |  6 +++---
5922
 25 files changed, 49 insertions(+), 47 deletions(-)
5923
7966
5924
commit 7a480e485938884ef3021b48c3b0b9f9699dc9b6
7967
commit d499e467d99efeaae688564eedc4548837c1416a
5925
Author: Lasse Collin <lasse.collin@tukaani.org>
7968
Author: Lasse Collin <lasse.collin@tukaani.org>
5926
Date:   2011-05-01 12:24:23 +0300
7969
Date:   2019-06-24 23:52:17 +0300
5927
7970
5928
    xz: Fix input file position when --single-stream is used.
7971
    liblzma: Add a comment.
5929
    
5930
    Now the following works as you would expect:
5931
    
5932
        echo foo | xz > foo.xz
5933
        echo bar | xz >> foo.xz
5934
        ( xz -dc --single-stream ; xz -dc --single-stream ) < foo.xz
5935
    
5936
    Note that it doesn't work if the input is not seekable
5937
    or if there is Stream Padding between the concatenated
5938
    .xz Streams.
5939
7972
5940
 src/xz/coder.c   |  1 +
7973
 src/liblzma/common/stream_encoder_mt.c | 2 +-
5941
 src/xz/file_io.c | 15 +++++++++++++++
7974
 1 file changed, 1 insertion(+), 1 deletion(-)
5942
 src/xz/file_io.h | 13 +++++++++++++
5943
 3 files changed, 29 insertions(+)
5944
7975
5945
commit c29e6630c1450c630c4e7b783bdd76515db9004c
7976
commit a12b13c5f0d54c684fa8446f93fdac08ab2a716b
5946
Author: Lasse Collin <lasse.collin@tukaani.org>
7977
Author: Lasse Collin <lasse.collin@tukaani.org>
5947
Date:   2011-05-01 12:15:51 +0300
7978
Date:   2019-06-24 23:45:21 +0300
5948
7979
5949
    xz: Print the maximum number of worker threads in xz -vv.
7980
    liblzma: Silence clang -Wmissing-variable-declarations.
5950
7981
5951
 src/xz/coder.c | 4 ++++
7982
 src/liblzma/check/crc32_table.c | 3 +++
5952
 1 file changed, 4 insertions(+)
7983
 src/liblzma/check/crc64_table.c | 3 +++
7984
 2 files changed, 6 insertions(+)
5953
7985
5954
commit 0b77c4a75158ccc416b07d6e81df8ee0abaea720
7986
commit 1b4675cebf7471f7cc9b7072c950e3de97147063
5955
Author: Lasse Collin <lasse.collin@tukaani.org>
7987
Author: Lasse Collin <lasse.collin@tukaani.org>
5956
Date:   2011-04-19 10:44:48 +0300
7988
Date:   2019-06-24 23:25:41 +0300
5957
7989
5958
    Build: Warn if no supported method to detect the number of CPU cores.
7990
    Add LZMA_RET_INTERNAL1..8 to lzma_ret and use one for LZMA_TIMED_OUT.
7991
    
7992
    LZMA_TIMED_OUT is *internally* used as a value for lzma_ret
7993
    enumeration. Previously it was #defined to 32 and cast to lzma_ret.
7994
    That way it wasn't visible in the public API, but this was hackish.
7995
    
7996
    Now the public API has eight LZMA_RET_INTERNALx members and
7997
    LZMA_TIMED_OUT is #defined to LZMA_RET_INTERNAL1. This way
7998
    the code is cleaner overall although the public API has a few
7999
    extra mysterious enum members.
5959
8000
5960
 configure.ac | 11 +++++------
8001
 src/liblzma/api/lzma/base.h | 15 ++++++++++++++-
5961
 1 file changed, 5 insertions(+), 6 deletions(-)
8002
 src/liblzma/common/common.c |  4 +---
8003
 src/liblzma/common/common.h |  5 ++---
8004
 src/xz/message.c            |  8 ++++++++
8005
 4 files changed, 25 insertions(+), 7 deletions(-)
5962
8006
5963
commit e4622df9ab4982f8faa53d85b17be66216175a58
8007
commit 159c43875eb25deea626ed651274464bae3e32ef
5964
Author: Lasse Collin <lasse.collin@tukaani.org>
8008
Author: Lasse Collin <lasse.collin@tukaani.org>
5965
Date:   2011-04-19 09:55:06 +0300
8009
Date:   2019-06-24 22:57:43 +0300
5966
8010
5967
    Update THANKS.
8011
    xz: Silence a warning from clang -Wsign-conversion in main.c.
5968
8012
5969
 THANKS | 1 +
8013
 src/xz/main.c | 2 +-
5970
 1 file changed, 1 insertion(+)
8014
 1 file changed, 1 insertion(+), 1 deletion(-)
5971
8015
5972
commit 9c1b05828a88eff54409760b92162c7cc2c7cff6
8016
commit 466cfcd3e52f6750ce28a635997f3dd84fb18515
5973
Author: Lasse Collin <lasse.collin@tukaani.org>
8017
Author: Lasse Collin <lasse.collin@tukaani.org>
5974
Date:   2011-04-19 09:20:44 +0300
8018
Date:   2019-06-24 22:52:20 +0300
5975
8019
5976
    Fix portability problems in mythread.h.
8020
    xz: Make "headings" static in list.c.
5977
    
8021
    
5978
    Use gettimeofday() if clock_gettime() isn't available
8022
    Caught by clang -Wmissing-variable-declarations.
5979
    (e.g. Darwin).
8023
8024
 src/xz/list.c | 2 +-
8025
 1 file changed, 1 insertion(+), 1 deletion(-)
8026
8027
commit 608517b9b76c41fac6613dbda1193d6f41338e19
8028
Author: Lasse Collin <lasse.collin@tukaani.org>
8029
Date:   2019-06-24 22:47:39 +0300
8030
8031
    liblzma: Remove incorrect uses of lzma_attribute((__unused__)).
5980
    
8032
    
5981
    The test for availability of pthread_condattr_setclock()
8033
    Caught by clang -Wused-but-marked-unused.
5982
    and CLOCK_MONOTONIC was incorrect. Instead of fixing the
5983
    #ifdefs, use an Autoconf test. That way if there exists a
5984
    system that supports them but doesn't specify the matching
5985
    POSIX #defines, the features will still get detected.
5986
    
5987
    Don't try to use pthread_sigmask() on OpenVMS. It doesn't
5988
    have that function.
5989
    
5990
    Guard mythread.h against being #included multiple times.
5991
8034
5992
 configure.ac          |  7 +++++++
8035
 src/liblzma/common/alone_decoder.c | 3 +--
5993
 src/common/mythread.h | 31 +++++++++++++++++++++++++++----
8036
 src/liblzma/common/alone_encoder.c | 3 +--
5994
 2 files changed, 34 insertions(+), 4 deletions(-)
8037
 src/liblzma/lz/lz_decoder.c        | 3 +--
8038
 3 files changed, 3 insertions(+), 6 deletions(-)
5995
8039
5996
commit 3de00cc75da7b0e7b65e84c62b5351e231f501e9
8040
commit c2d2ab6a9d41a2b55d047c5b710aacf80d219255
5997
Author: Lasse Collin <lasse.collin@tukaani.org>
8041
Author: Lasse Collin <lasse.collin@tukaani.org>
5998
Date:   2011-04-18 19:35:49 +0300
8042
Date:   2019-06-24 20:53:55 +0300
5999
8043
6000
    Update THANKS.
8044
    Tests: Silence a warning from -Wsign-conversion.
6001
8045
6002
 THANKS | 2 ++
8046
 tests/create_compress_files.c | 8 ++++----
6003
 1 file changed, 2 insertions(+)
8047
 1 file changed, 4 insertions(+), 4 deletions(-)
6004
8048
6005
commit bd5002f5821e3d1b04f2f56989e4a19318e73633
8049
commit 2402f7873dcae719d0ebddd23bb579074519ac52
6006
Author: Martin Väth <vaeth@mathematik.uni-wuerzburg.de>
8050
Author: Lasse Collin <lasse.collin@tukaani.org>
6007
Date:   2011-04-15 04:54:49 -0400
8051
Date:   2019-06-24 20:45:49 +0300
6008
8052
6009
    xzgrep: fix typo in $0 parsing
8053
    xz: Fix an integer overflow with 32-bit off_t.
6010
    
8054
    
6011
    Reported-by: Diego Elio Pettenò <flameeyes@gentoo.org>
8055
    Or any off_t which isn't very big (like signed 64 bit integer
6012
    Signed-off-by: Martin Väth <vaeth@mathematik.uni-wuerzburg.de>
8056
    that most system have). A small off_t could overflow if the
6013
    Signed-off-by: Mike Frysinger <vapier@gentoo.org>
8057
    file being decompressed had long enough run of zero bytes,
8058
    which would result in corrupt output.
6014
8059
6015
 src/scripts/xzgrep.in | 4 ++--
8060
 src/xz/file_io.c | 11 +++++++++--
6016
 1 file changed, 2 insertions(+), 2 deletions(-)
8061
 1 file changed, 9 insertions(+), 2 deletions(-)
6017
8062
6018
commit 6ef4eabc0acc49e1bb9dc68064706e19fa9fcf48
8063
commit 4fd3a8dd0b60f029e1c66a0ee634f9e9fda3caa9
6019
Author: Lasse Collin <lasse.collin@tukaani.org>
8064
Author: Lasse Collin <lasse.collin@tukaani.org>
6020
Date:   2011-04-12 12:48:31 +0300
8065
Date:   2019-06-24 01:24:17 +0300
6021
8066
6022
    Bump the version number to 5.1.1alpha and liblzma soname to 5.0.99.
8067
    xz: Cleanup io_seek_src() a bit.
8068
    
8069
    lseek() returns -1 on error and checking for -1 is nicer.
6023
8070
6024
 src/liblzma/Makefile.am        | 2 +-
8071
 src/xz/file_io.c | 4 +---
6025
 src/liblzma/api/lzma/version.h | 2 +-
8072
 1 file changed, 1 insertion(+), 3 deletions(-)
6026
 2 files changed, 2 insertions(+), 2 deletions(-)
6027
8073
6028
commit 9a4377be0d21e597c66bad6c7452873aebfb3c1c
8074
commit dfda7cf6afa486e10df035327d68753896dfb48a
6029
Author: Lasse Collin <lasse.collin@tukaani.org>
8075
Author: Lasse Collin <lasse.collin@tukaani.org>
6030
Date:   2011-04-12 12:42:37 +0300
8076
Date:   2019-06-24 00:57:23 +0300
6031
8077
6032
    Put the unstable APIs behind #ifdef LZMA_UNSTABLE.
8078
    Tests: Remove a duplicate branch from tests/tests.h.
6033
    
8079
    
6034
    This way people hopefully won't complain if these APIs
8080
    The duplication was introduced about eleven years ago and
6035
    change and break code that used an older API.
8081
    should have been cleaned up back then already.
8082
    
8083
    This was caught by -Wduplicated-branches.
6036
8084
6037
 src/liblzma/api/lzma/container.h | 4 ++++
8085
 tests/tests.h | 9 ++-------
6038
 src/liblzma/common/common.h      | 2 ++
8086
 1 file changed, 2 insertions(+), 7 deletions(-)
6039
 src/xz/private.h                 | 2 ++
6040
 3 files changed, 8 insertions(+)
6041
8087
6042
commit 3e321a3acd50002cf6fdfd259e910f56d3389bc3
8088
commit 1d4a904d8fb634bd5a04f7fbdd17d3739f3d8866
6043
Author: Lasse Collin <lasse.collin@tukaani.org>
8089
Author: Lasse Collin <lasse.collin@tukaani.org>
6044
Date:   2011-04-12 11:59:49 +0300
8090
Date:   2019-06-24 00:40:45 +0300
6045
8091
6046
    Remove doubled words from documentation and comments.
8092
    xz: Change io_seek_src and io_pread arguments from off_t to uint64_t.
6047
    
8093
    
6048
    Spot candidates by running these commands:
8094
    This helps fixing warnings from -Wsign-conversion and makes the
6049
      git ls-files |xargs perl -0777 -n \
8095
    code look better too.
6050
        -e 'while (/\b(then?|[iao]n|i[fst]|but|f?or|at|and|[dt]o)\s+\1\b/gims)' \
6051
        -e '{$n=($` =~ tr/\n/\n/ + 1); ($v=$&)=~s/\n/\\n/g; print "$ARGV:$n:$v\n"}'
6052
    
6053
    Thanks to Jim Meyering for the original patch.
6054
8096
6055
 doc/lzma-file-format.txt           | 4 ++--
8097
 src/xz/file_io.c | 16 ++++++++++++----
6056
 src/liblzma/common/alone_encoder.c | 2 +-
8098
 src/xz/file_io.h |  4 ++--
6057
 src/liblzma/lzma/lzma2_encoder.c   | 2 +-
8099
 src/xz/list.c    |  9 ++++-----
6058
 src/xz/file_io.c                   | 2 +-
8100
 3 files changed, 18 insertions(+), 11 deletions(-)
6059
 src/xz/xz.1                        | 2 +-
6060
 windows/INSTALL-Windows.txt        | 2 +-
6061
 6 files changed, 7 insertions(+), 7 deletions(-)
6062
8101
6063
commit d91a84b534b012d19474f2fda1fbcaef873e1ba4
8102
commit 50120deb0159fcb53ee1a6caffb2bb81a1ecd990
6064
Author: Lasse Collin <lasse.collin@tukaani.org>
8103
Author: Lasse Collin <lasse.collin@tukaani.org>
6065
Date:   2011-04-12 11:46:01 +0300
8104
Date:   2019-06-24 00:12:38 +0300
6066
8105
6067
    Update NEWS.
8106
    xz: list.c: Fix some warnings from -Wsign-conversion.
6068
8107
6069
 NEWS | 47 +++++++++++++++++++++++++++++++++++++++++++++--
8108
 src/xz/list.c | 7 ++++---
6070
 1 file changed, 45 insertions(+), 2 deletions(-)
8109
 1 file changed, 4 insertions(+), 3 deletions(-)
6071
8110
6072
commit 14e6ad8cfe0165c1a8beeb5b2a1536558b29b0a1
8111
commit d0a78751eb54fb1572002746c533936a118e4e42
6073
Author: Lasse Collin <lasse.collin@tukaani.org>
8112
Author: Lasse Collin <lasse.collin@tukaani.org>
6074
Date:   2011-04-12 11:45:40 +0300
8113
Date:   2019-06-23 23:22:45 +0300
6075
8114
6076
    Update TODO.
8115
    tuklib_mbstr_width: Fix a warning from -Wsign-conversion.
6077
8116
6078
 TODO | 12 +++++++++++-
8117
 src/common/tuklib_mbstr_width.c | 2 +-
6079
 1 file changed, 11 insertions(+), 1 deletion(-)
8118
 1 file changed, 1 insertion(+), 1 deletion(-)
6080
8119
6081
commit 70e750f59793f9b5cd306a5adce9b8e427739e04
8120
commit 7883d73530b4b2a701ddd7d50c35676cbc158039
6082
Author: Lasse Collin <lasse.collin@tukaani.org>
8121
Author: Lasse Collin <lasse.collin@tukaani.org>
6083
Date:   2011-04-12 11:08:55 +0300
8122
Date:   2019-06-23 23:19:34 +0300
6084
8123
6085
    xz: Update the man page about threading.
8124
    xz: Fix some of the warnings from -Wsign-conversion.
6086
8125
6087
 src/xz/xz.1 | 34 ++++++++++++++++++++--------------
8126
 src/xz/args.c    | 4 ++--
6088
 1 file changed, 20 insertions(+), 14 deletions(-)
8127
 src/xz/coder.c   | 4 ++--
8128
 src/xz/file_io.c | 5 +++--
8129
 src/xz/message.c | 4 ++--
8130
 src/xz/mytime.c  | 4 ++--
8131
 src/xz/options.c | 2 +-
8132
 src/xz/util.c    | 4 ++--
8133
 7 files changed, 14 insertions(+), 13 deletions(-)
6089
8134
6090
commit 24e0406c0fb7494d2037dec033686faf1bf67068
8135
commit c2b994fe3d35e9e575c28869a2f7f534f2495d05
6091
Author: Lasse Collin <lasse.collin@tukaani.org>
8136
Author: Lasse Collin <lasse.collin@tukaani.org>
6092
Date:   2011-04-11 22:06:03 +0300
8137
Date:   2019-06-23 22:27:45 +0300
6093
8138
6094
    xz: Add support for threaded compression.
8139
    tuklib_cpucores: Silence warnings from -Wsign-conversion.
6095
8140
6096
 src/xz/args.c  |   3 +-
8141
 src/common/tuklib_cpucores.c | 10 +++++-----
6097
 src/xz/coder.c | 202 +++++++++++++++++++++++++++++++++++----------------------
8142
 1 file changed, 5 insertions(+), 5 deletions(-)
6098
 2 files changed, 125 insertions(+), 80 deletions(-)
6099
8143
6100
commit de678e0c924aa79a19293a8a6ed82e8cb6572a42
8144
commit 07c4fa9e1a195e0543f271380c8de22a3ab145ff
6101
Author: Lasse Collin <lasse.collin@tukaani.org>
8145
Author: Lasse Collin <lasse.collin@tukaani.org>
6102
Date:   2011-04-11 22:03:30 +0300
8146
Date:   2019-06-23 21:40:47 +0300
6103
8147
6104
    liblzma: Add lzma_stream_encoder_mt() for threaded compression.
8148
    xzdec: Fix warnings from -Wsign-conversion.
6105
    
6106
    This is the simplest method to do threading, which splits
6107
    the uncompressed data into blocks and compresses them
6108
    independently from each other. There's room for improvement
6109
    especially to reduce the memory usage, but nevertheless,
6110
    this is a good start.
6111
8149
6112
 configure.ac                           |    1 +
8150
 src/xzdec/xzdec.c | 2 +-
6113
 src/liblzma/api/lzma/container.h       |  163 +++++
8151
 1 file changed, 1 insertion(+), 1 deletion(-)
6114
 src/liblzma/common/Makefile.inc        |    7 +
6115
 src/liblzma/common/common.c            |    9 +-
6116
 src/liblzma/common/common.h            |   14 +
6117
 src/liblzma/common/outqueue.c          |  180 ++++++
6118
 src/liblzma/common/outqueue.h          |  155 +++++
6119
 src/liblzma/common/stream_encoder_mt.c | 1011 ++++++++++++++++++++++++++++++++
6120
 8 files changed, 1539 insertions(+), 1 deletion(-)
6121
8152
6122
commit 25fe729532cdf4b8fed56a4519b73cf31efaec50
8153
commit dfac2c9a1d7d4a2b8a5d7c9c6d567dee48318bcf
6123
Author: Lasse Collin <lasse.collin@tukaani.org>
8154
Author: Lasse Collin <lasse.collin@tukaani.org>
6124
Date:   2011-04-11 21:15:07 +0300
8155
Date:   2019-06-23 21:38:56 +0300
6125
8156
6126
    liblzma: Add the forgotten lzma_lzma2_block_size().
8157
    liblzma: Fix warnings from -Wsign-conversion.
6127
    
8158
    
6128
    This should have been in 5eefc0086d24a65e136352f8c1d19cefb0cbac7a.
8159
    Also, more parentheses were added to the literal_subcoder
6129
8160
    macro in lzma_comon.h (better style but no functional change
6130
 src/liblzma/lzma/lzma2_encoder.c | 10 ++++++++++
8161
    in the current usage).
6131
 src/liblzma/lzma/lzma2_encoder.h |  2 ++
6132
 2 files changed, 12 insertions(+)
6133
6134
commit 91afb785a1dee34862078d9bf844ef12b8cc3e35
6135
Author: Lasse Collin <lasse.collin@tukaani.org>
6136
Date:   2011-04-11 21:04:13 +0300
6137
6138
    liblzma: Document lzma_easy_(enc|dec)oder_memusage() better too.
6139
8162
6140
 src/liblzma/api/lzma/container.h | 9 +++++++++
8163
 src/liblzma/common/block_header_decoder.c |  2 +-
6141
 1 file changed, 9 insertions(+)
8164
 src/liblzma/delta/delta_decoder.c         |  2 +-
8165
 src/liblzma/lzma/fastpos.h                |  2 +-
8166
 src/liblzma/lzma/lzma2_decoder.c          |  8 ++++----
8167
 src/liblzma/lzma/lzma_common.h            |  3 ++-
8168
 src/liblzma/lzma/lzma_decoder.c           | 16 ++++++++--------
8169
 src/liblzma/simple/arm.c                  |  6 +++---
8170
 src/liblzma/simple/armthumb.c             |  8 ++++----
8171
 src/liblzma/simple/ia64.c                 |  2 +-
8172
 src/liblzma/simple/powerpc.c              |  9 +++++----
8173
 src/liblzma/simple/x86.c                  |  2 +-
8174
 11 files changed, 31 insertions(+), 29 deletions(-)
6142
8175
6143
commit 4a9905302a9e4a1601ae09d650d3f08ce98ae9ee
8176
commit 41838dcc26375f6aa393a63e4d81e2f4d223de07
6144
Author: Lasse Collin <lasse.collin@tukaani.org>
8177
Author: Lasse Collin <lasse.collin@tukaani.org>
6145
Date:   2011-04-11 20:59:07 +0300
8178
Date:   2019-06-23 19:33:55 +0300
6146
8179
6147
    liblzma: Document lzma_raw_(enc|dec)oder_memusage() better.
8180
    tuklib_integer: Silence warnings from -Wsign-conversion.
6148
    
6149
    It didn't mention the return value that is used if
6150
    an error occurs.
6151
8181
6152
 src/liblzma/api/lzma/filter.h | 8 ++++++--
8182
 src/common/tuklib_integer.h | 6 +++---
6153
 1 file changed, 6 insertions(+), 2 deletions(-)
8183
 1 file changed, 3 insertions(+), 3 deletions(-)
6154
8184
6155
commit 0badb0b1bd649163322783b0bd9e590b4bc7a93d
8185
commit 3ce05d235f736d392347a05086b8033416874b87
6156
Author: Lasse Collin <lasse.collin@tukaani.org>
8186
Author: Lasse Collin <lasse.collin@tukaani.org>
6157
Date:   2011-04-11 19:28:18 +0300
8187
Date:   2019-06-20 19:40:30 +0300
6158
8188
6159
    liblzma: Use memzero() to initialize supported_actions[].
8189
    tuklib_integer: Fix usage of conv macros.
6160
    
8190
    
6161
    This is cleaner and makes it simpler to add new members
8191
    Use a temporary variable instead of e.g.
6162
    to lzma_action enumeration.
8192
    conv32le(unaligned_read32ne(buf)) because the macro can
8193
    evaluate its argument multiple times.
6163
8194
6164
 src/liblzma/common/common.c | 6 ++----
8195
 src/common/tuklib_integer.h | 12 ++++++++----
6165
 1 file changed, 2 insertions(+), 4 deletions(-)
8196
 1 file changed, 8 insertions(+), 4 deletions(-)
6166
8197
6167
commit a7934c446a58e20268689899d2a39f50e571f251
8198
commit b525b0c0ef40cd89b69294c9b8d57f4a8db58e1f
6168
Author: Lasse Collin <lasse.collin@tukaani.org>
8199
Author: Lasse Collin <lasse.collin@tukaani.org>
6169
Date:   2011-04-11 19:26:27 +0300
8200
Date:   2019-06-03 20:44:19 +0300
6170
8201
6171
    liblzma: API comment about lzma_allocator with threaded coding.
8202
    Update THANKS.
6172
8203
6173
 src/liblzma/api/lzma/base.h | 18 +++++++++++++-----
8204
 THANKS | 1 +
6174
 1 file changed, 13 insertions(+), 5 deletions(-)
8205
 1 file changed, 1 insertion(+)
6175
8206
6176
commit 5eefc0086d24a65e136352f8c1d19cefb0cbac7a
8207
commit 039a168e8cf201d5104a25ec41f0cf25eda6cc53
6177
Author: Lasse Collin <lasse.collin@tukaani.org>
8208
Author: Lasse Collin <lasse.collin@tukaani.org>
6178
Date:   2011-04-11 19:16:30 +0300
8209
Date:   2019-06-03 20:41:54 +0300
6179
8210
6180
    liblzma: Add an internal function lzma_mt_block_size().
8211
    liblzma: Fix comments.
6181
    
8212
    
6182
    This is based lzma_chunk_size() that was included in some
8213
    Thanks to Bruce Stark.
6183
    development version of liblzma.
6184
8214
6185
 src/liblzma/common/filter_encoder.c | 46 ++++++++++++++++++-------------------
8215
 src/liblzma/common/alone_encoder.c        | 4 ++--
6186
 src/liblzma/common/filter_encoder.h |  4 ++--
8216
 src/liblzma/common/block_util.c           | 2 +-
6187
 2 files changed, 24 insertions(+), 26 deletions(-)
8217
 src/liblzma/common/common.c               | 2 +-
8218
 src/liblzma/common/filter_common.h        | 2 +-
8219
 src/liblzma/common/filter_decoder.h       | 2 +-
8220
 src/liblzma/common/filter_flags_encoder.c | 2 +-
8221
 6 files changed, 7 insertions(+), 7 deletions(-)
6188
8222
6189
commit d1199274758049fc523d98c5b860ff814a799eec
8223
commit c460f6defebc5a81bbca90adc2476154ca244f69
6190
Author: Lasse Collin <lasse.collin@tukaani.org>
8224
Author: Lasse Collin <lasse.collin@tukaani.org>
6191
Date:   2011-04-11 13:59:50 +0300
8225
Date:   2019-06-02 00:50:59 +0300
6192
8226
6193
    liblzma: Don't create an empty Block in lzma_stream_buffer_encode().
8227
    liblzma: Fix one more unaligned read to use unaligned_read16ne().
6194
    
6195
    Empty Block was created if the input buffer was empty.
6196
    Empty Block wastes a few bytes of space, but more importantly
6197
    it triggers a bug in XZ Utils 5.0.1 and older when trying
6198
    to decompress such a file. 5.0.1 and older consider such
6199
    files to be corrupt. I thought that no encoder creates empty
6200
    Blocks when releasing 5.0.2 but I was wrong.
6201
8228
6202
 src/liblzma/common/stream_buffer_encoder.c | 20 +++++++++++++-------
8229
 src/liblzma/lz/lz_encoder_hash.h | 2 +-
6203
 1 file changed, 13 insertions(+), 7 deletions(-)
8230
 1 file changed, 1 insertion(+), 1 deletion(-)
6204
8231
6205
commit 3b22fc2c87ec85fcdd385c163b68fc49c97aa848
8232
commit c81d77c537f0b8c8672868e1dc6cf7290ce4a25b
6206
Author: Lasse Collin <lasse.collin@tukaani.org>
8233
Author: Lasse Collin <lasse.collin@tukaani.org>
6207
Date:   2011-04-11 13:28:40 +0300
8234
Date:   2019-06-01 21:41:55 +0300
6208
8235
6209
    liblzma: Fix API docs to mention LZMA_UNSUPPORTED_CHECK.
8236
    Update THANKS.
6210
    
6211
    This return value was missing from the API comments of
6212
    four functions.
6213
8237
6214
 src/liblzma/api/lzma/block.h     | 1 +
8238
 THANKS | 1 +
6215
 src/liblzma/api/lzma/container.h | 3 +++
8239
 1 file changed, 1 insertion(+)
6216
 2 files changed, 4 insertions(+)
6217
8240
6218
commit 71b9380145dccf001f22e66a06b9d508905c25ce
8241
commit 386394fc9fcde2615391f804eaa466749f96f4ef
6219
Author: Lasse Collin <lasse.collin@tukaani.org>
8242
Author: Lasse Collin <lasse.collin@tukaani.org>
6220
Date:   2011-04-11 13:21:28 +0300
8243
Date:   2019-06-01 21:36:13 +0300
6221
8244
6222
    liblzma: Validate encoder arguments better.
8245
    liblzma: memcmplen: Use ctz32() from tuklib_integer.h.
6223
    
8246
    
6224
    The biggest problem was that the integrity check type
8247
    The same compiler-specific #ifdefs are already in tuklib_integer.h
6225
    wasn't validated, and e.g. lzma_easy_buffer_encode()
6226
    would create a corrupt .xz Stream if given an unsupported
6227
    Check ID. Luckily applications don't usually try to use
6228
    an unsupport Check ID, so this bug is unlikely to cause
6229
    many real-world problems.
6230
6231
 src/liblzma/common/block_buffer_encoder.c  | 18 ++++++++++++------
6232
 src/liblzma/common/block_encoder.c         |  5 +++++
6233
 src/liblzma/common/stream_buffer_encoder.c |  3 +++
6234
 3 files changed, 20 insertions(+), 6 deletions(-)
6235
6236
commit ec7e3dbad704268825fc48f0bdd4577bc46b4f13
6237
Author: Lasse Collin <lasse.collin@tukaani.org>
6238
Date:   2011-04-11 09:57:30 +0300
6239
6240
    xz: Move the description of --block-size in --long-help.
6241
8248
6242
 src/xz/message.c | 8 ++++----
8249
 src/liblzma/common/memcmplen.h | 10 +---------
6243
 1 file changed, 4 insertions(+), 4 deletions(-)
8250
 1 file changed, 1 insertion(+), 9 deletions(-)
6244
8251
6245
commit cd3086ff443bb282bdf556919c28b3e3cbed8169
8252
commit 264ab971ce2994baac41b1579c9c35aba7743fc8
6246
Author: Lasse Collin <lasse.collin@tukaani.org>
8253
Author: Lasse Collin <lasse.collin@tukaani.org>
6247
Date:   2011-04-11 09:55:35 +0300
8254
Date:   2019-06-01 21:30:03 +0300
6248
8255
6249
    Docs: Document --single-stream and --block-size.
8256
    tuklib_integer: Cleanup MSVC-specific code.
6250
8257
6251
 src/xz/xz.1 | 38 ++++++++++++++++++++++++++++++++++++--
8258
 src/common/tuklib_integer.h | 20 +++++++++-----------
6252
 1 file changed, 36 insertions(+), 2 deletions(-)
8259
 1 file changed, 9 insertions(+), 11 deletions(-)
6253
8260
6254
commit fb64a4924334e3c440865710990fe08090f2fed0
8261
commit 33773c6f2a8711d4aa6656795db52c59a28580ec
6255
Author: Lasse Collin <lasse.collin@tukaani.org>
8262
Author: Lasse Collin <lasse.collin@tukaani.org>
6256
Date:   2011-04-11 09:27:57 +0300
8263
Date:   2019-06-01 19:01:21 +0300
6257
8264
6258
    liblzma: Make lzma_stream_encoder_init() static (second try).
8265
    liblzma: Use unaligned_readXXne functions instead of type punning.
6259
    
8266
    
6260
    It's an internal function and it's not needed by
8267
    Now gcc -fsanitize=undefined should be clean.
6261
    anything outside stream_encoder.c.
8268
    
8269
    Thanks to Jeffrey Walton.
6262
8270
6263
 src/liblzma/common/Makefile.inc     |  1 -
8271
 src/liblzma/common/memcmplen.h          | 12 ++++++------
6264
 src/liblzma/common/easy_encoder.c   |  1 -
8272
 src/liblzma/lzma/lzma_encoder_private.h |  2 +-
6265
 src/liblzma/common/stream_encoder.c | 13 ++++++-------
8273
 2 files changed, 7 insertions(+), 7 deletions(-)
6266
 src/liblzma/common/stream_encoder.h | 23 -----------------------
6267
 4 files changed, 6 insertions(+), 32 deletions(-)
6268
8274
6269
commit a34730cf6af4d33a4057914e57227b6dfde6567e
8275
commit e5f13a66567b1987e0aae42c6fdcd277bb5810ba
6270
Author: Lasse Collin <lasse.collin@tukaani.org>
8276
Author: Lasse Collin <lasse.collin@tukaani.org>
6271
Date:   2011-04-11 08:31:42 +0300
8277
Date:   2019-06-01 18:46:54 +0300
6272
8278
6273
    Revert "liblzma: Make lzma_stream_encoder_init() static."
8279
    tuklib_integer: Autodetect support for unaligned access on ARM.
6274
    
8280
    
6275
    This reverts commit 352ac82db5d3f64585c07b39e4759388dec0e4d7.
8281
    The result is used as the default for --enable-unaligned-access.
6276
    I don't know what I was thinking.
8282
    The test should work with GCC and Clang.
6277
8283
6278
 src/liblzma/common/Makefile.inc     |  1 +
8284
 m4/tuklib_integer.m4 | 11 +++++++++++
6279
 src/liblzma/common/stream_encoder.c |  9 +++++----
8285
 1 file changed, 11 insertions(+)
6280
 src/liblzma/common/stream_encoder.h | 23 +++++++++++++++++++++++
6281
 3 files changed, 29 insertions(+), 4 deletions(-)
6282
8286
6283
commit 9f0a806aef7ea79718e3f1f2baf3564295229a27
8287
commit 3bc112c2d38d5f348bce7bc2422286b1692c7490
6284
Author: Lasse Collin <lasse.collin@tukaani.org>
8288
Author: Lasse Collin <lasse.collin@tukaani.org>
6285
Date:   2011-04-10 21:23:21 +0300
8289
Date:   2019-06-01 18:41:16 +0300
6286
8290
6287
    Revise mythread.h.
8291
    tuklib_integer: Improve unaligned memory access.
6288
    
8292
    
6289
    This adds:
8293
    Now memcpy() or GNU C packed structs for unaligned access instead
8294
    of type punning. See the comment in this commit for details.
6290
    
8295
    
6291
      - mythread_sync() macro to create synchronized blocks
8296
    Avoiding type punning with unaligned access is needed to
8297
    silence gcc -fsanitize=undefined.
6292
    
8298
    
6293
      - mythread_cond structure and related functions
8299
    New functions: unaliged_readXXne and unaligned_writeXXne where
6294
        and macros for condition variables with timed
8300
    XX is 16, 32, or 64.
6295
        waiting using a relative timeout
8301
8302
 src/common/tuklib_integer.h | 180 +++++++++++++++++++++++++++++++++++++++++---
8303
 1 file changed, 168 insertions(+), 12 deletions(-)
8304
8305
commit 2a22de439ec63da1927b640eda309296a1e8dce5
8306
Author: Lasse Collin <lasse.collin@tukaani.org>
8307
Date:   2019-05-13 20:05:17 +0300
8308
8309
    liblzma: Avoid memcpy(NULL, foo, 0) because it is undefined behavior.
6296
    
8310
    
6297
      - mythread_create() to create a thread with all
8311
    I should have always known this but I didn't. Here is an example
6298
        signals blocked
8312
    as a reminder to myself:
6299
    
8313
    
6300
    Some of these wouldn't need to be inline functions,
8314
        int mycopy(void *dest, void *src, size_t n)
6301
    but I'll keep them this way for now for simplicity.
8315
        {
8316
            memcpy(dest, src, n);
8317
            return dest == NULL;
8318
        }
6302
    
8319
    
6303
    For timed waiting on a condition variable, librt is
8320
    In the example, a compiler may assume that dest != NULL because
6304
    now required on some systems to use clock_gettime().
8321
    passing NULL to memcpy() would be undefined behavior. Testing
6305
    configure.ac was updated to handle this.
8322
    with GCC 8.2.1, mycopy(NULL, NULL, 0) returns 1 with -O0 and -O1.
8323
    With -O2 the return value is 0 because the compiler infers that
8324
    dest cannot be NULL because it was already used with memcpy()
8325
    and thus the test for NULL gets optimized out.
8326
    
8327
    In liblzma, if a null-pointer was passed to memcpy(), there were
8328
    no checks for NULL *after* the memcpy() call, so I cautiously
8329
    suspect that it shouldn't have caused bad behavior in practice,
8330
    but it's hard to be sure, and the problematic cases had to be
8331
    fixed anyway.
8332
    
8333
    Thanks to Jeffrey Walton.
6306
8334
6307
 configure.ac          |   1 +
8335
 src/liblzma/common/common.c       |  6 +++++-
6308
 src/common/mythread.h | 200 +++++++++++++++++++++++++++++++++++++++++++++-----
8336
 src/liblzma/lz/lz_decoder.c       | 12 +++++++++---
6309
 2 files changed, 181 insertions(+), 20 deletions(-)
8337
 src/liblzma/simple/simple_coder.c | 10 +++++++++-
8338
 3 files changed, 23 insertions(+), 5 deletions(-)
6310
8339
6311
commit 352ac82db5d3f64585c07b39e4759388dec0e4d7
8340
commit d3fc850cfedc058247d9e334ce59bbc8f2286d8a
6312
Author: Lasse Collin <lasse.collin@tukaani.org>
8341
Author: Lasse Collin <lasse.collin@tukaani.org>
6313
Date:   2011-04-10 20:37:36 +0300
8342
Date:   2019-05-11 20:56:08 +0300
6314
8343
6315
    liblzma: Make lzma_stream_encoder_init() static.
8344
    Update THANKS.
8345
8346
 THANKS | 1 +
8347
 1 file changed, 1 insertion(+)
8348
8349
commit 4adb8288ab61d5f14e212007b8742df0710baf73
8350
Author: Lasse Collin <lasse.collin@tukaani.org>
8351
Date:   2019-05-11 20:54:12 +0300
8352
8353
    xz: Update xz man page date.
8354
8355
 src/xz/xz.1 | 2 +-
8356
 1 file changed, 1 insertion(+), 1 deletion(-)
8357
8358
commit 2fb0ddaa557ce86e38fe06439930fa8665f092fd
8359
Author: Antoine Cœur <antoine.coeur@ef.com>
8360
Date:   2019-05-08 13:30:57 +0800
8361
8362
    spelling
8363
8364
 Doxyfile.in                            | 2 +-
8365
 NEWS                                   | 2 +-
8366
 doc/examples/11_file_info.c            | 2 +-
8367
 src/liblzma/api/lzma/block.h           | 2 +-
8368
 src/liblzma/api/lzma/hardware.h        | 2 +-
8369
 src/liblzma/api/lzma/lzma12.h          | 2 +-
8370
 src/liblzma/api/lzma/vli.h             | 2 +-
8371
 src/liblzma/common/file_info.c         | 4 ++--
8372
 src/liblzma/common/hardware_physmem.c  | 2 +-
8373
 src/liblzma/common/index.c             | 4 ++--
8374
 src/liblzma/common/stream_encoder_mt.c | 2 +-
8375
 src/liblzma/common/vli_decoder.c       | 2 +-
8376
 src/liblzma/lz/lz_decoder.c            | 2 +-
8377
 src/scripts/xzgrep.in                  | 2 +-
8378
 src/xz/args.c                          | 2 +-
8379
 src/xz/coder.c                         | 4 ++--
8380
 src/xz/list.c                          | 4 ++--
8381
 src/xz/main.c                          | 2 +-
8382
 src/xz/mytime.h                        | 2 +-
8383
 src/xz/private.h                       | 2 +-
8384
 src/xz/xz.1                            | 2 +-
8385
 windows/build.bash                     | 2 +-
8386
 22 files changed, 26 insertions(+), 26 deletions(-)
8387
8388
commit 4ed339606156bd313ed99237485cb8ed0362d64f
8389
Author: Lasse Collin <lasse.collin@tukaani.org>
8390
Date:   2019-05-01 18:43:10 +0300
8391
8392
    xz: In xz -lvv look at the widths of the check names too.
6316
    
8393
    
6317
    It's an internal function and it's not needed by
8394
    Now the widths of the check names is used to adjust the width
6318
    anything outside stream_encoder.c.
8395
    of the Check column. This way there no longer is a need to restrict
8396
    the widths of the check names to be at most ten terminal-columns.
6319
8397
6320
 src/liblzma/common/Makefile.inc     |  1 -
8398
 src/xz/list.c | 32 ++++++++++++++++++++++++++------
6321
 src/liblzma/common/stream_encoder.c |  9 ++++-----
8399
 1 file changed, 26 insertions(+), 6 deletions(-)
6322
 src/liblzma/common/stream_encoder.h | 23 -----------------------
6323
 3 files changed, 4 insertions(+), 29 deletions(-)
6324
8400
6325
commit 9e807fe3fe79618ac48f58207cf7082ea20a6928
8401
commit 2f4281a1001dcf7fdf1418c0c0d246c16561fb65
6326
Author: Lasse Collin <lasse.collin@tukaani.org>
8402
Author: Lasse Collin <lasse.collin@tukaani.org>
6327
Date:   2011-04-10 14:58:10 +0300
8403
Date:   2019-05-01 18:33:25 +0300
6328
8404
6329
    DOS: Update the docs and include notes about 8.3 filenames.
8405
    xz: Fix xz -lvv column alignment to look at the translated strings.
6330
8406
6331
 dos/{README => INSTALL.txt} |  13 +----
8407
 src/xz/list.c | 4 ++--
6332
 dos/README.txt              | 123 ++++++++++++++++++++++++++++++++++++++++++++
8408
 1 file changed, 2 insertions(+), 2 deletions(-)
6333
 2 files changed, 125 insertions(+), 11 deletions(-)
6334
8409
6335
commit ebd54dbd6e481d31e80757f900ac8109ad1423c6
8410
commit 01d01b7c7c0b8eaf7f780a5584ec52c22d10fa4a
6336
Author: Lasse Collin <lasse.collin@tukaani.org>
8411
Author: Lasse Collin <lasse.collin@tukaani.org>
6337
Date:   2011-04-10 13:09:42 +0300
8412
Date:   2019-05-01 16:52:36 +0300
6338
8413
6339
    xz/DOS: Add experimental 8.3 filename support.
8414
    Update THANKS.
8415
8416
 THANKS | 1 +
8417
 1 file changed, 1 insertion(+)
8418
8419
commit 64030c6b17f7743df03a9948a0ccfcdf40c6b97c
8420
Author: Lasse Collin <lasse.collin@tukaani.org>
8421
Date:   2019-05-01 16:43:16 +0300
8422
8423
    Windows: Update VS version in windows/vs2019/config.h.
8424
8425
 windows/vs2019/config.h | 2 +-
8426
 1 file changed, 1 insertion(+), 1 deletion(-)
8427
8428
commit 2dc9117f5fbfab31444a3ca1e55795ccfa8a9f51
8429
Author: Julien Marrec <julien.marrec@gmail.com>
8430
Date:   2019-04-25 17:44:06 +0200
8431
8432
    Windows: Upgrade solution itself
8433
8434
 windows/vs2019/xz_win.sln | 7 +++++--
8435
 1 file changed, 5 insertions(+), 2 deletions(-)
8436
8437
commit ac31413916fa9b11bab17f0f0aa63e2869360f6f
8438
Author: Julien Marrec <julien.marrec@gmail.com>
8439
Date:   2019-04-25 17:40:24 +0200
8440
8441
    Windows: Upgrade solution with VS2019
8442
8443
 windows/vs2019/liblzma.vcxproj     | 15 ++++++++-------
8444
 windows/vs2019/liblzma_dll.vcxproj | 15 ++++++++-------
8445
 2 files changed, 16 insertions(+), 14 deletions(-)
8446
8447
commit be25a0c37ba92a20c390b4d17fe502457fe96b71
8448
Author: Julien Marrec <julien.marrec@gmail.com>
8449
Date:   2019-04-25 17:39:32 +0200
8450
8451
    Windows: Duplicate windows/vs2017 before upgrading
8452
8453
 windows/vs2019/config.h            | 148 ++++++++++++++
8454
 windows/vs2019/liblzma.vcxproj     | 356 ++++++++++++++++++++++++++++++++++
8455
 windows/vs2019/liblzma_dll.vcxproj | 385 +++++++++++++++++++++++++++++++++++++
8456
 windows/vs2019/xz_win.sln          |  48 +++++
8457
 4 files changed, 937 insertions(+)
8458
8459
commit d0e58b3a51e8e616f3dc26ec7b7e4aa0fa6991ad
8460
Author: Lasse Collin <lasse.collin@tukaani.org>
8461
Date:   2019-03-04 22:49:04 +0200
8462
8463
    README: Update translation instructions.
6340
    
8464
    
6341
    This is incompatible with the 8.3 support patch made by
8465
    XZ Utils is now part of the Translation Project
6342
    Juan Manuel Guerrero. I think this one is nicer, but
8466
    <https://translationproject.org/>.
6343
    I need to get feedback from DOS users before saying
6344
    that this is the final version of 8.3 filename support.
6345
8467
6346
 src/xz/suffix.c | 176 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
8468
 README | 32 +++++++++++++-------------------
6347
 1 file changed, 167 insertions(+), 9 deletions(-)
8469
 1 file changed, 13 insertions(+), 19 deletions(-)
6348
8470
6349
commit cd4fe97852bcaeffe674ee51b4613709292a0972
8471
commit a750c35a7d45a16c11c1d40fecee8443c32a9996
6350
Author: Lasse Collin <lasse.collin@tukaani.org>
8472
Author: Lasse Collin <lasse.collin@tukaani.org>
6351
Date:   2011-04-10 12:47:47 +0300
8473
Date:   2019-03-04 21:20:39 +0200
6352
8474
6353
    xz/DOS: Be more careful with the destination file.
8475
    xz: Automatically align column headings in xz -lvv.
8476
8477
 src/xz/list.c | 263 ++++++++++++++++++++++++++++++++++++++++++++++------------
8478
 1 file changed, 212 insertions(+), 51 deletions(-)
8479
8480
commit 6cb42e8aa1dc37bf403a9f5acbd07e86036b7e77
8481
Author: Lasse Collin <lasse.collin@tukaani.org>
8482
Date:   2019-03-04 01:07:59 +0200
8483
8484
    xz: Automatically align strings ending in a colon in --list output.
6354
    
8485
    
6355
    Try to avoid overwriting the source file if --force is
8486
    This should avoid alignment errors in translations with these
6356
    used and the generated destination filename refers to
8487
    strings.
6357
    the source file. This can happen with 8.3 filenames where
8488
6358
    extra characters are ignored.
8489
 src/xz/list.c | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
8490
 1 file changed, 102 insertions(+), 12 deletions(-)
8491
8492
commit 1e3f29b62f2c03e50fc9ebea7b83c1497dd35484
8493
Author: Lasse Collin <lasse.collin@tukaani.org>
8494
Date:   2019-01-13 17:29:23 +0200
8495
8496
    Windows/VS2017: Omit WindowsTargetPlatformVersion from project files.
6359
    
8497
    
6360
    If the generated output file refers to a special file
8498
    I understood that if a WTPV is specified, it's often wrong
6361
    like "con" or "prn", refuse to write to it even if --force
8499
    because different VS installations have different SDK version
6362
    is used.
8500
    installed. Omitting the WTPV tag makes VS2017 default to
8501
    Windows SDK 8.1 which often is also missing, so in any case
8502
    people may need to specify the WTPV before building. But some
8503
    day in the future a missing WTPV tag will start to default to
8504
    the latest installed SDK which sounds reasonable:
8505
    
8506
    https://developercommunity.visualstudio.com/content/problem/140294/windowstargetplatformversion-makes-it-impossible-t.html
8507
    
8508
    Thanks to "dom".
6363
8509
6364
 src/xz/file_io.c | 35 +++++++++++++++++++++++++++++++++--
8510
 windows/INSTALL-MSVC.txt           | 4 ++++
6365
 1 file changed, 33 insertions(+), 2 deletions(-)
8511
 windows/vs2017/liblzma.vcxproj     | 1 -
8512
 windows/vs2017/liblzma_dll.vcxproj | 1 -
8513
 3 files changed, 4 insertions(+), 2 deletions(-)
6366
8514
6367
commit 607f9f98ae5ef6d49f4c21c806d462bf6b3d6796
8515
commit 4d86076332aece6314063d3712a5f364172bbb0f
6368
Author: Lasse Collin <lasse.collin@tukaani.org>
8516
Author: Lasse Collin <lasse.collin@tukaani.org>
6369
Date:   2011-04-09 18:29:30 +0300
8517
Date:   2018-12-20 20:42:29 +0200
6370
8518
6371
    Update THANKS.
8519
    Update THANKS.
6372
8520
6373
 THANKS | 1 +
8521
 THANKS | 1 +
6374
 1 file changed, 1 insertion(+)
8522
 1 file changed, 1 insertion(+)
6375
8523
6376
commit fca396b37410d272b754843a5dc13847be443a3a
8524
commit b55d79461d1f6aeaac03c7dae84481e5eb8bea4c
6377
Author: Lasse Collin <lasse.collin@tukaani.org>
8525
Author: Lasse Collin <lasse.collin@tukaani.org>
6378
Date:   2011-04-09 18:28:58 +0300
8526
Date:   2018-12-14 20:34:30 +0200
6379
8527
6380
    liblzma: Add missing #ifdefs to filter_common.c.
8528
    xz: Fix a crash in progress indicator when in passthru mode.
6381
    
8529
    
6382
    Passing --disable-decoders to configure broke a few
8530
    "xz -dcfv not_an_xz_file" crashed (all four options are
6383
    encoders due to missing #ifdefs in filter_common.c.
8531
    required to trigger it). It caused xz to call
8532
    lzma_get_progress(&strm, ...) when no coder was initialized
8533
    in strm. In this situation strm.internal is NULL which leads
8534
    to a crash in lzma_get_progress().
6384
    
8535
    
6385
    Thanks to Jason Gorski for the patch.
8536
    The bug was introduced when xz started using lzma_get_progress()
8537
    to get progress info for multi-threaded compression, so the
8538
    bug is present in versions 5.1.3alpha and higher.
8539
    
8540
    Thanks to Filip Palian <Filip.Palian@pjwstk.edu.pl> for
8541
    the bug report.
6386
8542
6387
 src/liblzma/common/filter_common.c | 6 +++---
8543
 src/xz/coder.c   | 11 +++++++----
6388
 1 file changed, 3 insertions(+), 3 deletions(-)
8544
 src/xz/message.c | 18 ++++++++++++++++--
8545
 src/xz/message.h |  3 ++-
8546
 3 files changed, 25 insertions(+), 7 deletions(-)
6389
8547
6390
commit b03f6cd3ebadd675f2cc9d518cb26fa860269447
8548
commit 4ae5526de013efd1021686fa80bdd10cf1cb9c56
6391
Author: Lasse Collin <lasse.collin@tukaani.org>
8549
Author: Lasse Collin <lasse.collin@tukaani.org>
6392
Date:   2011-04-09 15:24:59 +0300
8550
Date:   2018-11-22 17:20:31 +0200
6393
8551
6394
    xz: Avoid unneeded fstat() on DOS-like systems.
8552
    xz: Update man page timestamp.
6395
8553
6396
 src/xz/file_io.c | 14 ++++++++------
8554
 src/xz/xz.1 | 2 +-
6397
 1 file changed, 8 insertions(+), 6 deletions(-)
8555
 1 file changed, 1 insertion(+), 1 deletion(-)
6398
8556
6399
commit 335fe260a81f61ec99ff5940df733b4c50aedb7c
8557
commit 6a36d0d5f49e0080ff64dd9ef250abd489bea2ad
8558
Author: Pavel Raiskup <praiskup@redhat.com>
8559
Date:   2018-11-22 15:14:34 +0100
8560
8561
    'have have' typos
8562
8563
 src/xz/signals.c | 2 +-
8564
 src/xz/xz.1      | 2 +-
8565
 2 files changed, 2 insertions(+), 2 deletions(-)
8566
8567
commit 9eca51ef805ed8002a851df1b4995d71826c8b6e
6400
Author: Lasse Collin <lasse.collin@tukaani.org>
8568
Author: Lasse Collin <lasse.collin@tukaani.org>
6401
Date:   2011-04-09 15:11:13 +0300
8569
Date:   2018-11-02 20:40:48 +0200
6402
8570
6403
    xz: Minor internal changes to handling of --threads.
8571
    Update THANKS.
8572
8573
 THANKS | 1 +
8574
 1 file changed, 1 insertion(+)
8575
8576
commit 106d1a663d4ba42b63231caa289f531548df81c1
8577
Author: Lasse Collin <lasse.collin@tukaani.org>
8578
Date:   2018-11-02 20:18:45 +0200
8579
8580
    Tests: Add a fuzz test program and a config file for OSS-Fuzz.
6404
    
8581
    
6405
    Now it always defaults to one thread. Maybe this
8582
    Thanks to Bhargava Shastry and Github user pdknsk.
6406
    will change again if a threading method is added
6407
    that doesn't affect memory usage.
6408
8583
6409
 src/xz/args.c     |  4 ++--
8584
 tests/Makefile.am                 |  1 +
6410
 src/xz/hardware.c | 24 ++++++++++++------------
8585
 tests/ossfuzz/Makefile            |  7 ++++
6411
 src/xz/hardware.h |  9 ++++-----
8586
 tests/ossfuzz/config/fuzz.dict    |  2 +
6412
 3 files changed, 18 insertions(+), 19 deletions(-)
8587
 tests/ossfuzz/config/fuzz.options |  2 +
8588
 tests/ossfuzz/fuzz.c              | 82 +++++++++++++++++++++++++++++++++++++++
8589
 5 files changed, 94 insertions(+)
6413
8590
6414
commit 9edd6ee895fbe71d245a173f48e511f154a99875
8591
commit a18ae42a79a19b1394b41eb3e238139fd28012ec
6415
Author: Lasse Collin <lasse.collin@tukaani.org>
8592
Author: Lasse Collin <lasse.collin@tukaani.org>
6416
Date:   2011-04-08 17:53:05 +0300
8593
Date:   2018-10-26 22:49:10 +0300
6417
8594
6418
    xz: Change size_t to uint32_t in a few places.
8595
    liblzma: Don't verify header CRC32s if building for fuzz testing.
8596
    
8597
    FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION is #defined when liblzma
8598
    is being built for fuzz testing.
8599
    
8600
    Most fuzzed inputs would normally get rejected because of incorrect
8601
    CRC32 and the actual header decoding code wouldn't get fuzzed.
8602
    Disabling CRC32 checks avoids this problem. The fuzzer program
8603
    must still use LZMA_IGNORE_CHECK flag to disable verification of
8604
    integrity checks of uncompressed data.
6419
8605
6420
 src/xz/coder.c | 6 +++---
8606
 src/liblzma/common/block_header_decoder.c |  5 ++++-
6421
 src/xz/coder.h | 2 +-
8607
 src/liblzma/common/index_decoder.c        |  5 ++++-
6422
 2 files changed, 4 insertions(+), 4 deletions(-)
8608
 src/liblzma/common/index_hash.c           |  5 ++++-
8609
 src/liblzma/common/stream_flags_decoder.c | 10 ++++++++--
8610
 4 files changed, 20 insertions(+), 5 deletions(-)
6423
8611
6424
commit 411013ea4506a6df24d35a060fcbd73a57b73eb3
8612
commit f76f7516d6a1c832f61810c82e92d151cc80966c
6425
Author: Lasse Collin <lasse.collin@tukaani.org>
8613
Author: Lasse Collin <lasse.collin@tukaani.org>
6426
Date:   2011-04-08 17:48:41 +0300
8614
Date:   2018-07-27 18:10:44 +0300
6427
8615
6428
    xz: Fix a typo in a comment.
8616
    xzless: Rename unused variables to silence static analysers.
8617
    
8618
    In this particular case I don't see this affecting readability
8619
    of the code.
8620
    
8621
    Thanks to Pavel Raiskup.
6429
8622
6430
 src/xz/coder.c | 2 +-
8623
 src/scripts/xzless.in | 2 +-
6431
 1 file changed, 1 insertion(+), 1 deletion(-)
8624
 1 file changed, 1 insertion(+), 1 deletion(-)
6432
8625
6433
commit b34c5ce4b22e8d7b81f9895d15054af41d17f805
8626
commit 3cbcaeb07eb7543735befd6f507fdb5fa4363cff
6434
Author: Lasse Collin <lasse.collin@tukaani.org>
8627
Author: Lasse Collin <lasse.collin@tukaani.org>
6435
Date:   2011-04-05 22:41:33 +0300
8628
Date:   2018-07-27 16:02:58 +0300
6436
8629
6437
    liblzma: Use TUKLIB_GNUC_REQ to check GCC version in sha256.c.
8630
    liblzma: Remove an always-true condition from lzma_index_cat().
8631
    
8632
    This should help static analysis tools to see that newg
8633
    isn't leaked.
8634
    
8635
    Thanks to Pavel Raiskup.
6438
8636
6439
 src/liblzma/check/sha256.c | 6 +++---
8637
 src/liblzma/common/index.c | 4 ++--
6440
 1 file changed, 3 insertions(+), 3 deletions(-)
8638
 1 file changed, 2 insertions(+), 2 deletions(-)
6441
8639
6442
commit db33117cc85c17e0b897b5312bd5eb43aac41c03
8640
commit 76762ae6098ec55c326f4b4b4a42e8c1918ee81f
6443
Author: Lasse Collin <lasse.collin@tukaani.org>
8641
Author: Lasse Collin <lasse.collin@tukaani.org>
6444
Date:   2011-04-05 17:12:20 +0300
8642
Date:   2018-05-19 21:23:25 +0300
6445
8643
6446
    Build: Upgrade m4/acx_pthread.m4 to the latest version.
8644
    liblzma: Improve lzma_properties_decode() API documentation.
6447
    
6448
    It was renamed to ax_pthread.m4 in Autoconf Archive.
6449
8645
6450
 configure.ac                         |   2 +-
8646
 src/liblzma/api/lzma/filter.h | 7 ++++---
6451
 m4/{acx_pthread.m4 => ax_pthread.m4} | 170 ++++++++++++++++++-----------------
8647
 1 file changed, 4 insertions(+), 3 deletions(-)
6452
 2 files changed, 88 insertions(+), 84 deletions(-)
6453
8648
6454
commit 1039bfcfc098b69d56ecb39d198a092552eacf6d
8649
commit 2267f5b0d20a5d24e93fcd9f72ea7eeb0d89708c
6455
Author: Lasse Collin <lasse.collin@tukaani.org>
8650
Author: Lasse Collin <lasse.collin@tukaani.org>
6456
Date:   2011-04-05 15:27:26 +0300
8651
Date:   2018-04-29 18:58:19 +0300
6457
8652
6458
    xz: Use posix_fadvise() if it is available.
8653
    Bump the version number to 5.3.1alpha.
6459
8654
6460
 configure.ac     |  3 +++
8655
 src/liblzma/api/lzma/version.h | 2 +-
6461
 src/xz/file_io.c | 15 +++++++++++++++
8656
 src/liblzma/liblzma.map        | 2 +-
6462
 2 files changed, 18 insertions(+)
8657
 2 files changed, 2 insertions(+), 2 deletions(-)
6463
8658
6464
commit 1ef3cf44a8eb9512480af4482a5232ea08363b14
8659
commit cee3021d30704858e4bdd22240e7d28e570d7451
6465
Author: Lasse Collin <lasse.collin@tukaani.org>
8660
Author: Lasse Collin <lasse.collin@tukaani.org>
6466
Date:   2011-04-05 15:13:29 +0300
8661
Date:   2018-04-29 18:48:00 +0300
6467
8662
6468
    xz: Call lzma_end(&strm) before exiting if debugging is enabled.
8663
    extra/scanlzma: Fix compiler warnings.
6469
8664
6470
 src/xz/coder.c | 10 ++++++++++
8665
 extra/scanlzma/scanlzma.c | 6 +++++-
6471
 src/xz/coder.h |  5 +++++
8666
 1 file changed, 5 insertions(+), 1 deletion(-)
6472
 src/xz/main.c  |  4 ++++
6473
 3 files changed, 19 insertions(+)
6474
8667
6475
commit bd432015d33dcade611d297bc01eb0700088ef6c
8668
commit c5c7ceb08a011b97d261798033e2c39613a69eb7
6476
Author: Lasse Collin <lasse.collin@tukaani.org>
8669
Author: Lasse Collin <lasse.collin@tukaani.org>
6477
Date:   2011-04-02 14:49:56 +0300
8670
Date:   2018-04-29 18:44:47 +0300
6478
8671
6479
    liblzma: Fix a memory leak in stream_encoder.c.
8672
    DOS: Add file_info.c to the list of files to build.
8673
8674
 dos/Makefile | 1 +
8675
 1 file changed, 1 insertion(+)
8676
8677
commit 114cab97af766b21e0fc8620479202fb1e7a5e41
8678
Author: Lasse Collin <lasse.collin@tukaani.org>
8679
Date:   2018-04-29 18:33:10 +0300
8680
8681
    Update NEWS for 5.3.1alpha.
8682
8683
 NEWS | 11 +++++++++++
8684
 1 file changed, 11 insertions(+)
8685
8686
commit b8139e11c512bbf32bf58ab0689f9bb6c52819da
8687
Author: Lasse Collin <lasse.collin@tukaani.org>
8688
Date:   2018-04-29 18:15:37 +0300
8689
8690
    Add NEWS for 5.2.4.
8691
8692
 NEWS | 27 +++++++++++++++++++++++++++
8693
 1 file changed, 27 insertions(+)
8694
8695
commit 47b59d47cfd904a420fbd45629d168ca1973721d
8696
Author: Lasse Collin <lasse.collin@tukaani.org>
8697
Date:   2018-02-06 19:36:30 +0200
8698
8699
    Update THANKS.
8700
8701
 THANKS | 2 ++
8702
 1 file changed, 2 insertions(+)
8703
8704
commit bc197991690ede24ab143665b5b0f0f9cb35cc46
8705
Author: Ben Boeckel <mathstuf@gmail.com>
8706
Date:   2018-01-29 13:58:18 -0500
8707
8708
    nothrow: use noexcept for C++11 and newer
6480
    
8709
    
6481
    It leaks old filter options structures (hundred bytes or so)
8710
    In C++11, the `throw()` specifier is deprecated and `noexcept` is
6482
    every time the lzma_stream is reinitialized. With the xz tool,
8711
    preffered instead.
6483
    this happens when compressing multiple files.
6484
8712
6485
 src/liblzma/common/stream_encoder.c | 2 +-
8713
 src/liblzma/api/lzma.h | 6 +++++-
6486
 1 file changed, 1 insertion(+), 1 deletion(-)
8714
 1 file changed, 5 insertions(+), 1 deletion(-)
6487
8715
6488
commit 16889013214e7620d204b6e6c1bf9f3103a13655
8716
commit fb6d4f83cb6e144734f2a4216bb117bd56dc3cb5
6489
Author: Lasse Collin <lasse.collin@tukaani.org>
8717
Author: Lasse Collin <lasse.collin@tukaani.org>
6490
Date:   2011-04-01 08:47:20 +0300
8718
Date:   2018-02-06 18:02:48 +0200
6491
8719
6492
    Updated NEWS for 5.0.2.
8720
    liblzma: Remove incorrect #ifdef from range_common.h.
8721
    
8722
    In most cases it was harmless but it could affect some
8723
    custom build systems.
8724
    
8725
    Thanks to Pippijn van Steenhoven.
6493
8726
6494
 NEWS | 18 ++++++++++++++++++
8727
 src/liblzma/rangecoder/range_common.h | 4 +---
6495
 1 file changed, 18 insertions(+)
8728
 1 file changed, 1 insertion(+), 3 deletions(-)
6496
8729
6497
commit 85cdf7dd4e97b078e7b929e47f55a7f1da36010f
8730
commit bc577d35c2d0ed17f554d2d8107b2a2a9abbac76
6498
Author: Lasse Collin <lasse.collin@tukaani.org>
8731
Author: Lasse Collin <lasse.collin@tukaani.org>
6499
Date:   2011-03-31 15:06:58 +0300
8732
Date:   2018-01-10 22:10:39 +0200
6500
8733
6501
    Update INSTALL with another note about IRIX.
8734
    Update THANKS.
6502
8735
6503
 INSTALL | 4 ++++
8736
 THANKS | 1 +
6504
 1 file changed, 4 insertions(+)
8737
 1 file changed, 1 insertion(+)
6505
8738
6506
commit c3f4995586873d6a4fb7e451010a128571a9a370
8739
commit 713bbc1a80f26d34c96ed3dbb9887362204de3a1
6507
Author: Lasse Collin <lasse.collin@tukaani.org>
8740
Author: Lasse Collin <lasse.collin@tukaani.org>
6508
Date:   2011-03-31 12:22:55 +0300
8741
Date:   2018-01-10 21:54:27 +0200
6509
8742
6510
    Tests: Add a new file to test empty LZMA2 streams.
8743
    tuklib_integer: New Intel C compiler needs immintrin.h.
8744
    
8745
    Thanks to Melanie Blower (Intel) for the patch.
6511
8746
6512
 tests/files/README            |   4 ++++
8747
 src/common/tuklib_integer.h | 11 +++++++++++
6513
 tests/files/good-1-lzma2-5.xz | Bin 0 -> 52 bytes
8748
 1 file changed, 11 insertions(+)
8749
8750
commit a0ee1afbd99da138b559cb27fa2022e7f1ab44f3
8751
Author: Lasse Collin <lasse.collin@tukaani.org>
8752
Date:   2017-09-24 20:04:24 +0300
8753
8754
    Update THANKS.
8755
8756
 THANKS | 1 +
8757
 1 file changed, 1 insertion(+)
8758
8759
commit a1e2c568de29c0b57d873eab40a2879b749da429
8760
Author: Lasse Collin <lasse.collin@tukaani.org>
8761
Date:   2017-09-16 20:36:20 +0300
8762
8763
    Windows: Fix paths in VS project files.
8764
    
8765
    Some paths use slashes instead of backslashes as directory
8766
    separators... now it should work (I tested VS2013 version).
8767
8768
 windows/vs2013/liblzma.vcxproj     | 12 ++++++------
8769
 windows/vs2013/liblzma_dll.vcxproj | 24 ++++++++++++------------
8770
 windows/vs2017/liblzma.vcxproj     | 12 ++++++------
8771
 windows/vs2017/liblzma_dll.vcxproj | 24 ++++++++++++------------
8772
 4 files changed, 36 insertions(+), 36 deletions(-)
8773
8774
commit cea5cf8d26c9d1dc30a808614d79c0b25640e15e
8775
Author: Lasse Collin <lasse.collin@tukaani.org>
8776
Date:   2017-09-16 12:56:20 +0300
8777
8778
    Windows: Update VS2017 project files to include file info decoder.
8779
8780
 windows/vs2017/liblzma.vcxproj     | 2 ++
8781
 windows/vs2017/liblzma_dll.vcxproj | 2 ++
6514
 2 files changed, 4 insertions(+)
8782
 2 files changed, 4 insertions(+)
6515
8783
6516
commit 0d21f49a809dc2088da6cc0da7f948404df7ecfa
8784
commit 95d563db3ee497b223e522b699c4d4c29943eef0
6517
Author: Lasse Collin <lasse.collin@tukaani.org>
8785
Author: Lasse Collin <lasse.collin@tukaani.org>
6518
Date:   2011-03-31 11:54:48 +0300
8786
Date:   2017-09-16 12:54:23 +0300
6519
8787
6520
    liblzma: Fix decoding of LZMA2 streams having no uncompressed data.
8788
    Windows: Add project files for VS2017.
6521
    
8789
    
6522
    The decoder considered empty LZMA2 streams to be corrupt.
8790
    These files match the v5.2 branch (no file info decoder).
6523
    This shouldn't matter much with .xz files, because no encoder
6524
    creates empty LZMA2 streams in .xz. This bug is more likely
6525
    to cause problems in applications that use raw LZMA2 streams.
6526
6527
 src/liblzma/lzma/lzma2_decoder.c | 8 ++++----
6528
 1 file changed, 4 insertions(+), 4 deletions(-)
6529
8791
6530
commit 40277998cb9bad564ce4827aff152e6e1c904dfa
8792
 windows/vs2017/config.h            | 148 ++++++++++++++
8793
 windows/vs2017/liblzma.vcxproj     | 355 ++++++++++++++++++++++++++++++++++
8794
 windows/vs2017/liblzma_dll.vcxproj | 384 +++++++++++++++++++++++++++++++++++++
8795
 windows/vs2017/xz_win.sln          |  48 +++++
8796
 4 files changed, 935 insertions(+)
8797
8798
commit ab72416d62ea8f50ad31d5b8545fcb6a2bf96b73
6531
Author: Lasse Collin <lasse.collin@tukaani.org>
8799
Author: Lasse Collin <lasse.collin@tukaani.org>
6532
Date:   2011-03-24 01:42:49 +0200
8800
Date:   2017-09-16 12:45:50 +0300
6533
8801
6534
    Scripts: Better fix for xzgrep.
8802
    Windows: Update VS2013 project files to include file info decoder.
8803
8804
 windows/vs2013/liblzma.vcxproj     | 2 ++
8805
 windows/vs2013/liblzma_dll.vcxproj | 2 ++
8806
 2 files changed, 4 insertions(+)
8807
8808
commit 82388980187b0e3794d187762054200bbdcc9a53
8809
Author: Lasse Collin <lasse.collin@tukaani.org>
8810
Date:   2017-09-16 12:39:43 +0300
8811
8812
    Windows: Move VS2013 files into windows/vs2013 directory.
8813
8814
 windows/{ => vs2013}/config.h            |   0
8815
 windows/{ => vs2013}/liblzma.vcxproj     | 278 +++++++++++++++---------------
8816
 windows/{ => vs2013}/liblzma_dll.vcxproj | 280 +++++++++++++++----------------
8817
 windows/{ => vs2013}/xz_win.sln          |   0
8818
 4 files changed, 279 insertions(+), 279 deletions(-)
8819
8820
commit 94e3f986aa4e14b4ff01ac24857f499630d6d180
8821
Author: Lasse Collin <lasse.collin@tukaani.org>
8822
Date:   2017-08-14 20:08:33 +0300
8823
8824
    Fix or hide warnings from GCC 7's -Wimplicit-fallthrough.
8825
8826
 src/liblzma/lzma/lzma_decoder.c | 6 ++++++
8827
 src/xz/list.c                   | 2 ++
8828
 2 files changed, 8 insertions(+)
8829
8830
commit 0b0e1e6803456aac641a59332200f8e95e2b7ea8
8831
Author: Alexey Tourbin <alexey.tourbin@gmail.com>
8832
Date:   2017-05-16 23:56:35 +0300
8833
8834
    Docs: Fix a typo in a comment in doc/examples/02_decompress.c.
8835
8836
 doc/examples/02_decompress.c | 2 +-
8837
 1 file changed, 1 insertion(+), 1 deletion(-)
8838
8839
commit a015cd1f90116e655be4eaf4aad42c4c911c2807
8840
Author: Lasse Collin <lasse.collin@tukaani.org>
8841
Date:   2017-05-23 18:34:43 +0300
8842
8843
    xz: Fix "xz --list --robot missing_or_bad_file.xz".
6535
    
8844
    
6536
    Now it uses "grep -q".
8845
    It ended up printing an uninitialized char-array when trying to
8846
    print the check names (column 7) on the "totals" line.
6537
    
8847
    
6538
    Thanks to Gregory Margo.
8848
    This also changes the column 12 (minimum xz version) to
6539
8849
    50000002 (xz 5.0.0) instead of 0 when there are no valid
6540
 src/scripts/xzgrep.in | 8 ++++++--
8850
    input files.
8851
    
8852
    Thanks to kidmin for the bug report.
8853
8854
 src/xz/list.c | 8 ++++++--
6541
 1 file changed, 6 insertions(+), 2 deletions(-)
8855
 1 file changed, 6 insertions(+), 2 deletions(-)
6542
8856
6543
commit 2118733045ad0ca183a3f181a0399baf876983a6
8857
commit c2e29f06a7d1e3ba242ac2fafc69f5d6e92f62cd
6544
Author: Lasse Collin <lasse.collin@tukaani.org>
8858
Author: Lasse Collin <lasse.collin@tukaani.org>
6545
Date:   2011-03-24 01:22:18 +0200
8859
Date:   2017-04-24 20:20:11 +0300
6546
6547
    Updated THANKS.
6548
8860
8861
    Docs: Add doc/examples/11_file_info.c.
8862
8863
 doc/examples/11_file_info.c | 206 ++++++++++++++++++++++++++++++++++++++++++++
8864
 doc/examples/Makefile       |   3 +-
8865
 2 files changed, 208 insertions(+), 1 deletion(-)
8866
8867
commit 1520f6ec808896375ac7bf778c449e0f7dea5f46
8868
Author: Lasse Collin <lasse.collin@tukaani.org>
8869
Date:   2017-04-24 19:48:47 +0300
8870
8871
    Build: Omit pre-5.0.0 entries from the generated ChangeLog.
8872
    
8873
    It makes ChangeLog significantly smaller.
8874
8875
 Makefile.am | 3 ++-
8876
 1 file changed, 2 insertions(+), 1 deletion(-)
8877
8878
commit 8269782283806c90a8509c2ac2a308344f70e171
8879
Author: Lasse Collin <lasse.collin@tukaani.org>
8880
Date:   2017-04-24 19:48:23 +0300
8881
8882
    xz: Use lzma_file_info_decoder() for --list.
8883
8884
 src/xz/list.c | 254 ++++++++++------------------------------------------------
8885
 1 file changed, 44 insertions(+), 210 deletions(-)
8886
8887
commit e353d0b1cc0d3997ae5048faa8e6786414953e06
8888
Author: Lasse Collin <lasse.collin@tukaani.org>
8889
Date:   2017-04-24 19:35:50 +0300
8890
8891
    liblzma: Add lzma_file_info_decoder().
8892
8893
 src/liblzma/api/lzma/index.h    |  66 ++++
8894
 src/liblzma/common/Makefile.inc |   1 +
8895
 src/liblzma/common/file_info.c  | 855 ++++++++++++++++++++++++++++++++++++++++
8896
 src/liblzma/liblzma.map         |   7 +-
8897
 4 files changed, 928 insertions(+), 1 deletion(-)
8898
8899
commit 144ef9e19e9496c995b21505dd1e111c442968d1
8900
Author: Lasse Collin <lasse.collin@tukaani.org>
8901
Date:   2017-04-24 19:30:22 +0300
8902
8903
    Update the Git repository URL to HTTPS in ChangeLog.
8904
8905
 ChangeLog | 2 +-
8906
 1 file changed, 1 insertion(+), 1 deletion(-)
8907
8908
commit 8c9842c265993d7dd4039f732d3546267fb5ecc4
8909
Author: Lasse Collin <lasse.collin@tukaani.org>
8910
Date:   2017-04-21 15:05:16 +0300
8911
8912
    liblzma: Rename LZMA_SEEK to LZMA_SEEK_NEEDED and seek_in to seek_pos.
8913
8914
 src/liblzma/api/lzma/base.h | 18 +++++++++---------
8915
 src/liblzma/common/common.c |  2 +-
8916
 src/xz/message.c            |  2 +-
8917
 3 files changed, 11 insertions(+), 11 deletions(-)
8918
8919
commit 662b27c417cab248cb365dd7682121bdec4d5ae7
8920
Author: Lasse Collin <lasse.collin@tukaani.org>
8921
Date:   2017-04-19 22:17:35 +0300
8922
8923
    Update the home page URLs to HTTPS.
8924
8925
 COPYING                     | 2 +-
8926
 README                      | 2 +-
8927
 configure.ac                | 2 +-
8928
 doc/faq.txt                 | 4 ++--
8929
 dos/config.h                | 2 +-
8930
 src/common/common_w32res.rc | 2 +-
8931
 src/xz/xz.1                 | 6 +++---
8932
 src/xzdec/xzdec.1           | 4 ++--
8933
 windows/README-Windows.txt  | 2 +-
8934
 windows/config.h            | 2 +-
8935
 10 files changed, 14 insertions(+), 14 deletions(-)
8936
8937
commit c28f0b3d00af87b92dda229831548d8eb0067d1d
8938
Author: Lasse Collin <lasse.collin@tukaani.org>
8939
Date:   2017-04-05 18:47:22 +0300
8940
8941
    xz: Add io_seek_src().
8942
8943
 src/xz/file_io.c | 20 +++++++++++++++++---
8944
 src/xz/file_io.h | 13 +++++++++++++
8945
 2 files changed, 30 insertions(+), 3 deletions(-)
8946
8947
commit bba477257d7319c8764890f3669175b866d24944
8948
Author: Lasse Collin <lasse.collin@tukaani.org>
8949
Date:   2017-03-30 22:01:54 +0300
8950
8951
    xz: Use POSIX_FADV_RANDOM for in "xz --list" mode.
8952
    
8953
    xz --list is random access so POSIX_FADV_SEQUENTIAL was clearly
8954
    wrong.
8955
8956
 src/xz/file_io.c | 10 ++++++++--
8957
 1 file changed, 8 insertions(+), 2 deletions(-)
8958
8959
commit 310d19816d1652b0c8bb1b82574d46345d924752
8960
Author: Lasse Collin <lasse.collin@tukaani.org>
8961
Date:   2017-03-30 20:03:05 +0300
8962
8963
    liblzma: Make lzma_index_decoder_init() visible to other liblzma funcs.
8964
    
8965
    This is to allow other functions to use it without going
8966
    via the public API (lzma_index_decoder()).
8967
8968
 src/liblzma/common/Makefile.inc    |  1 +
8969
 src/liblzma/common/index_decoder.c | 10 +++++-----
8970
 src/liblzma/common/index_decoder.h | 24 ++++++++++++++++++++++++
8971
 3 files changed, 30 insertions(+), 5 deletions(-)
8972
8973
commit a27920002dbc469f778a134fc665b7c3ea73701b
8974
Author: Lasse Collin <lasse.collin@tukaani.org>
8975
Date:   2017-03-30 20:00:09 +0300
8976
8977
    liblzma: Add generic support for input seeking (LZMA_SEEK).
8978
    
8979
    Also mention LZMA_SEEK in xz/message.c to silence a warning.
8980
8981
 src/liblzma/api/lzma/base.h | 31 ++++++++++++++++++++++++++++++-
8982
 src/liblzma/common/common.c | 12 +++++++++++-
8983
 src/xz/message.c            |  1 +
8984
 3 files changed, 42 insertions(+), 2 deletions(-)
8985
8986
commit a0b1dda409bc3e6e2957a2651663fc411d2caf2d
8987
Author: Lasse Collin <lasse.collin@tukaani.org>
8988
Date:   2017-03-30 19:47:45 +0300
8989
8990
    liblzma: Fix lzma_memlimit_set(strm, 0).
8991
    
8992
    The 0 got treated specially in a buggy way and as a result
8993
    the function did nothing. The API doc said that 0 was supposed
8994
    to return LZMA_PROG_ERROR but it didn't.
8995
    
8996
    Now 0 is treated as if 1 had been specified. This is done because
8997
    0 is already used to indicate an error from lzma_memlimit_get()
8998
    and lzma_memusage().
8999
    
9000
    In addition, lzma_memlimit_set() no longer checks that the new
9001
    limit is at least LZMA_MEMUSAGE_BASE. It's counter-productive
9002
    for the Index decoder and was actually needed only by the
9003
    auto decoder. Auto decoder has now been modified to check for
9004
    LZMA_MEMUSAGE_BASE.
9005
9006
 src/liblzma/api/lzma/base.h       | 7 ++++++-
9007
 src/liblzma/common/auto_decoder.c | 3 +++
9008
 src/liblzma/common/common.c       | 6 ++++--
9009
 3 files changed, 13 insertions(+), 3 deletions(-)
9010
9011
commit 84462afaada61379f5878e46f8f00e25a1cdcf29
9012
Author: Lasse Collin <lasse.collin@tukaani.org>
9013
Date:   2017-03-30 19:16:55 +0300
9014
9015
    liblzma: Similar memlimit fix for stream_, alone_, and auto_decoder.
9016
9017
 src/liblzma/api/lzma/container.h    | 21 +++++++++++++++++----
9018
 src/liblzma/common/alone_decoder.c  |  5 +----
9019
 src/liblzma/common/auto_decoder.c   |  5 +----
9020
 src/liblzma/common/stream_decoder.c |  5 +----
9021
 4 files changed, 20 insertions(+), 16 deletions(-)
9022
9023
commit cbc74017939690d13441b8926bb743fb03211b83
9024
Author: Lasse Collin <lasse.collin@tukaani.org>
9025
Date:   2017-03-30 18:58:18 +0300
9026
9027
    liblzma: Fix handling of memlimit == 0 in lzma_index_decoder().
9028
    
9029
    It returned LZMA_PROG_ERROR, which was done to avoid zero as
9030
    the limit (because it's a special value elsewhere), but using
9031
    LZMA_PROG_ERROR is simply inconvenient and can cause bugs.
9032
    
9033
    The fix/workaround is to treat 0 as if it were 1 byte. It's
9034
    effectively the same thing. The only weird consequence is
9035
    that then lzma_memlimit_get() will return 1 even when 0 was
9036
    specified as the limit.
9037
    
9038
    This fixes a very rare corner case in xz --list where a specific
9039
    memory usage limit and a multi-stream file could print the
9040
    error message "Internal error (bug)" instead of saying that
9041
    the memory usage limit is too low.
9042
9043
 src/liblzma/api/lzma/index.h       | 18 +++++++++++-------
9044
 src/liblzma/common/index_decoder.c |  4 ++--
9045
 2 files changed, 13 insertions(+), 9 deletions(-)
9046
9047
commit 78ae13bced912b1b92ae927992c99cbcc463cae7
9048
Author: Lasse Collin <lasse.collin@tukaani.org>
9049
Date:   2016-12-30 13:25:10 +0200
9050
9051
    Update NEWS for 5.2.3.
9052
9053
 NEWS | 39 +++++++++++++++++++++++++++++++++++++++
9054
 1 file changed, 39 insertions(+)
9055
9056
commit 0297863fdb453aed1a25eb025f3ba7bacbbb1357
9057
Author: Lasse Collin <lasse.collin@tukaani.org>
9058
Date:   2016-12-26 20:55:52 +0200
9059
9060
    Document --enable-sandbox configure option in INSTALL.
9061
9062
 INSTALL | 23 +++++++++++++++++++++++
9063
 1 file changed, 23 insertions(+)
9064
9065
commit d4a0462abe5478193521c14625e1c81fead87f9f
9066
Author: Lasse Collin <lasse.collin@tukaani.org>
9067
Date:   2016-11-21 20:24:50 +0200
9068
9069
    liblzma: Avoid multiple definitions of lzma_coder structures.
9070
    
9071
    Only one definition was visible in a translation unit.
9072
    It avoided a few casts and temp variables but seems that
9073
    this hack doesn't work with link-time optimizations in compilers
9074
    as it's not C99/C11 compliant.
9075
    
9076
    Fixes:
9077
    http://www.mail-archive.com/xz-devel@tukaani.org/msg00279.html
9078
9079
 src/liblzma/common/alone_decoder.c             |  44 +++++----
9080
 src/liblzma/common/alone_encoder.c             |  34 ++++---
9081
 src/liblzma/common/auto_decoder.c              |  35 ++++---
9082
 src/liblzma/common/block_decoder.c             |  41 ++++----
9083
 src/liblzma/common/block_encoder.c             |  40 ++++----
9084
 src/liblzma/common/common.h                    |  18 ++--
9085
 src/liblzma/common/index_decoder.c             |  33 ++++---
9086
 src/liblzma/common/index_encoder.c             |  16 ++--
9087
 src/liblzma/common/stream_decoder.c            |  50 +++++-----
9088
 src/liblzma/common/stream_encoder.c            |  56 ++++++-----
9089
 src/liblzma/common/stream_encoder_mt.c         | 124 ++++++++++++++-----------
9090
 src/liblzma/delta/delta_common.c               |  25 ++---
9091
 src/liblzma/delta/delta_decoder.c              |   6 +-
9092
 src/liblzma/delta/delta_encoder.c              |  12 ++-
9093
 src/liblzma/delta/delta_private.h              |   4 +-
9094
 src/liblzma/lz/lz_decoder.c                    |  60 ++++++------
9095
 src/liblzma/lz/lz_decoder.h                    |  13 ++-
9096
 src/liblzma/lz/lz_encoder.c                    |  57 +++++++-----
9097
 src/liblzma/lz/lz_encoder.h                    |   9 +-
9098
 src/liblzma/lzma/lzma2_decoder.c               |  32 ++++---
9099
 src/liblzma/lzma/lzma2_encoder.c               |  51 +++++-----
9100
 src/liblzma/lzma/lzma_decoder.c                |  27 +++---
9101
 src/liblzma/lzma/lzma_encoder.c                |  29 +++---
9102
 src/liblzma/lzma/lzma_encoder.h                |   9 +-
9103
 src/liblzma/lzma/lzma_encoder_optimum_fast.c   |   3 +-
9104
 src/liblzma/lzma/lzma_encoder_optimum_normal.c |  23 ++---
9105
 src/liblzma/lzma/lzma_encoder_private.h        |   6 +-
9106
 src/liblzma/simple/arm.c                       |   2 +-
9107
 src/liblzma/simple/armthumb.c                  |   2 +-
9108
 src/liblzma/simple/ia64.c                      |   2 +-
9109
 src/liblzma/simple/powerpc.c                   |   2 +-
9110
 src/liblzma/simple/simple_coder.c              |  61 ++++++------
9111
 src/liblzma/simple/simple_private.h            |  12 +--
9112
 src/liblzma/simple/sparc.c                     |   2 +-
9113
 src/liblzma/simple/x86.c                       |  15 +--
9114
 35 files changed, 532 insertions(+), 423 deletions(-)
9115
9116
commit a01794c52add98263b49119842c3e7141d1b9ced
9117
Author: Lasse Collin <lasse.collin@tukaani.org>
9118
Date:   2016-10-24 18:53:25 +0300
9119
9120
    Update THANKS.
9121
6549
 THANKS | 1 +
9122
 THANKS | 1 +
6550
 1 file changed, 1 insertion(+)
9123
 1 file changed, 1 insertion(+)
6551
9124
6552
commit c7210d9a3fca6f31a57208bfddfc9ab20a2e097a
9125
commit df8f446e3ad47e5148b8c8d8b6e519d3ce29cb9d
6553
Author: Lasse Collin <lasse.collin@tukaani.org>
9126
Author: Lasse Collin <lasse.collin@tukaani.org>
6554
Date:   2011-03-24 01:21:32 +0200
9127
Date:   2016-10-24 18:51:36 +0300
6555
9128
6556
    Scripts: Fix xzgrep -l.
9129
    tuklib_cpucores: Add support for sched_getaffinity().
6557
    
9130
    
6558
    It didn't work at all. It tried to use the -q option
9131
    It's available in glibc (GNU/Linux, GNU/kFreeBSD). It's better
6559
    for grep, but it appended it after "--". This works
9132
    than sysconf(_SC_NPROCESSORS_ONLN) because sched_getaffinity()
6560
    around it by redirecting to /dev/null. The downside
9133
    gives the number of cores available to the process instead of
6561
    is that this can be slower with big files compared
9134
    the total number of cores online.
6562
    to proper use of "grep -q".
6563
    
9135
    
6564
    Thanks to Gregory Margo.
9136
    As a side effect, this commit fixes a bug on GNU/kFreeBSD where
6565
9137
    configure would detect the FreeBSD-specific cpuset_getaffinity()
6566
 src/scripts/xzgrep.in | 4 ++--
9138
    but it wouldn't actually work because on GNU/kFreeBSD it requires
6567
 1 file changed, 2 insertions(+), 2 deletions(-)
9139
    using -lfreebsd-glue when linking. Now the glibc-specific function
6568
9140
    will be used instead.
6569
commit 4eb83e32046a6d670862bc91c3d82530963b455e
9141
    
6570
Author: Lasse Collin <lasse.collin@tukaani.org>
9142
    Thanks to Sebastian Andrzej Siewior for the original patch
6571
Date:   2011-03-19 13:08:22 +0200
9143
    and testing.
6572
6573
    Scripts: Add lzop (.lzo) support to xzdiff and xzgrep.
6574
9144
6575
 src/scripts/xzdiff.1  |  6 ++++--
9145
 m4/tuklib_cpucores.m4        | 30 +++++++++++++++++++++++++++++-
6576
 src/scripts/xzdiff.in | 22 ++++++++++++++--------
9146
 src/common/tuklib_cpucores.c |  9 +++++++++
6577
 src/scripts/xzgrep.1  | 11 +++++++----
9147
 2 files changed, 38 insertions(+), 1 deletion(-)
6578
 src/scripts/xzgrep.in |  5 +++--
6579
 4 files changed, 28 insertions(+), 16 deletions(-)
6580
9148
6581
commit 923b22483bd9356f3219b2b784d96f455f4dc499
9149
commit 446e4318fa79788e09299d5953b5dd428953d14b
6582
Author: Lasse Collin <lasse.collin@tukaani.org>
9150
Author: Lasse Collin <lasse.collin@tukaani.org>
6583
Date:   2011-03-18 19:10:30 +0200
9151
Date:   2016-06-30 20:27:36 +0300
6584
9152
6585
    xz: Add --block-size=SIZE.
9153
    xz: Fix copying of timestamps on Windows.
6586
    
9154
    
6587
    This uses LZMA_FULL_FLUSH every SIZE bytes of input.
9155
    xz used to call utime() on Windows, but its result gets lost
9156
    on close(). Using _futime() seems to work.
6588
    
9157
    
6589
    Man page wasn't updated yet.
9158
    Thanks to Martok for reporting the bug:
6590
9159
    http://www.mail-archive.com/xz-devel@tukaani.org/msg00261.html
6591
 src/xz/args.c    |  7 +++++++
9160
6592
 src/xz/coder.c   | 50 ++++++++++++++++++++++++++++++++++++++++----------
9161
 configure.ac     |  2 +-
6593
 src/xz/coder.h   |  3 +++
9162
 src/xz/file_io.c | 18 ++++++++++++++++++
6594
 src/xz/message.c |  4 ++++
9163
 2 files changed, 19 insertions(+), 1 deletion(-)
6595
 4 files changed, 54 insertions(+), 10 deletions(-)
9164
6596
9165
commit 1b0ac0c53c761263e91e34195cb21dfdcfeac0bd
6597
commit 57597d42ca1740ad506437be168d800a50f1a0ad
6598
Author: Lasse Collin <lasse.collin@tukaani.org>
9166
Author: Lasse Collin <lasse.collin@tukaani.org>
6599
Date:   2011-03-18 18:19:19 +0200
9167
Date:   2016-06-16 22:46:02 +0300
6600
9168
6601
    xz: Add --single-stream.
9169
    xz: Silence warnings from -Wlogical-op.
6602
    
9170
    
6603
    This can be useful when there is garbage after the
9171
    Thanks to Evan Nemerson.
6604
    compressed stream (.xz, .lzma, or raw stream).
9172
9173
 src/xz/file_io.c | 12 ++++++++++--
9174
 1 file changed, 10 insertions(+), 2 deletions(-)
9175
9176
commit c83b7a03342c3325ff10400b22ee21edfcd1e026
9177
Author: Lasse Collin <lasse.collin@tukaani.org>
9178
Date:   2016-04-10 20:55:49 +0300
9179
9180
    Build: Fix = to += for xz_SOURCES in src/xz/Makefile.am.
6605
    
9181
    
6606
    Man page wasn't updated yet.
9182
    Thanks to Christian Kujau.
6607
9183
6608
 src/xz/args.c    |  6 ++++++
9184
 src/xz/Makefile.am | 2 +-
6609
 src/xz/coder.c   | 11 +++++++++--
9185
 1 file changed, 1 insertion(+), 1 deletion(-)
6610
 src/xz/coder.h   |  3 +++
9186
6611
 src/xz/message.c |  6 +++++-
9187
commit ade31a2bfb95c94d05fbfc0ecbba5d6377f2506e
6612
 4 files changed, 23 insertions(+), 3 deletions(-)
6613
6614
commit 96f94bc925d579a700147fa5d7793b64d69cfc18
6615
Author: Lasse Collin <lasse.collin@tukaani.org>
9188
Author: Lasse Collin <lasse.collin@tukaani.org>
6616
Date:   2011-02-04 22:49:31 +0200
9189
Date:   2016-04-10 20:54:17 +0300
6617
9190
6618
    xz: Clean up suffix.c.
9191
    Build: Bump GNU Gettext version requirement to 0.19.
6619
    
9192
    
6620
    struct suffix_pair isn't needed in compresed_name()
9193
    It silences a few warnings and most people probably have
6621
    so get rid of it there.
9194
    0.19 even on stable distributions.
6622
9195
    
6623
 src/xz/suffix.c | 44 ++++++++++++++++++++------------------------
9196
    Thanks to Christian Kujau.
6624
 1 file changed, 20 insertions(+), 24 deletions(-)
9197
6625
9198
 configure.ac | 2 +-
6626
commit 8930c7ae3f82bdae15aa129f01de08be23d7e8d7
9199
 1 file changed, 1 insertion(+), 1 deletion(-)
9200
9201
commit ac398c3bafa6e4c80e20571373a96947db863b3d
6627
Author: Lasse Collin <lasse.collin@tukaani.org>
9202
Author: Lasse Collin <lasse.collin@tukaani.org>
6628
Date:   2011-02-04 11:29:47 +0200
9203
Date:   2016-03-13 20:21:49 +0200
6629
9204
6630
    xz: Check if the file already has custom suffix when compressing.
9205
    liblzma: Disable external SHA-256 by default.
6631
    
9206
    
6632
    Now "xz -S .test foo.test" refuses to compress the
9207
    This is the sane thing to do. The conflict with OpenSSL
6633
    file because it already has the suffix .test. The man
9208
    on some OSes and especially that the OS-provided versions
6634
    page had it documented this way already.
9209
    can be significantly slower makes it clear that it was
6635
9210
    a mistake to have the external SHA-256 support enabled by
6636
 src/xz/suffix.c | 9 +++++++++
9211
    default.
6637
 1 file changed, 9 insertions(+)
9212
    
6638
9213
    Those who want it can now pass --enable-external-sha256 to
6639
commit 940d5852c6cf08abccc6befd9d1b5411c9076a58
9214
    configure. INSTALL was updated with notes about OSes where
9215
    this can be a bad idea.
9216
    
9217
    The SHA-256 detection code in configure.ac had some bugs that
9218
    could lead to a build failure in some situations. These were
9219
    fixed, although it doesn't matter that much now that the
9220
    external SHA-256 is disabled by default.
9221
    
9222
    MINIX >= 3.2.0 uses NetBSD's libc and thus has SHA256_Init
9223
    in libc instead of libutil. Support for the libutil version
9224
    was removed.
9225
9226
 INSTALL                   | 36 ++++++++++++++++++++++
9227
 configure.ac              | 76 +++++++++++++++++++++++------------------------
9228
 src/liblzma/check/check.h | 16 ++++------
9229
 3 files changed, 79 insertions(+), 49 deletions(-)
9230
9231
commit 6fd5ecb589a9fdd7a576ea48c4850d496bab9ce5
6640
Author: Lasse Collin <lasse.collin@tukaani.org>
9232
Author: Lasse Collin <lasse.collin@tukaani.org>
6641
Date:   2011-02-02 23:01:51 +0200
9233
Date:   2016-03-10 20:27:05 +0200
6642
6643
    Updated THANKS.
6644
9234
9235
    Update THANKS.
9236
6645
 THANKS | 1 +
9237
 THANKS | 1 +
6646
 1 file changed, 1 insertion(+)
9238
 1 file changed, 1 insertion(+)
6647
9239
6648
commit 4ebe65f839613f27f127bab7b8c347d982330ee3
9240
commit 473ef0dc69a30e64d5fa0d34aca02f7309faa3e9
6649
Author: Lasse Collin <lasse.collin@tukaani.org>
9241
Author: Lasse Collin <lasse.collin@tukaani.org>
6650
Date:   2011-02-02 23:00:33 +0200
9242
Date:   2016-03-10 20:26:49 +0200
6651
9243
6652
    Translations: Add Polish translation.
9244
    Build: Avoid SHA256_Init on FreeBSD and MINIX 3.
6653
    
9245
    
6654
    Thanks to Jakub Bogusz.
9246
    On FreeBSD 10 and older, SHA256_Init from libmd conflicts
6655
9247
    with libcrypto from OpenSSL. The OpenSSL version has
6656
 po/LINGUAS |   1 +
9248
    different sizeof(SHA256_CTX) and it can cause weird
6657
 po/pl.po   | 825 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
9249
    problems if wrong SHA256_Init gets used.
6658
 2 files changed, 826 insertions(+)
9250
    
9251
    Looking at the source, MINIX 3 seems to have a similar issue but
9252
    I'm not sure. To be safe, I disabled SHA256_Init on MINIX 3 too.
9253
    
9254
    NetBSD has SHA256_Init in libc and they had a similar problem,
9255
    but they already fixed it in 2009.
9256
    
9257
    Thanks to Jim Wilcoxson for the bug report that helped
9258
    in finding the problem.
6659
9259
6660
commit fc1d292dca1925dfd17174f443f91a696ecd5bf8
9260
 configure.ac | 27 +++++++++++++++++++++------
9261
 1 file changed, 21 insertions(+), 6 deletions(-)
9262
9263
commit faf302137e54d605b44ecf0373cb51a6403a2de1
6661
Author: Lasse Collin <lasse.collin@tukaani.org>
9264
Author: Lasse Collin <lasse.collin@tukaani.org>
6662
Date:   2011-02-02 22:24:00 +0200
9265
Date:   2015-11-08 20:16:10 +0200
6663
9266
6664
    Updated THANKS.
9267
    tuklib_physmem: Hopefully silence a warning on Windows.
6665
9268
9269
 src/common/tuklib_physmem.c | 3 ++-
9270
 1 file changed, 2 insertions(+), 1 deletion(-)
9271
9272
commit e52e9151cf8613022d1de4712ff39dbcb666e991
9273
Author: Lasse Collin <lasse.collin@tukaani.org>
9274
Date:   2015-11-04 23:17:43 +0200
9275
9276
    Update THANKS.
9277
6666
 THANKS | 1 +
9278
 THANKS | 1 +
6667
 1 file changed, 1 insertion(+)
9279
 1 file changed, 1 insertion(+)
6668
9280
6669
commit 6dd061adfd2775428b079eb03d6fd47d7c0f1ffe
9281
commit 14115f84a38161d55eaa2d070f08739bde37e966
6670
Merge: 9d542ce 5fbce0b
6671
Author: Lasse Collin <lasse.collin@tukaani.org>
9282
Author: Lasse Collin <lasse.collin@tukaani.org>
6672
Date:   2011-02-06 20:13:01 +0200
9283
Date:   2015-11-04 23:14:00 +0200
6673
9284
6674
    Merge commit '5fbce0b8d96dc96775aa0215e3581addc830e23d'
9285
    liblzma: Make Valgrind happier with optimized (gcc -O2) liblzma.
9286
    
9287
    When optimizing, GCC can reorder code so that an uninitialized
9288
    value gets used in a comparison, which makes Valgrind unhappy.
9289
    It doesn't happen when compiled with -O0, which I tend to use
9290
    when running Valgrind.
9291
    
9292
    Thanks to Rich Prohaska. I remember this being mentioned long
9293
    ago by someone else but nothing was done back then.
6675
9294
6676
commit 5fbce0b8d96dc96775aa0215e3581addc830e23d
9295
 src/liblzma/lz/lz_encoder.c | 4 ++++
9296
 1 file changed, 4 insertions(+)
9297
9298
commit f4c95ba94beb71a608eb6eadbf82b44f53a0260e
6677
Author: Lasse Collin <lasse.collin@tukaani.org>
9299
Author: Lasse Collin <lasse.collin@tukaani.org>
6678
Date:   2011-01-28 20:16:57 +0200
9300
Date:   2015-11-03 20:55:45 +0200
6679
9301
6680
    Update NEWS for 5.0.1.
9302
    liblzma: Rename lzma_presets.c back to lzma_encoder_presets.c.
9303
    
9304
    It would be too annoying to update other build systems
9305
    just because of this.
6681
9306
6682
 NEWS | 14 ++++++++++++++
9307
 src/liblzma/lzma/Makefile.inc                               | 2 +-
6683
 1 file changed, 14 insertions(+)
9308
 src/liblzma/lzma/{lzma_presets.c => lzma_encoder_presets.c} | 2 +-
9309
 2 files changed, 2 insertions(+), 2 deletions(-)
6684
9310
6685
commit 03ebd1bbb314f9f204940219a835c883bf442475
9311
commit c7bc20a6f3e71920871d48db31a79ab58b5a0a4b
6686
Author: Lasse Collin <lasse.collin@tukaani.org>
9312
Author: Lasse Collin <lasse.collin@tukaani.org>
6687
Date:   2011-01-26 12:19:08 +0200
9313
Date:   2015-11-03 20:47:07 +0200
6688
9314
6689
    xz: Fix --force on setuid/setgid/sticky and multi-hardlink files.
9315
    Build: Disable xzdec, lzmadec, and lzmainfo when they cannot be built.
6690
    
9316
    
6691
    xz didn't compress setuid/setgid/sticky files and files
9317
    They all need decoder support and if that isn't available,
6692
    with multiple hard links even with --force. This bug was
9318
    there's no point trying to build them.
6693
    introduced in 23ac2c44c3ac76994825adb7f9a8f719f78b5ee4.
9319
9320
 configure.ac | 3 +++
9321
 1 file changed, 3 insertions(+)
9322
9323
commit 5cbca1205deeb6fb7afe7a864fa68a57466d928a
9324
Author: Lasse Collin <lasse.collin@tukaani.org>
9325
Date:   2015-11-03 20:35:19 +0200
9326
9327
    Build: Simplify $enable_{encoders,decoders} usage a bit.
9328
9329
 configure.ac | 6 ++++--
9330
 1 file changed, 4 insertions(+), 2 deletions(-)
9331
9332
commit af13781886c8e7a0aabebb5141ea282dc364f5c6
9333
Author: Lasse Collin <lasse.collin@tukaani.org>
9334
Date:   2015-11-03 20:31:31 +0200
9335
9336
    Windows/MSVC: Update config.h.
9337
9338
 windows/config.h | 6 ++++++
9339
 1 file changed, 6 insertions(+)
9340
9341
commit 9fa5949330f162c5a2f6653f83025327837e8f39
9342
Author: Lasse Collin <lasse.collin@tukaani.org>
9343
Date:   2015-11-03 20:29:58 +0200
9344
9345
    DOS: Update config.h.
9346
9347
 dos/config.h | 6 ++++++
9348
 1 file changed, 6 insertions(+)
9349
9350
commit cb3111e3ed84152912b5138d690c8d9f00c6ef02
9351
Author: Lasse Collin <lasse.collin@tukaani.org>
9352
Date:   2015-11-03 20:29:33 +0200
9353
9354
    xz: Make xz buildable even when encoders or decoders are disabled.
6694
    
9355
    
6695
    Thanks to Charles Wilson.
9356
    The patch is quite long but it's mostly about adding new #ifdefs
6696
9357
    to omit code when encoders or decoders have been disabled.
6697
 src/xz/file_io.c | 15 +++++++--------
9358
    
6698
 1 file changed, 7 insertions(+), 8 deletions(-)
9359
    This adds two new #defines to config.h: HAVE_ENCODERS and
6699
9360
    HAVE_DECODERS.
6700
commit 9d542ceebcbe40b174169c132ccfcdc720ca7089
9361
6701
Merge: 4f2c69a 7bd0a5e
9362
 configure.ac       |  4 ++++
9363
 src/xz/Makefile.am |  8 ++++++--
9364
 src/xz/args.c      | 16 ++++++++++++++++
9365
 src/xz/coder.c     | 33 +++++++++++++++++++++++++--------
9366
 src/xz/main.c      |  9 +++++++--
9367
 src/xz/private.h   |  5 ++++-
9368
 6 files changed, 62 insertions(+), 13 deletions(-)
9369
9370
commit 4cc584985c0b7a13901da1b7a64ef9f7cc36e8ab
6702
Author: Lasse Collin <lasse.collin@tukaani.org>
9371
Author: Lasse Collin <lasse.collin@tukaani.org>
6703
Date:   2011-01-19 11:45:35 +0200
9372
Date:   2015-11-03 18:06:40 +0200
6704
6705
    Merge branch 'v5.0'
6706
9373
6707
commit 7bd0a5e7ccc354f7c2e95c8bc27569c820f6a136
9374
    Build: Build LZMA1/2 presets also when only decoder is wanted.
9375
    
9376
    People shouldn't rely on the presets when decoding raw streams,
9377
    but xz uses the presets as the starting point for raw decoder
9378
    options anyway.
9379
    
9380
    lzma_encocder_presets.c was renamed to lzma_presets.c to
9381
    make it clear it's not used solely by the encoder code.
9382
9383
 src/liblzma/lzma/Makefile.inc                               | 6 +++++-
9384
 src/liblzma/lzma/{lzma_encoder_presets.c => lzma_presets.c} | 3 ++-
9385
 2 files changed, 7 insertions(+), 2 deletions(-)
9386
9387
commit 23ed1d41489f632155bbc9660f323d57e09da180
6708
Author: Lasse Collin <lasse.collin@tukaani.org>
9388
Author: Lasse Collin <lasse.collin@tukaani.org>
6709
Date:   2011-01-18 21:25:24 +0200
9389
Date:   2015-11-03 17:54:48 +0200
6710
9390
6711
    Updated THANKS.
9391
    Build: Fix configure to handle LZMA1 dependency with LZMA2.
9392
    
9393
    Now it gives an error if LZMA1 encoder/decoder is missing
9394
    when LZMA2 encoder/decoder was requested. Even better would
9395
    be LZMA2 implicitly enabling LZMA1 but it would need more code.
6712
9396
9397
 configure.ac | 5 -----
9398
 1 file changed, 5 deletions(-)
9399
9400
commit b0bc3e03852af13419ea2960881824258d451117
9401
Author: Lasse Collin <lasse.collin@tukaani.org>
9402
Date:   2015-11-03 17:41:54 +0200
9403
9404
    Build: Don't omit lzma_cputhreads() unless using --disable-threads.
9405
    
9406
    Previously it was omitted if encoders were disabled
9407
    with --disable-encoders. It didn't make sense and
9408
    it also broke the build.
9409
9410
 src/liblzma/common/Makefile.inc | 5 ++++-
9411
 1 file changed, 4 insertions(+), 1 deletion(-)
9412
9413
commit c6bf438ab39e0fb4a47d3c81725c227919502726
9414
Author: Lasse Collin <lasse.collin@tukaani.org>
9415
Date:   2015-11-02 18:16:51 +0200
9416
9417
    liblzma: Fix a build failure related to external SHA-256 support.
9418
    
9419
    If an appropriate header and structure were found by configure,
9420
    but a library with a usable SHA-256 functions wasn't, the build
9421
    failed.
9422
9423
 src/liblzma/check/check.h | 32 +++++++++++++++++++++++---------
9424
 1 file changed, 23 insertions(+), 9 deletions(-)
9425
9426
commit e18adc56f2262aa9394d46681e9e4b9981ed5e97
9427
Author: Lasse Collin <lasse.collin@tukaani.org>
9428
Date:   2015-11-02 15:19:10 +0200
9429
9430
    xz: Always close the file before trying to delete it.
9431
    
9432
    unlink() can return EBUSY in errno for open files on some
9433
    operating systems and file systems.
9434
9435
 src/xz/file_io.c | 25 ++++++++++++-------------
9436
 1 file changed, 12 insertions(+), 13 deletions(-)
9437
9438
commit 282e768a1484e88c8b7ec35655ee4959954ec87a
9439
Author: Lasse Collin <lasse.collin@tukaani.org>
9440
Date:   2015-10-12 21:08:42 +0300
9441
9442
    Update THANKS.
9443
6713
 THANKS | 1 +
9444
 THANKS | 1 +
6714
 1 file changed, 1 insertion(+)
9445
 1 file changed, 1 insertion(+)
6715
9446
6716
commit f71c4e16e913f660977526f0ef8d2acdf458d7c9
9447
commit 372e402713a1d4337ffce5f56d5c5c9ed99a66d0
6717
Author: Lasse Collin <lasse.collin@tukaani.org>
9448
Author: Lasse Collin <lasse.collin@tukaani.org>
6718
Date:   2011-01-18 21:23:50 +0200
9449
Date:   2015-10-12 21:07:41 +0300
6719
9450
6720
    Add alloc_size and malloc attributes to a few functions.
9451
    Tests: Add tests for the two bugs fixed in index.c.
9452
9453
 tests/test_index.c | 30 ++++++++++++++++++++++++++++++
9454
 1 file changed, 30 insertions(+)
9455
9456
commit 21515d79d778b8730a434f151b07202d52a04611
9457
Author: Lasse Collin <lasse.collin@tukaani.org>
9458
Date:   2015-10-12 20:45:15 +0300
9459
9460
    liblzma: Fix lzma_index_dup() for empty Streams.
6721
    
9461
    
6722
    Thanks to Cristian Rodríguez for the original patch.
9462
    Stream Flags and Stream Padding weren't copied from
6723
9463
    empty Streams.
6724
 src/common/sysdefs.h        | 6 ++++++
9464
6725
 src/liblzma/common/common.h | 2 +-
9465
 src/liblzma/common/index.c | 11 ++++++-----
6726
 src/xz/util.h               | 5 +++--
9466
 1 file changed, 6 insertions(+), 5 deletions(-)
6727
 3 files changed, 10 insertions(+), 3 deletions(-)
9467
6728
9468
commit 09f395b6b360c0b13e8559eece1d179b908ebd3a
6729
commit 316cbe24465143edde8f6ffb7532834b7b2ea93f
6730
Author: Lasse Collin <lasse.collin@tukaani.org>
9469
Author: Lasse Collin <lasse.collin@tukaani.org>
6731
Date:   2010-12-13 16:36:33 +0200
9470
Date:   2015-10-12 20:31:44 +0300
6732
6733
    Scripts: Fix gzip and bzip2 support in xzdiff.
6734
9471
6735
 src/scripts/xzdiff.in | 12 ++++++------
9472
    liblzma: Add a note to index.c for those using static analyzers.
9473
9474
 src/liblzma/common/index.c | 3 +++
9475
 1 file changed, 3 insertions(+)
9476
9477
commit 3bf857edfef51374f6f3fffae3d817f57d3264a0
9478
Author: Lasse Collin <lasse.collin@tukaani.org>
9479
Date:   2015-10-12 20:29:09 +0300
9480
9481
    liblzma: Fix a memory leak in error path of lzma_index_dup().
9482
    
9483
    lzma_index_dup() calls index_dup_stream() which, in case of
9484
    an error, calls index_stream_end() to free memory allocated
9485
    by index_stream_init(). However, it illogically didn't
9486
    actually free the memory. To make it logical, the tree
9487
    handling code was modified a bit in addition to changing
9488
    index_stream_end().
9489
    
9490
    Thanks to Evan Nemerson for the bug report.
9491
9492
 src/liblzma/common/index.c | 18 +++++++++---------
9493
 1 file changed, 9 insertions(+), 9 deletions(-)
9494
9495
commit 7f05803979b4b79642d5be4218a79da7a0b12c47
9496
Author: Lasse Collin <lasse.collin@tukaani.org>
9497
Date:   2015-09-29 13:57:28 +0300
9498
9499
    Update NEWS for 5.2.2.
9500
9501
 NEWS | 18 ++++++++++++++++++
9502
 1 file changed, 18 insertions(+)
9503
9504
commit 397fcc0946315b55c3c6d80e37e82a2a78bc15c1
9505
Author: Hauke Henningsen <sqrt@entless.org>
9506
Date:   2015-08-17 04:59:54 +0200
9507
9508
    Update German translation, mostly wrt orthography
9509
    
9510
    Provide an update of the German translation.
9511
    * A lot of compound words were previously written with spaces, while
9512
      German orthography is relatively clear in that the components
9513
      should not be separated.
9514
    * When referring to the actual process of (de)compression rather than the
9515
      concept, replace “(De-)Kompression” with “(De-)Komprimierung”.
9516
      Previously, both forms were used in this context and are now used in a
9517
      manner consistent with “Komprimierung” being more likely to refer to
9518
      a process.
9519
    * Consistently translate “standard input”/“output”
9520
    * Use “Zeichen” instead of false friend “Charakter” for “character”
9521
    * Insert commas around relative clauses (as required in German)
9522
    * Some other minor corrections
9523
    * Capitalize “ß” as “ẞ”
9524
    * Consistently start option descriptions in --help with capital letters
9525
    
9526
    Acked-By: Andre Noll <maan@tuebingen.mpg.de>
9527
    
9528
    * Update after msgmerge
9529
9530
 po/de.po | 383 ++++++++++++++++++++++++++++++++-------------------------------
9531
 1 file changed, 196 insertions(+), 187 deletions(-)
9532
9533
commit cbc9e39bae715accb44168930a71888480aad569
9534
Author: Lasse Collin <lasse.collin@tukaani.org>
9535
Date:   2015-08-11 13:23:04 +0300
9536
9537
    Build: Minor Cygwin cleanup.
9538
    
9539
    Some tests used "cygwin*" and some used "cygwin". I changed
9540
    them all to use "cygwin". Shouldn't affect anything in practice.
9541
9542
 configure.ac | 6 +++---
9543
 1 file changed, 3 insertions(+), 3 deletions(-)
9544
9545
commit bcacd8ce7a031566858e5e03c1009064c3f1c89e
9546
Author: Lasse Collin <lasse.collin@tukaani.org>
9547
Date:   2015-08-11 13:21:52 +0300
9548
9549
    Build: Support building of MSYS2 binaries.
9550
9551
 configure.ac | 16 +++++++++++-----
9552
 1 file changed, 11 insertions(+), 5 deletions(-)
9553
9554
commit 0275a5398c01d57b724dec7fea52dec3bd6edc6c
9555
Author: Lasse Collin <lasse.collin@tukaani.org>
9556
Date:   2015-08-09 21:06:26 +0300
9557
9558
    Windows: Define DLL_EXPORT when building liblzma.dll with MSVC.
9559
    
9560
    src/liblzma/common/common.h uses it to set __declspec(dllexport)
9561
    for the API symbols.
9562
    
9563
    Thanks to Adam Walling.
9564
9565
 windows/liblzma_dll.vcxproj | 12 ++++++------
6736
 1 file changed, 6 insertions(+), 6 deletions(-)
9566
 1 file changed, 6 insertions(+), 6 deletions(-)
6737
9567
6738
commit 4f2c69a4e3e0aee2e37b0b1671d34086e20c8ac6
9568
commit a74525cf9b945fb0b370e64cf406104beb31729b
6739
Merge: adb89e6 9311774
6740
Author: Lasse Collin <lasse.collin@tukaani.org>
9569
Author: Lasse Collin <lasse.collin@tukaani.org>
6741
Date:   2010-12-12 23:13:22 +0200
9570
Date:   2015-08-09 21:02:20 +0300
6742
9571
6743
    Merge branch 'v5.0'
9572
    Windows: Omit unneeded header files from MSVC project files.
6744
9573
6745
commit 9311774c493c19deab51ded919dcd2e9c4aa2829
9574
 windows/liblzma.vcxproj     | 5 -----
9575
 windows/liblzma_dll.vcxproj | 5 -----
9576
 2 files changed, 10 deletions(-)
9577
9578
commit fbbb295a91caf39faf8838c8c39526e4cb4dc121
6746
Author: Lasse Collin <lasse.collin@tukaani.org>
9579
Author: Lasse Collin <lasse.collin@tukaani.org>
6747
Date:   2010-12-12 21:23:55 +0200
9580
Date:   2015-07-12 20:48:19 +0300
6748
9581
6749
    Build: Enable ASM on DJGPP by default.
9582
    liblzma: A MSVC-specific hack isn't needed with MSVC 2013 and newer.
6750
9583
6751
 configure.ac | 2 +-
9584
 src/liblzma/api/lzma.h | 18 +++++++++++++-----
9585
 1 file changed, 13 insertions(+), 5 deletions(-)
9586
9587
commit 713dbe5c230fe00865a54f5c32358ea30f9a1156
9588
Author: Lasse Collin <lasse.collin@tukaani.org>
9589
Date:   2015-06-19 20:38:55 +0300
9590
9591
    Update THANKS.
9592
9593
 THANKS | 2 ++
9594
 1 file changed, 2 insertions(+)
9595
9596
commit 3a5d755d055d51f99c523b4c2952727e1e69cfa1
9597
Author: Lasse Collin <lasse.collin@tukaani.org>
9598
Date:   2015-06-19 20:21:30 +0300
9599
9600
    Windows: Update the docs.
9601
9602
 INSTALL                                            | 29 ++++++++-----
9603
 windows/INSTALL-MSVC.txt                           | 47 ++++++++++++++++++++++
9604
 windows/{INSTALL-Windows.txt => INSTALL-MinGW.txt} |  2 +-
9605
 3 files changed, 67 insertions(+), 11 deletions(-)
9606
9607
commit b0798c6aa6184efcefd0bdcca20f96121a13feda
9608
Author: Lasse Collin <lasse.collin@tukaani.org>
9609
Date:   2015-06-19 17:25:31 +0300
9610
9611
    Windows: Add MSVC project files for building liblzma.
9612
    
9613
    Thanks to Adam Walling for creating these files.
9614
9615
 windows/liblzma.vcxproj     | 359 ++++++++++++++++++++++++++++++++++++++++
9616
 windows/liblzma_dll.vcxproj | 388 ++++++++++++++++++++++++++++++++++++++++++++
9617
 windows/xz_win.sln          |  48 ++++++
9618
 3 files changed, 795 insertions(+)
9619
9620
commit 9b02a4ffdac1b9f066658ec4c95c0834f4cd2fb7
9621
Author: Andre Noll <maan@tuebingen.mpg.de>
9622
Date:   2015-05-28 15:50:00 +0200
9623
9624
    Fix typo in German translation.
9625
    
9626
    As pointed out by Robert Pollak, there's a typo in the German
9627
    translation of the compression preset option (-0 ... -9) help text.
9628
    "The compressor" translates to "der Komprimierer", and the genitive
9629
    form is "des Komprimierers". The old word makes no sense at all.
9630
9631
 po/de.po | 2 +-
6752
 1 file changed, 1 insertion(+), 1 deletion(-)
9632
 1 file changed, 1 insertion(+), 1 deletion(-)
6753
9633
6754
commit 4a42aaee282fc73b482581684d65110506d5efdd
9634
commit c7f4041f6b8f4729f88d3bc888b2a4080ae51f72
6755
Author: Lasse Collin <lasse.collin@tukaani.org>
9635
Author: Lasse Collin <lasse.collin@tukaani.org>
6756
Date:   2010-12-12 16:09:42 +0200
9636
Date:   2015-05-13 20:57:55 +0300
6757
9637
6758
    Updated THANKS.
9638
    Tests: Fix a memory leak in test_bcj_exact_size.
9639
    
9640
    Thanks to Cristian Rodríguez.
6759
9641
9642
 tests/test_bcj_exact_size.c | 1 +
9643
 1 file changed, 1 insertion(+)
9644
9645
commit 17b29d4f0ae0f780fbd69e15a398dc478d8492f8
9646
Author: Lasse Collin <lasse.collin@tukaani.org>
9647
Date:   2015-05-12 18:08:24 +0300
9648
9649
    Fix NEWS about threading in 5.2.0.
9650
    
9651
    Thanks to Andy Hochhaus.
9652
9653
 NEWS | 3 ++-
9654
 1 file changed, 2 insertions(+), 1 deletion(-)
9655
9656
commit 49c26920d6e2d85e5c6123e34958aed2e77485ad
9657
Author: Lasse Collin <lasse.collin@tukaani.org>
9658
Date:   2015-05-11 21:26:16 +0300
9659
9660
    xz: Document that threaded decompression hasn't been implemented yet.
9661
9662
 src/xz/xz.1 | 10 +++++++++-
9663
 1 file changed, 9 insertions(+), 1 deletion(-)
9664
9665
commit 5b2458cb244ed237efe4de1ebcf06e1b3a1f4256
9666
Author: Lasse Collin <lasse.collin@tukaani.org>
9667
Date:   2015-04-20 20:20:29 +0300
9668
9669
    Update THANKS.
9670
6760
 THANKS | 1 +
9671
 THANKS | 1 +
6761
 1 file changed, 1 insertion(+)
9672
 1 file changed, 1 insertion(+)
6762
9673
6763
commit ce56f63c41ee210e6308090eb6d49221fdf67d6c
9674
commit 6bd0349c58451b13442e8f463e35de83548bf985
6764
Author: Lasse Collin <lasse.collin@tukaani.org>
9675
Author: Lasse Collin <lasse.collin@tukaani.org>
6765
Date:   2010-12-12 16:07:11 +0200
9676
Date:   2015-04-20 19:59:18 +0300
6766
9677
6767
    Add missing PRIx32 and PRIx64 compatibility definitions.
9678
    Revert "xz: Use pipe2() if available."
6768
    
9679
    
6769
    This fixes portability to systems that lack C99 inttypes.h.
9680
    This reverts commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd.
9681
    It is a problem when libc has pipe2() but the kernel is too
9682
    old to have pipe2() and thus pipe2() fails. In xz it's pointless
9683
    to have a fallback for non-functioning pipe2(); it's better to
9684
    avoid pipe2() completely.
6770
    
9685
    
6771
    Thanks to Juan Manuel Guerrero.
9686
    Thanks to Michael Fox for the bug report.
6772
9687
6773
 src/common/sysdefs.h | 9 +++++++++
9688
 configure.ac     | 4 ++--
6774
 1 file changed, 9 insertions(+)
9689
 src/xz/file_io.c | 9 +--------
6775
9690
 2 files changed, 3 insertions(+), 10 deletions(-)
6776
commit e6baedddcf54e7da049ebc49183565b99facd4c7
9691
9692
commit fc0df0f8db87dff45543708a711e17d29c37f632
6777
Author: Lasse Collin <lasse.collin@tukaani.org>
9693
Author: Lasse Collin <lasse.collin@tukaani.org>
6778
Date:   2010-12-12 14:50:04 +0200
9694
Date:   2015-04-01 14:45:25 +0300
6779
9695
6780
    DOS-like: Treat \ and : as directory separators in addition to /.
9696
    xz: Fix the Capsicum rights on user_abort_pipe.
9697
9698
 src/xz/file_io.c | 6 +++++-
9699
 1 file changed, 5 insertions(+), 1 deletion(-)
9700
9701
commit 57393615b31b3788dd77280452d845bcc12d33af
9702
Author: Lasse Collin <lasse.collin@tukaani.org>
9703
Date:   2015-03-31 22:20:11 +0300
9704
9705
    Update THANKS.
9706
9707
 THANKS | 1 +
9708
 1 file changed, 1 insertion(+)
9709
9710
commit 1238381143a9a7ce84839c2582ccd56ff750a440
9711
Author: Lasse Collin <lasse.collin@tukaani.org>
9712
Date:   2015-03-31 22:19:34 +0300
9713
9714
    xz: Add support for sandboxing with Capsicum.
6781
    
9715
    
6782
    Juan Manuel Guerrero had fixed this in his XZ Utils port
9716
    The sandboxing is used conditionally as described in main.c.
6783
    to DOS/DJGPP. The bug affects also Windows and OS/2.
9717
    This isn't optimal but it was much easier to implement than
6784
9718
    a full sandboxing solution and it still covers the most common
6785
 src/xz/suffix.c | 33 +++++++++++++++++++++++++++++----
9719
    use cases where xz is writing to standard output. This should
6786
 1 file changed, 29 insertions(+), 4 deletions(-)
9720
    have practically no effect on performance even with small files
9721
    as fork() isn't needed.
9722
    
9723
    C and locale libraries can open files as needed. This has been
9724
    fine in the past, but it's a problem with things like Capsicum.
9725
    io_sandbox_enter() tries to ensure that various locale-related
9726
    files have been loaded before cap_enter() is called, but it's
9727
    possible that there are other similar problems which haven't
9728
    been seen yet.
9729
    
9730
    Currently Capsicum is available on FreeBSD 10 and later
9731
    and there is a port to Linux too.
9732
    
9733
    Thanks to Loganaden Velvindron for help.
6787
9734
6788
commit adb89e68d43a4cadb0c215b45ef7a75737c9c3ec
9735
 configure.ac       | 41 +++++++++++++++++++++++++++
6789
Merge: 7c24e0d b7afd3e
9736
 src/xz/Makefile.am |  2 +-
9737
 src/xz/file_io.c   | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
9738
 src/xz/file_io.h   |  6 ++++
9739
 src/xz/main.c      | 18 ++++++++++++
9740
 src/xz/private.h   |  4 +++
9741
 6 files changed, 151 insertions(+), 1 deletion(-)
9742
9743
commit 29a087fb5a0c879f0b1bc4c6b989f7b87bacdf9e
6790
Author: Lasse Collin <lasse.collin@tukaani.org>
9744
Author: Lasse Collin <lasse.collin@tukaani.org>
6791
Date:   2010-12-07 18:53:04 +0200
9745
Date:   2015-03-31 21:12:30 +0300
6792
6793
    Merge branch 'v5.0'
6794
9746
6795
commit b7afd3e22a8fac115b75c738d40d3eb1de7e286f
9747
    Fix bugs and otherwise improve ax_check_capsicum.m4.
9748
    
9749
    AU_ALIAS was removed because the new version is incompatible
9750
    with the old version.
9751
    
9752
    It no longer checks for <sys/capability.h> separately.
9753
    It's enough to test for it as part of AC_CHECK_DECL.
9754
    The defines HAVE_CAPSICUM_SYS_CAPSICUM_H and
9755
    HAVE_CAPSICUM_SYS_CAPABILITY_H were removed as unneeded.
9756
    HAVE_SYS_CAPSICUM_H from AC_CHECK_HEADERS is enough.
9757
    
9758
    It no longer does a useless search for the Capsicum library
9759
    if the header wasn't found.
9760
    
9761
    Fixed a bug in ACTION-IF-FOUND (the first argument). Specifying
9762
    the argument omitted the default action but the given action
9763
    wasn't used instead.
9764
    
9765
    AC_DEFINE([HAVE_CAPSICUM]) is now always called when Capsicum
9766
    support is found. Previously it was part of the default
9767
    ACTION-IF-FOUND which a custom action would override. Now
9768
    the default action only prepends ${CAPSICUM_LIB} to LIBS.
9769
    
9770
    The documentation was updated.
9771
    
9772
    Since there as no serial number, "#serial 2" was added.
9773
9774
 m4/ax_check_capsicum.m4 | 103 ++++++++++++++++++++++++------------------------
9775
 1 file changed, 51 insertions(+), 52 deletions(-)
9776
9777
commit 6e845c6a3eddf2fde9db5a29950421dff60a43ac
6796
Author: Lasse Collin <lasse.collin@tukaani.org>
9778
Author: Lasse Collin <lasse.collin@tukaani.org>
6797
Date:   2010-12-07 18:52:04 +0200
9779
Date:   2015-03-31 19:20:24 +0300
6798
9780
6799
    Translations: Fix Czech translation of "sparse file".
9781
    Add m4/ax_check_capsicum.m4 for detecting Capsicum support.
6800
    
9782
    
6801
    Thanks to Petr Hubený and Marek Černocký.
9783
    The file was loaded from this web page:
9784
    https://github.com/google/capsicum-test/blob/dev/autoconf/m4/ax_check_capsicum.m4
9785
    
9786
    Thanks to Loganaden Velvindron for pointing it out for me.
6802
9787
6803
 po/cs.po | 88 ++++++++++++++++++++++++++++++++--------------------------------
9788
 m4/ax_check_capsicum.m4 | 86 +++++++++++++++++++++++++++++++++++++++++++++++++
6804
 1 file changed, 44 insertions(+), 44 deletions(-)
9789
 1 file changed, 86 insertions(+)
6805
9790
6806
commit 7c24e0d1b8a2e86e9263b0d56d39621e01aed7af
9791
commit 3717885f9ef2c06f1bcbad9f4c2ed2d5695f844e
6807
Merge: b4d42f1 3e56470
6808
Author: Lasse Collin <lasse.collin@tukaani.org>
9792
Author: Lasse Collin <lasse.collin@tukaani.org>
6809
Date:   2010-11-15 14:33:01 +0200
9793
Date:   2015-03-30 22:44:02 +0300
6810
6811
    Merge branch 'v5.0'
6812
9794
6813
commit 3e564704bc6f463cb2db11e3f3f0dbd71d85992e
9795
    Bump version to 5.3.0alpha and soname to 5.3.99.
9796
    
9797
    The idea of 99 is that it looks a bit weird in this context.
9798
    For new features there's no API/ABI stability in devel versions.
9799
9800
 src/liblzma/Makefile.am        | 2 +-
9801
 src/liblzma/api/lzma/version.h | 6 +++---
9802
 2 files changed, 4 insertions(+), 4 deletions(-)
9803
9804
commit eccd8155e107c5ada03d13e7730675cdf1a44ddc
6814
Author: Lasse Collin <lasse.collin@tukaani.org>
9805
Author: Lasse Collin <lasse.collin@tukaani.org>
6815
Date:   2010-11-15 14:28:26 +0200
9806
Date:   2015-03-29 22:14:47 +0300
6816
9807
6817
    liblzma: Document the return value of lzma_lzma_preset().
9808
    Update THANKS.
6818
9809
6819
 src/liblzma/api/lzma/lzma.h | 3 +++
9810
 THANKS | 1 +
6820
 1 file changed, 3 insertions(+)
9811
 1 file changed, 1 insertion(+)
6821
9812
6822
commit 2964d8d691ed92abdcf214888d79ad6d79774735
9813
commit 25263fd9e7a8a913395cb93d7c104cd48c2b4a00
6823
Author: Jonathan Nieder <jrnieder@gmail.com>
9814
Author: Lasse Collin <lasse.collin@tukaani.org>
6824
Date:   2010-11-12 15:22:13 -0600
9815
Date:   2015-03-29 22:13:48 +0300
6825
9816
6826
    Simplify paths in generated API docs
9817
    Fix the detection of installed RAM on QNX.
6827
    
9818
    
6828
    Currently the file list generated by Doxygen has src/ at the
9819
    The earlier version compiled but didn't actually work
6829
    beginning of each path.  Paths like common/sysdefs.h and
9820
    since sysconf(_SC_PHYS_PAGES) always fails (or so I was told).
6830
    liblzma/api/lzma.h are easier to read without such a prefix.
6831
    
9821
    
6832
    Builds from a separate build directory with
9822
    Thanks to Ole André Vadla Ravnås for the patch and testing.
9823
9824
 m4/tuklib_physmem.m4        |  6 +++---
9825
 src/common/tuklib_physmem.c | 14 +++++++++++++-
9826
 2 files changed, 16 insertions(+), 4 deletions(-)
9827
9828
commit 4c544d2410903d38402221cb783ed85585b6a007
9829
Author: Lasse Collin <lasse.collin@tukaani.org>
9830
Date:   2015-03-27 22:39:07 +0200
9831
9832
    Fix CPU core count detection on QNX.
6833
    
9833
    
6834
            mkdir build
9834
    It tried to use sysctl() on QNX but
6835
            cd build
9835
      - it broke the build because sysctl() needs -lsocket on QNX;
6836
            ../configure
9836
      - sysctl() doesn't work for detecting the core count on QNX
6837
            doxygen Doxyfile
9837
        even if it compiled.
6838
    
9838
    
6839
    include an even longer prefix /home/someone/src/xz/src; this
9839
    sysconf() works. An alternative would have been to use
6840
    patch has the nice side-effect of eliminating that prefix, too.
9840
    QNX-specific SYSPAGE_ENTRY(num_cpu) from <sys/syspage.h>.
6841
    
9841
    
6842
    Fixes: http://bugs.debian.org/572273
9842
    Thanks to Ole André Vadla Ravnås.
6843
9843
6844
 Doxyfile.in | 2 +-
9844
 m4/tuklib_cpucores.m4 | 15 +++++++++++----
6845
 1 file changed, 1 insertion(+), 1 deletion(-)
9845
 1 file changed, 11 insertions(+), 4 deletions(-)
6846
6847
commit b4d42f1a7120e2cefeb2f14425efe2ca6db85416
6848
Author: Anders F Bjorklund <afb@users.sourceforge.net>
6849
Date:   2010-11-05 12:56:11 +0100
6850
9846
6851
    add build script for macosx universal
9847
commit e0ea6737b03e83ccaff4514d00e31bb926f8f0f3
9848
Author: Lasse Collin <lasse.collin@tukaani.org>
9849
Date:   2015-03-07 22:05:57 +0200
6852
9850
6853
 macosx/build.sh | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
9851
    xz: size_t/uint32_t cleanup in options.c.
6854
 1 file changed, 92 insertions(+)
6855
9852
6856
commit 15ee6935abe4a2fc76639ee342ca2e69af3e0ad6
9853
 src/xz/options.c | 12 ++++++------
6857
Author: Lasse Collin <lasse.collin@tukaani.org>
9854
 1 file changed, 6 insertions(+), 6 deletions(-)
6858
Date:   2010-11-04 18:31:40 +0200
9855
6859
9856
commit 8bcca29a65335fd679c13814b70b35b68fa5daed
6860
    Update the copies of GPLv2 and LGPLv2.1 from gnu.org.
9857
Author: Lasse Collin <lasse.collin@tukaani.org>
9858
Date:   2015-03-07 22:04:23 +0200
9859
9860
    xz: Fix a comment and silence a warning in message.c.
9861
9862
 src/xz/message.c | 5 +++--
9863
 1 file changed, 3 insertions(+), 2 deletions(-)
9864
9865
commit f243f5f44c6b19a7c289a0ec73a03ee08364cb5b
9866
Author: Lasse Collin <lasse.collin@tukaani.org>
9867
Date:   2015-03-07 22:01:00 +0200
9868
9869
    liblzma: Silence more uint32_t vs. size_t warnings.
9870
9871
 src/liblzma/lz/lz_encoder.c     | 2 +-
9872
 src/liblzma/lzma/lzma_encoder.c | 2 +-
9873
 2 files changed, 2 insertions(+), 2 deletions(-)
9874
9875
commit 7f0a4c50f4a374c40acf4b86848f301ad1e82d34
9876
Author: Lasse Collin <lasse.collin@tukaani.org>
9877
Date:   2015-03-07 19:54:00 +0200
9878
9879
    xz: Make arg_count an unsigned int to silence a warning.
6861
    
9880
    
6862
    There are only a few white space changes.
9881
    Actually the value of arg_count cannot exceed INT_MAX
6863
9882
    but it's nicer as an unsigned int.
6864
 COPYING.GPLv2    | 14 +++++++-------
9883
6865
 COPYING.LGPLv2.1 | 16 +++++++---------
9884
 src/xz/args.h | 2 +-
6866
 2 files changed, 14 insertions(+), 16 deletions(-)
9885
 src/xz/main.c | 2 +-
6867
9886
 2 files changed, 2 insertions(+), 2 deletions(-)
6868
commit 8e355f7fdbeee6fe394eb02a28f267ce99a882a2
9887
6869
Merge: 974ebe6 37c2565
9888
commit f6ec46801588b1be29c07c9db98558b521304002
6870
Author: Lasse Collin <lasse.collin@tukaani.org>
9889
Author: Lasse Collin <lasse.collin@tukaani.org>
6871
Date:   2010-10-26 15:53:06 +0300
9890
Date:   2015-03-07 19:33:17 +0200
6872
6873
    Merge branch 'v5.0'
6874
9891
6875
commit 37c25658efd25b034266daf87cd381d20d1df776
9892
    liblzma: Fix a warning in index.c.
9893
9894
 src/liblzma/common/index.c | 4 +++-
9895
 1 file changed, 3 insertions(+), 1 deletion(-)
9896
9897
commit a24518971cc621315af142dd3bb7614fab04ad27
6876
Author: Lasse Collin <lasse.collin@tukaani.org>
9898
Author: Lasse Collin <lasse.collin@tukaani.org>
6877
Date:   2010-10-26 15:48:48 +0300
9899
Date:   2015-02-26 20:46:14 +0200
6878
9900
6879
    Build: Copy the example programs to $docdir/examples.
9901
    Build: Fix a CR+LF problem when running autoreconf -fi on OS/2.
9902
9903
 build-aux/version.sh | 2 +-
9904
 1 file changed, 1 insertion(+), 1 deletion(-)
9905
9906
commit dec11497a71518423b5ff0e759100cf8aadf6c7b
9907
Author: Lasse Collin <lasse.collin@tukaani.org>
9908
Date:   2015-02-26 16:53:44 +0200
9909
9910
    Bump version and soname for 5.2.1.
9911
9912
 src/liblzma/Makefile.am        | 2 +-
9913
 src/liblzma/api/lzma/version.h | 2 +-
9914
 2 files changed, 2 insertions(+), 2 deletions(-)
9915
9916
commit 29e39c79975ab89ee5dd671e97064534a9f3a649
9917
Author: Lasse Collin <lasse.collin@tukaani.org>
9918
Date:   2015-02-26 13:01:09 +0200
9919
9920
    Update NEWS for 5.2.1.
9921
9922
 NEWS | 14 ++++++++++++++
9923
 1 file changed, 14 insertions(+)
9924
9925
commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd
9926
Author: Lasse Collin <lasse.collin@tukaani.org>
9927
Date:   2015-02-22 19:38:48 +0200
9928
9929
    xz: Use pipe2() if available.
9930
9931
 configure.ac     | 4 ++--
9932
 src/xz/file_io.c | 9 ++++++++-
9933
 2 files changed, 10 insertions(+), 3 deletions(-)
9934
9935
commit 117d962685c72682c63edc9bb765367189800202
9936
Author: Lasse Collin <lasse.collin@tukaani.org>
9937
Date:   2015-02-21 23:40:26 +0200
9938
9939
    liblzma: Fix a compression-ratio regression in LZMA1/2 in fast mode.
6880
    
9940
    
6881
    The example programs by Daniel Mealha Cabrita were included
9941
    The bug was added in the commit
6882
    in the git repository, but I had forgot to add them to
9942
    f48fce093b07aeda95c18850f5e086d9f2383380 and thus
6883
    Makefile.am. Thus, they didn't get included in the source
9943
    affected 5.1.4beta and 5.2.0. Luckily the bug cannot
6884
    package at all by "make dist".
9944
    cause data corruption or other nasty things.
6885
9945
6886
 Makefile.am        | 5 +++++
9946
 src/liblzma/lzma/lzma_encoder_optimum_fast.c | 2 +-
6887
 windows/build.bash | 3 ++-
9947
 1 file changed, 1 insertion(+), 1 deletion(-)
6888
 2 files changed, 7 insertions(+), 1 deletion(-)
6889
9948
6890
commit 974ebe63497bdf0d262e06474f0dd5a70b1dd000
9949
commit ae984e31c167d3bc52972ec422dd1ebd5f5d5719
6891
Author: Lasse Collin <lasse.collin@tukaani.org>
9950
Author: Lasse Collin <lasse.collin@tukaani.org>
6892
Date:   2010-10-26 10:36:41 +0300
9951
Date:   2015-02-21 23:00:19 +0200
6893
9952
6894
    liblzma: Rename a few variables and constants.
9953
    xz: Fix the fcntl() usage when creating a pipe for the self-pipe trick.
6895
    
9954
    
6896
    This has no semantic changes. I find the new names slightly
9955
    Now it reads the old flags instead of blindly setting O_NONBLOCK.
6897
    more logical and they match the names that are already used
9956
    The old code may have worked correctly, but this is better.
6898
    in XZ Embedded.
9957
9958
 src/xz/file_io.c | 16 +++++++++++-----
9959
 1 file changed, 11 insertions(+), 5 deletions(-)
9960
9961
commit 2205bb5853098aea36a56df6f5747037175f66b4
9962
Author: Lasse Collin <lasse.collin@tukaani.org>
9963
Date:   2015-02-10 15:29:34 +0200
9964
9965
    Update THANKS.
9966
9967
 THANKS | 1 +
9968
 1 file changed, 1 insertion(+)
9969
9970
commit d935b0cdf3db440269b9d952b2b281b18f8c7b08
9971
Author: Lasse Collin <lasse.collin@tukaani.org>
9972
Date:   2015-02-10 15:28:30 +0200
9973
9974
    tuklib_cpucores: Use cpuset_getaffinity() on FreeBSD if available.
6899
    
9975
    
6900
    The name fastpos wasn't changed (not worth the hassle).
9976
    In FreeBSD, cpuset_getaffinity() is the preferred way to get
6901
9977
    the number of available cores.
6902
 src/liblzma/lzma/fastpos.h                     |  55 +++++------
9978
    
6903
 src/liblzma/lzma/lzma2_encoder.c               |   2 +-
9979
    Thanks to Rui Paulo for the patch. I edited it slightly, but
6904
 src/liblzma/lzma/lzma_common.h                 |  45 ++++-----
9980
    hopefully I didn't break anything.
6905
 src/liblzma/lzma/lzma_decoder.c                |  58 +++++------
6906
 src/liblzma/lzma/lzma_encoder.c                |  56 +++++------
6907
 src/liblzma/lzma/lzma_encoder_optimum_fast.c   |   9 +-
6908
 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 128 ++++++++++++-------------
6909
 src/liblzma/lzma/lzma_encoder_private.h        |  16 ++--
6910
 8 files changed, 183 insertions(+), 186 deletions(-)
6911
6912
commit 7c427ec38d016c0070a42315d752857e33792fc4
6913
Author: Lasse Collin <lasse.collin@tukaani.org>
6914
Date:   2010-10-25 12:59:25 +0300
6915
6916
    Bump version 5.1.0alpha.
6917
9981
6918
 src/liblzma/api/lzma/version.h | 4 ++--
9982
 m4/tuklib_cpucores.m4        | 23 ++++++++++++++++++++++-
9983
 src/common/tuklib_cpucores.c | 18 ++++++++++++++++++
9984
 2 files changed, 40 insertions(+), 1 deletion(-)
9985
9986
commit eb61bc58c20769cac4d05f363b9c0e8c9c71a560
9987
Author: Lasse Collin <lasse.collin@tukaani.org>
9988
Date:   2015-02-09 22:08:37 +0200
9989
9990
    xzdiff: Make the mktemp usage compatible with FreeBSD's mktemp.
9991
    
9992
    Thanks to Rui Paulo for the fix.
9993
9994
 src/scripts/xzdiff.in | 7 ++++++-
9995
 1 file changed, 6 insertions(+), 1 deletion(-)
9996
9997
commit b9a5b6b7a29029680af733082b6a46e0fc01623a
9998
Author: Lasse Collin <lasse.collin@tukaani.org>
9999
Date:   2015-02-03 21:45:53 +0200
10000
10001
    Add a few casts to tuklib_integer.h to silence possible warnings.
10002
    
10003
    I heard that Visual Studio 2013 gave warnings without the casts.
10004
    
10005
    Thanks to Gabi Davar.
10006
10007
 src/common/tuklib_integer.h | 24 ++++++++++++------------
10008
 1 file changed, 12 insertions(+), 12 deletions(-)
10009
10010
commit c45757135f40e4a0de730ba5fff0100219493982
10011
Author: Lasse Collin <lasse.collin@tukaani.org>
10012
Date:   2015-01-26 21:24:39 +0200
10013
10014
    liblzma: Set LZMA_MEMCMPLEN_EXTRA depending on the compare method.
10015
10016
 src/liblzma/common/memcmplen.h | 15 ++++++++++-----
10017
 1 file changed, 10 insertions(+), 5 deletions(-)
10018
10019
commit 3c500174ed5485f550972a2a6109c361e875f069
10020
Author: Lasse Collin <lasse.collin@tukaani.org>
10021
Date:   2015-01-26 20:40:16 +0200
10022
10023
    Update THANKS.
10024
10025
 THANKS | 1 +
10026
 1 file changed, 1 insertion(+)
10027
10028
commit fec88d41e672d9e197c9442aecf02bd0dfa6d516
10029
Author: Lasse Collin <lasse.collin@tukaani.org>
10030
Date:   2015-01-26 20:39:28 +0200
10031
10032
    liblzma: Silence harmless Valgrind errors.
10033
    
10034
    Thanks to Torsten Rupp for reporting this. I had
10035
    forgotten to run Valgrind before the 5.2.0 release.
10036
10037
 src/liblzma/lz/lz_encoder.c | 6 ++++++
10038
 1 file changed, 6 insertions(+)
10039
10040
commit a9b45badfec0928d20a27c7176c005fa637f7d1e
10041
Author: Lasse Collin <lasse.collin@tukaani.org>
10042
Date:   2015-01-09 21:50:19 +0200
10043
10044
    xz: Fix comments.
10045
10046
 src/xz/file_io.c | 12 ++++++++----
10047
 1 file changed, 8 insertions(+), 4 deletions(-)
10048
10049
commit 541aee6dd4aa97a809aba281475a21b641bb89e2
10050
Author: Lasse Collin <lasse.collin@tukaani.org>
10051
Date:   2015-01-09 21:35:06 +0200
10052
10053
    Update THANKS.
10054
10055
 THANKS | 1 +
10056
 1 file changed, 1 insertion(+)
10057
10058
commit 4170edc914655310d2363baccf5e615e09b04911
10059
Author: Lasse Collin <lasse.collin@tukaani.org>
10060
Date:   2015-01-09 21:34:06 +0200
10061
10062
    xz: Don't fail if stdout doesn't support O_NONBLOCK.
10063
    
10064
    This is similar to the case with stdin.
10065
    
10066
    Thanks to Brad Smith for the bug report and testing
10067
    on OpenBSD.
10068
10069
 src/xz/file_io.c | 36 +++++++++++++++---------------------
10070
 1 file changed, 15 insertions(+), 21 deletions(-)
10071
10072
commit 04bbc0c2843c50c8ad1cba42b937118e38b0508d
10073
Author: Lasse Collin <lasse.collin@tukaani.org>
10074
Date:   2015-01-07 19:18:20 +0200
10075
10076
    xz: Fix a memory leak in DOS-specific code.
10077
10078
 src/xz/file_io.c | 2 ++
10079
 1 file changed, 2 insertions(+)
10080
10081
commit f0f1f6c7235ffa901cf76fe18e33749e200b3eea
10082
Author: Lasse Collin <lasse.collin@tukaani.org>
10083
Date:   2015-01-07 19:08:06 +0200
10084
10085
    xz: Don't fail if stdin doesn't support O_NONBLOCK.
10086
    
10087
    It's a problem at least on OpenBSD which doesn't support
10088
    O_NONBLOCK on e.g. /dev/null. I'm not surprised if it's
10089
    a problem on other OSes too since this behavior is allowed
10090
    in POSIX-1.2008.
10091
    
10092
    The code relying on this behavior was committed in June 2013
10093
    and included in 5.1.3alpha released on 2013-10-26. Clearly
10094
    the development releases only get limited testing.
10095
10096
 src/xz/file_io.c | 18 +++++++-----------
10097
 1 file changed, 7 insertions(+), 11 deletions(-)
10098
10099
commit d2d484647d9d9d679f03c75abb0404f67069271c
10100
Author: Lasse Collin <lasse.collin@tukaani.org>
10101
Date:   2015-01-06 20:30:15 +0200
10102
10103
    Tests: Don't hide unexpected error messages in test_files.sh.
10104
    
10105
    Hiding them makes no sense since normally there's no error
10106
    when testing the "good" files. With "bad" files errors are
10107
    expected and then it makes sense to keep the messages hidden.
10108
10109
 tests/test_files.sh | 4 ++--
6919
 1 file changed, 2 insertions(+), 2 deletions(-)
10110
 1 file changed, 2 insertions(+), 2 deletions(-)
6920
10111
6921
commit e45929260cd902036efd40c5610a8d0a50d5712b
10112
commit aae6a6aeda51cf94a47e39ad624728f9bee75e30
6922
Author: Lasse Collin <lasse.collin@tukaani.org>
10113
Author: Lasse Collin <lasse.collin@tukaani.org>
6923
Date:   2010-10-23 17:25:52 +0300
10114
Date:   2014-12-30 11:17:16 +0200
6924
10115
6925
    Build: Fix mydist rule when .git doesn't exist.
10116
    Update Solaris notes in INSTALL.
10117
    
10118
    Mention the possible "make check" failure on Solaris in the
10119
    Solaris-specific section of INSTALL. It was already in
10120
    section 4.5 but it is better mention it in the OS-specific
10121
    section too.
6926
10122
6927
 Makefile.am | 1 +
10123
 INSTALL | 4 ++++
10124
 1 file changed, 4 insertions(+)
10125
10126
commit 7815112153178800a3521b9f31960e7cdc26cfba
10127
Author: Lasse Collin <lasse.collin@tukaani.org>
10128
Date:   2014-12-26 12:00:05 +0200
10129
10130
    Build: POSIX shell isn't required if scripts are disabled.
10131
10132
 INSTALL      | 3 ++-
10133
 configure.ac | 2 +-
10134
 2 files changed, 3 insertions(+), 2 deletions(-)
10135
10136
commit a0cd05ee71d330b79ead6eb9222e1b24e1559d3a
10137
Author: Lasse Collin <lasse.collin@tukaani.org>
10138
Date:   2014-12-21 20:48:37 +0200
10139
10140
    DOS: Update Makefile.
10141
10142
 dos/Makefile | 1 +
6928
 1 file changed, 1 insertion(+)
10143
 1 file changed, 1 insertion(+)
6929
10144
6930
commit 6e1326fcdf6b6209949be57cfe3ad4b781b65168
10145
commit b85ee0905ec4ab7656d22e63519fdd3bedb21f2e
6931
Author: Lasse Collin <lasse.collin@tukaani.org>
10146
Author: Lasse Collin <lasse.collin@tukaani.org>
6932
Date:   2010-10-23 14:15:35 +0300
10147
Date:   2014-12-21 19:50:38 +0200
6933
10148
6934
    Add NEWS for 5.0.0.
10149
    Windows: Fix bin_i486 to bin_i686 in build.bash.
6935
10150
6936
 NEWS | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
10151
 windows/build.bash | 2 +-
6937
 1 file changed, 62 insertions(+)
10152
 1 file changed, 1 insertion(+), 1 deletion(-)
6938
10153
6939
commit b667a3ef6338a2c1db7b7706b1f6c99ea392221c
10154
commit cbafa710918195dbba3db02c3fab4f0538235206
6940
Author: Lasse Collin <lasse.collin@tukaani.org>
10155
Author: Lasse Collin <lasse.collin@tukaani.org>
6941
Date:   2010-10-23 14:02:53 +0300
10156
Date:   2014-12-21 18:58:44 +0200
6942
10157
6943
    Bump version to 5.0.0 and liblzma version-info to 5:0:0.
10158
    Docs: Use lzma_cputhreads() in 04_compress_easy_mt.c.
6944
10159
10160
 doc/examples/04_compress_easy_mt.c | 30 ++++++++++++++++++++++++++----
10161
 1 file changed, 26 insertions(+), 4 deletions(-)
10162
10163
commit 8dbb57238d372c7263cfeb3e7f7fd9a73173156a
10164
Author: Lasse Collin <lasse.collin@tukaani.org>
10165
Date:   2014-12-21 18:56:44 +0200
10166
10167
    Docs: Update docs/examples/00_README.txt.
10168
10169
 doc/examples/00_README.txt | 4 ++++
10170
 1 file changed, 4 insertions(+)
10171
10172
commit 6060f7dc76fd6c2a8a1f8e85d0e4d86bb78273e6
10173
Author: Lasse Collin <lasse.collin@tukaani.org>
10174
Date:   2014-12-21 18:11:17 +0200
10175
10176
    Bump version and soname for 5.2.0.
10177
    
10178
    I know that soname != app version, but I skip AGE=1
10179
    in -version-info to make the soname match the liblzma
10180
    version anyway. It doesn't hurt anything as long as
10181
    it doesn't conflict with library versioning rules.
10182
6945
 src/liblzma/Makefile.am        | 2 +-
10183
 src/liblzma/Makefile.am        | 2 +-
6946
 src/liblzma/api/lzma/version.h | 8 ++++----
10184
 src/liblzma/api/lzma/version.h | 6 +++---
6947
 2 files changed, 5 insertions(+), 5 deletions(-)
10185
 src/liblzma/liblzma.map        | 2 +-
10186
 3 files changed, 5 insertions(+), 5 deletions(-)
(-)xz-5.2.5/INSTALL (-16 / +62 lines)
Lines 142-153 Link Here
142
142
143
    If it is enough to build liblzma (no command line tools):
143
    If it is enough to build liblzma (no command line tools):
144
144
145
      - There is experimental CMake support. As it is, it should be
145
      - There is CMake support. It should be good enough to build
146
        good enough to build static liblzma with Visual Studio.
146
        static liblzma or liblzma.dll with Visual Studio. The CMake
147
        Building liblzma.dll might work too (if it doesn't, it should
147
        support may work with MinGW or MinGW-w64. Read the comment
148
        be fixed). The CMake support may work with MinGW or MinGW-w64.
148
        in the beginning of CMakeLists.txt before running CMake!
149
        Read the comment in the beginning of CMakeLists.txt before
150
        running CMake!
151
149
152
      - There are Visual Studio project files under the "windows"
150
      - There are Visual Studio project files under the "windows"
153
        directory. See windows/INSTALL-MSVC.txt. In the future the
151
        directory. See windows/INSTALL-MSVC.txt. In the future the
Lines 316-321 Link Here
316
                            | xz -v -0 -Csha256 > foo.xz
314
                            | xz -v -0 -Csha256 > foo.xz
317
                        time xz --test foo.xz
315
                        time xz --test foo.xz
318
316
317
    --disable-microlzma
318
                Don't build MicroLZMA encoder and decoder. This omits
319
                lzma_microlzma_encoder() and lzma_microlzma_decoder()
320
                API functions from liblzma. These functions are needed
321
                by specific applications only. They were written for
322
                erofs-utils but they may be used by others too.
323
324
    --disable-lzip-decoder
325
                Disable decompression support for .lz (lzip) files.
326
                This omits the API function lzma_lzip_decoder() from
327
                liblzma and .lz support from the xz tool.
328
319
    --disable-xz
329
    --disable-xz
320
    --disable-xzdec
330
    --disable-xzdec
321
    --disable-lzmadec
331
    --disable-lzmadec
Lines 358-374 Link Here
358
                pre-i686 systems, you may want to disable the assembler
368
                pre-i686 systems, you may want to disable the assembler
359
                code.
369
                code.
360
370
371
    --disable-clmul-crc
372
                Disable the use carryless multiplication for CRC
373
                calculation even if compiler support for it is detected.
374
                The code uses runtime detection of SSSE3, SSE4.1, and
375
                CLMUL instructions on x86. On 32-bit x86 this currently
376
                is used only if --disable-assembler is used (this might
377
                be fixed in the future). The code works on E2K too.
378
379
                If using compiler options that unconditionally allow the
380
                required extensions (-msse4.1 -mpclmul) then runtime
381
                detection isn't used and the generic code is omitted.
382
361
    --enable-unaligned-access
383
    --enable-unaligned-access
362
                Allow liblzma to use unaligned memory access for 16-bit
384
                Allow liblzma to use unaligned memory access for 16-bit,
363
                and 32-bit loads and stores. This should be enabled only
385
                32-bit, and 64-bit loads and stores. This should be
364
                when the hardware supports this, i.e. when unaligned
386
                enabled only when the hardware supports this, that is,
365
                access is fast. Some operating system kernels emulate
387
                when unaligned access is fast. Some operating system
366
                unaligned access, which is extremely slow. This option
388
                kernels emulate unaligned access, which is extremely
367
                shouldn't be used on systems that rely on such emulation.
389
                slow. This option shouldn't be used on systems that
390
                rely on such emulation.
368
391
369
                Unaligned access is enabled by default on x86, x86-64,
392
                Unaligned access is enabled by default on x86, x86-64,
370
                and big endian PowerPC.
393
                big endian PowerPC, some ARM, and some ARM64 systems.
371
394
395
    --enable-unsafe-type-punning
396
                This enables use of code like
397
398
                    uint8_t *buf8 = ...;
399
                    *(uint32_t *)buf8 = ...;
400
401
                which violates strict aliasing rules and may result
402
                in broken code. There should be no need to use this
403
                option with recent GCC or Clang versions on any
404
                arch as just as fast code can be generated in a safe
405
                way too (using __builtin_assume_aligned + memcpy).
406
407
                However, this option might improve performance in some
408
                other cases, especially with old compilers (for example,
409
                GCC 3 and early 4.x on x86, GCC < 6 on ARMv6 and ARMv7).
410
372
    --enable-small
411
    --enable-small
373
                Reduce the size of liblzma by selecting smaller but
412
                Reduce the size of liblzma by selecting smaller but
374
                semantically equivalent version of some functions, and
413
                semantically equivalent version of some functions, and
Lines 427-433 Link Here
427
466
428
                        no      Disable threading support. This is the
467
                        no      Disable threading support. This is the
429
                                same as using --disable-threads.
468
                                same as using --disable-threads.
430
                                NOTE: If combined with --enable-small, the
469
                                NOTE: If combined with --enable-small
470
                                and the compiler doesn't support
471
                                __attribute__((__constructor__)), the
431
                                resulting liblzma won't be thread safe,
472
                                resulting liblzma won't be thread safe,
432
                                that is, if a multi-threaded application
473
                                that is, if a multi-threaded application
433
                                calls any liblzma functions from more than
474
                                calls any liblzma functions from more than
Lines 447-452 Link Here
447
                        auto    Look for a supported sandboxing method
488
                        auto    Look for a supported sandboxing method
448
                                and use it if found. If no method is
489
                                and use it if found. If no method is
449
                                found, then sandboxing isn't used.
490
                                found, then sandboxing isn't used.
491
                                This is the default.
450
492
451
                        no      Disable sandboxing support.
493
                        no      Disable sandboxing support.
452
494
Lines 455-460 Link Here
455
                                sandboxing. If no Capsicum support
497
                                sandboxing. If no Capsicum support
456
                                is found, configure will give an error.
498
                                is found, configure will give an error.
457
499
500
                        pledge  Use pledge(2) (OpenBSD >= 5.9) for
501
                                sandboxing. If pledge(2) isn't found,
502
                                configure will give an error.
503
458
    --enable-symbol-versions
504
    --enable-symbol-versions
459
                Use symbol versioning for liblzma. This is enabled by
505
                Use symbol versioning for liblzma. This is enabled by
460
                default on GNU/Linux, other GNU-based systems, and
506
                default on GNU/Linux, other GNU-based systems, and
Lines 517-523 Link Here
517
        liblzma, pass --enable-small to configure.
563
        liblzma, pass --enable-small to configure.
518
564
519
      - Tell the compiler to optimize for size instead of speed.
565
      - Tell the compiler to optimize for size instead of speed.
520
        E.g. with GCC, put -Os into CFLAGS.
566
        For example, with GCC, put -Os into CFLAGS.
521
567
522
      - xzdec and lzmadec will never use multithreading capabilities of
568
      - xzdec and lzmadec will never use multithreading capabilities of
523
        liblzma. You can avoid dependency on libpthread by passing
569
        liblzma. You can avoid dependency on libpthread by passing
Lines 550-556 Link Here
550
    a fallback xzdiff will use mkdir to securely create a temporary
596
    a fallback xzdiff will use mkdir to securely create a temporary
551
    directory. Having mktemp available is still recommended since the
597
    directory. Having mktemp available is still recommended since the
552
    mkdir fallback method isn't as robust as mktemp is. The original
598
    mkdir fallback method isn't as robust as mktemp is. The original
553
    mktemp can be found from <http://www.mktemp.org/>. On GNU, most will
599
    mktemp can be found from <https://www.mktemp.org/>. On GNU, most will
554
    use the mktemp program from GNU coreutils instead of the original
600
    use the mktemp program from GNU coreutils instead of the original
555
    implementation. Both mktemp versions are fine.
601
    implementation. Both mktemp versions are fine.
556
602
(-)xz-5.2.5/Makefile.am (-3 / +23 lines)
Lines 44-59 Link Here
44
dist_examplesold_DATA = \
44
dist_examplesold_DATA = \
45
	doc/examples_old/xz_pipe_comp.c \
45
	doc/examples_old/xz_pipe_comp.c \
46
	doc/examples_old/xz_pipe_decomp.c
46
	doc/examples_old/xz_pipe_decomp.c
47
48
# Install the Doxygen generated documentation if they were built.
49
install-data-local:
50
	if test -d "$(srcdir)/doc/api" ; then \
51
		$(MKDIR_P) "$(DESTDIR)$(docdir)/api" && \
52
		$(INSTALL_DATA) "$(srcdir)"/doc/api/* \
53
			"$(DESTDIR)$(docdir)/api"; \
54
	fi
55
56
# Remove the Doxygen generated documentation when uninstalling.
57
uninstall-local:
58
	rm -rf "$(DESTDIR)$(docdir)/api"
47
endif
59
endif
48
60
49
EXTRA_DIST = \
61
EXTRA_DIST = \
50
	po4a \
62
	po4a \
51
	extra \
63
	extra \
52
	dos \
64
	dos \
65
	doxygen \
53
	windows \
66
	windows \
54
	macosx \
67
	macosx \
68
	cmake \
69
	CMakeLists.txt \
55
	autogen.sh \
70
	autogen.sh \
56
	Doxyfile.in \
57
	COPYING.GPLv2 \
71
	COPYING.GPLv2 \
58
	COPYING.GPLv3 \
72
	COPYING.GPLv3 \
59
	COPYING.LGPLv2.1 \
73
	COPYING.LGPLv2.1 \
Lines 64-70 Link Here
64
78
65
ACLOCAL_AMFLAGS = -I m4
79
ACLOCAL_AMFLAGS = -I m4
66
80
67
# List of man pages to conver to PDF and plain text in the dist-hook target.
81
# List of man pages to convert to PDF and plain text in the dist-hook target.
68
manfiles = \
82
manfiles = \
69
	src/xz/xz.1 \
83
	src/xz/xz.1 \
70
	src/xzdec/xzdec.1 \
84
	src/xzdec/xzdec.1 \
Lines 79-85 Link Here
79
dist-hook:
93
dist-hook:
80
	if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \
94
	if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \
81
		( cd "$(srcdir)" && git log --date=iso --stat \
95
		( cd "$(srcdir)" && git log --date=iso --stat \
82
			b667a3ef6338a2c1db7b7706b1f6c99ea392221c^..HEAD ) \
96
			6060f7dc76fd6c2a8a1f8e85d0e4d86bb78273e6^..HEAD ) \
83
			> "$(distdir)/ChangeLog"; \
97
			> "$(distdir)/ChangeLog"; \
84
	fi
98
	fi
85
	if type groff > /dev/null 2>&1 && type ps2pdf > /dev/null 2>&1; then \
99
	if type groff > /dev/null 2>&1 && type ps2pdf > /dev/null 2>&1; then \
Lines 98-103 Link Here
98
				> "$$dest/txt/$$BASE.txt"; \
112
				> "$$dest/txt/$$BASE.txt"; \
99
		done; \
113
		done; \
100
	fi
114
	fi
115
	if test -d "$(srcdir)/doc/api" ; then \
116
		$(MKDIR_P) "$(distdir)/doc/api" && \
117
		$(INSTALL_DATA) "$(srcdir)"/doc/api/* \
118
			"$(distdir)/doc/api"; \
119
	fi
101
120
102
# This works with GNU tar and gives cleaner package than normal 'make dist'.
121
# This works with GNU tar and gives cleaner package than normal 'make dist'.
103
# This also ensures that the man page translations are up to date (dist-hook
122
# This also ensures that the man page translations are up to date (dist-hook
Lines 105-110 Link Here
105
mydist:
124
mydist:
106
	sh "$(srcdir)/src/liblzma/validate_map.sh"
125
	sh "$(srcdir)/src/liblzma/validate_map.sh"
107
	cd "$(srcdir)/po4a" && sh update-po
126
	cd "$(srcdir)/po4a" && sh update-po
127
	cd "$(srcdir)/doxygen" && sh update-doxygen
108
	VERSION=$(VERSION); \
128
	VERSION=$(VERSION); \
109
	if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \
129
	if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \
110
		SNAPSHOT=`cd "$(srcdir)" && git describe --abbrev=4 | cut -b2-`; \
130
		SNAPSHOT=`cd "$(srcdir)" && git describe --abbrev=4 | cut -b2-`; \
(-)xz-5.2.5/Makefile.in (-32 / +63 lines)
Lines 1-7 Link Here
1
# Makefile.in generated by automake 1.16.1 from Makefile.am.
1
# Makefile.in generated by automake 1.16.5 from Makefile.am.
2
# @configure_input@
2
# @configure_input@
3
3
4
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
4
# Copyright (C) 1994-2021 Free Software Foundation, Inc.
5
5
6
# This Makefile.in is free software; the Free Software Foundation
6
# This Makefile.in is free software; the Free Software Foundation
7
# gives unlimited permission to copy and/or distribute it,
7
# gives unlimited permission to copy and/or distribute it,
Lines 118-124 Link Here
118
 configure.lineno config.status.lineno
118
 configure.lineno config.status.lineno
119
mkinstalldirs = $(install_sh) -d
119
mkinstalldirs = $(install_sh) -d
120
CONFIG_HEADER = config.h
120
CONFIG_HEADER = config.h
121
CONFIG_CLEAN_FILES = Doxyfile
121
CONFIG_CLEAN_FILES =
122
CONFIG_CLEAN_VPATH_FILES =
122
CONFIG_CLEAN_VPATH_FILES =
123
AM_V_P = $(am__v_P_@AM_V@)
123
AM_V_P = $(am__v_P_@AM_V@)
124
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
124
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
Lines 194-201 Link Here
194
  $(am__extra_recursive_targets)
194
  $(am__extra_recursive_targets)
195
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
195
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
196
	cscope distdir distdir-am dist dist-all distcheck
196
	cscope distdir distdir-am dist dist-all distcheck
197
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
197
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
198
	$(LISP)config.h.in
198
	config.h.in
199
# Read a list of newline-separated strings from the standard input,
199
# Read a list of newline-separated strings from the standard input,
200
# and print each of them once, without duplicates.  Input order is
200
# and print each of them once, without duplicates.  Input order is
201
# *not* preserved.
201
# *not* preserved.
Lines 212-222 Link Here
212
  unique=`for i in $$list; do \
212
  unique=`for i in $$list; do \
213
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
213
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
214
  done | $(am__uniquify_input)`
214
  done | $(am__uniquify_input)`
215
ETAGS = etags
215
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
216
CTAGS = ctags
216
	$(top_srcdir)/build-aux/compile \
217
CSCOPE = cscope
218
am__DIST_COMMON = $(srcdir)/Doxyfile.in $(srcdir)/Makefile.in \
219
	$(srcdir)/config.h.in $(top_srcdir)/build-aux/compile \
220
	$(top_srcdir)/build-aux/config.guess \
217
	$(top_srcdir)/build-aux/config.guess \
221
	$(top_srcdir)/build-aux/config.rpath \
218
	$(top_srcdir)/build-aux/config.rpath \
222
	$(top_srcdir)/build-aux/config.sub \
219
	$(top_srcdir)/build-aux/config.sub \
Lines 264-269 Link Here
264
  reldir="$$dir2"
261
  reldir="$$dir2"
265
DIST_ARCHIVES = $(distdir).tar.gz
262
DIST_ARCHIVES = $(distdir).tar.gz
266
DIST_TARGETS = dist-gzip
263
DIST_TARGETS = dist-gzip
264
# Exists only to be overridden by the user if desired.
265
AM_DISTCHECK_DVI_TARGET = dvi
267
distuninstallcheck_listfiles = find . -type f -print
266
distuninstallcheck_listfiles = find . -type f -print
268
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
267
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
269
  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
268
  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
Lines 288-293 Link Here
288
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
287
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
289
CPP = @CPP@
288
CPP = @CPP@
290
CPPFLAGS = @CPPFLAGS@
289
CPPFLAGS = @CPPFLAGS@
290
CSCOPE = @CSCOPE@
291
CTAGS = @CTAGS@
291
CYGPATH_W = @CYGPATH_W@
292
CYGPATH_W = @CYGPATH_W@
292
DEFS = @DEFS@
293
DEFS = @DEFS@
293
DEPDIR = @DEPDIR@
294
DEPDIR = @DEPDIR@
Lines 298-305 Link Here
298
ECHO_N = @ECHO_N@
299
ECHO_N = @ECHO_N@
299
ECHO_T = @ECHO_T@
300
ECHO_T = @ECHO_T@
300
EGREP = @EGREP@
301
EGREP = @EGREP@
302
ETAGS = @ETAGS@
301
EXEEXT = @EXEEXT@
303
EXEEXT = @EXEEXT@
302
FGREP = @FGREP@
304
FGREP = @FGREP@
305
FILECMD = @FILECMD@
303
GETOPT_H = @GETOPT_H@
306
GETOPT_H = @GETOPT_H@
304
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
307
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
305
GMSGFMT = @GMSGFMT@
308
GMSGFMT = @GMSGFMT@
Lines 352-357 Link Here
352
PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@
355
PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@
353
PTHREAD_CC = @PTHREAD_CC@
356
PTHREAD_CC = @PTHREAD_CC@
354
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
357
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
358
PTHREAD_CXX = @PTHREAD_CXX@
355
PTHREAD_LIBS = @PTHREAD_LIBS@
359
PTHREAD_LIBS = @PTHREAD_LIBS@
356
RANLIB = @RANLIB@
360
RANLIB = @RANLIB@
357
RC = @RC@
361
RC = @RC@
Lines 410-415 Link Here
410
prefix = @prefix@
414
prefix = @prefix@
411
program_transform_name = @program_transform_name@
415
program_transform_name = @program_transform_name@
412
psdir = @psdir@
416
psdir = @psdir@
417
runstatedir = @runstatedir@
413
sbindir = @sbindir@
418
sbindir = @sbindir@
414
sharedstatedir = @sharedstatedir@
419
sharedstatedir = @sharedstatedir@
415
srcdir = @srcdir@
420
srcdir = @srcdir@
Lines 455-464 Link Here
455
	po4a \
460
	po4a \
456
	extra \
461
	extra \
457
	dos \
462
	dos \
463
	doxygen \
458
	windows \
464
	windows \
459
	macosx \
465
	macosx \
466
	cmake \
467
	CMakeLists.txt \
460
	autogen.sh \
468
	autogen.sh \
461
	Doxyfile.in \
462
	COPYING.GPLv2 \
469
	COPYING.GPLv2 \
463
	COPYING.GPLv3 \
470
	COPYING.GPLv3 \
464
	COPYING.LGPLv2.1 \
471
	COPYING.LGPLv2.1 \
Lines 469-475 Link Here
469
476
470
ACLOCAL_AMFLAGS = -I m4
477
ACLOCAL_AMFLAGS = -I m4
471
478
472
# List of man pages to conver to PDF and plain text in the dist-hook target.
479
# List of man pages to convert to PDF and plain text in the dist-hook target.
473
manfiles = \
480
manfiles = \
474
	src/xz/xz.1 \
481
	src/xz/xz.1 \
475
	src/xzdec/xzdec.1 \
482
	src/xzdec/xzdec.1 \
Lines 531-538 Link Here
531
538
532
distclean-hdr:
539
distclean-hdr:
533
	-rm -f config.h stamp-h1
540
	-rm -f config.h stamp-h1
534
Doxyfile: $(top_builddir)/config.status $(srcdir)/Doxyfile.in
535
	cd $(top_builddir) && $(SHELL) ./config.status $@
536
541
537
mostlyclean-libtool:
542
mostlyclean-libtool:
538
	-rm -f *.lo
543
	-rm -f *.lo
Lines 711-717 Link Here
711
distclean-tags:
716
distclean-tags:
712
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
717
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
713
	-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
718
	-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
714
715
distdir: $(BUILT_SOURCES)
719
distdir: $(BUILT_SOURCES)
716
	$(MAKE) $(AM_MAKEFLAGS) distdir-am
720
	$(MAKE) $(AM_MAKEFLAGS) distdir-am
717
721
Lines 803-808 Link Here
803
	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
807
	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
804
	$(am__post_remove_distdir)
808
	$(am__post_remove_distdir)
805
809
810
dist-zstd: distdir
811
	tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
812
	$(am__post_remove_distdir)
813
806
dist-tarZ: distdir
814
dist-tarZ: distdir
807
	@echo WARNING: "Support for distribution archives compressed with" \
815
	@echo WARNING: "Support for distribution archives compressed with" \
808
		       "legacy program 'compress' is deprecated." >&2
816
		       "legacy program 'compress' is deprecated." >&2
Lines 845-850 Link Here
845
	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
853
	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
846
	*.zip*) \
854
	*.zip*) \
847
	  unzip $(distdir).zip ;;\
855
	  unzip $(distdir).zip ;;\
856
	*.tar.zst*) \
857
	  zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
848
	esac
858
	esac
849
	chmod -R a-w $(distdir)
859
	chmod -R a-w $(distdir)
850
	chmod u+w $(distdir)
860
	chmod u+w $(distdir)
Lines 860-866 Link Here
860
	    $(DISTCHECK_CONFIGURE_FLAGS) \
870
	    $(DISTCHECK_CONFIGURE_FLAGS) \
861
	    --srcdir=../.. --prefix="$$dc_install_base" \
871
	    --srcdir=../.. --prefix="$$dc_install_base" \
862
	  && $(MAKE) $(AM_MAKEFLAGS) \
872
	  && $(MAKE) $(AM_MAKEFLAGS) \
863
	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
873
	  && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \
864
	  && $(MAKE) $(AM_MAKEFLAGS) check \
874
	  && $(MAKE) $(AM_MAKEFLAGS) check \
865
	  && $(MAKE) $(AM_MAKEFLAGS) install \
875
	  && $(MAKE) $(AM_MAKEFLAGS) install \
866
	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
876
	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
Lines 949-954 Link Here
949
maintainer-clean-generic:
959
maintainer-clean-generic:
950
	@echo "This command is intended for maintainers to use"
960
	@echo "This command is intended for maintainers to use"
951
	@echo "it deletes files that may require special tools to rebuild."
961
	@echo "it deletes files that may require special tools to rebuild."
962
@COND_DOC_FALSE@install-data-local:
963
@COND_DOC_FALSE@uninstall-local:
952
clean: clean-recursive
964
clean: clean-recursive
953
965
954
clean-am: clean-generic clean-libtool mostlyclean-am
966
clean-am: clean-generic clean-libtool mostlyclean-am
Lines 971-978 Link Here
971
983
972
info-am:
984
info-am:
973
985
974
install-data-am: install-dist_docDATA install-dist_examplesDATA \
986
install-data-am: install-data-local install-dist_docDATA \
975
	install-dist_examplesoldDATA
987
	install-dist_examplesDATA install-dist_examplesoldDATA
976
988
977
install-dvi: install-dvi-recursive
989
install-dvi: install-dvi-recursive
978
990
Lines 1019-1025 Link Here
1019
ps-am:
1031
ps-am:
1020
1032
1021
uninstall-am: uninstall-dist_docDATA uninstall-dist_examplesDATA \
1033
uninstall-am: uninstall-dist_docDATA uninstall-dist_examplesDATA \
1022
	uninstall-dist_examplesoldDATA
1034
	uninstall-dist_examplesoldDATA uninstall-local
1023
1035
1024
.MAKE: $(am__recursive_targets) all install-am install-strip
1036
.MAKE: $(am__recursive_targets) all install-am install-strip
1025
1037
Lines 1027-1057 Link Here
1027
	am--refresh check check-am clean clean-cscope clean-generic \
1039
	am--refresh check check-am clean clean-cscope clean-generic \
1028
	clean-libtool cscope cscopelist-am ctags ctags-am dist \
1040
	clean-libtool cscope cscopelist-am ctags ctags-am dist \
1029
	dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \
1041
	dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \
1030
	dist-tarZ dist-xz dist-zip distcheck distclean \
1042
	dist-tarZ dist-xz dist-zip dist-zstd distcheck distclean \
1031
	distclean-generic distclean-hdr distclean-libtool \
1043
	distclean-generic distclean-hdr distclean-libtool \
1032
	distclean-tags distcleancheck distdir distuninstallcheck dvi \
1044
	distclean-tags distcleancheck distdir distuninstallcheck dvi \
1033
	dvi-am html html-am info info-am install install-am \
1045
	dvi-am html html-am info info-am install install-am \
1034
	install-data install-data-am install-dist_docDATA \
1046
	install-data install-data-am install-data-local \
1035
	install-dist_examplesDATA install-dist_examplesoldDATA \
1047
	install-dist_docDATA install-dist_examplesDATA \
1036
	install-dvi install-dvi-am install-exec install-exec-am \
1048
	install-dist_examplesoldDATA install-dvi install-dvi-am \
1037
	install-html install-html-am install-info install-info-am \
1049
	install-exec install-exec-am install-html install-html-am \
1038
	install-man install-pdf install-pdf-am install-ps \
1050
	install-info install-info-am install-man install-pdf \
1039
	install-ps-am install-strip installcheck installcheck-am \
1051
	install-pdf-am install-ps install-ps-am install-strip \
1040
	installdirs installdirs-am maintainer-clean \
1052
	installcheck installcheck-am installdirs installdirs-am \
1041
	maintainer-clean-generic mostlyclean mostlyclean-generic \
1053
	maintainer-clean maintainer-clean-generic mostlyclean \
1042
	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
1054
	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
1043
	uninstall-am uninstall-dist_docDATA \
1055
	tags tags-am uninstall uninstall-am uninstall-dist_docDATA \
1044
	uninstall-dist_examplesDATA uninstall-dist_examplesoldDATA
1056
	uninstall-dist_examplesDATA uninstall-dist_examplesoldDATA \
1057
	uninstall-local
1045
1058
1046
.PRECIOUS: Makefile
1059
.PRECIOUS: Makefile
1047
1060
1048
1061
1062
# Install the Doxygen generated documentation if they were built.
1063
@COND_DOC_TRUE@install-data-local:
1064
@COND_DOC_TRUE@	if test -d "$(srcdir)/doc/api" ; then \
1065
@COND_DOC_TRUE@		$(MKDIR_P) "$(DESTDIR)$(docdir)/api" && \
1066
@COND_DOC_TRUE@		$(INSTALL_DATA) "$(srcdir)"/doc/api/* \
1067
@COND_DOC_TRUE@			"$(DESTDIR)$(docdir)/api"; \
1068
@COND_DOC_TRUE@	fi
1069
1070
# Remove the Doxygen generated documentation when uninstalling.
1071
@COND_DOC_TRUE@uninstall-local:
1072
@COND_DOC_TRUE@	rm -rf "$(DESTDIR)$(docdir)/api"
1073
1049
# Create ChangeLog from output of "git log --date=iso --stat".
1074
# Create ChangeLog from output of "git log --date=iso --stat".
1050
# Convert the man pages to PDF and plain text (ASCII only) formats.
1075
# Convert the man pages to PDF and plain text (ASCII only) formats.
1051
dist-hook:
1076
dist-hook:
1052
	if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \
1077
	if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \
1053
		( cd "$(srcdir)" && git log --date=iso --stat \
1078
		( cd "$(srcdir)" && git log --date=iso --stat \
1054
			b667a3ef6338a2c1db7b7706b1f6c99ea392221c^..HEAD ) \
1079
			6060f7dc76fd6c2a8a1f8e85d0e4d86bb78273e6^..HEAD ) \
1055
			> "$(distdir)/ChangeLog"; \
1080
			> "$(distdir)/ChangeLog"; \
1056
	fi
1081
	fi
1057
	if type groff > /dev/null 2>&1 && type ps2pdf > /dev/null 2>&1; then \
1082
	if type groff > /dev/null 2>&1 && type ps2pdf > /dev/null 2>&1; then \
Lines 1070-1075 Link Here
1070
				> "$$dest/txt/$$BASE.txt"; \
1095
				> "$$dest/txt/$$BASE.txt"; \
1071
		done; \
1096
		done; \
1072
	fi
1097
	fi
1098
	if test -d "$(srcdir)/doc/api" ; then \
1099
		$(MKDIR_P) "$(distdir)/doc/api" && \
1100
		$(INSTALL_DATA) "$(srcdir)"/doc/api/* \
1101
			"$(distdir)/doc/api"; \
1102
	fi
1073
1103
1074
# This works with GNU tar and gives cleaner package than normal 'make dist'.
1104
# This works with GNU tar and gives cleaner package than normal 'make dist'.
1075
# This also ensures that the man page translations are up to date (dist-hook
1105
# This also ensures that the man page translations are up to date (dist-hook
Lines 1077-1082 Link Here
1077
mydist:
1107
mydist:
1078
	sh "$(srcdir)/src/liblzma/validate_map.sh"
1108
	sh "$(srcdir)/src/liblzma/validate_map.sh"
1079
	cd "$(srcdir)/po4a" && sh update-po
1109
	cd "$(srcdir)/po4a" && sh update-po
1110
	cd "$(srcdir)/doxygen" && sh update-doxygen
1080
	VERSION=$(VERSION); \
1111
	VERSION=$(VERSION); \
1081
	if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \
1112
	if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \
1082
		SNAPSHOT=`cd "$(srcdir)" && git describe --abbrev=4 | cut -b2-`; \
1113
		SNAPSHOT=`cd "$(srcdir)" && git describe --abbrev=4 | cut -b2-`; \
(-)xz-5.2.5/NEWS (+1005 lines)
Lines 2-7 Link Here
2
XZ Utils Release Notes
2
XZ Utils Release Notes
3
======================
3
======================
4
4
5
5.4.3 (2023-05-04)
6
7
    * All fixes from 5.2.12
8
9
    * Features in the CMake build can now be disabled as CMake cache
10
      variables, similar to the Autotools build.
11
12
    * Minor update to the Croatian translation.
13
14
15
5.4.2 (2023-03-18)
16
17
    * All fixes from 5.2.11 that were not included in 5.4.1.
18
19
    * If xz is built with support for the Capsicum sandbox but running
20
      in an environment that doesn't support Capsicum, xz now runs
21
      normally without sandboxing instead of exiting with an error.
22
23
    * liblzma:
24
25
        - Documentation was updated to improve the style, consistency,
26
          and completeness of the liblzma API headers.
27
28
        - The Doxygen-generated HTML documentation for the liblzma API
29
          header files is now included in the source release and is
30
          installed as part of "make install". All JavaScript is
31
          removed to simplify license compliance and to reduce the
32
          install size.
33
34
        - Fixed a minor bug in lzma_str_from_filters() that produced
35
          too many filters in the output string instead of reporting
36
          an error if the input array had more than four filters. This
37
          bug did not affect xz.
38
39
    * Build systems:
40
41
        - autogen.sh now invokes the doxygen tool via the new wrapper
42
          script doxygen/update-doxygen, unless the command line option
43
          --no-doxygen is used.
44
45
        - Added microlzma_encoder.c and microlzma_decoder.c to the
46
          VS project files for Windows and to the CMake build. These
47
          should have been included in 5.3.2alpha.
48
49
    * Tests:
50
51
        - Added a test to the CMake build that was forgotten in the
52
          previous release.
53
54
        - Added and refactored a few tests.
55
56
    * Translations:
57
58
        - Updated the Brazilian Portuguese translation.
59
60
        - Added Brazilian Portuguese man page translation.
61
62
63
5.4.1 (2023-01-11)
64
65
    * liblzma:
66
67
        - Fixed the return value of lzma_microlzma_encoder() if the
68
          LZMA options lc/lp/pb are invalid. Invalid lc/lp/pb options
69
          made the function return LZMA_STREAM_END without encoding
70
          anything instead of returning LZMA_OPTIONS_ERROR.
71
72
        - Windows / Visual Studio: Workaround a possible compiler bug
73
          when targeting 32-bit x86 and compiling the CLMUL version of
74
          the CRC64 code. The CLMUL code isn't enabled by the Windows
75
          project files but it is in the CMake-based builds.
76
77
    * Build systems:
78
79
        - Windows-specific CMake changes:
80
81
            * Don't try to enable CLMUL CRC64 code if _mm_set_epi64x()
82
              isn't available. This fixes CMake-based build with Visual
83
              Studio 2013.
84
85
            * Created a workaround for a build failure with windres
86
              from GNU binutils. It is used only when the C compiler
87
              is GCC (not Clang). The workaround is incompatible
88
              with llvm-windres, resulting in "XZx20Utils" instead
89
              of "XZ Utils" in the resource file, but without the
90
              workaround llvm-windres works correctly. See the
91
              comment in CMakeLists.txt for details.
92
93
            * Included the resource files in the xz and xzdec build
94
              rules. Building the command line tools is still
95
              experimental but possible with MinGW-w64.
96
97
        - Visual Studio: Added stream_decoder_mt.c to the project
98
          files. Now the threaded decompressor lzma_stream_decoder_mt()
99
          gets built. CMake-based build wasn't affected.
100
101
        - Updated windows/INSTALL-MSVC.txt to mention that CMake-based
102
          build is now the preferred method with Visual Studio. The
103
          project files will probably be removed after 5.4.x releases.
104
105
        - Changes to #defines in config.h:
106
107
            * HAVE_DECL_CLOCK_MONOTONIC was replaced by
108
              HAVE_CLOCK_MONOTONIC. The old macro was always defined
109
              in configure-generated config.h to either 0 or 1. The
110
              new macro is defined (to 1) only if the declaration of
111
              CLOCK_MONOTONIC is available. This matches the way most
112
              other config.h macros work and makes things simpler with
113
              other build systems.
114
115
            * HAVE_DECL_PROGRAM_INVOCATION_NAME was replaced by
116
              HAVE_PROGRAM_INVOCATION_NAME for the same reason.
117
118
    * Tests:
119
120
        - Fixed test script compatibility with ancient /bin/sh
121
          versions. Now the five test_compress_* tests should
122
          no longer fail on Solaris 10.
123
124
        - Added and refactored a few tests.
125
126
    * Translations:
127
128
        - Updated the Catalan and Esperanto translations.
129
130
        - Added Korean and Ukrainian man page translations.
131
132
133
5.4.0 (2022-12-13)
134
135
    This bumps the minor version of liblzma because new features were
136
    added. The API and ABI are still backward compatible with liblzma
137
    5.2.x and 5.0.x.
138
139
    Since 5.3.5beta:
140
141
    * All fixes from 5.2.10.
142
143
    * The ARM64 filter is now stable. The xz option is now --arm64.
144
      Decompression requires XZ Utils 5.4.0. In the future the ARM64
145
      filter will be supported by XZ for Java, XZ Embedded (including
146
      the version in Linux), LZMA SDK, and 7-Zip.
147
148
    * Translations:
149
150
        - Updated Catalan, Croatian, German, Romanian, and Turkish
151
          translations.
152
153
        - Updated German man page translations.
154
155
        - Added Romanian man page translations.
156
157
    Summary of new features added in the 5.3.x development releases:
158
159
    * liblzma:
160
161
        - Added threaded .xz decompressor lzma_stream_decoder_mt().
162
          It can use multiple threads with .xz files that have multiple
163
          Blocks with size information in Block Headers. The threaded
164
          encoder in xz has always created such files.
165
166
          Single-threaded encoder cannot store the size information in
167
          Block Headers even if one used LZMA_FULL_FLUSH to create
168
          multiple Blocks, so this threaded decoder cannot use multiple
169
          threads with such files.
170
171
          If there are multiple Streams (concatenated .xz files), one
172
          Stream will be decompressed completely before starting the
173
          next Stream.
174
175
        - A new decoder flag LZMA_FAIL_FAST was added. It makes the
176
          threaded decompressor report errors soon instead of first
177
          flushing all pending data before the error location.
178
179
        - New Filter IDs:
180
            * LZMA_FILTER_ARM64 is for ARM64 binaries.
181
            * LZMA_FILTER_LZMA1EXT is for raw LZMA1 streams that don't
182
              necessarily use the end marker.
183
184
        - Added lzma_str_to_filters(), lzma_str_from_filters(), and
185
          lzma_str_list_filters() to convert a preset or a filter chain
186
          string to a lzma_filter[] and vice versa. These should make
187
          it easier to write applications that allow users to specify
188
          custom compression options.
189
190
        - Added lzma_filters_free() which can be convenient for freeing
191
          the filter options in a filter chain (an array of lzma_filter
192
          structures).
193
194
        - lzma_file_info_decoder() to makes it a little easier to get
195
          the Index field from .xz files. This helps in getting the
196
          uncompressed file size but an easy-to-use random access
197
          API is still missing which has existed in XZ for Java for
198
          a long time.
199
200
        - Added lzma_microlzma_encoder() and lzma_microlzma_decoder().
201
          It is used by erofs-utils and may be used by others too.
202
203
          The MicroLZMA format is a raw LZMA stream (without end marker)
204
          whose first byte (always 0x00) has been replaced with
205
          bitwise-negation of the LZMA properties (lc/lp/pb). It was
206
          created for use in EROFS but may be used in other contexts
207
          as well where it is important to avoid wasting bytes for
208
          stream headers or footers. The format is also supported by
209
          XZ Embedded (the XZ Embedded version in Linux got MicroLZMA
210
          support in Linux 5.16).
211
212
          The MicroLZMA encoder API in liblzma can compress into a
213
          fixed-sized output buffer so that as much data is compressed
214
          as can be fit into the buffer while still creating a valid
215
          MicroLZMA stream. This is needed for EROFS.
216
217
        - Added lzma_lzip_decoder() to decompress the .lz (lzip) file
218
          format version 0 and the original unextended version 1 files.
219
          Also lzma_auto_decoder() supports .lz files.
220
221
        - lzma_filters_update() can now be used with the multi-threaded
222
          encoder (lzma_stream_encoder_mt()) to change the filter chain
223
          after LZMA_FULL_BARRIER or LZMA_FULL_FLUSH.
224
225
        - In lzma_options_lzma, allow nice_len = 2 and 3 with the match
226
          finders that require at least 3 or 4. Now it is internally
227
          rounded up if needed.
228
229
        - CLMUL-based CRC64 on x86-64 and E2K with runtime processor
230
          detection. On 32-bit x86 it currently isn't available unless
231
          --disable-assembler is used which can make the non-CLMUL
232
          CRC64 slower; this might be fixed in the future.
233
234
        - Building with --disable-threads --enable-small
235
          is now thread-safe if the compiler supports
236
          __attribute__((__constructor__)).
237
238
    * xz:
239
240
        - Using -T0 (--threads=0) will now use multi-threaded encoder
241
          even on a single-core system. This is to ensure that output
242
          from the same xz binary is identical on both single-core and
243
          multi-core systems.
244
245
        - --threads=+1 or -T+1 is now a way to put xz into
246
          multi-threaded mode while using only one worker thread.
247
          The + is ignored if the number is not 1.
248
249
        - A default soft memory usage limit is now used for compression
250
          when -T0 is used and no explicit limit has been specified.
251
          This soft limit is used to restrict the number of threads
252
          but if the limit is exceeded with even one thread then xz
253
          will continue with one thread using the multi-threaded
254
          encoder and this limit is ignored. If the number of threads
255
          is specified manually then no default limit will be used;
256
          this affects only -T0.
257
258
          This change helps on systems that have very many cores and
259
          using all of them for xz makes no sense. Previously xz -T0
260
          could run out of memory on such systems because it attempted
261
          to reserve memory for too many threads.
262
263
          This also helps with 32-bit builds which don't have a large
264
          amount of address space that would be required for many
265
          threads. The default soft limit for -T0 is at most 1400 MiB
266
          on all 32-bit platforms.
267
268
        - Previously a low value in --memlimit-compress wouldn't cause
269
          xz to switch from multi-threaded mode to single-threaded mode
270
          if the limit cannot otherwise be met; xz failed instead. Now
271
          xz can switch to single-threaded mode and then, if needed,
272
          scale down the LZMA2 dictionary size too just like it already
273
          did when it was started in single-threaded mode.
274
275
        - The option --no-adjust no longer prevents xz from scaling down
276
          the number of threads as that doesn't affect the compressed
277
          output (only performance). Now --no-adjust only prevents
278
          adjustments that affect compressed output, that is, with
279
          --no-adjust xz won't switch from multi-threaded mode to
280
          single-threaded mode and won't scale down the LZMA2
281
          dictionary size.
282
283
        - Added a new option --memlimit-mt-decompress=LIMIT. This is
284
          used to limit the number of decompressor threads (possibly
285
          falling back to single-threaded mode) but it will never make
286
          xz refuse to decompress a file. This has a system-specific
287
          default value because without any limit xz could end up
288
          allocating memory for the whole compressed input file, the
289
          whole uncompressed output file, multiple thread-specific
290
          decompressor instances and so on. Basically xz could
291
          attempt to use an insane amount of memory even with fairly
292
          common files. The system-specific default value is currently
293
          the same as the one used for compression with -T0.
294
295
          The new option works together with the existing option
296
          --memlimit-decompress=LIMIT. The old option sets a hard limit
297
          that must not be exceeded (xz will refuse to decompress)
298
          while the new option only restricts the number of threads.
299
          If the limit set with --memlimit-mt-decompress is greater
300
          than the limit set with --memlimit-compress, then the latter
301
          value is used also for --memlimit-mt-decompress.
302
303
        - Added new information to the output of xz --info-memory and
304
          new fields to the output of xz --robot --info-memory.
305
306
        - In --lzma2=nice=NUMBER allow 2 and 3 with all match finders
307
          now that liblzma handles it.
308
309
        - Don't mention endianness for ARM and ARM-Thumb filters in
310
          --long-help. The filters only work for little endian
311
          instruction encoding but modern ARM processors using
312
          big endian data access still use little endian
313
          instruction encoding. So the help text was misleading.
314
          In contrast, the PowerPC filter is only for big endian
315
          32/64-bit PowerPC code. Little endian PowerPC would need
316
          a separate filter.
317
318
        - Added decompression support for the .lz (lzip) file format
319
          version 0 and the original unextended version 1. It is
320
          autodetected by default. See also the option --format on
321
          the xz man page.
322
323
        - Sandboxing enabled by default:
324
            * Capsicum (FreeBSD)
325
            * pledge(2) (OpenBSD)
326
327
    * Scripts now support the .lz format using xz.
328
329
    * A few new tests were added.
330
331
    * The liblzma-specific tests are now supported in CMake-based
332
      builds too ("make test").
333
334
335
5.3.5beta (2022-12-01)
336
337
    * All fixes from 5.2.9.
338
339
    * liblzma:
340
341
        - Added new LZMA_FILTER_LZMA1EXT for raw encoder and decoder to
342
          handle raw LZMA1 streams that don't have end of payload marker
343
          (EOPM) alias end of stream (EOS) marker. It can be used in
344
          filter chains, for example, with the x86 BCJ filter.
345
346
        - Added lzma_str_to_filters(), lzma_str_from_filters(), and
347
          lzma_str_list_filters() to make it easier for applications
348
          to get custom compression options from a user and convert
349
          it to an array of lzma_filter structures.
350
351
        - Added lzma_filters_free().
352
353
        - lzma_filters_update() can now be used with the multi-threaded
354
          encoder (lzma_stream_encoder_mt()) to change the filter chain
355
          after LZMA_FULL_BARRIER or LZMA_FULL_FLUSH.
356
357
        - In lzma_options_lzma, allow nice_len = 2 and 3 with the match
358
          finders that require at least 3 or 4. Now it is internally
359
          rounded up if needed.
360
361
        - ARM64 filter was modified. It is still experimental.
362
363
        - Fixed LTO build with Clang if -fgnuc-version=10 or similar
364
          was used to make Clang look like GCC >= 10. Now it uses
365
          __has_attribute(__symver__) which should be reliable.
366
367
    * xz:
368
369
        - --threads=+1 or -T+1 is now a way to put xz into multi-threaded
370
          mode while using only one worker thread.
371
372
        - In --lzma2=nice=NUMBER allow 2 and 3 with all match finders
373
          now that liblzma handles it.
374
375
    * Updated translations: Chinese (simplified), Korean, and Turkish.
376
377
378
5.3.4alpha (2022-11-15)
379
380
    * All fixes from 5.2.7 and 5.2.8.
381
382
    * liblzma:
383
384
        - Minor improvements to the threaded decoder.
385
386
        - Added CRC64 implementation that uses SSSE3, SSE4.1, and CLMUL
387
          instructions on 32/64-bit x86 and E2K. On 32-bit x86 it's
388
          not enabled unless --disable-assembler is used but then
389
          the non-CLMUL code might be slower. Processor support is
390
          detected at runtime so this is built by default on x86-64
391
          and E2K. On these platforms, if compiler flags indicate
392
          unconditional CLMUL support (-msse4.1 -mpclmul) then the
393
          generic version is not built, making liblzma 8-9 KiB smaller
394
          compared to having both versions included.
395
396
          With extremely compressible files this can make decompression
397
          up to twice as fast but with typical files 5 % improvement
398
          is a more realistic expectation.
399
400
          The CLMUL version is slower than the generic version with
401
          tiny inputs (especially at 1-8 bytes per call, but up to
402
          16 bytes). In normal use in xz this doesn't matter at all.
403
404
        - Added an experimental ARM64 filter. This is *not* the final
405
          version! Files created with this experimental version won't
406
          be supported in the future versions! The filter design is
407
          a compromise where improving one use case makes some other
408
          cases worse.
409
410
        - Added decompression support for the .lz (lzip) file format
411
          version 0 and the original unextended version 1. See the
412
          API docs of lzma_lzip_decoder() for details. Also
413
          lzma_auto_decoder() supports .lz files.
414
415
        - Building with --disable-threads --enable-small
416
          is now thread-safe if the compiler supports
417
          __attribute__((__constructor__))
418
419
    * xz:
420
421
        - Added support for OpenBSD's pledge(2) as a sandboxing method.
422
423
        - Don't mention endianness for ARM and ARM-Thumb filters in
424
          --long-help. The filters only work for little endian
425
          instruction encoding but modern ARM processors using
426
          big endian data access still use little endian
427
          instruction encoding. So the help text was misleading.
428
          In contrast, the PowerPC filter is only for big endian
429
          32/64-bit PowerPC code. Little endian PowerPC would need
430
          a separate filter.
431
432
        - Added --experimental-arm64. This will be renamed once the
433
          filter is finished. Files created with this experimental
434
          filter will not be supported in the future!
435
436
        - Added new fields to the output of xz --robot --info-memory.
437
438
        - Added decompression support for the .lz (lzip) file format
439
          version 0 and the original unextended version 1. It is
440
          autodetected by default. See also the option --format on
441
          the xz man page.
442
443
    * Scripts now support the .lz format using xz.
444
445
    * Build systems:
446
447
        - New #defines in config.h: HAVE_ENCODER_ARM64,
448
          HAVE_DECODER_ARM64, HAVE_LZIP_DECODER, HAVE_CPUID_H,
449
          HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR, HAVE_USABLE_CLMUL
450
451
        - New configure options: --disable-clmul-crc,
452
          --disable-microlzma, --disable-lzip-decoder, and
453
          'pledge' is now an option in --enable-sandbox (but
454
          it's autodetected by default anyway).
455
456
        - INSTALL was updated to document the new configure options.
457
458
        - PACKAGERS now lists also --disable-microlzma and
459
          --disable-lzip-decoder as configure options that must
460
          not be used in builds for non-embedded use.
461
462
    * Tests:
463
464
        - Fix some of the tests so that they skip instead of fail if
465
          certain features have been disabled with configure options.
466
          It's still not perfect.
467
468
        - Other improvements to tests.
469
470
    * Updated translations: Croatian, Finnish, Hungarian, Polish,
471
      Romanian, Spanish, Swedish, and Ukrainian.
472
473
474
5.3.3alpha (2022-08-22)
475
476
    * All fixes from 5.2.6.
477
478
    * liblzma:
479
480
        - Fixed 32-bit build.
481
482
        - Added threaded .xz decompressor lzma_stream_decoder_mt().
483
          It can use multiple threads with .xz files that have multiple
484
          Blocks with size information in Block Headers. The threaded
485
          encoder in xz has always created such files.
486
487
          Single-threaded encoder cannot store the size information in
488
          Block Headers even if one used LZMA_FULL_FLUSH to create
489
          multiple Blocks, so this threaded decoder cannot use multiple
490
          threads with such files.
491
492
          If there are multiple Streams (concatenated .xz files), one
493
          Stream will be decompressed completely before starting the
494
          next Stream.
495
496
        - A new decoder flag LZMA_FAIL_FAST was added. It makes the
497
          threaded decompressor report errors soon instead of first
498
          flushing all pending data before the error location.
499
500
    * xz:
501
502
        - Using -T0 (--threads=0) will now use multi-threaded encoder
503
          even on a single-core system. This is to ensure that output
504
          from the same xz binary is identical on both single-core and
505
          multi-core systems.
506
507
        - A default soft memory usage limit is now used for compression
508
          when -T0 is used and no explicit limit has been specified.
509
          This soft limit is used to restrict the number of threads
510
          but if the limit is exceeded with even one thread then xz
511
          will continue with one thread using the multi-threaded
512
          encoder and this limit is ignored. If the number of threads
513
          is specified manually then no default limit will be used;
514
          this affects only -T0.
515
516
          This change helps on systems that have very many cores and
517
          using all of them for xz makes no sense. Previously xz -T0
518
          could run out of memory on such systems because it attempted
519
          to reserve memory for too many threads.
520
521
          This also helps with 32-bit builds which don't have a large
522
          amount of address space that would be required for many
523
          threads. The default limit is 1400 MiB on all 32-bit
524
          platforms with -T0.
525
526
          Now xz -T0 should just work. It might use too few threads
527
          in some cases but at least it shouldn't easily run out of
528
          memory. It's possible that this will be tweaked before 5.4.0.
529
530
        - Changes to --memlimit-compress and --no-adjust:
531
532
          In single-threaded mode, --memlimit-compress can make xz
533
          scale down the LZMA2 dictionary size to meet the memory usage
534
          limit. This obviously affects the compressed output. However,
535
          if xz was in threaded mode, --memlimit-compress could make xz
536
          reduce the number of threads but it wouldn't make xz switch
537
          from multi-threaded mode to single-threaded mode or scale
538
          down the LZMA2 dictionary size. This seemed illogical.
539
540
          Now --memlimit-compress can make xz switch to single-threaded
541
          mode if one thread in multi-threaded mode uses too much
542
          memory. If memory usage is still too high, then the LZMA2
543
          dictionary size can be scaled down too.
544
545
          The option --no-adjust was also changed so that it no longer
546
          prevents xz from scaling down the number of threads as that
547
          doesn't affect compressed output (only performance). After
548
          this commit --no-adjust only prevents adjustments that affect
549
          compressed output, that is, with --no-adjust xz won't switch
550
          from multithreaded mode to single-threaded mode and won't
551
          scale down the LZMA2 dictionary size.
552
553
        - Added a new option --memlimit-mt-decompress=LIMIT. This is
554
          used to limit the number of decompressor threads (possibly
555
          falling back to single-threaded mode) but it will never make
556
          xz refuse to decompress a file. This has a system-specific
557
          default value because without any limit xz could end up
558
          allocating memory for the whole compressed input file, the
559
          whole uncompressed output file, multiple thread-specific
560
          decompressor instances and so on. Basically xz could
561
          attempt to use an insane amount of memory even with fairly
562
          common files.
563
564
          The new option works together with the existing option
565
          --memlimit-decompress=LIMIT. The old option sets a hard limit
566
          that must not be exceeded (xz will refuse to decompress)
567
          while the new option only restricts the number of threads.
568
          If the limit set with --memlimit-mt-decompress is greater
569
          than the limit set with --memlimit-compress, then the latter
570
          value is used also for --memlimit-mt-decompress.
571
572
    * Tests:
573
574
        - Added a few more tests.
575
576
        - Added tests/code_coverage.sh to create a code coverage report
577
          of the tests.
578
579
    * Build systems:
580
581
        - Automake's parallel test harness is now used to make tests
582
          finish faster.
583
584
        - Added the CMake files to the distribution tarball. These were
585
          supposed to be in 5.2.5 already.
586
587
        - Added liblzma tests to the CMake build.
588
589
        - Windows: Fix building of liblzma.dll with the included
590
          Visual Studio project files.
591
592
593
5.3.2alpha (2021-10-28)
594
595
    This release was made on short notice so that recent erofs-utils can
596
    be built with LZMA support without needing a snapshot from xz.git.
597
    Thus many pending things were not included, not even updated
598
    translations (which would need to be updated for the new --list
599
    strings anyway).
600
601
    * All fixes from 5.2.5.
602
603
    * xz:
604
605
        - When copying metadata from the source file to the destination
606
          file, don't try to set the group (GID) if it is already set
607
          correctly. This avoids a failure on OpenBSD (and possibly on
608
          a few other OSes) where files may get created so that their
609
          group doesn't belong to the user, and fchown(2) can fail even
610
          if it needs to do nothing.
611
612
        - The --keep option now accepts symlinks, hardlinks, and
613
          setuid, setgid, and sticky files. Previously this required
614
          using --force.
615
616
        - Split the long strings used in --list and --info-memory modes
617
          to make them much easier for translators.
618
619
        - If built with sandbox support and enabling the sandbox fails,
620
          xz will now immediately exit with exit status of 1. Previously
621
          it would only display a warning if -vv was used.
622
623
        - Cap --memlimit-compress to 2000 MiB on MIPS32 because on
624
          MIPS32 userspace processes are limited to 2 GiB of address
625
          space.
626
627
    * liblzma:
628
629
        - Added lzma_microlzma_encoder() and lzma_microlzma_decoder().
630
          The API is in lzma/container.h.
631
632
          The MicroLZMA format is a raw LZMA stream (without end marker)
633
          whose first byte (always 0x00) has been replaced with
634
          bitwise-negation of the LZMA properties (lc/lp/pb). It was
635
          created for use in EROFS but may be used in other contexts
636
          as well where it is important to avoid wasting bytes for
637
          stream headers or footers. The format is also supported by
638
          XZ Embedded.
639
640
          The MicroLZMA encoder API in liblzma can compress into a
641
          fixed-sized output buffer so that as much data is compressed
642
          as can be fit into the buffer while still creating a valid
643
          MicroLZMA stream. This is needed for EROFS.
644
645
        - Added fuzzing support.
646
647
        - Support Intel Control-flow Enforcement Technology (CET) in
648
          32-bit x86 assembly files.
649
650
        - Visual Studio: Use non-standard _MSVC_LANG to detect C++
651
          standard version in the lzma.h API header. It's used to
652
          detect when "noexcept" can be used.
653
654
    * Scripts:
655
656
        - Fix exit status of xzdiff/xzcmp. Exit status could be 2 when
657
          the correct value is 1.
658
659
        - Fix exit status of xzgrep.
660
661
        - Detect corrupt .bz2 files in xzgrep.
662
663
        - Add zstd support to xzgrep and xzdiff/xzcmp.
664
665
        - Fix less(1) version detection in xzless. It failed if the
666
          version number from "less -V" contained a dot.
667
668
    * Fix typos and technical issues in man pages.
669
670
    * Build systems:
671
672
        - Windows: Fix building of resource files when config.h isn't
673
          used. CMake + Visual Studio can now build liblzma.dll.
674
675
        - Various fixes to the CMake support. It might still need a few
676
          more fixes even for liblzma-only builds.
677
678
679
5.3.1alpha (2018-04-29)
680
681
    * All fixes from 5.2.4.
682
683
    * Add lzma_file_info_decoder() into liblzma and use it in xz to
684
      implement the --list feature.
685
686
    * Capsicum sandbox support is enabled by default where available
687
      (FreeBSD >= 10).
688
689
690
5.2.10 (2022-12-13)
691
692
    * xz: Don't modify argv[] when parsing the --memlimit* and
693
      --block-list command line options. This fixes confusing
694
      arguments in process listing (like "ps auxf").
695
696
    * GNU/Linux only: Use __has_attribute(__symver__) to detect if
697
      that attribute is supported. This fixes build on Mandriva where
698
      Clang is patched to define __GNUC__ to 11 by default (instead
699
      of 4 as used by Clang upstream).
700
701
702
5.2.9 (2022-11-30)
703
704
    * liblzma:
705
706
        - Fixed an infinite loop in LZMA encoder initialization
707
          if dict_size >= 2 GiB. (The encoder only supports up
708
          to 1536 MiB.)
709
710
        - Fixed two cases of invalid free() that can happen if
711
          a tiny allocation fails in encoder re-initialization
712
          or in lzma_filters_update(). These bugs had some
713
          similarities with the bug fixed in 5.2.7.
714
715
        - Fixed lzma_block_encoder() not allowing the use of
716
          LZMA_SYNC_FLUSH with lzma_code() even though it was
717
          documented to be supported. The sync-flush code in
718
          the Block encoder was already used internally via
719
          lzma_stream_encoder(), so this was just a missing flag
720
          in the lzma_block_encoder() API function.
721
722
        - GNU/Linux only: Don't put symbol versions into static
723
          liblzma as it breaks things in some cases (and even if
724
          it didn't break anything, symbol versions in static
725
          libraries are useless anyway). The downside of the fix
726
          is that if the configure options --with-pic or --without-pic
727
          are used then it's not possible to build both shared and
728
          static liblzma at the same time on GNU/Linux anymore;
729
          with those options --disable-static or --disable-shared
730
          must be used too.
731
732
    * New email address for bug reports is <xz@tukaani.org> which
733
      forwards messages to Lasse Collin and Jia Tan.
734
735
736
5.2.8 (2022-11-13)
737
738
    * xz:
739
740
        - If xz cannot remove an input file when it should, this
741
          is now treated as a warning (exit status 2) instead of
742
          an error (exit status 1). This matches GNU gzip and it
743
          is more logical as at that point the output file has
744
          already been successfully closed.
745
746
        - Fix handling of .xz files with an unsupported check type.
747
          Previously such printed a warning message but then xz
748
          behaved as if an error had occurred (didn't decompress,
749
          exit status 1). Now a warning is printed, decompression
750
          is done anyway, and exit status is 2. This used to work
751
          slightly before 5.0.0. In practice this bug matters only
752
          if xz has been built with some check types disabled. As
753
          instructed in PACKAGERS, such builds should be done in
754
          special situations only.
755
756
        - Fix "xz -dc --single-stream tests/files/good-0-empty.xz"
757
          which failed with "Internal error (bug)". That is,
758
          --single-stream was broken if the first .xz stream in
759
          the input file didn't contain any uncompressed data.
760
761
        - Fix displaying file sizes in the progress indicator when
762
          working in passthru mode and there are multiple input files.
763
          Just like "gzip -cdf", "xz -cdf" works like "cat" when the
764
          input file isn't a supported compressed file format. In
765
          this case the file size counters weren't reset between
766
          files so with multiple input files the progress indicator
767
          displayed an incorrect (too large) value.
768
769
    * liblzma:
770
771
        - API docs in lzma/container.h:
772
            * Update the list of decoder flags in the decoder
773
              function docs.
774
            * Explain LZMA_CONCATENATED behavior with .lzma files
775
              in lzma_auto_decoder() docs.
776
777
        - OpenBSD: Use HW_NCPUONLINE to detect the number of
778
          available hardware threads in lzma_physmem().
779
780
        - Fix use of wrong macro to detect x86 SSE2 support.
781
          __SSE2_MATH__ was used with GCC/Clang but the correct
782
          one is __SSE2__. The first one means that SSE2 is used
783
          for floating point math which is irrelevant here.
784
          The affected SSE2 code isn't used on x86-64 so this affects
785
          only 32-bit x86 builds that use -msse2 without -mfpmath=sse
786
          (there is no runtime detection for SSE2). It improves LZMA
787
          compression speed (not decompression).
788
789
        - Fix the build with Intel C compiler 2021 (ICC, not ICX)
790
          on Linux. It defines __GNUC__ to 10 but doesn't support
791
          the __symver__ attribute introduced in GCC 10.
792
793
    * Scripts: Ignore warnings from xz by using --quiet --no-warn.
794
      This is needed if the input .xz files use an unsupported
795
      check type.
796
797
    * Translations:
798
799
        - Updated Croatian and Turkish translations.
800
801
        - One new translations wasn't included because it needed
802
          technical fixes. It will be in upcoming 5.4.0. No new
803
          translations will be added to the 5.2.x branch anymore.
804
805
        - Renamed the French man page translation file from
806
          fr_FR.po to fr.po and thus also its install directory
807
          (like /usr/share/man/fr_FR -> .../fr).
808
809
        - Man page translations for upcoming 5.4.0 are now handled
810
          in the Translation Project.
811
812
    * Update doc/faq.txt a little so it's less out-of-date.
813
814
815
5.2.7 (2022-09-30)
816
817
    * liblzma:
818
819
        - Made lzma_filters_copy() to never modify the destination
820
          array if an error occurs. lzma_stream_encoder() and
821
          lzma_stream_encoder_mt() already assumed this. Before this
822
          change, if a tiny memory allocation in lzma_filters_copy()
823
          failed it would lead to a crash (invalid free() or invalid
824
          memory reads) in the cleanup paths of these two encoder
825
          initialization functions.
826
827
        - Added missing integer overflow check to lzma_index_append().
828
          This affects xz --list and other applications that decode
829
          the Index field from .xz files using lzma_index_decoder().
830
          Normal decompression of .xz files doesn't call this code
831
          and thus most applications using liblzma aren't affected
832
          by this bug.
833
834
        - Single-threaded .xz decoder (lzma_stream_decoder()): If
835
          lzma_code() returns LZMA_MEMLIMIT_ERROR it is now possible
836
          to use lzma_memlimit_set() to increase the limit and continue
837
          decoding. This was supposed to work from the beginning
838
          but there was a bug. With other decoders (.lzma or
839
          threaded .xz decoder) this already worked correctly.
840
841
        - Fixed accumulation of integrity check type statistics in
842
          lzma_index_cat(). This bug made lzma_index_checks() return
843
          only the type of the integrity check of the last Stream
844
          when multiple lzma_indexes were concatenated. Most
845
          applications don't use these APIs but in xz it made
846
          xz --list not list all check types from concatenated .xz
847
          files. In xz --list --verbose only the per-file "Check:"
848
          lines were affected and in xz --robot --list only the "file"
849
          line was affected.
850
851
        - Added ABI compatibility with executables that were linked
852
          against liblzma in RHEL/CentOS 7 or other liblzma builds
853
          that had copied the problematic patch from RHEL/CentOS 7
854
          (xz-5.2.2-compat-libs.patch). For the details, see the
855
          comment at the top of src/liblzma/validate_map.sh.
856
857
          WARNING: This uses __symver__ attribute with GCC >= 10.
858
          In other cases the traditional __asm__(".symver ...")
859
          is used. Using link-time optimization (LTO, -flto) with
860
          GCC versions older than 10 can silently result in
861
          broken liblzma.so.5 (incorrect symbol versions)! If you
862
          want to use -flto with GCC, you must use GCC >= 10.
863
          LTO with Clang seems to work even with the traditional
864
          __asm__(".symver ...") method.
865
866
    * xzgrep: Fixed compatibility with old shells that break if
867
      comments inside command substitutions have apostrophes (').
868
      This problem was introduced in 5.2.6.
869
870
    * Build systems:
871
872
        - New #define in config.h: HAVE_SYMBOL_VERSIONS_LINUX
873
874
        - Windows: Fixed liblzma.dll build with Visual Studio project
875
          files. It broke in 5.2.6 due to a change that was made to
876
          improve CMake support.
877
878
        - Windows: Building liblzma with UNICODE defined should now
879
          work.
880
881
        - CMake files are now actually included in the release tarball.
882
          They should have been in 5.2.5 already.
883
884
        - Minor CMake fixes and improvements.
885
886
    * Added a new translation: Turkish
887
888
889
5.2.6 (2022-08-12)
890
891
    * xz:
892
893
        - The --keep option now accepts symlinks, hardlinks, and
894
          setuid, setgid, and sticky files. Previously this required
895
          using --force.
896
897
        - When copying metadata from the source file to the destination
898
          file, don't try to set the group (GID) if it is already set
899
          correctly. This avoids a failure on OpenBSD (and possibly on
900
          a few other OSes) where files may get created so that their
901
          group doesn't belong to the user, and fchown(2) can fail even
902
          if it needs to do nothing.
903
904
        - Cap --memlimit-compress to 2000 MiB instead of 4020 MiB on
905
          MIPS32 because on MIPS32 userspace processes are limited
906
          to 2 GiB of address space.
907
908
    * liblzma:
909
910
        - Fixed a missing error-check in the threaded encoder. If a
911
          small memory allocation fails, a .xz file with an invalid
912
          Index field would be created. Decompressing such a file would
913
          produce the correct output but result in an error at the end.
914
          Thus this is a "mild" data corruption bug. Note that while
915
          a failed memory allocation can trigger the bug, it cannot
916
          cause invalid memory access.
917
918
        - The decoder for .lzma files now supports files that have
919
          uncompressed size stored in the header and still use the
920
          end of payload marker (end of stream marker) at the end
921
          of the LZMA stream. Such files are rare but, according to
922
          the documentation in LZMA SDK, they are valid.
923
          doc/lzma-file-format.txt was updated too.
924
925
        - Improved 32-bit x86 assembly files:
926
            * Support Intel Control-flow Enforcement Technology (CET)
927
            * Use non-executable stack on FreeBSD.
928
929
        - Visual Studio: Use non-standard _MSVC_LANG to detect C++
930
          standard version in the lzma.h API header. It's used to
931
          detect when "noexcept" can be used.
932
933
    * xzgrep:
934
935
        - Fixed arbitrary command injection via a malicious filename
936
          (CVE-2022-1271, ZDI-CAN-16587). A standalone patch for
937
          this was released to the public on 2022-04-07. A slight
938
          robustness improvement has been made since then and, if
939
          using GNU or *BSD grep, a new faster method is now used
940
          that doesn't use the old sed-based construct at all. This
941
          also fixes bad output with GNU grep >= 3.5 (2020-09-27)
942
          when xzgrepping binary files.
943
944
          This vulnerability was discovered by:
945
          cleemy desu wayo working with Trend Micro Zero Day Initiative
946
947
        - Fixed detection of corrupt .bz2 files.
948
949
        - Improved error handling to fix exit status in some situations
950
          and to fix handling of signals: in some situations a signal
951
          didn't make xzgrep exit when it clearly should have. It's
952
          possible that the signal handling still isn't quite perfect
953
          but hopefully it's good enough.
954
955
        - Documented exit statuses on the man page.
956
957
        - xzegrep and xzfgrep now use "grep -E" and "grep -F" instead
958
          of the deprecated egrep and fgrep commands.
959
960
        - Fixed parsing of the options -E, -F, -G, -P, and -X. The
961
          problem occurred when multiple options were specied in
962
          a single argument, for example,
963
964
              echo foo | xzgrep -Fe foo
965
966
          treated foo as a filename because -Fe wasn't correctly
967
          split into -F -e.
968
969
        - Added zstd support.
970
971
    * xzdiff/xzcmp:
972
973
        - Fixed wrong exit status. Exit status could be 2 when the
974
          correct value is 1.
975
976
        - Documented on the man page that exit status of 2 is used
977
          for decompression errors.
978
979
        - Added zstd support.
980
981
    * xzless:
982
983
        - Fix less(1) version detection. It failed if the version number
984
          from "less -V" contained a dot.
985
986
    * Translations:
987
988
        - Added new translations: Catalan, Croatian, Esperanto,
989
          Korean, Portuguese, Romanian, Serbian, Spanish, Swedish,
990
          and Ukrainian
991
992
        - Updated the Brazilian Portuguese translation.
993
994
        - Added French man page translation. This and the existing
995
          German translation aren't complete anymore because the
996
          English man pages got a few updates and the translators
997
          weren't reached so that they could update their work.
998
999
    * Build systems:
1000
1001
        - Windows: Fix building of resource files when config.h isn't
1002
          used. CMake + Visual Studio can now build liblzma.dll.
1003
1004
        - Various fixes to the CMake support. Building static or shared
1005
          liblzma should work fine in most cases. In contrast, building
1006
          the command line tools with CMake is still clearly incomplete
1007
          and experimental and should be used for testing only.
1008
1009
5
5.2.5 (2020-03-17)
1010
5.2.5 (2020-03-17)
6
1011
7
    * liblzma:
1012
    * liblzma:
(-)xz-5.2.5/PACKAGERS (-6 / +18 lines)
Lines 44-49 Link Here
44
                        lzmadec binary for compatibility with LZMA Utils
44
                        lzmadec binary for compatibility with LZMA Utils
45
        liblzma         liblzma.so.*
45
        liblzma         liblzma.so.*
46
        liblzma-devel   liblzma.so, liblzma.a, API headers
46
        liblzma-devel   liblzma.so, liblzma.a, API headers
47
        liblzma-doc     Doxygen-generated liblzma API docs (HTML),
48
                        example programs
47
49
48
50
49
2. Package description
51
2. Package description
Lines 109-115 Link Here
109
        This package includes the API headers, static library, and
111
        This package includes the API headers, static library, and
110
        other development files related to liblzma.
112
        other development files related to liblzma.
111
113
114
    liblzma-doc:
112
115
116
        liblzma API documentation in HTML and example usage
117
118
        This package includes the Doxygen-generated liblzma API
119
        HTML docs and example programs showing how to use liblzma.
120
121
113
3. License
122
3. License
114
----------
123
----------
115
124
Lines 138-143 Link Here
138
        --enable-checks
147
        --enable-checks
139
        --enable-small (*)
148
        --enable-small (*)
140
        --disable-threads (*)
149
        --disable-threads (*)
150
        --disable-microlzma (*)
151
        --disable-lzip-decoder (*)
141
152
142
    (*) These are OK when building xzdec and lzmadec as described
153
    (*) These are OK when building xzdec and lzmadec as described
143
        in INSTALL.
154
        in INSTALL.
Lines 158-169 Link Here
158
    can be replaced with a symlink if your distro ships with shared
169
    can be replaced with a symlink if your distro ships with shared
159
    copies of the common license texts.
170
    copies of the common license texts.
160
171
161
    liblzma API is currently only documented using Doxygen tags in the
172
    The Doxygen-generated documentation (HTML) for the liblzma API
162
    API headers. It hasn't been tested much how good results Doxygen
173
    headers is included in the source release and will be installed by
163
    is able to make from the tags (e.g. Doxyfile might need tweaking,
174
    "make install" to $docdir/api. All JavaScript is removed to
164
    the tagging may need to be improved etc.), so it might be simpler
175
    simplify license compliance and to reduce the install size. If the
165
    to just let people read docs directly from the .h files for now,
176
    liblzma API documentation is not desired, either run configure with
166
    and also save quite a bit in package size at the same time.
177
    --disable-doc or remove the doc/api directory before running
178
    "make install".
167
179
168
180
169
6. Extra files
181
6. Extra files
(-)xz-5.2.5/README (-13 / +80 lines)
Lines 113-120 Link Here
113
    Since the liblzma API has similarities to the zlib API, some people
113
    Since the liblzma API has similarities to the zlib API, some people
114
    may find it useful to read the zlib docs and tutorial too:
114
    may find it useful to read the zlib docs and tutorial too:
115
115
116
        http://zlib.net/manual.html
116
        https://zlib.net/manual.html
117
        http://zlib.net/zlib_how.html
117
        https://zlib.net/zlib_how.html
118
118
119
119
120
2. Version numbering
120
2. Version numbering
Lines 202-220 Link Here
202
202
203
        https://translationproject.org/html/translators.html
203
        https://translationproject.org/html/translators.html
204
204
205
    Several strings will change in a future version of xz so if you
205
    Below are notes and testing instructions specific to xz
206
    wish to start a new translation, look at the code in the xz git
206
    translations.
207
    repostiory instead of a 5.2.x release.
208
207
208
    Testing can be done by installing xz into a temporary directory:
209
209
210
        ./configure --disable-shared --prefix=/tmp/xz-test
211
        # <Edit the .po file in the po directory.>
212
        make -C po update-po
213
        make install
214
        bash debug/translation.bash | less
215
        bash debug/translation.bash | less -S  # For --list outputs
216
217
    Repeat the above as needed (no need to re-run configure though).
218
219
    Note especially the following:
220
221
      - The output of --help and --long-help must look nice on
222
        an 80-column terminal. It's OK to add extra lines if needed.
223
224
      - In contrast, don't add extra lines to error messages and such.
225
        They are often preceded with e.g. a filename on the same line,
226
        so you have no way to predict where to put a \n. Let the terminal
227
        do the wrapping even if it looks ugly. Adding new lines will be
228
        even uglier in the generic case even if it looks nice in a few
229
        limited examples.
230
231
      - Be careful with column alignment in tables and table-like output
232
        (--list, --list --verbose --verbose, --info-memory, --help, and
233
        --long-help):
234
235
          * All descriptions of options in --help should start in the
236
            same column (but it doesn't need to be the same column as
237
            in the English messages; just be consistent if you change it).
238
            Check that both --help and --long-help look OK, since they
239
            share several strings.
240
241
          * --list --verbose and --info-memory print lines that have
242
            the format "Description:   %s". If you need a longer
243
            description, you can put extra space between the colon
244
            and %s. Then you may need to add extra space to other
245
            strings too so that the result as a whole looks good (all
246
            values start at the same column).
247
248
          * The columns of the actual tables in --list --verbose --verbose
249
            should be aligned properly. Abbreviate if necessary. It might
250
            be good to keep at least 2 or 3 spaces between column headings
251
            and avoid spaces in the headings so that the columns stand out
252
            better, but this is a matter of opinion. Do what you think
253
            looks best.
254
255
      - Be careful to put a period at the end of a sentence when the
256
        original version has it, and don't put it when the original
257
        doesn't have it. Similarly, be careful with \n characters
258
        at the beginning and end of the strings.
259
260
      - Read the TRANSLATORS comments that have been extracted from the
261
        source code and included in xz.pot. Some comments suggest
262
        testing with a specific command which needs an .xz file. You
263
        may use e.g. any tests/files/good-*.xz. However, these test
264
        commands are included in translations.bash output, so reading
265
        translations.bash output carefully can be enough.
266
267
      - If you find language problems in the original English strings,
268
        feel free to suggest improvements. Ask if something is unclear.
269
270
      - The translated messages should be understandable (sometimes this
271
        may be a problem with the original English messages too). Don't
272
        make a direct word-by-word translation from English especially if
273
        the result doesn't sound good in your language.
274
275
    Thanks for your help!
276
277
210
5. Other implementations of the .xz format
278
5. Other implementations of the .xz format
211
------------------------------------------
279
------------------------------------------
212
280
213
    7-Zip and the p7zip port of 7-Zip support the .xz format starting
281
    7-Zip and the p7zip port of 7-Zip support the .xz format starting
214
    from the version 9.00alpha.
282
    from the version 9.00alpha.
215
283
216
        http://7-zip.org/
284
        https://7-zip.org/
217
        http://p7zip.sourceforge.net/
285
        https://p7zip.sourceforge.net/
218
286
219
    XZ Embedded is a limited implementation written for use in the Linux
287
    XZ Embedded is a limited implementation written for use in the Linux
220
    kernel, but it is also suitable for other embedded use.
288
    kernel, but it is also suitable for other embedded use.
Lines 226-236 Link Here
226
----------------------
294
----------------------
227
295
228
    If you have questions, bug reports, patches etc. related to XZ Utils,
296
    If you have questions, bug reports, patches etc. related to XZ Utils,
229
    contact Lasse Collin <lasse.collin@tukaani.org> (in Finnish or English).
297
    the project maintainers Lasse Collin and Jia Tan can be reached via
230
    I'm sometimes slow at replying. If you haven't got a reply within two
298
    <xz@tukaani.org>.
231
    weeks, assume that your email has got lost and resend it or use IRC.
232
299
233
    You can find me also from #tukaani on Freenode; my nick is Larhzu.
300
    You might find Lasse also from #tukaani on Libera Chat (IRC).
234
    The channel tends to be pretty quiet, so just ask your question and
301
    The nick is Larhzu. The channel tends to be pretty quiet,
235
    someone may wake up.
302
    so just ask your question and someone might wake up.
236
303
(-)xz-5.2.5/THANKS (-1 / +34 lines)
Lines 8-42 Link Here
8
  - H. Peter Anvin
8
  - H. Peter Anvin
9
  - Jeff Bastian
9
  - Jeff Bastian
10
  - Nelson H. F. Beebe
10
  - Nelson H. F. Beebe
11
  - Karl Beldan
11
  - Karl Berry
12
  - Karl Berry
12
  - Anders F. Björklund
13
  - Anders F. Björklund
13
  - Emmanuel Blot
14
  - Emmanuel Blot
14
  - Melanie Blower
15
  - Melanie Blower
16
  - Alexander Bluhm
15
  - Martin Blumenstingl
17
  - Martin Blumenstingl
16
  - Ben Boeckel
18
  - Ben Boeckel
17
  - Jakub Bogusz
19
  - Jakub Bogusz
20
  - Adam Borowski
18
  - Maarten Bosmans
21
  - Maarten Bosmans
19
  - Trent W. Buck
22
  - Trent W. Buck
23
  - Kevin R. Bulgrien
20
  - James Buren
24
  - James Buren
21
  - David Burklund
25
  - David Burklund
26
  - Frank Busse
22
  - Daniel Mealha Cabrita
27
  - Daniel Mealha Cabrita
23
  - Milo Casagrande
28
  - Milo Casagrande
24
  - Marek Černocký
29
  - Marek Černocký
25
  - Tomer Chachamu
30
  - Tomer Chachamu
31
  - Vitaly Chikunov
26
  - Antoine Cœur
32
  - Antoine Cœur
27
  - Gabi Davar
33
  - Gabi Davar
34
  - İhsan Doğan
28
  - Chris Donawa
35
  - Chris Donawa
29
  - Andrew Dudman
36
  - Andrew Dudman
30
  - Markus Duft
37
  - Markus Duft
31
  - İsmail Dönmez
38
  - İsmail Dönmez
39
  - Paul Eggert
32
  - Robert Elz
40
  - Robert Elz
33
  - Gilles Espinasse
41
  - Gilles Espinasse
34
  - Denis Excoffier
42
  - Denis Excoffier
43
  - Vincent Fazio
35
  - Michael Felt
44
  - Michael Felt
36
  - Michael Fox
45
  - Michael Fox
37
  - Mike Frysinger
46
  - Mike Frysinger
38
  - Daniel Richard G.
47
  - Daniel Richard G.
48
  - Tomasz Gajc
49
  - Bjarni Ingi Gislason
50
  - John Paul Adrian Glaubitz
39
  - Bill Glessner
51
  - Bill Glessner
52
  - Michał Górny
40
  - Jason Gorski
53
  - Jason Gorski
41
  - Juan Manuel Guerrero
54
  - Juan Manuel Guerrero
42
  - Diederik de Haas
55
  - Diederik de Haas
Lines 44-61 Link Here
44
  - Christian Hesse
57
  - Christian Hesse
45
  - Vincenzo Innocente
58
  - Vincenzo Innocente
46
  - Peter Ivanov
59
  - Peter Ivanov
60
  - Nicholas Jackson
61
  - Sam James
62
  - Hajin Jang
47
  - Jouk Jansen
63
  - Jouk Jansen
48
  - Jun I Jin
64
  - Jun I Jin
49
  - Kiyoshi Kanazawa
65
  - Kiyoshi Kanazawa
50
  - Per Øyvind Karlsen
66
  - Per Øyvind Karlsen
67
  - Iouri Kharon
51
  - Thomas Klausner
68
  - Thomas Klausner
52
  - Richard Koch
69
  - Richard Koch
70
  - Anton Kochkov
53
  - Ville Koskinen
71
  - Ville Koskinen
72
  - Marcin Kowalczyk
54
  - Jan Kratochvil
73
  - Jan Kratochvil
55
  - Christian Kujau
74
  - Christian Kujau
56
  - Stephan Kulow
75
  - Stephan Kulow
76
  - Ilya Kurdyukov
57
  - Peter Lawler
77
  - Peter Lawler
58
  - James M Leddy
78
  - James M Leddy
79
  - Vincent Lefevre
59
  - Hin-Tak Leung
80
  - Hin-Tak Leung
60
  - Andraž 'ruskie' Levstik
81
  - Andraž 'ruskie' Levstik
61
  - Cary Lewis
82
  - Cary Lewis
Lines 63-74 Link Here
63
  - Xin Li
84
  - Xin Li
64
  - Eric Lindblad
85
  - Eric Lindblad
65
  - Lorenzo De Liso
86
  - Lorenzo De Liso
87
  - H.J. Lu
66
  - Bela Lubkin
88
  - Bela Lubkin
67
  - Gregory Margo
89
  - Gregory Margo
68
  - Julien Marrec
90
  - Julien Marrec
91
  - Ed Maste
69
  - Martin Matuška
92
  - Martin Matuška
93
  - Ivan A. Melnikov
70
  - Jim Meyering
94
  - Jim Meyering
71
  - Arkadiusz Miskiewicz
95
  - Arkadiusz Miskiewicz
96
  - Nathan Moinvaziri
97
  - Étienne Mollier
72
  - Conley Moorhous
98
  - Conley Moorhous
73
  - Rafał Mużyło
99
  - Rafał Mużyło
74
  - Adrien Nader
100
  - Adrien Nader
Lines 77-82 Link Here
77
  - Jonathan Nieder
103
  - Jonathan Nieder
78
  - Andre Noll
104
  - Andre Noll
79
  - Peter O'Gorman
105
  - Peter O'Gorman
106
  - Daniel Packard
80
  - Filip Palian
107
  - Filip Palian
81
  - Peter Pallinger
108
  - Peter Pallinger
82
  - Rui Paulo
109
  - Rui Paulo
Lines 88-99 Link Here
88
  - Trần Ngọc Quân
115
  - Trần Ngọc Quân
89
  - Pavel Raiskup
116
  - Pavel Raiskup
90
  - Ole André Vadla Ravnås
117
  - Ole André Vadla Ravnås
118
  - Eric S. Raymond
91
  - Robert Readman
119
  - Robert Readman
92
  - Bernhard Reutner-Fischer
120
  - Bernhard Reutner-Fischer
93
  - Eric S. Raymond
121
  - Markus Rickert
94
  - Cristian Rodríguez
122
  - Cristian Rodríguez
95
  - Christian von Roques
123
  - Christian von Roques
124
  - Boud Roukema
96
  - Torsten Rupp
125
  - Torsten Rupp
126
  - Stephen Sachs
97
  - Jukka Salmi
127
  - Jukka Salmi
98
  - Alexandre Sauvé
128
  - Alexandre Sauvé
99
  - Benno Schulenberg
129
  - Benno Schulenberg
Lines 102-112 Link Here
102
  - Dan Shechter
132
  - Dan Shechter
103
  - Stuart Shelton
133
  - Stuart Shelton
104
  - Sebastian Andrzej Siewior
134
  - Sebastian Andrzej Siewior
135
  - Ville Skyttä
105
  - Brad Smith
136
  - Brad Smith
106
  - Bruce Stark
137
  - Bruce Stark
107
  - Pippijn van Steenhoven
138
  - Pippijn van Steenhoven
108
  - Jonathan Stott
139
  - Jonathan Stott
109
  - Dan Stromberg
140
  - Dan Stromberg
141
  - Jia Tan
110
  - Vincent Torri
142
  - Vincent Torri
111
  - Paul Townsend
143
  - Paul Townsend
112
  - Mohammed Adnène Trojette
144
  - Mohammed Adnène Trojette
Lines 117-122 Link Here
117
  - Adam Walling
149
  - Adam Walling
118
  - Jeffrey Walton
150
  - Jeffrey Walton
119
  - Christian Weisgerber
151
  - Christian Weisgerber
152
  - Dan Weiss
120
  - Bert Wesarg
153
  - Bert Wesarg
121
  - Fredrik Wikstrom
154
  - Fredrik Wikstrom
122
  - Jim Wilcoxson
155
  - Jim Wilcoxson
(-)xz-5.2.5/TODO (-2 lines)
Lines 59-66 Link Here
59
      - Implement threaded match finders.
59
      - Implement threaded match finders.
60
      - Implement pigz-style threading in LZMA2.
60
      - Implement pigz-style threading in LZMA2.
61
61
62
    Multithreaded decompression
63
64
    Buffer-to-buffer coding could use less RAM (especially when
62
    Buffer-to-buffer coding could use less RAM (especially when
65
    decompressing LZMA1 or LZMA2).
63
    decompressing LZMA1 or LZMA2).
66
64
(-)xz-5.2.5/aclocal.m4 (-33 / +48 lines)
Lines 1-6 Link Here
1
# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
1
# generated automatically by aclocal 1.16.5 -*- Autoconf -*-
2
2
3
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
3
# Copyright (C) 1996-2021 Free Software Foundation, Inc.
4
4
5
# This file is free software; the Free Software Foundation
5
# This file is free software; the Free Software Foundation
6
# gives unlimited permission to copy and/or distribute it,
6
# gives unlimited permission to copy and/or distribute it,
Lines 14-26 Link Here
14
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
14
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
15
m4_ifndef([AC_AUTOCONF_VERSION],
15
m4_ifndef([AC_AUTOCONF_VERSION],
16
  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
16
  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
17
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
17
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
18
[m4_warning([this file was generated for autoconf 2.69.
18
[m4_warning([this file was generated for autoconf 2.71.
19
You have another version of autoconf.  It may work, but is not guaranteed to.
19
You have another version of autoconf.  It may work, but is not guaranteed to.
20
If you have problems, you may need to regenerate the build system entirely.
20
If you have problems, you may need to regenerate the build system entirely.
21
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
21
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
22
22
23
# Copyright (C) 2002-2018 Free Software Foundation, Inc.
23
# Copyright (C) 2002-2021 Free Software Foundation, Inc.
24
#
24
#
25
# This file is free software; the Free Software Foundation
25
# This file is free software; the Free Software Foundation
26
# gives unlimited permission to copy and/or distribute it,
26
# gives unlimited permission to copy and/or distribute it,
Lines 35-41 Link Here
35
[am__api_version='1.16'
35
[am__api_version='1.16'
36
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
36
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
37
dnl require some minimum version.  Point them to the right macro.
37
dnl require some minimum version.  Point them to the right macro.
38
m4_if([$1], [1.16.1], [],
38
m4_if([$1], [1.16.5], [],
39
      [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
39
      [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
40
])
40
])
41
41
Lines 51-64 Link Here
51
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
51
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
52
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
52
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
53
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
53
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
54
[AM_AUTOMAKE_VERSION([1.16.1])dnl
54
[AM_AUTOMAKE_VERSION([1.16.5])dnl
55
m4_ifndef([AC_AUTOCONF_VERSION],
55
m4_ifndef([AC_AUTOCONF_VERSION],
56
  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
56
  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
57
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
57
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
58
58
59
# Figure out how to run the assembler.                      -*- Autoconf -*-
59
# Figure out how to run the assembler.                      -*- Autoconf -*-
60
60
61
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
61
# Copyright (C) 2001-2021 Free Software Foundation, Inc.
62
#
62
#
63
# This file is free software; the Free Software Foundation
63
# This file is free software; the Free Software Foundation
64
# gives unlimited permission to copy and/or distribute it,
64
# gives unlimited permission to copy and/or distribute it,
Lines 78-84 Link Here
78
78
79
# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
79
# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
80
80
81
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
81
# Copyright (C) 2001-2021 Free Software Foundation, Inc.
82
#
82
#
83
# This file is free software; the Free Software Foundation
83
# This file is free software; the Free Software Foundation
84
# gives unlimited permission to copy and/or distribute it,
84
# gives unlimited permission to copy and/or distribute it,
Lines 130-136 Link Here
130
130
131
# AM_CONDITIONAL                                            -*- Autoconf -*-
131
# AM_CONDITIONAL                                            -*- Autoconf -*-
132
132
133
# Copyright (C) 1997-2018 Free Software Foundation, Inc.
133
# Copyright (C) 1997-2021 Free Software Foundation, Inc.
134
#
134
#
135
# This file is free software; the Free Software Foundation
135
# This file is free software; the Free Software Foundation
136
# gives unlimited permission to copy and/or distribute it,
136
# gives unlimited permission to copy and/or distribute it,
Lines 161-167 Link Here
161
Usually this means the macro was only invoked conditionally.]])
161
Usually this means the macro was only invoked conditionally.]])
162
fi])])
162
fi])])
163
163
164
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
164
# Copyright (C) 1999-2021 Free Software Foundation, Inc.
165
#
165
#
166
# This file is free software; the Free Software Foundation
166
# This file is free software; the Free Software Foundation
167
# gives unlimited permission to copy and/or distribute it,
167
# gives unlimited permission to copy and/or distribute it,
Lines 352-358 Link Here
352
352
353
# Generate code to set up dependency tracking.              -*- Autoconf -*-
353
# Generate code to set up dependency tracking.              -*- Autoconf -*-
354
354
355
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
355
# Copyright (C) 1999-2021 Free Software Foundation, Inc.
356
#
356
#
357
# This file is free software; the Free Software Foundation
357
# This file is free software; the Free Software Foundation
358
# gives unlimited permission to copy and/or distribute it,
358
# gives unlimited permission to copy and/or distribute it,
Lines 391-397 Link Here
391
  done
391
  done
392
  if test $am_rc -ne 0; then
392
  if test $am_rc -ne 0; then
393
    AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
393
    AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
394
    for automatic dependency tracking.  Try re-running configure with the
394
    for automatic dependency tracking.  If GNU make was not used, consider
395
    re-running the configure script with MAKE="gmake" (or whatever is
396
    necessary).  You can also try re-running configure with the
395
    '--disable-dependency-tracking' option to at least be able to build
397
    '--disable-dependency-tracking' option to at least be able to build
396
    the package (albeit without support for automatic dependency tracking).])
398
    the package (albeit without support for automatic dependency tracking).])
397
  fi
399
  fi
Lines 418-424 Link Here
418
420
419
# Do all the work for Automake.                             -*- Autoconf -*-
421
# Do all the work for Automake.                             -*- Autoconf -*-
420
422
421
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
423
# Copyright (C) 1996-2021 Free Software Foundation, Inc.
422
#
424
#
423
# This file is free software; the Free Software Foundation
425
# This file is free software; the Free Software Foundation
424
# gives unlimited permission to copy and/or distribute it,
426
# gives unlimited permission to copy and/or distribute it,
Lines 446-451 Link Here
446
# release and drop the old call support.
448
# release and drop the old call support.
447
AC_DEFUN([AM_INIT_AUTOMAKE],
449
AC_DEFUN([AM_INIT_AUTOMAKE],
448
[AC_PREREQ([2.65])dnl
450
[AC_PREREQ([2.65])dnl
451
m4_ifdef([_$0_ALREADY_INIT],
452
  [m4_fatal([$0 expanded multiple times
453
]m4_defn([_$0_ALREADY_INIT]))],
454
  [m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])dnl
449
dnl Autoconf wants to disallow AM_ names.  We explicitly allow
455
dnl Autoconf wants to disallow AM_ names.  We explicitly allow
450
dnl the ones we care about.
456
dnl the ones we care about.
451
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
457
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
Lines 482-488 Link Here
482
[_AM_SET_OPTIONS([$1])dnl
488
[_AM_SET_OPTIONS([$1])dnl
483
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
489
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
484
m4_if(
490
m4_if(
485
  m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
491
  m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]),
486
  [ok:ok],,
492
  [ok:ok],,
487
  [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
493
  [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
488
 AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
494
 AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
Lines 534-539 Link Here
534
		  [m4_define([AC_PROG_OBJCXX],
540
		  [m4_define([AC_PROG_OBJCXX],
535
			     m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
541
			     m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
536
])
542
])
543
# Variables for tags utilities; see am/tags.am
544
if test -z "$CTAGS"; then
545
  CTAGS=ctags
546
fi
547
AC_SUBST([CTAGS])
548
if test -z "$ETAGS"; then
549
  ETAGS=etags
550
fi
551
AC_SUBST([ETAGS])
552
if test -z "$CSCOPE"; then
553
  CSCOPE=cscope
554
fi
555
AC_SUBST([CSCOPE])
556
537
AC_REQUIRE([AM_SILENT_RULES])dnl
557
AC_REQUIRE([AM_SILENT_RULES])dnl
538
dnl The testsuite driver may need to know about EXEEXT, so add the
558
dnl The testsuite driver may need to know about EXEEXT, so add the
539
dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
559
dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
Lines 615-621 Link Here
615
done
635
done
616
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
636
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
617
637
618
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
638
# Copyright (C) 2001-2021 Free Software Foundation, Inc.
619
#
639
#
620
# This file is free software; the Free Software Foundation
640
# This file is free software; the Free Software Foundation
621
# gives unlimited permission to copy and/or distribute it,
641
# gives unlimited permission to copy and/or distribute it,
Lines 636-642 Link Here
636
fi
656
fi
637
AC_SUBST([install_sh])])
657
AC_SUBST([install_sh])])
638
658
639
# Copyright (C) 2003-2018 Free Software Foundation, Inc.
659
# Copyright (C) 2003-2021 Free Software Foundation, Inc.
640
#
660
#
641
# This file is free software; the Free Software Foundation
661
# This file is free software; the Free Software Foundation
642
# gives unlimited permission to copy and/or distribute it,
662
# gives unlimited permission to copy and/or distribute it,
Lines 657-663 Link Here
657
677
658
# Check to see how 'make' treats includes.	            -*- Autoconf -*-
678
# Check to see how 'make' treats includes.	            -*- Autoconf -*-
659
679
660
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
680
# Copyright (C) 2001-2021 Free Software Foundation, Inc.
661
#
681
#
662
# This file is free software; the Free Software Foundation
682
# This file is free software; the Free Software Foundation
663
# gives unlimited permission to copy and/or distribute it,
683
# gives unlimited permission to copy and/or distribute it,
Lines 700-706 Link Here
700
720
701
# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
721
# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
702
722
703
# Copyright (C) 1997-2018 Free Software Foundation, Inc.
723
# Copyright (C) 1997-2021 Free Software Foundation, Inc.
704
#
724
#
705
# This file is free software; the Free Software Foundation
725
# This file is free software; the Free Software Foundation
706
# gives unlimited permission to copy and/or distribute it,
726
# gives unlimited permission to copy and/or distribute it,
Lines 721-732 Link Here
721
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
741
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
722
AC_REQUIRE_AUX_FILE([missing])dnl
742
AC_REQUIRE_AUX_FILE([missing])dnl
723
if test x"${MISSING+set}" != xset; then
743
if test x"${MISSING+set}" != xset; then
724
  case $am_aux_dir in
744
  MISSING="\${SHELL} '$am_aux_dir/missing'"
725
  *\ * | *\	*)
726
    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
727
  *)
728
    MISSING="\${SHELL} $am_aux_dir/missing" ;;
729
  esac
730
fi
745
fi
731
# Use eval to expand $SHELL
746
# Use eval to expand $SHELL
732
if eval "$MISSING --is-lightweight"; then
747
if eval "$MISSING --is-lightweight"; then
Lines 739-745 Link Here
739
754
740
# Helper functions for option handling.                     -*- Autoconf -*-
755
# Helper functions for option handling.                     -*- Autoconf -*-
741
756
742
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
757
# Copyright (C) 2001-2021 Free Software Foundation, Inc.
743
#
758
#
744
# This file is free software; the Free Software Foundation
759
# This file is free software; the Free Software Foundation
745
# gives unlimited permission to copy and/or distribute it,
760
# gives unlimited permission to copy and/or distribute it,
Lines 768-774 Link Here
768
AC_DEFUN([_AM_IF_OPTION],
783
AC_DEFUN([_AM_IF_OPTION],
769
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
784
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
770
785
771
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
786
# Copyright (C) 1999-2021 Free Software Foundation, Inc.
772
#
787
#
773
# This file is free software; the Free Software Foundation
788
# This file is free software; the Free Software Foundation
774
# gives unlimited permission to copy and/or distribute it,
789
# gives unlimited permission to copy and/or distribute it,
Lines 815-821 Link Here
815
# For backward compatibility.
830
# For backward compatibility.
816
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
831
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
817
832
818
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
833
# Copyright (C) 2001-2021 Free Software Foundation, Inc.
819
#
834
#
820
# This file is free software; the Free Software Foundation
835
# This file is free software; the Free Software Foundation
821
# gives unlimited permission to copy and/or distribute it,
836
# gives unlimited permission to copy and/or distribute it,
Lines 834-840 Link Here
834
849
835
# Check to make sure that the build environment is sane.    -*- Autoconf -*-
850
# Check to make sure that the build environment is sane.    -*- Autoconf -*-
836
851
837
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
852
# Copyright (C) 1996-2021 Free Software Foundation, Inc.
838
#
853
#
839
# This file is free software; the Free Software Foundation
854
# This file is free software; the Free Software Foundation
840
# gives unlimited permission to copy and/or distribute it,
855
# gives unlimited permission to copy and/or distribute it,
Lines 915-921 Link Here
915
rm -f conftest.file
930
rm -f conftest.file
916
])
931
])
917
932
918
# Copyright (C) 2009-2018 Free Software Foundation, Inc.
933
# Copyright (C) 2009-2021 Free Software Foundation, Inc.
919
#
934
#
920
# This file is free software; the Free Software Foundation
935
# This file is free software; the Free Software Foundation
921
# gives unlimited permission to copy and/or distribute it,
936
# gives unlimited permission to copy and/or distribute it,
Lines 975-981 Link Here
975
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
990
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
976
])
991
])
977
992
978
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
993
# Copyright (C) 2001-2021 Free Software Foundation, Inc.
979
#
994
#
980
# This file is free software; the Free Software Foundation
995
# This file is free software; the Free Software Foundation
981
# gives unlimited permission to copy and/or distribute it,
996
# gives unlimited permission to copy and/or distribute it,
Lines 1003-1009 Link Here
1003
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
1018
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
1004
AC_SUBST([INSTALL_STRIP_PROGRAM])])
1019
AC_SUBST([INSTALL_STRIP_PROGRAM])])
1005
1020
1006
# Copyright (C) 2006-2018 Free Software Foundation, Inc.
1021
# Copyright (C) 2006-2021 Free Software Foundation, Inc.
1007
#
1022
#
1008
# This file is free software; the Free Software Foundation
1023
# This file is free software; the Free Software Foundation
1009
# gives unlimited permission to copy and/or distribute it,
1024
# gives unlimited permission to copy and/or distribute it,
Lines 1022-1028 Link Here
1022
1037
1023
# Check how to create a tarball.                            -*- Autoconf -*-
1038
# Check how to create a tarball.                            -*- Autoconf -*-
1024
1039
1025
# Copyright (C) 2004-2018 Free Software Foundation, Inc.
1040
# Copyright (C) 2004-2021 Free Software Foundation, Inc.
1026
#
1041
#
1027
# This file is free software; the Free Software Foundation
1042
# This file is free software; the Free Software Foundation
1028
# gives unlimited permission to copy and/or distribute it,
1043
# gives unlimited permission to copy and/or distribute it,
(-)xz-5.2.5/autogen.sh (-6 / +29 lines)
Lines 19-33 Link Here
19
${AUTOHEADER:-autoheader}
19
${AUTOHEADER:-autoheader}
20
${AUTOMAKE:-automake} -acf --foreign
20
${AUTOMAKE:-automake} -acf --foreign
21
21
22
# Generate the translated man pages if the "po4a" tool is available.
22
# Generate the translated man pages and the doxygen documentation if the
23
# "po4a" and "doxygen" tools are available.
23
# This is *NOT* done by "autoreconf -fi" or when "make" is run.
24
# This is *NOT* done by "autoreconf -fi" or when "make" is run.
24
#
25
# Pass --no-po4a or --no-doxygen to this script to skip these steps.
25
# Pass --no-po4a to this script to skip this step. It can be useful when
26
# It can be useful when you know that po4a or doxygen aren't available and
26
# you know that po4a isn't available and don't want autogen.sh to exit
27
# don't want autogen.sh to exit with non-zero exit status.
27
# with non-zero exit status.
28
generate_po4a="y"
28
if test "x$1" != "x--no-po4a"; then
29
generate_doxygen="y"
30
31
for arg in "$@"
32
do
33
	case $arg in
34
		"--no-po4a")
35
			generate_po4a="n"
36
			;;
37
38
		"--no-doxygen")
39
			generate_doxygen="n"
40
			;;
41
	esac
42
done
43
44
if test "$generate_po4a" != "n"; then
29
	cd po4a
45
	cd po4a
30
	sh update-po
46
	sh update-po
47
	cd ..
48
fi
49
50
if test "$generate_doxygen" != "n"; then
51
	cd doxygen
52
	sh update-doxygen
53
	cd ..
31
fi
54
fi
32
55
33
exit 0
56
exit 0
(-)xz-5.2.5/build-aux/compile (-3 / +3 lines)
Lines 3-9 Link Here
3
3
4
scriptversion=2018-03-07.03; # UTC
4
scriptversion=2018-03-07.03; # UTC
5
5
6
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
6
# Copyright (C) 1999-2021 Free Software Foundation, Inc.
7
# Written by Tom Tromey <tromey@cygnus.com>.
7
# Written by Tom Tromey <tromey@cygnus.com>.
8
#
8
#
9
# This program is free software; you can redistribute it and/or modify
9
# This program is free software; you can redistribute it and/or modify
Lines 53-59 Link Here
53
	  MINGW*)
53
	  MINGW*)
54
	    file_conv=mingw
54
	    file_conv=mingw
55
	    ;;
55
	    ;;
56
	  CYGWIN*)
56
	  CYGWIN* | MSYS*)
57
	    file_conv=cygwin
57
	    file_conv=cygwin
58
	    ;;
58
	    ;;
59
	  *)
59
	  *)
Lines 67-73 Link Here
67
	mingw/*)
67
	mingw/*)
68
	  file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
68
	  file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
69
	  ;;
69
	  ;;
70
	cygwin/*)
70
	cygwin/* | msys/*)
71
	  file=`cygpath -m "$file" || echo "$file"`
71
	  file=`cygpath -m "$file" || echo "$file"`
72
	  ;;
72
	  ;;
73
	wine/*)
73
	wine/*)
(-)xz-5.2.5/build-aux/config.guess (-609 / +887 lines)
Lines 1-12 Link Here
1
#! /bin/sh
1
#! /bin/sh
2
# Attempt to guess a canonical system name.
2
# Attempt to guess a canonical system name.
3
#   Copyright 1992-2018 Free Software Foundation, Inc.
3
#   Copyright 1992-2022 Free Software Foundation, Inc.
4
4
5
timestamp='2018-03-08'
5
# shellcheck disable=SC2006,SC2268 # see below for rationale
6
6
7
timestamp='2022-01-09'
8
7
# This file is free software; you can redistribute it and/or modify it
9
# This file is free software; you can redistribute it and/or modify it
8
# under the terms of the GNU General Public License as published by
10
# under the terms of the GNU General Public License as published by
9
# the Free Software Foundation; either version 3 of the License, or
11
# the Free Software Foundation, either version 3 of the License, or
10
# (at your option) any later version.
12
# (at your option) any later version.
11
#
13
#
12
# This program is distributed in the hope that it will be useful, but
14
# This program is distributed in the hope that it will be useful, but
Lines 27-37 Link Here
27
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
29
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
28
#
30
#
29
# You can get the latest version of this script from:
31
# You can get the latest version of this script from:
30
# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
32
# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
31
#
33
#
32
# Please send patches to <config-patches@gnu.org>.
34
# Please send patches to <config-patches@gnu.org>.
33
35
34
36
37
# The "shellcheck disable" line above the timestamp inhibits complaints
38
# about features and limitations of the classic Bourne shell that were
39
# superseded or lifted in POSIX.  However, this script identifies a wide
40
# variety of pre-POSIX systems that do not have POSIX shells at all, and
41
# even some reasonably current systems (Solaris 10 as case-in-point) still
42
# have a pre-POSIX /bin/sh.
43
44
35
me=`echo "$0" | sed -e 's,.*/,,'`
45
me=`echo "$0" | sed -e 's,.*/,,'`
36
46
37
usage="\
47
usage="\
Lines 50-56 Link Here
50
GNU config.guess ($timestamp)
60
GNU config.guess ($timestamp)
51
61
52
Originally written by Per Bothner.
62
Originally written by Per Bothner.
53
Copyright 1992-2018 Free Software Foundation, Inc.
63
Copyright 1992-2022 Free Software Foundation, Inc.
54
64
55
This is free software; see the source for copying conditions.  There is NO
65
This is free software; see the source for copying conditions.  There is NO
56
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
66
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
Lines 84-90 Link Here
84
  exit 1
94
  exit 1
85
fi
95
fi
86
96
87
trap 'exit 1' 1 2 15
97
# Just in case it came from the environment.
98
GUESS=
88
99
89
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
100
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
90
# compiler to aid in system detection is discouraged as it requires
101
# compiler to aid in system detection is discouraged as it requires
Lines 96-168 Link Here
96
107
97
# Portable tmp directory creation inspired by the Autoconf team.
108
# Portable tmp directory creation inspired by the Autoconf team.
98
109
99
set_cc_for_build='
110
tmp=
100
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
111
# shellcheck disable=SC2172
101
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
112
trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
102
: ${TMPDIR=/tmp} ;
103
 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
104
 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
105
 { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
106
 { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
107
dummy=$tmp/dummy ;
108
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
109
case $CC_FOR_BUILD,$HOST_CC,$CC in
110
 ,,)    echo "int x;" > "$dummy.c" ;
111
	for c in cc gcc c89 c99 ; do
112
	  if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
113
	     CC_FOR_BUILD="$c"; break ;
114
	  fi ;
115
	done ;
116
	if test x"$CC_FOR_BUILD" = x ; then
117
	  CC_FOR_BUILD=no_compiler_found ;
118
	fi
119
	;;
120
 ,,*)   CC_FOR_BUILD=$CC ;;
121
 ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
122
esac ; set_cc_for_build= ;'
123
113
114
set_cc_for_build() {
115
    # prevent multiple calls if $tmp is already set
116
    test "$tmp" && return 0
117
    : "${TMPDIR=/tmp}"
118
    # shellcheck disable=SC2039,SC3028
119
    { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
120
	{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
121
	{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
122
	{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
123
    dummy=$tmp/dummy
124
    case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
125
	,,)    echo "int x;" > "$dummy.c"
126
	       for driver in cc gcc c89 c99 ; do
127
		   if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
128
		       CC_FOR_BUILD=$driver
129
		       break
130
		   fi
131
	       done
132
	       if test x"$CC_FOR_BUILD" = x ; then
133
		   CC_FOR_BUILD=no_compiler_found
134
	       fi
135
	       ;;
136
	,,*)   CC_FOR_BUILD=$CC ;;
137
	,*,*)  CC_FOR_BUILD=$HOST_CC ;;
138
    esac
139
}
140
124
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
141
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
125
# (ghazi@noc.rutgers.edu 1994-08-24)
142
# (ghazi@noc.rutgers.edu 1994-08-24)
126
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
143
if test -f /.attbin/uname ; then
127
	PATH=$PATH:/.attbin ; export PATH
144
	PATH=$PATH:/.attbin ; export PATH
128
fi
145
fi
129
146
130
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
147
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
131
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
148
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
132
UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
149
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
133
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
150
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
134
151
135
case "$UNAME_SYSTEM" in
152
case $UNAME_SYSTEM in
136
Linux|GNU|GNU/*)
153
Linux|GNU|GNU/*)
137
	# If the system lacks a compiler, then just pick glibc.
154
	LIBC=unknown
138
	# We could probably try harder.
139
	LIBC=gnu
140
155
141
	eval "$set_cc_for_build"
156
	set_cc_for_build
142
	cat <<-EOF > "$dummy.c"
157
	cat <<-EOF > "$dummy.c"
143
	#include <features.h>
158
	#include <features.h>
144
	#if defined(__UCLIBC__)
159
	#if defined(__UCLIBC__)
145
	LIBC=uclibc
160
	LIBC=uclibc
146
	#elif defined(__dietlibc__)
161
	#elif defined(__dietlibc__)
147
	LIBC=dietlibc
162
	LIBC=dietlibc
148
	#else
163
	#elif defined(__GLIBC__)
149
	LIBC=gnu
164
	LIBC=gnu
165
	#else
166
	#include <stdarg.h>
167
	/* First heuristic to detect musl libc.  */
168
	#ifdef __DEFINED_va_list
169
	LIBC=musl
150
	#endif
170
	#endif
171
	#endif
151
	EOF
172
	EOF
152
	eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
173
	cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
174
	eval "$cc_set_libc"
153
175
154
	# If ldd exists, use it to detect musl libc.
176
	# Second heuristic to detect musl libc.
155
	if command -v ldd >/dev/null && \
177
	if [ "$LIBC" = unknown ] &&
156
		ldd --version 2>&1 | grep -q ^musl
178
	   command -v ldd >/dev/null &&
157
	then
179
	   ldd --version 2>&1 | grep -q ^musl; then
158
	    LIBC=musl
180
		LIBC=musl
159
	fi
181
	fi
182
183
	# If the system lacks a compiler, then just pick glibc.
184
	# We could probably try harder.
185
	if [ "$LIBC" = unknown ]; then
186
		LIBC=gnu
187
	fi
160
	;;
188
	;;
161
esac
189
esac
162
190
163
# Note: order is significant - the case branches are not exclusive.
191
# Note: order is significant - the case branches are not exclusive.
164
192
165
case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
193
case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
166
    *:NetBSD:*:*)
194
    *:NetBSD:*:*)
167
	# NetBSD (nbsd) targets should (where applicable) match one or
195
	# NetBSD (nbsd) targets should (where applicable) match one or
168
	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
196
	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
Lines 174-185 Link Here
174
	#
202
	#
175
	# Note: NetBSD doesn't particularly care about the vendor
203
	# Note: NetBSD doesn't particularly care about the vendor
176
	# portion of the name.  We always set it to "unknown".
204
	# portion of the name.  We always set it to "unknown".
177
	sysctl="sysctl -n hw.machine_arch"
178
	UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
205
	UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
179
	    "/sbin/$sysctl" 2>/dev/null || \
206
	    /sbin/sysctl -n hw.machine_arch 2>/dev/null || \
180
	    "/usr/sbin/$sysctl" 2>/dev/null || \
207
	    /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
181
	    echo unknown)`
208
	    echo unknown)`
182
	case "$UNAME_MACHINE_ARCH" in
209
	case $UNAME_MACHINE_ARCH in
210
	    aarch64eb) machine=aarch64_be-unknown ;;
183
	    armeb) machine=armeb-unknown ;;
211
	    armeb) machine=armeb-unknown ;;
184
	    arm*) machine=arm-unknown ;;
212
	    arm*) machine=arm-unknown ;;
185
	    sh3el) machine=shl-unknown ;;
213
	    sh3el) machine=shl-unknown ;;
Lines 188-205 Link Here
188
	    earmv*)
216
	    earmv*)
189
		arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
217
		arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
190
		endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
218
		endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
191
		machine="${arch}${endian}"-unknown
219
		machine=${arch}${endian}-unknown
192
		;;
220
		;;
193
	    *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
221
	    *) machine=$UNAME_MACHINE_ARCH-unknown ;;
194
	esac
222
	esac
195
	# The Operating System including object format, if it has switched
223
	# The Operating System including object format, if it has switched
196
	# to ELF recently (or will in the future) and ABI.
224
	# to ELF recently (or will in the future) and ABI.
197
	case "$UNAME_MACHINE_ARCH" in
225
	case $UNAME_MACHINE_ARCH in
198
	    earm*)
226
	    earm*)
199
		os=netbsdelf
227
		os=netbsdelf
200
		;;
228
		;;
201
	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
229
	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
202
		eval "$set_cc_for_build"
230
		set_cc_for_build
203
		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
231
		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
204
			| grep -q __ELF__
232
			| grep -q __ELF__
205
		then
233
		then
Lines 215-221 Link Here
215
		;;
243
		;;
216
	esac
244
	esac
217
	# Determine ABI tags.
245
	# Determine ABI tags.
218
	case "$UNAME_MACHINE_ARCH" in
246
	case $UNAME_MACHINE_ARCH in
219
	    earm*)
247
	    earm*)
220
		expr='s/^earmv[0-9]/-eabi/;s/eb$//'
248
		expr='s/^earmv[0-9]/-eabi/;s/eb$//'
221
		abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
249
		abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
Lines 226-232 Link Here
226
	# thus, need a distinct triplet. However, they do not need
254
	# thus, need a distinct triplet. However, they do not need
227
	# kernel version information, so it can be replaced with a
255
	# kernel version information, so it can be replaced with a
228
	# suitable tag, in the style of linux-gnu.
256
	# suitable tag, in the style of linux-gnu.
229
	case "$UNAME_VERSION" in
257
	case $UNAME_VERSION in
230
	    Debian*)
258
	    Debian*)
231
		release='-gnu'
259
		release='-gnu'
232
		;;
260
		;;
Lines 237-281 Link Here
237
	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
265
	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
238
	# contains redundant information, the shorter form:
266
	# contains redundant information, the shorter form:
239
	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
267
	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
240
	echo "$machine-${os}${release}${abi}"
268
	GUESS=$machine-${os}${release}${abi-}
241
	exit ;;
269
	;;
242
    *:Bitrig:*:*)
270
    *:Bitrig:*:*)
243
	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
271
	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
244
	echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
272
	GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE
245
	exit ;;
273
	;;
246
    *:OpenBSD:*:*)
274
    *:OpenBSD:*:*)
247
	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
275
	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
248
	echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
276
	GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE
249
	exit ;;
277
	;;
278
    *:SecBSD:*:*)
279
	UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
280
	GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE
281
	;;
250
    *:LibertyBSD:*:*)
282
    *:LibertyBSD:*:*)
251
	UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
283
	UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
252
	echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
284
	GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE
253
	exit ;;
285
	;;
254
    *:MidnightBSD:*:*)
286
    *:MidnightBSD:*:*)
255
	echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
287
	GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE
256
	exit ;;
288
	;;
257
    *:ekkoBSD:*:*)
289
    *:ekkoBSD:*:*)
258
	echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
290
	GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE
259
	exit ;;
291
	;;
260
    *:SolidBSD:*:*)
292
    *:SolidBSD:*:*)
261
	echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
293
	GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE
262
	exit ;;
294
	;;
295
    *:OS108:*:*)
296
	GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE
297
	;;
263
    macppc:MirBSD:*:*)
298
    macppc:MirBSD:*:*)
264
	echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
299
	GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE
265
	exit ;;
300
	;;
266
    *:MirBSD:*:*)
301
    *:MirBSD:*:*)
267
	echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
302
	GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE
268
	exit ;;
303
	;;
269
    *:Sortix:*:*)
304
    *:Sortix:*:*)
270
	echo "$UNAME_MACHINE"-unknown-sortix
305
	GUESS=$UNAME_MACHINE-unknown-sortix
271
	exit ;;
306
	;;
307
    *:Twizzler:*:*)
308
	GUESS=$UNAME_MACHINE-unknown-twizzler
309
	;;
272
    *:Redox:*:*)
310
    *:Redox:*:*)
273
	echo "$UNAME_MACHINE"-unknown-redox
311
	GUESS=$UNAME_MACHINE-unknown-redox
274
	exit ;;
312
	;;
275
    mips:OSF1:*.*)
313
    mips:OSF1:*.*)
276
        echo mips-dec-osf1
314
	GUESS=mips-dec-osf1
277
        exit ;;
315
	;;
278
    alpha:OSF1:*:*)
316
    alpha:OSF1:*:*)
317
	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
318
	trap '' 0
279
	case $UNAME_RELEASE in
319
	case $UNAME_RELEASE in
280
	*4.0)
320
	*4.0)
281
		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
321
		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
Lines 289-295 Link Here
289
	# covers most systems running today.  This code pipes the CPU
329
	# covers most systems running today.  This code pipes the CPU
290
	# types through head -n 1, so we only detect the type of CPU 0.
330
	# types through head -n 1, so we only detect the type of CPU 0.
291
	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
331
	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
292
	case "$ALPHA_CPU_TYPE" in
332
	case $ALPHA_CPU_TYPE in
293
	    "EV4 (21064)")
333
	    "EV4 (21064)")
294
		UNAME_MACHINE=alpha ;;
334
		UNAME_MACHINE=alpha ;;
295
	    "EV4.5 (21064)")
335
	    "EV4.5 (21064)")
Lines 326-442 Link Here
326
	# A Tn.n version is a released field test version.
366
	# A Tn.n version is a released field test version.
327
	# A Xn.n version is an unreleased experimental baselevel.
367
	# A Xn.n version is an unreleased experimental baselevel.
328
	# 1.2 uses "1.2" for uname -r.
368
	# 1.2 uses "1.2" for uname -r.
329
	echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
369
	OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
330
	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
370
	GUESS=$UNAME_MACHINE-dec-osf$OSF_REL
331
	exitcode=$?
371
	;;
332
	trap '' 0
333
	exit $exitcode ;;
334
    Amiga*:UNIX_System_V:4.0:*)
372
    Amiga*:UNIX_System_V:4.0:*)
335
	echo m68k-unknown-sysv4
373
	GUESS=m68k-unknown-sysv4
336
	exit ;;
374
	;;
337
    *:[Aa]miga[Oo][Ss]:*:*)
375
    *:[Aa]miga[Oo][Ss]:*:*)
338
	echo "$UNAME_MACHINE"-unknown-amigaos
376
	GUESS=$UNAME_MACHINE-unknown-amigaos
339
	exit ;;
377
	;;
340
    *:[Mm]orph[Oo][Ss]:*:*)
378
    *:[Mm]orph[Oo][Ss]:*:*)
341
	echo "$UNAME_MACHINE"-unknown-morphos
379
	GUESS=$UNAME_MACHINE-unknown-morphos
342
	exit ;;
380
	;;
343
    *:OS/390:*:*)
381
    *:OS/390:*:*)
344
	echo i370-ibm-openedition
382
	GUESS=i370-ibm-openedition
345
	exit ;;
383
	;;
346
    *:z/VM:*:*)
384
    *:z/VM:*:*)
347
	echo s390-ibm-zvmoe
385
	GUESS=s390-ibm-zvmoe
348
	exit ;;
386
	;;
349
    *:OS400:*:*)
387
    *:OS400:*:*)
350
	echo powerpc-ibm-os400
388
	GUESS=powerpc-ibm-os400
351
	exit ;;
389
	;;
352
    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
390
    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
353
	echo arm-acorn-riscix"$UNAME_RELEASE"
391
	GUESS=arm-acorn-riscix$UNAME_RELEASE
354
	exit ;;
392
	;;
355
    arm*:riscos:*:*|arm*:RISCOS:*:*)
393
    arm*:riscos:*:*|arm*:RISCOS:*:*)
356
	echo arm-unknown-riscos
394
	GUESS=arm-unknown-riscos
357
	exit ;;
395
	;;
358
    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
396
    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
359
	echo hppa1.1-hitachi-hiuxmpp
397
	GUESS=hppa1.1-hitachi-hiuxmpp
360
	exit ;;
398
	;;
361
    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
399
    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
362
	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
400
	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
363
	if test "`(/bin/universe) 2>/dev/null`" = att ; then
401
	case `(/bin/universe) 2>/dev/null` in
364
		echo pyramid-pyramid-sysv3
402
	    att) GUESS=pyramid-pyramid-sysv3 ;;
365
	else
403
	    *)   GUESS=pyramid-pyramid-bsd   ;;
366
		echo pyramid-pyramid-bsd
404
	esac
367
	fi
405
	;;
368
	exit ;;
369
    NILE*:*:*:dcosx)
406
    NILE*:*:*:dcosx)
370
	echo pyramid-pyramid-svr4
407
	GUESS=pyramid-pyramid-svr4
371
	exit ;;
408
	;;
372
    DRS?6000:unix:4.0:6*)
409
    DRS?6000:unix:4.0:6*)
373
	echo sparc-icl-nx6
410
	GUESS=sparc-icl-nx6
374
	exit ;;
411
	;;
375
    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
412
    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
376
	case `/usr/bin/uname -p` in
413
	case `/usr/bin/uname -p` in
377
	    sparc) echo sparc-icl-nx7; exit ;;
414
	    sparc) GUESS=sparc-icl-nx7 ;;
378
	esac ;;
415
	esac
416
	;;
379
    s390x:SunOS:*:*)
417
    s390x:SunOS:*:*)
380
	echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
418
	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
381
	exit ;;
419
	GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL
420
	;;
382
    sun4H:SunOS:5.*:*)
421
    sun4H:SunOS:5.*:*)
383
	echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
422
	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
384
	exit ;;
423
	GUESS=sparc-hal-solaris2$SUN_REL
424
	;;
385
    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
425
    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
386
	echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
426
	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
387
	exit ;;
427
	GUESS=sparc-sun-solaris2$SUN_REL
428
	;;
388
    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
429
    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
389
	echo i386-pc-auroraux"$UNAME_RELEASE"
430
	GUESS=i386-pc-auroraux$UNAME_RELEASE
390
	exit ;;
431
	;;
391
    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
432
    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
392
	eval "$set_cc_for_build"
433
	set_cc_for_build
393
	SUN_ARCH=i386
434
	SUN_ARCH=i386
394
	# If there is a compiler, see if it is configured for 64-bit objects.
435
	# If there is a compiler, see if it is configured for 64-bit objects.
395
	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
436
	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
396
	# This test works for both compilers.
437
	# This test works for both compilers.
397
	if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
438
	if test "$CC_FOR_BUILD" != no_compiler_found; then
398
	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
439
	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
399
		(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
440
		(CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \
400
		grep IS_64BIT_ARCH >/dev/null
441
		grep IS_64BIT_ARCH >/dev/null
401
	    then
442
	    then
402
		SUN_ARCH=x86_64
443
		SUN_ARCH=x86_64
403
	    fi
444
	    fi
404
	fi
445
	fi
405
	echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
446
	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
406
	exit ;;
447
	GUESS=$SUN_ARCH-pc-solaris2$SUN_REL
448
	;;
407
    sun4*:SunOS:6*:*)
449
    sun4*:SunOS:6*:*)
408
	# According to config.sub, this is the proper way to canonicalize
450
	# According to config.sub, this is the proper way to canonicalize
409
	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
451
	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
410
	# it's likely to be more like Solaris than SunOS4.
452
	# it's likely to be more like Solaris than SunOS4.
411
	echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
453
	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
412
	exit ;;
454
	GUESS=sparc-sun-solaris3$SUN_REL
455
	;;
413
    sun4*:SunOS:*:*)
456
    sun4*:SunOS:*:*)
414
	case "`/usr/bin/arch -k`" in
457
	case `/usr/bin/arch -k` in
415
	    Series*|S4*)
458
	    Series*|S4*)
416
		UNAME_RELEASE=`uname -v`
459
		UNAME_RELEASE=`uname -v`
417
		;;
460
		;;
418
	esac
461
	esac
419
	# Japanese Language versions have a version number like `4.1.3-JL'.
462
	# Japanese Language versions have a version number like `4.1.3-JL'.
420
	echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
463
	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
421
	exit ;;
464
	GUESS=sparc-sun-sunos$SUN_REL
465
	;;
422
    sun3*:SunOS:*:*)
466
    sun3*:SunOS:*:*)
423
	echo m68k-sun-sunos"$UNAME_RELEASE"
467
	GUESS=m68k-sun-sunos$UNAME_RELEASE
424
	exit ;;
468
	;;
425
    sun*:*:4.2BSD:*)
469
    sun*:*:4.2BSD:*)
426
	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
470
	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
427
	test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
471
	test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
428
	case "`/bin/arch`" in
472
	case `/bin/arch` in
429
	    sun3)
473
	    sun3)
430
		echo m68k-sun-sunos"$UNAME_RELEASE"
474
		GUESS=m68k-sun-sunos$UNAME_RELEASE
431
		;;
475
		;;
432
	    sun4)
476
	    sun4)
433
		echo sparc-sun-sunos"$UNAME_RELEASE"
477
		GUESS=sparc-sun-sunos$UNAME_RELEASE
434
		;;
478
		;;
435
	esac
479
	esac
436
	exit ;;
480
	;;
437
    aushp:SunOS:*:*)
481
    aushp:SunOS:*:*)
438
	echo sparc-auspex-sunos"$UNAME_RELEASE"
482
	GUESS=sparc-auspex-sunos$UNAME_RELEASE
439
	exit ;;
483
	;;
440
    # The situation for MiNT is a little confusing.  The machine name
484
    # The situation for MiNT is a little confusing.  The machine name
441
    # can be virtually everything (everything which is not
485
    # can be virtually everything (everything which is not
442
    # "atarist" or "atariste" at least should have a processor
486
    # "atarist" or "atariste" at least should have a processor
Lines 446-488 Link Here
446
    # MiNT.  But MiNT is downward compatible to TOS, so this should
490
    # MiNT.  But MiNT is downward compatible to TOS, so this should
447
    # be no problem.
491
    # be no problem.
448
    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
492
    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
449
	echo m68k-atari-mint"$UNAME_RELEASE"
493
	GUESS=m68k-atari-mint$UNAME_RELEASE
450
	exit ;;
494
	;;
451
    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
495
    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
452
	echo m68k-atari-mint"$UNAME_RELEASE"
496
	GUESS=m68k-atari-mint$UNAME_RELEASE
453
	exit ;;
497
	;;
454
    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
498
    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
455
	echo m68k-atari-mint"$UNAME_RELEASE"
499
	GUESS=m68k-atari-mint$UNAME_RELEASE
456
	exit ;;
500
	;;
457
    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
501
    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
458
	echo m68k-milan-mint"$UNAME_RELEASE"
502
	GUESS=m68k-milan-mint$UNAME_RELEASE
459
	exit ;;
503
	;;
460
    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
504
    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
461
	echo m68k-hades-mint"$UNAME_RELEASE"
505
	GUESS=m68k-hades-mint$UNAME_RELEASE
462
	exit ;;
506
	;;
463
    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
507
    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
464
	echo m68k-unknown-mint"$UNAME_RELEASE"
508
	GUESS=m68k-unknown-mint$UNAME_RELEASE
465
	exit ;;
509
	;;
466
    m68k:machten:*:*)
510
    m68k:machten:*:*)
467
	echo m68k-apple-machten"$UNAME_RELEASE"
511
	GUESS=m68k-apple-machten$UNAME_RELEASE
468
	exit ;;
512
	;;
469
    powerpc:machten:*:*)
513
    powerpc:machten:*:*)
470
	echo powerpc-apple-machten"$UNAME_RELEASE"
514
	GUESS=powerpc-apple-machten$UNAME_RELEASE
471
	exit ;;
515
	;;
472
    RISC*:Mach:*:*)
516
    RISC*:Mach:*:*)
473
	echo mips-dec-mach_bsd4.3
517
	GUESS=mips-dec-mach_bsd4.3
474
	exit ;;
518
	;;
475
    RISC*:ULTRIX:*:*)
519
    RISC*:ULTRIX:*:*)
476
	echo mips-dec-ultrix"$UNAME_RELEASE"
520
	GUESS=mips-dec-ultrix$UNAME_RELEASE
477
	exit ;;
521
	;;
478
    VAX*:ULTRIX*:*:*)
522
    VAX*:ULTRIX*:*:*)
479
	echo vax-dec-ultrix"$UNAME_RELEASE"
523
	GUESS=vax-dec-ultrix$UNAME_RELEASE
480
	exit ;;
524
	;;
481
    2020:CLIX:*:* | 2430:CLIX:*:*)
525
    2020:CLIX:*:* | 2430:CLIX:*:*)
482
	echo clipper-intergraph-clix"$UNAME_RELEASE"
526
	GUESS=clipper-intergraph-clix$UNAME_RELEASE
483
	exit ;;
527
	;;
484
    mips:*:*:UMIPS | mips:*:*:RISCos)
528
    mips:*:*:UMIPS | mips:*:*:RISCos)
485
	eval "$set_cc_for_build"
529
	set_cc_for_build
486
	sed 's/^	//' << EOF > "$dummy.c"
530
	sed 's/^	//' << EOF > "$dummy.c"
487
#ifdef __cplusplus
531
#ifdef __cplusplus
488
#include <stdio.h>  /* for printf() prototype */
532
#include <stdio.h>  /* for printf() prototype */
Lines 508-585 Link Here
508
	  dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
552
	  dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
509
	  SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
553
	  SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
510
	    { echo "$SYSTEM_NAME"; exit; }
554
	    { echo "$SYSTEM_NAME"; exit; }
511
	echo mips-mips-riscos"$UNAME_RELEASE"
555
	GUESS=mips-mips-riscos$UNAME_RELEASE
512
	exit ;;
556
	;;
513
    Motorola:PowerMAX_OS:*:*)
557
    Motorola:PowerMAX_OS:*:*)
514
	echo powerpc-motorola-powermax
558
	GUESS=powerpc-motorola-powermax
515
	exit ;;
559
	;;
516
    Motorola:*:4.3:PL8-*)
560
    Motorola:*:4.3:PL8-*)
517
	echo powerpc-harris-powermax
561
	GUESS=powerpc-harris-powermax
518
	exit ;;
562
	;;
519
    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
563
    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
520
	echo powerpc-harris-powermax
564
	GUESS=powerpc-harris-powermax
521
	exit ;;
565
	;;
522
    Night_Hawk:Power_UNIX:*:*)
566
    Night_Hawk:Power_UNIX:*:*)
523
	echo powerpc-harris-powerunix
567
	GUESS=powerpc-harris-powerunix
524
	exit ;;
568
	;;
525
    m88k:CX/UX:7*:*)
569
    m88k:CX/UX:7*:*)
526
	echo m88k-harris-cxux7
570
	GUESS=m88k-harris-cxux7
527
	exit ;;
571
	;;
528
    m88k:*:4*:R4*)
572
    m88k:*:4*:R4*)
529
	echo m88k-motorola-sysv4
573
	GUESS=m88k-motorola-sysv4
530
	exit ;;
574
	;;
531
    m88k:*:3*:R3*)
575
    m88k:*:3*:R3*)
532
	echo m88k-motorola-sysv3
576
	GUESS=m88k-motorola-sysv3
533
	exit ;;
577
	;;
534
    AViiON:dgux:*:*)
578
    AViiON:dgux:*:*)
535
	# DG/UX returns AViiON for all architectures
579
	# DG/UX returns AViiON for all architectures
536
	UNAME_PROCESSOR=`/usr/bin/uname -p`
580
	UNAME_PROCESSOR=`/usr/bin/uname -p`
537
	if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
581
	if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
538
	then
582
	then
539
	    if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
583
	    if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
540
	       [ "$TARGET_BINARY_INTERFACE"x = x ]
584
	       test "$TARGET_BINARY_INTERFACE"x = x
541
	    then
585
	    then
542
		echo m88k-dg-dgux"$UNAME_RELEASE"
586
		GUESS=m88k-dg-dgux$UNAME_RELEASE
543
	    else
587
	    else
544
		echo m88k-dg-dguxbcs"$UNAME_RELEASE"
588
		GUESS=m88k-dg-dguxbcs$UNAME_RELEASE
545
	    fi
589
	    fi
546
	else
590
	else
547
	    echo i586-dg-dgux"$UNAME_RELEASE"
591
	    GUESS=i586-dg-dgux$UNAME_RELEASE
548
	fi
592
	fi
549
	exit ;;
593
	;;
550
    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
594
    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
551
	echo m88k-dolphin-sysv3
595
	GUESS=m88k-dolphin-sysv3
552
	exit ;;
596
	;;
553
    M88*:*:R3*:*)
597
    M88*:*:R3*:*)
554
	# Delta 88k system running SVR3
598
	# Delta 88k system running SVR3
555
	echo m88k-motorola-sysv3
599
	GUESS=m88k-motorola-sysv3
556
	exit ;;
600
	;;
557
    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
601
    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
558
	echo m88k-tektronix-sysv3
602
	GUESS=m88k-tektronix-sysv3
559
	exit ;;
603
	;;
560
    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
604
    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
561
	echo m68k-tektronix-bsd
605
	GUESS=m68k-tektronix-bsd
562
	exit ;;
606
	;;
563
    *:IRIX*:*:*)
607
    *:IRIX*:*:*)
564
	echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
608
	IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'`
565
	exit ;;
609
	GUESS=mips-sgi-irix$IRIX_REL
610
	;;
566
    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
611
    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
567
	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
612
	GUESS=romp-ibm-aix    # uname -m gives an 8 hex-code CPU id
568
	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
613
	;;                    # Note that: echo "'`uname -s`'" gives 'AIX '
569
    i*86:AIX:*:*)
614
    i*86:AIX:*:*)
570
	echo i386-ibm-aix
615
	GUESS=i386-ibm-aix
571
	exit ;;
616
	;;
572
    ia64:AIX:*:*)
617
    ia64:AIX:*:*)
573
	if [ -x /usr/bin/oslevel ] ; then
618
	if test -x /usr/bin/oslevel ; then
574
		IBM_REV=`/usr/bin/oslevel`
619
		IBM_REV=`/usr/bin/oslevel`
575
	else
620
	else
576
		IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
621
		IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
577
	fi
622
	fi
578
	echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
623
	GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV
579
	exit ;;
624
	;;
580
    *:AIX:2:3)
625
    *:AIX:2:3)
581
	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
626
	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
582
		eval "$set_cc_for_build"
627
		set_cc_for_build
583
		sed 's/^		//' << EOF > "$dummy.c"
628
		sed 's/^		//' << EOF > "$dummy.c"
584
		#include <sys/systemcfg.h>
629
		#include <sys/systemcfg.h>
585
630
Lines 593-608 Link Here
593
EOF
638
EOF
594
		if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
639
		if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
595
		then
640
		then
596
			echo "$SYSTEM_NAME"
641
			GUESS=$SYSTEM_NAME
597
		else
642
		else
598
			echo rs6000-ibm-aix3.2.5
643
			GUESS=rs6000-ibm-aix3.2.5
599
		fi
644
		fi
600
	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
645
	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
601
		echo rs6000-ibm-aix3.2.4
646
		GUESS=rs6000-ibm-aix3.2.4
602
	else
647
	else
603
		echo rs6000-ibm-aix3.2
648
		GUESS=rs6000-ibm-aix3.2
604
	fi
649
	fi
605
	exit ;;
650
	;;
606
    *:AIX:*:[4567])
651
    *:AIX:*:[4567])
607
	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
652
	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
608
	if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
653
	if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
Lines 610-666 Link Here
610
	else
655
	else
611
		IBM_ARCH=powerpc
656
		IBM_ARCH=powerpc
612
	fi
657
	fi
613
	if [ -x /usr/bin/lslpp ] ; then
658
	if test -x /usr/bin/lslpp ; then
614
		IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
659
		IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \
615
			   awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
660
			   awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
616
	else
661
	else
617
		IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
662
		IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
618
	fi
663
	fi
619
	echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
664
	GUESS=$IBM_ARCH-ibm-aix$IBM_REV
620
	exit ;;
665
	;;
621
    *:AIX:*:*)
666
    *:AIX:*:*)
622
	echo rs6000-ibm-aix
667
	GUESS=rs6000-ibm-aix
623
	exit ;;
668
	;;
624
    ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
669
    ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
625
	echo romp-ibm-bsd4.4
670
	GUESS=romp-ibm-bsd4.4
626
	exit ;;
671
	;;
627
    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
672
    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
628
	echo romp-ibm-bsd"$UNAME_RELEASE"   # 4.3 with uname added to
673
	GUESS=romp-ibm-bsd$UNAME_RELEASE    # 4.3 with uname added to
629
	exit ;;                             # report: romp-ibm BSD 4.3
674
	;;                                  # report: romp-ibm BSD 4.3
630
    *:BOSX:*:*)
675
    *:BOSX:*:*)
631
	echo rs6000-bull-bosx
676
	GUESS=rs6000-bull-bosx
632
	exit ;;
677
	;;
633
    DPX/2?00:B.O.S.:*:*)
678
    DPX/2?00:B.O.S.:*:*)
634
	echo m68k-bull-sysv3
679
	GUESS=m68k-bull-sysv3
635
	exit ;;
680
	;;
636
    9000/[34]??:4.3bsd:1.*:*)
681
    9000/[34]??:4.3bsd:1.*:*)
637
	echo m68k-hp-bsd
682
	GUESS=m68k-hp-bsd
638
	exit ;;
683
	;;
639
    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
684
    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
640
	echo m68k-hp-bsd4.4
685
	GUESS=m68k-hp-bsd4.4
641
	exit ;;
686
	;;
642
    9000/[34678]??:HP-UX:*:*)
687
    9000/[34678]??:HP-UX:*:*)
643
	HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
688
	HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
644
	case "$UNAME_MACHINE" in
689
	case $UNAME_MACHINE in
645
	    9000/31?)            HP_ARCH=m68000 ;;
690
	    9000/31?)            HP_ARCH=m68000 ;;
646
	    9000/[34]??)         HP_ARCH=m68k ;;
691
	    9000/[34]??)         HP_ARCH=m68k ;;
647
	    9000/[678][0-9][0-9])
692
	    9000/[678][0-9][0-9])
648
		if [ -x /usr/bin/getconf ]; then
693
		if test -x /usr/bin/getconf; then
649
		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
694
		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
650
		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
695
		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
651
		    case "$sc_cpu_version" in
696
		    case $sc_cpu_version in
652
		      523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
697
		      523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
653
		      528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
698
		      528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
654
		      532)                      # CPU_PA_RISC2_0
699
		      532)                      # CPU_PA_RISC2_0
655
			case "$sc_kernel_bits" in
700
			case $sc_kernel_bits in
656
			  32) HP_ARCH=hppa2.0n ;;
701
			  32) HP_ARCH=hppa2.0n ;;
657
			  64) HP_ARCH=hppa2.0w ;;
702
			  64) HP_ARCH=hppa2.0w ;;
658
			  '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
703
			  '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
659
			esac ;;
704
			esac ;;
660
		    esac
705
		    esac
661
		fi
706
		fi
662
		if [ "$HP_ARCH" = "" ]; then
707
		if test "$HP_ARCH" = ""; then
663
		    eval "$set_cc_for_build"
708
		    set_cc_for_build
664
		    sed 's/^		//' << EOF > "$dummy.c"
709
		    sed 's/^		//' << EOF > "$dummy.c"
665
710
666
		#define _HPUX_SOURCE
711
		#define _HPUX_SOURCE
Lines 698-706 Link Here
698
		    test -z "$HP_ARCH" && HP_ARCH=hppa
743
		    test -z "$HP_ARCH" && HP_ARCH=hppa
699
		fi ;;
744
		fi ;;
700
	esac
745
	esac
701
	if [ "$HP_ARCH" = hppa2.0w ]
746
	if test "$HP_ARCH" = hppa2.0w
702
	then
747
	then
703
	    eval "$set_cc_for_build"
748
	    set_cc_for_build
704
749
705
	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
750
	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
706
	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
751
	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
Lines 719-732 Link Here
719
		HP_ARCH=hppa64
764
		HP_ARCH=hppa64
720
	    fi
765
	    fi
721
	fi
766
	fi
722
	echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
767
	GUESS=$HP_ARCH-hp-hpux$HPUX_REV
723
	exit ;;
768
	;;
724
    ia64:HP-UX:*:*)
769
    ia64:HP-UX:*:*)
725
	HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
770
	HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
726
	echo ia64-hp-hpux"$HPUX_REV"
771
	GUESS=ia64-hp-hpux$HPUX_REV
727
	exit ;;
772
	;;
728
    3050*:HI-UX:*:*)
773
    3050*:HI-UX:*:*)
729
	eval "$set_cc_for_build"
774
	set_cc_for_build
730
	sed 's/^	//' << EOF > "$dummy.c"
775
	sed 's/^	//' << EOF > "$dummy.c"
731
	#include <unistd.h>
776
	#include <unistd.h>
732
	int
777
	int
Lines 754-789 Link Here
754
EOF
799
EOF
755
	$CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
800
	$CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
756
		{ echo "$SYSTEM_NAME"; exit; }
801
		{ echo "$SYSTEM_NAME"; exit; }
757
	echo unknown-hitachi-hiuxwe2
802
	GUESS=unknown-hitachi-hiuxwe2
758
	exit ;;
803
	;;
759
    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
804
    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
760
	echo hppa1.1-hp-bsd
805
	GUESS=hppa1.1-hp-bsd
761
	exit ;;
806
	;;
762
    9000/8??:4.3bsd:*:*)
807
    9000/8??:4.3bsd:*:*)
763
	echo hppa1.0-hp-bsd
808
	GUESS=hppa1.0-hp-bsd
764
	exit ;;
809
	;;
765
    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
810
    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
766
	echo hppa1.0-hp-mpeix
811
	GUESS=hppa1.0-hp-mpeix
767
	exit ;;
812
	;;
768
    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
813
    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
769
	echo hppa1.1-hp-osf
814
	GUESS=hppa1.1-hp-osf
770
	exit ;;
815
	;;
771
    hp8??:OSF1:*:*)
816
    hp8??:OSF1:*:*)
772
	echo hppa1.0-hp-osf
817
	GUESS=hppa1.0-hp-osf
773
	exit ;;
818
	;;
774
    i*86:OSF1:*:*)
819
    i*86:OSF1:*:*)
775
	if [ -x /usr/sbin/sysversion ] ; then
820
	if test -x /usr/sbin/sysversion ; then
776
	    echo "$UNAME_MACHINE"-unknown-osf1mk
821
	    GUESS=$UNAME_MACHINE-unknown-osf1mk
777
	else
822
	else
778
	    echo "$UNAME_MACHINE"-unknown-osf1
823
	    GUESS=$UNAME_MACHINE-unknown-osf1
779
	fi
824
	fi
780
	exit ;;
825
	;;
781
    parisc*:Lites*:*:*)
826
    parisc*:Lites*:*:*)
782
	echo hppa1.1-hp-lites
827
	GUESS=hppa1.1-hp-lites
783
	exit ;;
828
	;;
784
    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
829
    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
785
	echo c1-convex-bsd
830
	GUESS=c1-convex-bsd
786
	exit ;;
831
	;;
787
    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
832
    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
788
	if getsysinfo -f scalar_acc
833
	if getsysinfo -f scalar_acc
789
	then echo c32-convex-bsd
834
	then echo c32-convex-bsd
Lines 791-807 Link Here
791
	fi
836
	fi
792
	exit ;;
837
	exit ;;
793
    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
838
    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
794
	echo c34-convex-bsd
839
	GUESS=c34-convex-bsd
795
	exit ;;
840
	;;
796
    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
841
    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
797
	echo c38-convex-bsd
842
	GUESS=c38-convex-bsd
798
	exit ;;
843
	;;
799
    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
844
    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
800
	echo c4-convex-bsd
845
	GUESS=c4-convex-bsd
801
	exit ;;
846
	;;
802
    CRAY*Y-MP:*:*:*)
847
    CRAY*Y-MP:*:*:*)
803
	echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
848
	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
804
	exit ;;
849
	GUESS=ymp-cray-unicos$CRAY_REL
850
	;;
805
    CRAY*[A-Z]90:*:*:*)
851
    CRAY*[A-Z]90:*:*:*)
806
	echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
852
	echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
807
	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
853
	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
Lines 809-911 Link Here
809
	      -e 's/\.[^.]*$/.X/'
855
	      -e 's/\.[^.]*$/.X/'
810
	exit ;;
856
	exit ;;
811
    CRAY*TS:*:*:*)
857
    CRAY*TS:*:*:*)
812
	echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
858
	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
813
	exit ;;
859
	GUESS=t90-cray-unicos$CRAY_REL
860
	;;
814
    CRAY*T3E:*:*:*)
861
    CRAY*T3E:*:*:*)
815
	echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
862
	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
816
	exit ;;
863
	GUESS=alphaev5-cray-unicosmk$CRAY_REL
864
	;;
817
    CRAY*SV1:*:*:*)
865
    CRAY*SV1:*:*:*)
818
	echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
866
	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
819
	exit ;;
867
	GUESS=sv1-cray-unicos$CRAY_REL
868
	;;
820
    *:UNICOS/mp:*:*)
869
    *:UNICOS/mp:*:*)
821
	echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
870
	CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
822
	exit ;;
871
	GUESS=craynv-cray-unicosmp$CRAY_REL
872
	;;
823
    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
873
    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
824
	FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
874
	FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
825
	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
875
	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
826
	FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
876
	FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
827
	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
877
	GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
828
	exit ;;
878
	;;
829
    5000:UNIX_System_V:4.*:*)
879
    5000:UNIX_System_V:4.*:*)
830
	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
880
	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
831
	FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
881
	FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
832
	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
882
	GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
833
	exit ;;
883
	;;
834
    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
884
    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
835
	echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
885
	GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE
836
	exit ;;
886
	;;
837
    sparc*:BSD/OS:*:*)
887
    sparc*:BSD/OS:*:*)
838
	echo sparc-unknown-bsdi"$UNAME_RELEASE"
888
	GUESS=sparc-unknown-bsdi$UNAME_RELEASE
839
	exit ;;
889
	;;
840
    *:BSD/OS:*:*)
890
    *:BSD/OS:*:*)
841
	echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
891
	GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE
842
	exit ;;
892
	;;
893
    arm:FreeBSD:*:*)
894
	UNAME_PROCESSOR=`uname -p`
895
	set_cc_for_build
896
	if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
897
	    | grep -q __ARM_PCS_VFP
898
	then
899
	    FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
900
	    GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi
901
	else
902
	    FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
903
	    GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf
904
	fi
905
	;;
843
    *:FreeBSD:*:*)
906
    *:FreeBSD:*:*)
844
	UNAME_PROCESSOR=`/usr/bin/uname -p`
907
	UNAME_PROCESSOR=`/usr/bin/uname -p`
845
	case "$UNAME_PROCESSOR" in
908
	case $UNAME_PROCESSOR in
846
	    amd64)
909
	    amd64)
847
		UNAME_PROCESSOR=x86_64 ;;
910
		UNAME_PROCESSOR=x86_64 ;;
848
	    i386)
911
	    i386)
849
		UNAME_PROCESSOR=i586 ;;
912
		UNAME_PROCESSOR=i586 ;;
850
	esac
913
	esac
851
	echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
914
	FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
852
	exit ;;
915
	GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL
916
	;;
853
    i*:CYGWIN*:*)
917
    i*:CYGWIN*:*)
854
	echo "$UNAME_MACHINE"-pc-cygwin
918
	GUESS=$UNAME_MACHINE-pc-cygwin
855
	exit ;;
919
	;;
856
    *:MINGW64*:*)
920
    *:MINGW64*:*)
857
	echo "$UNAME_MACHINE"-pc-mingw64
921
	GUESS=$UNAME_MACHINE-pc-mingw64
858
	exit ;;
922
	;;
859
    *:MINGW*:*)
923
    *:MINGW*:*)
860
	echo "$UNAME_MACHINE"-pc-mingw32
924
	GUESS=$UNAME_MACHINE-pc-mingw32
861
	exit ;;
925
	;;
862
    *:MSYS*:*)
926
    *:MSYS*:*)
863
	echo "$UNAME_MACHINE"-pc-msys
927
	GUESS=$UNAME_MACHINE-pc-msys
864
	exit ;;
928
	;;
865
    i*:PW*:*)
929
    i*:PW*:*)
866
	echo "$UNAME_MACHINE"-pc-pw32
930
	GUESS=$UNAME_MACHINE-pc-pw32
867
	exit ;;
931
	;;
932
    *:SerenityOS:*:*)
933
        GUESS=$UNAME_MACHINE-pc-serenity
934
        ;;
868
    *:Interix*:*)
935
    *:Interix*:*)
869
	case "$UNAME_MACHINE" in
936
	case $UNAME_MACHINE in
870
	    x86)
937
	    x86)
871
		echo i586-pc-interix"$UNAME_RELEASE"
938
		GUESS=i586-pc-interix$UNAME_RELEASE
872
		exit ;;
939
		;;
873
	    authenticamd | genuineintel | EM64T)
940
	    authenticamd | genuineintel | EM64T)
874
		echo x86_64-unknown-interix"$UNAME_RELEASE"
941
		GUESS=x86_64-unknown-interix$UNAME_RELEASE
875
		exit ;;
942
		;;
876
	    IA64)
943
	    IA64)
877
		echo ia64-unknown-interix"$UNAME_RELEASE"
944
		GUESS=ia64-unknown-interix$UNAME_RELEASE
878
		exit ;;
945
		;;
879
	esac ;;
946
	esac ;;
880
    i*:UWIN*:*)
947
    i*:UWIN*:*)
881
	echo "$UNAME_MACHINE"-pc-uwin
948
	GUESS=$UNAME_MACHINE-pc-uwin
882
	exit ;;
949
	;;
883
    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
950
    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
884
	echo x86_64-unknown-cygwin
951
	GUESS=x86_64-pc-cygwin
885
	exit ;;
952
	;;
886
    prep*:SunOS:5.*:*)
953
    prep*:SunOS:5.*:*)
887
	echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
954
	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
888
	exit ;;
955
	GUESS=powerpcle-unknown-solaris2$SUN_REL
956
	;;
889
    *:GNU:*:*)
957
    *:GNU:*:*)
890
	# the GNU system
958
	# the GNU system
891
	echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
959
	GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'`
892
	exit ;;
960
	GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'`
961
	GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL
962
	;;
893
    *:GNU/*:*:*)
963
    *:GNU/*:*:*)
894
	# other systems with GNU libc and userland
964
	# other systems with GNU libc and userland
895
	echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
965
	GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"`
896
	exit ;;
966
	GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
897
    i*86:Minix:*:*)
967
	GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
898
	echo "$UNAME_MACHINE"-pc-minix
968
	;;
899
	exit ;;
969
    *:Minix:*:*)
970
	GUESS=$UNAME_MACHINE-unknown-minix
971
	;;
900
    aarch64:Linux:*:*)
972
    aarch64:Linux:*:*)
901
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
973
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
902
	exit ;;
974
	;;
903
    aarch64_be:Linux:*:*)
975
    aarch64_be:Linux:*:*)
904
	UNAME_MACHINE=aarch64_be
976
	UNAME_MACHINE=aarch64_be
905
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
977
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
906
	exit ;;
978
	;;
907
    alpha:Linux:*:*)
979
    alpha:Linux:*:*)
908
	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
980
	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
909
	  EV5)   UNAME_MACHINE=alphaev5 ;;
981
	  EV5)   UNAME_MACHINE=alphaev5 ;;
910
	  EV56)  UNAME_MACHINE=alphaev56 ;;
982
	  EV56)  UNAME_MACHINE=alphaev56 ;;
911
	  PCA56) UNAME_MACHINE=alphapca56 ;;
983
	  PCA56) UNAME_MACHINE=alphapca56 ;;
Lines 916-1098 Link Here
916
	esac
988
	esac
917
	objdump --private-headers /bin/sh | grep -q ld.so.1
989
	objdump --private-headers /bin/sh | grep -q ld.so.1
918
	if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
990
	if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
919
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
991
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
920
	exit ;;
992
	;;
921
    arc:Linux:*:* | arceb:Linux:*:*)
993
    arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*)
922
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
994
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
923
	exit ;;
995
	;;
924
    arm*:Linux:*:*)
996
    arm*:Linux:*:*)
925
	eval "$set_cc_for_build"
997
	set_cc_for_build
926
	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
998
	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
927
	    | grep -q __ARM_EABI__
999
	    | grep -q __ARM_EABI__
928
	then
1000
	then
929
	    echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1001
	    GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
930
	else
1002
	else
931
	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
1003
	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
932
		| grep -q __ARM_PCS_VFP
1004
		| grep -q __ARM_PCS_VFP
933
	    then
1005
	    then
934
		echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
1006
		GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi
935
	    else
1007
	    else
936
		echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
1008
		GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf
937
	    fi
1009
	    fi
938
	fi
1010
	fi
939
	exit ;;
1011
	;;
940
    avr32*:Linux:*:*)
1012
    avr32*:Linux:*:*)
941
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1013
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
942
	exit ;;
1014
	;;
943
    cris:Linux:*:*)
1015
    cris:Linux:*:*)
944
	echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
1016
	GUESS=$UNAME_MACHINE-axis-linux-$LIBC
945
	exit ;;
1017
	;;
946
    crisv32:Linux:*:*)
1018
    crisv32:Linux:*:*)
947
	echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
1019
	GUESS=$UNAME_MACHINE-axis-linux-$LIBC
948
	exit ;;
1020
	;;
949
    e2k:Linux:*:*)
1021
    e2k:Linux:*:*)
950
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1022
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
951
	exit ;;
1023
	;;
952
    frv:Linux:*:*)
1024
    frv:Linux:*:*)
953
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1025
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
954
	exit ;;
1026
	;;
955
    hexagon:Linux:*:*)
1027
    hexagon:Linux:*:*)
956
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1028
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
957
	exit ;;
1029
	;;
958
    i*86:Linux:*:*)
1030
    i*86:Linux:*:*)
959
	echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
1031
	GUESS=$UNAME_MACHINE-pc-linux-$LIBC
960
	exit ;;
1032
	;;
961
    ia64:Linux:*:*)
1033
    ia64:Linux:*:*)
962
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1034
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
963
	exit ;;
1035
	;;
964
    k1om:Linux:*:*)
1036
    k1om:Linux:*:*)
965
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1037
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
966
	exit ;;
1038
	;;
1039
    loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*)
1040
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1041
	;;
967
    m32r*:Linux:*:*)
1042
    m32r*:Linux:*:*)
968
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1043
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
969
	exit ;;
1044
	;;
970
    m68*:Linux:*:*)
1045
    m68*:Linux:*:*)
971
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1046
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
972
	exit ;;
1047
	;;
973
    mips:Linux:*:* | mips64:Linux:*:*)
1048
    mips:Linux:*:* | mips64:Linux:*:*)
974
	eval "$set_cc_for_build"
1049
	set_cc_for_build
1050
	IS_GLIBC=0
1051
	test x"${LIBC}" = xgnu && IS_GLIBC=1
975
	sed 's/^	//' << EOF > "$dummy.c"
1052
	sed 's/^	//' << EOF > "$dummy.c"
976
	#undef CPU
1053
	#undef CPU
977
	#undef ${UNAME_MACHINE}
1054
	#undef mips
978
	#undef ${UNAME_MACHINE}el
1055
	#undef mipsel
1056
	#undef mips64
1057
	#undef mips64el
1058
	#if ${IS_GLIBC} && defined(_ABI64)
1059
	LIBCABI=gnuabi64
1060
	#else
1061
	#if ${IS_GLIBC} && defined(_ABIN32)
1062
	LIBCABI=gnuabin32
1063
	#else
1064
	LIBCABI=${LIBC}
1065
	#endif
1066
	#endif
1067
1068
	#if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
1069
	CPU=mipsisa64r6
1070
	#else
1071
	#if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
1072
	CPU=mipsisa32r6
1073
	#else
1074
	#if defined(__mips64)
1075
	CPU=mips64
1076
	#else
1077
	CPU=mips
1078
	#endif
1079
	#endif
1080
	#endif
1081
979
	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
1082
	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
980
	CPU=${UNAME_MACHINE}el
1083
	MIPS_ENDIAN=el
981
	#else
1084
	#else
982
	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
1085
	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
983
	CPU=${UNAME_MACHINE}
1086
	MIPS_ENDIAN=
984
	#else
1087
	#else
985
	CPU=
1088
	MIPS_ENDIAN=
986
	#endif
1089
	#endif
987
	#endif
1090
	#endif
988
EOF
1091
EOF
989
	eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`"
1092
	cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`
990
	test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; }
1093
	eval "$cc_set_vars"
1094
	test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
991
	;;
1095
	;;
992
    mips64el:Linux:*:*)
1096
    mips64el:Linux:*:*)
993
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1097
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
994
	exit ;;
1098
	;;
995
    openrisc*:Linux:*:*)
1099
    openrisc*:Linux:*:*)
996
	echo or1k-unknown-linux-"$LIBC"
1100
	GUESS=or1k-unknown-linux-$LIBC
997
	exit ;;
1101
	;;
998
    or32:Linux:*:* | or1k*:Linux:*:*)
1102
    or32:Linux:*:* | or1k*:Linux:*:*)
999
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1103
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1000
	exit ;;
1104
	;;
1001
    padre:Linux:*:*)
1105
    padre:Linux:*:*)
1002
	echo sparc-unknown-linux-"$LIBC"
1106
	GUESS=sparc-unknown-linux-$LIBC
1003
	exit ;;
1107
	;;
1004
    parisc64:Linux:*:* | hppa64:Linux:*:*)
1108
    parisc64:Linux:*:* | hppa64:Linux:*:*)
1005
	echo hppa64-unknown-linux-"$LIBC"
1109
	GUESS=hppa64-unknown-linux-$LIBC
1006
	exit ;;
1110
	;;
1007
    parisc:Linux:*:* | hppa:Linux:*:*)
1111
    parisc:Linux:*:* | hppa:Linux:*:*)
1008
	# Look for CPU level
1112
	# Look for CPU level
1009
	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
1113
	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
1010
	  PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
1114
	  PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;;
1011
	  PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
1115
	  PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;;
1012
	  *)    echo hppa-unknown-linux-"$LIBC" ;;
1116
	  *)    GUESS=hppa-unknown-linux-$LIBC ;;
1013
	esac
1117
	esac
1014
	exit ;;
1118
	;;
1015
    ppc64:Linux:*:*)
1119
    ppc64:Linux:*:*)
1016
	echo powerpc64-unknown-linux-"$LIBC"
1120
	GUESS=powerpc64-unknown-linux-$LIBC
1017
	exit ;;
1121
	;;
1018
    ppc:Linux:*:*)
1122
    ppc:Linux:*:*)
1019
	echo powerpc-unknown-linux-"$LIBC"
1123
	GUESS=powerpc-unknown-linux-$LIBC
1020
	exit ;;
1124
	;;
1021
    ppc64le:Linux:*:*)
1125
    ppc64le:Linux:*:*)
1022
	echo powerpc64le-unknown-linux-"$LIBC"
1126
	GUESS=powerpc64le-unknown-linux-$LIBC
1023
	exit ;;
1127
	;;
1024
    ppcle:Linux:*:*)
1128
    ppcle:Linux:*:*)
1025
	echo powerpcle-unknown-linux-"$LIBC"
1129
	GUESS=powerpcle-unknown-linux-$LIBC
1026
	exit ;;
1130
	;;
1027
    riscv32:Linux:*:* | riscv64:Linux:*:*)
1131
    riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*)
1028
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1132
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1029
	exit ;;
1133
	;;
1030
    s390:Linux:*:* | s390x:Linux:*:*)
1134
    s390:Linux:*:* | s390x:Linux:*:*)
1031
	echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
1135
	GUESS=$UNAME_MACHINE-ibm-linux-$LIBC
1032
	exit ;;
1136
	;;
1033
    sh64*:Linux:*:*)
1137
    sh64*:Linux:*:*)
1034
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1138
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1035
	exit ;;
1139
	;;
1036
    sh*:Linux:*:*)
1140
    sh*:Linux:*:*)
1037
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1141
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1038
	exit ;;
1142
	;;
1039
    sparc:Linux:*:* | sparc64:Linux:*:*)
1143
    sparc:Linux:*:* | sparc64:Linux:*:*)
1040
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1144
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1041
	exit ;;
1145
	;;
1042
    tile*:Linux:*:*)
1146
    tile*:Linux:*:*)
1043
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1147
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1044
	exit ;;
1148
	;;
1045
    vax:Linux:*:*)
1149
    vax:Linux:*:*)
1046
	echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
1150
	GUESS=$UNAME_MACHINE-dec-linux-$LIBC
1047
	exit ;;
1151
	;;
1048
    x86_64:Linux:*:*)
1152
    x86_64:Linux:*:*)
1049
	echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
1153
	set_cc_for_build
1050
	exit ;;
1154
	LIBCABI=$LIBC
1155
	if test "$CC_FOR_BUILD" != no_compiler_found; then
1156
	    if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
1157
		(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1158
		grep IS_X32 >/dev/null
1159
	    then
1160
		LIBCABI=${LIBC}x32
1161
	    fi
1162
	fi
1163
	GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI
1164
	;;
1051
    xtensa*:Linux:*:*)
1165
    xtensa*:Linux:*:*)
1052
	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1166
	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1053
	exit ;;
1167
	;;
1054
    i*86:DYNIX/ptx:4*:*)
1168
    i*86:DYNIX/ptx:4*:*)
1055
	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
1169
	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
1056
	# earlier versions are messed up and put the nodename in both
1170
	# earlier versions are messed up and put the nodename in both
1057
	# sysname and nodename.
1171
	# sysname and nodename.
1058
	echo i386-sequent-sysv4
1172
	GUESS=i386-sequent-sysv4
1059
	exit ;;
1173
	;;
1060
    i*86:UNIX_SV:4.2MP:2.*)
1174
    i*86:UNIX_SV:4.2MP:2.*)
1061
	# Unixware is an offshoot of SVR4, but it has its own version
1175
	# Unixware is an offshoot of SVR4, but it has its own version
1062
	# number series starting with 2...
1176
	# number series starting with 2...
1063
	# I am not positive that other SVR4 systems won't match this,
1177
	# I am not positive that other SVR4 systems won't match this,
1064
	# I just have to hope.  -- rms.
1178
	# I just have to hope.  -- rms.
1065
	# Use sysv4.2uw... so that sysv4* matches it.
1179
	# Use sysv4.2uw... so that sysv4* matches it.
1066
	echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
1180
	GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
1067
	exit ;;
1181
	;;
1068
    i*86:OS/2:*:*)
1182
    i*86:OS/2:*:*)
1069
	# If we were able to find `uname', then EMX Unix compatibility
1183
	# If we were able to find `uname', then EMX Unix compatibility
1070
	# is probably installed.
1184
	# is probably installed.
1071
	echo "$UNAME_MACHINE"-pc-os2-emx
1185
	GUESS=$UNAME_MACHINE-pc-os2-emx
1072
	exit ;;
1186
	;;
1073
    i*86:XTS-300:*:STOP)
1187
    i*86:XTS-300:*:STOP)
1074
	echo "$UNAME_MACHINE"-unknown-stop
1188
	GUESS=$UNAME_MACHINE-unknown-stop
1075
	exit ;;
1189
	;;
1076
    i*86:atheos:*:*)
1190
    i*86:atheos:*:*)
1077
	echo "$UNAME_MACHINE"-unknown-atheos
1191
	GUESS=$UNAME_MACHINE-unknown-atheos
1078
	exit ;;
1192
	;;
1079
    i*86:syllable:*:*)
1193
    i*86:syllable:*:*)
1080
	echo "$UNAME_MACHINE"-pc-syllable
1194
	GUESS=$UNAME_MACHINE-pc-syllable
1081
	exit ;;
1195
	;;
1082
    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
1196
    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
1083
	echo i386-unknown-lynxos"$UNAME_RELEASE"
1197
	GUESS=i386-unknown-lynxos$UNAME_RELEASE
1084
	exit ;;
1198
	;;
1085
    i*86:*DOS:*:*)
1199
    i*86:*DOS:*:*)
1086
	echo "$UNAME_MACHINE"-pc-msdosdjgpp
1200
	GUESS=$UNAME_MACHINE-pc-msdosdjgpp
1087
	exit ;;
1201
	;;
1088
    i*86:*:4.*:*)
1202
    i*86:*:4.*:*)
1089
	UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
1203
	UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
1090
	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1204
	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1091
		echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
1205
		GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL
1092
	else
1206
	else
1093
		echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
1207
		GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL
1094
	fi
1208
	fi
1095
	exit ;;
1209
	;;
1096
    i*86:*:5:[678]*)
1210
    i*86:*:5:[678]*)
1097
	# UnixWare 7.x, OpenUNIX and OpenServer 6.
1211
	# UnixWare 7.x, OpenUNIX and OpenServer 6.
1098
	case `/bin/uname -X | grep "^Machine"` in
1212
	case `/bin/uname -X | grep "^Machine"` in
Lines 1100-1111 Link Here
1100
	    *Pentium)	     UNAME_MACHINE=i586 ;;
1214
	    *Pentium)	     UNAME_MACHINE=i586 ;;
1101
	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1215
	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1102
	esac
1216
	esac
1103
	echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}"
1217
	GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1104
	exit ;;
1218
	;;
1105
    i*86:*:3.2:*)
1219
    i*86:*:3.2:*)
1106
	if test -f /usr/options/cb.name; then
1220
	if test -f /usr/options/cb.name; then
1107
		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1221
		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1108
		echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
1222
		GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL
1109
	elif /bin/uname -X 2>/dev/null >/dev/null ; then
1223
	elif /bin/uname -X 2>/dev/null >/dev/null ; then
1110
		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1224
		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1111
		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1225
		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
Lines 1115-1125 Link Here
1115
			&& UNAME_MACHINE=i686
1229
			&& UNAME_MACHINE=i686
1116
		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1230
		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1117
			&& UNAME_MACHINE=i686
1231
			&& UNAME_MACHINE=i686
1118
		echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
1232
		GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL
1119
	else
1233
	else
1120
		echo "$UNAME_MACHINE"-pc-sysv32
1234
		GUESS=$UNAME_MACHINE-pc-sysv32
1121
	fi
1235
	fi
1122
	exit ;;
1236
	;;
1123
    pc:*:*:*)
1237
    pc:*:*:*)
1124
	# Left here for compatibility:
1238
	# Left here for compatibility:
1125
	# uname -m prints for DJGPP always 'pc', but it prints nothing about
1239
	# uname -m prints for DJGPP always 'pc', but it prints nothing about
Lines 1127-1157 Link Here
1127
	# Note: whatever this is, it MUST be the same as what config.sub
1241
	# Note: whatever this is, it MUST be the same as what config.sub
1128
	# prints for the "djgpp" host, or else GDB configure will decide that
1242
	# prints for the "djgpp" host, or else GDB configure will decide that
1129
	# this is a cross-build.
1243
	# this is a cross-build.
1130
	echo i586-pc-msdosdjgpp
1244
	GUESS=i586-pc-msdosdjgpp
1131
	exit ;;
1245
	;;
1132
    Intel:Mach:3*:*)
1246
    Intel:Mach:3*:*)
1133
	echo i386-pc-mach3
1247
	GUESS=i386-pc-mach3
1134
	exit ;;
1248
	;;
1135
    paragon:*:*:*)
1249
    paragon:*:*:*)
1136
	echo i860-intel-osf1
1250
	GUESS=i860-intel-osf1
1137
	exit ;;
1251
	;;
1138
    i860:*:4.*:*) # i860-SVR4
1252
    i860:*:4.*:*) # i860-SVR4
1139
	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1253
	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1140
	  echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
1254
	  GUESS=i860-stardent-sysv$UNAME_RELEASE    # Stardent Vistra i860-SVR4
1141
	else # Add other i860-SVR4 vendors below as they are discovered.
1255
	else # Add other i860-SVR4 vendors below as they are discovered.
1142
	  echo i860-unknown-sysv"$UNAME_RELEASE"  # Unknown i860-SVR4
1256
	  GUESS=i860-unknown-sysv$UNAME_RELEASE     # Unknown i860-SVR4
1143
	fi
1257
	fi
1144
	exit ;;
1258
	;;
1145
    mini*:CTIX:SYS*5:*)
1259
    mini*:CTIX:SYS*5:*)
1146
	# "miniframe"
1260
	# "miniframe"
1147
	echo m68010-convergent-sysv
1261
	GUESS=m68010-convergent-sysv
1148
	exit ;;
1262
	;;
1149
    mc68k:UNIX:SYSTEM5:3.51m)
1263
    mc68k:UNIX:SYSTEM5:3.51m)
1150
	echo m68k-convergent-sysv
1264
	GUESS=m68k-convergent-sysv
1151
	exit ;;
1265
	;;
1152
    M680?0:D-NIX:5.3:*)
1266
    M680?0:D-NIX:5.3:*)
1153
	echo m68k-diab-dnix
1267
	GUESS=m68k-diab-dnix
1154
	exit ;;
1268
	;;
1155
    M68*:*:R3V[5678]*:*)
1269
    M68*:*:R3V[5678]*:*)
1156
	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
1270
	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
1157
    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
1271
    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
Lines 1176-1424 Link Here
1176
	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
1290
	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
1177
	    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
1291
	    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
1178
    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1292
    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1179
	echo m68k-unknown-lynxos"$UNAME_RELEASE"
1293
	GUESS=m68k-unknown-lynxos$UNAME_RELEASE
1180
	exit ;;
1294
	;;
1181
    mc68030:UNIX_System_V:4.*:*)
1295
    mc68030:UNIX_System_V:4.*:*)
1182
	echo m68k-atari-sysv4
1296
	GUESS=m68k-atari-sysv4
1183
	exit ;;
1297
	;;
1184
    TSUNAMI:LynxOS:2.*:*)
1298
    TSUNAMI:LynxOS:2.*:*)
1185
	echo sparc-unknown-lynxos"$UNAME_RELEASE"
1299
	GUESS=sparc-unknown-lynxos$UNAME_RELEASE
1186
	exit ;;
1300
	;;
1187
    rs6000:LynxOS:2.*:*)
1301
    rs6000:LynxOS:2.*:*)
1188
	echo rs6000-unknown-lynxos"$UNAME_RELEASE"
1302
	GUESS=rs6000-unknown-lynxos$UNAME_RELEASE
1189
	exit ;;
1303
	;;
1190
    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
1304
    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
1191
	echo powerpc-unknown-lynxos"$UNAME_RELEASE"
1305
	GUESS=powerpc-unknown-lynxos$UNAME_RELEASE
1192
	exit ;;
1306
	;;
1193
    SM[BE]S:UNIX_SV:*:*)
1307
    SM[BE]S:UNIX_SV:*:*)
1194
	echo mips-dde-sysv"$UNAME_RELEASE"
1308
	GUESS=mips-dde-sysv$UNAME_RELEASE
1195
	exit ;;
1309
	;;
1196
    RM*:ReliantUNIX-*:*:*)
1310
    RM*:ReliantUNIX-*:*:*)
1197
	echo mips-sni-sysv4
1311
	GUESS=mips-sni-sysv4
1198
	exit ;;
1312
	;;
1199
    RM*:SINIX-*:*:*)
1313
    RM*:SINIX-*:*:*)
1200
	echo mips-sni-sysv4
1314
	GUESS=mips-sni-sysv4
1201
	exit ;;
1315
	;;
1202
    *:SINIX-*:*:*)
1316
    *:SINIX-*:*:*)
1203
	if uname -p 2>/dev/null >/dev/null ; then
1317
	if uname -p 2>/dev/null >/dev/null ; then
1204
		UNAME_MACHINE=`(uname -p) 2>/dev/null`
1318
		UNAME_MACHINE=`(uname -p) 2>/dev/null`
1205
		echo "$UNAME_MACHINE"-sni-sysv4
1319
		GUESS=$UNAME_MACHINE-sni-sysv4
1206
	else
1320
	else
1207
		echo ns32k-sni-sysv
1321
		GUESS=ns32k-sni-sysv
1208
	fi
1322
	fi
1209
	exit ;;
1323
	;;
1210
    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1324
    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1211
			# says <Richard.M.Bartel@ccMail.Census.GOV>
1325
			# says <Richard.M.Bartel@ccMail.Census.GOV>
1212
	echo i586-unisys-sysv4
1326
	GUESS=i586-unisys-sysv4
1213
	exit ;;
1327
	;;
1214
    *:UNIX_System_V:4*:FTX*)
1328
    *:UNIX_System_V:4*:FTX*)
1215
	# From Gerald Hewes <hewes@openmarket.com>.
1329
	# From Gerald Hewes <hewes@openmarket.com>.
1216
	# How about differentiating between stratus architectures? -djm
1330
	# How about differentiating between stratus architectures? -djm
1217
	echo hppa1.1-stratus-sysv4
1331
	GUESS=hppa1.1-stratus-sysv4
1218
	exit ;;
1332
	;;
1219
    *:*:*:FTX*)
1333
    *:*:*:FTX*)
1220
	# From seanf@swdc.stratus.com.
1334
	# From seanf@swdc.stratus.com.
1221
	echo i860-stratus-sysv4
1335
	GUESS=i860-stratus-sysv4
1222
	exit ;;
1336
	;;
1223
    i*86:VOS:*:*)
1337
    i*86:VOS:*:*)
1224
	# From Paul.Green@stratus.com.
1338
	# From Paul.Green@stratus.com.
1225
	echo "$UNAME_MACHINE"-stratus-vos
1339
	GUESS=$UNAME_MACHINE-stratus-vos
1226
	exit ;;
1340
	;;
1227
    *:VOS:*:*)
1341
    *:VOS:*:*)
1228
	# From Paul.Green@stratus.com.
1342
	# From Paul.Green@stratus.com.
1229
	echo hppa1.1-stratus-vos
1343
	GUESS=hppa1.1-stratus-vos
1230
	exit ;;
1344
	;;
1231
    mc68*:A/UX:*:*)
1345
    mc68*:A/UX:*:*)
1232
	echo m68k-apple-aux"$UNAME_RELEASE"
1346
	GUESS=m68k-apple-aux$UNAME_RELEASE
1233
	exit ;;
1347
	;;
1234
    news*:NEWS-OS:6*:*)
1348
    news*:NEWS-OS:6*:*)
1235
	echo mips-sony-newsos6
1349
	GUESS=mips-sony-newsos6
1236
	exit ;;
1350
	;;
1237
    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1351
    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1238
	if [ -d /usr/nec ]; then
1352
	if test -d /usr/nec; then
1239
		echo mips-nec-sysv"$UNAME_RELEASE"
1353
		GUESS=mips-nec-sysv$UNAME_RELEASE
1240
	else
1354
	else
1241
		echo mips-unknown-sysv"$UNAME_RELEASE"
1355
		GUESS=mips-unknown-sysv$UNAME_RELEASE
1242
	fi
1356
	fi
1243
	exit ;;
1357
	;;
1244
    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
1358
    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
1245
	echo powerpc-be-beos
1359
	GUESS=powerpc-be-beos
1246
	exit ;;
1360
	;;
1247
    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
1361
    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
1248
	echo powerpc-apple-beos
1362
	GUESS=powerpc-apple-beos
1249
	exit ;;
1363
	;;
1250
    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
1364
    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
1251
	echo i586-pc-beos
1365
	GUESS=i586-pc-beos
1252
	exit ;;
1366
	;;
1253
    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
1367
    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
1254
	echo i586-pc-haiku
1368
	GUESS=i586-pc-haiku
1255
	exit ;;
1369
	;;
1256
    x86_64:Haiku:*:*)
1370
    x86_64:Haiku:*:*)
1257
	echo x86_64-unknown-haiku
1371
	GUESS=x86_64-unknown-haiku
1258
	exit ;;
1372
	;;
1259
    SX-4:SUPER-UX:*:*)
1373
    SX-4:SUPER-UX:*:*)
1260
	echo sx4-nec-superux"$UNAME_RELEASE"
1374
	GUESS=sx4-nec-superux$UNAME_RELEASE
1261
	exit ;;
1375
	;;
1262
    SX-5:SUPER-UX:*:*)
1376
    SX-5:SUPER-UX:*:*)
1263
	echo sx5-nec-superux"$UNAME_RELEASE"
1377
	GUESS=sx5-nec-superux$UNAME_RELEASE
1264
	exit ;;
1378
	;;
1265
    SX-6:SUPER-UX:*:*)
1379
    SX-6:SUPER-UX:*:*)
1266
	echo sx6-nec-superux"$UNAME_RELEASE"
1380
	GUESS=sx6-nec-superux$UNAME_RELEASE
1267
	exit ;;
1381
	;;
1268
    SX-7:SUPER-UX:*:*)
1382
    SX-7:SUPER-UX:*:*)
1269
	echo sx7-nec-superux"$UNAME_RELEASE"
1383
	GUESS=sx7-nec-superux$UNAME_RELEASE
1270
	exit ;;
1384
	;;
1271
    SX-8:SUPER-UX:*:*)
1385
    SX-8:SUPER-UX:*:*)
1272
	echo sx8-nec-superux"$UNAME_RELEASE"
1386
	GUESS=sx8-nec-superux$UNAME_RELEASE
1273
	exit ;;
1387
	;;
1274
    SX-8R:SUPER-UX:*:*)
1388
    SX-8R:SUPER-UX:*:*)
1275
	echo sx8r-nec-superux"$UNAME_RELEASE"
1389
	GUESS=sx8r-nec-superux$UNAME_RELEASE
1276
	exit ;;
1390
	;;
1277
    SX-ACE:SUPER-UX:*:*)
1391
    SX-ACE:SUPER-UX:*:*)
1278
	echo sxace-nec-superux"$UNAME_RELEASE"
1392
	GUESS=sxace-nec-superux$UNAME_RELEASE
1279
	exit ;;
1393
	;;
1280
    Power*:Rhapsody:*:*)
1394
    Power*:Rhapsody:*:*)
1281
	echo powerpc-apple-rhapsody"$UNAME_RELEASE"
1395
	GUESS=powerpc-apple-rhapsody$UNAME_RELEASE
1282
	exit ;;
1396
	;;
1283
    *:Rhapsody:*:*)
1397
    *:Rhapsody:*:*)
1284
	echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
1398
	GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE
1285
	exit ;;
1399
	;;
1400
    arm64:Darwin:*:*)
1401
	GUESS=aarch64-apple-darwin$UNAME_RELEASE
1402
	;;
1286
    *:Darwin:*:*)
1403
    *:Darwin:*:*)
1287
	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1404
	UNAME_PROCESSOR=`uname -p`
1288
	eval "$set_cc_for_build"
1405
	case $UNAME_PROCESSOR in
1289
	if test "$UNAME_PROCESSOR" = unknown ; then
1406
	    unknown) UNAME_PROCESSOR=powerpc ;;
1290
	    UNAME_PROCESSOR=powerpc
1407
	esac
1408
	if command -v xcode-select > /dev/null 2> /dev/null && \
1409
		! xcode-select --print-path > /dev/null 2> /dev/null ; then
1410
	    # Avoid executing cc if there is no toolchain installed as
1411
	    # cc will be a stub that puts up a graphical alert
1412
	    # prompting the user to install developer tools.
1413
	    CC_FOR_BUILD=no_compiler_found
1414
	else
1415
	    set_cc_for_build
1291
	fi
1416
	fi
1292
	if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then
1417
	if test "$CC_FOR_BUILD" != no_compiler_found; then
1293
	    if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
1418
	    if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1294
		if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1419
		   (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1295
		       (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1420
		   grep IS_64BIT_ARCH >/dev/null
1296
		       grep IS_64BIT_ARCH >/dev/null
1421
	    then
1297
		then
1422
		case $UNAME_PROCESSOR in
1298
		    case $UNAME_PROCESSOR in
1423
		    i386) UNAME_PROCESSOR=x86_64 ;;
1299
			i386) UNAME_PROCESSOR=x86_64 ;;
1424
		    powerpc) UNAME_PROCESSOR=powerpc64 ;;
1300
			powerpc) UNAME_PROCESSOR=powerpc64 ;;
1425
		esac
1301
		    esac
1302
		fi
1303
		# On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
1304
		if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
1305
		       (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1306
		       grep IS_PPC >/dev/null
1307
		then
1308
		    UNAME_PROCESSOR=powerpc
1309
		fi
1310
	    fi
1426
	    fi
1427
	    # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
1428
	    if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
1429
		   (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1430
		   grep IS_PPC >/dev/null
1431
	    then
1432
		UNAME_PROCESSOR=powerpc
1433
	    fi
1311
	elif test "$UNAME_PROCESSOR" = i386 ; then
1434
	elif test "$UNAME_PROCESSOR" = i386 ; then
1312
	    # Avoid executing cc on OS X 10.9, as it ships with a stub
1435
	    # uname -m returns i386 or x86_64
1313
	    # that puts up a graphical alert prompting to install
1436
	    UNAME_PROCESSOR=$UNAME_MACHINE
1314
	    # developer tools.  Any system running Mac OS X 10.7 or
1315
	    # later (Darwin 11 and later) is required to have a 64-bit
1316
	    # processor. This is not true of the ARM version of Darwin
1317
	    # that Apple uses in portable devices.
1318
	    UNAME_PROCESSOR=x86_64
1319
	fi
1437
	fi
1320
	echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
1438
	GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE
1321
	exit ;;
1439
	;;
1322
    *:procnto*:*:* | *:QNX:[0123456789]*:*)
1440
    *:procnto*:*:* | *:QNX:[0123456789]*:*)
1323
	UNAME_PROCESSOR=`uname -p`
1441
	UNAME_PROCESSOR=`uname -p`
1324
	if test "$UNAME_PROCESSOR" = x86; then
1442
	if test "$UNAME_PROCESSOR" = x86; then
1325
		UNAME_PROCESSOR=i386
1443
		UNAME_PROCESSOR=i386
1326
		UNAME_MACHINE=pc
1444
		UNAME_MACHINE=pc
1327
	fi
1445
	fi
1328
	echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
1446
	GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE
1329
	exit ;;
1447
	;;
1330
    *:QNX:*:4*)
1448
    *:QNX:*:4*)
1331
	echo i386-pc-qnx
1449
	GUESS=i386-pc-qnx
1332
	exit ;;
1450
	;;
1333
    NEO-*:NONSTOP_KERNEL:*:*)
1451
    NEO-*:NONSTOP_KERNEL:*:*)
1334
	echo neo-tandem-nsk"$UNAME_RELEASE"
1452
	GUESS=neo-tandem-nsk$UNAME_RELEASE
1335
	exit ;;
1453
	;;
1336
    NSE-*:NONSTOP_KERNEL:*:*)
1454
    NSE-*:NONSTOP_KERNEL:*:*)
1337
	echo nse-tandem-nsk"$UNAME_RELEASE"
1455
	GUESS=nse-tandem-nsk$UNAME_RELEASE
1338
	exit ;;
1456
	;;
1339
    NSR-*:NONSTOP_KERNEL:*:*)
1457
    NSR-*:NONSTOP_KERNEL:*:*)
1340
	echo nsr-tandem-nsk"$UNAME_RELEASE"
1458
	GUESS=nsr-tandem-nsk$UNAME_RELEASE
1341
	exit ;;
1459
	;;
1342
    NSV-*:NONSTOP_KERNEL:*:*)
1460
    NSV-*:NONSTOP_KERNEL:*:*)
1343
	echo nsv-tandem-nsk"$UNAME_RELEASE"
1461
	GUESS=nsv-tandem-nsk$UNAME_RELEASE
1344
	exit ;;
1462
	;;
1345
    NSX-*:NONSTOP_KERNEL:*:*)
1463
    NSX-*:NONSTOP_KERNEL:*:*)
1346
	echo nsx-tandem-nsk"$UNAME_RELEASE"
1464
	GUESS=nsx-tandem-nsk$UNAME_RELEASE
1347
	exit ;;
1465
	;;
1348
    *:NonStop-UX:*:*)
1466
    *:NonStop-UX:*:*)
1349
	echo mips-compaq-nonstopux
1467
	GUESS=mips-compaq-nonstopux
1350
	exit ;;
1468
	;;
1351
    BS2000:POSIX*:*:*)
1469
    BS2000:POSIX*:*:*)
1352
	echo bs2000-siemens-sysv
1470
	GUESS=bs2000-siemens-sysv
1353
	exit ;;
1471
	;;
1354
    DS/*:UNIX_System_V:*:*)
1472
    DS/*:UNIX_System_V:*:*)
1355
	echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
1473
	GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE
1356
	exit ;;
1474
	;;
1357
    *:Plan9:*:*)
1475
    *:Plan9:*:*)
1358
	# "uname -m" is not consistent, so use $cputype instead. 386
1476
	# "uname -m" is not consistent, so use $cputype instead. 386
1359
	# is converted to i386 for consistency with other x86
1477
	# is converted to i386 for consistency with other x86
1360
	# operating systems.
1478
	# operating systems.
1361
	if test "$cputype" = 386; then
1479
	if test "${cputype-}" = 386; then
1362
	    UNAME_MACHINE=i386
1480
	    UNAME_MACHINE=i386
1363
	else
1481
	elif test "x${cputype-}" != x; then
1364
	    UNAME_MACHINE="$cputype"
1482
	    UNAME_MACHINE=$cputype
1365
	fi
1483
	fi
1366
	echo "$UNAME_MACHINE"-unknown-plan9
1484
	GUESS=$UNAME_MACHINE-unknown-plan9
1367
	exit ;;
1485
	;;
1368
    *:TOPS-10:*:*)
1486
    *:TOPS-10:*:*)
1369
	echo pdp10-unknown-tops10
1487
	GUESS=pdp10-unknown-tops10
1370
	exit ;;
1488
	;;
1371
    *:TENEX:*:*)
1489
    *:TENEX:*:*)
1372
	echo pdp10-unknown-tenex
1490
	GUESS=pdp10-unknown-tenex
1373
	exit ;;
1491
	;;
1374
    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1492
    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1375
	echo pdp10-dec-tops20
1493
	GUESS=pdp10-dec-tops20
1376
	exit ;;
1494
	;;
1377
    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1495
    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1378
	echo pdp10-xkl-tops20
1496
	GUESS=pdp10-xkl-tops20
1379
	exit ;;
1497
	;;
1380
    *:TOPS-20:*:*)
1498
    *:TOPS-20:*:*)
1381
	echo pdp10-unknown-tops20
1499
	GUESS=pdp10-unknown-tops20
1382
	exit ;;
1500
	;;
1383
    *:ITS:*:*)
1501
    *:ITS:*:*)
1384
	echo pdp10-unknown-its
1502
	GUESS=pdp10-unknown-its
1385
	exit ;;
1503
	;;
1386
    SEI:*:*:SEIUX)
1504
    SEI:*:*:SEIUX)
1387
	echo mips-sei-seiux"$UNAME_RELEASE"
1505
	GUESS=mips-sei-seiux$UNAME_RELEASE
1388
	exit ;;
1506
	;;
1389
    *:DragonFly:*:*)
1507
    *:DragonFly:*:*)
1390
	echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
1508
	DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
1391
	exit ;;
1509
	GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL
1510
	;;
1392
    *:*VMS:*:*)
1511
    *:*VMS:*:*)
1393
	UNAME_MACHINE=`(uname -p) 2>/dev/null`
1512
	UNAME_MACHINE=`(uname -p) 2>/dev/null`
1394
	case "$UNAME_MACHINE" in
1513
	case $UNAME_MACHINE in
1395
	    A*) echo alpha-dec-vms ; exit ;;
1514
	    A*) GUESS=alpha-dec-vms ;;
1396
	    I*) echo ia64-dec-vms ; exit ;;
1515
	    I*) GUESS=ia64-dec-vms ;;
1397
	    V*) echo vax-dec-vms ; exit ;;
1516
	    V*) GUESS=vax-dec-vms ;;
1398
	esac ;;
1517
	esac ;;
1399
    *:XENIX:*:SysV)
1518
    *:XENIX:*:SysV)
1400
	echo i386-pc-xenix
1519
	GUESS=i386-pc-xenix
1401
	exit ;;
1520
	;;
1402
    i*86:skyos:*:*)
1521
    i*86:skyos:*:*)
1403
	echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
1522
	SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`
1404
	exit ;;
1523
	GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL
1524
	;;
1405
    i*86:rdos:*:*)
1525
    i*86:rdos:*:*)
1406
	echo "$UNAME_MACHINE"-pc-rdos
1526
	GUESS=$UNAME_MACHINE-pc-rdos
1407
	exit ;;
1527
	;;
1408
    i*86:AROS:*:*)
1528
    i*86:Fiwix:*:*)
1409
	echo "$UNAME_MACHINE"-pc-aros
1529
	GUESS=$UNAME_MACHINE-pc-fiwix
1410
	exit ;;
1530
	;;
1531
    *:AROS:*:*)
1532
	GUESS=$UNAME_MACHINE-unknown-aros
1533
	;;
1411
    x86_64:VMkernel:*:*)
1534
    x86_64:VMkernel:*:*)
1412
	echo "$UNAME_MACHINE"-unknown-esx
1535
	GUESS=$UNAME_MACHINE-unknown-esx
1413
	exit ;;
1536
	;;
1414
    amd64:Isilon\ OneFS:*:*)
1537
    amd64:Isilon\ OneFS:*:*)
1415
	echo x86_64-unknown-onefs
1538
	GUESS=x86_64-unknown-onefs
1416
	exit ;;
1539
	;;
1540
    *:Unleashed:*:*)
1541
	GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
1542
	;;
1417
esac
1543
esac
1418
1544
1545
# Do we have a guess based on uname results?
1546
if test "x$GUESS" != x; then
1547
    echo "$GUESS"
1548
    exit
1549
fi
1550
1551
# No uname command or uname output not recognized.
1552
set_cc_for_build
1553
cat > "$dummy.c" <<EOF
1554
#ifdef _SEQUENT_
1555
#include <sys/types.h>
1556
#include <sys/utsname.h>
1557
#endif
1558
#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
1559
#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
1560
#include <signal.h>
1561
#if defined(_SIZE_T_) || defined(SIGLOST)
1562
#include <sys/utsname.h>
1563
#endif
1564
#endif
1565
#endif
1566
main ()
1567
{
1568
#if defined (sony)
1569
#if defined (MIPSEB)
1570
  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
1571
     I don't know....  */
1572
  printf ("mips-sony-bsd\n"); exit (0);
1573
#else
1574
#include <sys/param.h>
1575
  printf ("m68k-sony-newsos%s\n",
1576
#ifdef NEWSOS4
1577
  "4"
1578
#else
1579
  ""
1580
#endif
1581
  ); exit (0);
1582
#endif
1583
#endif
1584
1585
#if defined (NeXT)
1586
#if !defined (__ARCHITECTURE__)
1587
#define __ARCHITECTURE__ "m68k"
1588
#endif
1589
  int version;
1590
  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1591
  if (version < 4)
1592
    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1593
  else
1594
    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1595
  exit (0);
1596
#endif
1597
1598
#if defined (MULTIMAX) || defined (n16)
1599
#if defined (UMAXV)
1600
  printf ("ns32k-encore-sysv\n"); exit (0);
1601
#else
1602
#if defined (CMU)
1603
  printf ("ns32k-encore-mach\n"); exit (0);
1604
#else
1605
  printf ("ns32k-encore-bsd\n"); exit (0);
1606
#endif
1607
#endif
1608
#endif
1609
1610
#if defined (__386BSD__)
1611
  printf ("i386-pc-bsd\n"); exit (0);
1612
#endif
1613
1614
#if defined (sequent)
1615
#if defined (i386)
1616
  printf ("i386-sequent-dynix\n"); exit (0);
1617
#endif
1618
#if defined (ns32000)
1619
  printf ("ns32k-sequent-dynix\n"); exit (0);
1620
#endif
1621
#endif
1622
1623
#if defined (_SEQUENT_)
1624
  struct utsname un;
1625
1626
  uname(&un);
1627
  if (strncmp(un.version, "V2", 2) == 0) {
1628
    printf ("i386-sequent-ptx2\n"); exit (0);
1629
  }
1630
  if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1631
    printf ("i386-sequent-ptx1\n"); exit (0);
1632
  }
1633
  printf ("i386-sequent-ptx\n"); exit (0);
1634
#endif
1635
1636
#if defined (vax)
1637
#if !defined (ultrix)
1638
#include <sys/param.h>
1639
#if defined (BSD)
1640
#if BSD == 43
1641
  printf ("vax-dec-bsd4.3\n"); exit (0);
1642
#else
1643
#if BSD == 199006
1644
  printf ("vax-dec-bsd4.3reno\n"); exit (0);
1645
#else
1646
  printf ("vax-dec-bsd\n"); exit (0);
1647
#endif
1648
#endif
1649
#else
1650
  printf ("vax-dec-bsd\n"); exit (0);
1651
#endif
1652
#else
1653
#if defined(_SIZE_T_) || defined(SIGLOST)
1654
  struct utsname un;
1655
  uname (&un);
1656
  printf ("vax-dec-ultrix%s\n", un.release); exit (0);
1657
#else
1658
  printf ("vax-dec-ultrix\n"); exit (0);
1659
#endif
1660
#endif
1661
#endif
1662
#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
1663
#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
1664
#if defined(_SIZE_T_) || defined(SIGLOST)
1665
  struct utsname *un;
1666
  uname (&un);
1667
  printf ("mips-dec-ultrix%s\n", un.release); exit (0);
1668
#else
1669
  printf ("mips-dec-ultrix\n"); exit (0);
1670
#endif
1671
#endif
1672
#endif
1673
1674
#if defined (alliant) && defined (i860)
1675
  printf ("i860-alliant-bsd\n"); exit (0);
1676
#endif
1677
1678
  exit (1);
1679
}
1680
EOF
1681
1682
$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` &&
1683
	{ echo "$SYSTEM_NAME"; exit; }
1684
1685
# Apollos put the system type in the environment.
1686
test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
1687
1419
echo "$0: unable to guess system type" >&2
1688
echo "$0: unable to guess system type" >&2
1420
1689
1421
case "$UNAME_MACHINE:$UNAME_SYSTEM" in
1690
case $UNAME_MACHINE:$UNAME_SYSTEM in
1422
    mips:Linux | mips64:Linux)
1691
    mips:Linux | mips64:Linux)
1423
	# If we got here on MIPS GNU/Linux, output extra information.
1692
	# If we got here on MIPS GNU/Linux, output extra information.
1424
	cat >&2 <<EOF
1693
	cat >&2 <<EOF
Lines 1435-1444 Link Here
1435
operating system you are using. If your script is old, overwrite *all*
1704
operating system you are using. If your script is old, overwrite *all*
1436
copies of config.guess and config.sub with the latest versions from:
1705
copies of config.guess and config.sub with the latest versions from:
1437
1706
1438
  https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
1707
  https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
1439
and
1708
and
1440
  https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
1709
  https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
1710
EOF
1441
1711
1712
our_year=`echo $timestamp | sed 's,-.*,,'`
1713
thisyear=`date +%Y`
1714
# shellcheck disable=SC2003
1715
script_age=`expr "$thisyear" - "$our_year"`
1716
if test "$script_age" -lt 3 ; then
1717
   cat >&2 <<EOF
1718
1442
If $0 has already been updated, send the following data and any
1719
If $0 has already been updated, send the following data and any
1443
information you think might be pertinent to config-patches@gnu.org to
1720
information you think might be pertinent to config-patches@gnu.org to
1444
provide the necessary information to handle your system.
1721
provide the necessary information to handle your system.
Lines 1465-1470 Link Here
1465
UNAME_SYSTEM  = "$UNAME_SYSTEM"
1742
UNAME_SYSTEM  = "$UNAME_SYSTEM"
1466
UNAME_VERSION = "$UNAME_VERSION"
1743
UNAME_VERSION = "$UNAME_VERSION"
1467
EOF
1744
EOF
1745
fi
1468
1746
1469
exit 1
1747
exit 1
1470
1748
(-)xz-5.2.5/build-aux/config.rpath (-3 / +3 lines)
Lines 2-8 Link Here
2
# Output a system dependent set of variables, describing how to set the
2
# Output a system dependent set of variables, describing how to set the
3
# run time search path of shared libraries in an executable.
3
# run time search path of shared libraries in an executable.
4
#
4
#
5
#   Copyright 1996-2019 Free Software Foundation, Inc.
5
#   Copyright 1996-2022 Free Software Foundation, Inc.
6
#   Taken from GNU libtool, 2001
6
#   Taken from GNU libtool, 2001
7
#   Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
7
#   Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
8
#
8
#
Lines 371-377 Link Here
371
      hardcode_direct=yes
371
      hardcode_direct=yes
372
      hardcode_minus_L=yes
372
      hardcode_minus_L=yes
373
      ;;
373
      ;;
374
    freebsd* | dragonfly*)
374
    freebsd* | dragonfly* | midnightbsd*)
375
      hardcode_libdir_flag_spec='-R$libdir'
375
      hardcode_libdir_flag_spec='-R$libdir'
376
      hardcode_direct=yes
376
      hardcode_direct=yes
377
      ;;
377
      ;;
Lines 547-553 Link Here
547
  freebsd[23].*)
547
  freebsd[23].*)
548
    library_names_spec='$libname$shrext$versuffix'
548
    library_names_spec='$libname$shrext$versuffix'
549
    ;;
549
    ;;
550
  freebsd* | dragonfly*)
550
  freebsd* | dragonfly* | midnightbsd*)
551
    library_names_spec='$libname$shrext'
551
    library_names_spec='$libname$shrext'
552
    ;;
552
    ;;
553
  gnu*)
553
  gnu*)
(-)xz-5.2.5/build-aux/config.sub (-1258 / +1347 lines)
Lines 1-12 Link Here
1
#! /bin/sh
1
#! /bin/sh
2
# Configuration validation subroutine script.
2
# Configuration validation subroutine script.
3
#   Copyright 1992-2018 Free Software Foundation, Inc.
3
#   Copyright 1992-2021 Free Software Foundation, Inc.
4
4
5
timestamp='2018-03-08'
5
# shellcheck disable=SC2006,SC2268 # see below for rationale
6
6
7
timestamp='2021-12-25'
8
7
# This file is free software; you can redistribute it and/or modify it
9
# This file is free software; you can redistribute it and/or modify it
8
# under the terms of the GNU General Public License as published by
10
# under the terms of the GNU General Public License as published by
9
# the Free Software Foundation; either version 3 of the License, or
11
# the Free Software Foundation, either version 3 of the License, or
10
# (at your option) any later version.
12
# (at your option) any later version.
11
#
13
#
12
# This program is distributed in the hope that it will be useful, but
14
# This program is distributed in the hope that it will be useful, but
Lines 33-39 Link Here
33
# Otherwise, we print the canonical config type on stdout and succeed.
35
# Otherwise, we print the canonical config type on stdout and succeed.
34
36
35
# You can get the latest version of this script from:
37
# You can get the latest version of this script from:
36
# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
38
# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
37
39
38
# This file is supposed to be the same for all GNU packages
40
# This file is supposed to be the same for all GNU packages
39
# and recognize all the CPU types, system types and aliases
41
# and recognize all the CPU types, system types and aliases
Lines 50-55 Link Here
50
#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
52
#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
51
# It is wrong to echo any other type of specification.
53
# It is wrong to echo any other type of specification.
52
54
55
# The "shellcheck disable" line above the timestamp inhibits complaints
56
# about features and limitations of the classic Bourne shell that were
57
# superseded or lifted in POSIX.  However, this script identifies a wide
58
# variety of pre-POSIX systems that do not have POSIX shells at all, and
59
# even some reasonably current systems (Solaris 10 as case-in-point) still
60
# have a pre-POSIX /bin/sh.
61
53
me=`echo "$0" | sed -e 's,.*/,,'`
62
me=`echo "$0" | sed -e 's,.*/,,'`
54
63
55
usage="\
64
usage="\
Lines 67-73 Link Here
67
version="\
76
version="\
68
GNU config.sub ($timestamp)
77
GNU config.sub ($timestamp)
69
78
70
Copyright 1992-2018 Free Software Foundation, Inc.
79
Copyright 1992-2021 Free Software Foundation, Inc.
71
80
72
This is free software; see the source for copying conditions.  There is NO
81
This is free software; see the source for copying conditions.  There is NO
73
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
82
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
Lines 89-95 Link Here
89
    - )	# Use stdin as input.
98
    - )	# Use stdin as input.
90
       break ;;
99
       break ;;
91
    -* )
100
    -* )
92
       echo "$me: invalid option $1$help"
101
       echo "$me: invalid option $1$help" >&2
93
       exit 1 ;;
102
       exit 1 ;;
94
103
95
    *local*)
104
    *local*)
Lines 110-1332 Link Here
110
    exit 1;;
119
    exit 1;;
111
esac
120
esac
112
121
113
# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
122
# Split fields of configuration type
114
# Here we must recognize all the valid KERNEL-OS combinations.
123
# shellcheck disable=SC2162
115
maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
124
saved_IFS=$IFS
116
case $maybe_os in
125
IFS="-" read field1 field2 field3 field4 <<EOF
117
  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
126
$1
118
  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
127
EOF
119
  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
128
IFS=$saved_IFS
120
  kopensolaris*-gnu* | cloudabi*-eabi* | \
121
  storm-chaos* | os2-emx* | rtmk-nova*)
122
    os=-$maybe_os
123
    basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
124
    ;;
125
  android-linux)
126
    os=-linux-android
127
    basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
128
    ;;
129
  *)
130
    basic_machine=`echo "$1" | sed 's/-[^-]*$//'`
131
    if [ "$basic_machine" != "$1" ]
132
    then os=`echo "$1" | sed 's/.*-/-/'`
133
    else os=; fi
134
    ;;
135
esac
136
129
137
### Let's recognize common machines as not being operating systems so
130
# Separate into logical components for further validation
138
### that things like config.sub decstation-3100 work.  We also
131
case $1 in
139
### recognize some manufacturers as not being operating systems, so we
132
	*-*-*-*-*)
140
### can provide default operating systems below.
133
		echo Invalid configuration \`"$1"\': more than four components >&2
141
case $os in
134
		exit 1
142
	-sun*os*)
143
		# Prevent following clause from handling this invalid input.
144
		;;
135
		;;
145
	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
136
	*-*-*-*)
146
	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
137
		basic_machine=$field1-$field2
147
	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
138
		basic_os=$field3-$field4
148
	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
149
	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
150
	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
151
	-apple | -axis | -knuth | -cray | -microblaze*)
152
		os=
153
		basic_machine=$1
154
		;;
139
		;;
155
	-bluegene*)
140
	*-*-*)
156
		os=-cnk
141
		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
142
		# parts
143
		maybe_os=$field2-$field3
144
		case $maybe_os in
145
			nto-qnx* | linux-* | uclinux-uclibc* \
146
			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
147
			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
148
			| storm-chaos* | os2-emx* | rtmk-nova*)
149
				basic_machine=$field1
150
				basic_os=$maybe_os
151
				;;
152
			android-linux)
153
				basic_machine=$field1-unknown
154
				basic_os=linux-android
155
				;;
156
			*)
157
				basic_machine=$field1-$field2
158
				basic_os=$field3
159
				;;
160
		esac
157
		;;
161
		;;
158
	-sim | -cisco | -oki | -wec | -winbond)
162
	*-*)
159
		os=
163
		# A lone config we happen to match not fitting any pattern
160
		basic_machine=$1
164
		case $field1-$field2 in
165
			decstation-3100)
166
				basic_machine=mips-dec
167
				basic_os=
168
				;;
169
			*-*)
170
				# Second component is usually, but not always the OS
171
				case $field2 in
172
					# Prevent following clause from handling this valid os
173
					sun*os*)
174
						basic_machine=$field1
175
						basic_os=$field2
176
						;;
177
					zephyr*)
178
						basic_machine=$field1-unknown
179
						basic_os=$field2
180
						;;
181
					# Manufacturers
182
					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
183
					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
184
					| unicom* | ibm* | next | hp | isi* | apollo | altos* \
185
					| convergent* | ncr* | news | 32* | 3600* | 3100* \
186
					| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
187
					| ultra | tti* | harris | dolphin | highlevel | gould \
188
					| cbm | ns | masscomp | apple | axis | knuth | cray \
189
					| microblaze* | sim | cisco \
190
					| oki | wec | wrs | winbond)
191
						basic_machine=$field1-$field2
192
						basic_os=
193
						;;
194
					*)
195
						basic_machine=$field1
196
						basic_os=$field2
197
						;;
198
				esac
199
			;;
200
		esac
161
		;;
201
		;;
162
	-scout)
202
	*)
203
		# Convert single-component short-hands not valid as part of
204
		# multi-component configurations.
205
		case $field1 in
206
			386bsd)
207
				basic_machine=i386-pc
208
				basic_os=bsd
209
				;;
210
			a29khif)
211
				basic_machine=a29k-amd
212
				basic_os=udi
213
				;;
214
			adobe68k)
215
				basic_machine=m68010-adobe
216
				basic_os=scout
217
				;;
218
			alliant)
219
				basic_machine=fx80-alliant
220
				basic_os=
221
				;;
222
			altos | altos3068)
223
				basic_machine=m68k-altos
224
				basic_os=
225
				;;
226
			am29k)
227
				basic_machine=a29k-none
228
				basic_os=bsd
229
				;;
230
			amdahl)
231
				basic_machine=580-amdahl
232
				basic_os=sysv
233
				;;
234
			amiga)
235
				basic_machine=m68k-unknown
236
				basic_os=
237
				;;
238
			amigaos | amigados)
239
				basic_machine=m68k-unknown
240
				basic_os=amigaos
241
				;;
242
			amigaunix | amix)
243
				basic_machine=m68k-unknown
244
				basic_os=sysv4
245
				;;
246
			apollo68)
247
				basic_machine=m68k-apollo
248
				basic_os=sysv
249
				;;
250
			apollo68bsd)
251
				basic_machine=m68k-apollo
252
				basic_os=bsd
253
				;;
254
			aros)
255
				basic_machine=i386-pc
256
				basic_os=aros
257
				;;
258
			aux)
259
				basic_machine=m68k-apple
260
				basic_os=aux
261
				;;
262
			balance)
263
				basic_machine=ns32k-sequent
264
				basic_os=dynix
265
				;;
266
			blackfin)
267
				basic_machine=bfin-unknown
268
				basic_os=linux
269
				;;
270
			cegcc)
271
				basic_machine=arm-unknown
272
				basic_os=cegcc
273
				;;
274
			convex-c1)
275
				basic_machine=c1-convex
276
				basic_os=bsd
277
				;;
278
			convex-c2)
279
				basic_machine=c2-convex
280
				basic_os=bsd
281
				;;
282
			convex-c32)
283
				basic_machine=c32-convex
284
				basic_os=bsd
285
				;;
286
			convex-c34)
287
				basic_machine=c34-convex
288
				basic_os=bsd
289
				;;
290
			convex-c38)
291
				basic_machine=c38-convex
292
				basic_os=bsd
293
				;;
294
			cray)
295
				basic_machine=j90-cray
296
				basic_os=unicos
297
				;;
298
			crds | unos)
299
				basic_machine=m68k-crds
300
				basic_os=
301
				;;
302
			da30)
303
				basic_machine=m68k-da30
304
				basic_os=
305
				;;
306
			decstation | pmax | pmin | dec3100 | decstatn)
307
				basic_machine=mips-dec
308
				basic_os=
309
				;;
310
			delta88)
311
				basic_machine=m88k-motorola
312
				basic_os=sysv3
313
				;;
314
			dicos)
315
				basic_machine=i686-pc
316
				basic_os=dicos
317
				;;
318
			djgpp)
319
				basic_machine=i586-pc
320
				basic_os=msdosdjgpp
321
				;;
322
			ebmon29k)
323
				basic_machine=a29k-amd
324
				basic_os=ebmon
325
				;;
326
			es1800 | OSE68k | ose68k | ose | OSE)
327
				basic_machine=m68k-ericsson
328
				basic_os=ose
329
				;;
330
			gmicro)
331
				basic_machine=tron-gmicro
332
				basic_os=sysv
333
				;;
334
			go32)
335
				basic_machine=i386-pc
336
				basic_os=go32
337
				;;
338
			h8300hms)
339
				basic_machine=h8300-hitachi
340
				basic_os=hms
341
				;;
342
			h8300xray)
343
				basic_machine=h8300-hitachi
344
				basic_os=xray
345
				;;
346
			h8500hms)
347
				basic_machine=h8500-hitachi
348
				basic_os=hms
349
				;;
350
			harris)
351
				basic_machine=m88k-harris
352
				basic_os=sysv3
353
				;;
354
			hp300 | hp300hpux)
355
				basic_machine=m68k-hp
356
				basic_os=hpux
357
				;;
358
			hp300bsd)
359
				basic_machine=m68k-hp
360
				basic_os=bsd
361
				;;
362
			hppaosf)
363
				basic_machine=hppa1.1-hp
364
				basic_os=osf
365
				;;
366
			hppro)
367
				basic_machine=hppa1.1-hp
368
				basic_os=proelf
369
				;;
370
			i386mach)
371
				basic_machine=i386-mach
372
				basic_os=mach
373
				;;
374
			isi68 | isi)
375
				basic_machine=m68k-isi
376
				basic_os=sysv
377
				;;
378
			m68knommu)
379
				basic_machine=m68k-unknown
380
				basic_os=linux
381
				;;
382
			magnum | m3230)
383
				basic_machine=mips-mips
384
				basic_os=sysv
385
				;;
386
			merlin)
387
				basic_machine=ns32k-utek
388
				basic_os=sysv
389
				;;
390
			mingw64)
391
				basic_machine=x86_64-pc
392
				basic_os=mingw64
393
				;;
394
			mingw32)
395
				basic_machine=i686-pc
396
				basic_os=mingw32
397
				;;
398
			mingw32ce)
399
				basic_machine=arm-unknown
400
				basic_os=mingw32ce
401
				;;
402
			monitor)
403
				basic_machine=m68k-rom68k
404
				basic_os=coff
405
				;;
406
			morphos)
407
				basic_machine=powerpc-unknown
408
				basic_os=morphos
409
				;;
410
			moxiebox)
411
				basic_machine=moxie-unknown
412
				basic_os=moxiebox
413
				;;
414
			msdos)
415
				basic_machine=i386-pc
416
				basic_os=msdos
417
				;;
418
			msys)
419
				basic_machine=i686-pc
420
				basic_os=msys
421
				;;
422
			mvs)
423
				basic_machine=i370-ibm
424
				basic_os=mvs
425
				;;
426
			nacl)
427
				basic_machine=le32-unknown
428
				basic_os=nacl
429
				;;
430
			ncr3000)
431
				basic_machine=i486-ncr
432
				basic_os=sysv4
433
				;;
434
			netbsd386)
435
				basic_machine=i386-pc
436
				basic_os=netbsd
437
				;;
438
			netwinder)
439
				basic_machine=armv4l-rebel
440
				basic_os=linux
441
				;;
442
			news | news700 | news800 | news900)
443
				basic_machine=m68k-sony
444
				basic_os=newsos
445
				;;
446
			news1000)
447
				basic_machine=m68030-sony
448
				basic_os=newsos
449
				;;
450
			necv70)
451
				basic_machine=v70-nec
452
				basic_os=sysv
453
				;;
454
			nh3000)
455
				basic_machine=m68k-harris
456
				basic_os=cxux
457
				;;
458
			nh[45]000)
459
				basic_machine=m88k-harris
460
				basic_os=cxux
461
				;;
462
			nindy960)
463
				basic_machine=i960-intel
464
				basic_os=nindy
465
				;;
466
			mon960)
467
				basic_machine=i960-intel
468
				basic_os=mon960
469
				;;
470
			nonstopux)
471
				basic_machine=mips-compaq
472
				basic_os=nonstopux
473
				;;
474
			os400)
475
				basic_machine=powerpc-ibm
476
				basic_os=os400
477
				;;
478
			OSE68000 | ose68000)
479
				basic_machine=m68000-ericsson
480
				basic_os=ose
481
				;;
482
			os68k)
483
				basic_machine=m68k-none
484
				basic_os=os68k
485
				;;
486
			paragon)
487
				basic_machine=i860-intel
488
				basic_os=osf
489
				;;
490
			parisc)
491
				basic_machine=hppa-unknown
492
				basic_os=linux
493
				;;
494
			psp)
495
				basic_machine=mipsallegrexel-sony
496
				basic_os=psp
497
				;;
498
			pw32)
499
				basic_machine=i586-unknown
500
				basic_os=pw32
501
				;;
502
			rdos | rdos64)
503
				basic_machine=x86_64-pc
504
				basic_os=rdos
505
				;;
506
			rdos32)
507
				basic_machine=i386-pc
508
				basic_os=rdos
509
				;;
510
			rom68k)
511
				basic_machine=m68k-rom68k
512
				basic_os=coff
513
				;;
514
			sa29200)
515
				basic_machine=a29k-amd
516
				basic_os=udi
517
				;;
518
			sei)
519
				basic_machine=mips-sei
520
				basic_os=seiux
521
				;;
522
			sequent)
523
				basic_machine=i386-sequent
524
				basic_os=
525
				;;
526
			sps7)
527
				basic_machine=m68k-bull
528
				basic_os=sysv2
529
				;;
530
			st2000)
531
				basic_machine=m68k-tandem
532
				basic_os=
533
				;;
534
			stratus)
535
				basic_machine=i860-stratus
536
				basic_os=sysv4
537
				;;
538
			sun2)
539
				basic_machine=m68000-sun
540
				basic_os=
541
				;;
542
			sun2os3)
543
				basic_machine=m68000-sun
544
				basic_os=sunos3
545
				;;
546
			sun2os4)
547
				basic_machine=m68000-sun
548
				basic_os=sunos4
549
				;;
550
			sun3)
551
				basic_machine=m68k-sun
552
				basic_os=
553
				;;
554
			sun3os3)
555
				basic_machine=m68k-sun
556
				basic_os=sunos3
557
				;;
558
			sun3os4)
559
				basic_machine=m68k-sun
560
				basic_os=sunos4
561
				;;
562
			sun4)
563
				basic_machine=sparc-sun
564
				basic_os=
565
				;;
566
			sun4os3)
567
				basic_machine=sparc-sun
568
				basic_os=sunos3
569
				;;
570
			sun4os4)
571
				basic_machine=sparc-sun
572
				basic_os=sunos4
573
				;;
574
			sun4sol2)
575
				basic_machine=sparc-sun
576
				basic_os=solaris2
577
				;;
578
			sun386 | sun386i | roadrunner)
579
				basic_machine=i386-sun
580
				basic_os=
581
				;;
582
			sv1)
583
				basic_machine=sv1-cray
584
				basic_os=unicos
585
				;;
586
			symmetry)
587
				basic_machine=i386-sequent
588
				basic_os=dynix
589
				;;
590
			t3e)
591
				basic_machine=alphaev5-cray
592
				basic_os=unicos
593
				;;
594
			t90)
595
				basic_machine=t90-cray
596
				basic_os=unicos
597
				;;
598
			toad1)
599
				basic_machine=pdp10-xkl
600
				basic_os=tops20
601
				;;
602
			tpf)
603
				basic_machine=s390x-ibm
604
				basic_os=tpf
605
				;;
606
			udi29k)
607
				basic_machine=a29k-amd
608
				basic_os=udi
609
				;;
610
			ultra3)
611
				basic_machine=a29k-nyu
612
				basic_os=sym1
613
				;;
614
			v810 | necv810)
615
				basic_machine=v810-nec
616
				basic_os=none
617
				;;
618
			vaxv)
619
				basic_machine=vax-dec
620
				basic_os=sysv
621
				;;
622
			vms)
623
				basic_machine=vax-dec
624
				basic_os=vms
625
				;;
626
			vsta)
627
				basic_machine=i386-pc
628
				basic_os=vsta
629
				;;
630
			vxworks960)
631
				basic_machine=i960-wrs
632
				basic_os=vxworks
633
				;;
634
			vxworks68)
635
				basic_machine=m68k-wrs
636
				basic_os=vxworks
637
				;;
638
			vxworks29k)
639
				basic_machine=a29k-wrs
640
				basic_os=vxworks
641
				;;
642
			xbox)
643
				basic_machine=i686-pc
644
				basic_os=mingw32
645
				;;
646
			ymp)
647
				basic_machine=ymp-cray
648
				basic_os=unicos
649
				;;
650
			*)
651
				basic_machine=$1
652
				basic_os=
653
				;;
654
		esac
163
		;;
655
		;;
164
	-wrs)
165
		os=-vxworks
166
		basic_machine=$1
167
		;;
168
	-chorusos*)
169
		os=-chorusos
170
		basic_machine=$1
171
		;;
172
	-chorusrdb)
173
		os=-chorusrdb
174
		basic_machine=$1
175
		;;
176
	-hiux*)
177
		os=-hiuxwe2
178
		;;
179
	-sco6)
180
		os=-sco5v6
181
		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
182
		;;
183
	-sco5)
184
		os=-sco3.2v5
185
		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
186
		;;
187
	-sco4)
188
		os=-sco3.2v4
189
		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
190
		;;
191
	-sco3.2.[4-9]*)
192
		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
193
		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
194
		;;
195
	-sco3.2v[4-9]*)
196
		# Don't forget version if it is 3.2v4 or newer.
197
		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
198
		;;
199
	-sco5v6*)
200
		# Don't forget version if it is 3.2v4 or newer.
201
		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
202
		;;
203
	-sco*)
204
		os=-sco3.2v2
205
		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
206
		;;
207
	-udk*)
208
		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
209
		;;
210
	-isc)
211
		os=-isc2.2
212
		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
213
		;;
214
	-clix*)
215
		basic_machine=clipper-intergraph
216
		;;
217
	-isc*)
218
		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
219
		;;
220
	-lynx*178)
221
		os=-lynxos178
222
		;;
223
	-lynx*5)
224
		os=-lynxos5
225
		;;
226
	-lynx*)
227
		os=-lynxos
228
		;;
229
	-ptx*)
230
		basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'`
231
		;;
232
	-psos*)
233
		os=-psos
234
		;;
235
	-mint | -mint[0-9]*)
236
		basic_machine=m68k-atari
237
		os=-mint
238
		;;
239
esac
656
esac
240
657
241
# Decode aliases for certain CPU-COMPANY combinations.
658
# Decode 1-component or ad-hoc basic machines
242
case $basic_machine in
659
case $basic_machine in
243
	# Recognize the basic CPU types without company name.
660
	# Here we handle the default manufacturer of certain CPU types.  It is in
244
	# Some are omitted here because they have special meanings below.
661
	# some cases the only manufacturer, in others, it is the most popular.
245
	1750a | 580 \
662
	w89k)
246
	| a29k \
663
		cpu=hppa1.1
247
	| aarch64 | aarch64_be \
664
		vendor=winbond
248
	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
249
	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
250
	| am33_2.0 \
251
	| arc | arceb \
252
	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
253
	| avr | avr32 \
254
	| ba \
255
	| be32 | be64 \
256
	| bfin \
257
	| c4x | c8051 | clipper \
258
	| d10v | d30v | dlx | dsp16xx \
259
	| e2k | epiphany \
260
	| fido | fr30 | frv | ft32 \
261
	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
262
	| hexagon \
263
	| i370 | i860 | i960 | ia16 | ia64 \
264
	| ip2k | iq2000 \
265
	| k1om \
266
	| le32 | le64 \
267
	| lm32 \
268
	| m32c | m32r | m32rle | m68000 | m68k | m88k \
269
	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
270
	| mips | mipsbe | mipseb | mipsel | mipsle \
271
	| mips16 \
272
	| mips64 | mips64el \
273
	| mips64octeon | mips64octeonel \
274
	| mips64orion | mips64orionel \
275
	| mips64r5900 | mips64r5900el \
276
	| mips64vr | mips64vrel \
277
	| mips64vr4100 | mips64vr4100el \
278
	| mips64vr4300 | mips64vr4300el \
279
	| mips64vr5000 | mips64vr5000el \
280
	| mips64vr5900 | mips64vr5900el \
281
	| mipsisa32 | mipsisa32el \
282
	| mipsisa32r2 | mipsisa32r2el \
283
	| mipsisa32r6 | mipsisa32r6el \
284
	| mipsisa64 | mipsisa64el \
285
	| mipsisa64r2 | mipsisa64r2el \
286
	| mipsisa64r6 | mipsisa64r6el \
287
	| mipsisa64sb1 | mipsisa64sb1el \
288
	| mipsisa64sr71k | mipsisa64sr71kel \
289
	| mipsr5900 | mipsr5900el \
290
	| mipstx39 | mipstx39el \
291
	| mn10200 | mn10300 \
292
	| moxie \
293
	| mt \
294
	| msp430 \
295
	| nds32 | nds32le | nds32be \
296
	| nios | nios2 | nios2eb | nios2el \
297
	| ns16k | ns32k \
298
	| open8 | or1k | or1knd | or32 \
299
	| pdp10 | pj | pjl \
300
	| powerpc | powerpc64 | powerpc64le | powerpcle \
301
	| pru \
302
	| pyramid \
303
	| riscv32 | riscv64 \
304
	| rl78 | rx \
305
	| score \
306
	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
307
	| sh64 | sh64le \
308
	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
309
	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
310
	| spu \
311
	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
312
	| ubicom32 \
313
	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
314
	| visium \
315
	| wasm32 \
316
	| x86 | xc16x | xstormy16 | xtensa \
317
	| z8k | z80)
318
		basic_machine=$basic_machine-unknown
319
		;;
665
		;;
320
	c54x)
666
	op50n)
321
		basic_machine=tic54x-unknown
667
		cpu=hppa1.1
668
		vendor=oki
322
		;;
669
		;;
323
	c55x)
670
	op60c)
324
		basic_machine=tic55x-unknown
671
		cpu=hppa1.1
672
		vendor=oki
325
		;;
673
		;;
326
	c6x)
674
	ibm*)
327
		basic_machine=tic6x-unknown
675
		cpu=i370
676
		vendor=ibm
328
		;;
677
		;;
329
	leon|leon[3-9])
678
	orion105)
330
		basic_machine=sparc-$basic_machine
679
		cpu=clipper
680
		vendor=highlevel
331
		;;
681
		;;
332
	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
682
	mac | mpw | mac-mpw)
333
		basic_machine=$basic_machine-unknown
683
		cpu=m68k
334
		os=-none
684
		vendor=apple
335
		;;
685
		;;
336
	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
686
	pmac | pmac-mpw)
687
		cpu=powerpc
688
		vendor=apple
337
		;;
689
		;;
338
	ms1)
339
		basic_machine=mt-unknown
340
		;;
341
690
342
	strongarm | thumb | xscale)
343
		basic_machine=arm-unknown
344
		;;
345
	xgate)
346
		basic_machine=$basic_machine-unknown
347
		os=-none
348
		;;
349
	xscaleeb)
350
		basic_machine=armeb-unknown
351
		;;
352
353
	xscaleel)
354
		basic_machine=armel-unknown
355
		;;
356
357
	# We use `pc' rather than `unknown'
358
	# because (1) that's what they normally are, and
359
	# (2) the word "unknown" tends to confuse beginning users.
360
	i*86 | x86_64)
361
	  basic_machine=$basic_machine-pc
362
	  ;;
363
	# Object if more than one company name word.
364
	*-*-*)
365
		echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
366
		exit 1
367
		;;
368
	# Recognize the basic CPU types with company name.
369
	580-* \
370
	| a29k-* \
371
	| aarch64-* | aarch64_be-* \
372
	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
373
	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
374
	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
375
	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
376
	| avr-* | avr32-* \
377
	| ba-* \
378
	| be32-* | be64-* \
379
	| bfin-* | bs2000-* \
380
	| c[123]* | c30-* | [cjt]90-* | c4x-* \
381
	| c8051-* | clipper-* | craynv-* | cydra-* \
382
	| d10v-* | d30v-* | dlx-* \
383
	| e2k-* | elxsi-* \
384
	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
385
	| h8300-* | h8500-* \
386
	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
387
	| hexagon-* \
388
	| i*86-* | i860-* | i960-* | ia16-* | ia64-* \
389
	| ip2k-* | iq2000-* \
390
	| k1om-* \
391
	| le32-* | le64-* \
392
	| lm32-* \
393
	| m32c-* | m32r-* | m32rle-* \
394
	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
395
	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
396
	| microblaze-* | microblazeel-* \
397
	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
398
	| mips16-* \
399
	| mips64-* | mips64el-* \
400
	| mips64octeon-* | mips64octeonel-* \
401
	| mips64orion-* | mips64orionel-* \
402
	| mips64r5900-* | mips64r5900el-* \
403
	| mips64vr-* | mips64vrel-* \
404
	| mips64vr4100-* | mips64vr4100el-* \
405
	| mips64vr4300-* | mips64vr4300el-* \
406
	| mips64vr5000-* | mips64vr5000el-* \
407
	| mips64vr5900-* | mips64vr5900el-* \
408
	| mipsisa32-* | mipsisa32el-* \
409
	| mipsisa32r2-* | mipsisa32r2el-* \
410
	| mipsisa32r6-* | mipsisa32r6el-* \
411
	| mipsisa64-* | mipsisa64el-* \
412
	| mipsisa64r2-* | mipsisa64r2el-* \
413
	| mipsisa64r6-* | mipsisa64r6el-* \
414
	| mipsisa64sb1-* | mipsisa64sb1el-* \
415
	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
416
	| mipsr5900-* | mipsr5900el-* \
417
	| mipstx39-* | mipstx39el-* \
418
	| mmix-* \
419
	| mt-* \
420
	| msp430-* \
421
	| nds32-* | nds32le-* | nds32be-* \
422
	| nios-* | nios2-* | nios2eb-* | nios2el-* \
423
	| none-* | np1-* | ns16k-* | ns32k-* \
424
	| open8-* \
425
	| or1k*-* \
426
	| orion-* \
427
	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
428
	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
429
	| pru-* \
430
	| pyramid-* \
431
	| riscv32-* | riscv64-* \
432
	| rl78-* | romp-* | rs6000-* | rx-* \
433
	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
434
	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
435
	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
436
	| sparclite-* \
437
	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
438
	| tahoe-* \
439
	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
440
	| tile*-* \
441
	| tron-* \
442
	| ubicom32-* \
443
	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
444
	| vax-* \
445
	| visium-* \
446
	| wasm32-* \
447
	| we32k-* \
448
	| x86-* | x86_64-* | xc16x-* | xps100-* \
449
	| xstormy16-* | xtensa*-* \
450
	| ymp-* \
451
	| z8k-* | z80-*)
452
		;;
453
	# Recognize the basic CPU types without company name, with glob match.
454
	xtensa*)
455
		basic_machine=$basic_machine-unknown
456
		;;
457
	# Recognize the various machine names and aliases which stand
691
	# Recognize the various machine names and aliases which stand
458
	# for a CPU type and a company and sometimes even an OS.
692
	# for a CPU type and a company and sometimes even an OS.
459
	386bsd)
460
		basic_machine=i386-pc
461
		os=-bsd
462
		;;
463
	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
693
	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
464
		basic_machine=m68000-att
694
		cpu=m68000
695
		vendor=att
465
		;;
696
		;;
466
	3b*)
697
	3b*)
467
		basic_machine=we32k-att
698
		cpu=we32k
699
		vendor=att
468
		;;
700
		;;
469
	a29khif)
470
		basic_machine=a29k-amd
471
		os=-udi
472
		;;
473
	abacus)
474
		basic_machine=abacus-unknown
475
		;;
476
	adobe68k)
477
		basic_machine=m68010-adobe
478
		os=-scout
479
		;;
480
	alliant | fx80)
481
		basic_machine=fx80-alliant
482
		;;
483
	altos | altos3068)
484
		basic_machine=m68k-altos
485
		;;
486
	am29k)
487
		basic_machine=a29k-none
488
		os=-bsd
489
		;;
490
	amd64)
491
		basic_machine=x86_64-pc
492
		;;
493
	amd64-*)
494
		basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
495
		;;
496
	amdahl)
497
		basic_machine=580-amdahl
498
		os=-sysv
499
		;;
500
	amiga | amiga-*)
501
		basic_machine=m68k-unknown
502
		;;
503
	amigaos | amigados)
504
		basic_machine=m68k-unknown
505
		os=-amigaos
506
		;;
507
	amigaunix | amix)
508
		basic_machine=m68k-unknown
509
		os=-sysv4
510
		;;
511
	apollo68)
512
		basic_machine=m68k-apollo
513
		os=-sysv
514
		;;
515
	apollo68bsd)
516
		basic_machine=m68k-apollo
517
		os=-bsd
518
		;;
519
	aros)
520
		basic_machine=i386-pc
521
		os=-aros
522
		;;
523
	asmjs)
524
		basic_machine=asmjs-unknown
525
		;;
526
	aux)
527
		basic_machine=m68k-apple
528
		os=-aux
529
		;;
530
	balance)
531
		basic_machine=ns32k-sequent
532
		os=-dynix
533
		;;
534
	blackfin)
535
		basic_machine=bfin-unknown
536
		os=-linux
537
		;;
538
	blackfin-*)
539
		basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
540
		os=-linux
541
		;;
542
	bluegene*)
701
	bluegene*)
543
		basic_machine=powerpc-ibm
702
		cpu=powerpc
544
		os=-cnk
703
		vendor=ibm
704
		basic_os=cnk
545
		;;
705
		;;
546
	c54x-*)
547
		basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
548
		;;
549
	c55x-*)
550
		basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
551
		;;
552
	c6x-*)
553
		basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
554
		;;
555
	c90)
556
		basic_machine=c90-cray
557
		os=-unicos
558
		;;
559
	cegcc)
560
		basic_machine=arm-unknown
561
		os=-cegcc
562
		;;
563
	convex-c1)
564
		basic_machine=c1-convex
565
		os=-bsd
566
		;;
567
	convex-c2)
568
		basic_machine=c2-convex
569
		os=-bsd
570
		;;
571
	convex-c32)
572
		basic_machine=c32-convex
573
		os=-bsd
574
		;;
575
	convex-c34)
576
		basic_machine=c34-convex
577
		os=-bsd
578
		;;
579
	convex-c38)
580
		basic_machine=c38-convex
581
		os=-bsd
582
		;;
583
	cray | j90)
584
		basic_machine=j90-cray
585
		os=-unicos
586
		;;
587
	craynv)
588
		basic_machine=craynv-cray
589
		os=-unicosmp
590
		;;
591
	cr16 | cr16-*)
592
		basic_machine=cr16-unknown
593
		os=-elf
594
		;;
595
	crds | unos)
596
		basic_machine=m68k-crds
597
		;;
598
	crisv32 | crisv32-* | etraxfs*)
599
		basic_machine=crisv32-axis
600
		;;
601
	cris | cris-* | etrax*)
602
		basic_machine=cris-axis
603
		;;
604
	crx)
605
		basic_machine=crx-unknown
606
		os=-elf
607
		;;
608
	da30 | da30-*)
609
		basic_machine=m68k-da30
610
		;;
611
	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
612
		basic_machine=mips-dec
613
		;;
614
	decsystem10* | dec10*)
706
	decsystem10* | dec10*)
615
		basic_machine=pdp10-dec
707
		cpu=pdp10
616
		os=-tops10
708
		vendor=dec
709
		basic_os=tops10
617
		;;
710
		;;
618
	decsystem20* | dec20*)
711
	decsystem20* | dec20*)
619
		basic_machine=pdp10-dec
712
		cpu=pdp10
620
		os=-tops20
713
		vendor=dec
714
		basic_os=tops20
621
		;;
715
		;;
622
	delta | 3300 | motorola-3300 | motorola-delta \
716
	delta | 3300 | motorola-3300 | motorola-delta \
623
	      | 3300-motorola | delta-motorola)
717
	      | 3300-motorola | delta-motorola)
624
		basic_machine=m68k-motorola
718
		cpu=m68k
719
		vendor=motorola
625
		;;
720
		;;
626
	delta88)
627
		basic_machine=m88k-motorola
628
		os=-sysv3
629
		;;
630
	dicos)
631
		basic_machine=i686-pc
632
		os=-dicos
633
		;;
634
	djgpp)
635
		basic_machine=i586-pc
636
		os=-msdosdjgpp
637
		;;
638
	dpx20 | dpx20-*)
639
		basic_machine=rs6000-bull
640
		os=-bosx
641
		;;
642
	dpx2*)
721
	dpx2*)
643
		basic_machine=m68k-bull
722
		cpu=m68k
644
		os=-sysv3
723
		vendor=bull
724
		basic_os=sysv3
645
		;;
725
		;;
646
	e500v[12])
726
	encore | umax | mmax)
647
		basic_machine=powerpc-unknown
727
		cpu=ns32k
648
		os=$os"spe"
728
		vendor=encore
649
		;;
729
		;;
650
	e500v[12]-*)
651
		basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
652
		os=$os"spe"
653
		;;
654
	ebmon29k)
655
		basic_machine=a29k-amd
656
		os=-ebmon
657
		;;
658
	elxsi)
730
	elxsi)
659
		basic_machine=elxsi-elxsi
731
		cpu=elxsi
660
		os=-bsd
732
		vendor=elxsi
733
		basic_os=${basic_os:-bsd}
661
		;;
734
		;;
662
	encore | umax | mmax)
663
		basic_machine=ns32k-encore
664
		;;
665
	es1800 | OSE68k | ose68k | ose | OSE)
666
		basic_machine=m68k-ericsson
667
		os=-ose
668
		;;
669
	fx2800)
735
	fx2800)
670
		basic_machine=i860-alliant
736
		cpu=i860
737
		vendor=alliant
671
		;;
738
		;;
672
	genix)
739
	genix)
673
		basic_machine=ns32k-ns
740
		cpu=ns32k
741
		vendor=ns
674
		;;
742
		;;
675
	gmicro)
676
		basic_machine=tron-gmicro
677
		os=-sysv
678
		;;
679
	go32)
680
		basic_machine=i386-pc
681
		os=-go32
682
		;;
683
	h3050r* | hiux*)
743
	h3050r* | hiux*)
684
		basic_machine=hppa1.1-hitachi
744
		cpu=hppa1.1
685
		os=-hiuxwe2
745
		vendor=hitachi
746
		basic_os=hiuxwe2
686
		;;
747
		;;
687
	h8300hms)
688
		basic_machine=h8300-hitachi
689
		os=-hms
690
		;;
691
	h8300xray)
692
		basic_machine=h8300-hitachi
693
		os=-xray
694
		;;
695
	h8500hms)
696
		basic_machine=h8500-hitachi
697
		os=-hms
698
		;;
699
	harris)
700
		basic_machine=m88k-harris
701
		os=-sysv3
702
		;;
703
	hp300-*)
704
		basic_machine=m68k-hp
705
		;;
706
	hp300bsd)
707
		basic_machine=m68k-hp
708
		os=-bsd
709
		;;
710
	hp300hpux)
711
		basic_machine=m68k-hp
712
		os=-hpux
713
		;;
714
	hp3k9[0-9][0-9] | hp9[0-9][0-9])
748
	hp3k9[0-9][0-9] | hp9[0-9][0-9])
715
		basic_machine=hppa1.0-hp
749
		cpu=hppa1.0
750
		vendor=hp
716
		;;
751
		;;
717
	hp9k2[0-9][0-9] | hp9k31[0-9])
752
	hp9k2[0-9][0-9] | hp9k31[0-9])
718
		basic_machine=m68000-hp
753
		cpu=m68000
754
		vendor=hp
719
		;;
755
		;;
720
	hp9k3[2-9][0-9])
756
	hp9k3[2-9][0-9])
721
		basic_machine=m68k-hp
757
		cpu=m68k
758
		vendor=hp
722
		;;
759
		;;
723
	hp9k6[0-9][0-9] | hp6[0-9][0-9])
760
	hp9k6[0-9][0-9] | hp6[0-9][0-9])
724
		basic_machine=hppa1.0-hp
761
		cpu=hppa1.0
762
		vendor=hp
725
		;;
763
		;;
726
	hp9k7[0-79][0-9] | hp7[0-79][0-9])
764
	hp9k7[0-79][0-9] | hp7[0-79][0-9])
727
		basic_machine=hppa1.1-hp
765
		cpu=hppa1.1
766
		vendor=hp
728
		;;
767
		;;
729
	hp9k78[0-9] | hp78[0-9])
768
	hp9k78[0-9] | hp78[0-9])
730
		# FIXME: really hppa2.0-hp
769
		# FIXME: really hppa2.0-hp
731
		basic_machine=hppa1.1-hp
770
		cpu=hppa1.1
771
		vendor=hp
732
		;;
772
		;;
733
	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
773
	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
734
		# FIXME: really hppa2.0-hp
774
		# FIXME: really hppa2.0-hp
735
		basic_machine=hppa1.1-hp
775
		cpu=hppa1.1
776
		vendor=hp
736
		;;
777
		;;
737
	hp9k8[0-9][13679] | hp8[0-9][13679])
778
	hp9k8[0-9][13679] | hp8[0-9][13679])
738
		basic_machine=hppa1.1-hp
779
		cpu=hppa1.1
780
		vendor=hp
739
		;;
781
		;;
740
	hp9k8[0-9][0-9] | hp8[0-9][0-9])
782
	hp9k8[0-9][0-9] | hp8[0-9][0-9])
741
		basic_machine=hppa1.0-hp
783
		cpu=hppa1.0
784
		vendor=hp
742
		;;
785
		;;
743
	hppaosf)
744
		basic_machine=hppa1.1-hp
745
		os=-osf
746
		;;
747
	hppro)
748
		basic_machine=hppa1.1-hp
749
		os=-proelf
750
		;;
751
	i370-ibm* | ibm*)
752
		basic_machine=i370-ibm
753
		;;
754
	i*86v32)
786
	i*86v32)
755
		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
787
		cpu=`echo "$1" | sed -e 's/86.*/86/'`
756
		os=-sysv32
788
		vendor=pc
789
		basic_os=sysv32
757
		;;
790
		;;
758
	i*86v4*)
791
	i*86v4*)
759
		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
792
		cpu=`echo "$1" | sed -e 's/86.*/86/'`
760
		os=-sysv4
793
		vendor=pc
794
		basic_os=sysv4
761
		;;
795
		;;
762
	i*86v)
796
	i*86v)
763
		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
797
		cpu=`echo "$1" | sed -e 's/86.*/86/'`
764
		os=-sysv
798
		vendor=pc
799
		basic_os=sysv
765
		;;
800
		;;
766
	i*86sol2)
801
	i*86sol2)
767
		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
802
		cpu=`echo "$1" | sed -e 's/86.*/86/'`
768
		os=-solaris2
803
		vendor=pc
804
		basic_os=solaris2
769
		;;
805
		;;
770
	i386mach)
806
	j90 | j90-cray)
771
		basic_machine=i386-mach
807
		cpu=j90
772
		os=-mach
808
		vendor=cray
809
		basic_os=${basic_os:-unicos}
773
		;;
810
		;;
774
	vsta)
775
		basic_machine=i386-unknown
776
		os=-vsta
777
		;;
778
	iris | iris4d)
811
	iris | iris4d)
779
		basic_machine=mips-sgi
812
		cpu=mips
780
		case $os in
813
		vendor=sgi
781
		    -irix*)
814
		case $basic_os in
815
		    irix*)
782
			;;
816
			;;
783
		    *)
817
		    *)
784
			os=-irix4
818
			basic_os=irix4
785
			;;
819
			;;
786
		esac
820
		esac
787
		;;
821
		;;
788
	isi68 | isi)
789
		basic_machine=m68k-isi
790
		os=-sysv
791
		;;
792
	leon-*|leon[3-9]-*)
793
		basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
794
		;;
795
	m68knommu)
796
		basic_machine=m68k-unknown
797
		os=-linux
798
		;;
799
	m68knommu-*)
800
		basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
801
		os=-linux
802
		;;
803
	magnum | m3230)
804
		basic_machine=mips-mips
805
		os=-sysv
806
		;;
807
	merlin)
808
		basic_machine=ns32k-utek
809
		os=-sysv
810
		;;
811
	microblaze*)
812
		basic_machine=microblaze-xilinx
813
		;;
814
	mingw64)
815
		basic_machine=x86_64-pc
816
		os=-mingw64
817
		;;
818
	mingw32)
819
		basic_machine=i686-pc
820
		os=-mingw32
821
		;;
822
	mingw32ce)
823
		basic_machine=arm-unknown
824
		os=-mingw32ce
825
		;;
826
	miniframe)
822
	miniframe)
827
		basic_machine=m68000-convergent
823
		cpu=m68000
824
		vendor=convergent
828
		;;
825
		;;
829
	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
826
	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
830
		basic_machine=m68k-atari
827
		cpu=m68k
831
		os=-mint
828
		vendor=atari
829
		basic_os=mint
832
		;;
830
		;;
833
	mips3*-*)
834
		basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
835
		;;
836
	mips3*)
837
		basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
838
		;;
839
	monitor)
840
		basic_machine=m68k-rom68k
841
		os=-coff
842
		;;
843
	morphos)
844
		basic_machine=powerpc-unknown
845
		os=-morphos
846
		;;
847
	moxiebox)
848
		basic_machine=moxie-unknown
849
		os=-moxiebox
850
		;;
851
	msdos)
852
		basic_machine=i386-pc
853
		os=-msdos
854
		;;
855
	ms1-*)
856
		basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
857
		;;
858
	msys)
859
		basic_machine=i686-pc
860
		os=-msys
861
		;;
862
	mvs)
863
		basic_machine=i370-ibm
864
		os=-mvs
865
		;;
866
	nacl)
867
		basic_machine=le32-unknown
868
		os=-nacl
869
		;;
870
	ncr3000)
871
		basic_machine=i486-ncr
872
		os=-sysv4
873
		;;
874
	netbsd386)
875
		basic_machine=i386-unknown
876
		os=-netbsd
877
		;;
878
	netwinder)
879
		basic_machine=armv4l-rebel
880
		os=-linux
881
		;;
882
	news | news700 | news800 | news900)
883
		basic_machine=m68k-sony
884
		os=-newsos
885
		;;
886
	news1000)
887
		basic_machine=m68030-sony
888
		os=-newsos
889
		;;
890
	news-3600 | risc-news)
831
	news-3600 | risc-news)
891
		basic_machine=mips-sony
832
		cpu=mips
892
		os=-newsos
833
		vendor=sony
834
		basic_os=newsos
893
		;;
835
		;;
894
	necv70)
895
		basic_machine=v70-nec
896
		os=-sysv
897
		;;
898
	next | m*-next)
836
	next | m*-next)
899
		basic_machine=m68k-next
837
		cpu=m68k
900
		case $os in
838
		vendor=next
901
		    -nextstep* )
839
		case $basic_os in
840
		    openstep*)
841
		        ;;
842
		    nextstep*)
902
			;;
843
			;;
903
		    -ns2*)
844
		    ns2*)
904
		      os=-nextstep2
845
		      basic_os=nextstep2
905
			;;
846
			;;
906
		    *)
847
		    *)
907
		      os=-nextstep3
848
		      basic_os=nextstep3
908
			;;
849
			;;
909
		esac
850
		esac
910
		;;
851
		;;
911
	nh3000)
912
		basic_machine=m68k-harris
913
		os=-cxux
914
		;;
915
	nh[45]000)
916
		basic_machine=m88k-harris
917
		os=-cxux
918
		;;
919
	nindy960)
920
		basic_machine=i960-intel
921
		os=-nindy
922
		;;
923
	mon960)
924
		basic_machine=i960-intel
925
		os=-mon960
926
		;;
927
	nonstopux)
928
		basic_machine=mips-compaq
929
		os=-nonstopux
930
		;;
931
	np1)
852
	np1)
932
		basic_machine=np1-gould
853
		cpu=np1
854
		vendor=gould
933
		;;
855
		;;
934
	neo-tandem)
935
		basic_machine=neo-tandem
936
		;;
937
	nse-tandem)
938
		basic_machine=nse-tandem
939
		;;
940
	nsr-tandem)
941
		basic_machine=nsr-tandem
942
		;;
943
	nsv-tandem)
944
		basic_machine=nsv-tandem
945
		;;
946
	nsx-tandem)
947
		basic_machine=nsx-tandem
948
		;;
949
	op50n-* | op60c-*)
856
	op50n-* | op60c-*)
950
		basic_machine=hppa1.1-oki
857
		cpu=hppa1.1
951
		os=-proelf
858
		vendor=oki
859
		basic_os=proelf
952
		;;
860
		;;
953
	openrisc | openrisc-*)
954
		basic_machine=or32-unknown
955
		;;
956
	os400)
957
		basic_machine=powerpc-ibm
958
		os=-os400
959
		;;
960
	OSE68000 | ose68000)
961
		basic_machine=m68000-ericsson
962
		os=-ose
963
		;;
964
	os68k)
965
		basic_machine=m68k-none
966
		os=-os68k
967
		;;
968
	pa-hitachi)
861
	pa-hitachi)
969
		basic_machine=hppa1.1-hitachi
862
		cpu=hppa1.1
970
		os=-hiuxwe2
863
		vendor=hitachi
864
		basic_os=hiuxwe2
971
		;;
865
		;;
972
	paragon)
973
		basic_machine=i860-intel
974
		os=-osf
975
		;;
976
	parisc)
977
		basic_machine=hppa-unknown
978
		os=-linux
979
		;;
980
	parisc-*)
981
		basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
982
		os=-linux
983
		;;
984
	pbd)
866
	pbd)
985
		basic_machine=sparc-tti
867
		cpu=sparc
868
		vendor=tti
986
		;;
869
		;;
987
	pbb)
870
	pbb)
988
		basic_machine=m68k-tti
871
		cpu=m68k
872
		vendor=tti
989
		;;
873
		;;
990
	pc532 | pc532-*)
874
	pc532)
991
		basic_machine=ns32k-pc532
875
		cpu=ns32k
876
		vendor=pc532
992
		;;
877
		;;
993
	pc98)
994
		basic_machine=i386-pc
995
		;;
996
	pc98-*)
997
		basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
998
		;;
999
	pentium | p5 | k5 | k6 | nexgen | viac3)
1000
		basic_machine=i586-pc
1001
		;;
1002
	pentiumpro | p6 | 6x86 | athlon | athlon_*)
1003
		basic_machine=i686-pc
1004
		;;
1005
	pentiumii | pentium2 | pentiumiii | pentium3)
1006
		basic_machine=i686-pc
1007
		;;
1008
	pentium4)
1009
		basic_machine=i786-pc
1010
		;;
1011
	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1012
		basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1013
		;;
1014
	pentiumpro-* | p6-* | 6x86-* | athlon-*)
1015
		basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1016
		;;
1017
	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1018
		basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1019
		;;
1020
	pentium4-*)
1021
		basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1022
		;;
1023
	pn)
878
	pn)
1024
		basic_machine=pn-gould
879
		cpu=pn
880
		vendor=gould
1025
		;;
881
		;;
1026
	power)	basic_machine=power-ibm
882
	power)
883
		cpu=power
884
		vendor=ibm
1027
		;;
885
		;;
1028
	ppc | ppcbe)	basic_machine=powerpc-unknown
886
	ps2)
887
		cpu=i386
888
		vendor=ibm
1029
		;;
889
		;;
1030
	ppc-* | ppcbe-*)
890
	rm[46]00)
1031
		basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
891
		cpu=mips
892
		vendor=siemens
1032
		;;
893
		;;
1033
	ppcle | powerpclittle)
894
	rtpc | rtpc-*)
1034
		basic_machine=powerpcle-unknown
895
		cpu=romp
896
		vendor=ibm
1035
		;;
897
		;;
1036
	ppcle-* | powerpclittle-*)
898
	sde)
1037
		basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
899
		cpu=mipsisa32
900
		vendor=sde
901
		basic_os=${basic_os:-elf}
1038
		;;
902
		;;
1039
	ppc64)	basic_machine=powerpc64-unknown
903
	simso-wrs)
904
		cpu=sparclite
905
		vendor=wrs
906
		basic_os=vxworks
1040
		;;
907
		;;
1041
	ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
908
	tower | tower-32)
909
		cpu=m68k
910
		vendor=ncr
1042
		;;
911
		;;
1043
	ppc64le | powerpc64little)
912
	vpp*|vx|vx-*)
1044
		basic_machine=powerpc64le-unknown
913
		cpu=f301
914
		vendor=fujitsu
1045
		;;
915
		;;
1046
	ppc64le-* | powerpc64little-*)
916
	w65)
1047
		basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
917
		cpu=w65
918
		vendor=wdc
1048
		;;
919
		;;
1049
	ps2)
920
	w89k-*)
1050
		basic_machine=i386-ibm
921
		cpu=hppa1.1
922
		vendor=winbond
923
		basic_os=proelf
1051
		;;
924
		;;
1052
	pw32)
925
	none)
1053
		basic_machine=i586-unknown
926
		cpu=none
1054
		os=-pw32
927
		vendor=none
1055
		;;
928
		;;
1056
	rdos | rdos64)
929
	leon|leon[3-9])
1057
		basic_machine=x86_64-pc
930
		cpu=sparc
1058
		os=-rdos
931
		vendor=$basic_machine
1059
		;;
932
		;;
1060
	rdos32)
933
	leon-*|leon[3-9]-*)
1061
		basic_machine=i386-pc
934
		cpu=sparc
1062
		os=-rdos
935
		vendor=`echo "$basic_machine" | sed 's/-.*//'`
1063
		;;
936
		;;
1064
	rom68k)
937
1065
		basic_machine=m68k-rom68k
938
	*-*)
1066
		os=-coff
939
		# shellcheck disable=SC2162
940
		saved_IFS=$IFS
941
		IFS="-" read cpu vendor <<EOF
942
$basic_machine
943
EOF
944
		IFS=$saved_IFS
1067
		;;
945
		;;
1068
	rm[46]00)
946
	# We use `pc' rather than `unknown'
1069
		basic_machine=mips-siemens
947
	# because (1) that's what they normally are, and
948
	# (2) the word "unknown" tends to confuse beginning users.
949
	i*86 | x86_64)
950
		cpu=$basic_machine
951
		vendor=pc
1070
		;;
952
		;;
1071
	rtpc | rtpc-*)
953
	# These rules are duplicated from below for sake of the special case above;
1072
		basic_machine=romp-ibm
954
	# i.e. things that normalized to x86 arches should also default to "pc"
955
	pc98)
956
		cpu=i386
957
		vendor=pc
1073
		;;
958
		;;
1074
	s390 | s390-*)
959
	x64 | amd64)
1075
		basic_machine=s390-ibm
960
		cpu=x86_64
961
		vendor=pc
1076
		;;
962
		;;
1077
	s390x | s390x-*)
963
	# Recognize the basic CPU types without company name.
1078
		basic_machine=s390x-ibm
964
	*)
965
		cpu=$basic_machine
966
		vendor=unknown
1079
		;;
967
		;;
1080
	sa29200)
968
esac
1081
		basic_machine=a29k-amd
969
1082
		os=-udi
970
unset -v basic_machine
971
972
# Decode basic machines in the full and proper CPU-Company form.
973
case $cpu-$vendor in
974
	# Here we handle the default manufacturer of certain CPU types in canonical form. It is in
975
	# some cases the only manufacturer, in others, it is the most popular.
976
	craynv-unknown)
977
		vendor=cray
978
		basic_os=${basic_os:-unicosmp}
1083
		;;
979
		;;
1084
	sb1)
980
	c90-unknown | c90-cray)
1085
		basic_machine=mipsisa64sb1-unknown
981
		vendor=cray
982
		basic_os=${Basic_os:-unicos}
1086
		;;
983
		;;
1087
	sb1el)
984
	fx80-unknown)
1088
		basic_machine=mipsisa64sb1el-unknown
985
		vendor=alliant
1089
		;;
986
		;;
1090
	sde)
987
	romp-unknown)
1091
		basic_machine=mipsisa32-sde
988
		vendor=ibm
1092
		os=-elf
1093
		;;
989
		;;
1094
	sei)
990
	mmix-unknown)
1095
		basic_machine=mips-sei
991
		vendor=knuth
1096
		os=-seiux
1097
		;;
992
		;;
1098
	sequent)
993
	microblaze-unknown | microblazeel-unknown)
1099
		basic_machine=i386-sequent
994
		vendor=xilinx
1100
		;;
995
		;;
1101
	sh5el)
996
	rs6000-unknown)
1102
		basic_machine=sh5le-unknown
997
		vendor=ibm
1103
		;;
998
		;;
1104
	simso-wrs)
999
	vax-unknown)
1105
		basic_machine=sparclite-wrs
1000
		vendor=dec
1106
		os=-vxworks
1107
		;;
1001
		;;
1108
	sps7)
1002
	pdp11-unknown)
1109
		basic_machine=m68k-bull
1003
		vendor=dec
1110
		os=-sysv2
1111
		;;
1004
		;;
1112
	spur)
1005
	we32k-unknown)
1113
		basic_machine=spur-unknown
1006
		vendor=att
1114
		;;
1007
		;;
1115
	st2000)
1008
	cydra-unknown)
1116
		basic_machine=m68k-tandem
1009
		vendor=cydrome
1117
		;;
1010
		;;
1118
	stratus)
1011
	i370-ibm*)
1119
		basic_machine=i860-stratus
1012
		vendor=ibm
1120
		os=-sysv4
1121
		;;
1013
		;;
1122
	strongarm-* | thumb-*)
1014
	orion-unknown)
1123
		basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1015
		vendor=highlevel
1124
		;;
1016
		;;
1125
	sun2)
1017
	xps-unknown | xps100-unknown)
1126
		basic_machine=m68000-sun
1018
		cpu=xps100
1019
		vendor=honeywell
1127
		;;
1020
		;;
1128
	sun2os3)
1021
1129
		basic_machine=m68000-sun
1022
	# Here we normalize CPU types with a missing or matching vendor
1130
		os=-sunos3
1023
	armh-unknown | armh-alt)
1024
		cpu=armv7l
1025
		vendor=alt
1026
		basic_os=${basic_os:-linux-gnueabihf}
1131
		;;
1027
		;;
1132
	sun2os4)
1028
	dpx20-unknown | dpx20-bull)
1133
		basic_machine=m68000-sun
1029
		cpu=rs6000
1134
		os=-sunos4
1030
		vendor=bull
1031
		basic_os=${basic_os:-bosx}
1135
		;;
1032
		;;
1136
	sun3os3)
1033
1137
		basic_machine=m68k-sun
1034
	# Here we normalize CPU types irrespective of the vendor
1138
		os=-sunos3
1035
	amd64-*)
1036
		cpu=x86_64
1139
		;;
1037
		;;
1140
	sun3os4)
1038
	blackfin-*)
1141
		basic_machine=m68k-sun
1039
		cpu=bfin
1142
		os=-sunos4
1040
		basic_os=linux
1143
		;;
1041
		;;
1144
	sun4os3)
1042
	c54x-*)
1145
		basic_machine=sparc-sun
1043
		cpu=tic54x
1146
		os=-sunos3
1147
		;;
1044
		;;
1148
	sun4os4)
1045
	c55x-*)
1149
		basic_machine=sparc-sun
1046
		cpu=tic55x
1150
		os=-sunos4
1151
		;;
1047
		;;
1152
	sun4sol2)
1048
	c6x-*)
1153
		basic_machine=sparc-sun
1049
		cpu=tic6x
1154
		os=-solaris2
1155
		;;
1050
		;;
1156
	sun3 | sun3-*)
1051
	e500v[12]-*)
1157
		basic_machine=m68k-sun
1052
		cpu=powerpc
1053
		basic_os=${basic_os}"spe"
1158
		;;
1054
		;;
1159
	sun4)
1055
	mips3*-*)
1160
		basic_machine=sparc-sun
1056
		cpu=mips64
1161
		;;
1057
		;;
1162
	sun386 | sun386i | roadrunner)
1058
	ms1-*)
1163
		basic_machine=i386-sun
1059
		cpu=mt
1164
		;;
1060
		;;
1165
	sv1)
1061
	m68knommu-*)
1166
		basic_machine=sv1-cray
1062
		cpu=m68k
1167
		os=-unicos
1063
		basic_os=linux
1168
		;;
1064
		;;
1169
	symmetry)
1065
	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
1170
		basic_machine=i386-sequent
1066
		cpu=s12z
1171
		os=-dynix
1172
		;;
1067
		;;
1173
	t3e)
1068
	openrisc-*)
1174
		basic_machine=alphaev5-cray
1069
		cpu=or32
1175
		os=-unicos
1176
		;;
1070
		;;
1177
	t90)
1071
	parisc-*)
1178
		basic_machine=t90-cray
1072
		cpu=hppa
1179
		os=-unicos
1073
		basic_os=linux
1180
		;;
1074
		;;
1181
	tile*)
1075
	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1182
		basic_machine=$basic_machine-unknown
1076
		cpu=i586
1183
		os=-linux-gnu
1184
		;;
1077
		;;
1185
	tx39)
1078
	pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
1186
		basic_machine=mipstx39-unknown
1079
		cpu=i686
1187
		;;
1080
		;;
1188
	tx39el)
1081
	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1189
		basic_machine=mipstx39el-unknown
1082
		cpu=i686
1190
		;;
1083
		;;
1191
	toad1)
1084
	pentium4-*)
1192
		basic_machine=pdp10-xkl
1085
		cpu=i786
1193
		os=-tops20
1194
		;;
1086
		;;
1195
	tower | tower-32)
1087
	pc98-*)
1196
		basic_machine=m68k-ncr
1088
		cpu=i386
1197
		;;
1089
		;;
1198
	tpf)
1090
	ppc-* | ppcbe-*)
1199
		basic_machine=s390x-ibm
1091
		cpu=powerpc
1200
		os=-tpf
1201
		;;
1092
		;;
1202
	udi29k)
1093
	ppcle-* | powerpclittle-*)
1203
		basic_machine=a29k-amd
1094
		cpu=powerpcle
1204
		os=-udi
1205
		;;
1095
		;;
1206
	ultra3)
1096
	ppc64-*)
1207
		basic_machine=a29k-nyu
1097
		cpu=powerpc64
1208
		os=-sym1
1209
		;;
1098
		;;
1210
	v810 | necv810)
1099
	ppc64le-* | powerpc64little-*)
1211
		basic_machine=v810-nec
1100
		cpu=powerpc64le
1212
		os=-none
1213
		;;
1101
		;;
1214
	vaxv)
1102
	sb1-*)
1215
		basic_machine=vax-dec
1103
		cpu=mipsisa64sb1
1216
		os=-sysv
1217
		;;
1104
		;;
1218
	vms)
1105
	sb1el-*)
1219
		basic_machine=vax-dec
1106
		cpu=mipsisa64sb1el
1220
		os=-vms
1221
		;;
1107
		;;
1222
	vpp*|vx|vx-*)
1108
	sh5e[lb]-*)
1223
		basic_machine=f301-fujitsu
1109
		cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
1224
		;;
1110
		;;
1225
	vxworks960)
1111
	spur-*)
1226
		basic_machine=i960-wrs
1112
		cpu=spur
1227
		os=-vxworks
1228
		;;
1113
		;;
1229
	vxworks68)
1114
	strongarm-* | thumb-*)
1230
		basic_machine=m68k-wrs
1115
		cpu=arm
1231
		os=-vxworks
1232
		;;
1116
		;;
1233
	vxworks29k)
1117
	tx39-*)
1234
		basic_machine=a29k-wrs
1118
		cpu=mipstx39
1235
		os=-vxworks
1236
		;;
1119
		;;
1237
	w65*)
1120
	tx39el-*)
1238
		basic_machine=w65-wdc
1121
		cpu=mipstx39el
1239
		os=-none
1240
		;;
1122
		;;
1241
	w89k-*)
1123
	x64-*)
1242
		basic_machine=hppa1.1-winbond
1124
		cpu=x86_64
1243
		os=-proelf
1244
		;;
1125
		;;
1245
	x64)
1246
		basic_machine=x86_64-pc
1247
		;;
1248
	xbox)
1249
		basic_machine=i686-pc
1250
		os=-mingw32
1251
		;;
1252
	xps | xps100)
1253
		basic_machine=xps100-honeywell
1254
		;;
1255
	xscale-* | xscalee[bl]-*)
1126
	xscale-* | xscalee[bl]-*)
1256
		basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
1127
		cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
1257
		;;
1128
		;;
1258
	ymp)
1129
	arm64-* | aarch64le-*)
1259
		basic_machine=ymp-cray
1130
		cpu=aarch64
1260
		os=-unicos
1261
		;;
1131
		;;
1262
	none)
1263
		basic_machine=none-none
1264
		os=-none
1265
		;;
1266
1132
1267
# Here we handle the default manufacturer of certain CPU types.  It is in
1133
	# Recognize the canonical CPU Types that limit and/or modify the
1268
# some cases the only manufacturer, in others, it is the most popular.
1134
	# company names they are paired with.
1269
	w89k)
1135
	cr16-*)
1270
		basic_machine=hppa1.1-winbond
1136
		basic_os=${basic_os:-elf}
1271
		;;
1137
		;;
1272
	op50n)
1138
	crisv32-* | etraxfs*-*)
1273
		basic_machine=hppa1.1-oki
1139
		cpu=crisv32
1140
		vendor=axis
1274
		;;
1141
		;;
1275
	op60c)
1142
	cris-* | etrax*-*)
1276
		basic_machine=hppa1.1-oki
1143
		cpu=cris
1144
		vendor=axis
1277
		;;
1145
		;;
1278
	romp)
1146
	crx-*)
1279
		basic_machine=romp-ibm
1147
		basic_os=${basic_os:-elf}
1280
		;;
1148
		;;
1281
	mmix)
1149
	neo-tandem)
1282
		basic_machine=mmix-knuth
1150
		cpu=neo
1151
		vendor=tandem
1283
		;;
1152
		;;
1284
	rs6000)
1153
	nse-tandem)
1285
		basic_machine=rs6000-ibm
1154
		cpu=nse
1155
		vendor=tandem
1286
		;;
1156
		;;
1287
	vax)
1157
	nsr-tandem)
1288
		basic_machine=vax-dec
1158
		cpu=nsr
1159
		vendor=tandem
1289
		;;
1160
		;;
1290
	pdp11)
1161
	nsv-tandem)
1291
		basic_machine=pdp11-dec
1162
		cpu=nsv
1163
		vendor=tandem
1292
		;;
1164
		;;
1293
	we32k)
1165
	nsx-tandem)
1294
		basic_machine=we32k-att
1166
		cpu=nsx
1167
		vendor=tandem
1295
		;;
1168
		;;
1296
	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
1169
	mipsallegrexel-sony)
1297
		basic_machine=sh-unknown
1170
		cpu=mipsallegrexel
1171
		vendor=sony
1298
		;;
1172
		;;
1299
	cydra)
1173
	tile*-*)
1300
		basic_machine=cydra-cydrome
1174
		basic_os=${basic_os:-linux-gnu}
1301
		;;
1175
		;;
1302
	orion)
1176
1303
		basic_machine=orion-highlevel
1304
		;;
1305
	orion105)
1306
		basic_machine=clipper-highlevel
1307
		;;
1308
	mac | mpw | mac-mpw)
1309
		basic_machine=m68k-apple
1310
		;;
1311
	pmac | pmac-mpw)
1312
		basic_machine=powerpc-apple
1313
		;;
1314
	*-unknown)
1315
		# Make sure to match an already-canonicalized machine name.
1316
		;;
1317
	*)
1177
	*)
1318
		echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
1178
		# Recognize the canonical CPU types that are allowed with any
1319
		exit 1
1179
		# company name.
1180
		case $cpu in
1181
			1750a | 580 \
1182
			| a29k \
1183
			| aarch64 | aarch64_be \
1184
			| abacus \
1185
			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
1186
			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
1187
			| alphapca5[67] | alpha64pca5[67] \
1188
			| am33_2.0 \
1189
			| amdgcn \
1190
			| arc | arceb | arc32 | arc64 \
1191
			| arm | arm[lb]e | arme[lb] | armv* \
1192
			| avr | avr32 \
1193
			| asmjs \
1194
			| ba \
1195
			| be32 | be64 \
1196
			| bfin | bpf | bs2000 \
1197
			| c[123]* | c30 | [cjt]90 | c4x \
1198
			| c8051 | clipper | craynv | csky | cydra \
1199
			| d10v | d30v | dlx | dsp16xx \
1200
			| e2k | elxsi | epiphany \
1201
			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
1202
			| h8300 | h8500 \
1203
			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
1204
			| hexagon \
1205
			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
1206
			| ip2k | iq2000 \
1207
			| k1om \
1208
			| le32 | le64 \
1209
			| lm32 \
1210
			| loongarch32 | loongarch64 | loongarchx32 \
1211
			| m32c | m32r | m32rle \
1212
			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
1213
			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
1214
			| m88110 | m88k | maxq | mb | mcore | mep | metag \
1215
			| microblaze | microblazeel \
1216
			| mips | mipsbe | mipseb | mipsel | mipsle \
1217
			| mips16 \
1218
			| mips64 | mips64eb | mips64el \
1219
			| mips64octeon | mips64octeonel \
1220
			| mips64orion | mips64orionel \
1221
			| mips64r5900 | mips64r5900el \
1222
			| mips64vr | mips64vrel \
1223
			| mips64vr4100 | mips64vr4100el \
1224
			| mips64vr4300 | mips64vr4300el \
1225
			| mips64vr5000 | mips64vr5000el \
1226
			| mips64vr5900 | mips64vr5900el \
1227
			| mipsisa32 | mipsisa32el \
1228
			| mipsisa32r2 | mipsisa32r2el \
1229
			| mipsisa32r3 | mipsisa32r3el \
1230
			| mipsisa32r5 | mipsisa32r5el \
1231
			| mipsisa32r6 | mipsisa32r6el \
1232
			| mipsisa64 | mipsisa64el \
1233
			| mipsisa64r2 | mipsisa64r2el \
1234
			| mipsisa64r3 | mipsisa64r3el \
1235
			| mipsisa64r5 | mipsisa64r5el \
1236
			| mipsisa64r6 | mipsisa64r6el \
1237
			| mipsisa64sb1 | mipsisa64sb1el \
1238
			| mipsisa64sr71k | mipsisa64sr71kel \
1239
			| mipsr5900 | mipsr5900el \
1240
			| mipstx39 | mipstx39el \
1241
			| mmix \
1242
			| mn10200 | mn10300 \
1243
			| moxie \
1244
			| mt \
1245
			| msp430 \
1246
			| nds32 | nds32le | nds32be \
1247
			| nfp \
1248
			| nios | nios2 | nios2eb | nios2el \
1249
			| none | np1 | ns16k | ns32k | nvptx \
1250
			| open8 \
1251
			| or1k* \
1252
			| or32 \
1253
			| orion \
1254
			| picochip \
1255
			| pdp10 | pdp11 | pj | pjl | pn | power \
1256
			| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
1257
			| pru \
1258
			| pyramid \
1259
			| riscv | riscv32 | riscv32be | riscv64 | riscv64be \
1260
			| rl78 | romp | rs6000 | rx \
1261
			| s390 | s390x \
1262
			| score \
1263
			| sh | shl \
1264
			| sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
1265
			| sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
1266
			| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
1267
			| sparclite \
1268
			| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
1269
			| spu \
1270
			| tahoe \
1271
			| thumbv7* \
1272
			| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
1273
			| tron \
1274
			| ubicom32 \
1275
			| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
1276
			| vax \
1277
			| visium \
1278
			| w65 \
1279
			| wasm32 | wasm64 \
1280
			| we32k \
1281
			| x86 | x86_64 | xc16x | xgate | xps100 \
1282
			| xstormy16 | xtensa* \
1283
			| ymp \
1284
			| z8k | z80)
1285
				;;
1286
1287
			*)
1288
				echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
1289
				exit 1
1290
				;;
1291
		esac
1320
		;;
1292
		;;
1321
esac
1293
esac
1322
1294
1323
# Here we canonicalize certain aliases for manufacturers.
1295
# Here we canonicalize certain aliases for manufacturers.
1324
case $basic_machine in
1296
case $vendor in
1325
	*-digital*)
1297
	digital*)
1326
		basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
1298
		vendor=dec
1327
		;;
1299
		;;
1328
	*-commodore*)
1300
	commodore*)
1329
		basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
1301
		vendor=cbm
1330
		;;
1302
		;;
1331
	*)
1303
	*)
1332
		;;
1304
		;;
Lines 1334-1536 Link Here
1334
1306
1335
# Decode manufacturer-specific aliases for certain operating systems.
1307
# Decode manufacturer-specific aliases for certain operating systems.
1336
1308
1337
if [ x"$os" != x"" ]
1309
if test x$basic_os != x
1338
then
1310
then
1311
1312
# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
1313
# set os.
1314
case $basic_os in
1315
	gnu/linux*)
1316
		kernel=linux
1317
		os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
1318
		;;
1319
	os2-emx)
1320
		kernel=os2
1321
		os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
1322
		;;
1323
	nto-qnx*)
1324
		kernel=nto
1325
		os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
1326
		;;
1327
	*-*)
1328
		# shellcheck disable=SC2162
1329
		saved_IFS=$IFS
1330
		IFS="-" read kernel os <<EOF
1331
$basic_os
1332
EOF
1333
		IFS=$saved_IFS
1334
		;;
1335
	# Default OS when just kernel was specified
1336
	nto*)
1337
		kernel=nto
1338
		os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
1339
		;;
1340
	linux*)
1341
		kernel=linux
1342
		os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
1343
		;;
1344
	*)
1345
		kernel=
1346
		os=$basic_os
1347
		;;
1348
esac
1349
1350
# Now, normalize the OS (knowing we just have one component, it's not a kernel,
1351
# etc.)
1339
case $os in
1352
case $os in
1340
	# First match some system type aliases that might get confused
1353
	# First match some system type aliases that might get confused
1341
	# with valid system types.
1354
	# with valid system types.
1342
	# -solaris* is a basic system type, with this one exception.
1355
	# solaris* is a basic system type, with this one exception.
1343
	-auroraux)
1356
	auroraux)
1344
		os=-auroraux
1357
		os=auroraux
1345
		;;
1358
		;;
1346
	-solaris1 | -solaris1.*)
1359
	bluegene*)
1347
		os=`echo $os | sed -e 's|solaris1|sunos4|'`
1360
		os=cnk
1348
		;;
1361
		;;
1349
	-solaris)
1362
	solaris1 | solaris1.*)
1350
		os=-solaris2
1363
		os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
1351
		;;
1364
		;;
1352
	-unixware*)
1365
	solaris)
1353
		os=-sysv4.2uw
1366
		os=solaris2
1354
		;;
1367
		;;
1355
	-gnu/linux*)
1368
	unixware*)
1356
		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1369
		os=sysv4.2uw
1357
		;;
1370
		;;
1358
	# es1800 is here to avoid being matched by es* (a different OS)
1371
	# es1800 is here to avoid being matched by es* (a different OS)
1359
	-es1800*)
1372
	es1800*)
1360
		os=-ose
1373
		os=ose
1361
		;;
1374
		;;
1362
	# Now accept the basic system types.
1375
	# Some version numbers need modification
1363
	# The portable systems comes first.
1376
	chorusos*)
1364
	# Each alternative MUST end in a * to match a version number.
1377
		os=chorusos
1365
	# -sysv* is not here because it comes later, after sysvr4.
1366
	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1367
	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1368
	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1369
	      | -sym* | -kopensolaris* | -plan9* \
1370
	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1371
	      | -aos* | -aros* | -cloudabi* | -sortix* \
1372
	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1373
	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1374
	      | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \
1375
	      | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
1376
	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
1377
	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1378
	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1379
	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \
1380
	      | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
1381
	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1382
	      | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
1383
	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
1384
	      | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
1385
	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \
1386
	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1387
	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
1388
	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1389
	      | -morphos* | -superux* | -rtmk* | -windiss* \
1390
	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1391
	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
1392
	      | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \
1393
	      | -midnightbsd*)
1394
	# Remember, each alternative MUST END IN *, to match a version number.
1395
		;;
1378
		;;
1396
	-qnx*)
1379
	isc)
1397
		case $basic_machine in
1380
		os=isc2.2
1398
		    x86-* | i*86-*)
1399
			;;
1400
		    *)
1401
			os=-nto$os
1402
			;;
1403
		esac
1404
		;;
1381
		;;
1405
	-nto-qnx*)
1382
	sco6)
1383
		os=sco5v6
1406
		;;
1384
		;;
1407
	-nto*)
1385
	sco5)
1408
		os=`echo $os | sed -e 's|nto|nto-qnx|'`
1386
		os=sco3.2v5
1409
		;;
1387
		;;
1410
	-sim | -xray | -os68k* | -v88r* \
1388
	sco4)
1411
	      | -windows* | -osx | -abug | -netware* | -os9* \
1389
		os=sco3.2v4
1412
	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
1413
		;;
1390
		;;
1414
	-mac*)
1391
	sco3.2.[4-9]*)
1415
		os=`echo "$os" | sed -e 's|mac|macos|'`
1392
		os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
1416
		;;
1393
		;;
1417
	-linux-dietlibc)
1394
	sco*v* | scout)
1418
		os=-linux-dietlibc
1395
		# Don't match below
1419
		;;
1396
		;;
1420
	-linux*)
1397
	sco*)
1421
		os=`echo $os | sed -e 's|linux|linux-gnu|'`
1398
		os=sco3.2v2
1422
		;;
1399
		;;
1423
	-sunos5*)
1400
	psos*)
1424
		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
1401
		os=psos
1425
		;;
1402
		;;
1426
	-sunos6*)
1403
	qnx*)
1427
		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
1404
		os=qnx
1428
		;;
1405
		;;
1429
	-opened*)
1406
	hiux*)
1430
		os=-openedition
1407
		os=hiuxwe2
1431
		;;
1408
		;;
1432
	-os400*)
1409
	lynx*178)
1433
		os=-os400
1410
		os=lynxos178
1434
		;;
1411
		;;
1435
	-wince*)
1412
	lynx*5)
1436
		os=-wince
1413
		os=lynxos5
1437
		;;
1414
		;;
1438
	-utek*)
1415
	lynxos*)
1439
		os=-bsd
1416
		# don't get caught up in next wildcard
1440
		;;
1417
		;;
1441
	-dynix*)
1418
	lynx*)
1442
		os=-bsd
1419
		os=lynxos
1443
		;;
1420
		;;
1444
	-acis*)
1421
	mac[0-9]*)
1445
		os=-aos
1422
		os=`echo "$os" | sed -e 's|mac|macos|'`
1446
		;;
1423
		;;
1447
	-atheos*)
1424
	opened*)
1448
		os=-atheos
1425
		os=openedition
1449
		;;
1426
		;;
1450
	-syllable*)
1427
	os400*)
1451
		os=-syllable
1428
		os=os400
1452
		;;
1429
		;;
1453
	-386bsd)
1430
	sunos5*)
1454
		os=-bsd
1431
		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
1455
		;;
1432
		;;
1456
	-ctix* | -uts*)
1433
	sunos6*)
1457
		os=-sysv
1434
		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
1458
		;;
1435
		;;
1459
	-nova*)
1436
	wince*)
1460
		os=-rtmk-nova
1437
		os=wince
1461
		;;
1438
		;;
1462
	-ns2)
1439
	utek*)
1463
		os=-nextstep2
1440
		os=bsd
1464
		;;
1441
		;;
1465
	-nsk*)
1442
	dynix*)
1466
		os=-nsk
1443
		os=bsd
1467
		;;
1444
		;;
1468
	# Preserve the version number of sinix5.
1445
	acis*)
1469
	-sinix5.*)
1446
		os=aos
1470
		os=`echo $os | sed -e 's|sinix|sysv|'`
1471
		;;
1447
		;;
1472
	-sinix*)
1448
	atheos*)
1473
		os=-sysv4
1449
		os=atheos
1474
		;;
1450
		;;
1475
	-tpf*)
1451
	syllable*)
1476
		os=-tpf
1452
		os=syllable
1477
		;;
1453
		;;
1478
	-triton*)
1454
	386bsd)
1479
		os=-sysv3
1455
		os=bsd
1480
		;;
1456
		;;
1481
	-oss*)
1457
	ctix* | uts*)
1482
		os=-sysv3
1458
		os=sysv
1483
		;;
1459
		;;
1484
	-svr4*)
1460
	nova*)
1485
		os=-sysv4
1461
		os=rtmk-nova
1486
		;;
1462
		;;
1487
	-svr3)
1463
	ns2)
1488
		os=-sysv3
1464
		os=nextstep2
1489
		;;
1465
		;;
1490
	-sysvr4)
1466
	# Preserve the version number of sinix5.
1491
		os=-sysv4
1467
	sinix5.*)
1468
		os=`echo "$os" | sed -e 's|sinix|sysv|'`
1492
		;;
1469
		;;
1493
	# This must come after -sysvr4.
1470
	sinix*)
1494
	-sysv*)
1471
		os=sysv4
1495
		;;
1472
		;;
1496
	-ose*)
1473
	tpf*)
1497
		os=-ose
1474
		os=tpf
1498
		;;
1475
		;;
1499
	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1476
	triton*)
1500
		os=-mint
1477
		os=sysv3
1501
		;;
1478
		;;
1502
	-zvmoe)
1479
	oss*)
1503
		os=-zvmoe
1480
		os=sysv3
1504
		;;
1481
		;;
1505
	-dicos*)
1482
	svr4*)
1506
		os=-dicos
1483
		os=sysv4
1507
		;;
1484
		;;
1508
	-pikeos*)
1485
	svr3)
1486
		os=sysv3
1487
		;;
1488
	sysvr4)
1489
		os=sysv4
1490
		;;
1491
	ose*)
1492
		os=ose
1493
		;;
1494
	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
1495
		os=mint
1496
		;;
1497
	dicos*)
1498
		os=dicos
1499
		;;
1500
	pikeos*)
1509
		# Until real need of OS specific support for
1501
		# Until real need of OS specific support for
1510
		# particular features comes up, bare metal
1502
		# particular features comes up, bare metal
1511
		# configurations are quite functional.
1503
		# configurations are quite functional.
1512
		case $basic_machine in
1504
		case $cpu in
1513
		    arm*)
1505
		    arm*)
1514
			os=-eabi
1506
			os=eabi
1515
			;;
1507
			;;
1516
		    *)
1508
		    *)
1517
			os=-elf
1509
			os=elf
1518
			;;
1510
			;;
1519
		esac
1511
		esac
1520
		;;
1512
		;;
1521
	-nacl*)
1522
		;;
1523
	-ios)
1524
		;;
1525
	-none)
1526
		;;
1527
	*)
1513
	*)
1528
		# Get rid of the `-' at the beginning of $os.
1514
		# No normalization, but not necessarily accepted, that comes below.
1529
		os=`echo $os | sed 's/[^-]*-//'`
1530
		echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
1531
		exit 1
1532
		;;
1515
		;;
1533
esac
1516
esac
1517
1534
else
1518
else
1535
1519
1536
# Here we handle the default operating systems that come with various machines.
1520
# Here we handle the default operating systems that come with various machines.
Lines 1543-1796 Link Here
1543
# will signal an error saying that MANUFACTURER isn't an operating
1527
# will signal an error saying that MANUFACTURER isn't an operating
1544
# system, and we'll never get to this point.
1528
# system, and we'll never get to this point.
1545
1529
1546
case $basic_machine in
1530
kernel=
1531
case $cpu-$vendor in
1547
	score-*)
1532
	score-*)
1548
		os=-elf
1533
		os=elf
1549
		;;
1534
		;;
1550
	spu-*)
1535
	spu-*)
1551
		os=-elf
1536
		os=elf
1552
		;;
1537
		;;
1553
	*-acorn)
1538
	*-acorn)
1554
		os=-riscix1.2
1539
		os=riscix1.2
1555
		;;
1540
		;;
1556
	arm*-rebel)
1541
	arm*-rebel)
1557
		os=-linux
1542
		kernel=linux
1543
		os=gnu
1558
		;;
1544
		;;
1559
	arm*-semi)
1545
	arm*-semi)
1560
		os=-aout
1546
		os=aout
1561
		;;
1547
		;;
1562
	c4x-* | tic4x-*)
1548
	c4x-* | tic4x-*)
1563
		os=-coff
1549
		os=coff
1564
		;;
1550
		;;
1565
	c8051-*)
1551
	c8051-*)
1566
		os=-elf
1552
		os=elf
1567
		;;
1553
		;;
1554
	clipper-intergraph)
1555
		os=clix
1556
		;;
1568
	hexagon-*)
1557
	hexagon-*)
1569
		os=-elf
1558
		os=elf
1570
		;;
1559
		;;
1571
	tic54x-*)
1560
	tic54x-*)
1572
		os=-coff
1561
		os=coff
1573
		;;
1562
		;;
1574
	tic55x-*)
1563
	tic55x-*)
1575
		os=-coff
1564
		os=coff
1576
		;;
1565
		;;
1577
	tic6x-*)
1566
	tic6x-*)
1578
		os=-coff
1567
		os=coff
1579
		;;
1568
		;;
1580
	# This must come before the *-dec entry.
1569
	# This must come before the *-dec entry.
1581
	pdp10-*)
1570
	pdp10-*)
1582
		os=-tops20
1571
		os=tops20
1583
		;;
1572
		;;
1584
	pdp11-*)
1573
	pdp11-*)
1585
		os=-none
1574
		os=none
1586
		;;
1575
		;;
1587
	*-dec | vax-*)
1576
	*-dec | vax-*)
1588
		os=-ultrix4.2
1577
		os=ultrix4.2
1589
		;;
1578
		;;
1590
	m68*-apollo)
1579
	m68*-apollo)
1591
		os=-domain
1580
		os=domain
1592
		;;
1581
		;;
1593
	i386-sun)
1582
	i386-sun)
1594
		os=-sunos4.0.2
1583
		os=sunos4.0.2
1595
		;;
1584
		;;
1596
	m68000-sun)
1585
	m68000-sun)
1597
		os=-sunos3
1586
		os=sunos3
1598
		;;
1587
		;;
1599
	m68*-cisco)
1588
	m68*-cisco)
1600
		os=-aout
1589
		os=aout
1601
		;;
1590
		;;
1602
	mep-*)
1591
	mep-*)
1603
		os=-elf
1592
		os=elf
1604
		;;
1593
		;;
1605
	mips*-cisco)
1594
	mips*-cisco)
1606
		os=-elf
1595
		os=elf
1607
		;;
1596
		;;
1608
	mips*-*)
1597
	mips*-*)
1609
		os=-elf
1598
		os=elf
1610
		;;
1599
		;;
1611
	or32-*)
1600
	or32-*)
1612
		os=-coff
1601
		os=coff
1613
		;;
1602
		;;
1614
	*-tti)	# must be before sparc entry or we get the wrong os.
1603
	*-tti)	# must be before sparc entry or we get the wrong os.
1615
		os=-sysv3
1604
		os=sysv3
1616
		;;
1605
		;;
1617
	sparc-* | *-sun)
1606
	sparc-* | *-sun)
1618
		os=-sunos4.1.1
1607
		os=sunos4.1.1
1619
		;;
1608
		;;
1620
	pru-*)
1609
	pru-*)
1621
		os=-elf
1610
		os=elf
1622
		;;
1611
		;;
1623
	*-be)
1612
	*-be)
1624
		os=-beos
1613
		os=beos
1625
		;;
1614
		;;
1626
	*-ibm)
1615
	*-ibm)
1627
		os=-aix
1616
		os=aix
1628
		;;
1617
		;;
1629
	*-knuth)
1618
	*-knuth)
1630
		os=-mmixware
1619
		os=mmixware
1631
		;;
1620
		;;
1632
	*-wec)
1621
	*-wec)
1633
		os=-proelf
1622
		os=proelf
1634
		;;
1623
		;;
1635
	*-winbond)
1624
	*-winbond)
1636
		os=-proelf
1625
		os=proelf
1637
		;;
1626
		;;
1638
	*-oki)
1627
	*-oki)
1639
		os=-proelf
1628
		os=proelf
1640
		;;
1629
		;;
1641
	*-hp)
1630
	*-hp)
1642
		os=-hpux
1631
		os=hpux
1643
		;;
1632
		;;
1644
	*-hitachi)
1633
	*-hitachi)
1645
		os=-hiux
1634
		os=hiux
1646
		;;
1635
		;;
1647
	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1636
	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1648
		os=-sysv
1637
		os=sysv
1649
		;;
1638
		;;
1650
	*-cbm)
1639
	*-cbm)
1651
		os=-amigaos
1640
		os=amigaos
1652
		;;
1641
		;;
1653
	*-dg)
1642
	*-dg)
1654
		os=-dgux
1643
		os=dgux
1655
		;;
1644
		;;
1656
	*-dolphin)
1645
	*-dolphin)
1657
		os=-sysv3
1646
		os=sysv3
1658
		;;
1647
		;;
1659
	m68k-ccur)
1648
	m68k-ccur)
1660
		os=-rtu
1649
		os=rtu
1661
		;;
1650
		;;
1662
	m88k-omron*)
1651
	m88k-omron*)
1663
		os=-luna
1652
		os=luna
1664
		;;
1653
		;;
1665
	*-next)
1654
	*-next)
1666
		os=-nextstep
1655
		os=nextstep
1667
		;;
1656
		;;
1668
	*-sequent)
1657
	*-sequent)
1669
		os=-ptx
1658
		os=ptx
1670
		;;
1659
		;;
1671
	*-crds)
1660
	*-crds)
1672
		os=-unos
1661
		os=unos
1673
		;;
1662
		;;
1674
	*-ns)
1663
	*-ns)
1675
		os=-genix
1664
		os=genix
1676
		;;
1665
		;;
1677
	i370-*)
1666
	i370-*)
1678
		os=-mvs
1667
		os=mvs
1679
		;;
1668
		;;
1680
	*-gould)
1669
	*-gould)
1681
		os=-sysv
1670
		os=sysv
1682
		;;
1671
		;;
1683
	*-highlevel)
1672
	*-highlevel)
1684
		os=-bsd
1673
		os=bsd
1685
		;;
1674
		;;
1686
	*-encore)
1675
	*-encore)
1687
		os=-bsd
1676
		os=bsd
1688
		;;
1677
		;;
1689
	*-sgi)
1678
	*-sgi)
1690
		os=-irix
1679
		os=irix
1691
		;;
1680
		;;
1692
	*-siemens)
1681
	*-siemens)
1693
		os=-sysv4
1682
		os=sysv4
1694
		;;
1683
		;;
1695
	*-masscomp)
1684
	*-masscomp)
1696
		os=-rtu
1685
		os=rtu
1697
		;;
1686
		;;
1698
	f30[01]-fujitsu | f700-fujitsu)
1687
	f30[01]-fujitsu | f700-fujitsu)
1699
		os=-uxpv
1688
		os=uxpv
1700
		;;
1689
		;;
1701
	*-rom68k)
1690
	*-rom68k)
1702
		os=-coff
1691
		os=coff
1703
		;;
1692
		;;
1704
	*-*bug)
1693
	*-*bug)
1705
		os=-coff
1694
		os=coff
1706
		;;
1695
		;;
1707
	*-apple)
1696
	*-apple)
1708
		os=-macos
1697
		os=macos
1709
		;;
1698
		;;
1710
	*-atari*)
1699
	*-atari*)
1711
		os=-mint
1700
		os=mint
1712
		;;
1701
		;;
1702
	*-wrs)
1703
		os=vxworks
1704
		;;
1713
	*)
1705
	*)
1714
		os=-none
1706
		os=none
1715
		;;
1707
		;;
1716
esac
1708
esac
1709
1717
fi
1710
fi
1718
1711
1712
# Now, validate our (potentially fixed-up) OS.
1713
case $os in
1714
	# Sometimes we do "kernel-libc", so those need to count as OSes.
1715
	musl* | newlib* | relibc* | uclibc*)
1716
		;;
1717
	# Likewise for "kernel-abi"
1718
	eabi* | gnueabi*)
1719
		;;
1720
	# VxWorks passes extra cpu info in the 4th filed.
1721
	simlinux | simwindows | spe)
1722
		;;
1723
	# Now accept the basic system types.
1724
	# The portable systems comes first.
1725
	# Each alternative MUST end in a * to match a version number.
1726
	gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
1727
	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
1728
	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
1729
	     | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
1730
	     | hiux* | abug | nacl* | netware* | windows* \
1731
	     | os9* | macos* | osx* | ios* \
1732
	     | mpw* | magic* | mmixware* | mon960* | lnews* \
1733
	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
1734
	     | aos* | aros* | cloudabi* | sortix* | twizzler* \
1735
	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
1736
	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
1737
	     | mirbsd* | netbsd* | dicos* | openedition* | ose* \
1738
	     | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
1739
	     | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
1740
	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
1741
	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
1742
	     | udi* | lites* | ieee* | go32* | aux* | hcos* \
1743
	     | chorusrdb* | cegcc* | glidix* | serenity* \
1744
	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
1745
	     | midipix* | mingw32* | mingw64* | mint* \
1746
	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
1747
	     | interix* | uwin* | mks* | rhapsody* | darwin* \
1748
	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
1749
	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
1750
	     | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
1751
	     | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
1752
	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
1753
	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
1754
	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
1755
	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
1756
	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
1757
	     | fiwix* )
1758
		;;
1759
	# This one is extra strict with allowed versions
1760
	sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
1761
		# Don't forget version if it is 3.2v4 or newer.
1762
		;;
1763
	none)
1764
		;;
1765
	*)
1766
		echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
1767
		exit 1
1768
		;;
1769
esac
1770
1771
# As a final step for OS-related things, validate the OS-kernel combination
1772
# (given a valid OS), if there is a kernel.
1773
case $kernel-$os in
1774
	linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
1775
		   | linux-musl* | linux-relibc* | linux-uclibc* )
1776
		;;
1777
	uclinux-uclibc* )
1778
		;;
1779
	-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* )
1780
		# These are just libc implementations, not actual OSes, and thus
1781
		# require a kernel.
1782
		echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
1783
		exit 1
1784
		;;
1785
	kfreebsd*-gnu* | kopensolaris*-gnu*)
1786
		;;
1787
	vxworks-simlinux | vxworks-simwindows | vxworks-spe)
1788
		;;
1789
	nto-qnx*)
1790
		;;
1791
	os2-emx)
1792
		;;
1793
	*-eabi* | *-gnueabi*)
1794
		;;
1795
	-*)
1796
		# Blank kernel with real OS is always fine.
1797
		;;
1798
	*-*)
1799
		echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
1800
		exit 1
1801
		;;
1802
esac
1803
1719
# Here we handle the case where we know the os, and the CPU type, but not the
1804
# Here we handle the case where we know the os, and the CPU type, but not the
1720
# manufacturer.  We pick the logical manufacturer.
1805
# manufacturer.  We pick the logical manufacturer.
1721
vendor=unknown
1806
case $vendor in
1722
case $basic_machine in
1807
	unknown)
1723
	*-unknown)
1808
		case $cpu-$os in
1724
		case $os in
1809
			*-riscix*)
1725
			-riscix*)
1726
				vendor=acorn
1810
				vendor=acorn
1727
				;;
1811
				;;
1728
			-sunos*)
1812
			*-sunos*)
1729
				vendor=sun
1813
				vendor=sun
1730
				;;
1814
				;;
1731
			-cnk*|-aix*)
1815
			*-cnk* | *-aix*)
1732
				vendor=ibm
1816
				vendor=ibm
1733
				;;
1817
				;;
1734
			-beos*)
1818
			*-beos*)
1735
				vendor=be
1819
				vendor=be
1736
				;;
1820
				;;
1737
			-hpux*)
1821
			*-hpux*)
1738
				vendor=hp
1822
				vendor=hp
1739
				;;
1823
				;;
1740
			-mpeix*)
1824
			*-mpeix*)
1741
				vendor=hp
1825
				vendor=hp
1742
				;;
1826
				;;
1743
			-hiux*)
1827
			*-hiux*)
1744
				vendor=hitachi
1828
				vendor=hitachi
1745
				;;
1829
				;;
1746
			-unos*)
1830
			*-unos*)
1747
				vendor=crds
1831
				vendor=crds
1748
				;;
1832
				;;
1749
			-dgux*)
1833
			*-dgux*)
1750
				vendor=dg
1834
				vendor=dg
1751
				;;
1835
				;;
1752
			-luna*)
1836
			*-luna*)
1753
				vendor=omron
1837
				vendor=omron
1754
				;;
1838
				;;
1755
			-genix*)
1839
			*-genix*)
1756
				vendor=ns
1840
				vendor=ns
1757
				;;
1841
				;;
1758
			-mvs* | -opened*)
1842
			*-clix*)
1843
				vendor=intergraph
1844
				;;
1845
			*-mvs* | *-opened*)
1759
				vendor=ibm
1846
				vendor=ibm
1760
				;;
1847
				;;
1761
			-os400*)
1848
			*-os400*)
1762
				vendor=ibm
1849
				vendor=ibm
1763
				;;
1850
				;;
1764
			-ptx*)
1851
			s390-* | s390x-*)
1852
				vendor=ibm
1853
				;;
1854
			*-ptx*)
1765
				vendor=sequent
1855
				vendor=sequent
1766
				;;
1856
				;;
1767
			-tpf*)
1857
			*-tpf*)
1768
				vendor=ibm
1858
				vendor=ibm
1769
				;;
1859
				;;
1770
			-vxsim* | -vxworks* | -windiss*)
1860
			*-vxsim* | *-vxworks* | *-windiss*)
1771
				vendor=wrs
1861
				vendor=wrs
1772
				;;
1862
				;;
1773
			-aux*)
1863
			*-aux*)
1774
				vendor=apple
1864
				vendor=apple
1775
				;;
1865
				;;
1776
			-hms*)
1866
			*-hms*)
1777
				vendor=hitachi
1867
				vendor=hitachi
1778
				;;
1868
				;;
1779
			-mpw* | -macos*)
1869
			*-mpw* | *-macos*)
1780
				vendor=apple
1870
				vendor=apple
1781
				;;
1871
				;;
1782
			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1872
			*-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
1783
				vendor=atari
1873
				vendor=atari
1784
				;;
1874
				;;
1785
			-vos*)
1875
			*-vos*)
1786
				vendor=stratus
1876
				vendor=stratus
1787
				;;
1877
				;;
1788
		esac
1878
		esac
1789
		basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
1790
		;;
1879
		;;
1791
esac
1880
esac
1792
1881
1793
echo "$basic_machine$os"
1882
echo "$cpu-$vendor-${kernel:+$kernel-}$os"
1794
exit
1883
exit
1795
1884
1796
# Local variables:
1885
# Local variables:
(-)xz-5.2.5/build-aux/depcomp (-1 / +1 lines)
Lines 3-9 Link Here
3
3
4
scriptversion=2018-03-07.03; # UTC
4
scriptversion=2018-03-07.03; # UTC
5
5
6
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
6
# Copyright (C) 1999-2021 Free Software Foundation, Inc.
7
7
8
# This program is free software; you can redistribute it and/or modify
8
# This program is free software; you can redistribute it and/or modify
9
# it under the terms of the GNU General Public License as published by
9
# it under the terms of the GNU General Public License as published by
(-)xz-5.2.5/build-aux/install-sh (-67 / +90 lines)
Lines 1-7 Link Here
1
#!/bin/sh
1
#!/bin/sh
2
# install - install a program, script, or datafile
2
# install - install a program, script, or datafile
3
3
4
scriptversion=2018-03-11.20; # UTC
4
scriptversion=2020-11-14.01; # UTC
5
5
6
# This originates from X11R5 (mit/util/scripts/install.sh), which was
6
# This originates from X11R5 (mit/util/scripts/install.sh), which was
7
# later released in X11R6 (xc/config/util/install.sh) with the
7
# later released in X11R6 (xc/config/util/install.sh) with the
Lines 69-74 Link Here
69
# Desired mode of installed file.
69
# Desired mode of installed file.
70
mode=0755
70
mode=0755
71
71
72
# Create dirs (including intermediate dirs) using mode 755.
73
# This is like GNU 'install' as of coreutils 8.32 (2020).
74
mkdir_umask=22
75
76
backupsuffix=
72
chgrpcmd=
77
chgrpcmd=
73
chmodcmd=$chmodprog
78
chmodcmd=$chmodprog
74
chowncmd=
79
chowncmd=
Lines 99-116 Link Here
99
     --version  display version info and exit.
104
     --version  display version info and exit.
100
105
101
  -c            (ignored)
106
  -c            (ignored)
102
  -C            install only if different (preserve the last data modification time)
107
  -C            install only if different (preserve data modification time)
103
  -d            create directories instead of installing files.
108
  -d            create directories instead of installing files.
104
  -g GROUP      $chgrpprog installed files to GROUP.
109
  -g GROUP      $chgrpprog installed files to GROUP.
105
  -m MODE       $chmodprog installed files to MODE.
110
  -m MODE       $chmodprog installed files to MODE.
106
  -o USER       $chownprog installed files to USER.
111
  -o USER       $chownprog installed files to USER.
112
  -p            pass -p to $cpprog.
107
  -s            $stripprog installed files.
113
  -s            $stripprog installed files.
114
  -S SUFFIX     attempt to back up existing files, with suffix SUFFIX.
108
  -t DIRECTORY  install into DIRECTORY.
115
  -t DIRECTORY  install into DIRECTORY.
109
  -T            report an error if DSTFILE is a directory.
116
  -T            report an error if DSTFILE is a directory.
110
117
111
Environment variables override the default commands:
118
Environment variables override the default commands:
112
  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
119
  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
113
  RMPROG STRIPPROG
120
  RMPROG STRIPPROG
121
122
By default, rm is invoked with -f; when overridden with RMPROG,
123
it's up to you to specify -f if you want it.
124
125
If -S is not specified, no backups are attempted.
126
127
Email bug reports to bug-automake@gnu.org.
128
Automake home page: https://www.gnu.org/software/automake/
114
"
129
"
115
130
116
while test $# -ne 0; do
131
while test $# -ne 0; do
Lines 137-144 Link Here
137
    -o) chowncmd="$chownprog $2"
152
    -o) chowncmd="$chownprog $2"
138
        shift;;
153
        shift;;
139
154
155
    -p) cpprog="$cpprog -p";;
156
140
    -s) stripcmd=$stripprog;;
157
    -s) stripcmd=$stripprog;;
141
158
159
    -S) backupsuffix="$2"
160
        shift;;
161
142
    -t)
162
    -t)
143
        is_target_a_directory=always
163
        is_target_a_directory=always
144
        dst_arg=$2
164
        dst_arg=$2
Lines 255-260 Link Here
255
    dstdir=$dst
275
    dstdir=$dst
256
    test -d "$dstdir"
276
    test -d "$dstdir"
257
    dstdir_status=$?
277
    dstdir_status=$?
278
    # Don't chown directories that already exist.
279
    if test $dstdir_status = 0; then
280
      chowncmd=""
281
    fi
258
  else
282
  else
259
283
260
    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
284
    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
Lines 301-322 Link Here
301
  if test $dstdir_status != 0; then
325
  if test $dstdir_status != 0; then
302
    case $posix_mkdir in
326
    case $posix_mkdir in
303
      '')
327
      '')
304
        # Create intermediate dirs using mode 755 as modified by the umask.
305
        # This is like FreeBSD 'install' as of 1997-10-28.
306
        umask=`umask`
307
        case $stripcmd.$umask in
308
          # Optimize common cases.
309
          *[2367][2367]) mkdir_umask=$umask;;
310
          .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
311
312
          *[0-7])
313
            mkdir_umask=`expr $umask + 22 \
314
              - $umask % 100 % 40 + $umask % 20 \
315
              - $umask % 10 % 4 + $umask % 2
316
            `;;
317
          *) mkdir_umask=$umask,go-w;;
318
        esac
319
320
        # With -d, create the new directory with the user-specified mode.
328
        # With -d, create the new directory with the user-specified mode.
321
        # Otherwise, rely on $mkdir_umask.
329
        # Otherwise, rely on $mkdir_umask.
322
        if test -n "$dir_arg"; then
330
        if test -n "$dir_arg"; then
Lines 326-377 Link Here
326
        fi
334
        fi
327
335
328
        posix_mkdir=false
336
        posix_mkdir=false
329
        case $umask in
337
	# The $RANDOM variable is not portable (e.g., dash).  Use it
330
          *[123567][0-7][0-7])
338
	# here however when possible just to lower collision chance.
331
            # POSIX mkdir -p sets u+wx bits regardless of umask, which
339
	tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
332
            # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
333
            ;;
334
          *)
335
            # Note that $RANDOM variable is not portable (e.g. dash);  Use it
336
            # here however when possible just to lower collision chance.
337
            tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
338
340
339
            trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
341
	trap '
342
	  ret=$?
343
	  rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
344
	  exit $ret
345
	' 0
340
346
341
            # Because "mkdir -p" follows existing symlinks and we likely work
347
	# Because "mkdir -p" follows existing symlinks and we likely work
342
            # directly in world-writeable /tmp, make sure that the '$tmpdir'
348
	# directly in world-writeable /tmp, make sure that the '$tmpdir'
343
            # directory is successfully created first before we actually test
349
	# directory is successfully created first before we actually test
344
            # 'mkdir -p' feature.
350
	# 'mkdir -p'.
345
            if (umask $mkdir_umask &&
351
	if (umask $mkdir_umask &&
346
                $mkdirprog $mkdir_mode "$tmpdir" &&
352
	    $mkdirprog $mkdir_mode "$tmpdir" &&
347
                exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
353
	    exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
348
            then
354
	then
349
              if test -z "$dir_arg" || {
355
	  if test -z "$dir_arg" || {
350
                   # Check for POSIX incompatibilities with -m.
356
	       # Check for POSIX incompatibilities with -m.
351
                   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
357
	       # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
352
                   # other-writable bit of parent directory when it shouldn't.
358
	       # other-writable bit of parent directory when it shouldn't.
353
                   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
359
	       # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
354
                   test_tmpdir="$tmpdir/a"
360
	       test_tmpdir="$tmpdir/a"
355
                   ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
361
	       ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
356
                   case $ls_ld_tmpdir in
362
	       case $ls_ld_tmpdir in
357
                     d????-?r-*) different_mode=700;;
363
		 d????-?r-*) different_mode=700;;
358
                     d????-?--*) different_mode=755;;
364
		 d????-?--*) different_mode=755;;
359
                     *) false;;
365
		 *) false;;
360
                   esac &&
366
	       esac &&
361
                   $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
367
	       $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
362
                     ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
368
		 ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
363
                     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
369
		 test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
364
                   }
370
	       }
365
                 }
371
	     }
366
              then posix_mkdir=:
372
	  then posix_mkdir=:
367
              fi
373
	  fi
368
              rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
374
	  rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
369
            else
375
	else
370
              # Remove any dirs left behind by ancient mkdir implementations.
376
	  # Remove any dirs left behind by ancient mkdir implementations.
371
              rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
377
	  rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
372
            fi
378
	fi
373
            trap '' 0;;
379
	trap '' 0;;
374
        esac;;
375
    esac
380
    esac
376
381
377
    if
382
    if
Lines 382-388 Link Here
382
    then :
387
    then :
383
    else
388
    else
384
389
385
      # The umask is ridiculous, or mkdir does not conform to POSIX,
390
      # mkdir does not conform to POSIX,
386
      # or it failed possibly due to a race condition.  Create the
391
      # or it failed possibly due to a race condition.  Create the
387
      # directory the slow way, step by step, checking for races as we go.
392
      # directory the slow way, step by step, checking for races as we go.
388
393
Lines 411-417 Link Here
411
          prefixes=
416
          prefixes=
412
        else
417
        else
413
          if $posix_mkdir; then
418
          if $posix_mkdir; then
414
            (umask=$mkdir_umask &&
419
            (umask $mkdir_umask &&
415
             $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
420
             $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
416
            # Don't fail if two instances are running concurrently.
421
            # Don't fail if two instances are running concurrently.
417
            test -d "$prefix" || exit 1
422
            test -d "$prefix" || exit 1
Lines 451-457 Link Here
451
    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
456
    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
452
457
453
    # Copy the file name to the temp name.
458
    # Copy the file name to the temp name.
454
    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
459
    (umask $cp_umask &&
460
     { test -z "$stripcmd" || {
461
	 # Create $dsttmp read-write so that cp doesn't create it read-only,
462
	 # which would cause strip to fail.
463
	 if test -z "$doit"; then
464
	   : >"$dsttmp" # No need to fork-exec 'touch'.
465
	 else
466
	   $doit touch "$dsttmp"
467
	 fi
468
       }
469
     } &&
470
     $doit_exec $cpprog "$src" "$dsttmp") &&
455
471
456
    # and set any options; do chmod last to preserve setuid bits.
472
    # and set any options; do chmod last to preserve setuid bits.
457
    #
473
    #
Lines 477-482 Link Here
477
    then
493
    then
478
      rm -f "$dsttmp"
494
      rm -f "$dsttmp"
479
    else
495
    else
496
      # If $backupsuffix is set, and the file being installed
497
      # already exists, attempt a backup.  Don't worry if it fails,
498
      # e.g., if mv doesn't support -f.
499
      if test -n "$backupsuffix" && test -f "$dst"; then
500
        $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
501
      fi
502
480
      # Rename the file to the real destination.
503
      # Rename the file to the real destination.
481
      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
504
      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
482
505
Lines 491-499 Link Here
491
        # file should still install successfully.
514
        # file should still install successfully.
492
        {
515
        {
493
          test ! -f "$dst" ||
516
          test ! -f "$dst" ||
494
          $doit $rmcmd -f "$dst" 2>/dev/null ||
517
          $doit $rmcmd "$dst" 2>/dev/null ||
495
          { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
518
          { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
496
            { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
519
            { $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
497
          } ||
520
          } ||
498
          { echo "$0: cannot unlink or rename $dst" >&2
521
          { echo "$0: cannot unlink or rename $dst" >&2
499
            (exit 1); exit 1
522
            (exit 1); exit 1
(-)xz-5.2.5/build-aux/ltmain.sh (-28 / +96 lines)
Lines 1-12 Link Here
1
#! /bin/sh
1
#! /usr/bin/env sh
2
## DO NOT EDIT - This file generated from ./build-aux/ltmain.in
2
## DO NOT EDIT - This file generated from ./build-aux/ltmain.in
3
##               by inline-source v2018-07-24.06
3
##               by inline-source v2019-02-19.15
4
4
5
# libtool (GNU libtool) 2.4.6.42-b88ce-dirty
5
# libtool (GNU libtool) 2.4.7.4-1ec8f-dirty
6
# Provide generalized library-building support services.
6
# Provide generalized library-building support services.
7
# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
7
# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
8
8
9
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
9
# Copyright (C) 1996-2019, 2021-2022 Free Software Foundation, Inc.
10
# This is free software; see the source for copying conditions.  There is NO
10
# This is free software; see the source for copying conditions.  There is NO
11
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
12
Lines 31-38 Link Here
31
31
32
PROGRAM=libtool
32
PROGRAM=libtool
33
PACKAGE=libtool
33
PACKAGE=libtool
34
VERSION=2.4.6.42-b88ce-dirty
34
VERSION=2.4.7.4-1ec8f-dirty
35
package_revision=2.4.6.42
35
package_revision=2.4.7.4
36
36
37
37
38
## ------ ##
38
## ------ ##
Lines 64-70 Link Here
64
# libraries, which are installed to $pkgauxdir.
64
# libraries, which are installed to $pkgauxdir.
65
65
66
# Set a version string for this script.
66
# Set a version string for this script.
67
scriptversion=2018-07-24.06; # UTC
67
scriptversion=2019-02-19.15; # UTC
68
68
69
# General shell script boiler plate, and helper functions.
69
# General shell script boiler plate, and helper functions.
70
# Written by Gary V. Vaughan, 2004
70
# Written by Gary V. Vaughan, 2004
Lines 72-81 Link Here
72
# This is free software.  There is NO warranty; not even for
72
# This is free software.  There is NO warranty; not even for
73
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
73
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
74
#
74
#
75
# Copyright (C) 2004-2018 Bootstrap Authors
75
# Copyright (C) 2004-2019, 2021 Bootstrap Authors
76
#
76
#
77
# This file is dual licensed under the terms of the MIT license
77
# This file is dual licensed under the terms of the MIT license
78
# <https://opensource.org/license/MIT>, and GPL version 3 or later
78
# <https://opensource.org/license/MIT>, and GPL version 2 or later
79
# <http://www.gnu.org/licenses/gpl-2.0.html>.  You must apply one of
79
# <http://www.gnu.org/licenses/gpl-2.0.html>.  You must apply one of
80
# these licenses when using or redistributing this software or any of
80
# these licenses when using or redistributing this software or any of
81
# the files within it.  See the URLs above, or the file `LICENSE`
81
# the files within it.  See the URLs above, or the file `LICENSE`
Lines 130-135 Link Here
130
	  _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\"
130
	  _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\"
131
	fi"
131
	fi"
132
done
132
done
133
# These NLS vars are set unconditionally (bootstrap issue #24).  Unset those
134
# in case the environment reset is needed later and the $save_* variant is not
135
# defined (see the code above).
136
LC_ALL=C
137
LANGUAGE=C
138
export LANGUAGE LC_ALL
133
139
134
# Make sure IFS has a sensible default
140
# Make sure IFS has a sensible default
135
sp=' '
141
sp=' '
Lines 368-374 Link Here
368
  s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g
374
  s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g
369
  s/\n//g"
375
  s/\n//g"
370
376
377
# require_check_ifs_backslash
378
# ---------------------------
379
# Check if we can use backslash as IFS='\' separator, and set
380
# $check_ifs_backshlash_broken to ':' or 'false'.
381
require_check_ifs_backslash=func_require_check_ifs_backslash
382
func_require_check_ifs_backslash ()
383
{
384
  _G_save_IFS=$IFS
385
  IFS='\'
386
  _G_check_ifs_backshlash='a\\b'
387
  for _G_i in $_G_check_ifs_backshlash
388
  do
389
  case $_G_i in
390
  a)
391
    check_ifs_backshlash_broken=false
392
    ;;
393
  '')
394
    break
395
    ;;
396
  *)
397
    check_ifs_backshlash_broken=:
398
    break
399
    ;;
400
  esac
401
  done
402
  IFS=$_G_save_IFS
403
  require_check_ifs_backslash=:
404
}
371
405
406
372
## ----------------- ##
407
## ----------------- ##
373
## Global variables. ##
408
## Global variables. ##
374
## ----------------- ##
409
## ----------------- ##
Lines 1108-1113 Link Here
1108
{
1143
{
1109
    $debug_cmd
1144
    $debug_cmd
1110
1145
1146
    $require_check_ifs_backslash
1147
1111
    func_quote_portable_result=$2
1148
    func_quote_portable_result=$2
1112
1149
1113
    # one-time-loop (easy break)
1150
    # one-time-loop (easy break)
Lines 1122-1129 Link Here
1122
      # Quote for eval.
1159
      # Quote for eval.
1123
      case $func_quote_portable_result in
1160
      case $func_quote_portable_result in
1124
        *[\\\`\"\$]*)
1161
        *[\\\`\"\$]*)
1125
          case $func_quote_portable_result in
1162
          # Fallback to sed for $func_check_bs_ifs_broken=:, or when the string
1126
            *[\[\*\?]*)
1163
          # contains the shell wildcard characters.
1164
          case $check_ifs_backshlash_broken$func_quote_portable_result in
1165
            :*|*[\[\*\?]*)
1127
              func_quote_portable_result=`$ECHO "$func_quote_portable_result" \
1166
              func_quote_portable_result=`$ECHO "$func_quote_portable_result" \
1128
                  | $SED "$sed_quote_subst"`
1167
                  | $SED "$sed_quote_subst"`
1129
              break
1168
              break
Lines 1497-1506 Link Here
1497
# This is free software.  There is NO warranty; not even for
1536
# This is free software.  There is NO warranty; not even for
1498
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
1537
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
1499
#
1538
#
1500
# Copyright (C) 2010-2018 Bootstrap Authors
1539
# Copyright (C) 2010-2019, 2021 Bootstrap Authors
1501
#
1540
#
1502
# This file is dual licensed under the terms of the MIT license
1541
# This file is dual licensed under the terms of the MIT license
1503
# <https://opensource.org/license/MIT>, and GPL version 3 or later
1542
# <https://opensource.org/license/MIT>, and GPL version 2 or later
1504
# <http://www.gnu.org/licenses/gpl-2.0.html>.  You must apply one of
1543
# <http://www.gnu.org/licenses/gpl-2.0.html>.  You must apply one of
1505
# these licenses when using or redistributing this software or any of
1544
# these licenses when using or redistributing this software or any of
1506
# the files within it.  See the URLs above, or the file `LICENSE`
1545
# the files within it.  See the URLs above, or the file `LICENSE`
Lines 1510-1516 Link Here
1510
# <https://github.com/gnulib-modules/bootstrap/issues>
1549
# <https://github.com/gnulib-modules/bootstrap/issues>
1511
1550
1512
# Set a version string for this script.
1551
# Set a version string for this script.
1513
scriptversion=2018-07-24.06; # UTC
1552
scriptversion=2019-02-19.15; # UTC
1514
1553
1515
1554
1516
## ------ ##
1555
## ------ ##
Lines 2056-2062 Link Here
2056
2095
2057
      func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'`
2096
      func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'`
2058
      func_split_equals_rhs=
2097
      func_split_equals_rhs=
2059
      test "x$func_split_equals_lhs" = "x$1" \
2098
      test "x$func_split_equals_lhs=" = "x$1" \
2060
        || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'`
2099
        || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'`
2061
  }
2100
  }
2062
fi #func_split_equals
2101
fi #func_split_equals
Lines 2082-2088 Link Here
2082
  {
2121
  {
2083
      $debug_cmd
2122
      $debug_cmd
2084
2123
2085
      func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'`
2124
      func_split_short_opt_name=`expr "x$1" : 'x\(-.\)'`
2086
      func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'`
2125
      func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'`
2087
  }
2126
  }
2088
fi #func_split_short_opt
2127
fi #func_split_short_opt
Lines 2176-2182 Link Here
2176
# End:
2215
# End:
2177
2216
2178
# Set a version string.
2217
# Set a version string.
2179
scriptversion='(GNU libtool) 2.4.6.42-b88ce-dirty'
2218
scriptversion='(GNU libtool) 2.4.7.4-1ec8f-dirty'
2180
2219
2181
2220
2182
# func_echo ARG...
2221
# func_echo ARG...
Lines 2267-2273 Link Here
2267
       compiler:       $LTCC
2306
       compiler:       $LTCC
2268
       compiler flags: $LTCFLAGS
2307
       compiler flags: $LTCFLAGS
2269
       linker:         $LD (gnu? $with_gnu_ld)
2308
       linker:         $LD (gnu? $with_gnu_ld)
2270
       version:        $progname (GNU libtool) 2.4.6.42-b88ce-dirty
2309
       version:        $progname (GNU libtool) 2.4.7.4-1ec8f-dirty
2271
       automake:       `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
2310
       automake:       `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
2272
       autoconf:       `($AUTOCONF --version) 2>/dev/null |$SED 1q`
2311
       autoconf:       `($AUTOCONF --version) 2>/dev/null |$SED 1q`
2273
2312
Lines 3862-3868 Link Here
3862
  -prefer-non-pic   try to build non-PIC objects only
3901
  -prefer-non-pic   try to build non-PIC objects only
3863
  -shared           do not build a '.o' file suitable for static linking
3902
  -shared           do not build a '.o' file suitable for static linking
3864
  -static           only build a '.o' file suitable for static linking
3903
  -static           only build a '.o' file suitable for static linking
3865
  -Wc,FLAG          pass FLAG directly to the compiler
3904
  -Wc,FLAG
3905
  -Xcompiler FLAG   pass FLAG directly to the compiler
3866
3906
3867
COMPILE-COMMAND is a command to be used in creating a 'standard' object file
3907
COMPILE-COMMAND is a command to be used in creating a 'standard' object file
3868
from the given SOURCEFILE.
3908
from the given SOURCEFILE.
Lines 3968-3973 Link Here
3968
  -weak LIBNAME     declare that the target provides the LIBNAME interface
4008
  -weak LIBNAME     declare that the target provides the LIBNAME interface
3969
  -Wc,FLAG
4009
  -Wc,FLAG
3970
  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
4010
  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
4011
  -Wa,FLAG
4012
  -Xassembler FLAG  pass linker-specific FLAG directly to the assembler
3971
  -Wl,FLAG
4013
  -Wl,FLAG
3972
  -Xlinker FLAG     pass linker-specific FLAG directly to the linker
4014
  -Xlinker FLAG     pass linker-specific FLAG directly to the linker
3973
  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
4015
  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
Lines 7064-7069 Link Here
7064
	  prev=
7106
	  prev=
7065
	  continue
7107
	  continue
7066
	  ;;
7108
	  ;;
7109
	xassembler)
7110
	  func_append compiler_flags " -Xassembler $qarg"
7111
	  prev=
7112
	  func_append compile_command " -Xassembler $qarg"
7113
	  func_append finalize_command " -Xassembler $qarg"
7114
	  continue
7115
	  ;;
7067
	xcclinker)
7116
	xcclinker)
7068
	  func_append linker_flags " $qarg"
7117
	  func_append linker_flags " $qarg"
7069
	  func_append compiler_flags " $qarg"
7118
	  func_append compiler_flags " $qarg"
Lines 7234-7240 Link Here
7234
	    # These systems don't actually have a C library (as such)
7283
	    # These systems don't actually have a C library (as such)
7235
	    test X-lc = "X$arg" && continue
7284
	    test X-lc = "X$arg" && continue
7236
	    ;;
7285
	    ;;
7237
	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
7286
	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*)
7238
	    # Do not include libc due to us having libc/libc_r.
7287
	    # Do not include libc due to us having libc/libc_r.
7239
	    test X-lc = "X$arg" && continue
7288
	    test X-lc = "X$arg" && continue
7240
	    ;;
7289
	    ;;
Lines 7254-7260 Link Here
7254
	  esac
7303
	  esac
7255
	elif test X-lc_r = "X$arg"; then
7304
	elif test X-lc_r = "X$arg"; then
7256
	 case $host in
7305
	 case $host in
7257
	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
7306
	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*)
7258
	   # Do not include libc_r directly, use -pthread flag.
7307
	   # Do not include libc_r directly, use -pthread flag.
7259
	   continue
7308
	   continue
7260
	   ;;
7309
	   ;;
Lines 7284-7291 Link Here
7284
	prev=xcompiler
7333
	prev=xcompiler
7285
	continue
7334
	continue
7286
	;;
7335
	;;
7287
7336
     # Solaris ld rejects as of 11.4. Refer to Oracle bug 22985199.
7288
      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
7337
     -pthread)
7338
	case $host in
7339
	  *solaris2*) ;;
7340
	  *)
7341
	    case "$new_inherited_linker_flags " in
7342
	        *" $arg "*) ;;
7343
	        * ) func_append new_inherited_linker_flags " $arg" ;;
7344
	    esac
7345
	  ;;
7346
	esac
7347
	continue
7348
	;;
7349
      -mt|-mthreads|-kthread|-Kthread|-pthreads|--thread-safe \
7289
      |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
7350
      |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
7290
	func_append compiler_flags " $arg"
7351
	func_append compiler_flags " $arg"
7291
	func_append compile_command " $arg"
7352
	func_append compile_command " $arg"
Lines 7452-7457 Link Here
7452
	arg=$func_stripname_result
7513
	arg=$func_stripname_result
7453
	;;
7514
	;;
7454
7515
7516
      -Xassembler)
7517
        prev=xassembler
7518
        continue
7519
        ;;
7520
7455
      -Xcompiler)
7521
      -Xcompiler)
7456
	prev=xcompiler
7522
	prev=xcompiler
7457
	continue
7523
	continue
Lines 7491-7500 Link Here
7491
      # -stdlib=*            select c++ std lib with clang
7557
      # -stdlib=*            select c++ std lib with clang
7492
      # -fsanitize=*         Clang/GCC memory and address sanitizer
7558
      # -fsanitize=*         Clang/GCC memory and address sanitizer
7493
      # -fuse-ld=*           Linker select flags for GCC
7559
      # -fuse-ld=*           Linker select flags for GCC
7560
      # -Wa,*                Pass flags directly to the assembler
7561
      # -Werror, -Werror=*   Report (specified) warnings as errors
7494
      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
7562
      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
7495
      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
7563
      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
7496
      -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
7564
      -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
7497
      -specs=*|-fsanitize=*|-fuse-ld=*)
7565
      -specs=*|-fsanitize=*|-fuse-ld=*|-Wa,*|-Werror|-Werror=*)
7498
        func_quote_arg pretty "$arg"
7566
        func_quote_arg pretty "$arg"
7499
	arg=$func_quote_arg_result
7567
	arg=$func_quote_arg_result
7500
        func_append compile_command " $arg"
7568
        func_append compile_command " $arg"
Lines 8851-8857 Link Here
8851
      test CXX = "$tagname" && {
8919
      test CXX = "$tagname" && {
8852
        case $host_os in
8920
        case $host_os in
8853
        linux*)
8921
        linux*)
8854
          case `$CC -V 2>&1 | sed 5q` in
8922
          case `$CC -V 2>&1 | $SED 5q` in
8855
          *Sun\ C*) # Sun C++ 5.9
8923
          *Sun\ C*) # Sun C++ 5.9
8856
            func_suncc_cstd_abi
8924
            func_suncc_cstd_abi
8857
8925
Lines 9024-9030 Link Here
9024
	  #
9092
	  #
9025
	  case $version_type in
9093
	  case $version_type in
9026
	  # correct linux to gnu/linux during the next big refactor
9094
	  # correct linux to gnu/linux during the next big refactor
9027
	  darwin|freebsd-elf|linux|osf|windows|none)
9095
	  darwin|freebsd-elf|linux|midnightbsd-elf|osf|windows|none)
9028
	    func_arith $number_major + $number_minor
9096
	    func_arith $number_major + $number_minor
9029
	    current=$func_arith_result
9097
	    current=$func_arith_result
9030
	    age=$number_minor
9098
	    age=$number_minor
Lines 9115-9121 Link Here
9115
	  versuffix=.$current.$revision
9183
	  versuffix=.$current.$revision
9116
	  ;;
9184
	  ;;
9117
9185
9118
	freebsd-elf)
9186
	freebsd-elf | midnightbsd-elf)
9119
	  func_arith $current - $age
9187
	  func_arith $current - $age
9120
	  major=.$func_arith_result
9188
	  major=.$func_arith_result
9121
	  versuffix=$major.$age.$revision
9189
	  versuffix=$major.$age.$revision
Lines 9341-9347 Link Here
9341
	  *-*-netbsd*)
9409
	  *-*-netbsd*)
9342
	    # Don't link with libc until the a.out ld.so is fixed.
9410
	    # Don't link with libc until the a.out ld.so is fixed.
9343
	    ;;
9411
	    ;;
9344
	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
9412
	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*)
9345
	    # Do not include libc due to us having libc/libc_r.
9413
	    # Do not include libc due to us having libc/libc_r.
9346
	    ;;
9414
	    ;;
9347
	  *-*-sco3.2v5* | *-*-sco5v6*)
9415
	  *-*-sco3.2v5* | *-*-sco5v6*)
(-)xz-5.2.5/build-aux/missing (-1 / +1 lines)
Lines 3-9 Link Here
3
3
4
scriptversion=2018-03-07.03; # UTC
4
scriptversion=2018-03-07.03; # UTC
5
5
6
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
6
# Copyright (C) 1996-2021 Free Software Foundation, Inc.
7
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
7
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
8
8
9
# This program is free software; you can redistribute it and/or modify
9
# This program is free software; you can redistribute it and/or modify
(-)xz-5.2.5/config.h.in (-37 / +120 lines)
Lines 31-40 Link Here
31
/* Define to 1 if you have the `CC_SHA256_Init' function. */
31
/* Define to 1 if you have the `CC_SHA256_Init' function. */
32
#undef HAVE_CC_SHA256_INIT
32
#undef HAVE_CC_SHA256_INIT
33
33
34
/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the
35
   CoreFoundation framework. */
36
#undef HAVE_CFLOCALECOPYCURRENT
37
38
/* Define to 1 if you have the Mac OS X function
34
/* Define to 1 if you have the Mac OS X function
39
   CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */
35
   CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */
40
#undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES
36
#undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES
Lines 55-81 Link Here
55
/* Define to 1 if you have the `clock_gettime' function. */
51
/* Define to 1 if you have the `clock_gettime' function. */
56
#undef HAVE_CLOCK_GETTIME
52
#undef HAVE_CLOCK_GETTIME
57
53
54
/* Define to 1 if `CLOCK_MONOTONIC' is declared in <time.h>. */
55
#undef HAVE_CLOCK_MONOTONIC
56
58
/* Define to 1 if you have the <CommonCrypto/CommonDigest.h> header file. */
57
/* Define to 1 if you have the <CommonCrypto/CommonDigest.h> header file. */
59
#undef HAVE_COMMONCRYPTO_COMMONDIGEST_H
58
#undef HAVE_COMMONCRYPTO_COMMONDIGEST_H
60
59
60
/* Define to 1 if you have the <cpuid.h> header file. */
61
#undef HAVE_CPUID_H
62
61
/* Define if the GNU dcgettext() function is already present or preinstalled.
63
/* Define if the GNU dcgettext() function is already present or preinstalled.
62
   */
64
   */
63
#undef HAVE_DCGETTEXT
65
#undef HAVE_DCGETTEXT
64
66
65
/* Define to 1 if you have the declaration of `CLOCK_MONOTONIC', and to 0 if
66
   you don't. */
67
#undef HAVE_DECL_CLOCK_MONOTONIC
68
69
/* Define to 1 if you have the declaration of `program_invocation_name', and
70
   to 0 if you don't. */
71
#undef HAVE_DECL_PROGRAM_INVOCATION_NAME
72
73
/* Define to 1 if any of HAVE_DECODER_foo have been defined. */
67
/* Define to 1 if any of HAVE_DECODER_foo have been defined. */
74
#undef HAVE_DECODERS
68
#undef HAVE_DECODERS
75
69
76
/* Define to 1 if arm decoder is enabled. */
70
/* Define to 1 if arm decoder is enabled. */
77
#undef HAVE_DECODER_ARM
71
#undef HAVE_DECODER_ARM
78
72
73
/* Define to 1 if arm64 decoder is enabled. */
74
#undef HAVE_DECODER_ARM64
75
79
/* Define to 1 if armthumb decoder is enabled. */
76
/* Define to 1 if armthumb decoder is enabled. */
80
#undef HAVE_DECODER_ARMTHUMB
77
#undef HAVE_DECODER_ARMTHUMB
81
78
Lines 109-114 Link Here
109
/* Define to 1 if arm encoder is enabled. */
106
/* Define to 1 if arm encoder is enabled. */
110
#undef HAVE_ENCODER_ARM
107
#undef HAVE_ENCODER_ARM
111
108
109
/* Define to 1 if arm64 encoder is enabled. */
110
#undef HAVE_ENCODER_ARM64
111
112
/* Define to 1 if armthumb encoder is enabled. */
112
/* Define to 1 if armthumb encoder is enabled. */
113
#undef HAVE_ENCODER_ARMTHUMB
113
#undef HAVE_ENCODER_ARMTHUMB
114
114
Lines 136-141 Link Here
136
/* Define to 1 if you have the <fcntl.h> header file. */
136
/* Define to 1 if you have the <fcntl.h> header file. */
137
#undef HAVE_FCNTL_H
137
#undef HAVE_FCNTL_H
138
138
139
/* Define to 1 if __attribute__((__constructor__)) is supported for functions.
140
   */
141
#undef HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR
142
139
/* Define to 1 if you have the `futimens' function. */
143
/* Define to 1 if you have the `futimens' function. */
140
#undef HAVE_FUTIMENS
144
#undef HAVE_FUTIMENS
141
145
Lines 166-177 Link Here
166
/* Define to 1 if you have the <limits.h> header file. */
170
/* Define to 1 if you have the <limits.h> header file. */
167
#undef HAVE_LIMITS_H
171
#undef HAVE_LIMITS_H
168
172
173
/* Define to 1 if .lz (lzip) decompression support is enabled. */
174
#undef HAVE_LZIP_DECODER
175
169
/* Define to 1 if mbrtowc and mbstate_t are properly declared. */
176
/* Define to 1 if mbrtowc and mbstate_t are properly declared. */
170
#undef HAVE_MBRTOWC
177
#undef HAVE_MBRTOWC
171
178
172
/* Define to 1 if you have the <memory.h> header file. */
173
#undef HAVE_MEMORY_H
174
175
/* Define to 1 to enable bt2 match finder. */
179
/* Define to 1 to enable bt2 match finder. */
176
#undef HAVE_MF_BT2
180
#undef HAVE_MF_BT2
177
181
Lines 187-198 Link Here
187
/* Define to 1 to enable hc4 match finder. */
191
/* Define to 1 to enable hc4 match finder. */
188
#undef HAVE_MF_HC4
192
#undef HAVE_MF_HC4
189
193
194
/* Define to 1 if you have the <minix/config.h> header file. */
195
#undef HAVE_MINIX_CONFIG_H
196
190
/* Define to 1 if getopt.h declares extern int optreset. */
197
/* Define to 1 if getopt.h declares extern int optreset. */
191
#undef HAVE_OPTRESET
198
#undef HAVE_OPTRESET
192
199
200
/* Define to 1 if you have the `pledge' function. */
201
#undef HAVE_PLEDGE
202
193
/* Define to 1 if you have the `posix_fadvise' function. */
203
/* Define to 1 if you have the `posix_fadvise' function. */
194
#undef HAVE_POSIX_FADVISE
204
#undef HAVE_POSIX_FADVISE
195
205
206
/* Define to 1 if `program_invocation_name' is declared in <errno.h>. */
207
#undef HAVE_PROGRAM_INVOCATION_NAME
208
196
/* Define to 1 if you have the `pthread_condattr_setclock' function. */
209
/* Define to 1 if you have the `pthread_condattr_setclock' function. */
197
#undef HAVE_PTHREAD_CONDATTR_SETCLOCK
210
#undef HAVE_PTHREAD_CONDATTR_SETCLOCK
198
211
Lines 226-231 Link Here
226
/* Define to 1 if you have the <stdint.h> header file. */
239
/* Define to 1 if you have the <stdint.h> header file. */
227
#undef HAVE_STDINT_H
240
#undef HAVE_STDINT_H
228
241
242
/* Define to 1 if you have the <stdio.h> header file. */
243
#undef HAVE_STDIO_H
244
229
/* Define to 1 if you have the <stdlib.h> header file. */
245
/* Define to 1 if you have the <stdlib.h> header file. */
230
#undef HAVE_STDLIB_H
246
#undef HAVE_STDLIB_H
231
247
Lines 250-255 Link Here
250
/* Define to 1 if `st_uatime' is a member of `struct stat'. */
266
/* Define to 1 if `st_uatime' is a member of `struct stat'. */
251
#undef HAVE_STRUCT_STAT_ST_UATIME
267
#undef HAVE_STRUCT_STAT_ST_UATIME
252
268
269
/* Define to 1 to if GNU/Linux-specific details are unconditionally wanted for
270
   symbol versioning. Define to 2 to if these are wanted only if also PIC is
271
   defined (allows building both shared and static liblzma at the same time
272
   with Libtool if neither --with-pic nor --without-pic is used). This define
273
   must be used together with liblzma_linux.map. */
274
#undef HAVE_SYMBOL_VERSIONS_LINUX
275
253
/* Define to 1 if you have the <sys/byteorder.h> header file. */
276
/* Define to 1 if you have the <sys/byteorder.h> header file. */
254
#undef HAVE_SYS_BYTEORDER_H
277
#undef HAVE_SYS_BYTEORDER_H
255
278
Lines 277-282 Link Here
277
/* Define to 1 if you have the <unistd.h> header file. */
300
/* Define to 1 if you have the <unistd.h> header file. */
278
#undef HAVE_UNISTD_H
301
#undef HAVE_UNISTD_H
279
302
303
/* Define to 1 if _mm_set_epi64x and _mm_clmulepi64_si128 are usable. See
304
   configure.ac for details. */
305
#undef HAVE_USABLE_CLMUL
306
280
/* Define to 1 if you have the `utime' function. */
307
/* Define to 1 if you have the `utime' function. */
281
#undef HAVE_UTIME
308
#undef HAVE_UTIME
282
309
Lines 287-292 Link Here
287
   declarations. */
314
   declarations. */
288
#undef HAVE_VISIBILITY
315
#undef HAVE_VISIBILITY
289
316
317
/* Define to 1 if you have the <wchar.h> header file. */
318
#undef HAVE_WCHAR_H
319
290
/* Define to 1 if you have the `wcwidth' function. */
320
/* Define to 1 if you have the `wcwidth' function. */
291
#undef HAVE_WCWIDTH
321
#undef HAVE_WCWIDTH
292
322
Lines 352-358 Link Here
352
/* The size of `size_t', as computed by sizeof. */
382
/* The size of `size_t', as computed by sizeof. */
353
#undef SIZEOF_SIZE_T
383
#undef SIZEOF_SIZE_T
354
384
355
/* Define to 1 if you have the ANSI C header files. */
385
/* Define to 1 if all of the C90 standard headers exist (not just the ones
386
   required in a freestanding environment). This macro is provided for
387
   backward compatibility; new code need not use it. */
356
#undef STDC_HEADERS
388
#undef STDC_HEADERS
357
389
358
/* Define to 1 if the number of available CPU cores can be detected with
390
/* Define to 1 if the number of available CPU cores can be detected with
Lines 375-382 Link Here
375
   sysctl(). */
407
   sysctl(). */
376
#undef TUKLIB_CPUCORES_SYSCTL
408
#undef TUKLIB_CPUCORES_SYSCTL
377
409
378
/* Define to 1 if the system supports fast unaligned access to 16-bit and
410
/* Define to 1 if the system supports fast unaligned access to 16-bit, 32-bit,
379
   32-bit integers. */
411
   and 64-bit integers. */
380
#undef TUKLIB_FAST_UNALIGNED_ACCESS
412
#undef TUKLIB_FAST_UNALIGNED_ACCESS
381
413
382
/* Define to 1 if the amount of physical memory can be detected with
414
/* Define to 1 if the amount of physical memory can be detected with
Lines 416-436 Link Here
416
#ifndef _ALL_SOURCE
448
#ifndef _ALL_SOURCE
417
# undef _ALL_SOURCE
449
# undef _ALL_SOURCE
418
#endif
450
#endif
451
/* Enable general extensions on macOS.  */
452
#ifndef _DARWIN_C_SOURCE
453
# undef _DARWIN_C_SOURCE
454
#endif
455
/* Enable general extensions on Solaris.  */
456
#ifndef __EXTENSIONS__
457
# undef __EXTENSIONS__
458
#endif
419
/* Enable GNU extensions on systems that have them.  */
459
/* Enable GNU extensions on systems that have them.  */
420
#ifndef _GNU_SOURCE
460
#ifndef _GNU_SOURCE
421
# undef _GNU_SOURCE
461
# undef _GNU_SOURCE
422
#endif
462
#endif
423
/* Enable threading extensions on Solaris.  */
463
/* Enable X/Open compliant socket functions that do not require linking
464
   with -lxnet on HP-UX 11.11.  */
465
#ifndef _HPUX_ALT_XOPEN_SOCKET_API
466
# undef _HPUX_ALT_XOPEN_SOCKET_API
467
#endif
468
/* Identify the host operating system as Minix.
469
   This macro does not affect the system headers' behavior.
470
   A future release of Autoconf may stop defining this macro.  */
471
#ifndef _MINIX
472
# undef _MINIX
473
#endif
474
/* Enable general extensions on NetBSD.
475
   Enable NetBSD compatibility extensions on Minix.  */
476
#ifndef _NETBSD_SOURCE
477
# undef _NETBSD_SOURCE
478
#endif
479
/* Enable OpenBSD compatibility extensions on NetBSD.
480
   Oddly enough, this does nothing on OpenBSD.  */
481
#ifndef _OPENBSD_SOURCE
482
# undef _OPENBSD_SOURCE
483
#endif
484
/* Define to 1 if needed for POSIX-compatible behavior.  */
485
#ifndef _POSIX_SOURCE
486
# undef _POSIX_SOURCE
487
#endif
488
/* Define to 2 if needed for POSIX-compatible behavior.  */
489
#ifndef _POSIX_1_SOURCE
490
# undef _POSIX_1_SOURCE
491
#endif
492
/* Enable POSIX-compatible threading on Solaris.  */
424
#ifndef _POSIX_PTHREAD_SEMANTICS
493
#ifndef _POSIX_PTHREAD_SEMANTICS
425
# undef _POSIX_PTHREAD_SEMANTICS
494
# undef _POSIX_PTHREAD_SEMANTICS
426
#endif
495
#endif
496
/* Enable extensions specified by ISO/IEC TS 18661-5:2014.  */
497
#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
498
# undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
499
#endif
500
/* Enable extensions specified by ISO/IEC TS 18661-1:2014.  */
501
#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
502
# undef __STDC_WANT_IEC_60559_BFP_EXT__
503
#endif
504
/* Enable extensions specified by ISO/IEC TS 18661-2:2015.  */
505
#ifndef __STDC_WANT_IEC_60559_DFP_EXT__
506
# undef __STDC_WANT_IEC_60559_DFP_EXT__
507
#endif
508
/* Enable extensions specified by ISO/IEC TS 18661-4:2015.  */
509
#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
510
# undef __STDC_WANT_IEC_60559_FUNCS_EXT__
511
#endif
512
/* Enable extensions specified by ISO/IEC TS 18661-3:2015.  */
513
#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
514
# undef __STDC_WANT_IEC_60559_TYPES_EXT__
515
#endif
516
/* Enable extensions specified by ISO/IEC TR 24731-2:2010.  */
517
#ifndef __STDC_WANT_LIB_EXT2__
518
# undef __STDC_WANT_LIB_EXT2__
519
#endif
520
/* Enable extensions specified by ISO/IEC 24747:2009.  */
521
#ifndef __STDC_WANT_MATH_SPEC_FUNCS__
522
# undef __STDC_WANT_MATH_SPEC_FUNCS__
523
#endif
427
/* Enable extensions on HP NonStop.  */
524
/* Enable extensions on HP NonStop.  */
428
#ifndef _TANDEM_SOURCE
525
#ifndef _TANDEM_SOURCE
429
# undef _TANDEM_SOURCE
526
# undef _TANDEM_SOURCE
430
#endif
527
#endif
431
/* Enable general extensions on Solaris.  */
528
/* Enable X/Open extensions.  Define to 500 only if necessary
432
#ifndef __EXTENSIONS__
529
   to make mbstate_t available.  */
433
# undef __EXTENSIONS__
530
#ifndef _XOPEN_SOURCE
531
# undef _XOPEN_SOURCE
434
#endif
532
#endif
435
533
436
534
Lines 449-474 Link Here
449
# endif
547
# endif
450
#endif
548
#endif
451
549
452
/* Enable large inode numbers on Mac OS X 10.5.  */
453
#ifndef _DARWIN_USE_64_BIT_INODE
454
# define _DARWIN_USE_64_BIT_INODE 1
455
#endif
456
457
/* Number of bits in a file offset, on hosts where this is settable. */
550
/* Number of bits in a file offset, on hosts where this is settable. */
458
#undef _FILE_OFFSET_BITS
551
#undef _FILE_OFFSET_BITS
459
552
460
/* Define for large files, on AIX-style hosts. */
553
/* Define for large files, on AIX-style hosts. */
461
#undef _LARGE_FILES
554
#undef _LARGE_FILES
462
463
/* Define to 1 if on MINIX. */
464
#undef _MINIX
465
466
/* Define to 2 if the system does not provide POSIX.1 features except with
467
   this defined. */
468
#undef _POSIX_1_SOURCE
469
470
/* Define to 1 if you need to in order for `stat' and other things to work. */
471
#undef _POSIX_SOURCE
472
555
473
/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
556
/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
474
   <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
557
   <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
(-)xz-5.2.5/configure (-3991 / +5627 lines)
Lines 1-11 Link Here
1
#! /bin/sh
1
#! /bin/sh
2
# Guess values for system-dependent variables and create Makefiles.
2
# Guess values for system-dependent variables and create Makefiles.
3
# Generated by GNU Autoconf 2.69 for XZ Utils 5.2.5.
3
# Generated by GNU Autoconf 2.71 for XZ Utils 5.4.3.
4
#
4
#
5
# Report bugs to <lasse.collin@tukaani.org>.
5
# Report bugs to <xz@tukaani.org>.
6
#
6
#
7
#
7
#
8
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
8
# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
9
# Inc.
9
#
10
#
10
#
11
#
11
# This configure script is free software; the Free Software Foundation
12
# This configure script is free software; the Free Software Foundation
Lines 16-29 Link Here
16
17
17
# Be more Bourne compatible
18
# Be more Bourne compatible
18
DUALCASE=1; export DUALCASE # for MKS sh
19
DUALCASE=1; export DUALCASE # for MKS sh
19
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
20
as_nop=:
21
if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
22
then :
20
  emulate sh
23
  emulate sh
21
  NULLCMD=:
24
  NULLCMD=:
22
  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
25
  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
23
  # is contrary to our usage.  Disable this feature.
26
  # is contrary to our usage.  Disable this feature.
24
  alias -g '${1+"$@"}'='"$@"'
27
  alias -g '${1+"$@"}'='"$@"'
25
  setopt NO_GLOB_SUBST
28
  setopt NO_GLOB_SUBST
26
else
29
else $as_nop
27
  case `(set -o) 2>/dev/null` in #(
30
  case `(set -o) 2>/dev/null` in #(
28
  *posix*) :
31
  *posix*) :
29
    set -o posix ;; #(
32
    set -o posix ;; #(
Lines 33-78 Link Here
33
fi
36
fi
34
37
35
38
39
40
# Reset variables that may have inherited troublesome values from
41
# the environment.
42
43
# IFS needs to be set, to space, tab, and newline, in precisely that order.
44
# (If _AS_PATH_WALK were called with IFS unset, it would have the
45
# side effect of setting IFS to empty, thus disabling word splitting.)
46
# Quoting is to prevent editors from complaining about space-tab.
36
as_nl='
47
as_nl='
37
'
48
'
38
export as_nl
49
export as_nl
39
# Printing a long string crashes Solaris 7 /usr/bin/printf.
50
IFS=" ""	$as_nl"
40
as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
41
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
42
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
43
# Prefer a ksh shell builtin over an external printf program on Solaris,
44
# but without wasting forks for bash or zsh.
45
if test -z "$BASH_VERSION$ZSH_VERSION" \
46
    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
47
  as_echo='print -r --'
48
  as_echo_n='print -rn --'
49
elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
50
  as_echo='printf %s\n'
51
  as_echo_n='printf %s'
52
else
53
  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
54
    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
55
    as_echo_n='/usr/ucb/echo -n'
56
  else
57
    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
58
    as_echo_n_body='eval
59
      arg=$1;
60
      case $arg in #(
61
      *"$as_nl"*)
62
	expr "X$arg" : "X\\(.*\\)$as_nl";
63
	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
64
      esac;
65
      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
66
    '
67
    export as_echo_n_body
68
    as_echo_n='sh -c $as_echo_n_body as_echo'
69
  fi
70
  export as_echo_body
71
  as_echo='sh -c $as_echo_body as_echo'
72
fi
73
51
52
PS1='$ '
53
PS2='> '
54
PS4='+ '
55
56
# Ensure predictable behavior from utilities with locale-dependent output.
57
LC_ALL=C
58
export LC_ALL
59
LANGUAGE=C
60
export LANGUAGE
61
62
# We cannot yet rely on "unset" to work, but we need these variables
63
# to be unset--not just set to an empty or harmless value--now, to
64
# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh).  This construct
65
# also avoids known problems related to "unset" and subshell syntax
66
# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
67
for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
68
do eval test \${$as_var+y} \
69
  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
70
done
71
72
# Ensure that fds 0, 1, and 2 are open.
73
if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
74
if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
75
if (exec 3>&2)            ; then :; else exec 2>/dev/null; fi
76
74
# The user is always right.
77
# The user is always right.
75
if test "${PATH_SEPARATOR+set}" != set; then
78
if ${PATH_SEPARATOR+false} :; then
76
  PATH_SEPARATOR=:
79
  PATH_SEPARATOR=:
77
  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
80
  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
78
    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
81
    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
Lines 81-93 Link Here
81
fi
84
fi
82
85
83
86
84
# IFS
85
# We need space, tab and new line, in precisely that order.  Quoting is
86
# there to prevent editors from complaining about space-tab.
87
# (If _AS_PATH_WALK were called with IFS unset, it would disable word
88
# splitting by setting IFS to empty value.)
89
IFS=" ""	$as_nl"
90
91
# Find who we are.  Look in the path if we contain no directory separator.
87
# Find who we are.  Look in the path if we contain no directory separator.
92
as_myself=
88
as_myself=
93
case $0 in #((
89
case $0 in #((
Lines 96-103 Link Here
96
for as_dir in $PATH
92
for as_dir in $PATH
97
do
93
do
98
  IFS=$as_save_IFS
94
  IFS=$as_save_IFS
99
  test -z "$as_dir" && as_dir=.
95
  case $as_dir in #(((
100
    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
96
    '') as_dir=./ ;;
97
    */) ;;
98
    *) as_dir=$as_dir/ ;;
99
  esac
100
    test -r "$as_dir$0" && as_myself=$as_dir$0 && break
101
  done
101
  done
102
IFS=$as_save_IFS
102
IFS=$as_save_IFS
103
103
Lines 109-139 Link Here
109
  as_myself=$0
109
  as_myself=$0
110
fi
110
fi
111
if test ! -f "$as_myself"; then
111
if test ! -f "$as_myself"; then
112
  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
112
  printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
113
  exit 1
113
  exit 1
114
fi
114
fi
115
115
116
# Unset variables that we do not need and which cause bugs (e.g. in
117
# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
118
# suppresses any "Segmentation fault" message there.  '((' could
119
# trigger a bug in pdksh 5.2.14.
120
for as_var in BASH_ENV ENV MAIL MAILPATH
121
do eval test x\${$as_var+set} = xset \
122
  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
123
done
124
PS1='$ '
125
PS2='> '
126
PS4='+ '
127
116
128
# NLS nuisances.
129
LC_ALL=C
130
export LC_ALL
131
LANGUAGE=C
132
export LANGUAGE
133
134
# CDPATH.
135
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
136
137
# Use a proper internal environment variable to ensure we don't fall
117
# Use a proper internal environment variable to ensure we don't fall
138
  # into an infinite loop, continuously re-executing ourselves.
118
  # into an infinite loop, continuously re-executing ourselves.
139
  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
119
  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
Lines 154-173 Link Here
154
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
134
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
155
# Admittedly, this is quite paranoid, since all the known shells bail
135
# Admittedly, this is quite paranoid, since all the known shells bail
156
# out after a failed `exec'.
136
# out after a failed `exec'.
157
$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
137
printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
158
as_fn_exit 255
138
exit 255
159
  fi
139
  fi
160
  # We don't want this to propagate to other subprocesses.
140
  # We don't want this to propagate to other subprocesses.
161
          { _as_can_reexec=; unset _as_can_reexec;}
141
          { _as_can_reexec=; unset _as_can_reexec;}
162
if test "x$CONFIG_SHELL" = x; then
142
if test "x$CONFIG_SHELL" = x; then
163
  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
143
  as_bourne_compatible="as_nop=:
144
if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
145
then :
164
  emulate sh
146
  emulate sh
165
  NULLCMD=:
147
  NULLCMD=:
166
  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
148
  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
167
  # is contrary to our usage.  Disable this feature.
149
  # is contrary to our usage.  Disable this feature.
168
  alias -g '\${1+\"\$@\"}'='\"\$@\"'
150
  alias -g '\${1+\"\$@\"}'='\"\$@\"'
169
  setopt NO_GLOB_SUBST
151
  setopt NO_GLOB_SUBST
170
else
152
else \$as_nop
171
  case \`(set -o) 2>/dev/null\` in #(
153
  case \`(set -o) 2>/dev/null\` in #(
172
  *posix*) :
154
  *posix*) :
173
    set -o posix ;; #(
155
    set -o posix ;; #(
Lines 187-198 Link Here
187
as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
169
as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
188
as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
170
as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
189
as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
171
as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
190
if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
172
if ( set x; as_fn_ret_success y && test x = \"\$1\" )
173
then :
191
174
192
else
175
else \$as_nop
193
  exitcode=1; echo positional parameters were not saved.
176
  exitcode=1; echo positional parameters were not saved.
194
fi
177
fi
195
test x\$exitcode = x0 || exit 1
178
test x\$exitcode = x0 || exit 1
179
blah=\$(echo \$(echo blah))
180
test x\"\$blah\" = xblah || exit 1
196
test -x / || exit 1"
181
test -x / || exit 1"
197
  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
182
  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
198
  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
183
  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
Lines 207-236 Link Here
207
    PATH=/empty FPATH=/empty; export PATH FPATH
192
    PATH=/empty FPATH=/empty; export PATH FPATH
208
    test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
193
    test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
209
      || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1"
194
      || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1"
210
  if (eval "$as_required") 2>/dev/null; then :
195
  if (eval "$as_required") 2>/dev/null
196
then :
211
  as_have_required=yes
197
  as_have_required=yes
212
else
198
else $as_nop
213
  as_have_required=no
199
  as_have_required=no
214
fi
200
fi
215
  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
201
  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
202
then :
216
203
217
else
204
else $as_nop
218
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
205
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
219
as_found=false
206
as_found=false
220
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
207
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
221
do
208
do
222
  IFS=$as_save_IFS
209
  IFS=$as_save_IFS
223
  test -z "$as_dir" && as_dir=.
210
  case $as_dir in #(((
211
    '') as_dir=./ ;;
212
    */) ;;
213
    *) as_dir=$as_dir/ ;;
214
  esac
224
  as_found=:
215
  as_found=:
225
  case $as_dir in #(
216
  case $as_dir in #(
226
	 /*)
217
	 /*)
227
	   for as_base in sh bash ksh sh5; do
218
	   for as_base in sh bash ksh sh5; do
228
	     # Try only shells that exist, to save several forks.
219
	     # Try only shells that exist, to save several forks.
229
	     as_shell=$as_dir/$as_base
220
	     as_shell=$as_dir$as_base
230
	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
221
	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
231
		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
222
		    as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null
223
then :
232
  CONFIG_SHELL=$as_shell as_have_required=yes
224
  CONFIG_SHELL=$as_shell as_have_required=yes
233
		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
225
		   if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null
226
then :
234
  break 2
227
  break 2
235
fi
228
fi
236
fi
229
fi
Lines 238-251 Link Here
238
       esac
231
       esac
239
  as_found=false
232
  as_found=false
240
done
233
done
241
$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
242
	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
243
  CONFIG_SHELL=$SHELL as_have_required=yes
244
fi; }
245
IFS=$as_save_IFS
234
IFS=$as_save_IFS
235
if $as_found
236
then :
246
237
238
else $as_nop
239
  if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
240
	      as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
241
then :
242
  CONFIG_SHELL=$SHELL as_have_required=yes
243
fi
244
fi
247
245
248
      if test "x$CONFIG_SHELL" != x; then :
246
247
      if test "x$CONFIG_SHELL" != x
248
then :
249
  export CONFIG_SHELL
249
  export CONFIG_SHELL
250
             # We cannot yet assume a decent shell, so we have to provide a
250
             # We cannot yet assume a decent shell, so we have to provide a
251
# neutralization value for shells without unset; and this also
251
# neutralization value for shells without unset; and this also
Lines 263-284 Link Here
263
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
263
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
264
# Admittedly, this is quite paranoid, since all the known shells bail
264
# Admittedly, this is quite paranoid, since all the known shells bail
265
# out after a failed `exec'.
265
# out after a failed `exec'.
266
$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
266
printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
267
exit 255
267
exit 255
268
fi
268
fi
269
269
270
    if test x$as_have_required = xno; then :
270
    if test x$as_have_required = xno
271
  $as_echo "$0: This script requires a shell more modern than all"
271
then :
272
  $as_echo "$0: the shells that I found on your system."
272
  printf "%s\n" "$0: This script requires a shell more modern than all"
273
  if test x${ZSH_VERSION+set} = xset ; then
273
  printf "%s\n" "$0: the shells that I found on your system."
274
    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
274
  if test ${ZSH_VERSION+y} ; then
275
    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
275
    printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
276
    printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
276
  else
277
  else
277
    $as_echo "$0: Please tell bug-autoconf@gnu.org and
278
    printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and xz@tukaani.org
278
$0: lasse.collin@tukaani.org about your system, including
279
$0: about your system, including any error possibly output
279
$0: any error possibly output before this message. Then
280
$0: before this message. Then install a modern shell, or
280
$0: install a modern shell, or manually run the script
281
$0: manually run the script under such a shell if you do
281
$0: under such a shell if you do have one."
282
$0: have one."
282
  fi
283
  fi
283
  exit 1
284
  exit 1
284
fi
285
fi
Lines 302-307 Link Here
302
}
303
}
303
as_unset=as_fn_unset
304
as_unset=as_fn_unset
304
305
306
305
# as_fn_set_status STATUS
307
# as_fn_set_status STATUS
306
# -----------------------
308
# -----------------------
307
# Set $? to STATUS, without forking.
309
# Set $? to STATUS, without forking.
Lines 319-324 Link Here
319
  as_fn_set_status $1
321
  as_fn_set_status $1
320
  exit $1
322
  exit $1
321
} # as_fn_exit
323
} # as_fn_exit
324
# as_fn_nop
325
# ---------
326
# Do nothing but, unlike ":", preserve the value of $?.
327
as_fn_nop ()
328
{
329
  return $?
330
}
331
as_nop=as_fn_nop
322
332
323
# as_fn_mkdir_p
333
# as_fn_mkdir_p
324
# -------------
334
# -------------
Lines 333-339 Link Here
333
    as_dirs=
343
    as_dirs=
334
    while :; do
344
    while :; do
335
      case $as_dir in #(
345
      case $as_dir in #(
336
      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
346
      *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
337
      *) as_qdir=$as_dir;;
347
      *) as_qdir=$as_dir;;
338
      esac
348
      esac
339
      as_dirs="'$as_qdir' $as_dirs"
349
      as_dirs="'$as_qdir' $as_dirs"
Lines 342-348 Link Here
342
	 X"$as_dir" : 'X\(//\)[^/]' \| \
352
	 X"$as_dir" : 'X\(//\)[^/]' \| \
343
	 X"$as_dir" : 'X\(//\)$' \| \
353
	 X"$as_dir" : 'X\(//\)$' \| \
344
	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
354
	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
345
$as_echo X"$as_dir" |
355
printf "%s\n" X"$as_dir" |
346
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
356
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
347
	    s//\1/
357
	    s//\1/
348
	    q
358
	    q
Lines 381-392 Link Here
381
# advantage of any shell optimizations that allow amortized linear growth over
391
# advantage of any shell optimizations that allow amortized linear growth over
382
# repeated appends, instead of the typical quadratic growth present in naive
392
# repeated appends, instead of the typical quadratic growth present in naive
383
# implementations.
393
# implementations.
384
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
394
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
395
then :
385
  eval 'as_fn_append ()
396
  eval 'as_fn_append ()
386
  {
397
  {
387
    eval $1+=\$2
398
    eval $1+=\$2
388
  }'
399
  }'
389
else
400
else $as_nop
390
  as_fn_append ()
401
  as_fn_append ()
391
  {
402
  {
392
    eval $1=\$$1\$2
403
    eval $1=\$$1\$2
Lines 398-415 Link Here
398
# Perform arithmetic evaluation on the ARGs, and store the result in the
409
# Perform arithmetic evaluation on the ARGs, and store the result in the
399
# global $as_val. Take advantage of shells that can avoid forks. The arguments
410
# global $as_val. Take advantage of shells that can avoid forks. The arguments
400
# must be portable across $(()) and expr.
411
# must be portable across $(()) and expr.
401
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
412
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
413
then :
402
  eval 'as_fn_arith ()
414
  eval 'as_fn_arith ()
403
  {
415
  {
404
    as_val=$(( $* ))
416
    as_val=$(( $* ))
405
  }'
417
  }'
406
else
418
else $as_nop
407
  as_fn_arith ()
419
  as_fn_arith ()
408
  {
420
  {
409
    as_val=`expr "$@" || test $? -eq 1`
421
    as_val=`expr "$@" || test $? -eq 1`
410
  }
422
  }
411
fi # as_fn_arith
423
fi # as_fn_arith
412
424
425
# as_fn_nop
426
# ---------
427
# Do nothing but, unlike ":", preserve the value of $?.
428
as_fn_nop ()
429
{
430
  return $?
431
}
432
as_nop=as_fn_nop
413
433
414
# as_fn_error STATUS ERROR [LINENO LOG_FD]
434
# as_fn_error STATUS ERROR [LINENO LOG_FD]
415
# ----------------------------------------
435
# ----------------------------------------
Lines 421-429 Link Here
421
  as_status=$1; test $as_status -eq 0 && as_status=1
441
  as_status=$1; test $as_status -eq 0 && as_status=1
422
  if test "$4"; then
442
  if test "$4"; then
423
    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
443
    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
424
    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
444
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
425
  fi
445
  fi
426
  $as_echo "$as_me: error: $2" >&2
446
  printf "%s\n" "$as_me: error: $2" >&2
427
  as_fn_exit $as_status
447
  as_fn_exit $as_status
428
} # as_fn_error
448
} # as_fn_error
429
449
Lines 450-456 Link Here
450
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
470
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
451
	 X"$0" : 'X\(//\)$' \| \
471
	 X"$0" : 'X\(//\)$' \| \
452
	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
472
	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
453
$as_echo X/"$0" |
473
printf "%s\n" X/"$0" |
454
    sed '/^.*\/\([^/][^/]*\)\/*$/{
474
    sed '/^.*\/\([^/][^/]*\)\/*$/{
455
	    s//\1/
475
	    s//\1/
456
	    q
476
	    q
Lines 494-500 Link Here
494
      s/-\n.*//
514
      s/-\n.*//
495
    ' >$as_me.lineno &&
515
    ' >$as_me.lineno &&
496
  chmod +x "$as_me.lineno" ||
516
  chmod +x "$as_me.lineno" ||
497
    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
517
    { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
498
518
499
  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
519
  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
500
  # already done that, so ensure we don't try to do so again and fall
520
  # already done that, so ensure we don't try to do so again and fall
Lines 508-513 Link Here
508
  exit
528
  exit
509
}
529
}
510
530
531
532
# Determine whether it's possible to make 'echo' print without a newline.
533
# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
534
# for compatibility with existing Makefiles.
511
ECHO_C= ECHO_N= ECHO_T=
535
ECHO_C= ECHO_N= ECHO_T=
512
case `echo -n x` in #(((((
536
case `echo -n x` in #(((((
513
-n*)
537
-n*)
Lines 521-526 Link Here
521
  ECHO_N='-n';;
545
  ECHO_N='-n';;
522
esac
546
esac
523
547
548
# For backward compatibility with old third-party macros, we provide
549
# the shell variables $as_echo and $as_echo_n.  New code should use
550
# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
551
as_echo='printf %s\n'
552
as_echo_n='printf %s'
553
554
524
rm -f conf$$ conf$$.exe conf$$.file
555
rm -f conf$$ conf$$.exe conf$$.file
525
if test -d conf$$.dir; then
556
if test -d conf$$.dir; then
526
  rm -f conf$$.dir/conf$$.file
557
  rm -f conf$$.dir/conf$$.file
Lines 590-637 Link Here
590
# Identity of this package.
621
# Identity of this package.
591
PACKAGE_NAME='XZ Utils'
622
PACKAGE_NAME='XZ Utils'
592
PACKAGE_TARNAME='xz'
623
PACKAGE_TARNAME='xz'
593
PACKAGE_VERSION='5.2.5'
624
PACKAGE_VERSION='5.4.3'
594
PACKAGE_STRING='XZ Utils 5.2.5'
625
PACKAGE_STRING='XZ Utils 5.4.3'
595
PACKAGE_BUGREPORT='lasse.collin@tukaani.org'
626
PACKAGE_BUGREPORT='xz@tukaani.org'
596
PACKAGE_URL='https://tukaani.org/xz/'
627
PACKAGE_URL='https://tukaani.org/xz/'
597
628
598
ac_unique_file="src/liblzma/common/common.h"
629
ac_unique_file="src/liblzma/common/common.h"
599
# Factoring default headers for most tests.
630
# Factoring default headers for most tests.
600
ac_includes_default="\
631
ac_includes_default="\
601
#include <stdio.h>
632
#include <stddef.h>
602
#ifdef HAVE_SYS_TYPES_H
633
#ifdef HAVE_STDIO_H
603
# include <sys/types.h>
634
# include <stdio.h>
604
#endif
635
#endif
605
#ifdef HAVE_SYS_STAT_H
636
#ifdef HAVE_STDLIB_H
606
# include <sys/stat.h>
607
#endif
608
#ifdef STDC_HEADERS
609
# include <stdlib.h>
637
# include <stdlib.h>
610
# include <stddef.h>
611
#else
612
# ifdef HAVE_STDLIB_H
613
#  include <stdlib.h>
614
# endif
615
#endif
638
#endif
616
#ifdef HAVE_STRING_H
639
#ifdef HAVE_STRING_H
617
# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
618
#  include <memory.h>
619
# endif
620
# include <string.h>
640
# include <string.h>
621
#endif
641
#endif
622
#ifdef HAVE_STRINGS_H
623
# include <strings.h>
624
#endif
625
#ifdef HAVE_INTTYPES_H
642
#ifdef HAVE_INTTYPES_H
626
# include <inttypes.h>
643
# include <inttypes.h>
627
#endif
644
#endif
628
#ifdef HAVE_STDINT_H
645
#ifdef HAVE_STDINT_H
629
# include <stdint.h>
646
# include <stdint.h>
630
#endif
647
#endif
648
#ifdef HAVE_STRINGS_H
649
# include <strings.h>
650
#endif
651
#ifdef HAVE_SYS_TYPES_H
652
# include <sys/types.h>
653
#endif
654
#ifdef HAVE_SYS_STAT_H
655
# include <sys/stat.h>
656
#endif
631
#ifdef HAVE_UNISTD_H
657
#ifdef HAVE_UNISTD_H
632
# include <unistd.h>
658
# include <unistd.h>
633
#endif"
659
#endif"
634
660
661
ac_header_c_list=
635
gt_needs=
662
gt_needs=
636
ac_subst_vars='am__EXEEXT_FALSE
663
ac_subst_vars='am__EXEEXT_FALSE
637
am__EXEEXT_TRUE
664
am__EXEEXT_TRUE
Lines 664-669 Link Here
664
MSGFMT
691
MSGFMT
665
GETTEXT_MACRO_VERSION
692
GETTEXT_MACRO_VERSION
666
USE_NLS
693
USE_NLS
694
COND_SYMVERS_GENERIC_FALSE
695
COND_SYMVERS_GENERIC_TRUE
696
COND_SYMVERS_LINUX_FALSE
697
COND_SYMVERS_LINUX_TRUE
667
COND_SHARED_FALSE
698
COND_SHARED_FALSE
668
COND_SHARED_TRUE
699
COND_SHARED_TRUE
669
RC
700
RC
Lines 677-682 Link Here
677
RANLIB
708
RANLIB
678
ac_ct_AR
709
ac_ct_AR
679
AR
710
AR
711
FILECMD
680
NM
712
NM
681
ac_ct_DUMPBIN
713
ac_ct_DUMPBIN
682
DUMPBIN
714
DUMPBIN
Lines 690-701 Link Here
690
COND_THREADS_TRUE
722
COND_THREADS_TRUE
691
PTHREAD_CFLAGS
723
PTHREAD_CFLAGS
692
PTHREAD_LIBS
724
PTHREAD_LIBS
725
PTHREAD_CXX
693
PTHREAD_CC
726
PTHREAD_CC
694
ax_pthread_config
727
ax_pthread_config
695
SED
696
EGREP
728
EGREP
697
GREP
729
GREP
698
CPP
730
CPP
731
SED
699
am__fastdepCCAS_FALSE
732
am__fastdepCCAS_FALSE
700
am__fastdepCCAS_TRUE
733
am__fastdepCCAS_TRUE
701
CCASDEPMODE
734
CCASDEPMODE
Lines 722-727 Link Here
722
AM_DEFAULT_VERBOSITY
755
AM_DEFAULT_VERBOSITY
723
AM_DEFAULT_V
756
AM_DEFAULT_V
724
AM_V
757
AM_V
758
CSCOPE
759
ETAGS
760
CTAGS
725
am__untar
761
am__untar
726
am__tar
762
am__tar
727
AMTAR
763
AMTAR
Lines 748-755 Link Here
748
PREFERABLY_POSIX_SHELL
784
PREFERABLY_POSIX_SHELL
749
POSIX_SHELL
785
POSIX_SHELL
750
enable_path_for_scripts
786
enable_path_for_scripts
751
COND_SYMVERS_FALSE
752
COND_SYMVERS_TRUE
753
COND_DOC_FALSE
787
COND_DOC_FALSE
754
COND_DOC_TRUE
788
COND_DOC_TRUE
755
COND_SCRIPTS_FALSE
789
COND_SCRIPTS_FALSE
Lines 766-775 Link Here
766
COND_XZ_TRUE
800
COND_XZ_TRUE
767
COND_SMALL_FALSE
801
COND_SMALL_FALSE
768
COND_SMALL_TRUE
802
COND_SMALL_TRUE
769
COND_ASM_X86_64_FALSE
770
COND_ASM_X86_64_TRUE
771
COND_ASM_X86_FALSE
803
COND_ASM_X86_FALSE
772
COND_ASM_X86_TRUE
804
COND_ASM_X86_TRUE
805
COND_LZIP_DECODER_FALSE
806
COND_LZIP_DECODER_TRUE
807
COND_MICROLZMA_FALSE
808
COND_MICROLZMA_TRUE
773
COND_CHECK_SHA256_FALSE
809
COND_CHECK_SHA256_FALSE
774
COND_CHECK_SHA256_TRUE
810
COND_CHECK_SHA256_TRUE
775
COND_CHECK_CRC64_FALSE
811
COND_CHECK_CRC64_FALSE
Lines 794-799 Link Here
794
COND_ENCODER_SPARC_TRUE
830
COND_ENCODER_SPARC_TRUE
795
COND_FILTER_SPARC_FALSE
831
COND_FILTER_SPARC_FALSE
796
COND_FILTER_SPARC_TRUE
832
COND_FILTER_SPARC_TRUE
833
COND_DECODER_ARM64_FALSE
834
COND_DECODER_ARM64_TRUE
835
COND_ENCODER_ARM64_FALSE
836
COND_ENCODER_ARM64_TRUE
837
COND_FILTER_ARM64_FALSE
838
COND_FILTER_ARM64_TRUE
797
COND_DECODER_ARMTHUMB_FALSE
839
COND_DECODER_ARMTHUMB_FALSE
798
COND_DECODER_ARMTHUMB_TRUE
840
COND_DECODER_ARMTHUMB_TRUE
799
COND_ENCODER_ARMTHUMB_FALSE
841
COND_ENCODER_ARMTHUMB_FALSE
Lines 876-881 Link Here
876
docdir
918
docdir
877
oldincludedir
919
oldincludedir
878
includedir
920
includedir
921
runstatedir
879
localstatedir
922
localstatedir
880
sharedstatedir
923
sharedstatedir
881
sysconfdir
924
sysconfdir
Lines 905-911 Link Here
905
enable_match_finders
948
enable_match_finders
906
enable_checks
949
enable_checks
907
enable_external_sha256
950
enable_external_sha256
951
enable_microlzma
952
enable_lzip_decoder
908
enable_assembler
953
enable_assembler
954
enable_clmul_crc
909
enable_small
955
enable_small
910
enable_threads
956
enable_threads
911
enable_assume_ram
957
enable_assume_ram
Lines 916-922 Link Here
916
enable_lzma_links
962
enable_lzma_links
917
enable_scripts
963
enable_scripts
918
enable_doc
964
enable_doc
919
enable_symbol_versions
920
enable_sandbox
965
enable_sandbox
921
enable_path_for_scripts
966
enable_path_for_scripts
922
enable_silent_rules
967
enable_silent_rules
Lines 929-934 Link Here
929
with_gnu_ld
974
with_gnu_ld
930
with_sysroot
975
with_sysroot
931
enable_libtool_lock
976
enable_libtool_lock
977
enable_symbol_versions
932
enable_nls
978
enable_nls
933
enable_rpath
979
enable_rpath
934
with_libiconv_prefix
980
with_libiconv_prefix
Lines 988-993 Link Here
988
sysconfdir='${prefix}/etc'
1034
sysconfdir='${prefix}/etc'
989
sharedstatedir='${prefix}/com'
1035
sharedstatedir='${prefix}/com'
990
localstatedir='${prefix}/var'
1036
localstatedir='${prefix}/var'
1037
runstatedir='${localstatedir}/run'
991
includedir='${prefix}/include'
1038
includedir='${prefix}/include'
992
oldincludedir='/usr/include'
1039
oldincludedir='/usr/include'
993
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
1040
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
Lines 1017-1024 Link Here
1017
  *)    ac_optarg=yes ;;
1064
  *)    ac_optarg=yes ;;
1018
  esac
1065
  esac
1019
1066
1020
  # Accept the important Cygnus configure options, so we can diagnose typos.
1021
1022
  case $ac_dashdash$ac_option in
1067
  case $ac_dashdash$ac_option in
1023
  --)
1068
  --)
1024
    ac_dashdash=yes ;;
1069
    ac_dashdash=yes ;;
Lines 1059-1067 Link Here
1059
    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
1104
    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
1060
    # Reject names that are not valid shell variable names.
1105
    # Reject names that are not valid shell variable names.
1061
    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1106
    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1062
      as_fn_error $? "invalid feature name: $ac_useropt"
1107
      as_fn_error $? "invalid feature name: \`$ac_useropt'"
1063
    ac_useropt_orig=$ac_useropt
1108
    ac_useropt_orig=$ac_useropt
1064
    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1109
    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
1065
    case $ac_user_opts in
1110
    case $ac_user_opts in
1066
      *"
1111
      *"
1067
"enable_$ac_useropt"
1112
"enable_$ac_useropt"
Lines 1085-1093 Link Here
1085
    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
1130
    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
1086
    # Reject names that are not valid shell variable names.
1131
    # Reject names that are not valid shell variable names.
1087
    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1132
    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1088
      as_fn_error $? "invalid feature name: $ac_useropt"
1133
      as_fn_error $? "invalid feature name: \`$ac_useropt'"
1089
    ac_useropt_orig=$ac_useropt
1134
    ac_useropt_orig=$ac_useropt
1090
    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1135
    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
1091
    case $ac_user_opts in
1136
    case $ac_user_opts in
1092
      *"
1137
      *"
1093
"enable_$ac_useropt"
1138
"enable_$ac_useropt"
Lines 1240-1245 Link Here
1240
  | -silent | --silent | --silen | --sile | --sil)
1285
  | -silent | --silent | --silen | --sile | --sil)
1241
    silent=yes ;;
1286
    silent=yes ;;
1242
1287
1288
  -runstatedir | --runstatedir | --runstatedi | --runstated \
1289
  | --runstate | --runstat | --runsta | --runst | --runs \
1290
  | --run | --ru | --r)
1291
    ac_prev=runstatedir ;;
1292
  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
1293
  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
1294
  | --run=* | --ru=* | --r=*)
1295
    runstatedir=$ac_optarg ;;
1296
1243
  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
1297
  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
1244
    ac_prev=sbindir ;;
1298
    ac_prev=sbindir ;;
1245
  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
1299
  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
Lines 1289-1297 Link Here
1289
    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
1343
    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
1290
    # Reject names that are not valid shell variable names.
1344
    # Reject names that are not valid shell variable names.
1291
    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1345
    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1292
      as_fn_error $? "invalid package name: $ac_useropt"
1346
      as_fn_error $? "invalid package name: \`$ac_useropt'"
1293
    ac_useropt_orig=$ac_useropt
1347
    ac_useropt_orig=$ac_useropt
1294
    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1348
    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
1295
    case $ac_user_opts in
1349
    case $ac_user_opts in
1296
      *"
1350
      *"
1297
"with_$ac_useropt"
1351
"with_$ac_useropt"
Lines 1305-1313 Link Here
1305
    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
1359
    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
1306
    # Reject names that are not valid shell variable names.
1360
    # Reject names that are not valid shell variable names.
1307
    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1361
    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1308
      as_fn_error $? "invalid package name: $ac_useropt"
1362
      as_fn_error $? "invalid package name: \`$ac_useropt'"
1309
    ac_useropt_orig=$ac_useropt
1363
    ac_useropt_orig=$ac_useropt
1310
    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1364
    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
1311
    case $ac_user_opts in
1365
    case $ac_user_opts in
1312
      *"
1366
      *"
1313
"with_$ac_useropt"
1367
"with_$ac_useropt"
Lines 1351-1359 Link Here
1351
1405
1352
  *)
1406
  *)
1353
    # FIXME: should be removed in autoconf 3.0.
1407
    # FIXME: should be removed in autoconf 3.0.
1354
    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
1408
    printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2
1355
    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
1409
    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
1356
      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
1410
      printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2
1357
    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
1411
    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
1358
    ;;
1412
    ;;
1359
1413
Lines 1369-1375 Link Here
1369
  case $enable_option_checking in
1423
  case $enable_option_checking in
1370
    no) ;;
1424
    no) ;;
1371
    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
1425
    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
1372
    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
1426
    *)     printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
1373
  esac
1427
  esac
1374
fi
1428
fi
1375
1429
Lines 1377-1383 Link Here
1377
for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
1431
for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
1378
		datadir sysconfdir sharedstatedir localstatedir includedir \
1432
		datadir sysconfdir sharedstatedir localstatedir includedir \
1379
		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
1433
		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
1380
		libdir localedir mandir
1434
		libdir localedir mandir runstatedir
1381
do
1435
do
1382
  eval ac_val=\$$ac_var
1436
  eval ac_val=\$$ac_var
1383
  # Remove trailing slashes.
1437
  # Remove trailing slashes.
Lines 1433-1439 Link Here
1433
	 X"$as_myself" : 'X\(//\)[^/]' \| \
1487
	 X"$as_myself" : 'X\(//\)[^/]' \| \
1434
	 X"$as_myself" : 'X\(//\)$' \| \
1488
	 X"$as_myself" : 'X\(//\)$' \| \
1435
	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
1489
	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
1436
$as_echo X"$as_myself" |
1490
printf "%s\n" X"$as_myself" |
1437
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
1491
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
1438
	    s//\1/
1492
	    s//\1/
1439
	    q
1493
	    q
Lines 1490-1496 Link Here
1490
  # Omit some internal or obsolete options to make the list less imposing.
1544
  # Omit some internal or obsolete options to make the list less imposing.
1491
  # This message is too long to be a string in the A/UX 3.1 sh.
1545
  # This message is too long to be a string in the A/UX 3.1 sh.
1492
  cat <<_ACEOF
1546
  cat <<_ACEOF
1493
\`configure' configures XZ Utils 5.2.5 to adapt to many kinds of systems.
1547
\`configure' configures XZ Utils 5.4.3 to adapt to many kinds of systems.
1494
1548
1495
Usage: $0 [OPTION]... [VAR=VALUE]...
1549
Usage: $0 [OPTION]... [VAR=VALUE]...
1496
1550
Lines 1530-1535 Link Here
1530
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
1584
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
1531
  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
1585
  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
1532
  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
1586
  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
1587
  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
1533
  --libdir=DIR            object code libraries [EPREFIX/lib]
1588
  --libdir=DIR            object code libraries [EPREFIX/lib]
1534
  --includedir=DIR        C header files [PREFIX/include]
1589
  --includedir=DIR        C header files [PREFIX/include]
1535
  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
1590
  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
Lines 1560-1566 Link Here
1560
1615
1561
if test -n "$ac_init_help"; then
1616
if test -n "$ac_init_help"; then
1562
  case $ac_init_help in
1617
  case $ac_init_help in
1563
     short | recursive ) echo "Configuration of XZ Utils 5.2.5:";;
1618
     short | recursive ) echo "Configuration of XZ Utils 5.4.3:";;
1564
   esac
1619
   esac
1565
  cat <<\_ACEOF
1620
  cat <<\_ACEOF
1566
1621
Lines 1571-1577 Link Here
1571
  --enable-debug          Enable debugging code.
1626
  --enable-debug          Enable debugging code.
1572
  --enable-encoders=LIST  Comma-separated list of encoders to build.
1627
  --enable-encoders=LIST  Comma-separated list of encoders to build.
1573
                          Default=all. Available encoders: lzma1 lzma2 delta
1628
                          Default=all. Available encoders: lzma1 lzma2 delta
1574
                          x86 powerpc ia64 arm armthumb sparc
1629
                          x86 powerpc ia64 arm armthumb arm64 sparc
1575
  --enable-decoders=LIST  Comma-separated list of decoders to build.
1630
  --enable-decoders=LIST  Comma-separated list of decoders to build.
1576
                          Default=all. Available decoders are the same as
1631
                          Default=all. Available decoders are the same as
1577
                          available encoders.
1632
                          available encoders.
Lines 1586-1593 Link Here
1586
  --enable-external-sha256
1641
  --enable-external-sha256
1587
                          Use SHA-256 code from the operating system. See
1642
                          Use SHA-256 code from the operating system. See
1588
                          INSTALL for possible subtle problems.
1643
                          INSTALL for possible subtle problems.
1644
  --disable-microlzma     Do not build MicroLZMA encoder and decoder. It is
1645
                          needed by specific applications only, for example,
1646
                          erofs-utils.
1647
  --disable-lzip-decoder  Disable decompression support for .lz (lzip) files.
1589
  --disable-assembler     Do not use assembler optimizations even if such
1648
  --disable-assembler     Do not use assembler optimizations even if such
1590
                          exist for the architecture.
1649
                          exist for the architecture.
1650
  --disable-clmul-crc     Do not use carryless multiplication for CRC
1651
                          calculation even if support for it is detected.
1591
  --enable-small          Make liblzma smaller and a little slower. This is
1652
  --enable-small          Make liblzma smaller and a little slower. This is
1592
                          disabled by default to optimize for speed.
1653
                          disabled by default to optimize for speed.
1593
  --enable-threads=METHOD Supported METHODS are `yes', `no', `posix', `win95',
1654
  --enable-threads=METHOD Supported METHODS are `yes', `no', `posix', `win95',
Lines 1609-1620 Link Here
1609
                          xzmore, and their symlinks
1670
                          xzmore, and their symlinks
1610
  --disable-doc           do not install documentation files to docdir (man
1671
  --disable-doc           do not install documentation files to docdir (man
1611
                          pages will still be installed)
1672
                          pages will still be installed)
1612
  --enable-symbol-versions
1673
  --enable-sandbox=METHOD Sandboxing METHOD can be `auto', `no', `capsicum',
1613
                          Use symbol versioning for liblzma. Enabled by
1674
                          or `pledge'. The default is `auto' which enables
1614
                          default on GNU/Linux, other GNU-based systems, and
1615
                          FreeBSD.
1616
  --enable-sandbox=METHOD Sandboxing METHOD can be `auto', `no', or
1617
                          `capsicum'. The default is `auto' which enables
1618
                          sandboxing if a supported sandboxing method is
1675
                          sandboxing if a supported sandboxing method is
1619
                          found.
1676
                          found.
1620
  --enable-path-for-scripts=PREFIX
1677
  --enable-path-for-scripts=PREFIX
Lines 1633-1646 Link Here
1633
  --enable-fast-install[=PKGS]
1690
  --enable-fast-install[=PKGS]
1634
                          optimize for fast installation [default=yes]
1691
                          optimize for fast installation [default=yes]
1635
  --disable-libtool-lock  avoid locking (might break parallel builds)
1692
  --disable-libtool-lock  avoid locking (might break parallel builds)
1693
  --enable-symbol-versions
1694
                          Use symbol versioning for liblzma. Enabled by
1695
                          default on GNU/Linux, other GNU-based systems, and
1696
                          FreeBSD.
1636
  --disable-nls           do not use Native Language Support
1697
  --disable-nls           do not use Native Language Support
1637
  --disable-rpath         do not hardcode runtime library paths
1698
  --disable-rpath         do not hardcode runtime library paths
1638
  --disable-largefile     omit support for large files
1699
  --disable-largefile     omit support for large files
1639
  --enable-unaligned-access
1700
  --enable-unaligned-access
1640
                          Enable if the system supports *fast* unaligned
1701
                          Enable if the system supports *fast* unaligned
1641
                          memory access with 16-bit and 32-bit integers. By
1702
                          memory access with 16-bit, 32-bit, and 64-bit
1642
                          default, this is enabled only on x86, x86_64, and
1703
                          integers. By default, this is enabled only on x86,
1643
                          big endian PowerPC.
1704
                          x86_64, big endian PowerPC, and some ARM systems.
1644
  --enable-unsafe-type-punning
1705
  --enable-unsafe-type-punning
1645
                          This introduces strict aliasing violations and may
1706
                          This introduces strict aliasing violations and may
1646
                          result in broken code. However, this might improve
1707
                          result in broken code. However, this might improve
Lines 1684-1690 Link Here
1684
Use these variables to override the choices made by `configure' or to help
1745
Use these variables to override the choices made by `configure' or to help
1685
it to find libraries and programs with nonstandard names/locations.
1746
it to find libraries and programs with nonstandard names/locations.
1686
1747
1687
Report bugs to <lasse.collin@tukaani.org>.
1748
Report bugs to <xz@tukaani.org>.
1688
XZ Utils home page: <https://tukaani.org/xz/>.
1749
XZ Utils home page: <https://tukaani.org/xz/>.
1689
_ACEOF
1750
_ACEOF
1690
ac_status=$?
1751
ac_status=$?
Lines 1701-1709 Link Here
1701
case "$ac_dir" in
1762
case "$ac_dir" in
1702
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
1763
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
1703
*)
1764
*)
1704
  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
1765
  ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
1705
  # A ".." for each directory in $ac_dir_suffix.
1766
  # A ".." for each directory in $ac_dir_suffix.
1706
  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
1767
  ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
1707
  case $ac_top_builddir_sub in
1768
  case $ac_top_builddir_sub in
1708
  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
1769
  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
1709
  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
1770
  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
Lines 1731-1737 Link Here
1731
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
1792
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
1732
1793
1733
    cd "$ac_dir" || { ac_status=$?; continue; }
1794
    cd "$ac_dir" || { ac_status=$?; continue; }
1734
    # Check for guested configure.
1795
    # Check for configure.gnu first; this name is used for a wrapper for
1796
    # Metaconfig's "Configure" on case-insensitive file systems.
1735
    if test -f "$ac_srcdir/configure.gnu"; then
1797
    if test -f "$ac_srcdir/configure.gnu"; then
1736
      echo &&
1798
      echo &&
1737
      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
1799
      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
Lines 1739-1745 Link Here
1739
      echo &&
1801
      echo &&
1740
      $SHELL "$ac_srcdir/configure" --help=recursive
1802
      $SHELL "$ac_srcdir/configure" --help=recursive
1741
    else
1803
    else
1742
      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
1804
      printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2
1743
    fi || ac_status=$?
1805
    fi || ac_status=$?
1744
    cd "$ac_pwd" || { ac_status=$?; break; }
1806
    cd "$ac_pwd" || { ac_status=$?; break; }
1745
  done
1807
  done
Lines 1748-1757 Link Here
1748
test -n "$ac_init_help" && exit $ac_status
1810
test -n "$ac_init_help" && exit $ac_status
1749
if $ac_init_version; then
1811
if $ac_init_version; then
1750
  cat <<\_ACEOF
1812
  cat <<\_ACEOF
1751
XZ Utils configure 5.2.5
1813
XZ Utils configure 5.4.3
1752
generated by GNU Autoconf 2.69
1814
generated by GNU Autoconf 2.71
1753
1815
1754
Copyright (C) 2012 Free Software Foundation, Inc.
1816
Copyright (C) 2021 Free Software Foundation, Inc.
1755
This configure script is free software; the Free Software Foundation
1817
This configure script is free software; the Free Software Foundation
1756
gives unlimited permission to copy, distribute and modify it.
1818
gives unlimited permission to copy, distribute and modify it.
1757
_ACEOF
1819
_ACEOF
Lines 1768-1781 Link Here
1768
ac_fn_c_try_compile ()
1830
ac_fn_c_try_compile ()
1769
{
1831
{
1770
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1832
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1771
  rm -f conftest.$ac_objext
1833
  rm -f conftest.$ac_objext conftest.beam
1772
  if { { ac_try="$ac_compile"
1834
  if { { ac_try="$ac_compile"
1773
case "(($ac_try" in
1835
case "(($ac_try" in
1774
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1836
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1775
  *) ac_try_echo=$ac_try;;
1837
  *) ac_try_echo=$ac_try;;
1776
esac
1838
esac
1777
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
1839
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
1778
$as_echo "$ac_try_echo"; } >&5
1840
printf "%s\n" "$ac_try_echo"; } >&5
1779
  (eval "$ac_compile") 2>conftest.err
1841
  (eval "$ac_compile") 2>conftest.err
1780
  ac_status=$?
1842
  ac_status=$?
1781
  if test -s conftest.err; then
1843
  if test -s conftest.err; then
Lines 1783-1796 Link Here
1783
    cat conftest.er1 >&5
1845
    cat conftest.er1 >&5
1784
    mv -f conftest.er1 conftest.err
1846
    mv -f conftest.er1 conftest.err
1785
  fi
1847
  fi
1786
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1848
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1787
  test $ac_status = 0; } && {
1849
  test $ac_status = 0; } && {
1788
	 test -z "$ac_c_werror_flag" ||
1850
	 test -z "$ac_c_werror_flag" ||
1789
	 test ! -s conftest.err
1851
	 test ! -s conftest.err
1790
       } && test -s conftest.$ac_objext; then :
1852
       } && test -s conftest.$ac_objext
1853
then :
1791
  ac_retval=0
1854
  ac_retval=0
1792
else
1855
else $as_nop
1793
  $as_echo "$as_me: failed program was:" >&5
1856
  printf "%s\n" "$as_me: failed program was:" >&5
1794
sed 's/^/| /' conftest.$ac_ext >&5
1857
sed 's/^/| /' conftest.$ac_ext >&5
1795
1858
1796
	ac_retval=1
1859
	ac_retval=1
Lines 1800-1975 Link Here
1800
1863
1801
} # ac_fn_c_try_compile
1864
} # ac_fn_c_try_compile
1802
1865
1803
# ac_fn_c_try_cpp LINENO
1804
# ----------------------
1805
# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
1806
ac_fn_c_try_cpp ()
1807
{
1808
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1809
  if { { ac_try="$ac_cpp conftest.$ac_ext"
1810
case "(($ac_try" in
1811
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1812
  *) ac_try_echo=$ac_try;;
1813
esac
1814
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
1815
$as_echo "$ac_try_echo"; } >&5
1816
  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
1817
  ac_status=$?
1818
  if test -s conftest.err; then
1819
    grep -v '^ *+' conftest.err >conftest.er1
1820
    cat conftest.er1 >&5
1821
    mv -f conftest.er1 conftest.err
1822
  fi
1823
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1824
  test $ac_status = 0; } > conftest.i && {
1825
	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
1826
	 test ! -s conftest.err
1827
       }; then :
1828
  ac_retval=0
1829
else
1830
  $as_echo "$as_me: failed program was:" >&5
1831
sed 's/^/| /' conftest.$ac_ext >&5
1832
1833
    ac_retval=1
1834
fi
1835
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
1836
  as_fn_set_status $ac_retval
1837
1838
} # ac_fn_c_try_cpp
1839
1840
# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
1841
# -------------------------------------------------------
1842
# Tests whether HEADER exists, giving a warning if it cannot be compiled using
1843
# the include files in INCLUDES and setting the cache variable VAR
1844
# accordingly.
1845
ac_fn_c_check_header_mongrel ()
1846
{
1847
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1848
  if eval \${$3+:} false; then :
1849
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
1850
$as_echo_n "checking for $2... " >&6; }
1851
if eval \${$3+:} false; then :
1852
  $as_echo_n "(cached) " >&6
1853
fi
1854
eval ac_res=\$$3
1855
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
1856
$as_echo "$ac_res" >&6; }
1857
else
1858
  # Is the header compilable?
1859
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
1860
$as_echo_n "checking $2 usability... " >&6; }
1861
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
1862
/* end confdefs.h.  */
1863
$4
1864
#include <$2>
1865
_ACEOF
1866
if ac_fn_c_try_compile "$LINENO"; then :
1867
  ac_header_compiler=yes
1868
else
1869
  ac_header_compiler=no
1870
fi
1871
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
1872
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
1873
$as_echo "$ac_header_compiler" >&6; }
1874
1875
# Is the header present?
1876
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
1877
$as_echo_n "checking $2 presence... " >&6; }
1878
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
1879
/* end confdefs.h.  */
1880
#include <$2>
1881
_ACEOF
1882
if ac_fn_c_try_cpp "$LINENO"; then :
1883
  ac_header_preproc=yes
1884
else
1885
  ac_header_preproc=no
1886
fi
1887
rm -f conftest.err conftest.i conftest.$ac_ext
1888
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
1889
$as_echo "$ac_header_preproc" >&6; }
1890
1891
# So?  What about this header?
1892
case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
1893
  yes:no: )
1894
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
1895
$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
1896
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
1897
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
1898
    ;;
1899
  no:yes:* )
1900
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
1901
$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
1902
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
1903
$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
1904
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
1905
$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
1906
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
1907
$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
1908
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
1909
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
1910
( $as_echo "## --------------------------------------- ##
1911
## Report this to lasse.collin@tukaani.org ##
1912
## --------------------------------------- ##"
1913
     ) | sed "s/^/$as_me: WARNING:     /" >&2
1914
    ;;
1915
esac
1916
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
1917
$as_echo_n "checking for $2... " >&6; }
1918
if eval \${$3+:} false; then :
1919
  $as_echo_n "(cached) " >&6
1920
else
1921
  eval "$3=\$ac_header_compiler"
1922
fi
1923
eval ac_res=\$$3
1924
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
1925
$as_echo "$ac_res" >&6; }
1926
fi
1927
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
1928
1929
} # ac_fn_c_check_header_mongrel
1930
1931
# ac_fn_c_try_run LINENO
1932
# ----------------------
1933
# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
1934
# that executables *can* be run.
1935
ac_fn_c_try_run ()
1936
{
1937
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1938
  if { { ac_try="$ac_link"
1939
case "(($ac_try" in
1940
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1941
  *) ac_try_echo=$ac_try;;
1942
esac
1943
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
1944
$as_echo "$ac_try_echo"; } >&5
1945
  (eval "$ac_link") 2>&5
1946
  ac_status=$?
1947
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1948
  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
1949
  { { case "(($ac_try" in
1950
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1951
  *) ac_try_echo=$ac_try;;
1952
esac
1953
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
1954
$as_echo "$ac_try_echo"; } >&5
1955
  (eval "$ac_try") 2>&5
1956
  ac_status=$?
1957
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1958
  test $ac_status = 0; }; }; then :
1959
  ac_retval=0
1960
else
1961
  $as_echo "$as_me: program exited with status $ac_status" >&5
1962
       $as_echo "$as_me: failed program was:" >&5
1963
sed 's/^/| /' conftest.$ac_ext >&5
1964
1965
       ac_retval=$ac_status
1966
fi
1967
  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
1968
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
1969
  as_fn_set_status $ac_retval
1970
1971
} # ac_fn_c_try_run
1972
1973
# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
1866
# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
1974
# -------------------------------------------------------
1867
# -------------------------------------------------------
1975
# Tests whether HEADER exists and can be compiled using the include files in
1868
# Tests whether HEADER exists and can be compiled using the include files in
Lines 1977-2002 Link Here
1977
ac_fn_c_check_header_compile ()
1870
ac_fn_c_check_header_compile ()
1978
{
1871
{
1979
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1872
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1980
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
1873
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
1981
$as_echo_n "checking for $2... " >&6; }
1874
printf %s "checking for $2... " >&6; }
1982
if eval \${$3+:} false; then :
1875
if eval test \${$3+y}
1983
  $as_echo_n "(cached) " >&6
1876
then :
1984
else
1877
  printf %s "(cached) " >&6
1878
else $as_nop
1985
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
1879
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
1986
/* end confdefs.h.  */
1880
/* end confdefs.h.  */
1987
$4
1881
$4
1988
#include <$2>
1882
#include <$2>
1989
_ACEOF
1883
_ACEOF
1990
if ac_fn_c_try_compile "$LINENO"; then :
1884
if ac_fn_c_try_compile "$LINENO"
1885
then :
1991
  eval "$3=yes"
1886
  eval "$3=yes"
1992
else
1887
else $as_nop
1993
  eval "$3=no"
1888
  eval "$3=no"
1994
fi
1889
fi
1995
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
1890
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
1996
fi
1891
fi
1997
eval ac_res=\$$3
1892
eval ac_res=\$$3
1998
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
1893
	       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
1999
$as_echo "$ac_res" >&6; }
1894
printf "%s\n" "$ac_res" >&6; }
2000
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
1895
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2001
1896
2002
} # ac_fn_c_check_header_compile
1897
} # ac_fn_c_check_header_compile
Lines 2007-2020 Link Here
2007
ac_fn_c_try_link ()
1902
ac_fn_c_try_link ()
2008
{
1903
{
2009
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1904
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2010
  rm -f conftest.$ac_objext conftest$ac_exeext
1905
  rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext
2011
  if { { ac_try="$ac_link"
1906
  if { { ac_try="$ac_link"
2012
case "(($ac_try" in
1907
case "(($ac_try" in
2013
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1908
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
2014
  *) ac_try_echo=$ac_try;;
1909
  *) ac_try_echo=$ac_try;;
2015
esac
1910
esac
2016
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
1911
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
2017
$as_echo "$ac_try_echo"; } >&5
1912
printf "%s\n" "$ac_try_echo"; } >&5
2018
  (eval "$ac_link") 2>conftest.err
1913
  (eval "$ac_link") 2>conftest.err
2019
  ac_status=$?
1914
  ac_status=$?
2020
  if test -s conftest.err; then
1915
  if test -s conftest.err; then
Lines 2022-2038 Link Here
2022
    cat conftest.er1 >&5
1917
    cat conftest.er1 >&5
2023
    mv -f conftest.er1 conftest.err
1918
    mv -f conftest.er1 conftest.err
2024
  fi
1919
  fi
2025
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1920
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
2026
  test $ac_status = 0; } && {
1921
  test $ac_status = 0; } && {
2027
	 test -z "$ac_c_werror_flag" ||
1922
	 test -z "$ac_c_werror_flag" ||
2028
	 test ! -s conftest.err
1923
	 test ! -s conftest.err
2029
       } && test -s conftest$ac_exeext && {
1924
       } && test -s conftest$ac_exeext && {
2030
	 test "$cross_compiling" = yes ||
1925
	 test "$cross_compiling" = yes ||
2031
	 test -x conftest$ac_exeext
1926
	 test -x conftest$ac_exeext
2032
       }; then :
1927
       }
1928
then :
2033
  ac_retval=0
1929
  ac_retval=0
2034
else
1930
else $as_nop
2035
  $as_echo "$as_me: failed program was:" >&5
1931
  printf "%s\n" "$as_me: failed program was:" >&5
2036
sed 's/^/| /' conftest.$ac_ext >&5
1932
sed 's/^/| /' conftest.$ac_ext >&5
2037
1933
2038
	ac_retval=1
1934
	ac_retval=1
Lines 2047-2063 Link Here
2047
1943
2048
} # ac_fn_c_try_link
1944
} # ac_fn_c_try_link
2049
1945
1946
# ac_fn_c_try_cpp LINENO
1947
# ----------------------
1948
# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
1949
ac_fn_c_try_cpp ()
1950
{
1951
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1952
  if { { ac_try="$ac_cpp conftest.$ac_ext"
1953
case "(($ac_try" in
1954
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1955
  *) ac_try_echo=$ac_try;;
1956
esac
1957
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
1958
printf "%s\n" "$ac_try_echo"; } >&5
1959
  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
1960
  ac_status=$?
1961
  if test -s conftest.err; then
1962
    grep -v '^ *+' conftest.err >conftest.er1
1963
    cat conftest.er1 >&5
1964
    mv -f conftest.er1 conftest.err
1965
  fi
1966
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1967
  test $ac_status = 0; } > conftest.i && {
1968
	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
1969
	 test ! -s conftest.err
1970
       }
1971
then :
1972
  ac_retval=0
1973
else $as_nop
1974
  printf "%s\n" "$as_me: failed program was:" >&5
1975
sed 's/^/| /' conftest.$ac_ext >&5
1976
1977
    ac_retval=1
1978
fi
1979
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
1980
  as_fn_set_status $ac_retval
1981
1982
} # ac_fn_c_try_cpp
1983
2050
# ac_fn_c_check_func LINENO FUNC VAR
1984
# ac_fn_c_check_func LINENO FUNC VAR
2051
# ----------------------------------
1985
# ----------------------------------
2052
# Tests whether FUNC exists, setting the cache variable VAR accordingly
1986
# Tests whether FUNC exists, setting the cache variable VAR accordingly
2053
ac_fn_c_check_func ()
1987
ac_fn_c_check_func ()
2054
{
1988
{
2055
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1989
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2056
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
1990
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2057
$as_echo_n "checking for $2... " >&6; }
1991
printf %s "checking for $2... " >&6; }
2058
if eval \${$3+:} false; then :
1992
if eval test \${$3+y}
2059
  $as_echo_n "(cached) " >&6
1993
then :
2060
else
1994
  printf %s "(cached) " >&6
1995
else $as_nop
2061
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
1996
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2062
/* end confdefs.h.  */
1997
/* end confdefs.h.  */
2063
/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
1998
/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
Lines 2065-2080 Link Here
2065
#define $2 innocuous_$2
2000
#define $2 innocuous_$2
2066
2001
2067
/* System header to define __stub macros and hopefully few prototypes,
2002
/* System header to define __stub macros and hopefully few prototypes,
2068
    which can conflict with char $2 (); below.
2003
   which can conflict with char $2 (); below.  */
2069
    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
2070
    <limits.h> exists even on freestanding compilers.  */
2071
2004
2072
#ifdef __STDC__
2005
#include <limits.h>
2073
# include <limits.h>
2074
#else
2075
# include <assert.h>
2076
#endif
2077
2078
#undef $2
2006
#undef $2
2079
2007
2080
/* Override any GCC internal prototype to avoid an error.
2008
/* Override any GCC internal prototype to avoid an error.
Lines 2092-2138 Link Here
2092
#endif
2020
#endif
2093
2021
2094
int
2022
int
2095
main ()
2023
main (void)
2096
{
2024
{
2097
return $2 ();
2025
return $2 ();
2098
  ;
2026
  ;
2099
  return 0;
2027
  return 0;
2100
}
2028
}
2101
_ACEOF
2029
_ACEOF
2102
if ac_fn_c_try_link "$LINENO"; then :
2030
if ac_fn_c_try_link "$LINENO"
2031
then :
2103
  eval "$3=yes"
2032
  eval "$3=yes"
2104
else
2033
else $as_nop
2105
  eval "$3=no"
2034
  eval "$3=no"
2106
fi
2035
fi
2107
rm -f core conftest.err conftest.$ac_objext \
2036
rm -f core conftest.err conftest.$ac_objext conftest.beam \
2108
    conftest$ac_exeext conftest.$ac_ext
2037
    conftest$ac_exeext conftest.$ac_ext
2109
fi
2038
fi
2110
eval ac_res=\$$3
2039
eval ac_res=\$$3
2111
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
2040
	       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
2112
$as_echo "$ac_res" >&6; }
2041
printf "%s\n" "$ac_res" >&6; }
2113
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2042
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2114
2043
2115
} # ac_fn_c_check_func
2044
} # ac_fn_c_check_func
2116
2045
2117
# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
2046
# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR
2118
# ---------------------------------------------
2047
# ------------------------------------------------------------------
2119
# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
2048
# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
2120
# accordingly.
2049
# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR.
2121
ac_fn_c_check_decl ()
2050
ac_fn_check_decl ()
2122
{
2051
{
2123
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2052
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2124
  as_decl_name=`echo $2|sed 's/ *(.*//'`
2053
  as_decl_name=`echo $2|sed 's/ *(.*//'`
2054
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
2055
printf %s "checking whether $as_decl_name is declared... " >&6; }
2056
if eval test \${$3+y}
2057
then :
2058
  printf %s "(cached) " >&6
2059
else $as_nop
2125
  as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
2060
  as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
2126
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
2061
  eval ac_save_FLAGS=\$$6
2127
$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
2062
  as_fn_append $6 " $5"
2128
if eval \${$3+:} false; then :
2129
  $as_echo_n "(cached) " >&6
2130
else
2131
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2063
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2132
/* end confdefs.h.  */
2064
/* end confdefs.h.  */
2133
$4
2065
$4
2134
int
2066
int
2135
main ()
2067
main (void)
2136
{
2068
{
2137
#ifndef $as_decl_name
2069
#ifndef $as_decl_name
2138
#ifdef __cplusplus
2070
#ifdef __cplusplus
Lines 2146-2165 Link Here
2146
  return 0;
2078
  return 0;
2147
}
2079
}
2148
_ACEOF
2080
_ACEOF
2149
if ac_fn_c_try_compile "$LINENO"; then :
2081
if ac_fn_c_try_compile "$LINENO"
2082
then :
2150
  eval "$3=yes"
2083
  eval "$3=yes"
2151
else
2084
else $as_nop
2152
  eval "$3=no"
2085
  eval "$3=no"
2153
fi
2086
fi
2154
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2087
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
2088
  eval $6=\$ac_save_FLAGS
2089
2155
fi
2090
fi
2156
eval ac_res=\$$3
2091
eval ac_res=\$$3
2157
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
2092
	       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
2158
$as_echo "$ac_res" >&6; }
2093
printf "%s\n" "$ac_res" >&6; }
2159
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2094
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2160
2095
2161
} # ac_fn_c_check_decl
2096
} # ac_fn_check_decl
2162
2097
2098
# ac_fn_c_try_run LINENO
2099
# ----------------------
2100
# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that
2101
# executables *can* be run.
2102
ac_fn_c_try_run ()
2103
{
2104
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2105
  if { { ac_try="$ac_link"
2106
case "(($ac_try" in
2107
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
2108
  *) ac_try_echo=$ac_try;;
2109
esac
2110
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
2111
printf "%s\n" "$ac_try_echo"; } >&5
2112
  (eval "$ac_link") 2>&5
2113
  ac_status=$?
2114
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
2115
  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
2116
  { { case "(($ac_try" in
2117
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
2118
  *) ac_try_echo=$ac_try;;
2119
esac
2120
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
2121
printf "%s\n" "$ac_try_echo"; } >&5
2122
  (eval "$ac_try") 2>&5
2123
  ac_status=$?
2124
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
2125
  test $ac_status = 0; }; }
2126
then :
2127
  ac_retval=0
2128
else $as_nop
2129
  printf "%s\n" "$as_me: program exited with status $ac_status" >&5
2130
       printf "%s\n" "$as_me: failed program was:" >&5
2131
sed 's/^/| /' conftest.$ac_ext >&5
2132
2133
       ac_retval=$ac_status
2134
fi
2135
  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
2136
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2137
  as_fn_set_status $ac_retval
2138
2139
} # ac_fn_c_try_run
2140
2163
# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
2141
# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
2164
# -------------------------------------------
2142
# -------------------------------------------
2165
# Tests whether TYPE exists after having included INCLUDES, setting cache
2143
# Tests whether TYPE exists after having included INCLUDES, setting cache
Lines 2167-2183 Link Here
2167
ac_fn_c_check_type ()
2145
ac_fn_c_check_type ()
2168
{
2146
{
2169
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2147
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2170
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2148
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2171
$as_echo_n "checking for $2... " >&6; }
2149
printf %s "checking for $2... " >&6; }
2172
if eval \${$3+:} false; then :
2150
if eval test \${$3+y}
2173
  $as_echo_n "(cached) " >&6
2151
then :
2174
else
2152
  printf %s "(cached) " >&6
2153
else $as_nop
2175
  eval "$3=no"
2154
  eval "$3=no"
2176
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2155
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2177
/* end confdefs.h.  */
2156
/* end confdefs.h.  */
2178
$4
2157
$4
2179
int
2158
int
2180
main ()
2159
main (void)
2181
{
2160
{
2182
if (sizeof ($2))
2161
if (sizeof ($2))
2183
	 return 0;
2162
	 return 0;
Lines 2185-2196 Link Here
2185
  return 0;
2164
  return 0;
2186
}
2165
}
2187
_ACEOF
2166
_ACEOF
2188
if ac_fn_c_try_compile "$LINENO"; then :
2167
if ac_fn_c_try_compile "$LINENO"
2168
then :
2189
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2169
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2190
/* end confdefs.h.  */
2170
/* end confdefs.h.  */
2191
$4
2171
$4
2192
int
2172
int
2193
main ()
2173
main (void)
2194
{
2174
{
2195
if (sizeof (($2)))
2175
if (sizeof (($2)))
2196
	    return 0;
2176
	    return 0;
Lines 2198-2215 Link Here
2198
  return 0;
2178
  return 0;
2199
}
2179
}
2200
_ACEOF
2180
_ACEOF
2201
if ac_fn_c_try_compile "$LINENO"; then :
2181
if ac_fn_c_try_compile "$LINENO"
2182
then :
2202
2183
2203
else
2184
else $as_nop
2204
  eval "$3=yes"
2185
  eval "$3=yes"
2205
fi
2186
fi
2206
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2187
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
2207
fi
2188
fi
2208
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2189
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
2209
fi
2190
fi
2210
eval ac_res=\$$3
2191
eval ac_res=\$$3
2211
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
2192
	       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
2212
$as_echo "$ac_res" >&6; }
2193
printf "%s\n" "$ac_res" >&6; }
2213
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2194
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2214
2195
2215
} # ac_fn_c_check_type
2196
} # ac_fn_c_check_type
Lines 2221-2231 Link Here
2221
ac_fn_c_find_uintX_t ()
2202
ac_fn_c_find_uintX_t ()
2222
{
2203
{
2223
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2204
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2224
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5
2205
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5
2225
$as_echo_n "checking for uint$2_t... " >&6; }
2206
printf %s "checking for uint$2_t... " >&6; }
2226
if eval \${$3+:} false; then :
2207
if eval test \${$3+y}
2227
  $as_echo_n "(cached) " >&6
2208
then :
2228
else
2209
  printf %s "(cached) " >&6
2210
else $as_nop
2229
  eval "$3=no"
2211
  eval "$3=no"
2230
     # Order is important - never check a type that is potentially smaller
2212
     # Order is important - never check a type that is potentially smaller
2231
     # than half of the expected target width.
2213
     # than half of the expected target width.
Lines 2235-2241 Link Here
2235
/* end confdefs.h.  */
2217
/* end confdefs.h.  */
2236
$ac_includes_default
2218
$ac_includes_default
2237
int
2219
int
2238
main ()
2220
main (void)
2239
{
2221
{
2240
static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)];
2222
static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)];
2241
test_array [0] = 0;
2223
test_array [0] = 0;
Lines 2245-2251 Link Here
2245
  return 0;
2227
  return 0;
2246
}
2228
}
2247
_ACEOF
2229
_ACEOF
2248
if ac_fn_c_try_compile "$LINENO"; then :
2230
if ac_fn_c_try_compile "$LINENO"
2231
then :
2249
  case $ac_type in #(
2232
  case $ac_type in #(
2250
  uint$2_t) :
2233
  uint$2_t) :
2251
    eval "$3=yes" ;; #(
2234
    eval "$3=yes" ;; #(
Lines 2253-2269 Link Here
2253
    eval "$3=\$ac_type" ;;
2236
    eval "$3=\$ac_type" ;;
2254
esac
2237
esac
2255
fi
2238
fi
2256
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2239
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
2257
       if eval test \"x\$"$3"\" = x"no"; then :
2240
       if eval test \"x\$"$3"\" = x"no"
2241
then :
2258
2242
2259
else
2243
else $as_nop
2260
  break
2244
  break
2261
fi
2245
fi
2262
     done
2246
     done
2263
fi
2247
fi
2264
eval ac_res=\$$3
2248
eval ac_res=\$$3
2265
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
2249
	       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
2266
$as_echo "$ac_res" >&6; }
2250
printf "%s\n" "$ac_res" >&6; }
2267
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2251
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2268
2252
2269
} # ac_fn_c_find_uintX_t
2253
} # ac_fn_c_find_uintX_t
Lines 2275-2285 Link Here
2275
ac_fn_c_find_intX_t ()
2259
ac_fn_c_find_intX_t ()
2276
{
2260
{
2277
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2261
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2278
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for int$2_t" >&5
2262
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for int$2_t" >&5
2279
$as_echo_n "checking for int$2_t... " >&6; }
2263
printf %s "checking for int$2_t... " >&6; }
2280
if eval \${$3+:} false; then :
2264
if eval test \${$3+y}
2281
  $as_echo_n "(cached) " >&6
2265
then :
2282
else
2266
  printf %s "(cached) " >&6
2267
else $as_nop
2283
  eval "$3=no"
2268
  eval "$3=no"
2284
     # Order is important - never check a type that is potentially smaller
2269
     # Order is important - never check a type that is potentially smaller
2285
     # than half of the expected target width.
2270
     # than half of the expected target width.
Lines 2290-2296 Link Here
2290
$ac_includes_default
2275
$ac_includes_default
2291
	     enum { N = $2 / 2 - 1 };
2276
	     enum { N = $2 / 2 - 1 };
2292
int
2277
int
2293
main ()
2278
main (void)
2294
{
2279
{
2295
static int test_array [1 - 2 * !(0 < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1))];
2280
static int test_array [1 - 2 * !(0 < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1))];
2296
test_array [0] = 0;
2281
test_array [0] = 0;
Lines 2300-2312 Link Here
2300
  return 0;
2285
  return 0;
2301
}
2286
}
2302
_ACEOF
2287
_ACEOF
2303
if ac_fn_c_try_compile "$LINENO"; then :
2288
if ac_fn_c_try_compile "$LINENO"
2289
then :
2304
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2290
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2305
/* end confdefs.h.  */
2291
/* end confdefs.h.  */
2306
$ac_includes_default
2292
$ac_includes_default
2307
	        enum { N = $2 / 2 - 1 };
2293
	        enum { N = $2 / 2 - 1 };
2308
int
2294
int
2309
main ()
2295
main (void)
2310
{
2296
{
2311
static int test_array [1 - 2 * !(($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1)
2297
static int test_array [1 - 2 * !(($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1)
2312
		 < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 2))];
2298
		 < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 2))];
Lines 2317-2325 Link Here
2317
  return 0;
2303
  return 0;
2318
}
2304
}
2319
_ACEOF
2305
_ACEOF
2320
if ac_fn_c_try_compile "$LINENO"; then :
2306
if ac_fn_c_try_compile "$LINENO"
2307
then :
2321
2308
2322
else
2309
else $as_nop
2323
  case $ac_type in #(
2310
  case $ac_type in #(
2324
  int$2_t) :
2311
  int$2_t) :
2325
    eval "$3=yes" ;; #(
2312
    eval "$3=yes" ;; #(
Lines 2327-2345 Link Here
2327
    eval "$3=\$ac_type" ;;
2314
    eval "$3=\$ac_type" ;;
2328
esac
2315
esac
2329
fi
2316
fi
2330
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2317
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
2331
fi
2318
fi
2332
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2319
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
2333
       if eval test \"x\$"$3"\" = x"no"; then :
2320
       if eval test \"x\$"$3"\" = x"no"
2321
then :
2334
2322
2335
else
2323
else $as_nop
2336
  break
2324
  break
2337
fi
2325
fi
2338
     done
2326
     done
2339
fi
2327
fi
2340
eval ac_res=\$$3
2328
eval ac_res=\$$3
2341
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
2329
	       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
2342
$as_echo "$ac_res" >&6; }
2330
printf "%s\n" "$ac_res" >&6; }
2343
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2331
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2344
2332
2345
} # ac_fn_c_find_intX_t
2333
} # ac_fn_c_find_intX_t
Lines 2358-2364 Link Here
2358
/* end confdefs.h.  */
2346
/* end confdefs.h.  */
2359
$4
2347
$4
2360
int
2348
int
2361
main ()
2349
main (void)
2362
{
2350
{
2363
static int test_array [1 - 2 * !(($2) >= 0)];
2351
static int test_array [1 - 2 * !(($2) >= 0)];
2364
test_array [0] = 0;
2352
test_array [0] = 0;
Lines 2368-2381 Link Here
2368
  return 0;
2356
  return 0;
2369
}
2357
}
2370
_ACEOF
2358
_ACEOF
2371
if ac_fn_c_try_compile "$LINENO"; then :
2359
if ac_fn_c_try_compile "$LINENO"
2360
then :
2372
  ac_lo=0 ac_mid=0
2361
  ac_lo=0 ac_mid=0
2373
  while :; do
2362
  while :; do
2374
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2363
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2375
/* end confdefs.h.  */
2364
/* end confdefs.h.  */
2376
$4
2365
$4
2377
int
2366
int
2378
main ()
2367
main (void)
2379
{
2368
{
2380
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
2369
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
2381
test_array [0] = 0;
2370
test_array [0] = 0;
Lines 2385-2393 Link Here
2385
  return 0;
2374
  return 0;
2386
}
2375
}
2387
_ACEOF
2376
_ACEOF
2388
if ac_fn_c_try_compile "$LINENO"; then :
2377
if ac_fn_c_try_compile "$LINENO"
2378
then :
2389
  ac_hi=$ac_mid; break
2379
  ac_hi=$ac_mid; break
2390
else
2380
else $as_nop
2391
  as_fn_arith $ac_mid + 1 && ac_lo=$as_val
2381
  as_fn_arith $ac_mid + 1 && ac_lo=$as_val
2392
			if test $ac_lo -le $ac_mid; then
2382
			if test $ac_lo -le $ac_mid; then
2393
			  ac_lo= ac_hi=
2383
			  ac_lo= ac_hi=
Lines 2395-2408 Link Here
2395
			fi
2385
			fi
2396
			as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
2386
			as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
2397
fi
2387
fi
2398
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2388
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
2399
  done
2389
  done
2400
else
2390
else $as_nop
2401
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2391
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2402
/* end confdefs.h.  */
2392
/* end confdefs.h.  */
2403
$4
2393
$4
2404
int
2394
int
2405
main ()
2395
main (void)
2406
{
2396
{
2407
static int test_array [1 - 2 * !(($2) < 0)];
2397
static int test_array [1 - 2 * !(($2) < 0)];
2408
test_array [0] = 0;
2398
test_array [0] = 0;
Lines 2412-2425 Link Here
2412
  return 0;
2402
  return 0;
2413
}
2403
}
2414
_ACEOF
2404
_ACEOF
2415
if ac_fn_c_try_compile "$LINENO"; then :
2405
if ac_fn_c_try_compile "$LINENO"
2406
then :
2416
  ac_hi=-1 ac_mid=-1
2407
  ac_hi=-1 ac_mid=-1
2417
  while :; do
2408
  while :; do
2418
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2409
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2419
/* end confdefs.h.  */
2410
/* end confdefs.h.  */
2420
$4
2411
$4
2421
int
2412
int
2422
main ()
2413
main (void)
2423
{
2414
{
2424
static int test_array [1 - 2 * !(($2) >= $ac_mid)];
2415
static int test_array [1 - 2 * !(($2) >= $ac_mid)];
2425
test_array [0] = 0;
2416
test_array [0] = 0;
Lines 2429-2437 Link Here
2429
  return 0;
2420
  return 0;
2430
}
2421
}
2431
_ACEOF
2422
_ACEOF
2432
if ac_fn_c_try_compile "$LINENO"; then :
2423
if ac_fn_c_try_compile "$LINENO"
2424
then :
2433
  ac_lo=$ac_mid; break
2425
  ac_lo=$ac_mid; break
2434
else
2426
else $as_nop
2435
  as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
2427
  as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
2436
			if test $ac_mid -le $ac_hi; then
2428
			if test $ac_mid -le $ac_hi; then
2437
			  ac_lo= ac_hi=
2429
			  ac_lo= ac_hi=
Lines 2439-2452 Link Here
2439
			fi
2431
			fi
2440
			as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
2432
			as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
2441
fi
2433
fi
2442
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2434
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
2443
  done
2435
  done
2444
else
2436
else $as_nop
2445
  ac_lo= ac_hi=
2437
  ac_lo= ac_hi=
2446
fi
2438
fi
2447
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2439
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
2448
fi
2440
fi
2449
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2441
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
2450
# Binary search between lo and hi bounds.
2442
# Binary search between lo and hi bounds.
2451
while test "x$ac_lo" != "x$ac_hi"; do
2443
while test "x$ac_lo" != "x$ac_hi"; do
2452
  as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
2444
  as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
Lines 2454-2460 Link Here
2454
/* end confdefs.h.  */
2446
/* end confdefs.h.  */
2455
$4
2447
$4
2456
int
2448
int
2457
main ()
2449
main (void)
2458
{
2450
{
2459
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
2451
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
2460
test_array [0] = 0;
2452
test_array [0] = 0;
Lines 2464-2475 Link Here
2464
  return 0;
2456
  return 0;
2465
}
2457
}
2466
_ACEOF
2458
_ACEOF
2467
if ac_fn_c_try_compile "$LINENO"; then :
2459
if ac_fn_c_try_compile "$LINENO"
2460
then :
2468
  ac_hi=$ac_mid
2461
  ac_hi=$ac_mid
2469
else
2462
else $as_nop
2470
  as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
2463
  as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
2471
fi
2464
fi
2472
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2465
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
2473
done
2466
done
2474
case $ac_lo in #((
2467
case $ac_lo in #((
2475
?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
2468
?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
Lines 2479-2490 Link Here
2479
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2472
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2480
/* end confdefs.h.  */
2473
/* end confdefs.h.  */
2481
$4
2474
$4
2482
static long int longval () { return $2; }
2475
static long int longval (void) { return $2; }
2483
static unsigned long int ulongval () { return $2; }
2476
static unsigned long int ulongval (void) { return $2; }
2484
#include <stdio.h>
2477
#include <stdio.h>
2485
#include <stdlib.h>
2478
#include <stdlib.h>
2486
int
2479
int
2487
main ()
2480
main (void)
2488
{
2481
{
2489
2482
2490
  FILE *f = fopen ("conftest.val", "w");
2483
  FILE *f = fopen ("conftest.val", "w");
Lines 2512-2520 Link Here
2512
  return 0;
2505
  return 0;
2513
}
2506
}
2514
_ACEOF
2507
_ACEOF
2515
if ac_fn_c_try_run "$LINENO"; then :
2508
if ac_fn_c_try_run "$LINENO"
2509
then :
2516
  echo >>conftest.val; read $3 <conftest.val; ac_retval=0
2510
  echo >>conftest.val; read $3 <conftest.val; ac_retval=0
2517
else
2511
else $as_nop
2518
  ac_retval=1
2512
  ac_retval=1
2519
fi
2513
fi
2520
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
2514
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
Lines 2534-2549 Link Here
2534
ac_fn_c_check_member ()
2528
ac_fn_c_check_member ()
2535
{
2529
{
2536
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2530
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2537
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
2531
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
2538
$as_echo_n "checking for $2.$3... " >&6; }
2532
printf %s "checking for $2.$3... " >&6; }
2539
if eval \${$4+:} false; then :
2533
if eval test \${$4+y}
2540
  $as_echo_n "(cached) " >&6
2534
then :
2541
else
2535
  printf %s "(cached) " >&6
2536
else $as_nop
2542
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2537
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2543
/* end confdefs.h.  */
2538
/* end confdefs.h.  */
2544
$5
2539
$5
2545
int
2540
int
2546
main ()
2541
main (void)
2547
{
2542
{
2548
static $2 ac_aggr;
2543
static $2 ac_aggr;
2549
if (ac_aggr.$3)
2544
if (ac_aggr.$3)
Lines 2552-2565 Link Here
2552
  return 0;
2547
  return 0;
2553
}
2548
}
2554
_ACEOF
2549
_ACEOF
2555
if ac_fn_c_try_compile "$LINENO"; then :
2550
if ac_fn_c_try_compile "$LINENO"
2551
then :
2556
  eval "$4=yes"
2552
  eval "$4=yes"
2557
else
2553
else $as_nop
2558
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2554
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2559
/* end confdefs.h.  */
2555
/* end confdefs.h.  */
2560
$5
2556
$5
2561
int
2557
int
2562
main ()
2558
main (void)
2563
{
2559
{
2564
static $2 ac_aggr;
2560
static $2 ac_aggr;
2565
if (sizeof ac_aggr.$3)
2561
if (sizeof ac_aggr.$3)
Lines 2568-2596 Link Here
2568
  return 0;
2564
  return 0;
2569
}
2565
}
2570
_ACEOF
2566
_ACEOF
2571
if ac_fn_c_try_compile "$LINENO"; then :
2567
if ac_fn_c_try_compile "$LINENO"
2568
then :
2572
  eval "$4=yes"
2569
  eval "$4=yes"
2573
else
2570
else $as_nop
2574
  eval "$4=no"
2571
  eval "$4=no"
2575
fi
2572
fi
2576
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2573
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
2577
fi
2574
fi
2578
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2575
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
2579
fi
2576
fi
2580
eval ac_res=\$$4
2577
eval ac_res=\$$4
2581
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
2578
	       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
2582
$as_echo "$ac_res" >&6; }
2579
printf "%s\n" "$ac_res" >&6; }
2583
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2580
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2584
2581
2585
} # ac_fn_c_check_member
2582
} # ac_fn_c_check_member
2583
ac_configure_args_raw=
2584
for ac_arg
2585
do
2586
  case $ac_arg in
2587
  *\'*)
2588
    ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2589
  esac
2590
  as_fn_append ac_configure_args_raw " '$ac_arg'"
2591
done
2592
2593
case $ac_configure_args_raw in
2594
  *$as_nl*)
2595
    ac_safe_unquote= ;;
2596
  *)
2597
    ac_unsafe_z='|&;<>()$`\\"*?[ ''	' # This string ends in space, tab.
2598
    ac_unsafe_a="$ac_unsafe_z#~"
2599
    ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g"
2600
    ac_configure_args_raw=`      printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;
2601
esac
2602
2586
cat >config.log <<_ACEOF
2603
cat >config.log <<_ACEOF
2587
This file contains any messages produced by compilers while
2604
This file contains any messages produced by compilers while
2588
running configure, to aid debugging if configure makes a mistake.
2605
running configure, to aid debugging if configure makes a mistake.
2589
2606
2590
It was created by XZ Utils $as_me 5.2.5, which was
2607
It was created by XZ Utils $as_me 5.4.3, which was
2591
generated by GNU Autoconf 2.69.  Invocation command line was
2608
generated by GNU Autoconf 2.71.  Invocation command line was
2592
2609
2593
  $ $0 $@
2610
  $ $0$ac_configure_args_raw
2594
2611
2595
_ACEOF
2612
_ACEOF
2596
exec 5>>config.log
2613
exec 5>>config.log
Lines 2623-2630 Link Here
2623
for as_dir in $PATH
2640
for as_dir in $PATH
2624
do
2641
do
2625
  IFS=$as_save_IFS
2642
  IFS=$as_save_IFS
2626
  test -z "$as_dir" && as_dir=.
2643
  case $as_dir in #(((
2627
    $as_echo "PATH: $as_dir"
2644
    '') as_dir=./ ;;
2645
    */) ;;
2646
    *) as_dir=$as_dir/ ;;
2647
  esac
2648
    printf "%s\n" "PATH: $as_dir"
2628
  done
2649
  done
2629
IFS=$as_save_IFS
2650
IFS=$as_save_IFS
2630
2651
Lines 2659-2665 Link Here
2659
    | -silent | --silent | --silen | --sile | --sil)
2680
    | -silent | --silent | --silen | --sile | --sil)
2660
      continue ;;
2681
      continue ;;
2661
    *\'*)
2682
    *\'*)
2662
      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2683
      ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2663
    esac
2684
    esac
2664
    case $ac_pass in
2685
    case $ac_pass in
2665
    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
2686
    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
Lines 2694-2704 Link Here
2694
# WARNING: Use '\'' to represent an apostrophe within the trap.
2715
# WARNING: Use '\'' to represent an apostrophe within the trap.
2695
# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
2716
# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
2696
trap 'exit_status=$?
2717
trap 'exit_status=$?
2718
  # Sanitize IFS.
2719
  IFS=" ""	$as_nl"
2697
  # Save into config.log some information that might help in debugging.
2720
  # Save into config.log some information that might help in debugging.
2698
  {
2721
  {
2699
    echo
2722
    echo
2700
2723
2701
    $as_echo "## ---------------- ##
2724
    printf "%s\n" "## ---------------- ##
2702
## Cache variables. ##
2725
## Cache variables. ##
2703
## ---------------- ##"
2726
## ---------------- ##"
2704
    echo
2727
    echo
Lines 2709-2716 Link Here
2709
    case $ac_val in #(
2732
    case $ac_val in #(
2710
    *${as_nl}*)
2733
    *${as_nl}*)
2711
      case $ac_var in #(
2734
      case $ac_var in #(
2712
      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
2735
      *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
2713
$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
2736
printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
2714
      esac
2737
      esac
2715
      case $ac_var in #(
2738
      case $ac_var in #(
2716
      _ | IFS | as_nl) ;; #(
2739
      _ | IFS | as_nl) ;; #(
Lines 2734-2740 Link Here
2734
)
2757
)
2735
    echo
2758
    echo
2736
2759
2737
    $as_echo "## ----------------- ##
2760
    printf "%s\n" "## ----------------- ##
2738
## Output variables. ##
2761
## Output variables. ##
2739
## ----------------- ##"
2762
## ----------------- ##"
2740
    echo
2763
    echo
Lines 2742-2755 Link Here
2742
    do
2765
    do
2743
      eval ac_val=\$$ac_var
2766
      eval ac_val=\$$ac_var
2744
      case $ac_val in
2767
      case $ac_val in
2745
      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
2768
      *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
2746
      esac
2769
      esac
2747
      $as_echo "$ac_var='\''$ac_val'\''"
2770
      printf "%s\n" "$ac_var='\''$ac_val'\''"
2748
    done | sort
2771
    done | sort
2749
    echo
2772
    echo
2750
2773
2751
    if test -n "$ac_subst_files"; then
2774
    if test -n "$ac_subst_files"; then
2752
      $as_echo "## ------------------- ##
2775
      printf "%s\n" "## ------------------- ##
2753
## File substitutions. ##
2776
## File substitutions. ##
2754
## ------------------- ##"
2777
## ------------------- ##"
2755
      echo
2778
      echo
Lines 2757-2771 Link Here
2757
      do
2780
      do
2758
	eval ac_val=\$$ac_var
2781
	eval ac_val=\$$ac_var
2759
	case $ac_val in
2782
	case $ac_val in
2760
	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
2783
	*\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
2761
	esac
2784
	esac
2762
	$as_echo "$ac_var='\''$ac_val'\''"
2785
	printf "%s\n" "$ac_var='\''$ac_val'\''"
2763
      done | sort
2786
      done | sort
2764
      echo
2787
      echo
2765
    fi
2788
    fi
2766
2789
2767
    if test -s confdefs.h; then
2790
    if test -s confdefs.h; then
2768
      $as_echo "## ----------- ##
2791
      printf "%s\n" "## ----------- ##
2769
## confdefs.h. ##
2792
## confdefs.h. ##
2770
## ----------- ##"
2793
## ----------- ##"
2771
      echo
2794
      echo
Lines 2773-2780 Link Here
2773
      echo
2796
      echo
2774
    fi
2797
    fi
2775
    test "$ac_signal" != 0 &&
2798
    test "$ac_signal" != 0 &&
2776
      $as_echo "$as_me: caught signal $ac_signal"
2799
      printf "%s\n" "$as_me: caught signal $ac_signal"
2777
    $as_echo "$as_me: exit $exit_status"
2800
    printf "%s\n" "$as_me: exit $exit_status"
2778
  } >&5
2801
  } >&5
2779
  rm -f core *.core core.conftest.* &&
2802
  rm -f core *.core core.conftest.* &&
2780
    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
2803
    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
Lines 2788-2850 Link Here
2788
# confdefs.h avoids OS command line length limits that DEFS can exceed.
2811
# confdefs.h avoids OS command line length limits that DEFS can exceed.
2789
rm -f -r conftest* confdefs.h
2812
rm -f -r conftest* confdefs.h
2790
2813
2791
$as_echo "/* confdefs.h */" > confdefs.h
2814
printf "%s\n" "/* confdefs.h */" > confdefs.h
2792
2815
2793
# Predefined preprocessor variables.
2816
# Predefined preprocessor variables.
2794
2817
2795
cat >>confdefs.h <<_ACEOF
2818
printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h
2796
#define PACKAGE_NAME "$PACKAGE_NAME"
2797
_ACEOF
2798
2819
2799
cat >>confdefs.h <<_ACEOF
2820
printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h
2800
#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
2801
_ACEOF
2802
2821
2803
cat >>confdefs.h <<_ACEOF
2822
printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h
2804
#define PACKAGE_VERSION "$PACKAGE_VERSION"
2805
_ACEOF
2806
2823
2807
cat >>confdefs.h <<_ACEOF
2824
printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h
2808
#define PACKAGE_STRING "$PACKAGE_STRING"
2809
_ACEOF
2810
2825
2811
cat >>confdefs.h <<_ACEOF
2826
printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h
2812
#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
2813
_ACEOF
2814
2827
2815
cat >>confdefs.h <<_ACEOF
2828
printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h
2816
#define PACKAGE_URL "$PACKAGE_URL"
2817
_ACEOF
2818
2829
2819
2830
2820
# Let the site file select an alternate cache file if it wants to.
2831
# Let the site file select an alternate cache file if it wants to.
2821
# Prefer an explicitly selected file to automatically selected ones.
2832
# Prefer an explicitly selected file to automatically selected ones.
2822
ac_site_file1=NONE
2823
ac_site_file2=NONE
2824
if test -n "$CONFIG_SITE"; then
2833
if test -n "$CONFIG_SITE"; then
2825
  # We do not want a PATH search for config.site.
2834
  ac_site_files="$CONFIG_SITE"
2826
  case $CONFIG_SITE in #((
2827
    -*)  ac_site_file1=./$CONFIG_SITE;;
2828
    */*) ac_site_file1=$CONFIG_SITE;;
2829
    *)   ac_site_file1=./$CONFIG_SITE;;
2830
  esac
2831
elif test "x$prefix" != xNONE; then
2835
elif test "x$prefix" != xNONE; then
2832
  ac_site_file1=$prefix/share/config.site
2836
  ac_site_files="$prefix/share/config.site $prefix/etc/config.site"
2833
  ac_site_file2=$prefix/etc/config.site
2834
else
2837
else
2835
  ac_site_file1=$ac_default_prefix/share/config.site
2838
  ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
2836
  ac_site_file2=$ac_default_prefix/etc/config.site
2837
fi
2839
fi
2838
for ac_site_file in "$ac_site_file1" "$ac_site_file2"
2840
2841
for ac_site_file in $ac_site_files
2839
do
2842
do
2840
  test "x$ac_site_file" = xNONE && continue
2843
  case $ac_site_file in #(
2841
  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
2844
  */*) :
2842
    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
2845
     ;; #(
2843
$as_echo "$as_me: loading site script $ac_site_file" >&6;}
2846
  *) :
2847
    ac_site_file=./$ac_site_file ;;
2848
esac
2849
  if test -f "$ac_site_file" && test -r "$ac_site_file"; then
2850
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
2851
printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
2844
    sed 's/^/| /' "$ac_site_file" >&5
2852
    sed 's/^/| /' "$ac_site_file" >&5
2845
    . "$ac_site_file" \
2853
    . "$ac_site_file" \
2846
      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
2854
      || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
2847
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
2855
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
2848
as_fn_error $? "failed to load site script $ac_site_file
2856
as_fn_error $? "failed to load site script $ac_site_file
2849
See \`config.log' for more details" "$LINENO" 5; }
2857
See \`config.log' for more details" "$LINENO" 5; }
2850
  fi
2858
  fi
Lines 2854-2873 Link Here
2854
  # Some versions of bash will fail to source /dev/null (special files
2862
  # Some versions of bash will fail to source /dev/null (special files
2855
  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
2863
  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
2856
  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
2864
  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
2857
    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
2865
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
2858
$as_echo "$as_me: loading cache $cache_file" >&6;}
2866
printf "%s\n" "$as_me: loading cache $cache_file" >&6;}
2859
    case $cache_file in
2867
    case $cache_file in
2860
      [\\/]* | ?:[\\/]* ) . "$cache_file";;
2868
      [\\/]* | ?:[\\/]* ) . "$cache_file";;
2861
      *)                      . "./$cache_file";;
2869
      *)                      . "./$cache_file";;
2862
    esac
2870
    esac
2863
  fi
2871
  fi
2864
else
2872
else
2865
  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
2873
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
2866
$as_echo "$as_me: creating cache $cache_file" >&6;}
2874
printf "%s\n" "$as_me: creating cache $cache_file" >&6;}
2867
  >$cache_file
2875
  >$cache_file
2868
fi
2876
fi
2869
2877
2878
# Test code for whether the C compiler supports C89 (global declarations)
2879
ac_c_conftest_c89_globals='
2880
/* Does the compiler advertise C89 conformance?
2881
   Do not test the value of __STDC__, because some compilers set it to 0
2882
   while being otherwise adequately conformant. */
2883
#if !defined __STDC__
2884
# error "Compiler does not advertise C89 conformance"
2885
#endif
2886
2887
#include <stddef.h>
2888
#include <stdarg.h>
2889
struct stat;
2890
/* Most of the following tests are stolen from RCS 5.7 src/conf.sh.  */
2891
struct buf { int x; };
2892
struct buf * (*rcsopen) (struct buf *, struct stat *, int);
2893
static char *e (p, i)
2894
     char **p;
2895
     int i;
2896
{
2897
  return p[i];
2898
}
2899
static char *f (char * (*g) (char **, int), char **p, ...)
2900
{
2901
  char *s;
2902
  va_list v;
2903
  va_start (v,p);
2904
  s = g (p, va_arg (v,int));
2905
  va_end (v);
2906
  return s;
2907
}
2908
2909
/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
2910
   function prototypes and stuff, but not \xHH hex character constants.
2911
   These do not provoke an error unfortunately, instead are silently treated
2912
   as an "x".  The following induces an error, until -std is added to get
2913
   proper ANSI mode.  Curiously \x00 != x always comes out true, for an
2914
   array size at least.  It is necessary to write \x00 == 0 to get something
2915
   that is true only with -std.  */
2916
int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1];
2917
2918
/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
2919
   inside strings and character constants.  */
2920
#define FOO(x) '\''x'\''
2921
int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1];
2922
2923
int test (int i, double x);
2924
struct s1 {int (*f) (int a);};
2925
struct s2 {int (*f) (double a);};
2926
int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int),
2927
               int, int);'
2928
2929
# Test code for whether the C compiler supports C89 (body of main).
2930
ac_c_conftest_c89_main='
2931
ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]);
2932
'
2933
2934
# Test code for whether the C compiler supports C99 (global declarations)
2935
ac_c_conftest_c99_globals='
2936
// Does the compiler advertise C99 conformance?
2937
#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
2938
# error "Compiler does not advertise C99 conformance"
2939
#endif
2940
2941
#include <stdbool.h>
2942
extern int puts (const char *);
2943
extern int printf (const char *, ...);
2944
extern int dprintf (int, const char *, ...);
2945
extern void *malloc (size_t);
2946
2947
// Check varargs macros.  These examples are taken from C99 6.10.3.5.
2948
// dprintf is used instead of fprintf to avoid needing to declare
2949
// FILE and stderr.
2950
#define debug(...) dprintf (2, __VA_ARGS__)
2951
#define showlist(...) puts (#__VA_ARGS__)
2952
#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
2953
static void
2954
test_varargs_macros (void)
2955
{
2956
  int x = 1234;
2957
  int y = 5678;
2958
  debug ("Flag");
2959
  debug ("X = %d\n", x);
2960
  showlist (The first, second, and third items.);
2961
  report (x>y, "x is %d but y is %d", x, y);
2962
}
2963
2964
// Check long long types.
2965
#define BIG64 18446744073709551615ull
2966
#define BIG32 4294967295ul
2967
#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
2968
#if !BIG_OK
2969
  #error "your preprocessor is broken"
2970
#endif
2971
#if BIG_OK
2972
#else
2973
  #error "your preprocessor is broken"
2974
#endif
2975
static long long int bignum = -9223372036854775807LL;
2976
static unsigned long long int ubignum = BIG64;
2977
2978
struct incomplete_array
2979
{
2980
  int datasize;
2981
  double data[];
2982
};
2983
2984
struct named_init {
2985
  int number;
2986
  const wchar_t *name;
2987
  double average;
2988
};
2989
2990
typedef const char *ccp;
2991
2992
static inline int
2993
test_restrict (ccp restrict text)
2994
{
2995
  // See if C++-style comments work.
2996
  // Iterate through items via the restricted pointer.
2997
  // Also check for declarations in for loops.
2998
  for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i)
2999
    continue;
3000
  return 0;
3001
}
3002
3003
// Check varargs and va_copy.
3004
static bool
3005
test_varargs (const char *format, ...)
3006
{
3007
  va_list args;
3008
  va_start (args, format);
3009
  va_list args_copy;
3010
  va_copy (args_copy, args);
3011
3012
  const char *str = "";
3013
  int number = 0;
3014
  float fnumber = 0;
3015
3016
  while (*format)
3017
    {
3018
      switch (*format++)
3019
	{
3020
	case '\''s'\'': // string
3021
	  str = va_arg (args_copy, const char *);
3022
	  break;
3023
	case '\''d'\'': // int
3024
	  number = va_arg (args_copy, int);
3025
	  break;
3026
	case '\''f'\'': // float
3027
	  fnumber = va_arg (args_copy, double);
3028
	  break;
3029
	default:
3030
	  break;
3031
	}
3032
    }
3033
  va_end (args_copy);
3034
  va_end (args);
3035
3036
  return *str && number && fnumber;
3037
}
3038
'
3039
3040
# Test code for whether the C compiler supports C99 (body of main).
3041
ac_c_conftest_c99_main='
3042
  // Check bool.
3043
  _Bool success = false;
3044
  success |= (argc != 0);
3045
3046
  // Check restrict.
3047
  if (test_restrict ("String literal") == 0)
3048
    success = true;
3049
  char *restrict newvar = "Another string";
3050
3051
  // Check varargs.
3052
  success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234);
3053
  test_varargs_macros ();
3054
3055
  // Check flexible array members.
3056
  struct incomplete_array *ia =
3057
    malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
3058
  ia->datasize = 10;
3059
  for (int i = 0; i < ia->datasize; ++i)
3060
    ia->data[i] = i * 1.234;
3061
3062
  // Check named initializers.
3063
  struct named_init ni = {
3064
    .number = 34,
3065
    .name = L"Test wide string",
3066
    .average = 543.34343,
3067
  };
3068
3069
  ni.number = 58;
3070
3071
  int dynamic_array[ni.number];
3072
  dynamic_array[0] = argv[0][0];
3073
  dynamic_array[ni.number - 1] = 543;
3074
3075
  // work around unused variable warnings
3076
  ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\''
3077
	 || dynamic_array[ni.number - 1] != 543);
3078
'
3079
3080
# Test code for whether the C compiler supports C11 (global declarations)
3081
ac_c_conftest_c11_globals='
3082
// Does the compiler advertise C11 conformance?
3083
#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L
3084
# error "Compiler does not advertise C11 conformance"
3085
#endif
3086
3087
// Check _Alignas.
3088
char _Alignas (double) aligned_as_double;
3089
char _Alignas (0) no_special_alignment;
3090
extern char aligned_as_int;
3091
char _Alignas (0) _Alignas (int) aligned_as_int;
3092
3093
// Check _Alignof.
3094
enum
3095
{
3096
  int_alignment = _Alignof (int),
3097
  int_array_alignment = _Alignof (int[100]),
3098
  char_alignment = _Alignof (char)
3099
};
3100
_Static_assert (0 < -_Alignof (int), "_Alignof is signed");
3101
3102
// Check _Noreturn.
3103
int _Noreturn does_not_return (void) { for (;;) continue; }
3104
3105
// Check _Static_assert.
3106
struct test_static_assert
3107
{
3108
  int x;
3109
  _Static_assert (sizeof (int) <= sizeof (long int),
3110
                  "_Static_assert does not work in struct");
3111
  long int y;
3112
};
3113
3114
// Check UTF-8 literals.
3115
#define u8 syntax error!
3116
char const utf8_literal[] = u8"happens to be ASCII" "another string";
3117
3118
// Check duplicate typedefs.
3119
typedef long *long_ptr;
3120
typedef long int *long_ptr;
3121
typedef long_ptr long_ptr;
3122
3123
// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1.
3124
struct anonymous
3125
{
3126
  union {
3127
    struct { int i; int j; };
3128
    struct { int k; long int l; } w;
3129
  };
3130
  int m;
3131
} v1;
3132
'
3133
3134
# Test code for whether the C compiler supports C11 (body of main).
3135
ac_c_conftest_c11_main='
3136
  _Static_assert ((offsetof (struct anonymous, i)
3137
		   == offsetof (struct anonymous, w.k)),
3138
		  "Anonymous union alignment botch");
3139
  v1.i = 2;
3140
  v1.w.k = 5;
3141
  ok |= v1.i != 5;
3142
'
3143
3144
# Test code for whether the C compiler supports C11 (complete).
3145
ac_c_conftest_c11_program="${ac_c_conftest_c89_globals}
3146
${ac_c_conftest_c99_globals}
3147
${ac_c_conftest_c11_globals}
3148
3149
int
3150
main (int argc, char **argv)
3151
{
3152
  int ok = 0;
3153
  ${ac_c_conftest_c89_main}
3154
  ${ac_c_conftest_c99_main}
3155
  ${ac_c_conftest_c11_main}
3156
  return ok;
3157
}
3158
"
3159
3160
# Test code for whether the C compiler supports C99 (complete).
3161
ac_c_conftest_c99_program="${ac_c_conftest_c89_globals}
3162
${ac_c_conftest_c99_globals}
3163
3164
int
3165
main (int argc, char **argv)
3166
{
3167
  int ok = 0;
3168
  ${ac_c_conftest_c89_main}
3169
  ${ac_c_conftest_c99_main}
3170
  return ok;
3171
}
3172
"
3173
3174
# Test code for whether the C compiler supports C89 (complete).
3175
ac_c_conftest_c89_program="${ac_c_conftest_c89_globals}
3176
3177
int
3178
main (int argc, char **argv)
3179
{
3180
  int ok = 0;
3181
  ${ac_c_conftest_c89_main}
3182
  return ok;
3183
}
3184
"
3185
3186
as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H"
3187
as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H"
3188
as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H"
3189
as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H"
3190
as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H"
3191
as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H"
3192
as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H"
3193
as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H"
3194
as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H"
3195
as_fn_append ac_header_c_list " wchar.h wchar_h HAVE_WCHAR_H"
3196
as_fn_append ac_header_c_list " minix/config.h minix_config_h HAVE_MINIX_CONFIG_H"
2870
gt_needs="$gt_needs "
3197
gt_needs="$gt_needs "
3198
3199
# Auxiliary files required by this configure script.
3200
ac_aux_files="config.rpath ltmain.sh compile missing install-sh config.guess config.sub"
3201
3202
# Locations in which to look for auxiliary files.
3203
ac_aux_dir_candidates="${srcdir}/build-aux"
3204
3205
# Search for a directory containing all of the required auxiliary files,
3206
# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates.
3207
# If we don't find one directory that contains all the files we need,
3208
# we report the set of missing files from the *first* directory in
3209
# $ac_aux_dir_candidates and give up.
3210
ac_missing_aux_files=""
3211
ac_first_candidate=:
3212
printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5
3213
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3214
as_found=false
3215
for as_dir in $ac_aux_dir_candidates
3216
do
3217
  IFS=$as_save_IFS
3218
  case $as_dir in #(((
3219
    '') as_dir=./ ;;
3220
    */) ;;
3221
    *) as_dir=$as_dir/ ;;
3222
  esac
3223
  as_found=:
3224
3225
  printf "%s\n" "$as_me:${as_lineno-$LINENO}:  trying $as_dir" >&5
3226
  ac_aux_dir_found=yes
3227
  ac_install_sh=
3228
  for ac_aux in $ac_aux_files
3229
  do
3230
    # As a special case, if "install-sh" is required, that requirement
3231
    # can be satisfied by any of "install-sh", "install.sh", or "shtool",
3232
    # and $ac_install_sh is set appropriately for whichever one is found.
3233
    if test x"$ac_aux" = x"install-sh"
3234
    then
3235
      if test -f "${as_dir}install-sh"; then
3236
        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}install-sh found" >&5
3237
        ac_install_sh="${as_dir}install-sh -c"
3238
      elif test -f "${as_dir}install.sh"; then
3239
        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}install.sh found" >&5
3240
        ac_install_sh="${as_dir}install.sh -c"
3241
      elif test -f "${as_dir}shtool"; then
3242
        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}shtool found" >&5
3243
        ac_install_sh="${as_dir}shtool install -c"
3244
      else
3245
        ac_aux_dir_found=no
3246
        if $ac_first_candidate; then
3247
          ac_missing_aux_files="${ac_missing_aux_files} install-sh"
3248
        else
3249
          break
3250
        fi
3251
      fi
3252
    else
3253
      if test -f "${as_dir}${ac_aux}"; then
3254
        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}${ac_aux} found" >&5
3255
      else
3256
        ac_aux_dir_found=no
3257
        if $ac_first_candidate; then
3258
          ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}"
3259
        else
3260
          break
3261
        fi
3262
      fi
3263
    fi
3264
  done
3265
  if test "$ac_aux_dir_found" = yes; then
3266
    ac_aux_dir="$as_dir"
3267
    break
3268
  fi
3269
  ac_first_candidate=false
3270
3271
  as_found=false
3272
done
3273
IFS=$as_save_IFS
3274
if $as_found
3275
then :
3276
3277
else $as_nop
3278
  as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5
3279
fi
3280
3281
3282
# These three variables are undocumented and unsupported,
3283
# and are intended to be withdrawn in a future Autoconf release.
3284
# They can cause serious problems if a builder's source tree is in a directory
3285
# whose full name contains unusual characters.
3286
if test -f "${ac_aux_dir}config.guess"; then
3287
  ac_config_guess="$SHELL ${ac_aux_dir}config.guess"
3288
fi
3289
if test -f "${ac_aux_dir}config.sub"; then
3290
  ac_config_sub="$SHELL ${ac_aux_dir}config.sub"
3291
fi
3292
if test -f "$ac_aux_dir/configure"; then
3293
  ac_configure="$SHELL ${ac_aux_dir}configure"
3294
fi
3295
2871
# Check that the precious variables saved in the cache have kept the same
3296
# Check that the precious variables saved in the cache have kept the same
2872
# value.
3297
# value.
2873
ac_cache_corrupted=false
3298
ac_cache_corrupted=false
Lines 2878-2889 Link Here
2878
  eval ac_new_val=\$ac_env_${ac_var}_value
3303
  eval ac_new_val=\$ac_env_${ac_var}_value
2879
  case $ac_old_set,$ac_new_set in
3304
  case $ac_old_set,$ac_new_set in
2880
    set,)
3305
    set,)
2881
      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
3306
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
2882
$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
3307
printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
2883
      ac_cache_corrupted=: ;;
3308
      ac_cache_corrupted=: ;;
2884
    ,set)
3309
    ,set)
2885
      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
3310
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
2886
$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
3311
printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
2887
      ac_cache_corrupted=: ;;
3312
      ac_cache_corrupted=: ;;
2888
    ,);;
3313
    ,);;
2889
    *)
3314
    *)
Lines 2892-2915 Link Here
2892
	ac_old_val_w=`echo x $ac_old_val`
3317
	ac_old_val_w=`echo x $ac_old_val`
2893
	ac_new_val_w=`echo x $ac_new_val`
3318
	ac_new_val_w=`echo x $ac_new_val`
2894
	if test "$ac_old_val_w" != "$ac_new_val_w"; then
3319
	if test "$ac_old_val_w" != "$ac_new_val_w"; then
2895
	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
3320
	  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
2896
$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
3321
printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
2897
	  ac_cache_corrupted=:
3322
	  ac_cache_corrupted=:
2898
	else
3323
	else
2899
	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
3324
	  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
2900
$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
3325
printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
2901
	  eval $ac_var=\$ac_old_val
3326
	  eval $ac_var=\$ac_old_val
2902
	fi
3327
	fi
2903
	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
3328
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
2904
$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
3329
printf "%s\n" "$as_me:   former value:  \`$ac_old_val'" >&2;}
2905
	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
3330
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
2906
$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
3331
printf "%s\n" "$as_me:   current value: \`$ac_new_val'" >&2;}
2907
      fi;;
3332
      fi;;
2908
  esac
3333
  esac
2909
  # Pass precious variables to config.status.
3334
  # Pass precious variables to config.status.
2910
  if test "$ac_new_set" = set; then
3335
  if test "$ac_new_set" = set; then
2911
    case $ac_new_val in
3336
    case $ac_new_val in
2912
    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
3337
    *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
2913
    *) ac_arg=$ac_var=$ac_new_val ;;
3338
    *) ac_arg=$ac_var=$ac_new_val ;;
2914
    esac
3339
    esac
2915
    case " $ac_configure_args " in
3340
    case " $ac_configure_args " in
Lines 2919-2929 Link Here
2919
  fi
3344
  fi
2920
done
3345
done
2921
if $ac_cache_corrupted; then
3346
if $ac_cache_corrupted; then
2922
  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3347
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
2923
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3348
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
2924
  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
3349
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
2925
$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
3350
printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
2926
  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
3351
  as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file'
3352
	    and start over" "$LINENO" 5
2927
fi
3353
fi
2928
## -------------------- ##
3354
## -------------------- ##
2929
## Main body of script. ##
3355
## Main body of script. ##
Lines 2937-2972 Link Here
2937
3363
2938
3364
2939
3365
2940
ac_aux_dir=
2941
for ac_dir in build-aux "$srcdir"/build-aux; do
2942
  if test -f "$ac_dir/install-sh"; then
2943
    ac_aux_dir=$ac_dir
2944
    ac_install_sh="$ac_aux_dir/install-sh -c"
2945
    break
2946
  elif test -f "$ac_dir/install.sh"; then
2947
    ac_aux_dir=$ac_dir
2948
    ac_install_sh="$ac_aux_dir/install.sh -c"
2949
    break
2950
  elif test -f "$ac_dir/shtool"; then
2951
    ac_aux_dir=$ac_dir
2952
    ac_install_sh="$ac_aux_dir/shtool install -c"
2953
    break
2954
  fi
2955
done
2956
if test -z "$ac_aux_dir"; then
2957
  as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5
2958
fi
2959
3366
2960
# These three variables are undocumented and unsupported,
2961
# and are intended to be withdrawn in a future Autoconf release.
2962
# They can cause serious problems if a builder's source tree is in a directory
2963
# whose full name contains unusual characters.
2964
ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
2965
ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
2966
ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
2967
3367
2968
2969
2970
ac_config_headers="$ac_config_headers config.h"
3368
ac_config_headers="$ac_config_headers config.h"
2971
3369
2972
3370
Lines 2976-3001 Link Here
2976
echo
3374
echo
2977
echo "System type:"
3375
echo "System type:"
2978
# This is needed to know if assembler optimizations can be used.
3376
# This is needed to know if assembler optimizations can be used.
2979
# Make sure we can run config.sub.
2980
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
2981
  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
2982
3377
2983
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
3378
2984
$as_echo_n "checking build system type... " >&6; }
3379
2985
if ${ac_cv_build+:} false; then :
3380
  # Make sure we can run config.sub.
2986
  $as_echo_n "(cached) " >&6
3381
$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 ||
2987
else
3382
  as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5
3383
3384
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
3385
printf %s "checking build system type... " >&6; }
3386
if test ${ac_cv_build+y}
3387
then :
3388
  printf %s "(cached) " >&6
3389
else $as_nop
2988
  ac_build_alias=$build_alias
3390
  ac_build_alias=$build_alias
2989
test "x$ac_build_alias" = x &&
3391
test "x$ac_build_alias" = x &&
2990
  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
3392
  ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"`
2991
test "x$ac_build_alias" = x &&
3393
test "x$ac_build_alias" = x &&
2992
  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
3394
  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
2993
ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
3395
ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` ||
2994
  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
3396
  as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5
2995
3397
2996
fi
3398
fi
2997
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
3399
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
2998
$as_echo "$ac_cv_build" >&6; }
3400
printf "%s\n" "$ac_cv_build" >&6; }
2999
case $ac_cv_build in
3401
case $ac_cv_build in
3000
*-*-*) ;;
3402
*-*-*) ;;
3001
*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
3403
*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
Lines 3014-3034 Link Here
3014
case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
3416
case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
3015
3417
3016
3418
3017
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
3419
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
3018
$as_echo_n "checking host system type... " >&6; }
3420
printf %s "checking host system type... " >&6; }
3019
if ${ac_cv_host+:} false; then :
3421
if test ${ac_cv_host+y}
3020
  $as_echo_n "(cached) " >&6
3422
then :
3021
else
3423
  printf %s "(cached) " >&6
3424
else $as_nop
3022
  if test "x$host_alias" = x; then
3425
  if test "x$host_alias" = x; then
3023
  ac_cv_host=$ac_cv_build
3426
  ac_cv_host=$ac_cv_build
3024
else
3427
else
3025
  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
3428
  ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` ||
3026
    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
3429
    as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5
3027
fi
3430
fi
3028
3431
3029
fi
3432
fi
3030
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
3433
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
3031
$as_echo "$ac_cv_host" >&6; }
3434
printf "%s\n" "$ac_cv_host" >&6; }
3032
case $ac_cv_host in
3435
case $ac_cv_host in
3033
*-*-*) ;;
3436
*-*-*) ;;
3034
*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
3437
*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
Lines 3087-3110 Link Here
3087
# Debugging #
3490
# Debugging #
3088
#############
3491
#############
3089
3492
3090
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if debugging code should be compiled" >&5
3493
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if debugging code should be compiled" >&5
3091
$as_echo_n "checking if debugging code should be compiled... " >&6; }
3494
printf %s "checking if debugging code should be compiled... " >&6; }
3092
# Check whether --enable-debug was given.
3495
# Check whether --enable-debug was given.
3093
if test "${enable_debug+set}" = set; then :
3496
if test ${enable_debug+y}
3497
then :
3094
  enableval=$enable_debug;
3498
  enableval=$enable_debug;
3095
else
3499
else $as_nop
3096
  enable_debug=no
3500
  enable_debug=no
3097
fi
3501
fi
3098
3502
3099
if test "x$enable_debug" = xyes; then
3503
if test "x$enable_debug" = xyes; then
3100
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
3504
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
3101
$as_echo "yes" >&6; }
3505
printf "%s\n" "yes" >&6; }
3102
else
3506
else
3103
3507
3104
$as_echo "#define NDEBUG 1" >>confdefs.h
3508
printf "%s\n" "#define NDEBUG 1" >>confdefs.h
3105
3509
3106
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3510
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
3107
$as_echo "no" >&6; }
3511
printf "%s\n" "no" >&6; }
3108
fi
3512
fi
3109
3513
3110
3514
Lines 3139-3162 Link Here
3139
enable_filter_armthumb=no
3543
enable_filter_armthumb=no
3140
enable_encoder_armthumb=no
3544
enable_encoder_armthumb=no
3141
enable_decoder_armthumb=no
3545
enable_decoder_armthumb=no
3546
enable_filter_arm64=no
3547
enable_encoder_arm64=no
3548
enable_decoder_arm64=no
3142
enable_filter_sparc=no
3549
enable_filter_sparc=no
3143
enable_encoder_sparc=no
3550
enable_encoder_sparc=no
3144
enable_decoder_sparc=no
3551
enable_decoder_sparc=no
3145
3552
3146
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which encoders to build" >&5
3553
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which encoders to build" >&5
3147
$as_echo_n "checking which encoders to build... " >&6; }
3554
printf %s "checking which encoders to build... " >&6; }
3148
# Check whether --enable-encoders was given.
3555
# Check whether --enable-encoders was given.
3149
if test "${enable_encoders+set}" = set; then :
3556
if test ${enable_encoders+y}
3557
then :
3150
  enableval=$enable_encoders;
3558
  enableval=$enable_encoders;
3151
else
3559
else $as_nop
3152
  enable_encoders=lzma1,lzma2,delta,x86,powerpc,ia64,arm,armthumb,sparc
3560
  enable_encoders=lzma1,lzma2,delta,x86,powerpc,ia64,arm,armthumb,arm64,sparc
3153
fi
3561
fi
3154
3562
3155
enable_encoders=`echo "$enable_encoders" | sed 's/,/ /g'`
3563
enable_encoders=`echo "$enable_encoders" | sed 's/,/ /g'`
3156
if test "x$enable_encoders" = xno || test "x$enable_encoders" = x; then
3564
if test "x$enable_encoders" = xno || test "x$enable_encoders" = x; then
3157
	enable_encoders=no
3565
	enable_encoders=no
3158
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: (none)" >&5
3566
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: (none)" >&5
3159
$as_echo "(none)" >&6; }
3567
printf "%s\n" "(none)" >&6; }
3160
else
3568
else
3161
	for arg in $enable_encoders
3569
	for arg in $enable_encoders
3162
	do
3570
	do
Lines 3165-3257 Link Here
3165
				enable_filter_lzma1=yes
3573
				enable_filter_lzma1=yes
3166
				enable_encoder_lzma1=yes
3574
				enable_encoder_lzma1=yes
3167
3575
3168
$as_echo "#define HAVE_ENCODER_LZMA1 1" >>confdefs.h
3576
printf "%s\n" "#define HAVE_ENCODER_LZMA1 1" >>confdefs.h
3169
3577
3170
				;;
3578
				;;
3171
			lzma2)
3579
			lzma2)
3172
				enable_filter_lzma2=yes
3580
				enable_filter_lzma2=yes
3173
				enable_encoder_lzma2=yes
3581
				enable_encoder_lzma2=yes
3174
3582
3175
$as_echo "#define HAVE_ENCODER_LZMA2 1" >>confdefs.h
3583
printf "%s\n" "#define HAVE_ENCODER_LZMA2 1" >>confdefs.h
3176
3584
3177
				;;
3585
				;;
3178
			delta)
3586
			delta)
3179
				enable_filter_delta=yes
3587
				enable_filter_delta=yes
3180
				enable_encoder_delta=yes
3588
				enable_encoder_delta=yes
3181
3589
3182
$as_echo "#define HAVE_ENCODER_DELTA 1" >>confdefs.h
3590
printf "%s\n" "#define HAVE_ENCODER_DELTA 1" >>confdefs.h
3183
3591
3184
				;;
3592
				;;
3185
			x86)
3593
			x86)
3186
				enable_filter_x86=yes
3594
				enable_filter_x86=yes
3187
				enable_encoder_x86=yes
3595
				enable_encoder_x86=yes
3188
3596
3189
$as_echo "#define HAVE_ENCODER_X86 1" >>confdefs.h
3597
printf "%s\n" "#define HAVE_ENCODER_X86 1" >>confdefs.h
3190
3598
3191
				;;
3599
				;;
3192
			powerpc)
3600
			powerpc)
3193
				enable_filter_powerpc=yes
3601
				enable_filter_powerpc=yes
3194
				enable_encoder_powerpc=yes
3602
				enable_encoder_powerpc=yes
3195
3603
3196
$as_echo "#define HAVE_ENCODER_POWERPC 1" >>confdefs.h
3604
printf "%s\n" "#define HAVE_ENCODER_POWERPC 1" >>confdefs.h
3197
3605
3198
				;;
3606
				;;
3199
			ia64)
3607
			ia64)
3200
				enable_filter_ia64=yes
3608
				enable_filter_ia64=yes
3201
				enable_encoder_ia64=yes
3609
				enable_encoder_ia64=yes
3202
3610
3203
$as_echo "#define HAVE_ENCODER_IA64 1" >>confdefs.h
3611
printf "%s\n" "#define HAVE_ENCODER_IA64 1" >>confdefs.h
3204
3612
3205
				;;
3613
				;;
3206
			arm)
3614
			arm)
3207
				enable_filter_arm=yes
3615
				enable_filter_arm=yes
3208
				enable_encoder_arm=yes
3616
				enable_encoder_arm=yes
3209
3617
3210
$as_echo "#define HAVE_ENCODER_ARM 1" >>confdefs.h
3618
printf "%s\n" "#define HAVE_ENCODER_ARM 1" >>confdefs.h
3211
3619
3212
				;;
3620
				;;
3213
			armthumb)
3621
			armthumb)
3214
				enable_filter_armthumb=yes
3622
				enable_filter_armthumb=yes
3215
				enable_encoder_armthumb=yes
3623
				enable_encoder_armthumb=yes
3216
3624
3217
$as_echo "#define HAVE_ENCODER_ARMTHUMB 1" >>confdefs.h
3625
printf "%s\n" "#define HAVE_ENCODER_ARMTHUMB 1" >>confdefs.h
3218
3626
3219
				;;
3627
				;;
3628
			arm64)
3629
				enable_filter_arm64=yes
3630
				enable_encoder_arm64=yes
3631
3632
printf "%s\n" "#define HAVE_ENCODER_ARM64 1" >>confdefs.h
3633
3634
				;;
3220
			sparc)
3635
			sparc)
3221
				enable_filter_sparc=yes
3636
				enable_filter_sparc=yes
3222
				enable_encoder_sparc=yes
3637
				enable_encoder_sparc=yes
3223
3638
3224
$as_echo "#define HAVE_ENCODER_SPARC 1" >>confdefs.h
3639
printf "%s\n" "#define HAVE_ENCODER_SPARC 1" >>confdefs.h
3225
3640
3226
				;;
3641
				;;
3227
			*)
3642
			*)
3228
				{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
3643
				{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
3229
$as_echo "" >&6; }
3644
printf "%s\n" "" >&6; }
3230
				as_fn_error $? "unknown filter: $arg" "$LINENO" 5
3645
				as_fn_error $? "unknown filter: $arg" "$LINENO" 5
3231
				;;
3646
				;;
3232
		esac
3647
		esac
3233
	done
3648
	done
3234
3649
3235
$as_echo "#define HAVE_ENCODERS 1" >>confdefs.h
3650
printf "%s\n" "#define HAVE_ENCODERS 1" >>confdefs.h
3236
3651
3237
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_encoders" >&5
3652
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_encoders" >&5
3238
$as_echo "$enable_encoders" >&6; }
3653
printf "%s\n" "$enable_encoders" >&6; }
3239
fi
3654
fi
3240
3655
3241
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which decoders to build" >&5
3656
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which decoders to build" >&5
3242
$as_echo_n "checking which decoders to build... " >&6; }
3657
printf %s "checking which decoders to build... " >&6; }
3243
# Check whether --enable-decoders was given.
3658
# Check whether --enable-decoders was given.
3244
if test "${enable_decoders+set}" = set; then :
3659
if test ${enable_decoders+y}
3660
then :
3245
  enableval=$enable_decoders;
3661
  enableval=$enable_decoders;
3246
else
3662
else $as_nop
3247
  enable_decoders=lzma1,lzma2,delta,x86,powerpc,ia64,arm,armthumb,sparc
3663
  enable_decoders=lzma1,lzma2,delta,x86,powerpc,ia64,arm,armthumb,arm64,sparc
3248
fi
3664
fi
3249
3665
3250
enable_decoders=`echo "$enable_decoders" | sed 's/,/ /g'`
3666
enable_decoders=`echo "$enable_decoders" | sed 's/,/ /g'`
3251
if test "x$enable_decoders" = xno || test "x$enable_decoders" = x; then
3667
if test "x$enable_decoders" = xno || test "x$enable_decoders" = x; then
3252
	enable_decoders=no
3668
	enable_decoders=no
3253
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: (none)" >&5
3669
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: (none)" >&5
3254
$as_echo "(none)" >&6; }
3670
printf "%s\n" "(none)" >&6; }
3255
else
3671
else
3256
	for arg in $enable_decoders
3672
	for arg in $enable_decoders
3257
	do
3673
	do
Lines 3260-3336 Link Here
3260
				enable_filter_lzma1=yes
3676
				enable_filter_lzma1=yes
3261
				enable_decoder_lzma1=yes
3677
				enable_decoder_lzma1=yes
3262
3678
3263
$as_echo "#define HAVE_DECODER_LZMA1 1" >>confdefs.h
3679
printf "%s\n" "#define HAVE_DECODER_LZMA1 1" >>confdefs.h
3264
3680
3265
				;;
3681
				;;
3266
			lzma2)
3682
			lzma2)
3267
				enable_filter_lzma2=yes
3683
				enable_filter_lzma2=yes
3268
				enable_decoder_lzma2=yes
3684
				enable_decoder_lzma2=yes
3269
3685
3270
$as_echo "#define HAVE_DECODER_LZMA2 1" >>confdefs.h
3686
printf "%s\n" "#define HAVE_DECODER_LZMA2 1" >>confdefs.h
3271
3687
3272
				;;
3688
				;;
3273
			delta)
3689
			delta)
3274
				enable_filter_delta=yes
3690
				enable_filter_delta=yes
3275
				enable_decoder_delta=yes
3691
				enable_decoder_delta=yes
3276
3692
3277
$as_echo "#define HAVE_DECODER_DELTA 1" >>confdefs.h
3693
printf "%s\n" "#define HAVE_DECODER_DELTA 1" >>confdefs.h
3278
3694
3279
				;;
3695
				;;
3280
			x86)
3696
			x86)
3281
				enable_filter_x86=yes
3697
				enable_filter_x86=yes
3282
				enable_decoder_x86=yes
3698
				enable_decoder_x86=yes
3283
3699
3284
$as_echo "#define HAVE_DECODER_X86 1" >>confdefs.h
3700
printf "%s\n" "#define HAVE_DECODER_X86 1" >>confdefs.h
3285
3701
3286
				;;
3702
				;;
3287
			powerpc)
3703
			powerpc)
3288
				enable_filter_powerpc=yes
3704
				enable_filter_powerpc=yes
3289
				enable_decoder_powerpc=yes
3705
				enable_decoder_powerpc=yes
3290
3706
3291
$as_echo "#define HAVE_DECODER_POWERPC 1" >>confdefs.h
3707
printf "%s\n" "#define HAVE_DECODER_POWERPC 1" >>confdefs.h
3292
3708
3293
				;;
3709
				;;
3294
			ia64)
3710
			ia64)
3295
				enable_filter_ia64=yes
3711
				enable_filter_ia64=yes
3296
				enable_decoder_ia64=yes
3712
				enable_decoder_ia64=yes
3297
3713
3298
$as_echo "#define HAVE_DECODER_IA64 1" >>confdefs.h
3714
printf "%s\n" "#define HAVE_DECODER_IA64 1" >>confdefs.h
3299
3715
3300
				;;
3716
				;;
3301
			arm)
3717
			arm)
3302
				enable_filter_arm=yes
3718
				enable_filter_arm=yes
3303
				enable_decoder_arm=yes
3719
				enable_decoder_arm=yes
3304
3720
3305
$as_echo "#define HAVE_DECODER_ARM 1" >>confdefs.h
3721
printf "%s\n" "#define HAVE_DECODER_ARM 1" >>confdefs.h
3306
3722
3307
				;;
3723
				;;
3308
			armthumb)
3724
			armthumb)
3309
				enable_filter_armthumb=yes
3725
				enable_filter_armthumb=yes
3310
				enable_decoder_armthumb=yes
3726
				enable_decoder_armthumb=yes
3311
3727
3312
$as_echo "#define HAVE_DECODER_ARMTHUMB 1" >>confdefs.h
3728
printf "%s\n" "#define HAVE_DECODER_ARMTHUMB 1" >>confdefs.h
3313
3729
3314
				;;
3730
				;;
3731
			arm64)
3732
				enable_filter_arm64=yes
3733
				enable_decoder_arm64=yes
3734
3735
printf "%s\n" "#define HAVE_DECODER_ARM64 1" >>confdefs.h
3736
3737
				;;
3315
			sparc)
3738
			sparc)
3316
				enable_filter_sparc=yes
3739
				enable_filter_sparc=yes
3317
				enable_decoder_sparc=yes
3740
				enable_decoder_sparc=yes
3318
3741
3319
$as_echo "#define HAVE_DECODER_SPARC 1" >>confdefs.h
3742
printf "%s\n" "#define HAVE_DECODER_SPARC 1" >>confdefs.h
3320
3743
3321
				;;
3744
				;;
3322
			*)
3745
			*)
3323
				{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
3746
				{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
3324
$as_echo "" >&6; }
3747
printf "%s\n" "" >&6; }
3325
				as_fn_error $? "unknown filter: $arg" "$LINENO" 5
3748
				as_fn_error $? "unknown filter: $arg" "$LINENO" 5
3326
				;;
3749
				;;
3327
		esac
3750
		esac
3328
	done
3751
	done
3329
3752
3330
$as_echo "#define HAVE_DECODERS 1" >>confdefs.h
3753
printf "%s\n" "#define HAVE_DECODERS 1" >>confdefs.h
3331
3754
3332
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_decoders" >&5
3755
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_decoders" >&5
3333
$as_echo "$enable_decoders" >&6; }
3756
printf "%s\n" "$enable_decoders" >&6; }
3334
fi
3757
fi
3335
3758
3336
if test "x$enable_encoder_lzma2$enable_encoder_lzma1" = xyesno \
3759
if test "x$enable_encoder_lzma2$enable_encoder_lzma1" = xyesno \
Lines 3547-3552 Link Here
3547
  COND_DECODER_ARMTHUMB_FALSE=
3970
  COND_DECODER_ARMTHUMB_FALSE=
3548
fi
3971
fi
3549
3972
3973
 if test "x$enable_filter_arm64" = xyes; then
3974
  COND_FILTER_ARM64_TRUE=
3975
  COND_FILTER_ARM64_FALSE='#'
3976
else
3977
  COND_FILTER_ARM64_TRUE='#'
3978
  COND_FILTER_ARM64_FALSE=
3979
fi
3980
3981
 if test "x$enable_encoder_arm64" = xyes; then
3982
  COND_ENCODER_ARM64_TRUE=
3983
  COND_ENCODER_ARM64_FALSE='#'
3984
else
3985
  COND_ENCODER_ARM64_TRUE='#'
3986
  COND_ENCODER_ARM64_FALSE=
3987
fi
3988
3989
 if test "x$enable_decoder_arm64" = xyes; then
3990
  COND_DECODER_ARM64_TRUE=
3991
  COND_DECODER_ARM64_FALSE='#'
3992
else
3993
  COND_DECODER_ARM64_TRUE='#'
3994
  COND_DECODER_ARM64_FALSE=
3995
fi
3996
3550
 if test "x$enable_filter_sparc" = xyes; then
3997
 if test "x$enable_filter_sparc" = xyes; then
3551
  COND_FILTER_SPARC_TRUE=
3998
  COND_FILTER_SPARC_TRUE=
3552
  COND_FILTER_SPARC_FALSE='#'
3999
  COND_FILTER_SPARC_FALSE='#'
Lines 3591-3596 Link Here
3591
test "x$enable_filter_armthumb" = xyes && enable_filter_simple=yes
4038
test "x$enable_filter_armthumb" = xyes && enable_filter_simple=yes
3592
test "x$enable_encoder_armthumb" = xyes && enable_encoder_simple=yes
4039
test "x$enable_encoder_armthumb" = xyes && enable_encoder_simple=yes
3593
test "x$enable_decoder_armthumb" = xyes && enable_decoder_simple=yes
4040
test "x$enable_decoder_armthumb" = xyes && enable_decoder_simple=yes
4041
test "x$enable_filter_arm64" = xyes && enable_filter_simple=yes
4042
test "x$enable_encoder_arm64" = xyes && enable_encoder_simple=yes
4043
test "x$enable_decoder_arm64" = xyes && enable_decoder_simple=yes
3594
test "x$enable_filter_sparc" = xyes && enable_filter_simple=yes
4044
test "x$enable_filter_sparc" = xyes && enable_filter_simple=yes
3595
test "x$enable_encoder_sparc" = xyes && enable_encoder_simple=yes
4045
test "x$enable_encoder_sparc" = xyes && enable_encoder_simple=yes
3596
test "x$enable_decoder_sparc" = xyes && enable_decoder_simple=yes
4046
test "x$enable_decoder_sparc" = xyes && enable_decoder_simple=yes
Lines 3668-3729 Link Here
3668
enable_match_finder_bt4=no
4118
enable_match_finder_bt4=no
3669
4119
3670
4120
3671
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which match finders to build" >&5
4121
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which match finders to build" >&5
3672
$as_echo_n "checking which match finders to build... " >&6; }
4122
printf %s "checking which match finders to build... " >&6; }
3673
# Check whether --enable-match-finders was given.
4123
# Check whether --enable-match-finders was given.
3674
if test "${enable_match_finders+set}" = set; then :
4124
if test ${enable_match_finders+y}
4125
then :
3675
  enableval=$enable_match_finders;
4126
  enableval=$enable_match_finders;
3676
else
4127
else $as_nop
3677
  enable_match_finders=hc3,hc4,bt2,bt3,bt4
4128
  enable_match_finders=hc3,hc4,bt2,bt3,bt4
3678
fi
4129
fi
3679
4130
3680
enable_match_finders=`echo "$enable_match_finders" | sed 's/,/ /g'`
4131
enable_match_finders=`echo "$enable_match_finders" | sed 's/,/ /g'`
3681
if test "x$enable_encoder_lz" = xyes ; then
4132
if test "x$enable_encoder_lz" = xyes ; then
4133
	if test -z "$enable_match_finders"; then
4134
		as_fn_error $? "At least one match finder is required for an LZ-based encoder." "$LINENO" 5
4135
	fi
4136
3682
	for arg in $enable_match_finders
4137
	for arg in $enable_match_finders
3683
		do
4138
		do
3684
		case $arg in
4139
		case $arg in
3685
			hc3)
4140
			hc3)
3686
				enable_match_finder_hc3=yes
4141
				enable_match_finder_hc3=yes
3687
4142
3688
$as_echo "#define HAVE_MF_HC3 1" >>confdefs.h
4143
printf "%s\n" "#define HAVE_MF_HC3 1" >>confdefs.h
3689
4144
3690
				;;
4145
				;;
3691
			hc4)
4146
			hc4)
3692
				enable_match_finder_hc4=yes
4147
				enable_match_finder_hc4=yes
3693
4148
3694
$as_echo "#define HAVE_MF_HC4 1" >>confdefs.h
4149
printf "%s\n" "#define HAVE_MF_HC4 1" >>confdefs.h
3695
4150
3696
				;;
4151
				;;
3697
			bt2)
4152
			bt2)
3698
				enable_match_finder_bt2=yes
4153
				enable_match_finder_bt2=yes
3699
4154
3700
$as_echo "#define HAVE_MF_BT2 1" >>confdefs.h
4155
printf "%s\n" "#define HAVE_MF_BT2 1" >>confdefs.h
3701
4156
3702
				;;
4157
				;;
3703
			bt3)
4158
			bt3)
3704
				enable_match_finder_bt3=yes
4159
				enable_match_finder_bt3=yes
3705
4160
3706
$as_echo "#define HAVE_MF_BT3 1" >>confdefs.h
4161
printf "%s\n" "#define HAVE_MF_BT3 1" >>confdefs.h
3707
4162
3708
				;;
4163
				;;
3709
			bt4)
4164
			bt4)
3710
				enable_match_finder_bt4=yes
4165
				enable_match_finder_bt4=yes
3711
4166
3712
$as_echo "#define HAVE_MF_BT4 1" >>confdefs.h
4167
printf "%s\n" "#define HAVE_MF_BT4 1" >>confdefs.h
3713
4168
3714
				;;
4169
				;;
3715
			*)
4170
			*)
3716
				{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
4171
				{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
3717
$as_echo "" >&6; }
4172
printf "%s\n" "" >&6; }
3718
				as_fn_error $? "unknown match finder: $arg" "$LINENO" 5
4173
				as_fn_error $? "unknown match finder: $arg" "$LINENO" 5
3719
				;;
4174
				;;
3720
		esac
4175
		esac
3721
	done
4176
	done
3722
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_match_finders" >&5
4177
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_match_finders" >&5
3723
$as_echo "$enable_match_finders" >&6; }
4178
printf "%s\n" "$enable_match_finders" >&6; }
3724
else
4179
else
3725
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: (none because not building any LZ-based encoder)" >&5
4180
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: (none because not building any LZ-based encoder)" >&5
3726
$as_echo "(none because not building any LZ-based encoder)" >&6; }
4181
printf "%s\n" "(none because not building any LZ-based encoder)" >&6; }
3727
fi
4182
fi
3728
4183
3729
4184
Lines 3737-3755 Link Here
3737
enable_check_crc64=no
4192
enable_check_crc64=no
3738
enable_check_sha256=no
4193
enable_check_sha256=no
3739
4194
3740
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which integrity checks to build" >&5
4195
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which integrity checks to build" >&5
3741
$as_echo_n "checking which integrity checks to build... " >&6; }
4196
printf %s "checking which integrity checks to build... " >&6; }
3742
# Check whether --enable-checks was given.
4197
# Check whether --enable-checks was given.
3743
if test "${enable_checks+set}" = set; then :
4198
if test ${enable_checks+y}
4199
then :
3744
  enableval=$enable_checks;
4200
  enableval=$enable_checks;
3745
else
4201
else $as_nop
3746
  enable_checks=crc32,crc64,sha256
4202
  enable_checks=crc32,crc64,sha256
3747
fi
4203
fi
3748
4204
3749
enable_checks=`echo "$enable_checks" | sed 's/,/ /g'`
4205
enable_checks=`echo "$enable_checks" | sed 's/,/ /g'`
3750
if test "x$enable_checks" = xno || test "x$enable_checks" = x; then
4206
if test "x$enable_checks" = xno || test "x$enable_checks" = x; then
3751
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: (none)" >&5
4207
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: (none)" >&5
3752
$as_echo "(none)" >&6; }
4208
printf "%s\n" "(none)" >&6; }
3753
else
4209
else
3754
	for arg in $enable_checks
4210
	for arg in $enable_checks
3755
	do
4211
	do
Lines 3757-3786 Link Here
3757
			crc32)
4213
			crc32)
3758
				enable_check_crc32=yes
4214
				enable_check_crc32=yes
3759
4215
3760
$as_echo "#define HAVE_CHECK_CRC32 1" >>confdefs.h
4216
printf "%s\n" "#define HAVE_CHECK_CRC32 1" >>confdefs.h
3761
4217
3762
				;;
4218
				;;
3763
			crc64)
4219
			crc64)
3764
				enable_check_crc64=yes
4220
				enable_check_crc64=yes
3765
4221
3766
$as_echo "#define HAVE_CHECK_CRC64 1" >>confdefs.h
4222
printf "%s\n" "#define HAVE_CHECK_CRC64 1" >>confdefs.h
3767
4223
3768
				;;
4224
				;;
3769
			sha256)
4225
			sha256)
3770
				enable_check_sha256=yes
4226
				enable_check_sha256=yes
3771
4227
3772
$as_echo "#define HAVE_CHECK_SHA256 1" >>confdefs.h
4228
printf "%s\n" "#define HAVE_CHECK_SHA256 1" >>confdefs.h
3773
4229
3774
				;;
4230
				;;
3775
			*)
4231
			*)
3776
				{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
4232
				{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
3777
$as_echo "" >&6; }
4233
printf "%s\n" "" >&6; }
3778
				as_fn_error $? "unknown integrity check: $arg" "$LINENO" 5
4234
				as_fn_error $? "unknown integrity check: $arg" "$LINENO" 5
3779
				;;
4235
				;;
3780
		esac
4236
		esac
3781
	done
4237
	done
3782
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_checks" >&5
4238
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_checks" >&5
3783
$as_echo "$enable_checks" >&6; }
4239
printf "%s\n" "$enable_checks" >&6; }
3784
fi
4240
fi
3785
if test "x$enable_check_crc32" = xno ; then
4241
if test "x$enable_check_crc32" = xno ; then
3786
	as_fn_error $? "For now, the CRC32 check must always be enabled." "$LINENO" 5
4242
	as_fn_error $? "For now, the CRC32 check must always be enabled." "$LINENO" 5
Lines 3811-3822 Link Here
3811
fi
4267
fi
3812
4268
3813
4269
3814
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if external SHA-256 should be used" >&5
4270
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if external SHA-256 should be used" >&5
3815
$as_echo_n "checking if external SHA-256 should be used... " >&6; }
4271
printf %s "checking if external SHA-256 should be used... " >&6; }
3816
# Check whether --enable-external-sha256 was given.
4272
# Check whether --enable-external-sha256 was given.
3817
if test "${enable_external_sha256+set}" = set; then :
4273
if test ${enable_external_sha256+y}
4274
then :
3818
  enableval=$enable_external_sha256;
4275
  enableval=$enable_external_sha256;
3819
else
4276
else $as_nop
3820
  enable_external_sha256=no
4277
  enable_external_sha256=no
3821
fi
4278
fi
3822
4279
Lines 3824-3847 Link Here
3824
	enable_external_sha256=no
4281
	enable_external_sha256=no
3825
fi
4282
fi
3826
if test "x$enable_external_sha256" = xyes; then
4283
if test "x$enable_external_sha256" = xyes; then
3827
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
4284
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
3828
$as_echo "yes" >&6; }
4285
printf "%s\n" "yes" >&6; }
3829
else
4286
else
3830
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
4287
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
3831
$as_echo "no" >&6; }
4288
printf "%s\n" "no" >&6; }
3832
fi
4289
fi
3833
4290
3834
4291
4292
#############
4293
# MicroLZMA #
4294
#############
4295
4296
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if MicroLZMA support should be built" >&5
4297
printf %s "checking if MicroLZMA support should be built... " >&6; }
4298
# Check whether --enable-microlzma was given.
4299
if test ${enable_microlzma+y}
4300
then :
4301
  enableval=$enable_microlzma;
4302
else $as_nop
4303
  enable_microlzma=yes
4304
fi
4305
4306
case $enable_microlzma in
4307
	yes | no)
4308
		{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_microlzma" >&5
4309
printf "%s\n" "$enable_microlzma" >&6; }
4310
		;;
4311
	*)
4312
		{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
4313
printf "%s\n" "" >&6; }
4314
		as_fn_error $? "--enable-microlzma accepts only \`yes' or \`no'." "$LINENO" 5
4315
		;;
4316
esac
4317
 if test "x$enable_microlzma" = xyes; then
4318
  COND_MICROLZMA_TRUE=
4319
  COND_MICROLZMA_FALSE='#'
4320
else
4321
  COND_MICROLZMA_TRUE='#'
4322
  COND_MICROLZMA_FALSE=
4323
fi
4324
4325
4326
4327
#############################
4328
# .lz (lzip) format support #
4329
#############################
4330
4331
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if .lz (lzip) decompression support should be built" >&5
4332
printf %s "checking if .lz (lzip) decompression support should be built... " >&6; }
4333
# Check whether --enable-lzip-decoder was given.
4334
if test ${enable_lzip_decoder+y}
4335
then :
4336
  enableval=$enable_lzip_decoder;
4337
else $as_nop
4338
  enable_lzip_decoder=yes
4339
fi
4340
4341
if test "x$enable_decoder_lzma1" != xyes; then
4342
	enable_lzip_decoder=no
4343
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no because LZMA1 decoder is disabled" >&5
4344
printf "%s\n" "no because LZMA1 decoder is disabled" >&6; }
4345
elif test "x$enable_lzip_decoder" = xyes; then
4346
4347
printf "%s\n" "#define HAVE_LZIP_DECODER 1" >>confdefs.h
4348
4349
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
4350
printf "%s\n" "yes" >&6; }
4351
else
4352
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
4353
printf "%s\n" "no" >&6; }
4354
fi
4355
 if test "x$enable_lzip_decoder" = xyes; then
4356
  COND_LZIP_DECODER_TRUE=
4357
  COND_LZIP_DECODER_FALSE='#'
4358
else
4359
  COND_LZIP_DECODER_TRUE='#'
4360
  COND_LZIP_DECODER_FALSE=
4361
fi
4362
4363
4364
3835
###########################
4365
###########################
3836
# Assembler optimizations #
4366
# Assembler optimizations #
3837
###########################
4367
###########################
3838
4368
3839
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if assembler optimizations should be used" >&5
4369
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if assembler optimizations should be used" >&5
3840
$as_echo_n "checking if assembler optimizations should be used... " >&6; }
4370
printf %s "checking if assembler optimizations should be used... " >&6; }
3841
# Check whether --enable-assembler was given.
4371
# Check whether --enable-assembler was given.
3842
if test "${enable_assembler+set}" = set; then :
4372
if test ${enable_assembler+y}
4373
then :
3843
  enableval=$enable_assembler;
4374
  enableval=$enable_assembler;
3844
else
4375
else $as_nop
3845
  enable_assembler=yes
4376
  enable_assembler=yes
3846
fi
4377
fi
3847
4378
Lines 3853-3872 Link Here
3853
		linux* | *bsd* | mingw* | cygwin | msys | *djgpp*)
4384
		linux* | *bsd* | mingw* | cygwin | msys | *djgpp*)
3854
			case $host_cpu in
4385
			case $host_cpu in
3855
				i?86)   enable_assembler=x86 ;;
4386
				i?86)   enable_assembler=x86 ;;
3856
				x86_64) enable_assembler=x86_64 ;;
3857
			esac
4387
			esac
3858
			;;
4388
			;;
3859
	esac
4389
	esac
3860
fi
4390
fi
3861
case $enable_assembler in
4391
case $enable_assembler in
3862
	x86 | x86_64 | no)
4392
	x86 | no)
3863
		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_assembler" >&5
4393
		{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_assembler" >&5
3864
$as_echo "$enable_assembler" >&6; }
4394
printf "%s\n" "$enable_assembler" >&6; }
3865
		;;
4395
		;;
3866
	*)
4396
	*)
3867
		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
4397
		{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
3868
$as_echo "" >&6; }
4398
printf "%s\n" "" >&6; }
3869
		as_fn_error $? "--enable-assembler accepts only \`yes', \`no', \`x86', or \`x86_64'." "$LINENO" 5
4399
		as_fn_error $? "--enable-assembler accepts only \`yes', \`no', or \`x86' (32-bit)." "$LINENO" 5
3870
		;;
4400
		;;
3871
esac
4401
esac
3872
 if test "x$enable_assembler" = xx86; then
4402
 if test "x$enable_assembler" = xx86; then
Lines 3877-3888 Link Here
3877
  COND_ASM_X86_FALSE=
4407
  COND_ASM_X86_FALSE=
3878
fi
4408
fi
3879
4409
3880
 if test "x$enable_assembler" = xx86_64; then
4410
3881
  COND_ASM_X86_64_TRUE=
4411
3882
  COND_ASM_X86_64_FALSE='#'
4412
#############
3883
else
4413
# CLMUL CRC #
3884
  COND_ASM_X86_64_TRUE='#'
4414
#############
3885
  COND_ASM_X86_64_FALSE=
4415
4416
# Check whether --enable-clmul-crc was given.
4417
if test ${enable_clmul_crc+y}
4418
then :
4419
  enableval=$enable_clmul_crc;
4420
else $as_nop
4421
  enable_clmul_crc=yes
3886
fi
4422
fi
3887
4423
3888
4424
Lines 3891-3916 Link Here
3891
# Size optimization #
4427
# Size optimization #
3892
#####################
4428
#####################
3893
4429
3894
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if small size is preferred over speed" >&5
4430
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if small size is preferred over speed" >&5
3895
$as_echo_n "checking if small size is preferred over speed... " >&6; }
4431
printf %s "checking if small size is preferred over speed... " >&6; }
3896
# Check whether --enable-small was given.
4432
# Check whether --enable-small was given.
3897
if test "${enable_small+set}" = set; then :
4433
if test ${enable_small+y}
4434
then :
3898
  enableval=$enable_small;
4435
  enableval=$enable_small;
3899
else
4436
else $as_nop
3900
  enable_small=no
4437
  enable_small=no
3901
fi
4438
fi
3902
4439
3903
if test "x$enable_small" = xyes; then
4440
if test "x$enable_small" = xyes; then
3904
4441
3905
$as_echo "#define HAVE_SMALL 1" >>confdefs.h
4442
printf "%s\n" "#define HAVE_SMALL 1" >>confdefs.h
3906
4443
3907
elif test "x$enable_small" != xno; then
4444
elif test "x$enable_small" != xno; then
3908
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
4445
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
3909
$as_echo "" >&6; }
4446
printf "%s\n" "" >&6; }
3910
	as_fn_error $? "--enable-small accepts only \`yes' or \`no'" "$LINENO" 5
4447
	as_fn_error $? "--enable-small accepts only \`yes' or \`no'" "$LINENO" 5
3911
fi
4448
fi
3912
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_small" >&5
4449
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_small" >&5
3913
$as_echo "$enable_small" >&6; }
4450
printf "%s\n" "$enable_small" >&6; }
3914
 if test "x$enable_small" = xyes; then
4451
 if test "x$enable_small" = xyes; then
3915
  COND_SMALL_TRUE=
4452
  COND_SMALL_TRUE=
3916
  COND_SMALL_FALSE='#'
4453
  COND_SMALL_FALSE='#'
Lines 3925-3936 Link Here
3925
# Threading #
4462
# Threading #
3926
#############
4463
#############
3927
4464
3928
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if threading support is wanted" >&5
4465
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if threading support is wanted" >&5
3929
$as_echo_n "checking if threading support is wanted... " >&6; }
4466
printf %s "checking if threading support is wanted... " >&6; }
3930
# Check whether --enable-threads was given.
4467
# Check whether --enable-threads was given.
3931
if test "${enable_threads+set}" = set; then :
4468
if test ${enable_threads+y}
4469
then :
3932
  enableval=$enable_threads;
4470
  enableval=$enable_threads;
3933
else
4471
else $as_nop
3934
  enable_threads=yes
4472
  enable_threads=yes
3935
fi
4473
fi
3936
4474
Lines 3951-3966 Link Here
3951
4489
3952
case $enable_threads in
4490
case $enable_threads in
3953
	posix | win95 | vista)
4491
	posix | win95 | vista)
3954
		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, $enable_threads" >&5
4492
		{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes, $enable_threads" >&5
3955
$as_echo "yes, $enable_threads" >&6; }
4493
printf "%s\n" "yes, $enable_threads" >&6; }
3956
		;;
4494
		;;
3957
	no)
4495
	no)
3958
		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
4496
		{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
3959
$as_echo "no" >&6; }
4497
printf "%s\n" "no" >&6; }
3960
		;;
4498
		;;
3961
	*)
4499
	*)
3962
		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
4500
		{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
3963
$as_echo "" >&6; }
4501
printf "%s\n" "" >&6; }
3964
		as_fn_error $? "--enable-threads only accepts \`yes', \`no', \`posix', \`win95', or \`vista'" "$LINENO" 5
4502
		as_fn_error $? "--enable-threads only accepts \`yes', \`no', \`posix', \`win95', or \`vista'" "$LINENO" 5
3965
		;;
4503
		;;
3966
esac
4504
esac
Lines 3984-4010 Link Here
3984
# created with "xz -9". It would be slightly safer to guess a lower value,
4522
# created with "xz -9". It would be slightly safer to guess a lower value,
3985
# but most systems, on which we don't have any way to determine the amount
4523
# but most systems, on which we don't have any way to determine the amount
3986
# of RAM, will probably have at least 128 MiB of RAM.
4524
# of RAM, will probably have at least 128 MiB of RAM.
3987
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how much RAM to assume if the real amount is unknown" >&5
4525
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how much RAM to assume if the real amount is unknown" >&5
3988
$as_echo_n "checking how much RAM to assume if the real amount is unknown... " >&6; }
4526
printf %s "checking how much RAM to assume if the real amount is unknown... " >&6; }
3989
# Check whether --enable-assume-ram was given.
4527
# Check whether --enable-assume-ram was given.
3990
if test "${enable_assume_ram+set}" = set; then :
4528
if test ${enable_assume_ram+y}
4529
then :
3991
  enableval=$enable_assume_ram;
4530
  enableval=$enable_assume_ram;
3992
else
4531
else $as_nop
3993
  enable_assume_ram=128
4532
  enable_assume_ram=128
3994
fi
4533
fi
3995
4534
3996
assume_ram_check=`echo "$enable_assume_ram" | tr -d 0123456789`
4535
assume_ram_check=`echo "$enable_assume_ram" | tr -d 0123456789`
3997
if test -z "$enable_assume_ram" || test -n "$assume_ram_check"; then
4536
if test -z "$enable_assume_ram" || test -n "$assume_ram_check"; then
3998
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
4537
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
3999
$as_echo "" >&6; }
4538
printf "%s\n" "" >&6; }
4000
	as_fn_error $? "--enable-assume-ram accepts only an integer argument" "$LINENO" 5
4539
	as_fn_error $? "--enable-assume-ram accepts only an integer argument" "$LINENO" 5
4001
fi
4540
fi
4002
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_assume_ram MiB" >&5
4541
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_assume_ram MiB" >&5
4003
$as_echo "$enable_assume_ram MiB" >&6; }
4542
printf "%s\n" "$enable_assume_ram MiB" >&6; }
4004
4543
4005
cat >>confdefs.h <<_ACEOF
4544
printf "%s\n" "#define ASSUME_RAM $enable_assume_ram" >>confdefs.h
4006
#define ASSUME_RAM $enable_assume_ram
4007
_ACEOF
4008
4545
4009
4546
4010
4547
Lines 4013-4021 Link Here
4013
#########################
4550
#########################
4014
4551
4015
# Check whether --enable-xz was given.
4552
# Check whether --enable-xz was given.
4016
if test "${enable_xz+set}" = set; then :
4553
if test ${enable_xz+y}
4554
then :
4017
  enableval=$enable_xz;
4555
  enableval=$enable_xz;
4018
else
4556
else $as_nop
4019
  enable_xz=yes
4557
  enable_xz=yes
4020
fi
4558
fi
4021
4559
Lines 4029-4037 Link Here
4029
4567
4030
4568
4031
# Check whether --enable-xzdec was given.
4569
# Check whether --enable-xzdec was given.
4032
if test "${enable_xzdec+set}" = set; then :
4570
if test ${enable_xzdec+y}
4571
then :
4033
  enableval=$enable_xzdec;
4572
  enableval=$enable_xzdec;
4034
else
4573
else $as_nop
4035
  enable_xzdec=yes
4574
  enable_xzdec=yes
4036
fi
4575
fi
4037
4576
Lines 4046-4054 Link Here
4046
4585
4047
4586
4048
# Check whether --enable-lzmadec was given.
4587
# Check whether --enable-lzmadec was given.
4049
if test "${enable_lzmadec+set}" = set; then :
4588
if test ${enable_lzmadec+y}
4589
then :
4050
  enableval=$enable_lzmadec;
4590
  enableval=$enable_lzmadec;
4051
else
4591
else $as_nop
4052
  enable_lzmadec=yes
4592
  enable_lzmadec=yes
4053
fi
4593
fi
4054
4594
Lines 4063-4071 Link Here
4063
4603
4064
4604
4065
# Check whether --enable-lzmainfo was given.
4605
# Check whether --enable-lzmainfo was given.
4066
if test "${enable_lzmainfo+set}" = set; then :
4606
if test ${enable_lzmainfo+y}
4607
then :
4067
  enableval=$enable_lzmainfo;
4608
  enableval=$enable_lzmainfo;
4068
else
4609
else $as_nop
4069
  enable_lzmainfo=yes
4610
  enable_lzmainfo=yes
4070
fi
4611
fi
4071
4612
Lines 4080-4088 Link Here
4080
4621
4081
4622
4082
# Check whether --enable-lzma-links was given.
4623
# Check whether --enable-lzma-links was given.
4083
if test "${enable_lzma_links+set}" = set; then :
4624
if test ${enable_lzma_links+y}
4625
then :
4084
  enableval=$enable_lzma_links;
4626
  enableval=$enable_lzma_links;
4085
else
4627
else $as_nop
4086
  enable_lzma_links=yes
4628
  enable_lzma_links=yes
4087
fi
4629
fi
4088
4630
Lines 4096-4104 Link Here
4096
4638
4097
4639
4098
# Check whether --enable-scripts was given.
4640
# Check whether --enable-scripts was given.
4099
if test "${enable_scripts+set}" = set; then :
4641
if test ${enable_scripts+y}
4642
then :
4100
  enableval=$enable_scripts;
4643
  enableval=$enable_scripts;
4101
else
4644
else $as_nop
4102
  enable_scripts=yes
4645
  enable_scripts=yes
4103
fi
4646
fi
4104
4647
Lines 4112-4120 Link Here
4112
4655
4113
4656
4114
# Check whether --enable-doc was given.
4657
# Check whether --enable-doc was given.
4115
if test "${enable_doc+set}" = set; then :
4658
if test ${enable_doc+y}
4659
then :
4116
  enableval=$enable_doc;
4660
  enableval=$enable_doc;
4117
else
4661
else $as_nop
4118
  enable_doc=yes
4662
  enable_doc=yes
4119
fi
4663
fi
4120
4664
Lines 4128-4198 Link Here
4128
4672
4129
4673
4130
4674
4131
#####################
4132
# Symbol versioning #
4133
#####################
4134
4135
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if library symbol versioning should be used" >&5
4136
$as_echo_n "checking if library symbol versioning should be used... " >&6; }
4137
# Check whether --enable-symbol-versions was given.
4138
if test "${enable_symbol_versions+set}" = set; then :
4139
  enableval=$enable_symbol_versions;
4140
else
4141
  enable_symbol_versions=auto
4142
fi
4143
4144
if test "x$enable_symbol_versions" = xauto; then
4145
	case $host_os in
4146
		# NOTE: Even if one omits -gnu on GNU/Linux (e.g.
4147
		# i486-slackware-linux), configure will (via config.sub)
4148
		# append -gnu (e.g. i486-slackware-linux-gnu), and this
4149
		# test will work correctly.
4150
		gnu* | *-gnu* | freebsd*)
4151
			enable_symbol_versions=yes
4152
			;;
4153
		*)
4154
			enable_symbol_versions=no
4155
			;;
4156
	esac
4157
fi
4158
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_symbol_versions" >&5
4159
$as_echo "$enable_symbol_versions" >&6; }
4160
 if test "x$enable_symbol_versions" = xyes; then
4161
  COND_SYMVERS_TRUE=
4162
  COND_SYMVERS_FALSE='#'
4163
else
4164
  COND_SYMVERS_TRUE='#'
4165
  COND_SYMVERS_FALSE=
4166
fi
4167
4168
4169
4170
##############
4675
##############
4171
# Sandboxing #
4676
# Sandboxing #
4172
##############
4677
##############
4173
4678
4174
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if sandboxing should be used" >&5
4679
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if sandboxing should be used" >&5
4175
$as_echo_n "checking if sandboxing should be used... " >&6; }
4680
printf %s "checking if sandboxing should be used... " >&6; }
4176
# Check whether --enable-sandbox was given.
4681
# Check whether --enable-sandbox was given.
4177
if test "${enable_sandbox+set}" = set; then :
4682
if test ${enable_sandbox+y}
4683
then :
4178
  enableval=$enable_sandbox;
4684
  enableval=$enable_sandbox;
4179
else
4685
else $as_nop
4180
  enable_sandbox=auto
4686
  enable_sandbox=auto
4181
fi
4687
fi
4182
4688
4183
case $enable_sandbox in
4689
case $enable_sandbox in
4184
	auto)
4690
	auto)
4185
		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: maybe (autodetect)" >&5
4691
		{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: maybe (autodetect)" >&5
4186
$as_echo "maybe (autodetect)" >&6; }
4692
printf "%s\n" "maybe (autodetect)" >&6; }
4187
		;;
4693
		;;
4188
	no | capsicum)
4694
	no | capsicum | pledge)
4189
		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_sandbox" >&5
4695
		{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_sandbox" >&5
4190
$as_echo "$enable_sandbox" >&6; }
4696
printf "%s\n" "$enable_sandbox" >&6; }
4191
		;;
4697
		;;
4192
	*)
4698
	*)
4193
		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
4699
		{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
4194
$as_echo "" >&6; }
4700
printf "%s\n" "" >&6; }
4195
		as_fn_error $? "--enable-sandbox only accepts \`auto', \`no', or \`capsicum'." "$LINENO" 5
4701
		as_fn_error $? "--enable-sandbox only accepts \`auto', \`no', \`capsicum', or \`pledge'." "$LINENO" 5
4196
		;;
4702
		;;
4197
esac
4703
esac
4198
4704
Lines 4204-4212 Link Here
4204
# The scripts can add a prefix to the search PATH so that POSIX tools
4710
# The scripts can add a prefix to the search PATH so that POSIX tools
4205
# or the xz binary is always in the PATH.
4711
# or the xz binary is always in the PATH.
4206
# Check whether --enable-path-for-scripts was given.
4712
# Check whether --enable-path-for-scripts was given.
4207
if test "${enable_path_for_scripts+set}" = set; then :
4713
if test ${enable_path_for_scripts+y}
4714
then :
4208
  enableval=$enable_path_for_scripts;
4715
  enableval=$enable_path_for_scripts;
4209
else
4716
else $as_nop
4210
4717
4211
		case $host_os in
4718
		case $host_os in
4212
			solaris*) enable_path_for_scripts=/usr/xpg4/bin ;;
4719
			solaris*) enable_path_for_scripts=/usr/xpg4/bin ;;
Lines 4239-4249 Link Here
4239
		;;
4746
		;;
4240
esac
4747
esac
4241
4748
4242
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a shell that conforms to POSIX" >&5
4749
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a shell that conforms to POSIX" >&5
4243
$as_echo_n "checking for a shell that conforms to POSIX... " >&6; }
4750
printf %s "checking for a shell that conforms to POSIX... " >&6; }
4244
if ${gl_cv_posix_shell+:} false; then :
4751
if test ${gl_cv_posix_shell+y}
4245
  $as_echo_n "(cached) " >&6
4752
then :
4246
else
4753
  printf %s "(cached) " >&6
4754
else $as_nop
4247
  gl_test_posix_shell_script='
4755
  gl_test_posix_shell_script='
4248
       func_return () {
4756
       func_return () {
4249
	 (exit $1)
4757
	 (exit $1)
Lines 4280-4287 Link Here
4280
       esac
4788
       esac
4281
     done
4789
     done
4282
fi
4790
fi
4283
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_posix_shell" >&5
4791
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_posix_shell" >&5
4284
$as_echo "$gl_cv_posix_shell" >&6; }
4792
printf "%s\n" "$gl_cv_posix_shell" >&6; }
4285
4793
4286
  if test "$gl_cv_posix_shell" != no; then
4794
  if test "$gl_cv_posix_shell" != no; then
4287
    POSIX_SHELL=$gl_cv_posix_shell
4795
    POSIX_SHELL=$gl_cv_posix_shell
Lines 4302-4313 Link Here
4302
4810
4303
# We don't use "subdir-objects" yet because it breaks "make distclean" when
4811
# We don't use "subdir-objects" yet because it breaks "make distclean" when
4304
# dependencies are enabled (as of Automake 1.14.1) due to this bug:
4812
# dependencies are enabled (as of Automake 1.14.1) due to this bug:
4305
# http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17354
4813
# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=17354
4306
# The -Wno-unsupported is used to silence warnings about missing
4814
# The -Wno-unsupported is used to silence warnings about missing
4307
# "subdir-objects".
4815
# "subdir-objects".
4308
am__api_version='1.16'
4816
am__api_version='1.16'
4309
4817
4310
# Find a good install program.  We prefer a C program (faster),
4818
4819
  # Find a good install program.  We prefer a C program (faster),
4311
# so one script is as good as another.  But avoid the broken or
4820
# so one script is as good as another.  But avoid the broken or
4312
# incompatible versions:
4821
# incompatible versions:
4313
# SysV /etc/install, /usr/sbin/install
4822
# SysV /etc/install, /usr/sbin/install
Lines 4321-4340 Link Here
4321
# OS/2's system install, which has a completely different semantic
4830
# OS/2's system install, which has a completely different semantic
4322
# ./install, which can be erroneously created by make from ./install.sh.
4831
# ./install, which can be erroneously created by make from ./install.sh.
4323
# Reject install programs that cannot install multiple files.
4832
# Reject install programs that cannot install multiple files.
4324
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
4833
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
4325
$as_echo_n "checking for a BSD-compatible install... " >&6; }
4834
printf %s "checking for a BSD-compatible install... " >&6; }
4326
if test -z "$INSTALL"; then
4835
if test -z "$INSTALL"; then
4327
if ${ac_cv_path_install+:} false; then :
4836
if test ${ac_cv_path_install+y}
4328
  $as_echo_n "(cached) " >&6
4837
then :
4329
else
4838
  printf %s "(cached) " >&6
4839
else $as_nop
4330
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4840
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4331
for as_dir in $PATH
4841
for as_dir in $PATH
4332
do
4842
do
4333
  IFS=$as_save_IFS
4843
  IFS=$as_save_IFS
4334
  test -z "$as_dir" && as_dir=.
4844
  case $as_dir in #(((
4335
    # Account for people who put trailing slashes in PATH elements.
4845
    '') as_dir=./ ;;
4336
case $as_dir/ in #((
4846
    */) ;;
4337
  ./ | .// | /[cC]/* | \
4847
    *) as_dir=$as_dir/ ;;
4848
  esac
4849
    # Account for fact that we put trailing slashes in our PATH walk.
4850
case $as_dir in #((
4851
  ./ | /[cC]/* | \
4338
  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
4852
  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
4339
  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
4853
  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
4340
  /usr/ucb/* ) ;;
4854
  /usr/ucb/* ) ;;
Lines 4344-4356 Link Here
4344
    # by default.
4858
    # by default.
4345
    for ac_prog in ginstall scoinst install; do
4859
    for ac_prog in ginstall scoinst install; do
4346
      for ac_exec_ext in '' $ac_executable_extensions; do
4860
      for ac_exec_ext in '' $ac_executable_extensions; do
4347
	if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
4861
	if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then
4348
	  if test $ac_prog = install &&
4862
	  if test $ac_prog = install &&
4349
	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
4863
	    grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
4350
	    # AIX install.  It has an incompatible calling convention.
4864
	    # AIX install.  It has an incompatible calling convention.
4351
	    :
4865
	    :
4352
	  elif test $ac_prog = install &&
4866
	  elif test $ac_prog = install &&
4353
	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
4867
	    grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
4354
	    # program-specific install script used by HP pwplus--don't use.
4868
	    # program-specific install script used by HP pwplus--don't use.
4355
	    :
4869
	    :
4356
	  else
4870
	  else
Lines 4358-4369 Link Here
4358
	    echo one > conftest.one
4872
	    echo one > conftest.one
4359
	    echo two > conftest.two
4873
	    echo two > conftest.two
4360
	    mkdir conftest.dir
4874
	    mkdir conftest.dir
4361
	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
4875
	    if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" &&
4362
	      test -s conftest.one && test -s conftest.two &&
4876
	      test -s conftest.one && test -s conftest.two &&
4363
	      test -s conftest.dir/conftest.one &&
4877
	      test -s conftest.dir/conftest.one &&
4364
	      test -s conftest.dir/conftest.two
4878
	      test -s conftest.dir/conftest.two
4365
	    then
4879
	    then
4366
	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
4880
	      ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c"
4367
	      break 3
4881
	      break 3
4368
	    fi
4882
	    fi
4369
	  fi
4883
	  fi
Lines 4379-4385 Link Here
4379
rm -rf conftest.one conftest.two conftest.dir
4893
rm -rf conftest.one conftest.two conftest.dir
4380
4894
4381
fi
4895
fi
4382
  if test "${ac_cv_path_install+set}" = set; then
4896
  if test ${ac_cv_path_install+y}; then
4383
    INSTALL=$ac_cv_path_install
4897
    INSTALL=$ac_cv_path_install
4384
  else
4898
  else
4385
    # As a last resort, use the slow shell script.  Don't cache a
4899
    # As a last resort, use the slow shell script.  Don't cache a
Lines 4389-4396 Link Here
4389
    INSTALL=$ac_install_sh
4903
    INSTALL=$ac_install_sh
4390
  fi
4904
  fi
4391
fi
4905
fi
4392
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
4906
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
4393
$as_echo "$INSTALL" >&6; }
4907
printf "%s\n" "$INSTALL" >&6; }
4394
4908
4395
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
4909
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
4396
# It thinks the first close brace ends the variable substitution.
4910
# It thinks the first close brace ends the variable substitution.
Lines 4400-4407 Link Here
4400
4914
4401
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
4915
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
4402
4916
4403
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
4917
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
4404
$as_echo_n "checking whether build environment is sane... " >&6; }
4918
printf %s "checking whether build environment is sane... " >&6; }
4405
# Reject unsafe characters in $srcdir or the absolute working directory
4919
# Reject unsafe characters in $srcdir or the absolute working directory
4406
# name.  Accept space and tab only in the latter.
4920
# name.  Accept space and tab only in the latter.
4407
am_lf='
4921
am_lf='
Lines 4455-4462 Link Here
4455
   as_fn_error $? "newly created file is older than distributed files!
4969
   as_fn_error $? "newly created file is older than distributed files!
4456
Check your system clock" "$LINENO" 5
4970
Check your system clock" "$LINENO" 5
4457
fi
4971
fi
4458
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
4972
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
4459
$as_echo "yes" >&6; }
4973
printf "%s\n" "yes" >&6; }
4460
# If we didn't sleep, we still need to ensure time stamps of config.status and
4974
# If we didn't sleep, we still need to ensure time stamps of config.status and
4461
# generated files are strictly newer.
4975
# generated files are strictly newer.
4462
am_sleep_pid=
4976
am_sleep_pid=
Lines 4475-4500 Link Here
4475
# Double any \ or $.
4989
# Double any \ or $.
4476
# By default was `s,x,x', remove it if useless.
4990
# By default was `s,x,x', remove it if useless.
4477
ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
4991
ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
4478
program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
4992
program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"`
4479
4993
4994
4480
# Expand $ac_aux_dir to an absolute path.
4995
# Expand $ac_aux_dir to an absolute path.
4481
am_aux_dir=`cd "$ac_aux_dir" && pwd`
4996
am_aux_dir=`cd "$ac_aux_dir" && pwd`
4482
4997
4483
if test x"${MISSING+set}" != xset; then
4998
4484
  case $am_aux_dir in
4999
  if test x"${MISSING+set}" != xset; then
4485
  *\ * | *\	*)
5000
  MISSING="\${SHELL} '$am_aux_dir/missing'"
4486
    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
4487
  *)
4488
    MISSING="\${SHELL} $am_aux_dir/missing" ;;
4489
  esac
4490
fi
5001
fi
4491
# Use eval to expand $SHELL
5002
# Use eval to expand $SHELL
4492
if eval "$MISSING --is-lightweight"; then
5003
if eval "$MISSING --is-lightweight"; then
4493
  am_missing_run="$MISSING "
5004
  am_missing_run="$MISSING "
4494
else
5005
else
4495
  am_missing_run=
5006
  am_missing_run=
4496
  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
5007
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
4497
$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
5008
printf "%s\n" "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
4498
fi
5009
fi
4499
5010
4500
if test x"${install_sh+set}" != xset; then
5011
if test x"${install_sh+set}" != xset; then
Lines 4514-4524 Link Here
4514
  if test -n "$ac_tool_prefix"; then
5025
  if test -n "$ac_tool_prefix"; then
4515
  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
5026
  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
4516
set dummy ${ac_tool_prefix}strip; ac_word=$2
5027
set dummy ${ac_tool_prefix}strip; ac_word=$2
4517
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5028
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
4518
$as_echo_n "checking for $ac_word... " >&6; }
5029
printf %s "checking for $ac_word... " >&6; }
4519
if ${ac_cv_prog_STRIP+:} false; then :
5030
if test ${ac_cv_prog_STRIP+y}
4520
  $as_echo_n "(cached) " >&6
5031
then :
4521
else
5032
  printf %s "(cached) " >&6
5033
else $as_nop
4522
  if test -n "$STRIP"; then
5034
  if test -n "$STRIP"; then
4523
  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
5035
  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
4524
else
5036
else
Lines 4526-4536 Link Here
4526
for as_dir in $PATH
5038
for as_dir in $PATH
4527
do
5039
do
4528
  IFS=$as_save_IFS
5040
  IFS=$as_save_IFS
4529
  test -z "$as_dir" && as_dir=.
5041
  case $as_dir in #(((
5042
    '') as_dir=./ ;;
5043
    */) ;;
5044
    *) as_dir=$as_dir/ ;;
5045
  esac
4530
    for ac_exec_ext in '' $ac_executable_extensions; do
5046
    for ac_exec_ext in '' $ac_executable_extensions; do
4531
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
5047
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
4532
    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
5048
    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
4533
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
5049
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
4534
    break 2
5050
    break 2
4535
  fi
5051
  fi
4536
done
5052
done
Lines 4541-4551 Link Here
4541
fi
5057
fi
4542
STRIP=$ac_cv_prog_STRIP
5058
STRIP=$ac_cv_prog_STRIP
4543
if test -n "$STRIP"; then
5059
if test -n "$STRIP"; then
4544
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
5060
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
4545
$as_echo "$STRIP" >&6; }
5061
printf "%s\n" "$STRIP" >&6; }
4546
else
5062
else
4547
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5063
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
4548
$as_echo "no" >&6; }
5064
printf "%s\n" "no" >&6; }
4549
fi
5065
fi
4550
5066
4551
5067
Lines 4554-4564 Link Here
4554
  ac_ct_STRIP=$STRIP
5070
  ac_ct_STRIP=$STRIP
4555
  # Extract the first word of "strip", so it can be a program name with args.
5071
  # Extract the first word of "strip", so it can be a program name with args.
4556
set dummy strip; ac_word=$2
5072
set dummy strip; ac_word=$2
4557
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5073
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
4558
$as_echo_n "checking for $ac_word... " >&6; }
5074
printf %s "checking for $ac_word... " >&6; }
4559
if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
5075
if test ${ac_cv_prog_ac_ct_STRIP+y}
4560
  $as_echo_n "(cached) " >&6
5076
then :
4561
else
5077
  printf %s "(cached) " >&6
5078
else $as_nop
4562
  if test -n "$ac_ct_STRIP"; then
5079
  if test -n "$ac_ct_STRIP"; then
4563
  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
5080
  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
4564
else
5081
else
Lines 4566-4576 Link Here
4566
for as_dir in $PATH
5083
for as_dir in $PATH
4567
do
5084
do
4568
  IFS=$as_save_IFS
5085
  IFS=$as_save_IFS
4569
  test -z "$as_dir" && as_dir=.
5086
  case $as_dir in #(((
5087
    '') as_dir=./ ;;
5088
    */) ;;
5089
    *) as_dir=$as_dir/ ;;
5090
  esac
4570
    for ac_exec_ext in '' $ac_executable_extensions; do
5091
    for ac_exec_ext in '' $ac_executable_extensions; do
4571
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
5092
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
4572
    ac_cv_prog_ac_ct_STRIP="strip"
5093
    ac_cv_prog_ac_ct_STRIP="strip"
4573
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
5094
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
4574
    break 2
5095
    break 2
4575
  fi
5096
  fi
4576
done
5097
done
Lines 4581-4591 Link Here
4581
fi
5102
fi
4582
ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
5103
ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
4583
if test -n "$ac_ct_STRIP"; then
5104
if test -n "$ac_ct_STRIP"; then
4584
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
5105
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
4585
$as_echo "$ac_ct_STRIP" >&6; }
5106
printf "%s\n" "$ac_ct_STRIP" >&6; }
4586
else
5107
else
4587
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5108
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
4588
$as_echo "no" >&6; }
5109
printf "%s\n" "no" >&6; }
4589
fi
5110
fi
4590
5111
4591
  if test "x$ac_ct_STRIP" = x; then
5112
  if test "x$ac_ct_STRIP" = x; then
Lines 4593-4600 Link Here
4593
  else
5114
  else
4594
    case $cross_compiling:$ac_tool_warned in
5115
    case $cross_compiling:$ac_tool_warned in
4595
yes:)
5116
yes:)
4596
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
5117
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
4597
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
5118
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
4598
ac_tool_warned=yes ;;
5119
ac_tool_warned=yes ;;
4599
esac
5120
esac
4600
    STRIP=$ac_ct_STRIP
5121
    STRIP=$ac_ct_STRIP
Lines 4606-4630 Link Here
4606
fi
5127
fi
4607
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
5128
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
4608
5129
4609
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
5130
4610
$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
5131
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5
5132
printf %s "checking for a race-free mkdir -p... " >&6; }
4611
if test -z "$MKDIR_P"; then
5133
if test -z "$MKDIR_P"; then
4612
  if ${ac_cv_path_mkdir+:} false; then :
5134
  if test ${ac_cv_path_mkdir+y}
4613
  $as_echo_n "(cached) " >&6
5135
then :
4614
else
5136
  printf %s "(cached) " >&6
5137
else $as_nop
4615
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5138
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4616
for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
5139
for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
4617
do
5140
do
4618
  IFS=$as_save_IFS
5141
  IFS=$as_save_IFS
4619
  test -z "$as_dir" && as_dir=.
5142
  case $as_dir in #(((
5143
    '') as_dir=./ ;;
5144
    */) ;;
5145
    *) as_dir=$as_dir/ ;;
5146
  esac
4620
    for ac_prog in mkdir gmkdir; do
5147
    for ac_prog in mkdir gmkdir; do
4621
	 for ac_exec_ext in '' $ac_executable_extensions; do
5148
	 for ac_exec_ext in '' $ac_executable_extensions; do
4622
	   as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
5149
	   as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue
4623
	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
5150
	   case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #(
4624
	     'mkdir (GNU coreutils) '* | \
5151
	     'mkdir ('*'coreutils) '* | \
4625
	     'mkdir (coreutils) '* | \
5152
	     'BusyBox '* | \
4626
	     'mkdir (fileutils) '4.1*)
5153
	     'mkdir (fileutils) '4.1*)
4627
	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
5154
	       ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext
4628
	       break 3;;
5155
	       break 3;;
4629
	   esac
5156
	   esac
4630
	 done
5157
	 done
Lines 4635-4641 Link Here
4635
fi
5162
fi
4636
5163
4637
  test -d ./--version && rmdir ./--version
5164
  test -d ./--version && rmdir ./--version
4638
  if test "${ac_cv_path_mkdir+set}" = set; then
5165
  if test ${ac_cv_path_mkdir+y}; then
4639
    MKDIR_P="$ac_cv_path_mkdir -p"
5166
    MKDIR_P="$ac_cv_path_mkdir -p"
4640
  else
5167
  else
4641
    # As a last resort, use the slow shell script.  Don't cache a
5168
    # As a last resort, use the slow shell script.  Don't cache a
Lines 4645-4662 Link Here
4645
    MKDIR_P="$ac_install_sh -d"
5172
    MKDIR_P="$ac_install_sh -d"
4646
  fi
5173
  fi
4647
fi
5174
fi
4648
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
5175
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
4649
$as_echo "$MKDIR_P" >&6; }
5176
printf "%s\n" "$MKDIR_P" >&6; }
4650
5177
4651
for ac_prog in gawk mawk nawk awk
5178
for ac_prog in gawk mawk nawk awk
4652
do
5179
do
4653
  # Extract the first word of "$ac_prog", so it can be a program name with args.
5180
  # Extract the first word of "$ac_prog", so it can be a program name with args.
4654
set dummy $ac_prog; ac_word=$2
5181
set dummy $ac_prog; ac_word=$2
4655
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5182
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
4656
$as_echo_n "checking for $ac_word... " >&6; }
5183
printf %s "checking for $ac_word... " >&6; }
4657
if ${ac_cv_prog_AWK+:} false; then :
5184
if test ${ac_cv_prog_AWK+y}
4658
  $as_echo_n "(cached) " >&6
5185
then :
4659
else
5186
  printf %s "(cached) " >&6
5187
else $as_nop
4660
  if test -n "$AWK"; then
5188
  if test -n "$AWK"; then
4661
  ac_cv_prog_AWK="$AWK" # Let the user override the test.
5189
  ac_cv_prog_AWK="$AWK" # Let the user override the test.
4662
else
5190
else
Lines 4664-4674 Link Here
4664
for as_dir in $PATH
5192
for as_dir in $PATH
4665
do
5193
do
4666
  IFS=$as_save_IFS
5194
  IFS=$as_save_IFS
4667
  test -z "$as_dir" && as_dir=.
5195
  case $as_dir in #(((
5196
    '') as_dir=./ ;;
5197
    */) ;;
5198
    *) as_dir=$as_dir/ ;;
5199
  esac
4668
    for ac_exec_ext in '' $ac_executable_extensions; do
5200
    for ac_exec_ext in '' $ac_executable_extensions; do
4669
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
5201
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
4670
    ac_cv_prog_AWK="$ac_prog"
5202
    ac_cv_prog_AWK="$ac_prog"
4671
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
5203
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
4672
    break 2
5204
    break 2
4673
  fi
5205
  fi
4674
done
5206
done
Lines 4679-4702 Link Here
4679
fi
5211
fi
4680
AWK=$ac_cv_prog_AWK
5212
AWK=$ac_cv_prog_AWK
4681
if test -n "$AWK"; then
5213
if test -n "$AWK"; then
4682
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
5214
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
4683
$as_echo "$AWK" >&6; }
5215
printf "%s\n" "$AWK" >&6; }
4684
else
5216
else
4685
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5217
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
4686
$as_echo "no" >&6; }
5218
printf "%s\n" "no" >&6; }
4687
fi
5219
fi
4688
5220
4689
5221
4690
  test -n "$AWK" && break
5222
  test -n "$AWK" && break
4691
done
5223
done
4692
5224
4693
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
5225
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
4694
$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
5226
printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
4695
set x ${MAKE-make}
5227
set x ${MAKE-make}
4696
ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
5228
ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
4697
if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
5229
if eval test \${ac_cv_prog_make_${ac_make}_set+y}
4698
  $as_echo_n "(cached) " >&6
5230
then :
4699
else
5231
  printf %s "(cached) " >&6
5232
else $as_nop
4700
  cat >conftest.make <<\_ACEOF
5233
  cat >conftest.make <<\_ACEOF
4701
SHELL = /bin/sh
5234
SHELL = /bin/sh
4702
all:
5235
all:
Lines 4712-4723 Link Here
4712
rm -f conftest.make
5245
rm -f conftest.make
4713
fi
5246
fi
4714
if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
5247
if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
4715
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
5248
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
4716
$as_echo "yes" >&6; }
5249
printf "%s\n" "yes" >&6; }
4717
  SET_MAKE=
5250
  SET_MAKE=
4718
else
5251
else
4719
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5252
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
4720
$as_echo "no" >&6; }
5253
printf "%s\n" "no" >&6; }
4721
  SET_MAKE="MAKE=${MAKE-make}"
5254
  SET_MAKE="MAKE=${MAKE-make}"
4722
fi
5255
fi
4723
5256
Lines 4731-4737 Link Here
4731
rmdir .tst 2>/dev/null
5264
rmdir .tst 2>/dev/null
4732
5265
4733
# Check whether --enable-silent-rules was given.
5266
# Check whether --enable-silent-rules was given.
4734
if test "${enable_silent_rules+set}" = set; then :
5267
if test ${enable_silent_rules+y}
5268
then :
4735
  enableval=$enable_silent_rules;
5269
  enableval=$enable_silent_rules;
4736
fi
5270
fi
4737
5271
Lines 4741-4752 Link Here
4741
    *) AM_DEFAULT_VERBOSITY=1;;
5275
    *) AM_DEFAULT_VERBOSITY=1;;
4742
esac
5276
esac
4743
am_make=${MAKE-make}
5277
am_make=${MAKE-make}
4744
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
5278
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
4745
$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
5279
printf %s "checking whether $am_make supports nested variables... " >&6; }
4746
if ${am_cv_make_support_nested_variables+:} false; then :
5280
if test ${am_cv_make_support_nested_variables+y}
4747
  $as_echo_n "(cached) " >&6
5281
then :
4748
else
5282
  printf %s "(cached) " >&6
4749
  if $as_echo 'TRUE=$(BAR$(V))
5283
else $as_nop
5284
  if printf "%s\n" 'TRUE=$(BAR$(V))
4750
BAR0=false
5285
BAR0=false
4751
BAR1=true
5286
BAR1=true
4752
V=1
5287
V=1
Lines 4758-4765 Link Here
4758
  am_cv_make_support_nested_variables=no
5293
  am_cv_make_support_nested_variables=no
4759
fi
5294
fi
4760
fi
5295
fi
4761
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
5296
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
4762
$as_echo "$am_cv_make_support_nested_variables" >&6; }
5297
printf "%s\n" "$am_cv_make_support_nested_variables" >&6; }
4763
if test $am_cv_make_support_nested_variables = yes; then
5298
if test $am_cv_make_support_nested_variables = yes; then
4764
    AM_V='$(V)'
5299
    AM_V='$(V)'
4765
  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
5300
  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
Lines 4791-4807 Link Here
4791
5326
4792
# Define the identity of the package.
5327
# Define the identity of the package.
4793
 PACKAGE='xz'
5328
 PACKAGE='xz'
4794
 VERSION='5.2.5'
5329
 VERSION='5.4.3'
4795
5330
4796
5331
4797
cat >>confdefs.h <<_ACEOF
5332
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
4798
#define PACKAGE "$PACKAGE"
4799
_ACEOF
4800
5333
4801
5334
4802
cat >>confdefs.h <<_ACEOF
5335
printf "%s\n" "#define VERSION \"$VERSION\"" >>confdefs.h
4803
#define VERSION "$VERSION"
4804
_ACEOF
4805
5336
4806
# Some tools Automake needs.
5337
# Some tools Automake needs.
4807
5338
Lines 4841-4847 Link Here
4841
5372
4842
5373
4843
5374
5375
# Variables for tags utilities; see am/tags.am
5376
if test -z "$CTAGS"; then
5377
  CTAGS=ctags
5378
fi
4844
5379
5380
if test -z "$ETAGS"; then
5381
  ETAGS=etags
5382
fi
5383
5384
if test -z "$CSCOPE"; then
5385
  CSCOPE=cscope
5386
fi
5387
5388
5389
4845
# POSIX will say in a future version that running "rm -f" with no argument
5390
# POSIX will say in a future version that running "rm -f" with no argument
4846
# is OK; and we want to be able to make that assumption in our Makefile
5391
# is OK; and we want to be able to make that assumption in our Makefile
4847
# recipes.  So use an aggressive probe to check that the usage we want is
5392
# recipes.  So use an aggressive probe to check that the usage we want is
Lines 4884-4907 Link Here
4884
  fi
5429
  fi
4885
fi
5430
fi
4886
5431
4887
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
5432
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
4888
$as_echo_n "checking whether ln -s works... " >&6; }
5433
printf %s "checking whether ln -s works... " >&6; }
4889
LN_S=$as_ln_s
5434
LN_S=$as_ln_s
4890
if test "$LN_S" = "ln -s"; then
5435
if test "$LN_S" = "ln -s"; then
4891
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
5436
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
4892
$as_echo "yes" >&6; }
5437
printf "%s\n" "yes" >&6; }
4893
else
5438
else
4894
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
5439
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
4895
$as_echo "no, using $LN_S" >&6; }
5440
printf "%s\n" "no, using $LN_S" >&6; }
4896
fi
5441
fi
4897
5442
4898
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
4899
DEPDIR="${am__leading_dot}deps"
5453
DEPDIR="${am__leading_dot}deps"
4900
5454
4901
ac_config_commands="$ac_config_commands depfiles"
5455
ac_config_commands="$ac_config_commands depfiles"
4902
5456
4903
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
5457
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
4904
$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; }
5458
printf %s "checking whether ${MAKE-make} supports the include directive... " >&6; }
4905
cat > confinc.mk << 'END'
5459
cat > confinc.mk << 'END'
4906
am__doit:
5460
am__doit:
4907
	@echo this is the am__doit target >confinc.out
5461
	@echo this is the am__doit target >confinc.out
Lines 4937-4947 Link Here
4937
  fi
5491
  fi
4938
done
5492
done
4939
rm -f confinc.* confmf.*
5493
rm -f confinc.* confmf.*
4940
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
5494
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
4941
$as_echo "${_am_result}" >&6; }
5495
printf "%s\n" "${_am_result}" >&6; }
4942
5496
4943
# Check whether --enable-dependency-tracking was given.
5497
# Check whether --enable-dependency-tracking was given.
4944
if test "${enable_dependency_tracking+set}" = set; then :
5498
if test ${enable_dependency_tracking+y}
5499
then :
4945
  enableval=$enable_dependency_tracking;
5500
  enableval=$enable_dependency_tracking;
4946
fi
5501
fi
4947
5502
Lines 4967-4977 Link Here
4967
if test -n "$ac_tool_prefix"; then
5522
if test -n "$ac_tool_prefix"; then
4968
  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
5523
  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
4969
set dummy ${ac_tool_prefix}gcc; ac_word=$2
5524
set dummy ${ac_tool_prefix}gcc; ac_word=$2
4970
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5525
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
4971
$as_echo_n "checking for $ac_word... " >&6; }
5526
printf %s "checking for $ac_word... " >&6; }
4972
if ${ac_cv_prog_CC+:} false; then :
5527
if test ${ac_cv_prog_CC+y}
4973
  $as_echo_n "(cached) " >&6
5528
then :
4974
else
5529
  printf %s "(cached) " >&6
5530
else $as_nop
4975
  if test -n "$CC"; then
5531
  if test -n "$CC"; then
4976
  ac_cv_prog_CC="$CC" # Let the user override the test.
5532
  ac_cv_prog_CC="$CC" # Let the user override the test.
4977
else
5533
else
Lines 4979-4989 Link Here
4979
for as_dir in $PATH
5535
for as_dir in $PATH
4980
do
5536
do
4981
  IFS=$as_save_IFS
5537
  IFS=$as_save_IFS
4982
  test -z "$as_dir" && as_dir=.
5538
  case $as_dir in #(((
5539
    '') as_dir=./ ;;
5540
    */) ;;
5541
    *) as_dir=$as_dir/ ;;
5542
  esac
4983
    for ac_exec_ext in '' $ac_executable_extensions; do
5543
    for ac_exec_ext in '' $ac_executable_extensions; do
4984
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
5544
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
4985
    ac_cv_prog_CC="${ac_tool_prefix}gcc"
5545
    ac_cv_prog_CC="${ac_tool_prefix}gcc"
4986
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
5546
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
4987
    break 2
5547
    break 2
4988
  fi
5548
  fi
4989
done
5549
done
Lines 4994-5004 Link Here
4994
fi
5554
fi
4995
CC=$ac_cv_prog_CC
5555
CC=$ac_cv_prog_CC
4996
if test -n "$CC"; then
5556
if test -n "$CC"; then
4997
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
5557
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
4998
$as_echo "$CC" >&6; }
5558
printf "%s\n" "$CC" >&6; }
4999
else
5559
else
5000
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5560
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
5001
$as_echo "no" >&6; }
5561
printf "%s\n" "no" >&6; }
5002
fi
5562
fi
5003
5563
5004
5564
Lines 5007-5017 Link Here
5007
  ac_ct_CC=$CC
5567
  ac_ct_CC=$CC
5008
  # Extract the first word of "gcc", so it can be a program name with args.
5568
  # Extract the first word of "gcc", so it can be a program name with args.
5009
set dummy gcc; ac_word=$2
5569
set dummy gcc; ac_word=$2
5010
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5570
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5011
$as_echo_n "checking for $ac_word... " >&6; }
5571
printf %s "checking for $ac_word... " >&6; }
5012
if ${ac_cv_prog_ac_ct_CC+:} false; then :
5572
if test ${ac_cv_prog_ac_ct_CC+y}
5013
  $as_echo_n "(cached) " >&6
5573
then :
5014
else
5574
  printf %s "(cached) " >&6
5575
else $as_nop
5015
  if test -n "$ac_ct_CC"; then
5576
  if test -n "$ac_ct_CC"; then
5016
  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
5577
  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
5017
else
5578
else
Lines 5019-5029 Link Here
5019
for as_dir in $PATH
5580
for as_dir in $PATH
5020
do
5581
do
5021
  IFS=$as_save_IFS
5582
  IFS=$as_save_IFS
5022
  test -z "$as_dir" && as_dir=.
5583
  case $as_dir in #(((
5584
    '') as_dir=./ ;;
5585
    */) ;;
5586
    *) as_dir=$as_dir/ ;;
5587
  esac
5023
    for ac_exec_ext in '' $ac_executable_extensions; do
5588
    for ac_exec_ext in '' $ac_executable_extensions; do
5024
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
5589
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
5025
    ac_cv_prog_ac_ct_CC="gcc"
5590
    ac_cv_prog_ac_ct_CC="gcc"
5026
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
5591
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
5027
    break 2
5592
    break 2
5028
  fi
5593
  fi
5029
done
5594
done
Lines 5034-5044 Link Here
5034
fi
5599
fi
5035
ac_ct_CC=$ac_cv_prog_ac_ct_CC
5600
ac_ct_CC=$ac_cv_prog_ac_ct_CC
5036
if test -n "$ac_ct_CC"; then
5601
if test -n "$ac_ct_CC"; then
5037
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
5602
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
5038
$as_echo "$ac_ct_CC" >&6; }
5603
printf "%s\n" "$ac_ct_CC" >&6; }
5039
else
5604
else
5040
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5605
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
5041
$as_echo "no" >&6; }
5606
printf "%s\n" "no" >&6; }
5042
fi
5607
fi
5043
5608
5044
  if test "x$ac_ct_CC" = x; then
5609
  if test "x$ac_ct_CC" = x; then
Lines 5046-5053 Link Here
5046
  else
5611
  else
5047
    case $cross_compiling:$ac_tool_warned in
5612
    case $cross_compiling:$ac_tool_warned in
5048
yes:)
5613
yes:)
5049
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
5614
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
5050
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
5615
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
5051
ac_tool_warned=yes ;;
5616
ac_tool_warned=yes ;;
5052
esac
5617
esac
5053
    CC=$ac_ct_CC
5618
    CC=$ac_ct_CC
Lines 5060-5070 Link Here
5060
          if test -n "$ac_tool_prefix"; then
5625
          if test -n "$ac_tool_prefix"; then
5061
    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
5626
    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
5062
set dummy ${ac_tool_prefix}cc; ac_word=$2
5627
set dummy ${ac_tool_prefix}cc; ac_word=$2
5063
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5628
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5064
$as_echo_n "checking for $ac_word... " >&6; }
5629
printf %s "checking for $ac_word... " >&6; }
5065
if ${ac_cv_prog_CC+:} false; then :
5630
if test ${ac_cv_prog_CC+y}
5066
  $as_echo_n "(cached) " >&6
5631
then :
5067
else
5632
  printf %s "(cached) " >&6
5633
else $as_nop
5068
  if test -n "$CC"; then
5634
  if test -n "$CC"; then
5069
  ac_cv_prog_CC="$CC" # Let the user override the test.
5635
  ac_cv_prog_CC="$CC" # Let the user override the test.
5070
else
5636
else
Lines 5072-5082 Link Here
5072
for as_dir in $PATH
5638
for as_dir in $PATH
5073
do
5639
do
5074
  IFS=$as_save_IFS
5640
  IFS=$as_save_IFS
5075
  test -z "$as_dir" && as_dir=.
5641
  case $as_dir in #(((
5642
    '') as_dir=./ ;;
5643
    */) ;;
5644
    *) as_dir=$as_dir/ ;;
5645
  esac
5076
    for ac_exec_ext in '' $ac_executable_extensions; do
5646
    for ac_exec_ext in '' $ac_executable_extensions; do
5077
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
5647
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
5078
    ac_cv_prog_CC="${ac_tool_prefix}cc"
5648
    ac_cv_prog_CC="${ac_tool_prefix}cc"
5079
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
5649
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
5080
    break 2
5650
    break 2
5081
  fi
5651
  fi
5082
done
5652
done
Lines 5087-5097 Link Here
5087
fi
5657
fi
5088
CC=$ac_cv_prog_CC
5658
CC=$ac_cv_prog_CC
5089
if test -n "$CC"; then
5659
if test -n "$CC"; then
5090
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
5660
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
5091
$as_echo "$CC" >&6; }
5661
printf "%s\n" "$CC" >&6; }
5092
else
5662
else
5093
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5663
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
5094
$as_echo "no" >&6; }
5664
printf "%s\n" "no" >&6; }
5095
fi
5665
fi
5096
5666
5097
5667
Lines 5100-5110 Link Here
5100
if test -z "$CC"; then
5670
if test -z "$CC"; then
5101
  # Extract the first word of "cc", so it can be a program name with args.
5671
  # Extract the first word of "cc", so it can be a program name with args.
5102
set dummy cc; ac_word=$2
5672
set dummy cc; ac_word=$2
5103
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5673
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5104
$as_echo_n "checking for $ac_word... " >&6; }
5674
printf %s "checking for $ac_word... " >&6; }
5105
if ${ac_cv_prog_CC+:} false; then :
5675
if test ${ac_cv_prog_CC+y}
5106
  $as_echo_n "(cached) " >&6
5676
then :
5107
else
5677
  printf %s "(cached) " >&6
5678
else $as_nop
5108
  if test -n "$CC"; then
5679
  if test -n "$CC"; then
5109
  ac_cv_prog_CC="$CC" # Let the user override the test.
5680
  ac_cv_prog_CC="$CC" # Let the user override the test.
5110
else
5681
else
Lines 5113-5127 Link Here
5113
for as_dir in $PATH
5684
for as_dir in $PATH
5114
do
5685
do
5115
  IFS=$as_save_IFS
5686
  IFS=$as_save_IFS
5116
  test -z "$as_dir" && as_dir=.
5687
  case $as_dir in #(((
5688
    '') as_dir=./ ;;
5689
    */) ;;
5690
    *) as_dir=$as_dir/ ;;
5691
  esac
5117
    for ac_exec_ext in '' $ac_executable_extensions; do
5692
    for ac_exec_ext in '' $ac_executable_extensions; do
5118
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
5693
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
5119
    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
5694
    if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
5120
       ac_prog_rejected=yes
5695
       ac_prog_rejected=yes
5121
       continue
5696
       continue
5122
     fi
5697
     fi
5123
    ac_cv_prog_CC="cc"
5698
    ac_cv_prog_CC="cc"
5124
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
5699
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
5125
    break 2
5700
    break 2
5126
  fi
5701
  fi
5127
done
5702
done
Lines 5137-5154 Link Here
5137
    # However, it has the same basename, so the bogon will be chosen
5712
    # However, it has the same basename, so the bogon will be chosen
5138
    # first if we set CC to just the basename; use the full file name.
5713
    # first if we set CC to just the basename; use the full file name.
5139
    shift
5714
    shift
5140
    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
5715
    ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
5141
  fi
5716
  fi
5142
fi
5717
fi
5143
fi
5718
fi
5144
fi
5719
fi
5145
CC=$ac_cv_prog_CC
5720
CC=$ac_cv_prog_CC
5146
if test -n "$CC"; then
5721
if test -n "$CC"; then
5147
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
5722
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
5148
$as_echo "$CC" >&6; }
5723
printf "%s\n" "$CC" >&6; }
5149
else
5724
else
5150
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5725
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
5151
$as_echo "no" >&6; }
5726
printf "%s\n" "no" >&6; }
5152
fi
5727
fi
5153
5728
5154
5729
Lines 5159-5169 Link Here
5159
  do
5734
  do
5160
    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
5735
    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
5161
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
5736
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
5162
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5737
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5163
$as_echo_n "checking for $ac_word... " >&6; }
5738
printf %s "checking for $ac_word... " >&6; }
5164
if ${ac_cv_prog_CC+:} false; then :
5739
if test ${ac_cv_prog_CC+y}
5165
  $as_echo_n "(cached) " >&6
5740
then :
5166
else
5741
  printf %s "(cached) " >&6
5742
else $as_nop
5167
  if test -n "$CC"; then
5743
  if test -n "$CC"; then
5168
  ac_cv_prog_CC="$CC" # Let the user override the test.
5744
  ac_cv_prog_CC="$CC" # Let the user override the test.
5169
else
5745
else
Lines 5171-5181 Link Here
5171
for as_dir in $PATH
5747
for as_dir in $PATH
5172
do
5748
do
5173
  IFS=$as_save_IFS
5749
  IFS=$as_save_IFS
5174
  test -z "$as_dir" && as_dir=.
5750
  case $as_dir in #(((
5751
    '') as_dir=./ ;;
5752
    */) ;;
5753
    *) as_dir=$as_dir/ ;;
5754
  esac
5175
    for ac_exec_ext in '' $ac_executable_extensions; do
5755
    for ac_exec_ext in '' $ac_executable_extensions; do
5176
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
5756
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
5177
    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
5757
    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
5178
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
5758
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
5179
    break 2
5759
    break 2
5180
  fi
5760
  fi
5181
done
5761
done
Lines 5186-5196 Link Here
5186
fi
5766
fi
5187
CC=$ac_cv_prog_CC
5767
CC=$ac_cv_prog_CC
5188
if test -n "$CC"; then
5768
if test -n "$CC"; then
5189
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
5769
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
5190
$as_echo "$CC" >&6; }
5770
printf "%s\n" "$CC" >&6; }
5191
else
5771
else
5192
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5772
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
5193
$as_echo "no" >&6; }
5773
printf "%s\n" "no" >&6; }
5194
fi
5774
fi
5195
5775
5196
5776
Lines 5203-5213 Link Here
5203
do
5783
do
5204
  # Extract the first word of "$ac_prog", so it can be a program name with args.
5784
  # Extract the first word of "$ac_prog", so it can be a program name with args.
5205
set dummy $ac_prog; ac_word=$2
5785
set dummy $ac_prog; ac_word=$2
5206
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5786
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5207
$as_echo_n "checking for $ac_word... " >&6; }
5787
printf %s "checking for $ac_word... " >&6; }
5208
if ${ac_cv_prog_ac_ct_CC+:} false; then :
5788
if test ${ac_cv_prog_ac_ct_CC+y}
5209
  $as_echo_n "(cached) " >&6
5789
then :
5210
else
5790
  printf %s "(cached) " >&6
5791
else $as_nop
5211
  if test -n "$ac_ct_CC"; then
5792
  if test -n "$ac_ct_CC"; then
5212
  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
5793
  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
5213
else
5794
else
Lines 5215-5225 Link Here
5215
for as_dir in $PATH
5796
for as_dir in $PATH
5216
do
5797
do
5217
  IFS=$as_save_IFS
5798
  IFS=$as_save_IFS
5218
  test -z "$as_dir" && as_dir=.
5799
  case $as_dir in #(((
5800
    '') as_dir=./ ;;
5801
    */) ;;
5802
    *) as_dir=$as_dir/ ;;
5803
  esac
5219
    for ac_exec_ext in '' $ac_executable_extensions; do
5804
    for ac_exec_ext in '' $ac_executable_extensions; do
5220
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
5805
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
5221
    ac_cv_prog_ac_ct_CC="$ac_prog"
5806
    ac_cv_prog_ac_ct_CC="$ac_prog"
5222
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
5807
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
5223
    break 2
5808
    break 2
5224
  fi
5809
  fi
5225
done
5810
done
Lines 5230-5240 Link Here
5230
fi
5815
fi
5231
ac_ct_CC=$ac_cv_prog_ac_ct_CC
5816
ac_ct_CC=$ac_cv_prog_ac_ct_CC
5232
if test -n "$ac_ct_CC"; then
5817
if test -n "$ac_ct_CC"; then
5233
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
5818
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
5234
$as_echo "$ac_ct_CC" >&6; }
5819
printf "%s\n" "$ac_ct_CC" >&6; }
5235
else
5820
else
5236
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5821
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
5237
$as_echo "no" >&6; }
5822
printf "%s\n" "no" >&6; }
5238
fi
5823
fi
5239
5824
5240
5825
Lines 5246-5253 Link Here
5246
  else
5831
  else
5247
    case $cross_compiling:$ac_tool_warned in
5832
    case $cross_compiling:$ac_tool_warned in
5248
yes:)
5833
yes:)
5249
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
5834
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
5250
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
5835
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
5251
ac_tool_warned=yes ;;
5836
ac_tool_warned=yes ;;
5252
esac
5837
esac
5253
    CC=$ac_ct_CC
5838
    CC=$ac_ct_CC
Lines 5255-5279 Link Here
5255
fi
5840
fi
5256
5841
5257
fi
5842
fi
5843
if test -z "$CC"; then
5844
  if test -n "$ac_tool_prefix"; then
5845
  # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
5846
set dummy ${ac_tool_prefix}clang; ac_word=$2
5847
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5848
printf %s "checking for $ac_word... " >&6; }
5849
if test ${ac_cv_prog_CC+y}
5850
then :
5851
  printf %s "(cached) " >&6
5852
else $as_nop
5853
  if test -n "$CC"; then
5854
  ac_cv_prog_CC="$CC" # Let the user override the test.
5855
else
5856
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5857
for as_dir in $PATH
5858
do
5859
  IFS=$as_save_IFS
5860
  case $as_dir in #(((
5861
    '') as_dir=./ ;;
5862
    */) ;;
5863
    *) as_dir=$as_dir/ ;;
5864
  esac
5865
    for ac_exec_ext in '' $ac_executable_extensions; do
5866
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
5867
    ac_cv_prog_CC="${ac_tool_prefix}clang"
5868
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
5869
    break 2
5870
  fi
5871
done
5872
  done
5873
IFS=$as_save_IFS
5258
5874
5875
fi
5876
fi
5877
CC=$ac_cv_prog_CC
5878
if test -n "$CC"; then
5879
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
5880
printf "%s\n" "$CC" >&6; }
5881
else
5882
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
5883
printf "%s\n" "no" >&6; }
5884
fi
5259
5885
5260
test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
5886
5261
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
5887
fi
5888
if test -z "$ac_cv_prog_CC"; then
5889
  ac_ct_CC=$CC
5890
  # Extract the first word of "clang", so it can be a program name with args.
5891
set dummy clang; ac_word=$2
5892
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5893
printf %s "checking for $ac_word... " >&6; }
5894
if test ${ac_cv_prog_ac_ct_CC+y}
5895
then :
5896
  printf %s "(cached) " >&6
5897
else $as_nop
5898
  if test -n "$ac_ct_CC"; then
5899
  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
5900
else
5901
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5902
for as_dir in $PATH
5903
do
5904
  IFS=$as_save_IFS
5905
  case $as_dir in #(((
5906
    '') as_dir=./ ;;
5907
    */) ;;
5908
    *) as_dir=$as_dir/ ;;
5909
  esac
5910
    for ac_exec_ext in '' $ac_executable_extensions; do
5911
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
5912
    ac_cv_prog_ac_ct_CC="clang"
5913
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
5914
    break 2
5915
  fi
5916
done
5917
  done
5918
IFS=$as_save_IFS
5919
5920
fi
5921
fi
5922
ac_ct_CC=$ac_cv_prog_ac_ct_CC
5923
if test -n "$ac_ct_CC"; then
5924
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
5925
printf "%s\n" "$ac_ct_CC" >&6; }
5926
else
5927
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
5928
printf "%s\n" "no" >&6; }
5929
fi
5930
5931
  if test "x$ac_ct_CC" = x; then
5932
    CC=""
5933
  else
5934
    case $cross_compiling:$ac_tool_warned in
5935
yes:)
5936
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
5937
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
5938
ac_tool_warned=yes ;;
5939
esac
5940
    CC=$ac_ct_CC
5941
  fi
5942
else
5943
  CC="$ac_cv_prog_CC"
5944
fi
5945
5946
fi
5947
5948
5949
test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
5950
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
5262
as_fn_error $? "no acceptable C compiler found in \$PATH
5951
as_fn_error $? "no acceptable C compiler found in \$PATH
5263
See \`config.log' for more details" "$LINENO" 5; }
5952
See \`config.log' for more details" "$LINENO" 5; }
5264
5953
5265
# Provide some information about the compiler.
5954
# Provide some information about the compiler.
5266
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
5955
printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
5267
set X $ac_compile
5956
set X $ac_compile
5268
ac_compiler=$2
5957
ac_compiler=$2
5269
for ac_option in --version -v -V -qversion; do
5958
for ac_option in --version -v -V -qversion -version; do
5270
  { { ac_try="$ac_compiler $ac_option >&5"
5959
  { { ac_try="$ac_compiler $ac_option >&5"
5271
case "(($ac_try" in
5960
case "(($ac_try" in
5272
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
5961
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
5273
  *) ac_try_echo=$ac_try;;
5962
  *) ac_try_echo=$ac_try;;
5274
esac
5963
esac
5275
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
5964
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
5276
$as_echo "$ac_try_echo"; } >&5
5965
printf "%s\n" "$ac_try_echo"; } >&5
5277
  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
5966
  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
5278
  ac_status=$?
5967
  ac_status=$?
5279
  if test -s conftest.err; then
5968
  if test -s conftest.err; then
Lines 5283-5289 Link Here
5283
    cat conftest.er1 >&5
5972
    cat conftest.er1 >&5
5284
  fi
5973
  fi
5285
  rm -f conftest.er1 conftest.err
5974
  rm -f conftest.er1 conftest.err
5286
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
5975
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
5287
  test $ac_status = 0; }
5976
  test $ac_status = 0; }
5288
done
5977
done
5289
5978
Lines 5291-5297 Link Here
5291
/* end confdefs.h.  */
5980
/* end confdefs.h.  */
5292
5981
5293
int
5982
int
5294
main ()
5983
main (void)
5295
{
5984
{
5296
5985
5297
  ;
5986
  ;
Lines 5303-5311 Link Here
5303
# Try to create an executable without -o first, disregard a.out.
5992
# Try to create an executable without -o first, disregard a.out.
5304
# It will help us diagnose broken compilers, and finding out an intuition
5993
# It will help us diagnose broken compilers, and finding out an intuition
5305
# of exeext.
5994
# of exeext.
5306
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
5995
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
5307
$as_echo_n "checking whether the C compiler works... " >&6; }
5996
printf %s "checking whether the C compiler works... " >&6; }
5308
ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
5997
ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
5309
5998
5310
# The possible output files:
5999
# The possible output files:
5311
ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
6000
ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
Lines 5326-5336 Link Here
5326
  *) ac_try_echo=$ac_try;;
6015
  *) ac_try_echo=$ac_try;;
5327
esac
6016
esac
5328
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
6017
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
5329
$as_echo "$ac_try_echo"; } >&5
6018
printf "%s\n" "$ac_try_echo"; } >&5
5330
  (eval "$ac_link_default") 2>&5
6019
  (eval "$ac_link_default") 2>&5
5331
  ac_status=$?
6020
  ac_status=$?
5332
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
6021
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
5333
  test $ac_status = 0; }; then :
6022
  test $ac_status = 0; }
6023
then :
5334
  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
6024
  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
5335
# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
6025
# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
5336
# in a Makefile.  We should not override ac_cv_exeext if it was cached,
6026
# in a Makefile.  We should not override ac_cv_exeext if it was cached,
Lines 5347-5353 Link Here
5347
	# certainly right.
6037
	# certainly right.
5348
	break;;
6038
	break;;
5349
    *.* )
6039
    *.* )
5350
	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
6040
	if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no;
5351
	then :; else
6041
	then :; else
5352
	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
6042
	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
5353
	fi
6043
	fi
Lines 5363-5406 Link Here
5363
done
6053
done
5364
test "$ac_cv_exeext" = no && ac_cv_exeext=
6054
test "$ac_cv_exeext" = no && ac_cv_exeext=
5365
6055
5366
else
6056
else $as_nop
5367
  ac_file=''
6057
  ac_file=''
5368
fi
6058
fi
5369
if test -z "$ac_file"; then :
6059
if test -z "$ac_file"
5370
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
6060
then :
5371
$as_echo "no" >&6; }
6061
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
5372
$as_echo "$as_me: failed program was:" >&5
6062
printf "%s\n" "no" >&6; }
6063
printf "%s\n" "$as_me: failed program was:" >&5
5373
sed 's/^/| /' conftest.$ac_ext >&5
6064
sed 's/^/| /' conftest.$ac_ext >&5
5374
6065
5375
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
6066
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
5376
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
6067
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
5377
as_fn_error 77 "C compiler cannot create executables
6068
as_fn_error 77 "C compiler cannot create executables
5378
See \`config.log' for more details" "$LINENO" 5; }
6069
See \`config.log' for more details" "$LINENO" 5; }
5379
else
6070
else $as_nop
5380
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
6071
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
5381
$as_echo "yes" >&6; }
6072
printf "%s\n" "yes" >&6; }
5382
fi
6073
fi
5383
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
6074
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
5384
$as_echo_n "checking for C compiler default output file name... " >&6; }
6075
printf %s "checking for C compiler default output file name... " >&6; }
5385
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
6076
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
5386
$as_echo "$ac_file" >&6; }
6077
printf "%s\n" "$ac_file" >&6; }
5387
ac_exeext=$ac_cv_exeext
6078
ac_exeext=$ac_cv_exeext
5388
6079
5389
rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
6080
rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
5390
ac_clean_files=$ac_clean_files_save
6081
ac_clean_files=$ac_clean_files_save
5391
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
6082
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
5392
$as_echo_n "checking for suffix of executables... " >&6; }
6083
printf %s "checking for suffix of executables... " >&6; }
5393
if { { ac_try="$ac_link"
6084
if { { ac_try="$ac_link"
5394
case "(($ac_try" in
6085
case "(($ac_try" in
5395
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
6086
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
5396
  *) ac_try_echo=$ac_try;;
6087
  *) ac_try_echo=$ac_try;;
5397
esac
6088
esac
5398
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
6089
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
5399
$as_echo "$ac_try_echo"; } >&5
6090
printf "%s\n" "$ac_try_echo"; } >&5
5400
  (eval "$ac_link") 2>&5
6091
  (eval "$ac_link") 2>&5
5401
  ac_status=$?
6092
  ac_status=$?
5402
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
6093
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
5403
  test $ac_status = 0; }; then :
6094
  test $ac_status = 0; }
6095
then :
5404
  # If both `conftest.exe' and `conftest' are `present' (well, observable)
6096
  # If both `conftest.exe' and `conftest' are `present' (well, observable)
5405
# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
6097
# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
5406
# work properly (i.e., refer to `conftest.exe'), while it won't with
6098
# work properly (i.e., refer to `conftest.exe'), while it won't with
Lines 5414-5428 Link Here
5414
    * ) break;;
6106
    * ) break;;
5415
  esac
6107
  esac
5416
done
6108
done
5417
else
6109
else $as_nop
5418
  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
6110
  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
5419
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
6111
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
5420
as_fn_error $? "cannot compute suffix of executables: cannot compile and link
6112
as_fn_error $? "cannot compute suffix of executables: cannot compile and link
5421
See \`config.log' for more details" "$LINENO" 5; }
6113
See \`config.log' for more details" "$LINENO" 5; }
5422
fi
6114
fi
5423
rm -f conftest conftest$ac_cv_exeext
6115
rm -f conftest conftest$ac_cv_exeext
5424
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
6116
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
5425
$as_echo "$ac_cv_exeext" >&6; }
6117
printf "%s\n" "$ac_cv_exeext" >&6; }
5426
6118
5427
rm -f conftest.$ac_ext
6119
rm -f conftest.$ac_ext
5428
EXEEXT=$ac_cv_exeext
6120
EXEEXT=$ac_cv_exeext
Lines 5431-5437 Link Here
5431
/* end confdefs.h.  */
6123
/* end confdefs.h.  */
5432
#include <stdio.h>
6124
#include <stdio.h>
5433
int
6125
int
5434
main ()
6126
main (void)
5435
{
6127
{
5436
FILE *f = fopen ("conftest.out", "w");
6128
FILE *f = fopen ("conftest.out", "w");
5437
 return ferror (f) || fclose (f) != 0;
6129
 return ferror (f) || fclose (f) != 0;
Lines 5443-5450 Link Here
5443
ac_clean_files="$ac_clean_files conftest.out"
6135
ac_clean_files="$ac_clean_files conftest.out"
5444
# Check that the compiler produces executables we can run.  If not, either
6136
# Check that the compiler produces executables we can run.  If not, either
5445
# the compiler is broken, or we cross compile.
6137
# the compiler is broken, or we cross compile.
5446
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
6138
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
5447
$as_echo_n "checking whether we are cross compiling... " >&6; }
6139
printf %s "checking whether we are cross compiling... " >&6; }
5448
if test "$cross_compiling" != yes; then
6140
if test "$cross_compiling" != yes; then
5449
  { { ac_try="$ac_link"
6141
  { { ac_try="$ac_link"
5450
case "(($ac_try" in
6142
case "(($ac_try" in
Lines 5452-5461 Link Here
5452
  *) ac_try_echo=$ac_try;;
6144
  *) ac_try_echo=$ac_try;;
5453
esac
6145
esac
5454
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
6146
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
5455
$as_echo "$ac_try_echo"; } >&5
6147
printf "%s\n" "$ac_try_echo"; } >&5
5456
  (eval "$ac_link") 2>&5
6148
  (eval "$ac_link") 2>&5
5457
  ac_status=$?
6149
  ac_status=$?
5458
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
6150
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
5459
  test $ac_status = 0; }
6151
  test $ac_status = 0; }
5460
  if { ac_try='./conftest$ac_cv_exeext'
6152
  if { ac_try='./conftest$ac_cv_exeext'
5461
  { { case "(($ac_try" in
6153
  { { case "(($ac_try" in
Lines 5463-5501 Link Here
5463
  *) ac_try_echo=$ac_try;;
6155
  *) ac_try_echo=$ac_try;;
5464
esac
6156
esac
5465
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
6157
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
5466
$as_echo "$ac_try_echo"; } >&5
6158
printf "%s\n" "$ac_try_echo"; } >&5
5467
  (eval "$ac_try") 2>&5
6159
  (eval "$ac_try") 2>&5
5468
  ac_status=$?
6160
  ac_status=$?
5469
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
6161
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
5470
  test $ac_status = 0; }; }; then
6162
  test $ac_status = 0; }; }; then
5471
    cross_compiling=no
6163
    cross_compiling=no
5472
  else
6164
  else
5473
    if test "$cross_compiling" = maybe; then
6165
    if test "$cross_compiling" = maybe; then
5474
	cross_compiling=yes
6166
	cross_compiling=yes
5475
    else
6167
    else
5476
	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
6168
	{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
5477
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
6169
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
5478
as_fn_error $? "cannot run C compiled programs.
6170
as_fn_error 77 "cannot run C compiled programs.
5479
If you meant to cross compile, use \`--host'.
6171
If you meant to cross compile, use \`--host'.
5480
See \`config.log' for more details" "$LINENO" 5; }
6172
See \`config.log' for more details" "$LINENO" 5; }
5481
    fi
6173
    fi
5482
  fi
6174
  fi
5483
fi
6175
fi
5484
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
6176
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
5485
$as_echo "$cross_compiling" >&6; }
6177
printf "%s\n" "$cross_compiling" >&6; }
5486
6178
5487
rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
6179
rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
5488
ac_clean_files=$ac_clean_files_save
6180
ac_clean_files=$ac_clean_files_save
5489
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
6181
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
5490
$as_echo_n "checking for suffix of object files... " >&6; }
6182
printf %s "checking for suffix of object files... " >&6; }
5491
if ${ac_cv_objext+:} false; then :
6183
if test ${ac_cv_objext+y}
5492
  $as_echo_n "(cached) " >&6
6184
then :
5493
else
6185
  printf %s "(cached) " >&6
6186
else $as_nop
5494
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6187
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
5495
/* end confdefs.h.  */
6188
/* end confdefs.h.  */
5496
6189
5497
int
6190
int
5498
main ()
6191
main (void)
5499
{
6192
{
5500
6193
5501
  ;
6194
  ;
Lines 5509-5519 Link Here
5509
  *) ac_try_echo=$ac_try;;
6202
  *) ac_try_echo=$ac_try;;
5510
esac
6203
esac
5511
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
6204
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
5512
$as_echo "$ac_try_echo"; } >&5
6205
printf "%s\n" "$ac_try_echo"; } >&5
5513
  (eval "$ac_compile") 2>&5
6206
  (eval "$ac_compile") 2>&5
5514
  ac_status=$?
6207
  ac_status=$?
5515
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
6208
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
5516
  test $ac_status = 0; }; then :
6209
  test $ac_status = 0; }
6210
then :
5517
  for ac_file in conftest.o conftest.obj conftest.*; do
6211
  for ac_file in conftest.o conftest.obj conftest.*; do
5518
  test -f "$ac_file" || continue;
6212
  test -f "$ac_file" || continue;
5519
  case $ac_file in
6213
  case $ac_file in
Lines 5522-5552 Link Here
5522
       break;;
6216
       break;;
5523
  esac
6217
  esac
5524
done
6218
done
5525
else
6219
else $as_nop
5526
  $as_echo "$as_me: failed program was:" >&5
6220
  printf "%s\n" "$as_me: failed program was:" >&5
5527
sed 's/^/| /' conftest.$ac_ext >&5
6221
sed 's/^/| /' conftest.$ac_ext >&5
5528
6222
5529
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
6223
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
5530
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
6224
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
5531
as_fn_error $? "cannot compute suffix of object files: cannot compile
6225
as_fn_error $? "cannot compute suffix of object files: cannot compile
5532
See \`config.log' for more details" "$LINENO" 5; }
6226
See \`config.log' for more details" "$LINENO" 5; }
5533
fi
6227
fi
5534
rm -f conftest.$ac_cv_objext conftest.$ac_ext
6228
rm -f conftest.$ac_cv_objext conftest.$ac_ext
5535
fi
6229
fi
5536
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
6230
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
5537
$as_echo "$ac_cv_objext" >&6; }
6231
printf "%s\n" "$ac_cv_objext" >&6; }
5538
OBJEXT=$ac_cv_objext
6232
OBJEXT=$ac_cv_objext
5539
ac_objext=$OBJEXT
6233
ac_objext=$OBJEXT
5540
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
6234
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
5541
$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
6235
printf %s "checking whether the compiler supports GNU C... " >&6; }
5542
if ${ac_cv_c_compiler_gnu+:} false; then :
6236
if test ${ac_cv_c_compiler_gnu+y}
5543
  $as_echo_n "(cached) " >&6
6237
then :
5544
else
6238
  printf %s "(cached) " >&6
6239
else $as_nop
5545
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6240
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
5546
/* end confdefs.h.  */
6241
/* end confdefs.h.  */
5547
6242
5548
int
6243
int
5549
main ()
6244
main (void)
5550
{
6245
{
5551
#ifndef __GNUC__
6246
#ifndef __GNUC__
5552
       choke me
6247
       choke me
Lines 5556-5584 Link Here
5556
  return 0;
6251
  return 0;
5557
}
6252
}
5558
_ACEOF
6253
_ACEOF
5559
if ac_fn_c_try_compile "$LINENO"; then :
6254
if ac_fn_c_try_compile "$LINENO"
6255
then :
5560
  ac_compiler_gnu=yes
6256
  ac_compiler_gnu=yes
5561
else
6257
else $as_nop
5562
  ac_compiler_gnu=no
6258
  ac_compiler_gnu=no
5563
fi
6259
fi
5564
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
6260
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
5565
ac_cv_c_compiler_gnu=$ac_compiler_gnu
6261
ac_cv_c_compiler_gnu=$ac_compiler_gnu
5566
6262
5567
fi
6263
fi
5568
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
6264
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
5569
$as_echo "$ac_cv_c_compiler_gnu" >&6; }
6265
printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
6266
ac_compiler_gnu=$ac_cv_c_compiler_gnu
6267
5570
if test $ac_compiler_gnu = yes; then
6268
if test $ac_compiler_gnu = yes; then
5571
  GCC=yes
6269
  GCC=yes
5572
else
6270
else
5573
  GCC=
6271
  GCC=
5574
fi
6272
fi
5575
ac_test_CFLAGS=${CFLAGS+set}
6273
ac_test_CFLAGS=${CFLAGS+y}
5576
ac_save_CFLAGS=$CFLAGS
6274
ac_save_CFLAGS=$CFLAGS
5577
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
6275
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
5578
$as_echo_n "checking whether $CC accepts -g... " >&6; }
6276
printf %s "checking whether $CC accepts -g... " >&6; }
5579
if ${ac_cv_prog_cc_g+:} false; then :
6277
if test ${ac_cv_prog_cc_g+y}
5580
  $as_echo_n "(cached) " >&6
6278
then :
5581
else
6279
  printf %s "(cached) " >&6
6280
else $as_nop
5582
  ac_save_c_werror_flag=$ac_c_werror_flag
6281
  ac_save_c_werror_flag=$ac_c_werror_flag
5583
   ac_c_werror_flag=yes
6282
   ac_c_werror_flag=yes
5584
   ac_cv_prog_cc_g=no
6283
   ac_cv_prog_cc_g=no
Lines 5587-5643 Link Here
5587
/* end confdefs.h.  */
6286
/* end confdefs.h.  */
5588
6287
5589
int
6288
int
5590
main ()
6289
main (void)
5591
{
6290
{
5592
6291
5593
  ;
6292
  ;
5594
  return 0;
6293
  return 0;
5595
}
6294
}
5596
_ACEOF
6295
_ACEOF
5597
if ac_fn_c_try_compile "$LINENO"; then :
6296
if ac_fn_c_try_compile "$LINENO"
6297
then :
5598
  ac_cv_prog_cc_g=yes
6298
  ac_cv_prog_cc_g=yes
5599
else
6299
else $as_nop
5600
  CFLAGS=""
6300
  CFLAGS=""
5601
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6301
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
5602
/* end confdefs.h.  */
6302
/* end confdefs.h.  */
5603
6303
5604
int
6304
int
5605
main ()
6305
main (void)
5606
{
6306
{
5607
6307
5608
  ;
6308
  ;
5609
  return 0;
6309
  return 0;
5610
}
6310
}
5611
_ACEOF
6311
_ACEOF
5612
if ac_fn_c_try_compile "$LINENO"; then :
6312
if ac_fn_c_try_compile "$LINENO"
6313
then :
5613
6314
5614
else
6315
else $as_nop
5615
  ac_c_werror_flag=$ac_save_c_werror_flag
6316
  ac_c_werror_flag=$ac_save_c_werror_flag
5616
	 CFLAGS="-g"
6317
	 CFLAGS="-g"
5617
	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6318
	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
5618
/* end confdefs.h.  */
6319
/* end confdefs.h.  */
5619
6320
5620
int
6321
int
5621
main ()
6322
main (void)
5622
{
6323
{
5623
6324
5624
  ;
6325
  ;
5625
  return 0;
6326
  return 0;
5626
}
6327
}
5627
_ACEOF
6328
_ACEOF
5628
if ac_fn_c_try_compile "$LINENO"; then :
6329
if ac_fn_c_try_compile "$LINENO"
6330
then :
5629
  ac_cv_prog_cc_g=yes
6331
  ac_cv_prog_cc_g=yes
5630
fi
6332
fi
5631
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
6333
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
5632
fi
6334
fi
5633
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
6335
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
5634
fi
6336
fi
5635
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
6337
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
5636
   ac_c_werror_flag=$ac_save_c_werror_flag
6338
   ac_c_werror_flag=$ac_save_c_werror_flag
5637
fi
6339
fi
5638
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
6340
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
5639
$as_echo "$ac_cv_prog_cc_g" >&6; }
6341
printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
5640
if test "$ac_test_CFLAGS" = set; then
6342
if test $ac_test_CFLAGS; then
5641
  CFLAGS=$ac_save_CFLAGS
6343
  CFLAGS=$ac_save_CFLAGS
5642
elif test $ac_cv_prog_cc_g = yes; then
6344
elif test $ac_cv_prog_cc_g = yes; then
5643
  if test "$GCC" = yes; then
6345
  if test "$GCC" = yes; then
Lines 5652-5746 Link Here
5652
    CFLAGS=
6354
    CFLAGS=
5653
  fi
6355
  fi
5654
fi
6356
fi
5655
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
6357
ac_prog_cc_stdc=no
5656
$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
6358
if test x$ac_prog_cc_stdc = xno
5657
if ${ac_cv_prog_cc_c89+:} false; then :
6359
then :
5658
  $as_echo_n "(cached) " >&6
6360
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
5659
else
6361
printf %s "checking for $CC option to enable C11 features... " >&6; }
5660
  ac_cv_prog_cc_c89=no
6362
if test ${ac_cv_prog_cc_c11+y}
6363
then :
6364
  printf %s "(cached) " >&6
6365
else $as_nop
6366
  ac_cv_prog_cc_c11=no
5661
ac_save_CC=$CC
6367
ac_save_CC=$CC
5662
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6368
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
5663
/* end confdefs.h.  */
6369
/* end confdefs.h.  */
5664
#include <stdarg.h>
6370
$ac_c_conftest_c11_program
5665
#include <stdio.h>
6371
_ACEOF
5666
struct stat;
6372
for ac_arg in '' -std=gnu11
5667
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
6373
do
5668
struct buf { int x; };
6374
  CC="$ac_save_CC $ac_arg"
5669
FILE * (*rcsopen) (struct buf *, struct stat *, int);
6375
  if ac_fn_c_try_compile "$LINENO"
5670
static char *e (p, i)
6376
then :
5671
     char **p;
6377
  ac_cv_prog_cc_c11=$ac_arg
5672
     int i;
6378
fi
5673
{
6379
rm -f core conftest.err conftest.$ac_objext conftest.beam
5674
  return p[i];
6380
  test "x$ac_cv_prog_cc_c11" != "xno" && break
5675
}
6381
done
5676
static char *f (char * (*g) (char **, int), char **p, ...)
6382
rm -f conftest.$ac_ext
5677
{
6383
CC=$ac_save_CC
5678
  char *s;
6384
fi
5679
  va_list v;
5680
  va_start (v,p);
5681
  s = g (p, va_arg (v,int));
5682
  va_end (v);
5683
  return s;
5684
}
5685
6385
5686
/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
6386
if test "x$ac_cv_prog_cc_c11" = xno
5687
   function prototypes and stuff, but not '\xHH' hex character constants.
6387
then :
5688
   These don't provoke an error unfortunately, instead are silently treated
6388
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
5689
   as 'x'.  The following induces an error, until -std is added to get
6389
printf "%s\n" "unsupported" >&6; }
5690
   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
6390
else $as_nop
5691
   array size at least.  It's necessary to write '\x00'==0 to get something
6391
  if test "x$ac_cv_prog_cc_c11" = x
5692
   that's true only with -std.  */
6392
then :
5693
int osf4_cc_array ['\x00' == 0 ? 1 : -1];
6393
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
6394
printf "%s\n" "none needed" >&6; }
6395
else $as_nop
6396
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
6397
printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
6398
     CC="$CC $ac_cv_prog_cc_c11"
6399
fi
6400
  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
6401
  ac_prog_cc_stdc=c11
6402
fi
6403
fi
6404
if test x$ac_prog_cc_stdc = xno
6405
then :
6406
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
6407
printf %s "checking for $CC option to enable C99 features... " >&6; }
6408
if test ${ac_cv_prog_cc_c99+y}
6409
then :
6410
  printf %s "(cached) " >&6
6411
else $as_nop
6412
  ac_cv_prog_cc_c99=no
6413
ac_save_CC=$CC
6414
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6415
/* end confdefs.h.  */
6416
$ac_c_conftest_c99_program
6417
_ACEOF
6418
for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
6419
do
6420
  CC="$ac_save_CC $ac_arg"
6421
  if ac_fn_c_try_compile "$LINENO"
6422
then :
6423
  ac_cv_prog_cc_c99=$ac_arg
6424
fi
6425
rm -f core conftest.err conftest.$ac_objext conftest.beam
6426
  test "x$ac_cv_prog_cc_c99" != "xno" && break
6427
done
6428
rm -f conftest.$ac_ext
6429
CC=$ac_save_CC
6430
fi
5694
6431
5695
/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
6432
if test "x$ac_cv_prog_cc_c99" = xno
5696
   inside strings and character constants.  */
6433
then :
5697
#define FOO(x) 'x'
6434
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
5698
int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
6435
printf "%s\n" "unsupported" >&6; }
5699
6436
else $as_nop
5700
int test (int i, double x);
6437
  if test "x$ac_cv_prog_cc_c99" = x
5701
struct s1 {int (*f) (int a);};
6438
then :
5702
struct s2 {int (*f) (double a);};
6439
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
5703
int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
6440
printf "%s\n" "none needed" >&6; }
5704
int argc;
6441
else $as_nop
5705
char **argv;
6442
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
5706
int
6443
printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
5707
main ()
6444
     CC="$CC $ac_cv_prog_cc_c99"
5708
{
6445
fi
5709
return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
6446
  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
5710
  ;
6447
  ac_prog_cc_stdc=c99
5711
  return 0;
6448
fi
5712
}
6449
fi
6450
if test x$ac_prog_cc_stdc = xno
6451
then :
6452
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
6453
printf %s "checking for $CC option to enable C89 features... " >&6; }
6454
if test ${ac_cv_prog_cc_c89+y}
6455
then :
6456
  printf %s "(cached) " >&6
6457
else $as_nop
6458
  ac_cv_prog_cc_c89=no
6459
ac_save_CC=$CC
6460
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6461
/* end confdefs.h.  */
6462
$ac_c_conftest_c89_program
5713
_ACEOF
6463
_ACEOF
5714
for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
6464
for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
5715
	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
5716
do
6465
do
5717
  CC="$ac_save_CC $ac_arg"
6466
  CC="$ac_save_CC $ac_arg"
5718
  if ac_fn_c_try_compile "$LINENO"; then :
6467
  if ac_fn_c_try_compile "$LINENO"
6468
then :
5719
  ac_cv_prog_cc_c89=$ac_arg
6469
  ac_cv_prog_cc_c89=$ac_arg
5720
fi
6470
fi
5721
rm -f core conftest.err conftest.$ac_objext
6471
rm -f core conftest.err conftest.$ac_objext conftest.beam
5722
  test "x$ac_cv_prog_cc_c89" != "xno" && break
6472
  test "x$ac_cv_prog_cc_c89" != "xno" && break
5723
done
6473
done
5724
rm -f conftest.$ac_ext
6474
rm -f conftest.$ac_ext
5725
CC=$ac_save_CC
6475
CC=$ac_save_CC
5726
5727
fi
6476
fi
5728
# AC_CACHE_VAL
5729
case "x$ac_cv_prog_cc_c89" in
5730
  x)
5731
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
5732
$as_echo "none needed" >&6; } ;;
5733
  xno)
5734
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
5735
$as_echo "unsupported" >&6; } ;;
5736
  *)
5737
    CC="$CC $ac_cv_prog_cc_c89"
5738
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
5739
$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
5740
esac
5741
if test "x$ac_cv_prog_cc_c89" != xno; then :
5742
6477
6478
if test "x$ac_cv_prog_cc_c89" = xno
6479
then :
6480
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
6481
printf "%s\n" "unsupported" >&6; }
6482
else $as_nop
6483
  if test "x$ac_cv_prog_cc_c89" = x
6484
then :
6485
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
6486
printf "%s\n" "none needed" >&6; }
6487
else $as_nop
6488
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
6489
printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
6490
     CC="$CC $ac_cv_prog_cc_c89"
5743
fi
6491
fi
6492
  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
6493
  ac_prog_cc_stdc=c89
6494
fi
6495
fi
5744
6496
5745
ac_ext=c
6497
ac_ext=c
5746
ac_cpp='$CPP $CPPFLAGS'
6498
ac_cpp='$CPP $CPPFLAGS'
Lines 5748-5768 Link Here
5748
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
6500
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
5749
ac_compiler_gnu=$ac_cv_c_compiler_gnu
6501
ac_compiler_gnu=$ac_cv_c_compiler_gnu
5750
6502
5751
ac_ext=c
6503
6504
  ac_ext=c
5752
ac_cpp='$CPP $CPPFLAGS'
6505
ac_cpp='$CPP $CPPFLAGS'
5753
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
6506
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
5754
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
6507
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
5755
ac_compiler_gnu=$ac_cv_c_compiler_gnu
6508
ac_compiler_gnu=$ac_cv_c_compiler_gnu
5756
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
6509
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
5757
$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
6510
printf %s "checking whether $CC understands -c and -o together... " >&6; }
5758
if ${am_cv_prog_cc_c_o+:} false; then :
6511
if test ${am_cv_prog_cc_c_o+y}
5759
  $as_echo_n "(cached) " >&6
6512
then :
5760
else
6513
  printf %s "(cached) " >&6
6514
else $as_nop
5761
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6515
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
5762
/* end confdefs.h.  */
6516
/* end confdefs.h.  */
5763
6517
5764
int
6518
int
5765
main ()
6519
main (void)
5766
{
6520
{
5767
6521
5768
  ;
6522
  ;
Lines 5790-5797 Link Here
5790
  rm -f core conftest*
6544
  rm -f core conftest*
5791
  unset am_i
6545
  unset am_i
5792
fi
6546
fi
5793
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
6547
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
5794
$as_echo "$am_cv_prog_cc_c_o" >&6; }
6548
printf "%s\n" "$am_cv_prog_cc_c_o" >&6; }
5795
if test "$am_cv_prog_cc_c_o" != yes; then
6549
if test "$am_cv_prog_cc_c_o" != yes; then
5796
   # Losing compiler, so override with the script.
6550
   # Losing compiler, so override with the script.
5797
   # FIXME: It is wrong to rewrite CC.
6551
   # FIXME: It is wrong to rewrite CC.
Lines 5809-5819 Link Here
5809
6563
5810
depcc="$CC"   am_compiler_list=
6564
depcc="$CC"   am_compiler_list=
5811
6565
5812
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
6566
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
5813
$as_echo_n "checking dependency style of $depcc... " >&6; }
6567
printf %s "checking dependency style of $depcc... " >&6; }
5814
if ${am_cv_CC_dependencies_compiler_type+:} false; then :
6568
if test ${am_cv_CC_dependencies_compiler_type+y}
5815
  $as_echo_n "(cached) " >&6
6569
then :
5816
else
6570
  printf %s "(cached) " >&6
6571
else $as_nop
5817
  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
6572
  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
5818
  # We make a subdir and do the tests there.  Otherwise we can end up
6573
  # We make a subdir and do the tests there.  Otherwise we can end up
5819
  # making bogus files that we don't know about and never remove.  For
6574
  # making bogus files that we don't know about and never remove.  For
Lines 5920-5927 Link Here
5920
fi
6675
fi
5921
6676
5922
fi
6677
fi
5923
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
6678
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
5924
$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
6679
printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; }
5925
CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
6680
CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
5926
6681
5927
 if
6682
 if
Lines 5935-6117 Link Here
5935
fi
6690
fi
5936
6691
5937
6692
5938
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5
5939
$as_echo_n "checking for $CC option to accept ISO C99... " >&6; }
5940
if ${ac_cv_prog_cc_c99+:} false; then :
5941
  $as_echo_n "(cached) " >&6
5942
else
5943
  ac_cv_prog_cc_c99=no
5944
ac_save_CC=$CC
5945
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
5946
/* end confdefs.h.  */
5947
#include <stdarg.h>
5948
#include <stdbool.h>
5949
#include <stdlib.h>
5950
#include <wchar.h>
5951
#include <stdio.h>
5952
6693
5953
// Check varargs macros.  These examples are taken from C99 6.10.3.5.
5954
#define debug(...) fprintf (stderr, __VA_ARGS__)
5955
#define showlist(...) puts (#__VA_ARGS__)
5956
#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
5957
static void
5958
test_varargs_macros (void)
5959
{
5960
  int x = 1234;
5961
  int y = 5678;
5962
  debug ("Flag");
5963
  debug ("X = %d\n", x);
5964
  showlist (The first, second, and third items.);
5965
  report (x>y, "x is %d but y is %d", x, y);
5966
}
5967
5968
// Check long long types.
5969
#define BIG64 18446744073709551615ull
5970
#define BIG32 4294967295ul
5971
#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
5972
#if !BIG_OK
5973
  your preprocessor is broken;
5974
#endif
5975
#if BIG_OK
5976
#else
5977
  your preprocessor is broken;
5978
#endif
5979
static long long int bignum = -9223372036854775807LL;
5980
static unsigned long long int ubignum = BIG64;
5981
5982
struct incomplete_array
5983
{
5984
  int datasize;
5985
  double data[];
5986
};
5987
5988
struct named_init {
5989
  int number;
5990
  const wchar_t *name;
5991
  double average;
5992
};
5993
5994
typedef const char *ccp;
5995
5996
static inline int
5997
test_restrict (ccp restrict text)
5998
{
5999
  // See if C++-style comments work.
6000
  // Iterate through items via the restricted pointer.
6001
  // Also check for declarations in for loops.
6002
  for (unsigned int i = 0; *(text+i) != '\0'; ++i)
6003
    continue;
6004
  return 0;
6005
}
6006
6007
// Check varargs and va_copy.
6008
static void
6009
test_varargs (const char *format, ...)
6010
{
6011
  va_list args;
6012
  va_start (args, format);
6013
  va_list args_copy;
6014
  va_copy (args_copy, args);
6015
6016
  const char *str;
6017
  int number;
6018
  float fnumber;
6019
6020
  while (*format)
6021
    {
6022
      switch (*format++)
6023
	{
6024
	case 's': // string
6025
	  str = va_arg (args_copy, const char *);
6026
	  break;
6027
	case 'd': // int
6028
	  number = va_arg (args_copy, int);
6029
	  break;
6030
	case 'f': // float
6031
	  fnumber = va_arg (args_copy, double);
6032
	  break;
6033
	default:
6034
	  break;
6035
	}
6036
    }
6037
  va_end (args_copy);
6038
  va_end (args);
6039
}
6040
6041
int
6042
main ()
6043
{
6044
6045
  // Check bool.
6046
  _Bool success = false;
6047
6048
  // Check restrict.
6049
  if (test_restrict ("String literal") == 0)
6050
    success = true;
6051
  char *restrict newvar = "Another string";
6052
6053
  // Check varargs.
6054
  test_varargs ("s, d' f .", "string", 65, 34.234);
6055
  test_varargs_macros ();
6056
6057
  // Check flexible array members.
6058
  struct incomplete_array *ia =
6059
    malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
6060
  ia->datasize = 10;
6061
  for (int i = 0; i < ia->datasize; ++i)
6062
    ia->data[i] = i * 1.234;
6063
6064
  // Check named initializers.
6065
  struct named_init ni = {
6066
    .number = 34,
6067
    .name = L"Test wide string",
6068
    .average = 543.34343,
6069
  };
6070
6071
  ni.number = 58;
6072
6073
  int dynamic_array[ni.number];
6074
  dynamic_array[ni.number - 1] = 543;
6075
6076
  // work around unused variable warnings
6077
  return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
6078
	  || dynamic_array[ni.number - 1] != 543);
6079
6080
  ;
6081
  return 0;
6082
}
6083
_ACEOF
6084
for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99
6085
do
6086
  CC="$ac_save_CC $ac_arg"
6087
  if ac_fn_c_try_compile "$LINENO"; then :
6088
  ac_cv_prog_cc_c99=$ac_arg
6089
fi
6090
rm -f core conftest.err conftest.$ac_objext
6091
  test "x$ac_cv_prog_cc_c99" != "xno" && break
6092
done
6093
rm -f conftest.$ac_ext
6094
CC=$ac_save_CC
6095
6096
fi
6097
# AC_CACHE_VAL
6098
case "x$ac_cv_prog_cc_c99" in
6099
  x)
6100
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
6101
$as_echo "none needed" >&6; } ;;
6102
  xno)
6103
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
6104
$as_echo "unsupported" >&6; } ;;
6105
  *)
6106
    CC="$CC $ac_cv_prog_cc_c99"
6107
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
6108
$as_echo "$ac_cv_prog_cc_c99" >&6; } ;;
6109
esac
6110
if test "x$ac_cv_prog_cc_c99" != xno; then :
6111
6112
fi
6113
6114
6115
if test x$ac_cv_prog_cc_c99 = xno ; then
6694
if test x$ac_cv_prog_cc_c99 = xno ; then
6116
	as_fn_error $? "No C99 compiler was found." "$LINENO" 5
6695
	as_fn_error $? "No C99 compiler was found." "$LINENO" 5
6117
fi
6696
fi
Lines 6126-6136 Link Here
6126
6705
6127
depcc="$CCAS"   am_compiler_list=
6706
depcc="$CCAS"   am_compiler_list=
6128
6707
6129
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
6708
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
6130
$as_echo_n "checking dependency style of $depcc... " >&6; }
6709
printf %s "checking dependency style of $depcc... " >&6; }
6131
if ${am_cv_CCAS_dependencies_compiler_type+:} false; then :
6710
if test ${am_cv_CCAS_dependencies_compiler_type+y}
6132
  $as_echo_n "(cached) " >&6
6711
then :
6133
else
6712
  printf %s "(cached) " >&6
6713
else $as_nop
6134
  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
6714
  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
6135
  # We make a subdir and do the tests there.  Otherwise we can end up
6715
  # We make a subdir and do the tests there.  Otherwise we can end up
6136
  # making bogus files that we don't know about and never remove.  For
6716
  # making bogus files that we don't know about and never remove.  For
Lines 6235-6242 Link Here
6235
fi
6815
fi
6236
6816
6237
fi
6817
fi
6238
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CCAS_dependencies_compiler_type" >&5
6818
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CCAS_dependencies_compiler_type" >&5
6239
$as_echo "$am_cv_CCAS_dependencies_compiler_type" >&6; }
6819
printf "%s\n" "$am_cv_CCAS_dependencies_compiler_type" >&6; }
6240
CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type
6820
CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type
6241
6821
6242
 if
6822
 if
Lines 6251-6295 Link Here
6251
6831
6252
6832
6253
6833
6834
ac_header= ac_cache=
6835
for ac_item in $ac_header_c_list
6836
do
6837
  if test $ac_cache; then
6838
    ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default"
6839
    if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then
6840
      printf "%s\n" "#define $ac_item 1" >> confdefs.h
6841
    fi
6842
    ac_header= ac_cache=
6843
  elif test $ac_header; then
6844
    ac_cache=$ac_item
6845
  else
6846
    ac_header=$ac_item
6847
  fi
6848
done
6849
6850
6851
6852
6853
6854
6855
6856
6857
if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes
6858
then :
6859
6860
printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h
6861
6862
fi
6863
6864
6865
6866
6867
6868
6869
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
6870
printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; }
6871
if test ${ac_cv_safe_to_define___extensions__+y}
6872
then :
6873
  printf %s "(cached) " >&6
6874
else $as_nop
6875
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6876
/* end confdefs.h.  */
6877
6878
#         define __EXTENSIONS__ 1
6879
          $ac_includes_default
6880
int
6881
main (void)
6882
{
6883
6884
  ;
6885
  return 0;
6886
}
6887
_ACEOF
6888
if ac_fn_c_try_compile "$LINENO"
6889
then :
6890
  ac_cv_safe_to_define___extensions__=yes
6891
else $as_nop
6892
  ac_cv_safe_to_define___extensions__=no
6893
fi
6894
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
6895
fi
6896
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
6897
printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; }
6898
6899
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5
6900
printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; }
6901
if test ${ac_cv_should_define__xopen_source+y}
6902
then :
6903
  printf %s "(cached) " >&6
6904
else $as_nop
6905
  ac_cv_should_define__xopen_source=no
6906
    if test $ac_cv_header_wchar_h = yes
6907
then :
6908
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6909
/* end confdefs.h.  */
6910
6911
          #include <wchar.h>
6912
          mbstate_t x;
6913
int
6914
main (void)
6915
{
6916
6917
  ;
6918
  return 0;
6919
}
6920
_ACEOF
6921
if ac_fn_c_try_compile "$LINENO"
6922
then :
6923
6924
else $as_nop
6925
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6926
/* end confdefs.h.  */
6927
6928
            #define _XOPEN_SOURCE 500
6929
            #include <wchar.h>
6930
            mbstate_t x;
6931
int
6932
main (void)
6933
{
6934
6935
  ;
6936
  return 0;
6937
}
6938
_ACEOF
6939
if ac_fn_c_try_compile "$LINENO"
6940
then :
6941
  ac_cv_should_define__xopen_source=yes
6942
fi
6943
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
6944
fi
6945
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
6946
fi
6947
fi
6948
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5
6949
printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; }
6950
6951
  printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h
6952
6953
  printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h
6954
6955
  printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h
6956
6957
  printf "%s\n" "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h
6958
6959
  printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h
6960
6961
  printf "%s\n" "#define _OPENBSD_SOURCE 1" >>confdefs.h
6962
6963
  printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
6964
6965
  printf "%s\n" "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h
6966
6967
  printf "%s\n" "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h
6968
6969
  printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h
6970
6971
  printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h
6972
6973
  printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h
6974
6975
  printf "%s\n" "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h
6976
6977
  printf "%s\n" "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h
6978
6979
  printf "%s\n" "#define _TANDEM_SOURCE 1" >>confdefs.h
6980
6981
  if test $ac_cv_header_minix_config_h = yes
6982
then :
6983
  MINIX=yes
6984
    printf "%s\n" "#define _MINIX 1" >>confdefs.h
6985
6986
    printf "%s\n" "#define _POSIX_SOURCE 1" >>confdefs.h
6987
6988
    printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h
6989
6990
else $as_nop
6991
  MINIX=
6992
fi
6993
  if test $ac_cv_safe_to_define___extensions__ = yes
6994
then :
6995
  printf "%s\n" "#define __EXTENSIONS__ 1" >>confdefs.h
6996
6997
fi
6998
  if test $ac_cv_should_define__xopen_source = yes
6999
then :
7000
  printf "%s\n" "#define _XOPEN_SOURCE 500" >>confdefs.h
7001
7002
fi
7003
7004
7005
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
7006
printf %s "checking for a sed that does not truncate output... " >&6; }
7007
if test ${ac_cv_path_SED+y}
7008
then :
7009
  printf %s "(cached) " >&6
7010
else $as_nop
7011
            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
7012
     for ac_i in 1 2 3 4 5 6 7; do
7013
       ac_script="$ac_script$as_nl$ac_script"
7014
     done
7015
     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
7016
     { ac_script=; unset ac_script;}
7017
     if test -z "$SED"; then
7018
  ac_path_SED_found=false
7019
  # Loop through the user's path and test for each of PROGNAME-LIST
7020
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
7021
for as_dir in $PATH
7022
do
7023
  IFS=$as_save_IFS
7024
  case $as_dir in #(((
7025
    '') as_dir=./ ;;
7026
    */) ;;
7027
    *) as_dir=$as_dir/ ;;
7028
  esac
7029
    for ac_prog in sed gsed
7030
   do
7031
    for ac_exec_ext in '' $ac_executable_extensions; do
7032
      ac_path_SED="$as_dir$ac_prog$ac_exec_ext"
7033
      as_fn_executable_p "$ac_path_SED" || continue
7034
# Check for GNU ac_path_SED and select it if it is found.
7035
  # Check for GNU $ac_path_SED
7036
case `"$ac_path_SED" --version 2>&1` in
7037
*GNU*)
7038
  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
7039
*)
7040
  ac_count=0
7041
  printf %s 0123456789 >"conftest.in"
7042
  while :
7043
  do
7044
    cat "conftest.in" "conftest.in" >"conftest.tmp"
7045
    mv "conftest.tmp" "conftest.in"
7046
    cp "conftest.in" "conftest.nl"
7047
    printf "%s\n" '' >> "conftest.nl"
7048
    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
7049
    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
7050
    as_fn_arith $ac_count + 1 && ac_count=$as_val
7051
    if test $ac_count -gt ${ac_path_SED_max-0}; then
7052
      # Best one so far, save it but keep looking for a better one
7053
      ac_cv_path_SED="$ac_path_SED"
7054
      ac_path_SED_max=$ac_count
7055
    fi
7056
    # 10*(2^10) chars as input seems more than enough
7057
    test $ac_count -gt 10 && break
7058
  done
7059
  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
7060
esac
7061
7062
      $ac_path_SED_found && break 3
7063
    done
7064
  done
7065
  done
7066
IFS=$as_save_IFS
7067
  if test -z "$ac_cv_path_SED"; then
7068
    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
7069
  fi
7070
else
7071
  ac_cv_path_SED=$SED
7072
fi
7073
7074
fi
7075
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
7076
printf "%s\n" "$ac_cv_path_SED" >&6; }
7077
 SED="$ac_cv_path_SED"
7078
  rm -f conftest.sed
7079
6254
ac_ext=c
7080
ac_ext=c
6255
ac_cpp='$CPP $CPPFLAGS'
7081
ac_cpp='$CPP $CPPFLAGS'
6256
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
7082
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
6257
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
7083
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
6258
ac_compiler_gnu=$ac_cv_c_compiler_gnu
7084
ac_compiler_gnu=$ac_cv_c_compiler_gnu
6259
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
7085
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
6260
$as_echo_n "checking how to run the C preprocessor... " >&6; }
7086
printf %s "checking how to run the C preprocessor... " >&6; }
6261
# On Suns, sometimes $CPP names a directory.
7087
# On Suns, sometimes $CPP names a directory.
6262
if test -n "$CPP" && test -d "$CPP"; then
7088
if test -n "$CPP" && test -d "$CPP"; then
6263
  CPP=
7089
  CPP=
6264
fi
7090
fi
6265
if test -z "$CPP"; then
7091
if test -z "$CPP"; then
6266
  if ${ac_cv_prog_CPP+:} false; then :
7092
  if test ${ac_cv_prog_CPP+y}
6267
  $as_echo_n "(cached) " >&6
7093
then :
6268
else
7094
  printf %s "(cached) " >&6
6269
      # Double quotes because CPP needs to be expanded
7095
else $as_nop
6270
    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
7096
      # Double quotes because $CC needs to be expanded
7097
    for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp
6271
    do
7098
    do
6272
      ac_preproc_ok=false
7099
      ac_preproc_ok=false
6273
for ac_c_preproc_warn_flag in '' yes
7100
for ac_c_preproc_warn_flag in '' yes
6274
do
7101
do
6275
  # Use a header file that comes with gcc, so configuring glibc
7102
  # Use a header file that comes with gcc, so configuring glibc
6276
  # with a fresh cross-compiler works.
7103
  # with a fresh cross-compiler works.
6277
  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
6278
  # <limits.h> exists even on freestanding compilers.
6279
  # On the NeXT, cc -E runs the code through the compiler's parser,
7104
  # On the NeXT, cc -E runs the code through the compiler's parser,
6280
  # not just through cpp. "Syntax error" is here to catch this case.
7105
  # not just through cpp. "Syntax error" is here to catch this case.
6281
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
7106
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6282
/* end confdefs.h.  */
7107
/* end confdefs.h.  */
6283
#ifdef __STDC__
7108
#include <limits.h>
6284
# include <limits.h>
6285
#else
6286
# include <assert.h>
6287
#endif
6288
		     Syntax error
7109
		     Syntax error
6289
_ACEOF
7110
_ACEOF
6290
if ac_fn_c_try_cpp "$LINENO"; then :
7111
if ac_fn_c_try_cpp "$LINENO"
7112
then :
6291
7113
6292
else
7114
else $as_nop
6293
  # Broken: fails on valid input.
7115
  # Broken: fails on valid input.
6294
continue
7116
continue
6295
fi
7117
fi
Lines 6301-6310 Link Here
6301
/* end confdefs.h.  */
7123
/* end confdefs.h.  */
6302
#include <ac_nonexistent.h>
7124
#include <ac_nonexistent.h>
6303
_ACEOF
7125
_ACEOF
6304
if ac_fn_c_try_cpp "$LINENO"; then :
7126
if ac_fn_c_try_cpp "$LINENO"
7127
then :
6305
  # Broken: success on invalid input.
7128
  # Broken: success on invalid input.
6306
continue
7129
continue
6307
else
7130
else $as_nop
6308
  # Passes both tests.
7131
  # Passes both tests.
6309
ac_preproc_ok=:
7132
ac_preproc_ok=:
6310
break
7133
break
Lines 6314-6320 Link Here
6314
done
7137
done
6315
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
7138
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
6316
rm -f conftest.i conftest.err conftest.$ac_ext
7139
rm -f conftest.i conftest.err conftest.$ac_ext
6317
if $ac_preproc_ok; then :
7140
if $ac_preproc_ok
7141
then :
6318
  break
7142
  break
6319
fi
7143
fi
6320
7144
Lines 6326-6354 Link Here
6326
else
7150
else
6327
  ac_cv_prog_CPP=$CPP
7151
  ac_cv_prog_CPP=$CPP
6328
fi
7152
fi
6329
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
7153
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
6330
$as_echo "$CPP" >&6; }
7154
printf "%s\n" "$CPP" >&6; }
6331
ac_preproc_ok=false
7155
ac_preproc_ok=false
6332
for ac_c_preproc_warn_flag in '' yes
7156
for ac_c_preproc_warn_flag in '' yes
6333
do
7157
do
6334
  # Use a header file that comes with gcc, so configuring glibc
7158
  # Use a header file that comes with gcc, so configuring glibc
6335
  # with a fresh cross-compiler works.
7159
  # with a fresh cross-compiler works.
6336
  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
6337
  # <limits.h> exists even on freestanding compilers.
6338
  # On the NeXT, cc -E runs the code through the compiler's parser,
7160
  # On the NeXT, cc -E runs the code through the compiler's parser,
6339
  # not just through cpp. "Syntax error" is here to catch this case.
7161
  # not just through cpp. "Syntax error" is here to catch this case.
6340
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
7162
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6341
/* end confdefs.h.  */
7163
/* end confdefs.h.  */
6342
#ifdef __STDC__
7164
#include <limits.h>
6343
# include <limits.h>
6344
#else
6345
# include <assert.h>
6346
#endif
6347
		     Syntax error
7165
		     Syntax error
6348
_ACEOF
7166
_ACEOF
6349
if ac_fn_c_try_cpp "$LINENO"; then :
7167
if ac_fn_c_try_cpp "$LINENO"
7168
then :
6350
7169
6351
else
7170
else $as_nop
6352
  # Broken: fails on valid input.
7171
  # Broken: fails on valid input.
6353
continue
7172
continue
6354
fi
7173
fi
Lines 6360-6369 Link Here
6360
/* end confdefs.h.  */
7179
/* end confdefs.h.  */
6361
#include <ac_nonexistent.h>
7180
#include <ac_nonexistent.h>
6362
_ACEOF
7181
_ACEOF
6363
if ac_fn_c_try_cpp "$LINENO"; then :
7182
if ac_fn_c_try_cpp "$LINENO"
7183
then :
6364
  # Broken: success on invalid input.
7184
  # Broken: success on invalid input.
6365
continue
7185
continue
6366
else
7186
else $as_nop
6367
  # Passes both tests.
7187
  # Passes both tests.
6368
ac_preproc_ok=:
7188
ac_preproc_ok=:
6369
break
7189
break
Lines 6373-6383 Link Here
6373
done
7193
done
6374
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
7194
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
6375
rm -f conftest.i conftest.err conftest.$ac_ext
7195
rm -f conftest.i conftest.err conftest.$ac_ext
6376
if $ac_preproc_ok; then :
7196
if $ac_preproc_ok
7197
then :
6377
7198
6378
else
7199
else $as_nop
6379
  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
7200
  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
6380
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
7201
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
6381
as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
7202
as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
6382
See \`config.log' for more details" "$LINENO" 5; }
7203
See \`config.log' for more details" "$LINENO" 5; }
6383
fi
7204
fi
Lines 6389-6399 Link Here
6389
ac_compiler_gnu=$ac_cv_c_compiler_gnu
7210
ac_compiler_gnu=$ac_cv_c_compiler_gnu
6390
7211
6391
7212
6392
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
7213
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
6393
$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
7214
printf %s "checking for grep that handles long lines and -e... " >&6; }
6394
if ${ac_cv_path_GREP+:} false; then :
7215
if test ${ac_cv_path_GREP+y}
6395
  $as_echo_n "(cached) " >&6
7216
then :
6396
else
7217
  printf %s "(cached) " >&6
7218
else $as_nop
6397
  if test -z "$GREP"; then
7219
  if test -z "$GREP"; then
6398
  ac_path_GREP_found=false
7220
  ac_path_GREP_found=false
6399
  # Loop through the user's path and test for each of PROGNAME-LIST
7221
  # Loop through the user's path and test for each of PROGNAME-LIST
Lines 6401-6410 Link Here
6401
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
7223
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
6402
do
7224
do
6403
  IFS=$as_save_IFS
7225
  IFS=$as_save_IFS
6404
  test -z "$as_dir" && as_dir=.
7226
  case $as_dir in #(((
6405
    for ac_prog in grep ggrep; do
7227
    '') as_dir=./ ;;
7228
    */) ;;
7229
    *) as_dir=$as_dir/ ;;
7230
  esac
7231
    for ac_prog in grep ggrep
7232
   do
6406
    for ac_exec_ext in '' $ac_executable_extensions; do
7233
    for ac_exec_ext in '' $ac_executable_extensions; do
6407
      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
7234
      ac_path_GREP="$as_dir$ac_prog$ac_exec_ext"
6408
      as_fn_executable_p "$ac_path_GREP" || continue
7235
      as_fn_executable_p "$ac_path_GREP" || continue
6409
# Check for GNU ac_path_GREP and select it if it is found.
7236
# Check for GNU ac_path_GREP and select it if it is found.
6410
  # Check for GNU $ac_path_GREP
7237
  # Check for GNU $ac_path_GREP
Lines 6413-6425 Link Here
6413
  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
7240
  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
6414
*)
7241
*)
6415
  ac_count=0
7242
  ac_count=0
6416
  $as_echo_n 0123456789 >"conftest.in"
7243
  printf %s 0123456789 >"conftest.in"
6417
  while :
7244
  while :
6418
  do
7245
  do
6419
    cat "conftest.in" "conftest.in" >"conftest.tmp"
7246
    cat "conftest.in" "conftest.in" >"conftest.tmp"
6420
    mv "conftest.tmp" "conftest.in"
7247
    mv "conftest.tmp" "conftest.in"
6421
    cp "conftest.in" "conftest.nl"
7248
    cp "conftest.in" "conftest.nl"
6422
    $as_echo 'GREP' >> "conftest.nl"
7249
    printf "%s\n" 'GREP' >> "conftest.nl"
6423
    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
7250
    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
6424
    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
7251
    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
6425
    as_fn_arith $ac_count + 1 && ac_count=$as_val
7252
    as_fn_arith $ac_count + 1 && ac_count=$as_val
Lines 6447-6462 Link Here
6447
fi
7274
fi
6448
7275
6449
fi
7276
fi
6450
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
7277
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
6451
$as_echo "$ac_cv_path_GREP" >&6; }
7278
printf "%s\n" "$ac_cv_path_GREP" >&6; }
6452
 GREP="$ac_cv_path_GREP"
7279
 GREP="$ac_cv_path_GREP"
6453
7280
6454
7281
6455
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
7282
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
6456
$as_echo_n "checking for egrep... " >&6; }
7283
printf %s "checking for egrep... " >&6; }
6457
if ${ac_cv_path_EGREP+:} false; then :
7284
if test ${ac_cv_path_EGREP+y}
6458
  $as_echo_n "(cached) " >&6
7285
then :
6459
else
7286
  printf %s "(cached) " >&6
7287
else $as_nop
6460
  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
7288
  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
6461
   then ac_cv_path_EGREP="$GREP -E"
7289
   then ac_cv_path_EGREP="$GREP -E"
6462
   else
7290
   else
Lines 6467-6476 Link Here
6467
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
7295
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
6468
do
7296
do
6469
  IFS=$as_save_IFS
7297
  IFS=$as_save_IFS
6470
  test -z "$as_dir" && as_dir=.
7298
  case $as_dir in #(((
6471
    for ac_prog in egrep; do
7299
    '') as_dir=./ ;;
7300
    */) ;;
7301
    *) as_dir=$as_dir/ ;;
7302
  esac
7303
    for ac_prog in egrep
7304
   do
6472
    for ac_exec_ext in '' $ac_executable_extensions; do
7305
    for ac_exec_ext in '' $ac_executable_extensions; do
6473
      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
7306
      ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext"
6474
      as_fn_executable_p "$ac_path_EGREP" || continue
7307
      as_fn_executable_p "$ac_path_EGREP" || continue
6475
# Check for GNU ac_path_EGREP and select it if it is found.
7308
# Check for GNU ac_path_EGREP and select it if it is found.
6476
  # Check for GNU $ac_path_EGREP
7309
  # Check for GNU $ac_path_EGREP
Lines 6479-6491 Link Here
6479
  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
7312
  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
6480
*)
7313
*)
6481
  ac_count=0
7314
  ac_count=0
6482
  $as_echo_n 0123456789 >"conftest.in"
7315
  printf %s 0123456789 >"conftest.in"
6483
  while :
7316
  while :
6484
  do
7317
  do
6485
    cat "conftest.in" "conftest.in" >"conftest.tmp"
7318
    cat "conftest.in" "conftest.in" >"conftest.tmp"
6486
    mv "conftest.tmp" "conftest.in"
7319
    mv "conftest.tmp" "conftest.in"
6487
    cp "conftest.in" "conftest.nl"
7320
    cp "conftest.in" "conftest.nl"
6488
    $as_echo 'EGREP' >> "conftest.nl"
7321
    printf "%s\n" 'EGREP' >> "conftest.nl"
6489
    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
7322
    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
6490
    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
7323
    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
6491
    as_fn_arith $ac_count + 1 && ac_count=$as_val
7324
    as_fn_arith $ac_count + 1 && ac_count=$as_val
Lines 6514-6792 Link Here
6514
7347
6515
   fi
7348
   fi
6516
fi
7349
fi
6517
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
7350
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
6518
$as_echo "$ac_cv_path_EGREP" >&6; }
7351
printf "%s\n" "$ac_cv_path_EGREP" >&6; }
6519
 EGREP="$ac_cv_path_EGREP"
7352
 EGREP="$ac_cv_path_EGREP"
6520
7353
6521
7354
6522
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
7355
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5
6523
$as_echo_n "checking for ANSI C header files... " >&6; }
7356
printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; }
6524
if ${ac_cv_header_stdc+:} false; then :
7357
if test ${ac_cv_c_undeclared_builtin_options+y}
6525
  $as_echo_n "(cached) " >&6
7358
then :
6526
else
7359
  printf %s "(cached) " >&6
6527
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
7360
else $as_nop
7361
  ac_save_CFLAGS=$CFLAGS
7362
   ac_cv_c_undeclared_builtin_options='cannot detect'
7363
   for ac_arg in '' -fno-builtin; do
7364
     CFLAGS="$ac_save_CFLAGS $ac_arg"
7365
     # This test program should *not* compile successfully.
7366
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6528
/* end confdefs.h.  */
7367
/* end confdefs.h.  */
6529
#include <stdlib.h>
6530
#include <stdarg.h>
6531
#include <string.h>
6532
#include <float.h>
6533
7368
6534
int
7369
int
6535
main ()
7370
main (void)
6536
{
7371
{
6537
7372
(void) strchr;
6538
  ;
7373
  ;
6539
  return 0;
7374
  return 0;
6540
}
7375
}
6541
_ACEOF
7376
_ACEOF
6542
if ac_fn_c_try_compile "$LINENO"; then :
7377
if ac_fn_c_try_compile "$LINENO"
6543
  ac_cv_header_stdc=yes
7378
then :
6544
else
6545
  ac_cv_header_stdc=no
6546
fi
6547
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
6548
7379
6549
if test $ac_cv_header_stdc = yes; then
7380
else $as_nop
6550
  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
7381
  # This test program should compile successfully.
6551
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
7382
        # No library function is consistently available on
7383
        # freestanding implementations, so test against a dummy
7384
        # declaration.  Include always-available headers on the
7385
        # off chance that they somehow elicit warnings.
7386
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6552
/* end confdefs.h.  */
7387
/* end confdefs.h.  */
6553
#include <string.h>
7388
#include <float.h>
7389
#include <limits.h>
7390
#include <stdarg.h>
7391
#include <stddef.h>
7392
extern void ac_decl (int, char *);
6554
7393
6555
_ACEOF
6556
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
6557
  $EGREP "memchr" >/dev/null 2>&1; then :
6558
6559
else
6560
  ac_cv_header_stdc=no
6561
fi
6562
rm -f conftest*
6563
6564
fi
6565
6566
if test $ac_cv_header_stdc = yes; then
6567
  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
6568
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6569
/* end confdefs.h.  */
6570
#include <stdlib.h>
6571
6572
_ACEOF
6573
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
6574
  $EGREP "free" >/dev/null 2>&1; then :
6575
6576
else
6577
  ac_cv_header_stdc=no
6578
fi
6579
rm -f conftest*
6580
6581
fi
6582
6583
if test $ac_cv_header_stdc = yes; then
6584
  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
6585
  if test "$cross_compiling" = yes; then :
6586
  :
6587
else
6588
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6589
/* end confdefs.h.  */
6590
#include <ctype.h>
6591
#include <stdlib.h>
6592
#if ((' ' & 0x0FF) == 0x020)
6593
# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
6594
# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
6595
#else
6596
# define ISLOWER(c) \
6597
		   (('a' <= (c) && (c) <= 'i') \
6598
		     || ('j' <= (c) && (c) <= 'r') \
6599
		     || ('s' <= (c) && (c) <= 'z'))
6600
# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
6601
#endif
6602
6603
#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
6604
int
7394
int
6605
main ()
7395
main (void)
6606
{
7396
{
6607
  int i;
7397
(void) ac_decl (0, (char *) 0);
6608
  for (i = 0; i < 256; i++)
7398
  (void) ac_decl;
6609
    if (XOR (islower (i), ISLOWER (i))
7399
6610
	|| toupper (i) != TOUPPER (i))
7400
  ;
6611
      return 2;
6612
  return 0;
7401
  return 0;
6613
}
7402
}
6614
_ACEOF
7403
_ACEOF
6615
if ac_fn_c_try_run "$LINENO"; then :
7404
if ac_fn_c_try_compile "$LINENO"
6616
7405
then :
6617
else
7406
  if test x"$ac_arg" = x
6618
  ac_cv_header_stdc=no
7407
then :
7408
  ac_cv_c_undeclared_builtin_options='none needed'
7409
else $as_nop
7410
  ac_cv_c_undeclared_builtin_options=$ac_arg
6619
fi
7411
fi
6620
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
7412
          break
6621
  conftest.$ac_objext conftest.beam conftest.$ac_ext
6622
fi
7413
fi
6623
7414
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
6624
fi
7415
fi
6625
fi
7416
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
6626
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
7417
    done
6627
$as_echo "$ac_cv_header_stdc" >&6; }
7418
    CFLAGS=$ac_save_CFLAGS
6628
if test $ac_cv_header_stdc = yes; then
6629
7419
6630
$as_echo "#define STDC_HEADERS 1" >>confdefs.h
6631
6632
fi
7420
fi
7421
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5
7422
printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; }
7423
  case $ac_cv_c_undeclared_builtin_options in #(
7424
  'cannot detect') :
7425
    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
7426
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
7427
as_fn_error $? "cannot make $CC report undeclared builtins
7428
See \`config.log' for more details" "$LINENO" 5; } ;; #(
7429
  'none needed') :
7430
    ac_c_undeclared_builtin_options='' ;; #(
7431
  *) :
7432
    ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;;
7433
esac
6633
7434
6634
# On IRIX 5.3, sys/types and inttypes.h are conflicting.
7435
case $enable_threads in #(
6635
for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
7436
  posix) :
6636
		  inttypes.h stdint.h unistd.h
6637
do :
6638
  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
6639
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
6640
"
6641
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
6642
  cat >>confdefs.h <<_ACEOF
6643
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
6644
_ACEOF
6645
7437
6646
fi
6647
6648
done
6649
6650
6651
6652
  ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
6653
if test "x$ac_cv_header_minix_config_h" = xyes; then :
6654
  MINIX=yes
6655
else
6656
  MINIX=
6657
fi
6658
6659
6660
  if test "$MINIX" = yes; then
6661
6662
$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
6663
6664
6665
$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
6666
6667
6668
$as_echo "#define _MINIX 1" >>confdefs.h
6669
6670
  fi
6671
6672
6673
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
6674
$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
6675
if ${ac_cv_safe_to_define___extensions__+:} false; then :
6676
  $as_echo_n "(cached) " >&6
6677
else
6678
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6679
/* end confdefs.h.  */
6680
6681
#         define __EXTENSIONS__ 1
6682
          $ac_includes_default
6683
int
6684
main ()
6685
{
6686
6687
  ;
6688
  return 0;
6689
}
6690
_ACEOF
6691
if ac_fn_c_try_compile "$LINENO"; then :
6692
  ac_cv_safe_to_define___extensions__=yes
6693
else
6694
  ac_cv_safe_to_define___extensions__=no
6695
fi
6696
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
6697
fi
6698
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
6699
$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
6700
  test $ac_cv_safe_to_define___extensions__ = yes &&
6701
    $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
6702
6703
  $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
6704
6705
  $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
6706
6707
  $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
6708
6709
  $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
6710
6711
6712
6713
case $enable_threads in
6714
	posix)
6715
		echo
7438
		echo
6716
		echo "POSIX threading support:"
7439
		echo "POSIX threading support:"
6717
		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
6718
$as_echo_n "checking for a sed that does not truncate output... " >&6; }
6719
if ${ac_cv_path_SED+:} false; then :
6720
  $as_echo_n "(cached) " >&6
6721
else
6722
            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
6723
     for ac_i in 1 2 3 4 5 6 7; do
6724
       ac_script="$ac_script$as_nl$ac_script"
6725
     done
6726
     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
6727
     { ac_script=; unset ac_script;}
6728
     if test -z "$SED"; then
6729
  ac_path_SED_found=false
6730
  # Loop through the user's path and test for each of PROGNAME-LIST
6731
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6732
for as_dir in $PATH
6733
do
6734
  IFS=$as_save_IFS
6735
  test -z "$as_dir" && as_dir=.
6736
    for ac_prog in sed gsed; do
6737
    for ac_exec_ext in '' $ac_executable_extensions; do
6738
      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
6739
      as_fn_executable_p "$ac_path_SED" || continue
6740
# Check for GNU ac_path_SED and select it if it is found.
6741
  # Check for GNU $ac_path_SED
6742
case `"$ac_path_SED" --version 2>&1` in
6743
*GNU*)
6744
  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
6745
*)
6746
  ac_count=0
6747
  $as_echo_n 0123456789 >"conftest.in"
6748
  while :
6749
  do
6750
    cat "conftest.in" "conftest.in" >"conftest.tmp"
6751
    mv "conftest.tmp" "conftest.in"
6752
    cp "conftest.in" "conftest.nl"
6753
    $as_echo '' >> "conftest.nl"
6754
    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
6755
    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
6756
    as_fn_arith $ac_count + 1 && ac_count=$as_val
6757
    if test $ac_count -gt ${ac_path_SED_max-0}; then
6758
      # Best one so far, save it but keep looking for a better one
6759
      ac_cv_path_SED="$ac_path_SED"
6760
      ac_path_SED_max=$ac_count
6761
    fi
6762
    # 10*(2^10) chars as input seems more than enough
6763
    test $ac_count -gt 10 && break
6764
  done
6765
  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
6766
esac
6767
7440
6768
      $ac_path_SED_found && break 3
6769
    done
6770
  done
6771
  done
6772
IFS=$as_save_IFS
6773
  if test -z "$ac_cv_path_SED"; then
6774
    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
6775
  fi
6776
else
6777
  ac_cv_path_SED=$SED
6778
fi
6779
7441
6780
fi
6781
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
6782
$as_echo "$ac_cv_path_SED" >&6; }
6783
 SED="$ac_cv_path_SED"
6784
  rm -f conftest.sed
6785
7442
6786
7443
6787
6788
6789
6790
ac_ext=c
7444
ac_ext=c
6791
ac_cpp='$CPP $CPPFLAGS'
7445
ac_cpp='$CPP $CPPFLAGS'
6792
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
7446
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
Lines 6806-6843 Link Here
6806
        ax_pthread_save_CC="$CC"
7460
        ax_pthread_save_CC="$CC"
6807
        ax_pthread_save_CFLAGS="$CFLAGS"
7461
        ax_pthread_save_CFLAGS="$CFLAGS"
6808
        ax_pthread_save_LIBS="$LIBS"
7462
        ax_pthread_save_LIBS="$LIBS"
6809
        if test "x$PTHREAD_CC" != "x"; then :
7463
        if test "x$PTHREAD_CC" != "x"
7464
then :
6810
  CC="$PTHREAD_CC"
7465
  CC="$PTHREAD_CC"
6811
fi
7466
fi
7467
        if test "x$PTHREAD_CXX" != "x"
7468
then :
7469
  CXX="$PTHREAD_CXX"
7470
fi
6812
        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
7471
        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
6813
        LIBS="$PTHREAD_LIBS $LIBS"
7472
        LIBS="$PTHREAD_LIBS $LIBS"
6814
        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS" >&5
7473
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS" >&5
6815
$as_echo_n "checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS... " >&6; }
7474
printf %s "checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS... " >&6; }
6816
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
7475
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6817
/* end confdefs.h.  */
7476
/* end confdefs.h.  */
6818
7477
6819
/* Override any GCC internal prototype to avoid an error.
7478
/* Override any GCC internal prototype to avoid an error.
6820
   Use char because int might match the return type of a GCC
7479
   Use char because int might match the return type of a GCC
6821
   builtin and then its argument prototype would still apply.  */
7480
   builtin and then its argument prototype would still apply.  */
6822
#ifdef __cplusplus
6823
extern "C"
6824
#endif
6825
char pthread_join ();
7481
char pthread_join ();
6826
int
7482
int
6827
main ()
7483
main (void)
6828
{
7484
{
6829
return pthread_join ();
7485
return pthread_join ();
6830
  ;
7486
  ;
6831
  return 0;
7487
  return 0;
6832
}
7488
}
6833
_ACEOF
7489
_ACEOF
6834
if ac_fn_c_try_link "$LINENO"; then :
7490
if ac_fn_c_try_link "$LINENO"
7491
then :
6835
  ax_pthread_ok=yes
7492
  ax_pthread_ok=yes
6836
fi
7493
fi
6837
rm -f core conftest.err conftest.$ac_objext \
7494
rm -f core conftest.err conftest.$ac_objext conftest.beam \
6838
    conftest$ac_exeext conftest.$ac_ext
7495
    conftest$ac_exeext conftest.$ac_ext
6839
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
7496
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
6840
$as_echo "$ax_pthread_ok" >&6; }
7497
printf "%s\n" "$ax_pthread_ok" >&6; }
6841
        if test "x$ax_pthread_ok" = "xno"; then
7498
        if test "x$ax_pthread_ok" = "xno"; then
6842
                PTHREAD_LIBS=""
7499
                PTHREAD_LIBS=""
6843
                PTHREAD_CFLAGS=""
7500
                PTHREAD_CFLAGS=""
Lines 6915-6925 Link Here
6915
7572
6916
_ACEOF
7573
_ACEOF
6917
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
7574
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
6918
  $EGREP "AX_PTHREAD_ZOS_MISSING" >/dev/null 2>&1; then :
7575
  $EGREP "AX_PTHREAD_ZOS_MISSING" >/dev/null 2>&1
6919
  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&5
7576
then :
6920
$as_echo "$as_me: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&2;}
7577
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&5
7578
printf "%s\n" "$as_me: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&2;}
6921
fi
7579
fi
6922
rm -f conftest*
7580
rm -rf conftest*
6923
7581
6924
        ;;
7582
        ;;
6925
7583
Lines 6939-6949 Link Here
6939
7597
6940
# Are we compiling with Clang?
7598
# Are we compiling with Clang?
6941
7599
6942
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC is Clang" >&5
7600
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC is Clang" >&5
6943
$as_echo_n "checking whether $CC is Clang... " >&6; }
7601
printf %s "checking whether $CC is Clang... " >&6; }
6944
if ${ax_cv_PTHREAD_CLANG+:} false; then :
7602
if test ${ax_cv_PTHREAD_CLANG+y}
6945
  $as_echo_n "(cached) " >&6
7603
then :
6946
else
7604
  printf %s "(cached) " >&6
7605
else $as_nop
6947
  ax_cv_PTHREAD_CLANG=no
7606
  ax_cv_PTHREAD_CLANG=no
6948
     # Note that Autoconf sets GCC=yes for Clang as well as GCC
7607
     # Note that Autoconf sets GCC=yes for Clang as well as GCC
6949
     if test "x$GCC" = "xyes"; then
7608
     if test "x$GCC" = "xyes"; then
Lines 6956-6971 Link Here
6956
7615
6957
_ACEOF
7616
_ACEOF
6958
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
7617
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
6959
  $EGREP "AX_PTHREAD_CC_IS_CLANG" >/dev/null 2>&1; then :
7618
  $EGREP "AX_PTHREAD_CC_IS_CLANG" >/dev/null 2>&1
7619
then :
6960
  ax_cv_PTHREAD_CLANG=yes
7620
  ax_cv_PTHREAD_CLANG=yes
6961
fi
7621
fi
6962
rm -f conftest*
7622
rm -rf conftest*
6963
7623
6964
     fi
7624
     fi
6965
7625
6966
fi
7626
fi
6967
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG" >&5
7627
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG" >&5
6968
$as_echo "$ax_cv_PTHREAD_CLANG" >&6; }
7628
printf "%s\n" "$ax_cv_PTHREAD_CLANG" >&6; }
6969
ax_pthread_clang="$ax_cv_PTHREAD_CLANG"
7629
ax_pthread_clang="$ax_cv_PTHREAD_CLANG"
6970
7630
6971
7631
Lines 6979-6991 Link Here
6979
# [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468555
7639
# [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468555
6980
# To solve this, first try -pthread together with -lpthread for GCC
7640
# To solve this, first try -pthread together with -lpthread for GCC
6981
7641
6982
if test "x$GCC" = "xyes"; then :
7642
if test "x$GCC" = "xyes"
7643
then :
6983
  ax_pthread_flags="-pthread,-lpthread -pthread -pthreads $ax_pthread_flags"
7644
  ax_pthread_flags="-pthread,-lpthread -pthread -pthreads $ax_pthread_flags"
6984
fi
7645
fi
6985
7646
6986
# Clang takes -pthread (never supported any other flag), but we'll try with -lpthread first
7647
# Clang takes -pthread (never supported any other flag), but we'll try with -lpthread first
6987
7648
6988
if test "x$ax_pthread_clang" = "xyes"; then :
7649
if test "x$ax_pthread_clang" = "xyes"
7650
then :
6989
  ax_pthread_flags="-pthread,-lpthread -pthread"
7651
  ax_pthread_flags="-pthread,-lpthread -pthread"
6990
fi
7652
fi
6991
7653
Lines 7007-7015 Link Here
7007
        ax_pthread_check_macro="--"
7669
        ax_pthread_check_macro="--"
7008
        ;;
7670
        ;;
7009
esac
7671
esac
7010
if test "x$ax_pthread_check_macro" = "x--"; then :
7672
if test "x$ax_pthread_check_macro" = "x--"
7673
then :
7011
  ax_pthread_check_cond=0
7674
  ax_pthread_check_cond=0
7012
else
7675
else $as_nop
7013
  ax_pthread_check_cond="!defined($ax_pthread_check_macro)"
7676
  ax_pthread_check_cond="!defined($ax_pthread_check_macro)"
7014
fi
7677
fi
7015
7678
Lines 7019-7049 Link Here
7019
7682
7020
        case $ax_pthread_try_flag in
7683
        case $ax_pthread_try_flag in
7021
                none)
7684
                none)
7022
                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5
7685
                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5
7023
$as_echo_n "checking whether pthreads work without any flags... " >&6; }
7686
printf %s "checking whether pthreads work without any flags... " >&6; }
7024
                ;;
7687
                ;;
7025
7688
7026
                *,*)
7689
                *,*)
7027
                PTHREAD_CFLAGS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\1/"`
7690
                PTHREAD_CFLAGS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\1/"`
7028
                PTHREAD_LIBS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\2/"`
7691
                PTHREAD_LIBS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\2/"`
7029
                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"" >&5
7692
                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"" >&5
7030
$as_echo_n "checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"... " >&6; }
7693
printf %s "checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"... " >&6; }
7031
                ;;
7694
                ;;
7032
7695
7033
                -*)
7696
                -*)
7034
                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $ax_pthread_try_flag" >&5
7697
                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $ax_pthread_try_flag" >&5
7035
$as_echo_n "checking whether pthreads work with $ax_pthread_try_flag... " >&6; }
7698
printf %s "checking whether pthreads work with $ax_pthread_try_flag... " >&6; }
7036
                PTHREAD_CFLAGS="$ax_pthread_try_flag"
7699
                PTHREAD_CFLAGS="$ax_pthread_try_flag"
7037
                ;;
7700
                ;;
7038
7701
7039
                pthread-config)
7702
                pthread-config)
7040
                # Extract the first word of "pthread-config", so it can be a program name with args.
7703
                # Extract the first word of "pthread-config", so it can be a program name with args.
7041
set dummy pthread-config; ac_word=$2
7704
set dummy pthread-config; ac_word=$2
7042
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
7705
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
7043
$as_echo_n "checking for $ac_word... " >&6; }
7706
printf %s "checking for $ac_word... " >&6; }
7044
if ${ac_cv_prog_ax_pthread_config+:} false; then :
7707
if test ${ac_cv_prog_ax_pthread_config+y}
7045
  $as_echo_n "(cached) " >&6
7708
then :
7046
else
7709
  printf %s "(cached) " >&6
7710
else $as_nop
7047
  if test -n "$ax_pthread_config"; then
7711
  if test -n "$ax_pthread_config"; then
7048
  ac_cv_prog_ax_pthread_config="$ax_pthread_config" # Let the user override the test.
7712
  ac_cv_prog_ax_pthread_config="$ax_pthread_config" # Let the user override the test.
7049
else
7713
else
Lines 7051-7061 Link Here
7051
for as_dir in $PATH
7715
for as_dir in $PATH
7052
do
7716
do
7053
  IFS=$as_save_IFS
7717
  IFS=$as_save_IFS
7054
  test -z "$as_dir" && as_dir=.
7718
  case $as_dir in #(((
7719
    '') as_dir=./ ;;
7720
    */) ;;
7721
    *) as_dir=$as_dir/ ;;
7722
  esac
7055
    for ac_exec_ext in '' $ac_executable_extensions; do
7723
    for ac_exec_ext in '' $ac_executable_extensions; do
7056
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
7724
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
7057
    ac_cv_prog_ax_pthread_config="yes"
7725
    ac_cv_prog_ax_pthread_config="yes"
7058
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
7726
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
7059
    break 2
7727
    break 2
7060
  fi
7728
  fi
7061
done
7729
done
Lines 7067-7081 Link Here
7067
fi
7735
fi
7068
ax_pthread_config=$ac_cv_prog_ax_pthread_config
7736
ax_pthread_config=$ac_cv_prog_ax_pthread_config
7069
if test -n "$ax_pthread_config"; then
7737
if test -n "$ax_pthread_config"; then
7070
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5
7738
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5
7071
$as_echo "$ax_pthread_config" >&6; }
7739
printf "%s\n" "$ax_pthread_config" >&6; }
7072
else
7740
else
7073
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
7741
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
7074
$as_echo "no" >&6; }
7742
printf "%s\n" "no" >&6; }
7075
fi
7743
fi
7076
7744
7077
7745
7078
                if test "x$ax_pthread_config" = "xno"; then :
7746
                if test "x$ax_pthread_config" = "xno"
7747
then :
7079
  continue
7748
  continue
7080
fi
7749
fi
7081
                PTHREAD_CFLAGS="`pthread-config --cflags`"
7750
                PTHREAD_CFLAGS="`pthread-config --cflags`"
Lines 7083-7090 Link Here
7083
                ;;
7752
                ;;
7084
7753
7085
                *)
7754
                *)
7086
                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$ax_pthread_try_flag" >&5
7755
                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$ax_pthread_try_flag" >&5
7087
$as_echo_n "checking for the pthreads library -l$ax_pthread_try_flag... " >&6; }
7756
printf %s "checking for the pthreads library -l$ax_pthread_try_flag... " >&6; }
7088
                PTHREAD_LIBS="-l$ax_pthread_try_flag"
7757
                PTHREAD_LIBS="-l$ax_pthread_try_flag"
7089
                ;;
7758
                ;;
7090
        esac
7759
        esac
Lines 7119-7125 Link Here
7119
                          }
7788
                          }
7120
                        static void *start_routine(void *a) { return a; }
7789
                        static void *start_routine(void *a) { return a; }
7121
int
7790
int
7122
main ()
7791
main (void)
7123
{
7792
{
7124
pthread_t th; pthread_attr_t attr;
7793
pthread_t th; pthread_attr_t attr;
7125
                        pthread_create(&th, 0, start_routine, 0);
7794
                        pthread_create(&th, 0, start_routine, 0);
Lines 7131-7148 Link Here
7131
  return 0;
7800
  return 0;
7132
}
7801
}
7133
_ACEOF
7802
_ACEOF
7134
if ac_fn_c_try_link "$LINENO"; then :
7803
if ac_fn_c_try_link "$LINENO"
7804
then :
7135
  ax_pthread_ok=yes
7805
  ax_pthread_ok=yes
7136
fi
7806
fi
7137
rm -f core conftest.err conftest.$ac_objext \
7807
rm -f core conftest.err conftest.$ac_objext conftest.beam \
7138
    conftest$ac_exeext conftest.$ac_ext
7808
    conftest$ac_exeext conftest.$ac_ext
7139
7809
7140
        CFLAGS="$ax_pthread_save_CFLAGS"
7810
        CFLAGS="$ax_pthread_save_CFLAGS"
7141
        LIBS="$ax_pthread_save_LIBS"
7811
        LIBS="$ax_pthread_save_LIBS"
7142
7812
7143
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
7813
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
7144
$as_echo "$ax_pthread_ok" >&6; }
7814
printf "%s\n" "$ax_pthread_ok" >&6; }
7145
        if test "x$ax_pthread_ok" = "xyes"; then :
7815
        if test "x$ax_pthread_ok" = "xyes"
7816
then :
7146
  break
7817
  break
7147
fi
7818
fi
7148
7819
Lines 7188-7198 Link Here
7188
        # that build with -Werror.  So if the active version of Clang has
7859
        # that build with -Werror.  So if the active version of Clang has
7189
        # this misfeature, we search for an option to squash it.
7860
        # this misfeature, we search for an option to squash it.
7190
7861
7191
        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread" >&5
7862
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread" >&5
7192
$as_echo_n "checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread... " >&6; }
7863
printf %s "checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread... " >&6; }
7193
if ${ax_cv_PTHREAD_CLANG_NO_WARN_FLAG+:} false; then :
7864
if test ${ax_cv_PTHREAD_CLANG_NO_WARN_FLAG+y}
7194
  $as_echo_n "(cached) " >&6
7865
then :
7195
else
7866
  printf %s "(cached) " >&6
7867
else $as_nop
7196
  ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown
7868
  ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown
7197
             # Create an alternate version of $ac_link that compiles and
7869
             # Create an alternate version of $ac_link that compiles and
7198
             # links in two steps (.c -> .o, .o -> exe) instead of one
7870
             # links in two steps (.c -> .o, .o -> exe) instead of one
Lines 7200-7210 Link Here
7200
             # step
7872
             # step
7201
             ax_pthread_save_ac_link="$ac_link"
7873
             ax_pthread_save_ac_link="$ac_link"
7202
             ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g'
7874
             ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g'
7203
             ax_pthread_link_step=`$as_echo "$ac_link" | sed "$ax_pthread_sed"`
7875
             ax_pthread_link_step=`printf "%s\n" "$ac_link" | sed "$ax_pthread_sed"`
7204
             ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)"
7876
             ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)"
7205
             ax_pthread_save_CFLAGS="$CFLAGS"
7877
             ax_pthread_save_CFLAGS="$CFLAGS"
7206
             for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do
7878
             for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do
7207
                if test "x$ax_pthread_try" = "xunknown"; then :
7879
                if test "x$ax_pthread_try" = "xunknown"
7880
then :
7208
  break
7881
  break
7209
fi
7882
fi
7210
                CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS"
7883
                CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS"
Lines 7213-7244 Link Here
7213
/* end confdefs.h.  */
7886
/* end confdefs.h.  */
7214
int main(void){return 0;}
7887
int main(void){return 0;}
7215
_ACEOF
7888
_ACEOF
7216
if ac_fn_c_try_link "$LINENO"; then :
7889
if ac_fn_c_try_link "$LINENO"
7890
then :
7217
  ac_link="$ax_pthread_2step_ac_link"
7891
  ac_link="$ax_pthread_2step_ac_link"
7218
                     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
7892
                     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
7219
/* end confdefs.h.  */
7893
/* end confdefs.h.  */
7220
int main(void){return 0;}
7894
int main(void){return 0;}
7221
_ACEOF
7895
_ACEOF
7222
if ac_fn_c_try_link "$LINENO"; then :
7896
if ac_fn_c_try_link "$LINENO"
7897
then :
7223
  break
7898
  break
7224
fi
7899
fi
7225
rm -f core conftest.err conftest.$ac_objext \
7900
rm -f core conftest.err conftest.$ac_objext conftest.beam \
7226
    conftest$ac_exeext conftest.$ac_ext
7901
    conftest$ac_exeext conftest.$ac_ext
7227
7902
7228
fi
7903
fi
7229
rm -f core conftest.err conftest.$ac_objext \
7904
rm -f core conftest.err conftest.$ac_objext conftest.beam \
7230
    conftest$ac_exeext conftest.$ac_ext
7905
    conftest$ac_exeext conftest.$ac_ext
7231
             done
7906
             done
7232
             ac_link="$ax_pthread_save_ac_link"
7907
             ac_link="$ax_pthread_save_ac_link"
7233
             CFLAGS="$ax_pthread_save_CFLAGS"
7908
             CFLAGS="$ax_pthread_save_CFLAGS"
7234
             if test "x$ax_pthread_try" = "x"; then :
7909
             if test "x$ax_pthread_try" = "x"
7910
then :
7235
  ax_pthread_try=no
7911
  ax_pthread_try=no
7236
fi
7912
fi
7237
             ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try"
7913
             ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try"
7238
7914
7239
fi
7915
fi
7240
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&5
7916
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&5
7241
$as_echo "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&6; }
7917
printf "%s\n" "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&6; }
7242
7918
7243
        case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in
7919
        case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in
7244
                no | unknown) ;;
7920
                no | unknown) ;;
Lines 7257-7307 Link Here
7257
        LIBS="$PTHREAD_LIBS $LIBS"
7933
        LIBS="$PTHREAD_LIBS $LIBS"
7258
7934
7259
        # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
7935
        # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
7260
        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5
7936
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5
7261
$as_echo_n "checking for joinable pthread attribute... " >&6; }
7937
printf %s "checking for joinable pthread attribute... " >&6; }
7262
if ${ax_cv_PTHREAD_JOINABLE_ATTR+:} false; then :
7938
if test ${ax_cv_PTHREAD_JOINABLE_ATTR+y}
7263
  $as_echo_n "(cached) " >&6
7939
then :
7264
else
7940
  printf %s "(cached) " >&6
7941
else $as_nop
7265
  ax_cv_PTHREAD_JOINABLE_ATTR=unknown
7942
  ax_cv_PTHREAD_JOINABLE_ATTR=unknown
7266
             for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
7943
             for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
7267
                 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
7944
                 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
7268
/* end confdefs.h.  */
7945
/* end confdefs.h.  */
7269
#include <pthread.h>
7946
#include <pthread.h>
7270
int
7947
int
7271
main ()
7948
main (void)
7272
{
7949
{
7273
int attr = $ax_pthread_attr; return attr /* ; */
7950
int attr = $ax_pthread_attr; return attr /* ; */
7274
  ;
7951
  ;
7275
  return 0;
7952
  return 0;
7276
}
7953
}
7277
_ACEOF
7954
_ACEOF
7278
if ac_fn_c_try_link "$LINENO"; then :
7955
if ac_fn_c_try_link "$LINENO"
7956
then :
7279
  ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break
7957
  ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break
7280
fi
7958
fi
7281
rm -f core conftest.err conftest.$ac_objext \
7959
rm -f core conftest.err conftest.$ac_objext conftest.beam \
7282
    conftest$ac_exeext conftest.$ac_ext
7960
    conftest$ac_exeext conftest.$ac_ext
7283
             done
7961
             done
7284
7962
7285
fi
7963
fi
7286
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_JOINABLE_ATTR" >&5
7964
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_JOINABLE_ATTR" >&5
7287
$as_echo "$ax_cv_PTHREAD_JOINABLE_ATTR" >&6; }
7965
printf "%s\n" "$ax_cv_PTHREAD_JOINABLE_ATTR" >&6; }
7288
        if test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \
7966
        if test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \
7289
               test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \
7967
               test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \
7290
               test "x$ax_pthread_joinable_attr_defined" != "xyes"; then :
7968
               test "x$ax_pthread_joinable_attr_defined" != "xyes"
7969
then :
7291
7970
7292
cat >>confdefs.h <<_ACEOF
7971
printf "%s\n" "#define PTHREAD_CREATE_JOINABLE $ax_cv_PTHREAD_JOINABLE_ATTR" >>confdefs.h
7293
#define PTHREAD_CREATE_JOINABLE $ax_cv_PTHREAD_JOINABLE_ATTR
7294
_ACEOF
7295
7972
7296
               ax_pthread_joinable_attr_defined=yes
7973
               ax_pthread_joinable_attr_defined=yes
7297
7974
7298
fi
7975
fi
7299
7976
7300
        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether more special flags are required for pthreads" >&5
7977
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether more special flags are required for pthreads" >&5
7301
$as_echo_n "checking whether more special flags are required for pthreads... " >&6; }
7978
printf %s "checking whether more special flags are required for pthreads... " >&6; }
7302
if ${ax_cv_PTHREAD_SPECIAL_FLAGS+:} false; then :
7979
if test ${ax_cv_PTHREAD_SPECIAL_FLAGS+y}
7303
  $as_echo_n "(cached) " >&6
7980
then :
7304
else
7981
  printf %s "(cached) " >&6
7982
else $as_nop
7305
  ax_cv_PTHREAD_SPECIAL_FLAGS=no
7983
  ax_cv_PTHREAD_SPECIAL_FLAGS=no
7306
             case $host_os in
7984
             case $host_os in
7307
             solaris*)
7985
             solaris*)
Lines 7310-7333 Link Here
7310
             esac
7988
             esac
7311
7989
7312
fi
7990
fi
7313
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_SPECIAL_FLAGS" >&5
7991
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_SPECIAL_FLAGS" >&5
7314
$as_echo "$ax_cv_PTHREAD_SPECIAL_FLAGS" >&6; }
7992
printf "%s\n" "$ax_cv_PTHREAD_SPECIAL_FLAGS" >&6; }
7315
        if test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \
7993
        if test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \
7316
               test "x$ax_pthread_special_flags_added" != "xyes"; then :
7994
               test "x$ax_pthread_special_flags_added" != "xyes"
7995
then :
7317
  PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS"
7996
  PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS"
7318
               ax_pthread_special_flags_added=yes
7997
               ax_pthread_special_flags_added=yes
7319
fi
7998
fi
7320
7999
7321
        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5
8000
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5
7322
$as_echo_n "checking for PTHREAD_PRIO_INHERIT... " >&6; }
8001
printf %s "checking for PTHREAD_PRIO_INHERIT... " >&6; }
7323
if ${ax_cv_PTHREAD_PRIO_INHERIT+:} false; then :
8002
if test ${ax_cv_PTHREAD_PRIO_INHERIT+y}
7324
  $as_echo_n "(cached) " >&6
8003
then :
7325
else
8004
  printf %s "(cached) " >&6
8005
else $as_nop
7326
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
8006
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
7327
/* end confdefs.h.  */
8007
/* end confdefs.h.  */
7328
#include <pthread.h>
8008
#include <pthread.h>
7329
int
8009
int
7330
main ()
8010
main (void)
7331
{
8011
{
7332
int i = PTHREAD_PRIO_INHERIT;
8012
int i = PTHREAD_PRIO_INHERIT;
7333
                                               return i;
8013
                                               return i;
Lines 7335-7355 Link Here
7335
  return 0;
8015
  return 0;
7336
}
8016
}
7337
_ACEOF
8017
_ACEOF
7338
if ac_fn_c_try_link "$LINENO"; then :
8018
if ac_fn_c_try_link "$LINENO"
8019
then :
7339
  ax_cv_PTHREAD_PRIO_INHERIT=yes
8020
  ax_cv_PTHREAD_PRIO_INHERIT=yes
7340
else
8021
else $as_nop
7341
  ax_cv_PTHREAD_PRIO_INHERIT=no
8022
  ax_cv_PTHREAD_PRIO_INHERIT=no
7342
fi
8023
fi
7343
rm -f core conftest.err conftest.$ac_objext \
8024
rm -f core conftest.err conftest.$ac_objext conftest.beam \
7344
    conftest$ac_exeext conftest.$ac_ext
8025
    conftest$ac_exeext conftest.$ac_ext
7345
8026
7346
fi
8027
fi
7347
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5
8028
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5
7348
$as_echo "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; }
8029
printf "%s\n" "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; }
7349
        if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \
8030
        if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \
7350
               test "x$ax_pthread_prio_inherit_defined" != "xyes"; then :
8031
               test "x$ax_pthread_prio_inherit_defined" != "xyes"
8032
then :
7351
8033
7352
$as_echo "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h
8034
printf "%s\n" "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h
7353
8035
7354
               ax_pthread_prio_inherit_defined=yes
8036
               ax_pthread_prio_inherit_defined=yes
7355
8037
Lines 7367-7385 Link Here
7367
    #handle absolute path differently from PATH based program lookup
8049
    #handle absolute path differently from PATH based program lookup
7368
                     case "x$CC" in #(
8050
                     case "x$CC" in #(
7369
  x/*) :
8051
  x/*) :
7370
    if as_fn_executable_p ${CC}_r; then :
8052
8053
			   if as_fn_executable_p ${CC}_r
8054
then :
7371
  PTHREAD_CC="${CC}_r"
8055
  PTHREAD_CC="${CC}_r"
7372
fi ;; #(
8056
fi
8057
			   if test "x${CXX}" != "x"
8058
then :
8059
  if as_fn_executable_p ${CXX}_r
8060
then :
8061
  PTHREAD_CXX="${CXX}_r"
8062
fi
8063
fi
8064
			  ;; #(
7373
  *) :
8065
  *) :
7374
    for ac_prog in ${CC}_r
8066
8067
			   for ac_prog in ${CC}_r
7375
do
8068
do
7376
  # Extract the first word of "$ac_prog", so it can be a program name with args.
8069
  # Extract the first word of "$ac_prog", so it can be a program name with args.
7377
set dummy $ac_prog; ac_word=$2
8070
set dummy $ac_prog; ac_word=$2
7378
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
8071
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
7379
$as_echo_n "checking for $ac_word... " >&6; }
8072
printf %s "checking for $ac_word... " >&6; }
7380
if ${ac_cv_prog_PTHREAD_CC+:} false; then :
8073
if test ${ac_cv_prog_PTHREAD_CC+y}
7381
  $as_echo_n "(cached) " >&6
8074
then :
7382
else
8075
  printf %s "(cached) " >&6
8076
else $as_nop
7383
  if test -n "$PTHREAD_CC"; then
8077
  if test -n "$PTHREAD_CC"; then
7384
  ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test.
8078
  ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test.
7385
else
8079
else
Lines 7387-7397 Link Here
7387
for as_dir in $PATH
8081
for as_dir in $PATH
7388
do
8082
do
7389
  IFS=$as_save_IFS
8083
  IFS=$as_save_IFS
7390
  test -z "$as_dir" && as_dir=.
8084
  case $as_dir in #(((
8085
    '') as_dir=./ ;;
8086
    */) ;;
8087
    *) as_dir=$as_dir/ ;;
8088
  esac
7391
    for ac_exec_ext in '' $ac_executable_extensions; do
8089
    for ac_exec_ext in '' $ac_executable_extensions; do
7392
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8090
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
7393
    ac_cv_prog_PTHREAD_CC="$ac_prog"
8091
    ac_cv_prog_PTHREAD_CC="$ac_prog"
7394
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
8092
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
7395
    break 2
8093
    break 2
7396
  fi
8094
  fi
7397
done
8095
done
Lines 7402-7420 Link Here
7402
fi
8100
fi
7403
PTHREAD_CC=$ac_cv_prog_PTHREAD_CC
8101
PTHREAD_CC=$ac_cv_prog_PTHREAD_CC
7404
if test -n "$PTHREAD_CC"; then
8102
if test -n "$PTHREAD_CC"; then
7405
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5
8103
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5
7406
$as_echo "$PTHREAD_CC" >&6; }
8104
printf "%s\n" "$PTHREAD_CC" >&6; }
7407
else
8105
else
7408
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
8106
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
7409
$as_echo "no" >&6; }
8107
printf "%s\n" "no" >&6; }
7410
fi
8108
fi
7411
8109
7412
8110
7413
  test -n "$PTHREAD_CC" && break
8111
  test -n "$PTHREAD_CC" && break
7414
done
8112
done
7415
test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
8113
test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
7416
 ;;
8114
7417
esac ;; #(
8115
			   if test "x${CXX}" != "x"
8116
then :
8117
  for ac_prog in ${CXX}_r
8118
do
8119
  # Extract the first word of "$ac_prog", so it can be a program name with args.
8120
set dummy $ac_prog; ac_word=$2
8121
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
8122
printf %s "checking for $ac_word... " >&6; }
8123
if test ${ac_cv_prog_PTHREAD_CXX+y}
8124
then :
8125
  printf %s "(cached) " >&6
8126
else $as_nop
8127
  if test -n "$PTHREAD_CXX"; then
8128
  ac_cv_prog_PTHREAD_CXX="$PTHREAD_CXX" # Let the user override the test.
8129
else
8130
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8131
for as_dir in $PATH
8132
do
8133
  IFS=$as_save_IFS
8134
  case $as_dir in #(((
8135
    '') as_dir=./ ;;
8136
    */) ;;
8137
    *) as_dir=$as_dir/ ;;
8138
  esac
8139
    for ac_exec_ext in '' $ac_executable_extensions; do
8140
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
8141
    ac_cv_prog_PTHREAD_CXX="$ac_prog"
8142
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
8143
    break 2
8144
  fi
8145
done
8146
  done
8147
IFS=$as_save_IFS
8148
8149
fi
8150
fi
8151
PTHREAD_CXX=$ac_cv_prog_PTHREAD_CXX
8152
if test -n "$PTHREAD_CXX"; then
8153
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CXX" >&5
8154
printf "%s\n" "$PTHREAD_CXX" >&6; }
8155
else
8156
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
8157
printf "%s\n" "no" >&6; }
8158
fi
8159
8160
8161
  test -n "$PTHREAD_CXX" && break
8162
done
8163
test -n "$PTHREAD_CXX" || PTHREAD_CXX="$CXX"
8164
8165
fi
8166
8167
                      ;;
8168
esac
8169
                     ;; #(
7418
  *) :
8170
  *) :
7419
     ;;
8171
     ;;
7420
esac
8172
esac
Lines 7424-7434 Link Here
7424
fi
8176
fi
7425
8177
7426
test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
8178
test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
8179
test -n "$PTHREAD_CXX" || PTHREAD_CXX="$CXX"
7427
8180
7428
8181
7429
8182
7430
8183
7431
8184
8185
7432
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
8186
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
7433
if test "x$ax_pthread_ok" = "xyes"; then
8187
if test "x$ax_pthread_ok" = "xyes"; then
7434
        :
8188
        :
Lines 7448-7454 Link Here
7448
8202
7449
8203
7450
8204
7451
$as_echo "#define MYTHREAD_POSIX 1" >>confdefs.h
8205
printf "%s\n" "#define MYTHREAD_POSIX 1" >>confdefs.h
7452
8206
7453
8207
7454
		# These are nice to have but not mandatory.
8208
		# These are nice to have but not mandatory.
Lines 7460-7470 Link Here
7460
		# needed by liblzma.
8214
		# needed by liblzma.
7461
		OLD_CFLAGS=$CFLAGS
8215
		OLD_CFLAGS=$CFLAGS
7462
		CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
8216
		CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
7463
		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
8217
		{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
7464
$as_echo_n "checking for library containing clock_gettime... " >&6; }
8218
printf %s "checking for library containing clock_gettime... " >&6; }
7465
if ${ac_cv_search_clock_gettime+:} false; then :
8219
if test ${ac_cv_search_clock_gettime+y}
7466
  $as_echo_n "(cached) " >&6
8220
then :
7467
else
8221
  printf %s "(cached) " >&6
8222
else $as_nop
7468
  ac_func_search_save_LIBS=$LIBS
8223
  ac_func_search_save_LIBS=$LIBS
7469
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
8224
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
7470
/* end confdefs.h.  */
8225
/* end confdefs.h.  */
Lines 7472-7557 Link Here
7472
/* Override any GCC internal prototype to avoid an error.
8227
/* Override any GCC internal prototype to avoid an error.
7473
   Use char because int might match the return type of a GCC
8228
   Use char because int might match the return type of a GCC
7474
   builtin and then its argument prototype would still apply.  */
8229
   builtin and then its argument prototype would still apply.  */
7475
#ifdef __cplusplus
7476
extern "C"
7477
#endif
7478
char clock_gettime ();
8230
char clock_gettime ();
7479
int
8231
int
7480
main ()
8232
main (void)
7481
{
8233
{
7482
return clock_gettime ();
8234
return clock_gettime ();
7483
  ;
8235
  ;
7484
  return 0;
8236
  return 0;
7485
}
8237
}
7486
_ACEOF
8238
_ACEOF
7487
for ac_lib in '' rt; do
8239
for ac_lib in '' rt
8240
do
7488
  if test -z "$ac_lib"; then
8241
  if test -z "$ac_lib"; then
7489
    ac_res="none required"
8242
    ac_res="none required"
7490
  else
8243
  else
7491
    ac_res=-l$ac_lib
8244
    ac_res=-l$ac_lib
7492
    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
8245
    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
7493
  fi
8246
  fi
7494
  if ac_fn_c_try_link "$LINENO"; then :
8247
  if ac_fn_c_try_link "$LINENO"
8248
then :
7495
  ac_cv_search_clock_gettime=$ac_res
8249
  ac_cv_search_clock_gettime=$ac_res
7496
fi
8250
fi
7497
rm -f core conftest.err conftest.$ac_objext \
8251
rm -f core conftest.err conftest.$ac_objext conftest.beam \
7498
    conftest$ac_exeext
8252
    conftest$ac_exeext
7499
  if ${ac_cv_search_clock_gettime+:} false; then :
8253
  if test ${ac_cv_search_clock_gettime+y}
8254
then :
7500
  break
8255
  break
7501
fi
8256
fi
7502
done
8257
done
7503
if ${ac_cv_search_clock_gettime+:} false; then :
8258
if test ${ac_cv_search_clock_gettime+y}
8259
then :
7504
8260
7505
else
8261
else $as_nop
7506
  ac_cv_search_clock_gettime=no
8262
  ac_cv_search_clock_gettime=no
7507
fi
8263
fi
7508
rm conftest.$ac_ext
8264
rm conftest.$ac_ext
7509
LIBS=$ac_func_search_save_LIBS
8265
LIBS=$ac_func_search_save_LIBS
7510
fi
8266
fi
7511
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
8267
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
7512
$as_echo "$ac_cv_search_clock_gettime" >&6; }
8268
printf "%s\n" "$ac_cv_search_clock_gettime" >&6; }
7513
ac_res=$ac_cv_search_clock_gettime
8269
ac_res=$ac_cv_search_clock_gettime
7514
if test "$ac_res" != no; then :
8270
if test "$ac_res" != no
8271
then :
7515
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
8272
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
7516
8273
7517
fi
8274
fi
7518
8275
7519
		for ac_func in clock_gettime pthread_condattr_setclock
8276
		ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime"
7520
do :
8277
if test "x$ac_cv_func_clock_gettime" = xyes
7521
  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
8278
then :
7522
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
8279
  printf "%s\n" "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h
7523
if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
7524
  cat >>confdefs.h <<_ACEOF
7525
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
7526
_ACEOF
7527
8280
7528
fi
8281
fi
7529
done
8282
ac_fn_c_check_func "$LINENO" "pthread_condattr_setclock" "ac_cv_func_pthread_condattr_setclock"
8283
if test "x$ac_cv_func_pthread_condattr_setclock" = xyes
8284
then :
8285
  printf "%s\n" "#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1" >>confdefs.h
7530
8286
7531
		ac_fn_c_check_decl "$LINENO" "CLOCK_MONOTONIC" "ac_cv_have_decl_CLOCK_MONOTONIC" "#include <time.h>
7532
"
7533
if test "x$ac_cv_have_decl_CLOCK_MONOTONIC" = xyes; then :
7534
  ac_have_decl=1
7535
else
7536
  ac_have_decl=0
7537
fi
8287
fi
7538
8288
7539
cat >>confdefs.h <<_ACEOF
8289
		ac_fn_check_decl "$LINENO" "CLOCK_MONOTONIC" "ac_cv_have_decl_CLOCK_MONOTONIC" "#include <time.h>
7540
#define HAVE_DECL_CLOCK_MONOTONIC $ac_have_decl
8290
" "$ac_c_undeclared_builtin_options" "CFLAGS"
7541
_ACEOF
8291
if test "x$ac_cv_have_decl_CLOCK_MONOTONIC" = xyes
8292
then :
7542
8293
8294
printf "%s\n" "#define HAVE_CLOCK_MONOTONIC 1" >>confdefs.h
8295
8296
fi
7543
		CFLAGS=$OLD_CFLAGS
8297
		CFLAGS=$OLD_CFLAGS
7544
		;;
8298
	 ;; #(
7545
	win95)
8299
  win95) :
7546
8300
7547
$as_echo "#define MYTHREAD_WIN95 1" >>confdefs.h
7548
8301
7549
		;;
8302
printf "%s\n" "#define MYTHREAD_WIN95 1" >>confdefs.h
7550
	vista)
7551
8303
7552
$as_echo "#define MYTHREAD_VISTA 1" >>confdefs.h
8304
	 ;; #(
8305
  vista) :
7553
8306
7554
		;;
8307
8308
printf "%s\n" "#define MYTHREAD_VISTA 1" >>confdefs.h
8309
8310
8311
 ;; #(
8312
  *) :
8313
     ;;
7555
esac
8314
esac
7556
 if test "x$enable_threads" != xno; then
8315
 if test "x$enable_threads" != xno; then
7557
  COND_THREADS_TRUE=
8316
  COND_THREADS_TRUE=
Lines 7567-7580 Link Here
7567
8326
7568
case `pwd` in
8327
case `pwd` in
7569
  *\ * | *\	*)
8328
  *\ * | *\	*)
7570
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
8329
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
7571
$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
8330
printf "%s\n" "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
7572
esac
8331
esac
7573
8332
7574
8333
7575
8334
7576
macro_version='2.4.6.42-b88ce-dirty'
8335
macro_version='2.4.7.4-1ec8f-dirty'
7577
macro_revision='2.4.6.42'
8336
macro_revision='2.4.7.4'
7578
8337
7579
8338
7580
8339
Lines 7588-7593 Link Here
7588
8347
7589
8348
7590
8349
8350
7591
ltmain=$ac_aux_dir/ltmain.sh
8351
ltmain=$ac_aux_dir/ltmain.sh
7592
8352
7593
# Backslashify metacharacters that are still active within
8353
# Backslashify metacharacters that are still active within
Lines 7611-7618 Link Here
7611
ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
8371
ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
7612
ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
8372
ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
7613
8373
7614
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
8374
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
7615
$as_echo_n "checking how to print strings... " >&6; }
8375
printf %s "checking how to print strings... " >&6; }
7616
# Test print first, because it will be a builtin if present.
8376
# Test print first, because it will be a builtin if present.
7617
if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
8377
if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
7618
   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
8378
   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
Lines 7638-7649 Link Here
7638
}
8398
}
7639
8399
7640
case $ECHO in
8400
case $ECHO in
7641
  printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
8401
  printf*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: printf" >&5
7642
$as_echo "printf" >&6; } ;;
8402
printf "%s\n" "printf" >&6; } ;;
7643
  print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
8403
  print*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
7644
$as_echo "print -r" >&6; } ;;
8404
printf "%s\n" "print -r" >&6; } ;;
7645
  *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
8405
  *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cat" >&5
7646
$as_echo "cat" >&6; } ;;
8406
printf "%s\n" "cat" >&6; } ;;
7647
esac
8407
esac
7648
8408
7649
8409
Lines 7659-7669 Link Here
7659
8419
7660
8420
7661
8421
7662
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
8422
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
7663
$as_echo_n "checking for a sed that does not truncate output... " >&6; }
8423
printf %s "checking for a sed that does not truncate output... " >&6; }
7664
if ${ac_cv_path_SED+:} false; then :
8424
if test ${ac_cv_path_SED+y}
7665
  $as_echo_n "(cached) " >&6
8425
then :
7666
else
8426
  printf %s "(cached) " >&6
8427
else $as_nop
7667
            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
8428
            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
7668
     for ac_i in 1 2 3 4 5 6 7; do
8429
     for ac_i in 1 2 3 4 5 6 7; do
7669
       ac_script="$ac_script$as_nl$ac_script"
8430
       ac_script="$ac_script$as_nl$ac_script"
Lines 7677-7686 Link Here
7677
for as_dir in $PATH
8438
for as_dir in $PATH
7678
do
8439
do
7679
  IFS=$as_save_IFS
8440
  IFS=$as_save_IFS
7680
  test -z "$as_dir" && as_dir=.
8441
  case $as_dir in #(((
7681
    for ac_prog in sed gsed; do
8442
    '') as_dir=./ ;;
8443
    */) ;;
8444
    *) as_dir=$as_dir/ ;;
8445
  esac
8446
    for ac_prog in sed gsed
8447
   do
7682
    for ac_exec_ext in '' $ac_executable_extensions; do
8448
    for ac_exec_ext in '' $ac_executable_extensions; do
7683
      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
8449
      ac_path_SED="$as_dir$ac_prog$ac_exec_ext"
7684
      as_fn_executable_p "$ac_path_SED" || continue
8450
      as_fn_executable_p "$ac_path_SED" || continue
7685
# Check for GNU ac_path_SED and select it if it is found.
8451
# Check for GNU ac_path_SED and select it if it is found.
7686
  # Check for GNU $ac_path_SED
8452
  # Check for GNU $ac_path_SED
Lines 7689-7701 Link Here
7689
  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
8455
  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
7690
*)
8456
*)
7691
  ac_count=0
8457
  ac_count=0
7692
  $as_echo_n 0123456789 >"conftest.in"
8458
  printf %s 0123456789 >"conftest.in"
7693
  while :
8459
  while :
7694
  do
8460
  do
7695
    cat "conftest.in" "conftest.in" >"conftest.tmp"
8461
    cat "conftest.in" "conftest.in" >"conftest.tmp"
7696
    mv "conftest.tmp" "conftest.in"
8462
    mv "conftest.tmp" "conftest.in"
7697
    cp "conftest.in" "conftest.nl"
8463
    cp "conftest.in" "conftest.nl"
7698
    $as_echo '' >> "conftest.nl"
8464
    printf "%s\n" '' >> "conftest.nl"
7699
    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
8465
    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
7700
    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
8466
    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
7701
    as_fn_arith $ac_count + 1 && ac_count=$as_val
8467
    as_fn_arith $ac_count + 1 && ac_count=$as_val
Lines 7723-7730 Link Here
7723
fi
8489
fi
7724
8490
7725
fi
8491
fi
7726
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
8492
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
7727
$as_echo "$ac_cv_path_SED" >&6; }
8493
printf "%s\n" "$ac_cv_path_SED" >&6; }
7728
 SED="$ac_cv_path_SED"
8494
 SED="$ac_cv_path_SED"
7729
  rm -f conftest.sed
8495
  rm -f conftest.sed
7730
8496
Lines 7741-7751 Link Here
7741
8507
7742
8508
7743
8509
7744
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
8510
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
7745
$as_echo_n "checking for fgrep... " >&6; }
8511
printf %s "checking for fgrep... " >&6; }
7746
if ${ac_cv_path_FGREP+:} false; then :
8512
if test ${ac_cv_path_FGREP+y}
7747
  $as_echo_n "(cached) " >&6
8513
then :
7748
else
8514
  printf %s "(cached) " >&6
8515
else $as_nop
7749
  if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
8516
  if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
7750
   then ac_cv_path_FGREP="$GREP -F"
8517
   then ac_cv_path_FGREP="$GREP -F"
7751
   else
8518
   else
Lines 7756-7765 Link Here
7756
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
8523
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
7757
do
8524
do
7758
  IFS=$as_save_IFS
8525
  IFS=$as_save_IFS
7759
  test -z "$as_dir" && as_dir=.
8526
  case $as_dir in #(((
7760
    for ac_prog in fgrep; do
8527
    '') as_dir=./ ;;
8528
    */) ;;
8529
    *) as_dir=$as_dir/ ;;
8530
  esac
8531
    for ac_prog in fgrep
8532
   do
7761
    for ac_exec_ext in '' $ac_executable_extensions; do
8533
    for ac_exec_ext in '' $ac_executable_extensions; do
7762
      ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
8534
      ac_path_FGREP="$as_dir$ac_prog$ac_exec_ext"
7763
      as_fn_executable_p "$ac_path_FGREP" || continue
8535
      as_fn_executable_p "$ac_path_FGREP" || continue
7764
# Check for GNU ac_path_FGREP and select it if it is found.
8536
# Check for GNU ac_path_FGREP and select it if it is found.
7765
  # Check for GNU $ac_path_FGREP
8537
  # Check for GNU $ac_path_FGREP
Lines 7768-7780 Link Here
7768
  ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
8540
  ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
7769
*)
8541
*)
7770
  ac_count=0
8542
  ac_count=0
7771
  $as_echo_n 0123456789 >"conftest.in"
8543
  printf %s 0123456789 >"conftest.in"
7772
  while :
8544
  while :
7773
  do
8545
  do
7774
    cat "conftest.in" "conftest.in" >"conftest.tmp"
8546
    cat "conftest.in" "conftest.in" >"conftest.tmp"
7775
    mv "conftest.tmp" "conftest.in"
8547
    mv "conftest.tmp" "conftest.in"
7776
    cp "conftest.in" "conftest.nl"
8548
    cp "conftest.in" "conftest.nl"
7777
    $as_echo 'FGREP' >> "conftest.nl"
8549
    printf "%s\n" 'FGREP' >> "conftest.nl"
7778
    "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
8550
    "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
7779
    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
8551
    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
7780
    as_fn_arith $ac_count + 1 && ac_count=$as_val
8552
    as_fn_arith $ac_count + 1 && ac_count=$as_val
Lines 7803-7810 Link Here
7803
8575
7804
   fi
8576
   fi
7805
fi
8577
fi
7806
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
8578
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
7807
$as_echo "$ac_cv_path_FGREP" >&6; }
8579
printf "%s\n" "$ac_cv_path_FGREP" >&6; }
7808
 FGREP="$ac_cv_path_FGREP"
8580
 FGREP="$ac_cv_path_FGREP"
7809
8581
7810
8582
Lines 7829-7845 Link Here
7829
8601
7830
8602
7831
# Check whether --with-gnu-ld was given.
8603
# Check whether --with-gnu-ld was given.
7832
if test "${with_gnu_ld+set}" = set; then :
8604
if test ${with_gnu_ld+y}
8605
then :
7833
  withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
8606
  withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
7834
else
8607
else $as_nop
7835
  with_gnu_ld=no
8608
  with_gnu_ld=no
7836
fi
8609
fi
7837
8610
7838
ac_prog=ld
8611
ac_prog=ld
7839
if test yes = "$GCC"; then
8612
if test yes = "$GCC"; then
7840
  # Check if gcc -print-prog-name=ld gives a path.
8613
  # Check if gcc -print-prog-name=ld gives a path.
7841
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
8614
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
7842
$as_echo_n "checking for ld used by $CC... " >&6; }
8615
printf %s "checking for ld used by $CC... " >&6; }
7843
  case $host in
8616
  case $host in
7844
  *-*-mingw*)
8617
  *-*-mingw*)
7845
    # gcc leaves a trailing carriage return, which upsets mingw
8618
    # gcc leaves a trailing carriage return, which upsets mingw
Lines 7868-7882 Link Here
7868
    ;;
8641
    ;;
7869
  esac
8642
  esac
7870
elif test yes = "$with_gnu_ld"; then
8643
elif test yes = "$with_gnu_ld"; then
7871
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
8644
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
7872
$as_echo_n "checking for GNU ld... " >&6; }
8645
printf %s "checking for GNU ld... " >&6; }
7873
else
8646
else
7874
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
8647
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
7875
$as_echo_n "checking for non-GNU ld... " >&6; }
8648
printf %s "checking for non-GNU ld... " >&6; }
7876
fi
8649
fi
7877
if ${lt_cv_path_LD+:} false; then :
8650
if test ${lt_cv_path_LD+y}
7878
  $as_echo_n "(cached) " >&6
8651
then :
7879
else
8652
  printf %s "(cached) " >&6
8653
else $as_nop
7880
  if test -z "$LD"; then
8654
  if test -z "$LD"; then
7881
  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
8655
  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
7882
  for ac_dir in $PATH; do
8656
  for ac_dir in $PATH; do
Lines 7905-7922 Link Here
7905
8679
7906
LD=$lt_cv_path_LD
8680
LD=$lt_cv_path_LD
7907
if test -n "$LD"; then
8681
if test -n "$LD"; then
7908
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
8682
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
7909
$as_echo "$LD" >&6; }
8683
printf "%s\n" "$LD" >&6; }
7910
else
8684
else
7911
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
8685
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
7912
$as_echo "no" >&6; }
8686
printf "%s\n" "no" >&6; }
7913
fi
8687
fi
7914
test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
8688
test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
7915
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
8689
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
7916
$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
8690
printf %s "checking if the linker ($LD) is GNU ld... " >&6; }
7917
if ${lt_cv_prog_gnu_ld+:} false; then :
8691
if test ${lt_cv_prog_gnu_ld+y}
7918
  $as_echo_n "(cached) " >&6
8692
then :
7919
else
8693
  printf %s "(cached) " >&6
8694
else $as_nop
7920
  # I'd rather use --version here, but apparently some GNU lds only accept -v.
8695
  # I'd rather use --version here, but apparently some GNU lds only accept -v.
7921
case `$LD -v 2>&1 </dev/null` in
8696
case `$LD -v 2>&1 </dev/null` in
7922
*GNU* | *'with BFD'*)
8697
*GNU* | *'with BFD'*)
Lines 7927-7934 Link Here
7927
  ;;
8702
  ;;
7928
esac
8703
esac
7929
fi
8704
fi
7930
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
8705
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
7931
$as_echo "$lt_cv_prog_gnu_ld" >&6; }
8706
printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; }
7932
with_gnu_ld=$lt_cv_prog_gnu_ld
8707
with_gnu_ld=$lt_cv_prog_gnu_ld
7933
8708
7934
8709
Lines 7939-7949 Link Here
7939
8714
7940
8715
7941
8716
7942
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
8717
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
7943
$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
8718
printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
7944
if ${lt_cv_path_NM+:} false; then :
8719
if test ${lt_cv_path_NM+y}
7945
  $as_echo_n "(cached) " >&6
8720
then :
7946
else
8721
  printf %s "(cached) " >&6
8722
else $as_nop
7947
  if test -n "$NM"; then
8723
  if test -n "$NM"; then
7948
  # Let the user override the test.
8724
  # Let the user override the test.
7949
  lt_cv_path_NM=$NM
8725
  lt_cv_path_NM=$NM
Lines 7968-7980 Link Here
7968
	mingw*) lt_bad_file=conftest.nm/nofile ;;
8744
	mingw*) lt_bad_file=conftest.nm/nofile ;;
7969
	*) lt_bad_file=/dev/null ;;
8745
	*) lt_bad_file=/dev/null ;;
7970
	esac
8746
	esac
7971
	case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
8747
	case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in
7972
	*$lt_bad_file* | *'Invalid file or object type'*)
8748
	*$lt_bad_file* | *'Invalid file or object type'*)
7973
	  lt_cv_path_NM="$tmp_nm -B"
8749
	  lt_cv_path_NM="$tmp_nm -B"
7974
	  break 2
8750
	  break 2
7975
	  ;;
8751
	  ;;
7976
	*)
8752
	*)
7977
	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
8753
	  case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in
7978
	  */dev/null*)
8754
	  */dev/null*)
7979
	    lt_cv_path_NM="$tmp_nm -p"
8755
	    lt_cv_path_NM="$tmp_nm -p"
7980
	    break 2
8756
	    break 2
Lines 7993-8000 Link Here
7993
  : ${lt_cv_path_NM=no}
8769
  : ${lt_cv_path_NM=no}
7994
fi
8770
fi
7995
fi
8771
fi
7996
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
8772
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
7997
$as_echo "$lt_cv_path_NM" >&6; }
8773
printf "%s\n" "$lt_cv_path_NM" >&6; }
7998
if test no != "$lt_cv_path_NM"; then
8774
if test no != "$lt_cv_path_NM"; then
7999
  NM=$lt_cv_path_NM
8775
  NM=$lt_cv_path_NM
8000
else
8776
else
Lines 8007-8017 Link Here
8007
  do
8783
  do
8008
    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
8784
    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
8009
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
8785
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
8010
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
8786
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
8011
$as_echo_n "checking for $ac_word... " >&6; }
8787
printf %s "checking for $ac_word... " >&6; }
8012
if ${ac_cv_prog_DUMPBIN+:} false; then :
8788
if test ${ac_cv_prog_DUMPBIN+y}
8013
  $as_echo_n "(cached) " >&6
8789
then :
8014
else
8790
  printf %s "(cached) " >&6
8791
else $as_nop
8015
  if test -n "$DUMPBIN"; then
8792
  if test -n "$DUMPBIN"; then
8016
  ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
8793
  ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
8017
else
8794
else
Lines 8019-8029 Link Here
8019
for as_dir in $PATH
8796
for as_dir in $PATH
8020
do
8797
do
8021
  IFS=$as_save_IFS
8798
  IFS=$as_save_IFS
8022
  test -z "$as_dir" && as_dir=.
8799
  case $as_dir in #(((
8800
    '') as_dir=./ ;;
8801
    */) ;;
8802
    *) as_dir=$as_dir/ ;;
8803
  esac
8023
    for ac_exec_ext in '' $ac_executable_extensions; do
8804
    for ac_exec_ext in '' $ac_executable_extensions; do
8024
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8805
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
8025
    ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
8806
    ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
8026
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
8807
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
8027
    break 2
8808
    break 2
8028
  fi
8809
  fi
8029
done
8810
done
Lines 8034-8044 Link Here
8034
fi
8815
fi
8035
DUMPBIN=$ac_cv_prog_DUMPBIN
8816
DUMPBIN=$ac_cv_prog_DUMPBIN
8036
if test -n "$DUMPBIN"; then
8817
if test -n "$DUMPBIN"; then
8037
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
8818
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
8038
$as_echo "$DUMPBIN" >&6; }
8819
printf "%s\n" "$DUMPBIN" >&6; }
8039
else
8820
else
8040
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
8821
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
8041
$as_echo "no" >&6; }
8822
printf "%s\n" "no" >&6; }
8042
fi
8823
fi
8043
8824
8044
8825
Lines 8051-8061 Link Here
8051
do
8832
do
8052
  # Extract the first word of "$ac_prog", so it can be a program name with args.
8833
  # Extract the first word of "$ac_prog", so it can be a program name with args.
8053
set dummy $ac_prog; ac_word=$2
8834
set dummy $ac_prog; ac_word=$2
8054
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
8835
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
8055
$as_echo_n "checking for $ac_word... " >&6; }
8836
printf %s "checking for $ac_word... " >&6; }
8056
if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
8837
if test ${ac_cv_prog_ac_ct_DUMPBIN+y}
8057
  $as_echo_n "(cached) " >&6
8838
then :
8058
else
8839
  printf %s "(cached) " >&6
8840
else $as_nop
8059
  if test -n "$ac_ct_DUMPBIN"; then
8841
  if test -n "$ac_ct_DUMPBIN"; then
8060
  ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
8842
  ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
8061
else
8843
else
Lines 8063-8073 Link Here
8063
for as_dir in $PATH
8845
for as_dir in $PATH
8064
do
8846
do
8065
  IFS=$as_save_IFS
8847
  IFS=$as_save_IFS
8066
  test -z "$as_dir" && as_dir=.
8848
  case $as_dir in #(((
8849
    '') as_dir=./ ;;
8850
    */) ;;
8851
    *) as_dir=$as_dir/ ;;
8852
  esac
8067
    for ac_exec_ext in '' $ac_executable_extensions; do
8853
    for ac_exec_ext in '' $ac_executable_extensions; do
8068
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8854
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
8069
    ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
8855
    ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
8070
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
8856
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
8071
    break 2
8857
    break 2
8072
  fi
8858
  fi
8073
done
8859
done
Lines 8078-8088 Link Here
8078
fi
8864
fi
8079
ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
8865
ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
8080
if test -n "$ac_ct_DUMPBIN"; then
8866
if test -n "$ac_ct_DUMPBIN"; then
8081
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
8867
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
8082
$as_echo "$ac_ct_DUMPBIN" >&6; }
8868
printf "%s\n" "$ac_ct_DUMPBIN" >&6; }
8083
else
8869
else
8084
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
8870
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
8085
$as_echo "no" >&6; }
8871
printf "%s\n" "no" >&6; }
8086
fi
8872
fi
8087
8873
8088
8874
Lines 8094-8108 Link Here
8094
  else
8880
  else
8095
    case $cross_compiling:$ac_tool_warned in
8881
    case $cross_compiling:$ac_tool_warned in
8096
yes:)
8882
yes:)
8097
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
8883
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
8098
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
8884
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
8099
ac_tool_warned=yes ;;
8885
ac_tool_warned=yes ;;
8100
esac
8886
esac
8101
    DUMPBIN=$ac_ct_DUMPBIN
8887
    DUMPBIN=$ac_ct_DUMPBIN
8102
  fi
8888
  fi
8103
fi
8889
fi
8104
8890
8105
    case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
8891
    case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in
8106
    *COFF*)
8892
    *COFF*)
8107
      DUMPBIN="$DUMPBIN -symbols -headers"
8893
      DUMPBIN="$DUMPBIN -symbols -headers"
8108
      ;;
8894
      ;;
Lines 8123-8133 Link Here
8123
8909
8124
8910
8125
8911
8126
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
8912
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
8127
$as_echo_n "checking the name lister ($NM) interface... " >&6; }
8913
printf %s "checking the name lister ($NM) interface... " >&6; }
8128
if ${lt_cv_nm_interface+:} false; then :
8914
if test ${lt_cv_nm_interface+y}
8129
  $as_echo_n "(cached) " >&6
8915
then :
8130
else
8916
  printf %s "(cached) " >&6
8917
else $as_nop
8131
  lt_cv_nm_interface="BSD nm"
8918
  lt_cv_nm_interface="BSD nm"
8132
  echo "int some_variable = 0;" > conftest.$ac_ext
8919
  echo "int some_variable = 0;" > conftest.$ac_ext
8133
  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
8920
  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
Lines 8143-8157 Link Here
8143
  fi
8930
  fi
8144
  rm -f conftest*
8931
  rm -f conftest*
8145
fi
8932
fi
8146
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
8933
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
8147
$as_echo "$lt_cv_nm_interface" >&6; }
8934
printf "%s\n" "$lt_cv_nm_interface" >&6; }
8148
8935
8149
# find the maximum length of command line arguments
8936
# find the maximum length of command line arguments
8150
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
8937
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
8151
$as_echo_n "checking the maximum length of command line arguments... " >&6; }
8938
printf %s "checking the maximum length of command line arguments... " >&6; }
8152
if ${lt_cv_sys_max_cmd_len+:} false; then :
8939
if test ${lt_cv_sys_max_cmd_len+y}
8153
  $as_echo_n "(cached) " >&6
8940
then :
8154
else
8941
  printf %s "(cached) " >&6
8942
else $as_nop
8155
    i=0
8943
    i=0
8156
  teststring=ABCD
8944
  teststring=ABCD
8157
8945
Lines 8193-8199 Link Here
8193
    lt_cv_sys_max_cmd_len=8192;
8981
    lt_cv_sys_max_cmd_len=8192;
8194
    ;;
8982
    ;;
8195
8983
8196
  bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
8984
  bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*)
8197
    # This has been around since 386BSD, at least.  Likely further.
8985
    # This has been around since 386BSD, at least.  Likely further.
8198
    if test -x /sbin/sysctl; then
8986
    if test -x /sbin/sysctl; then
8199
      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
8987
      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
Lines 8236-8242 Link Here
8236
  sysv5* | sco5v6* | sysv4.2uw2*)
9024
  sysv5* | sco5v6* | sysv4.2uw2*)
8237
    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
9025
    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
8238
    if test -n "$kargmax"; then
9026
    if test -n "$kargmax"; then
8239
      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[	 ]//'`
9027
      lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[	 ]//'`
8240
    else
9028
    else
8241
      lt_cv_sys_max_cmd_len=32768
9029
      lt_cv_sys_max_cmd_len=32768
8242
    fi
9030
    fi
Lines 8278-8288 Link Here
8278
fi
9066
fi
8279
9067
8280
if test -n "$lt_cv_sys_max_cmd_len"; then
9068
if test -n "$lt_cv_sys_max_cmd_len"; then
8281
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
9069
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
8282
$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
9070
printf "%s\n" "$lt_cv_sys_max_cmd_len" >&6; }
8283
else
9071
else
8284
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
9072
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5
8285
$as_echo "none" >&6; }
9073
printf "%s\n" "none" >&6; }
8286
fi
9074
fi
8287
max_cmd_len=$lt_cv_sys_max_cmd_len
9075
max_cmd_len=$lt_cv_sys_max_cmd_len
8288
9076
Lines 8326-8336 Link Here
8326
9114
8327
9115
8328
9116
8329
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
9117
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
8330
$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
9118
printf %s "checking how to convert $build file names to $host format... " >&6; }
8331
if ${lt_cv_to_host_file_cmd+:} false; then :
9119
if test ${lt_cv_to_host_file_cmd+y}
8332
  $as_echo_n "(cached) " >&6
9120
then :
8333
else
9121
  printf %s "(cached) " >&6
9122
else $as_nop
8334
  case $host in
9123
  case $host in
8335
  *-*-mingw* )
9124
  *-*-mingw* )
8336
    case $build in
9125
    case $build in
Lines 8366-8383 Link Here
8366
fi
9155
fi
8367
9156
8368
to_host_file_cmd=$lt_cv_to_host_file_cmd
9157
to_host_file_cmd=$lt_cv_to_host_file_cmd
8369
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
9158
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
8370
$as_echo "$lt_cv_to_host_file_cmd" >&6; }
9159
printf "%s\n" "$lt_cv_to_host_file_cmd" >&6; }
8371
9160
8372
9161
8373
9162
8374
9163
8375
9164
8376
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
9165
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
8377
$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
9166
printf %s "checking how to convert $build file names to toolchain format... " >&6; }
8378
if ${lt_cv_to_tool_file_cmd+:} false; then :
9167
if test ${lt_cv_to_tool_file_cmd+y}
8379
  $as_echo_n "(cached) " >&6
9168
then :
8380
else
9169
  printf %s "(cached) " >&6
9170
else $as_nop
8381
  #assume ordinary cross tools, or native build.
9171
  #assume ordinary cross tools, or native build.
8382
lt_cv_to_tool_file_cmd=func_convert_file_noop
9172
lt_cv_to_tool_file_cmd=func_convert_file_noop
8383
case $host in
9173
case $host in
Lines 8393-8414 Link Here
8393
fi
9183
fi
8394
9184
8395
to_tool_file_cmd=$lt_cv_to_tool_file_cmd
9185
to_tool_file_cmd=$lt_cv_to_tool_file_cmd
8396
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
9186
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
8397
$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
9187
printf "%s\n" "$lt_cv_to_tool_file_cmd" >&6; }
8398
9188
8399
9189
8400
9190
8401
9191
8402
9192
8403
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
9193
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
8404
$as_echo_n "checking for $LD option to reload object files... " >&6; }
9194
printf %s "checking for $LD option to reload object files... " >&6; }
8405
if ${lt_cv_ld_reload_flag+:} false; then :
9195
if test ${lt_cv_ld_reload_flag+y}
8406
  $as_echo_n "(cached) " >&6
9196
then :
8407
else
9197
  printf %s "(cached) " >&6
9198
else $as_nop
8408
  lt_cv_ld_reload_flag='-r'
9199
  lt_cv_ld_reload_flag='-r'
8409
fi
9200
fi
8410
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
9201
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
8411
$as_echo "$lt_cv_ld_reload_flag" >&6; }
9202
printf "%s\n" "$lt_cv_ld_reload_flag" >&6; }
8412
reload_flag=$lt_cv_ld_reload_flag
9203
reload_flag=$lt_cv_ld_reload_flag
8413
case $reload_flag in
9204
case $reload_flag in
8414
"" | " "*) ;;
9205
"" | " "*) ;;
Lines 8439-8451 Link Here
8439
9230
8440
9231
8441
if test -n "$ac_tool_prefix"; then
9232
if test -n "$ac_tool_prefix"; then
9233
  # Extract the first word of "${ac_tool_prefix}file", so it can be a program name with args.
9234
set dummy ${ac_tool_prefix}file; ac_word=$2
9235
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
9236
printf %s "checking for $ac_word... " >&6; }
9237
if test ${ac_cv_prog_FILECMD+y}
9238
then :
9239
  printf %s "(cached) " >&6
9240
else $as_nop
9241
  if test -n "$FILECMD"; then
9242
  ac_cv_prog_FILECMD="$FILECMD" # Let the user override the test.
9243
else
9244
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9245
for as_dir in $PATH
9246
do
9247
  IFS=$as_save_IFS
9248
  case $as_dir in #(((
9249
    '') as_dir=./ ;;
9250
    */) ;;
9251
    *) as_dir=$as_dir/ ;;
9252
  esac
9253
    for ac_exec_ext in '' $ac_executable_extensions; do
9254
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
9255
    ac_cv_prog_FILECMD="${ac_tool_prefix}file"
9256
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
9257
    break 2
9258
  fi
9259
done
9260
  done
9261
IFS=$as_save_IFS
9262
9263
fi
9264
fi
9265
FILECMD=$ac_cv_prog_FILECMD
9266
if test -n "$FILECMD"; then
9267
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FILECMD" >&5
9268
printf "%s\n" "$FILECMD" >&6; }
9269
else
9270
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
9271
printf "%s\n" "no" >&6; }
9272
fi
9273
9274
9275
fi
9276
if test -z "$ac_cv_prog_FILECMD"; then
9277
  ac_ct_FILECMD=$FILECMD
9278
  # Extract the first word of "file", so it can be a program name with args.
9279
set dummy file; ac_word=$2
9280
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
9281
printf %s "checking for $ac_word... " >&6; }
9282
if test ${ac_cv_prog_ac_ct_FILECMD+y}
9283
then :
9284
  printf %s "(cached) " >&6
9285
else $as_nop
9286
  if test -n "$ac_ct_FILECMD"; then
9287
  ac_cv_prog_ac_ct_FILECMD="$ac_ct_FILECMD" # Let the user override the test.
9288
else
9289
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9290
for as_dir in $PATH
9291
do
9292
  IFS=$as_save_IFS
9293
  case $as_dir in #(((
9294
    '') as_dir=./ ;;
9295
    */) ;;
9296
    *) as_dir=$as_dir/ ;;
9297
  esac
9298
    for ac_exec_ext in '' $ac_executable_extensions; do
9299
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
9300
    ac_cv_prog_ac_ct_FILECMD="file"
9301
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
9302
    break 2
9303
  fi
9304
done
9305
  done
9306
IFS=$as_save_IFS
9307
9308
fi
9309
fi
9310
ac_ct_FILECMD=$ac_cv_prog_ac_ct_FILECMD
9311
if test -n "$ac_ct_FILECMD"; then
9312
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FILECMD" >&5
9313
printf "%s\n" "$ac_ct_FILECMD" >&6; }
9314
else
9315
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
9316
printf "%s\n" "no" >&6; }
9317
fi
9318
9319
  if test "x$ac_ct_FILECMD" = x; then
9320
    FILECMD=":"
9321
  else
9322
    case $cross_compiling:$ac_tool_warned in
9323
yes:)
9324
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
9325
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
9326
ac_tool_warned=yes ;;
9327
esac
9328
    FILECMD=$ac_ct_FILECMD
9329
  fi
9330
else
9331
  FILECMD="$ac_cv_prog_FILECMD"
9332
fi
9333
9334
9335
9336
9337
9338
9339
9340
if test -n "$ac_tool_prefix"; then
8442
  # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
9341
  # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
8443
set dummy ${ac_tool_prefix}objdump; ac_word=$2
9342
set dummy ${ac_tool_prefix}objdump; ac_word=$2
8444
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
9343
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
8445
$as_echo_n "checking for $ac_word... " >&6; }
9344
printf %s "checking for $ac_word... " >&6; }
8446
if ${ac_cv_prog_OBJDUMP+:} false; then :
9345
if test ${ac_cv_prog_OBJDUMP+y}
8447
  $as_echo_n "(cached) " >&6
9346
then :
8448
else
9347
  printf %s "(cached) " >&6
9348
else $as_nop
8449
  if test -n "$OBJDUMP"; then
9349
  if test -n "$OBJDUMP"; then
8450
  ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
9350
  ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
8451
else
9351
else
Lines 8453-8463 Link Here
8453
for as_dir in $PATH
9353
for as_dir in $PATH
8454
do
9354
do
8455
  IFS=$as_save_IFS
9355
  IFS=$as_save_IFS
8456
  test -z "$as_dir" && as_dir=.
9356
  case $as_dir in #(((
9357
    '') as_dir=./ ;;
9358
    */) ;;
9359
    *) as_dir=$as_dir/ ;;
9360
  esac
8457
    for ac_exec_ext in '' $ac_executable_extensions; do
9361
    for ac_exec_ext in '' $ac_executable_extensions; do
8458
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9362
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
8459
    ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
9363
    ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
8460
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
9364
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
8461
    break 2
9365
    break 2
8462
  fi
9366
  fi
8463
done
9367
done
Lines 8468-8478 Link Here
8468
fi
9372
fi
8469
OBJDUMP=$ac_cv_prog_OBJDUMP
9373
OBJDUMP=$ac_cv_prog_OBJDUMP
8470
if test -n "$OBJDUMP"; then
9374
if test -n "$OBJDUMP"; then
8471
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
9375
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
8472
$as_echo "$OBJDUMP" >&6; }
9376
printf "%s\n" "$OBJDUMP" >&6; }
8473
else
9377
else
8474
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
9378
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
8475
$as_echo "no" >&6; }
9379
printf "%s\n" "no" >&6; }
8476
fi
9380
fi
8477
9381
8478
9382
Lines 8481-8491 Link Here
8481
  ac_ct_OBJDUMP=$OBJDUMP
9385
  ac_ct_OBJDUMP=$OBJDUMP
8482
  # Extract the first word of "objdump", so it can be a program name with args.
9386
  # Extract the first word of "objdump", so it can be a program name with args.
8483
set dummy objdump; ac_word=$2
9387
set dummy objdump; ac_word=$2
8484
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
9388
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
8485
$as_echo_n "checking for $ac_word... " >&6; }
9389
printf %s "checking for $ac_word... " >&6; }
8486
if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
9390
if test ${ac_cv_prog_ac_ct_OBJDUMP+y}
8487
  $as_echo_n "(cached) " >&6
9391
then :
8488
else
9392
  printf %s "(cached) " >&6
9393
else $as_nop
8489
  if test -n "$ac_ct_OBJDUMP"; then
9394
  if test -n "$ac_ct_OBJDUMP"; then
8490
  ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
9395
  ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
8491
else
9396
else
Lines 8493-8503 Link Here
8493
for as_dir in $PATH
9398
for as_dir in $PATH
8494
do
9399
do
8495
  IFS=$as_save_IFS
9400
  IFS=$as_save_IFS
8496
  test -z "$as_dir" && as_dir=.
9401
  case $as_dir in #(((
9402
    '') as_dir=./ ;;
9403
    */) ;;
9404
    *) as_dir=$as_dir/ ;;
9405
  esac
8497
    for ac_exec_ext in '' $ac_executable_extensions; do
9406
    for ac_exec_ext in '' $ac_executable_extensions; do
8498
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9407
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
8499
    ac_cv_prog_ac_ct_OBJDUMP="objdump"
9408
    ac_cv_prog_ac_ct_OBJDUMP="objdump"
8500
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
9409
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
8501
    break 2
9410
    break 2
8502
  fi
9411
  fi
8503
done
9412
done
Lines 8508-8518 Link Here
8508
fi
9417
fi
8509
ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
9418
ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
8510
if test -n "$ac_ct_OBJDUMP"; then
9419
if test -n "$ac_ct_OBJDUMP"; then
8511
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
9420
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
8512
$as_echo "$ac_ct_OBJDUMP" >&6; }
9421
printf "%s\n" "$ac_ct_OBJDUMP" >&6; }
8513
else
9422
else
8514
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
9423
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
8515
$as_echo "no" >&6; }
9424
printf "%s\n" "no" >&6; }
8516
fi
9425
fi
8517
9426
8518
  if test "x$ac_ct_OBJDUMP" = x; then
9427
  if test "x$ac_ct_OBJDUMP" = x; then
Lines 8520-8527 Link Here
8520
  else
9429
  else
8521
    case $cross_compiling:$ac_tool_warned in
9430
    case $cross_compiling:$ac_tool_warned in
8522
yes:)
9431
yes:)
8523
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
9432
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
8524
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
9433
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
8525
ac_tool_warned=yes ;;
9434
ac_tool_warned=yes ;;
8526
esac
9435
esac
8527
    OBJDUMP=$ac_ct_OBJDUMP
9436
    OBJDUMP=$ac_ct_OBJDUMP
Lines 8537-8547 Link Here
8537
9446
8538
9447
8539
9448
8540
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
9449
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
8541
$as_echo_n "checking how to recognize dependent libraries... " >&6; }
9450
printf %s "checking how to recognize dependent libraries... " >&6; }
8542
if ${lt_cv_deplibs_check_method+:} false; then :
9451
if test ${lt_cv_deplibs_check_method+y}
8543
  $as_echo_n "(cached) " >&6
9452
then :
8544
else
9453
  printf %s "(cached) " >&6
9454
else $as_nop
8545
  lt_cv_file_magic_cmd='$MAGIC_CMD'
9455
  lt_cv_file_magic_cmd='$MAGIC_CMD'
8546
lt_cv_file_magic_test_file=
9456
lt_cv_file_magic_test_file=
8547
lt_cv_deplibs_check_method='unknown'
9457
lt_cv_deplibs_check_method='unknown'
Lines 8567-8573 Link Here
8567
9477
8568
bsdi[45]*)
9478
bsdi[45]*)
8569
  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
9479
  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
8570
  lt_cv_file_magic_cmd='/usr/bin/file -L'
9480
  lt_cv_file_magic_cmd='$FILECMD -L'
8571
  lt_cv_file_magic_test_file=/shlib/libc.so
9481
  lt_cv_file_magic_test_file=/shlib/libc.so
8572
  ;;
9482
  ;;
8573
9483
Lines 8601-8614 Link Here
8601
  lt_cv_deplibs_check_method=pass_all
9511
  lt_cv_deplibs_check_method=pass_all
8602
  ;;
9512
  ;;
8603
9513
8604
freebsd* | dragonfly*)
9514
freebsd* | dragonfly* | midnightbsd*)
8605
  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
9515
  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
8606
    case $host_cpu in
9516
    case $host_cpu in
8607
    i*86 )
9517
    i*86 )
8608
      # Not sure whether the presence of OpenBSD here was a mistake.
9518
      # Not sure whether the presence of OpenBSD here was a mistake.
8609
      # Let's accept both of them until this is cleared up.
9519
      # Let's accept both of them until this is cleared up.
8610
      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
9520
      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
8611
      lt_cv_file_magic_cmd=/usr/bin/file
9521
      lt_cv_file_magic_cmd=$FILECMD
8612
      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
9522
      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
8613
      ;;
9523
      ;;
8614
    esac
9524
    esac
Lines 8622-8628 Link Here
8622
  ;;
9532
  ;;
8623
9533
8624
hpux10.20* | hpux11*)
9534
hpux10.20* | hpux11*)
8625
  lt_cv_file_magic_cmd=/usr/bin/file
9535
  lt_cv_file_magic_cmd=$FILECMD
8626
  case $host_cpu in
9536
  case $host_cpu in
8627
  ia64*)
9537
  ia64*)
8628
    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
9538
    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
Lines 8669-8675 Link Here
8669
9579
8670
newos6*)
9580
newos6*)
8671
  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
9581
  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
8672
  lt_cv_file_magic_cmd=/usr/bin/file
9582
  lt_cv_file_magic_cmd=$FILECMD
8673
  lt_cv_file_magic_test_file=/usr/lib/libnls.so
9583
  lt_cv_file_magic_test_file=/usr/lib/libnls.so
8674
  ;;
9584
  ;;
8675
9585
Lines 8737-8744 Link Here
8737
esac
9647
esac
8738
9648
8739
fi
9649
fi
8740
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
9650
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
8741
$as_echo "$lt_cv_deplibs_check_method" >&6; }
9651
printf "%s\n" "$lt_cv_deplibs_check_method" >&6; }
8742
9652
8743
file_magic_glob=
9653
file_magic_glob=
8744
want_nocaseglob=no
9654
want_nocaseglob=no
Lines 8782-8792 Link Here
8782
if test -n "$ac_tool_prefix"; then
9692
if test -n "$ac_tool_prefix"; then
8783
  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
9693
  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
8784
set dummy ${ac_tool_prefix}dlltool; ac_word=$2
9694
set dummy ${ac_tool_prefix}dlltool; ac_word=$2
8785
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
9695
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
8786
$as_echo_n "checking for $ac_word... " >&6; }
9696
printf %s "checking for $ac_word... " >&6; }
8787
if ${ac_cv_prog_DLLTOOL+:} false; then :
9697
if test ${ac_cv_prog_DLLTOOL+y}
8788
  $as_echo_n "(cached) " >&6
9698
then :
8789
else
9699
  printf %s "(cached) " >&6
9700
else $as_nop
8790
  if test -n "$DLLTOOL"; then
9701
  if test -n "$DLLTOOL"; then
8791
  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
9702
  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
8792
else
9703
else
Lines 8794-8804 Link Here
8794
for as_dir in $PATH
9705
for as_dir in $PATH
8795
do
9706
do
8796
  IFS=$as_save_IFS
9707
  IFS=$as_save_IFS
8797
  test -z "$as_dir" && as_dir=.
9708
  case $as_dir in #(((
9709
    '') as_dir=./ ;;
9710
    */) ;;
9711
    *) as_dir=$as_dir/ ;;
9712
  esac
8798
    for ac_exec_ext in '' $ac_executable_extensions; do
9713
    for ac_exec_ext in '' $ac_executable_extensions; do
8799
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9714
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
8800
    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
9715
    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
8801
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
9716
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
8802
    break 2
9717
    break 2
8803
  fi
9718
  fi
8804
done
9719
done
Lines 8809-8819 Link Here
8809
fi
9724
fi
8810
DLLTOOL=$ac_cv_prog_DLLTOOL
9725
DLLTOOL=$ac_cv_prog_DLLTOOL
8811
if test -n "$DLLTOOL"; then
9726
if test -n "$DLLTOOL"; then
8812
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
9727
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
8813
$as_echo "$DLLTOOL" >&6; }
9728
printf "%s\n" "$DLLTOOL" >&6; }
8814
else
9729
else
8815
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
9730
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
8816
$as_echo "no" >&6; }
9731
printf "%s\n" "no" >&6; }
8817
fi
9732
fi
8818
9733
8819
9734
Lines 8822-8832 Link Here
8822
  ac_ct_DLLTOOL=$DLLTOOL
9737
  ac_ct_DLLTOOL=$DLLTOOL
8823
  # Extract the first word of "dlltool", so it can be a program name with args.
9738
  # Extract the first word of "dlltool", so it can be a program name with args.
8824
set dummy dlltool; ac_word=$2
9739
set dummy dlltool; ac_word=$2
8825
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
9740
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
8826
$as_echo_n "checking for $ac_word... " >&6; }
9741
printf %s "checking for $ac_word... " >&6; }
8827
if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
9742
if test ${ac_cv_prog_ac_ct_DLLTOOL+y}
8828
  $as_echo_n "(cached) " >&6
9743
then :
8829
else
9744
  printf %s "(cached) " >&6
9745
else $as_nop
8830
  if test -n "$ac_ct_DLLTOOL"; then
9746
  if test -n "$ac_ct_DLLTOOL"; then
8831
  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
9747
  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
8832
else
9748
else
Lines 8834-8844 Link Here
8834
for as_dir in $PATH
9750
for as_dir in $PATH
8835
do
9751
do
8836
  IFS=$as_save_IFS
9752
  IFS=$as_save_IFS
8837
  test -z "$as_dir" && as_dir=.
9753
  case $as_dir in #(((
9754
    '') as_dir=./ ;;
9755
    */) ;;
9756
    *) as_dir=$as_dir/ ;;
9757
  esac
8838
    for ac_exec_ext in '' $ac_executable_extensions; do
9758
    for ac_exec_ext in '' $ac_executable_extensions; do
8839
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9759
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
8840
    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
9760
    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
8841
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
9761
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
8842
    break 2
9762
    break 2
8843
  fi
9763
  fi
8844
done
9764
done
Lines 8849-8859 Link Here
8849
fi
9769
fi
8850
ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
9770
ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
8851
if test -n "$ac_ct_DLLTOOL"; then
9771
if test -n "$ac_ct_DLLTOOL"; then
8852
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
9772
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
8853
$as_echo "$ac_ct_DLLTOOL" >&6; }
9773
printf "%s\n" "$ac_ct_DLLTOOL" >&6; }
8854
else
9774
else
8855
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
9775
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
8856
$as_echo "no" >&6; }
9776
printf "%s\n" "no" >&6; }
8857
fi
9777
fi
8858
9778
8859
  if test "x$ac_ct_DLLTOOL" = x; then
9779
  if test "x$ac_ct_DLLTOOL" = x; then
Lines 8861-8868 Link Here
8861
  else
9781
  else
8862
    case $cross_compiling:$ac_tool_warned in
9782
    case $cross_compiling:$ac_tool_warned in
8863
yes:)
9783
yes:)
8864
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
9784
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
8865
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
9785
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
8866
ac_tool_warned=yes ;;
9786
ac_tool_warned=yes ;;
8867
esac
9787
esac
8868
    DLLTOOL=$ac_ct_DLLTOOL
9788
    DLLTOOL=$ac_ct_DLLTOOL
Lines 8879-8889 Link Here
8879
9799
8880
9800
8881
9801
8882
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
9802
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
8883
$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
9803
printf %s "checking how to associate runtime and link libraries... " >&6; }
8884
if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
9804
if test ${lt_cv_sharedlib_from_linklib_cmd+y}
8885
  $as_echo_n "(cached) " >&6
9805
then :
8886
else
9806
  printf %s "(cached) " >&6
9807
else $as_nop
8887
  lt_cv_sharedlib_from_linklib_cmd='unknown'
9808
  lt_cv_sharedlib_from_linklib_cmd='unknown'
8888
9809
8889
case $host_os in
9810
case $host_os in
Lines 8906-8913 Link Here
8906
esac
9827
esac
8907
9828
8908
fi
9829
fi
8909
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
9830
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
8910
$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
9831
printf "%s\n" "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
8911
sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
9832
sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
8912
test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
9833
test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
8913
9834
Lines 8922-8932 Link Here
8922
  do
9843
  do
8923
    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
9844
    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
8924
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
9845
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
8925
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
9846
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
8926
$as_echo_n "checking for $ac_word... " >&6; }
9847
printf %s "checking for $ac_word... " >&6; }
8927
if ${ac_cv_prog_AR+:} false; then :
9848
if test ${ac_cv_prog_AR+y}
8928
  $as_echo_n "(cached) " >&6
9849
then :
8929
else
9850
  printf %s "(cached) " >&6
9851
else $as_nop
8930
  if test -n "$AR"; then
9852
  if test -n "$AR"; then
8931
  ac_cv_prog_AR="$AR" # Let the user override the test.
9853
  ac_cv_prog_AR="$AR" # Let the user override the test.
8932
else
9854
else
Lines 8934-8944 Link Here
8934
for as_dir in $PATH
9856
for as_dir in $PATH
8935
do
9857
do
8936
  IFS=$as_save_IFS
9858
  IFS=$as_save_IFS
8937
  test -z "$as_dir" && as_dir=.
9859
  case $as_dir in #(((
9860
    '') as_dir=./ ;;
9861
    */) ;;
9862
    *) as_dir=$as_dir/ ;;
9863
  esac
8938
    for ac_exec_ext in '' $ac_executable_extensions; do
9864
    for ac_exec_ext in '' $ac_executable_extensions; do
8939
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9865
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
8940
    ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
9866
    ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
8941
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
9867
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
8942
    break 2
9868
    break 2
8943
  fi
9869
  fi
8944
done
9870
done
Lines 8949-8959 Link Here
8949
fi
9875
fi
8950
AR=$ac_cv_prog_AR
9876
AR=$ac_cv_prog_AR
8951
if test -n "$AR"; then
9877
if test -n "$AR"; then
8952
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
9878
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
8953
$as_echo "$AR" >&6; }
9879
printf "%s\n" "$AR" >&6; }
8954
else
9880
else
8955
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
9881
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
8956
$as_echo "no" >&6; }
9882
printf "%s\n" "no" >&6; }
8957
fi
9883
fi
8958
9884
8959
9885
Lines 8966-8976 Link Here
8966
do
9892
do
8967
  # Extract the first word of "$ac_prog", so it can be a program name with args.
9893
  # Extract the first word of "$ac_prog", so it can be a program name with args.
8968
set dummy $ac_prog; ac_word=$2
9894
set dummy $ac_prog; ac_word=$2
8969
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
9895
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
8970
$as_echo_n "checking for $ac_word... " >&6; }
9896
printf %s "checking for $ac_word... " >&6; }
8971
if ${ac_cv_prog_ac_ct_AR+:} false; then :
9897
if test ${ac_cv_prog_ac_ct_AR+y}
8972
  $as_echo_n "(cached) " >&6
9898
then :
8973
else
9899
  printf %s "(cached) " >&6
9900
else $as_nop
8974
  if test -n "$ac_ct_AR"; then
9901
  if test -n "$ac_ct_AR"; then
8975
  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
9902
  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
8976
else
9903
else
Lines 8978-8988 Link Here
8978
for as_dir in $PATH
9905
for as_dir in $PATH
8979
do
9906
do
8980
  IFS=$as_save_IFS
9907
  IFS=$as_save_IFS
8981
  test -z "$as_dir" && as_dir=.
9908
  case $as_dir in #(((
9909
    '') as_dir=./ ;;
9910
    */) ;;
9911
    *) as_dir=$as_dir/ ;;
9912
  esac
8982
    for ac_exec_ext in '' $ac_executable_extensions; do
9913
    for ac_exec_ext in '' $ac_executable_extensions; do
8983
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9914
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
8984
    ac_cv_prog_ac_ct_AR="$ac_prog"
9915
    ac_cv_prog_ac_ct_AR="$ac_prog"
8985
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
9916
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
8986
    break 2
9917
    break 2
8987
  fi
9918
  fi
8988
done
9919
done
Lines 8993-9003 Link Here
8993
fi
9924
fi
8994
ac_ct_AR=$ac_cv_prog_ac_ct_AR
9925
ac_ct_AR=$ac_cv_prog_ac_ct_AR
8995
if test -n "$ac_ct_AR"; then
9926
if test -n "$ac_ct_AR"; then
8996
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
9927
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
8997
$as_echo "$ac_ct_AR" >&6; }
9928
printf "%s\n" "$ac_ct_AR" >&6; }
8998
else
9929
else
8999
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
9930
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
9000
$as_echo "no" >&6; }
9931
printf "%s\n" "no" >&6; }
9001
fi
9932
fi
9002
9933
9003
9934
Lines 9009-9016 Link Here
9009
  else
9940
  else
9010
    case $cross_compiling:$ac_tool_warned in
9941
    case $cross_compiling:$ac_tool_warned in
9011
yes:)
9942
yes:)
9012
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
9943
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
9013
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
9944
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
9014
ac_tool_warned=yes ;;
9945
ac_tool_warned=yes ;;
9015
esac
9946
esac
9016
    AR=$ac_ct_AR
9947
    AR=$ac_ct_AR
Lines 9046-9075 Link Here
9046
9977
9047
9978
9048
9979
9049
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
9980
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
9050
$as_echo_n "checking for archiver @FILE support... " >&6; }
9981
printf %s "checking for archiver @FILE support... " >&6; }
9051
if ${lt_cv_ar_at_file+:} false; then :
9982
if test ${lt_cv_ar_at_file+y}
9052
  $as_echo_n "(cached) " >&6
9983
then :
9053
else
9984
  printf %s "(cached) " >&6
9985
else $as_nop
9054
  lt_cv_ar_at_file=no
9986
  lt_cv_ar_at_file=no
9055
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
9987
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
9056
/* end confdefs.h.  */
9988
/* end confdefs.h.  */
9057
9989
9058
int
9990
int
9059
main ()
9991
main (void)
9060
{
9992
{
9061
9993
9062
  ;
9994
  ;
9063
  return 0;
9995
  return 0;
9064
}
9996
}
9065
_ACEOF
9997
_ACEOF
9066
if ac_fn_c_try_compile "$LINENO"; then :
9998
if ac_fn_c_try_compile "$LINENO"
9999
then :
9067
  echo conftest.$ac_objext > conftest.lst
10000
  echo conftest.$ac_objext > conftest.lst
9068
      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
10001
      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
9069
      { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
10002
      { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
9070
  (eval $lt_ar_try) 2>&5
10003
  (eval $lt_ar_try) 2>&5
9071
  ac_status=$?
10004
  ac_status=$?
9072
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
10005
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
9073
  test $ac_status = 0; }
10006
  test $ac_status = 0; }
9074
      if test 0 -eq "$ac_status"; then
10007
      if test 0 -eq "$ac_status"; then
9075
	# Ensure the archiver fails upon bogus file names.
10008
	# Ensure the archiver fails upon bogus file names.
Lines 9077-9083 Link Here
9077
	{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
10010
	{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
9078
  (eval $lt_ar_try) 2>&5
10011
  (eval $lt_ar_try) 2>&5
9079
  ac_status=$?
10012
  ac_status=$?
9080
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
10013
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
9081
  test $ac_status = 0; }
10014
  test $ac_status = 0; }
9082
	if test 0 -ne "$ac_status"; then
10015
	if test 0 -ne "$ac_status"; then
9083
          lt_cv_ar_at_file=@
10016
          lt_cv_ar_at_file=@
Lines 9086-9096 Link Here
9086
      rm -f conftest.* libconftest.a
10019
      rm -f conftest.* libconftest.a
9087
10020
9088
fi
10021
fi
9089
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
10022
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
9090
10023
9091
fi
10024
fi
9092
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
10025
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
9093
$as_echo "$lt_cv_ar_at_file" >&6; }
10026
printf "%s\n" "$lt_cv_ar_at_file" >&6; }
9094
10027
9095
if test no = "$lt_cv_ar_at_file"; then
10028
if test no = "$lt_cv_ar_at_file"; then
9096
  archiver_list_spec=
10029
  archiver_list_spec=
Lines 9107-9117 Link Here
9107
if test -n "$ac_tool_prefix"; then
10040
if test -n "$ac_tool_prefix"; then
9108
  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
10041
  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
9109
set dummy ${ac_tool_prefix}strip; ac_word=$2
10042
set dummy ${ac_tool_prefix}strip; ac_word=$2
9110
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
10043
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
9111
$as_echo_n "checking for $ac_word... " >&6; }
10044
printf %s "checking for $ac_word... " >&6; }
9112
if ${ac_cv_prog_STRIP+:} false; then :
10045
if test ${ac_cv_prog_STRIP+y}
9113
  $as_echo_n "(cached) " >&6
10046
then :
9114
else
10047
  printf %s "(cached) " >&6
10048
else $as_nop
9115
  if test -n "$STRIP"; then
10049
  if test -n "$STRIP"; then
9116
  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
10050
  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
9117
else
10051
else
Lines 9119-9129 Link Here
9119
for as_dir in $PATH
10053
for as_dir in $PATH
9120
do
10054
do
9121
  IFS=$as_save_IFS
10055
  IFS=$as_save_IFS
9122
  test -z "$as_dir" && as_dir=.
10056
  case $as_dir in #(((
10057
    '') as_dir=./ ;;
10058
    */) ;;
10059
    *) as_dir=$as_dir/ ;;
10060
  esac
9123
    for ac_exec_ext in '' $ac_executable_extensions; do
10061
    for ac_exec_ext in '' $ac_executable_extensions; do
9124
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10062
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
9125
    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
10063
    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
9126
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
10064
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
9127
    break 2
10065
    break 2
9128
  fi
10066
  fi
9129
done
10067
done
Lines 9134-9144 Link Here
9134
fi
10072
fi
9135
STRIP=$ac_cv_prog_STRIP
10073
STRIP=$ac_cv_prog_STRIP
9136
if test -n "$STRIP"; then
10074
if test -n "$STRIP"; then
9137
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
10075
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
9138
$as_echo "$STRIP" >&6; }
10076
printf "%s\n" "$STRIP" >&6; }
9139
else
10077
else
9140
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
10078
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
9141
$as_echo "no" >&6; }
10079
printf "%s\n" "no" >&6; }
9142
fi
10080
fi
9143
10081
9144
10082
Lines 9147-9157 Link Here
9147
  ac_ct_STRIP=$STRIP
10085
  ac_ct_STRIP=$STRIP
9148
  # Extract the first word of "strip", so it can be a program name with args.
10086
  # Extract the first word of "strip", so it can be a program name with args.
9149
set dummy strip; ac_word=$2
10087
set dummy strip; ac_word=$2
9150
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
10088
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
9151
$as_echo_n "checking for $ac_word... " >&6; }
10089
printf %s "checking for $ac_word... " >&6; }
9152
if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
10090
if test ${ac_cv_prog_ac_ct_STRIP+y}
9153
  $as_echo_n "(cached) " >&6
10091
then :
9154
else
10092
  printf %s "(cached) " >&6
10093
else $as_nop
9155
  if test -n "$ac_ct_STRIP"; then
10094
  if test -n "$ac_ct_STRIP"; then
9156
  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
10095
  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
9157
else
10096
else
Lines 9159-9169 Link Here
9159
for as_dir in $PATH
10098
for as_dir in $PATH
9160
do
10099
do
9161
  IFS=$as_save_IFS
10100
  IFS=$as_save_IFS
9162
  test -z "$as_dir" && as_dir=.
10101
  case $as_dir in #(((
10102
    '') as_dir=./ ;;
10103
    */) ;;
10104
    *) as_dir=$as_dir/ ;;
10105
  esac
9163
    for ac_exec_ext in '' $ac_executable_extensions; do
10106
    for ac_exec_ext in '' $ac_executable_extensions; do
9164
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10107
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
9165
    ac_cv_prog_ac_ct_STRIP="strip"
10108
    ac_cv_prog_ac_ct_STRIP="strip"
9166
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
10109
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
9167
    break 2
10110
    break 2
9168
  fi
10111
  fi
9169
done
10112
done
Lines 9174-9184 Link Here
9174
fi
10117
fi
9175
ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
10118
ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
9176
if test -n "$ac_ct_STRIP"; then
10119
if test -n "$ac_ct_STRIP"; then
9177
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
10120
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
9178
$as_echo "$ac_ct_STRIP" >&6; }
10121
printf "%s\n" "$ac_ct_STRIP" >&6; }
9179
else
10122
else
9180
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
10123
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
9181
$as_echo "no" >&6; }
10124
printf "%s\n" "no" >&6; }
9182
fi
10125
fi
9183
10126
9184
  if test "x$ac_ct_STRIP" = x; then
10127
  if test "x$ac_ct_STRIP" = x; then
Lines 9186-9193 Link Here
9186
  else
10129
  else
9187
    case $cross_compiling:$ac_tool_warned in
10130
    case $cross_compiling:$ac_tool_warned in
9188
yes:)
10131
yes:)
9189
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
10132
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
9190
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
10133
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
9191
ac_tool_warned=yes ;;
10134
ac_tool_warned=yes ;;
9192
esac
10135
esac
9193
    STRIP=$ac_ct_STRIP
10136
    STRIP=$ac_ct_STRIP
Lines 9206-9216 Link Here
9206
if test -n "$ac_tool_prefix"; then
10149
if test -n "$ac_tool_prefix"; then
9207
  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
10150
  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
9208
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
10151
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
9209
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
10152
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
9210
$as_echo_n "checking for $ac_word... " >&6; }
10153
printf %s "checking for $ac_word... " >&6; }
9211
if ${ac_cv_prog_RANLIB+:} false; then :
10154
if test ${ac_cv_prog_RANLIB+y}
9212
  $as_echo_n "(cached) " >&6
10155
then :
9213
else
10156
  printf %s "(cached) " >&6
10157
else $as_nop
9214
  if test -n "$RANLIB"; then
10158
  if test -n "$RANLIB"; then
9215
  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
10159
  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
9216
else
10160
else
Lines 9218-9228 Link Here
9218
for as_dir in $PATH
10162
for as_dir in $PATH
9219
do
10163
do
9220
  IFS=$as_save_IFS
10164
  IFS=$as_save_IFS
9221
  test -z "$as_dir" && as_dir=.
10165
  case $as_dir in #(((
10166
    '') as_dir=./ ;;
10167
    */) ;;
10168
    *) as_dir=$as_dir/ ;;
10169
  esac
9222
    for ac_exec_ext in '' $ac_executable_extensions; do
10170
    for ac_exec_ext in '' $ac_executable_extensions; do
9223
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10171
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
9224
    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
10172
    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
9225
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
10173
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
9226
    break 2
10174
    break 2
9227
  fi
10175
  fi
9228
done
10176
done
Lines 9233-9243 Link Here
9233
fi
10181
fi
9234
RANLIB=$ac_cv_prog_RANLIB
10182
RANLIB=$ac_cv_prog_RANLIB
9235
if test -n "$RANLIB"; then
10183
if test -n "$RANLIB"; then
9236
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
10184
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
9237
$as_echo "$RANLIB" >&6; }
10185
printf "%s\n" "$RANLIB" >&6; }
9238
else
10186
else
9239
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
10187
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
9240
$as_echo "no" >&6; }
10188
printf "%s\n" "no" >&6; }
9241
fi
10189
fi
9242
10190
9243
10191
Lines 9246-9256 Link Here
9246
  ac_ct_RANLIB=$RANLIB
10194
  ac_ct_RANLIB=$RANLIB
9247
  # Extract the first word of "ranlib", so it can be a program name with args.
10195
  # Extract the first word of "ranlib", so it can be a program name with args.
9248
set dummy ranlib; ac_word=$2
10196
set dummy ranlib; ac_word=$2
9249
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
10197
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
9250
$as_echo_n "checking for $ac_word... " >&6; }
10198
printf %s "checking for $ac_word... " >&6; }
9251
if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
10199
if test ${ac_cv_prog_ac_ct_RANLIB+y}
9252
  $as_echo_n "(cached) " >&6
10200
then :
9253
else
10201
  printf %s "(cached) " >&6
10202
else $as_nop
9254
  if test -n "$ac_ct_RANLIB"; then
10203
  if test -n "$ac_ct_RANLIB"; then
9255
  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
10204
  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
9256
else
10205
else
Lines 9258-9268 Link Here
9258
for as_dir in $PATH
10207
for as_dir in $PATH
9259
do
10208
do
9260
  IFS=$as_save_IFS
10209
  IFS=$as_save_IFS
9261
  test -z "$as_dir" && as_dir=.
10210
  case $as_dir in #(((
10211
    '') as_dir=./ ;;
10212
    */) ;;
10213
    *) as_dir=$as_dir/ ;;
10214
  esac
9262
    for ac_exec_ext in '' $ac_executable_extensions; do
10215
    for ac_exec_ext in '' $ac_executable_extensions; do
9263
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
10216
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
9264
    ac_cv_prog_ac_ct_RANLIB="ranlib"
10217
    ac_cv_prog_ac_ct_RANLIB="ranlib"
9265
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
10218
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
9266
    break 2
10219
    break 2
9267
  fi
10220
  fi
9268
done
10221
done
Lines 9273-9283 Link Here
9273
fi
10226
fi
9274
ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
10227
ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
9275
if test -n "$ac_ct_RANLIB"; then
10228
if test -n "$ac_ct_RANLIB"; then
9276
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
10229
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
9277
$as_echo "$ac_ct_RANLIB" >&6; }
10230
printf "%s\n" "$ac_ct_RANLIB" >&6; }
9278
else
10231
else
9279
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
10232
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
9280
$as_echo "no" >&6; }
10233
printf "%s\n" "no" >&6; }
9281
fi
10234
fi
9282
10235
9283
  if test "x$ac_ct_RANLIB" = x; then
10236
  if test "x$ac_ct_RANLIB" = x; then
Lines 9285-9292 Link Here
9285
  else
10238
  else
9286
    case $cross_compiling:$ac_tool_warned in
10239
    case $cross_compiling:$ac_tool_warned in
9287
yes:)
10240
yes:)
9288
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
10241
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
9289
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
10242
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
9290
ac_tool_warned=yes ;;
10243
ac_tool_warned=yes ;;
9291
esac
10244
esac
9292
    RANLIB=$ac_ct_RANLIB
10245
    RANLIB=$ac_ct_RANLIB
Lines 9375-9385 Link Here
9375
10328
9376
10329
9377
# Check for command to grab the raw symbol name followed by C symbol from nm.
10330
# Check for command to grab the raw symbol name followed by C symbol from nm.
9378
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
10331
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
9379
$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
10332
printf %s "checking command to parse $NM output from $compiler object... " >&6; }
9380
if ${lt_cv_sys_global_symbol_pipe+:} false; then :
10333
if test ${lt_cv_sys_global_symbol_pipe+y}
9381
  $as_echo_n "(cached) " >&6
10334
then :
9382
else
10335
  printf %s "(cached) " >&6
10336
else $as_nop
9383
10337
9384
# These are sane defaults that work on at least a few old systems.
10338
# These are sane defaults that work on at least a few old systems.
9385
# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
10339
# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
Lines 9434-9440 Link Here
9434
10388
9435
if test "$lt_cv_nm_interface" = "MS dumpbin"; then
10389
if test "$lt_cv_nm_interface" = "MS dumpbin"; then
9436
  # Gets list of data symbols to import.
10390
  # Gets list of data symbols to import.
9437
  lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
10391
  lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'"
9438
  # Adjust the below global symbol transforms to fixup imported variables.
10392
  # Adjust the below global symbol transforms to fixup imported variables.
9439
  lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
10393
  lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
9440
  lt_c_name_hook=" -e 's/^I .* \(.*\)$/  {\"\1\", (void *) 0},/p'"
10394
  lt_c_name_hook=" -e 's/^I .* \(.*\)$/  {\"\1\", (void *) 0},/p'"
Lines 9452-9471 Link Here
9452
# Transform an extracted symbol line into a proper C declaration.
10406
# Transform an extracted symbol line into a proper C declaration.
9453
# Some systems (esp. on ia64) link data and code symbols differently,
10407
# Some systems (esp. on ia64) link data and code symbols differently,
9454
# so use this general approach.
10408
# so use this general approach.
9455
lt_cv_sys_global_symbol_to_cdecl="sed -n"\
10409
lt_cv_sys_global_symbol_to_cdecl="$SED -n"\
9456
$lt_cdecl_hook\
10410
$lt_cdecl_hook\
9457
" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
10411
" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
9458
" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
10412
" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
9459
10413
9460
# Transform an extracted symbol line into symbol name and symbol address
10414
# Transform an extracted symbol line into symbol name and symbol address
9461
lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
10415
lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\
9462
$lt_c_name_hook\
10416
$lt_c_name_hook\
9463
" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
10417
" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
9464
" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/p'"
10418
" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/p'"
9465
10419
9466
# Transform an extracted symbol line into symbol name with lib prefix and
10420
# Transform an extracted symbol line into symbol name with lib prefix and
9467
# symbol address.
10421
# symbol address.
9468
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
10422
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\
9469
$lt_c_name_lib_hook\
10423
$lt_c_name_lib_hook\
9470
" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
10424
" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
9471
" -e 's/^$symcode$symcode* .* \(lib.*\)$/  {\"\1\", (void *) \&\1},/p'"\
10425
" -e 's/^$symcode$symcode* .* \(lib.*\)$/  {\"\1\", (void *) \&\1},/p'"\
Lines 9507-9515 Link Here
9507
"     s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
10461
"     s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
9508
"     ' prfx=^$ac_symprfx"
10462
"     ' prfx=^$ac_symprfx"
9509
  else
10463
  else
9510
    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[	 ]\($symcode$symcode*\)[	 ][	 ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
10464
    lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[	 ]\($symcode$symcode*\)[	 ][	 ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
9511
  fi
10465
  fi
9512
  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
10466
  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'"
9513
10467
9514
  # Check to see that the pipe works correctly.
10468
  # Check to see that the pipe works correctly.
9515
  pipe_works=no
10469
  pipe_works=no
Lines 9531-9544 Link Here
9531
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
10485
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
9532
  (eval $ac_compile) 2>&5
10486
  (eval $ac_compile) 2>&5
9533
  ac_status=$?
10487
  ac_status=$?
9534
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
10488
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
9535
  test $ac_status = 0; }; then
10489
  test $ac_status = 0; }; then
9536
    # Now try to grab the symbols.
10490
    # Now try to grab the symbols.
9537
    nlist=conftest.nm
10491
    nlist=conftest.nm
9538
    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
10492
    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
9539
  (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
10493
  (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
9540
  ac_status=$?
10494
  ac_status=$?
9541
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
10495
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
9542
  test $ac_status = 0; } && test -s "$nlist"; then
10496
  test $ac_status = 0; } && test -s "$nlist"; then
9543
      # Try sorting and uniquifying the output.
10497
      # Try sorting and uniquifying the output.
9544
      if sort "$nlist" | uniq > "$nlist"T; then
10498
      if sort "$nlist" | uniq > "$nlist"T; then
Lines 9607-9613 Link Here
9607
	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
10561
	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
9608
  (eval $ac_link) 2>&5
10562
  (eval $ac_link) 2>&5
9609
  ac_status=$?
10563
  ac_status=$?
9610
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
10564
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
9611
  test $ac_status = 0; } && test -s conftest$ac_exeext; then
10565
  test $ac_status = 0; } && test -s conftest$ac_exeext; then
9612
	    pipe_works=yes
10566
	    pipe_works=yes
9613
	  fi
10567
	  fi
Lines 9642-9652 Link Here
9642
  lt_cv_sys_global_symbol_to_cdecl=
10596
  lt_cv_sys_global_symbol_to_cdecl=
9643
fi
10597
fi
9644
if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
10598
if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
9645
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
10599
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
9646
$as_echo "failed" >&6; }
10600
printf "%s\n" "failed" >&6; }
9647
else
10601
else
9648
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
10602
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
9649
$as_echo "ok" >&6; }
10603
printf "%s\n" "ok" >&6; }
9650
fi
10604
fi
9651
10605
9652
# Response file support.
10606
# Response file support.
Lines 9692-9704 Link Here
9692
10646
9693
10647
9694
10648
9695
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
10649
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
9696
$as_echo_n "checking for sysroot... " >&6; }
10650
printf %s "checking for sysroot... " >&6; }
9697
10651
9698
# Check whether --with-sysroot was given.
10652
# Check whether --with-sysroot was given.
9699
if test "${with_sysroot+set}" = set; then :
10653
if test ${with_sysroot+y}
10654
then :
9700
  withval=$with_sysroot;
10655
  withval=$with_sysroot;
9701
else
10656
else $as_nop
9702
  with_sysroot=no
10657
  with_sysroot=no
9703
fi
10658
fi
9704
10659
Lines 9711-9739 Link Here
9711
   fi
10666
   fi
9712
   ;; #(
10667
   ;; #(
9713
 /*)
10668
 /*)
9714
   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
10669
   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
9715
   ;; #(
10670
   ;; #(
9716
 no|'')
10671
 no|'')
9717
   ;; #(
10672
   ;; #(
9718
 *)
10673
 *)
9719
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
10674
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
9720
$as_echo "$with_sysroot" >&6; }
10675
printf "%s\n" "$with_sysroot" >&6; }
9721
   as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
10676
   as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
9722
   ;;
10677
   ;;
9723
esac
10678
esac
9724
10679
9725
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
10680
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
9726
$as_echo "${lt_sysroot:-no}" >&6; }
10681
printf "%s\n" "${lt_sysroot:-no}" >&6; }
9727
10682
9728
10683
9729
10684
9730
10685
9731
10686
9732
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
10687
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
9733
$as_echo_n "checking for a working dd... " >&6; }
10688
printf %s "checking for a working dd... " >&6; }
9734
if ${ac_cv_path_lt_DD+:} false; then :
10689
if test ${ac_cv_path_lt_DD+y}
9735
  $as_echo_n "(cached) " >&6
10690
then :
9736
else
10691
  printf %s "(cached) " >&6
10692
else $as_nop
9737
  printf 0123456789abcdef0123456789abcdef >conftest.i
10693
  printf 0123456789abcdef0123456789abcdef >conftest.i
9738
cat conftest.i conftest.i >conftest2.i
10694
cat conftest.i conftest.i >conftest2.i
9739
: ${lt_DD:=$DD}
10695
: ${lt_DD:=$DD}
Lines 9744-9753 Link Here
9744
for as_dir in $PATH
10700
for as_dir in $PATH
9745
do
10701
do
9746
  IFS=$as_save_IFS
10702
  IFS=$as_save_IFS
9747
  test -z "$as_dir" && as_dir=.
10703
  case $as_dir in #(((
9748
    for ac_prog in dd; do
10704
    '') as_dir=./ ;;
10705
    */) ;;
10706
    *) as_dir=$as_dir/ ;;
10707
  esac
10708
    for ac_prog in dd
10709
   do
9749
    for ac_exec_ext in '' $ac_executable_extensions; do
10710
    for ac_exec_ext in '' $ac_executable_extensions; do
9750
      ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext"
10711
      ac_path_lt_DD="$as_dir$ac_prog$ac_exec_ext"
9751
      as_fn_executable_p "$ac_path_lt_DD" || continue
10712
      as_fn_executable_p "$ac_path_lt_DD" || continue
9752
if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
10713
if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
9753
  cmp -s conftest.i conftest.out \
10714
  cmp -s conftest.i conftest.out \
Lines 9767-9781 Link Here
9767
10728
9768
rm -f conftest.i conftest2.i conftest.out
10729
rm -f conftest.i conftest2.i conftest.out
9769
fi
10730
fi
9770
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
10731
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
9771
$as_echo "$ac_cv_path_lt_DD" >&6; }
10732
printf "%s\n" "$ac_cv_path_lt_DD" >&6; }
9772
10733
9773
10734
9774
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
10735
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
9775
$as_echo_n "checking how to truncate binary pipes... " >&6; }
10736
printf %s "checking how to truncate binary pipes... " >&6; }
9776
if ${lt_cv_truncate_bin+:} false; then :
10737
if test ${lt_cv_truncate_bin+y}
9777
  $as_echo_n "(cached) " >&6
10738
then :
9778
else
10739
  printf %s "(cached) " >&6
10740
else $as_nop
9779
  printf 0123456789abcdef0123456789abcdef >conftest.i
10741
  printf 0123456789abcdef0123456789abcdef >conftest.i
9780
cat conftest.i conftest.i >conftest2.i
10742
cat conftest.i conftest.i >conftest2.i
9781
lt_cv_truncate_bin=
10743
lt_cv_truncate_bin=
Lines 9786-9793 Link Here
9786
rm -f conftest.i conftest2.i conftest.out
10748
rm -f conftest.i conftest2.i conftest.out
9787
test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
10749
test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
9788
fi
10750
fi
9789
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
10751
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
9790
$as_echo "$lt_cv_truncate_bin" >&6; }
10752
printf "%s\n" "$lt_cv_truncate_bin" >&6; }
9791
10753
9792
10754
9793
10755
Lines 9810-9816 Link Here
9810
}
10772
}
9811
10773
9812
# Check whether --enable-libtool-lock was given.
10774
# Check whether --enable-libtool-lock was given.
9813
if test "${enable_libtool_lock+set}" = set; then :
10775
if test ${enable_libtool_lock+y}
10776
then :
9814
  enableval=$enable_libtool_lock;
10777
  enableval=$enable_libtool_lock;
9815
fi
10778
fi
9816
10779
Lines 9826-9834 Link Here
9826
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
10789
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
9827
  (eval $ac_compile) 2>&5
10790
  (eval $ac_compile) 2>&5
9828
  ac_status=$?
10791
  ac_status=$?
9829
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
10792
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
9830
  test $ac_status = 0; }; then
10793
  test $ac_status = 0; }; then
9831
    case `/usr/bin/file conftest.$ac_objext` in
10794
    case `$FILECMD conftest.$ac_objext` in
9832
      *ELF-32*)
10795
      *ELF-32*)
9833
	HPUX_IA64_MODE=32
10796
	HPUX_IA64_MODE=32
9834
	;;
10797
	;;
Lines 9846-9855 Link Here
9846
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
10809
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
9847
  (eval $ac_compile) 2>&5
10810
  (eval $ac_compile) 2>&5
9848
  ac_status=$?
10811
  ac_status=$?
9849
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
10812
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
9850
  test $ac_status = 0; }; then
10813
  test $ac_status = 0; }; then
9851
    if test yes = "$lt_cv_prog_gnu_ld"; then
10814
    if test yes = "$lt_cv_prog_gnu_ld"; then
9852
      case `/usr/bin/file conftest.$ac_objext` in
10815
      case `$FILECMD conftest.$ac_objext` in
9853
	*32-bit*)
10816
	*32-bit*)
9854
	  LD="${LD-ld} -melf32bsmip"
10817
	  LD="${LD-ld} -melf32bsmip"
9855
	  ;;
10818
	  ;;
Lines 9861-9867 Link Here
9861
	;;
10824
	;;
9862
      esac
10825
      esac
9863
    else
10826
    else
9864
      case `/usr/bin/file conftest.$ac_objext` in
10827
      case `$FILECMD conftest.$ac_objext` in
9865
	*32-bit*)
10828
	*32-bit*)
9866
	  LD="${LD-ld} -32"
10829
	  LD="${LD-ld} -32"
9867
	  ;;
10830
	  ;;
Lines 9884-9893 Link Here
9884
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
10847
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
9885
  (eval $ac_compile) 2>&5
10848
  (eval $ac_compile) 2>&5
9886
  ac_status=$?
10849
  ac_status=$?
9887
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
10850
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
9888
  test $ac_status = 0; }; then
10851
  test $ac_status = 0; }; then
9889
    emul=elf
10852
    emul=elf
9890
    case `/usr/bin/file conftest.$ac_objext` in
10853
    case `$FILECMD conftest.$ac_objext` in
9891
      *32-bit*)
10854
      *32-bit*)
9892
	emul="${emul}32"
10855
	emul="${emul}32"
9893
	;;
10856
	;;
Lines 9895-9901 Link Here
9895
	emul="${emul}64"
10858
	emul="${emul}64"
9896
	;;
10859
	;;
9897
    esac
10860
    esac
9898
    case `/usr/bin/file conftest.$ac_objext` in
10861
    case `$FILECMD conftest.$ac_objext` in
9899
      *MSB*)
10862
      *MSB*)
9900
	emul="${emul}btsmip"
10863
	emul="${emul}btsmip"
9901
	;;
10864
	;;
Lines 9903-9909 Link Here
9903
	emul="${emul}ltsmip"
10866
	emul="${emul}ltsmip"
9904
	;;
10867
	;;
9905
    esac
10868
    esac
9906
    case `/usr/bin/file conftest.$ac_objext` in
10869
    case `$FILECMD conftest.$ac_objext` in
9907
      *N32*)
10870
      *N32*)
9908
	emul="${emul}n32"
10871
	emul="${emul}n32"
9909
	;;
10872
	;;
Lines 9925-9940 Link Here
9925
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
10888
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
9926
  (eval $ac_compile) 2>&5
10889
  (eval $ac_compile) 2>&5
9927
  ac_status=$?
10890
  ac_status=$?
9928
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
10891
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
9929
  test $ac_status = 0; }; then
10892
  test $ac_status = 0; }; then
9930
    case `/usr/bin/file conftest.o` in
10893
    case `$FILECMD conftest.o` in
9931
      *32-bit*)
10894
      *32-bit*)
9932
	case $host in
10895
	case $host in
9933
	  x86_64-*kfreebsd*-gnu)
10896
	  x86_64-*kfreebsd*-gnu)
9934
	    LD="${LD-ld} -m elf_i386_fbsd"
10897
	    LD="${LD-ld} -m elf_i386_fbsd"
9935
	    ;;
10898
	    ;;
9936
	  x86_64-*linux*)
10899
	  x86_64-*linux*)
9937
	    case `/usr/bin/file conftest.o` in
10900
	    case `$FILECMD conftest.o` in
9938
	      *x86-64*)
10901
	      *x86-64*)
9939
		LD="${LD-ld} -m elf32_x86_64"
10902
		LD="${LD-ld} -m elf32_x86_64"
9940
		;;
10903
		;;
Lines 9988-9998 Link Here
9988
  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
10951
  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
9989
  SAVE_CFLAGS=$CFLAGS
10952
  SAVE_CFLAGS=$CFLAGS
9990
  CFLAGS="$CFLAGS -belf"
10953
  CFLAGS="$CFLAGS -belf"
9991
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
10954
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
9992
$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
10955
printf %s "checking whether the C compiler needs -belf... " >&6; }
9993
if ${lt_cv_cc_needs_belf+:} false; then :
10956
if test ${lt_cv_cc_needs_belf+y}
9994
  $as_echo_n "(cached) " >&6
10957
then :
9995
else
10958
  printf %s "(cached) " >&6
10959
else $as_nop
9996
  ac_ext=c
10960
  ac_ext=c
9997
ac_cpp='$CPP $CPPFLAGS'
10961
ac_cpp='$CPP $CPPFLAGS'
9998
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
10962
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
Lines 10003-10021 Link Here
10003
/* end confdefs.h.  */
10967
/* end confdefs.h.  */
10004
10968
10005
int
10969
int
10006
main ()
10970
main (void)
10007
{
10971
{
10008
10972
10009
  ;
10973
  ;
10010
  return 0;
10974
  return 0;
10011
}
10975
}
10012
_ACEOF
10976
_ACEOF
10013
if ac_fn_c_try_link "$LINENO"; then :
10977
if ac_fn_c_try_link "$LINENO"
10978
then :
10014
  lt_cv_cc_needs_belf=yes
10979
  lt_cv_cc_needs_belf=yes
10015
else
10980
else $as_nop
10016
  lt_cv_cc_needs_belf=no
10981
  lt_cv_cc_needs_belf=no
10017
fi
10982
fi
10018
rm -f core conftest.err conftest.$ac_objext \
10983
rm -f core conftest.err conftest.$ac_objext conftest.beam \
10019
    conftest$ac_exeext conftest.$ac_ext
10984
    conftest$ac_exeext conftest.$ac_ext
10020
     ac_ext=c
10985
     ac_ext=c
10021
ac_cpp='$CPP $CPPFLAGS'
10986
ac_cpp='$CPP $CPPFLAGS'
Lines 10024-10031 Link Here
10024
ac_compiler_gnu=$ac_cv_c_compiler_gnu
10989
ac_compiler_gnu=$ac_cv_c_compiler_gnu
10025
10990
10026
fi
10991
fi
10027
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
10992
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
10028
$as_echo "$lt_cv_cc_needs_belf" >&6; }
10993
printf "%s\n" "$lt_cv_cc_needs_belf" >&6; }
10029
  if test yes != "$lt_cv_cc_needs_belf"; then
10994
  if test yes != "$lt_cv_cc_needs_belf"; then
10030
    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
10995
    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
10031
    CFLAGS=$SAVE_CFLAGS
10996
    CFLAGS=$SAVE_CFLAGS
Lines 10038-10046 Link Here
10038
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
11003
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
10039
  (eval $ac_compile) 2>&5
11004
  (eval $ac_compile) 2>&5
10040
  ac_status=$?
11005
  ac_status=$?
10041
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
11006
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
10042
  test $ac_status = 0; }; then
11007
  test $ac_status = 0; }; then
10043
    case `/usr/bin/file conftest.o` in
11008
    case `$FILECMD conftest.o` in
10044
    *64-bit*)
11009
    *64-bit*)
10045
      case $lt_cv_prog_gnu_ld in
11010
      case $lt_cv_prog_gnu_ld in
10046
      yes*)
11011
      yes*)
Lines 10075-10085 Link Here
10075
if test -n "$ac_tool_prefix"; then
11040
if test -n "$ac_tool_prefix"; then
10076
  # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
11041
  # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
10077
set dummy ${ac_tool_prefix}mt; ac_word=$2
11042
set dummy ${ac_tool_prefix}mt; ac_word=$2
10078
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
11043
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
10079
$as_echo_n "checking for $ac_word... " >&6; }
11044
printf %s "checking for $ac_word... " >&6; }
10080
if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
11045
if test ${ac_cv_prog_MANIFEST_TOOL+y}
10081
  $as_echo_n "(cached) " >&6
11046
then :
10082
else
11047
  printf %s "(cached) " >&6
11048
else $as_nop
10083
  if test -n "$MANIFEST_TOOL"; then
11049
  if test -n "$MANIFEST_TOOL"; then
10084
  ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
11050
  ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
10085
else
11051
else
Lines 10087-10097 Link Here
10087
for as_dir in $PATH
11053
for as_dir in $PATH
10088
do
11054
do
10089
  IFS=$as_save_IFS
11055
  IFS=$as_save_IFS
10090
  test -z "$as_dir" && as_dir=.
11056
  case $as_dir in #(((
11057
    '') as_dir=./ ;;
11058
    */) ;;
11059
    *) as_dir=$as_dir/ ;;
11060
  esac
10091
    for ac_exec_ext in '' $ac_executable_extensions; do
11061
    for ac_exec_ext in '' $ac_executable_extensions; do
10092
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
11062
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
10093
    ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
11063
    ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
10094
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
11064
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
10095
    break 2
11065
    break 2
10096
  fi
11066
  fi
10097
done
11067
done
Lines 10102-10112 Link Here
10102
fi
11072
fi
10103
MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
11073
MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
10104
if test -n "$MANIFEST_TOOL"; then
11074
if test -n "$MANIFEST_TOOL"; then
10105
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
11075
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
10106
$as_echo "$MANIFEST_TOOL" >&6; }
11076
printf "%s\n" "$MANIFEST_TOOL" >&6; }
10107
else
11077
else
10108
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11078
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
10109
$as_echo "no" >&6; }
11079
printf "%s\n" "no" >&6; }
10110
fi
11080
fi
10111
11081
10112
11082
Lines 10115-10125 Link Here
10115
  ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
11085
  ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
10116
  # Extract the first word of "mt", so it can be a program name with args.
11086
  # Extract the first word of "mt", so it can be a program name with args.
10117
set dummy mt; ac_word=$2
11087
set dummy mt; ac_word=$2
10118
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
11088
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
10119
$as_echo_n "checking for $ac_word... " >&6; }
11089
printf %s "checking for $ac_word... " >&6; }
10120
if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
11090
if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y}
10121
  $as_echo_n "(cached) " >&6
11091
then :
10122
else
11092
  printf %s "(cached) " >&6
11093
else $as_nop
10123
  if test -n "$ac_ct_MANIFEST_TOOL"; then
11094
  if test -n "$ac_ct_MANIFEST_TOOL"; then
10124
  ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
11095
  ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
10125
else
11096
else
Lines 10127-10137 Link Here
10127
for as_dir in $PATH
11098
for as_dir in $PATH
10128
do
11099
do
10129
  IFS=$as_save_IFS
11100
  IFS=$as_save_IFS
10130
  test -z "$as_dir" && as_dir=.
11101
  case $as_dir in #(((
11102
    '') as_dir=./ ;;
11103
    */) ;;
11104
    *) as_dir=$as_dir/ ;;
11105
  esac
10131
    for ac_exec_ext in '' $ac_executable_extensions; do
11106
    for ac_exec_ext in '' $ac_executable_extensions; do
10132
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
11107
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
10133
    ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
11108
    ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
10134
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
11109
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
10135
    break 2
11110
    break 2
10136
  fi
11111
  fi
10137
done
11112
done
Lines 10142-10152 Link Here
10142
fi
11117
fi
10143
ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
11118
ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
10144
if test -n "$ac_ct_MANIFEST_TOOL"; then
11119
if test -n "$ac_ct_MANIFEST_TOOL"; then
10145
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
11120
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
10146
$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
11121
printf "%s\n" "$ac_ct_MANIFEST_TOOL" >&6; }
10147
else
11122
else
10148
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11123
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
10149
$as_echo "no" >&6; }
11124
printf "%s\n" "no" >&6; }
10150
fi
11125
fi
10151
11126
10152
  if test "x$ac_ct_MANIFEST_TOOL" = x; then
11127
  if test "x$ac_ct_MANIFEST_TOOL" = x; then
Lines 10154-10161 Link Here
10154
  else
11129
  else
10155
    case $cross_compiling:$ac_tool_warned in
11130
    case $cross_compiling:$ac_tool_warned in
10156
yes:)
11131
yes:)
10157
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
11132
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
10158
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
11133
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
10159
ac_tool_warned=yes ;;
11134
ac_tool_warned=yes ;;
10160
esac
11135
esac
10161
    MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
11136
    MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
Lines 10165-10175 Link Here
10165
fi
11140
fi
10166
11141
10167
test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
11142
test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
10168
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
11143
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
10169
$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
11144
printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
10170
if ${lt_cv_path_mainfest_tool+:} false; then :
11145
if test ${lt_cv_path_mainfest_tool+y}
10171
  $as_echo_n "(cached) " >&6
11146
then :
10172
else
11147
  printf %s "(cached) " >&6
11148
else $as_nop
10173
  lt_cv_path_mainfest_tool=no
11149
  lt_cv_path_mainfest_tool=no
10174
  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
11150
  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
10175
  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
11151
  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
Lines 10179-10186 Link Here
10179
  fi
11155
  fi
10180
  rm -f conftest*
11156
  rm -f conftest*
10181
fi
11157
fi
10182
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
11158
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
10183
$as_echo "$lt_cv_path_mainfest_tool" >&6; }
11159
printf "%s\n" "$lt_cv_path_mainfest_tool" >&6; }
10184
if test yes != "$lt_cv_path_mainfest_tool"; then
11160
if test yes != "$lt_cv_path_mainfest_tool"; then
10185
  MANIFEST_TOOL=:
11161
  MANIFEST_TOOL=:
10186
fi
11162
fi
Lines 10195-10205 Link Here
10195
    if test -n "$ac_tool_prefix"; then
11171
    if test -n "$ac_tool_prefix"; then
10196
  # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
11172
  # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
10197
set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
11173
set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
10198
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
11174
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
10199
$as_echo_n "checking for $ac_word... " >&6; }
11175
printf %s "checking for $ac_word... " >&6; }
10200
if ${ac_cv_prog_DSYMUTIL+:} false; then :
11176
if test ${ac_cv_prog_DSYMUTIL+y}
10201
  $as_echo_n "(cached) " >&6
11177
then :
10202
else
11178
  printf %s "(cached) " >&6
11179
else $as_nop
10203
  if test -n "$DSYMUTIL"; then
11180
  if test -n "$DSYMUTIL"; then
10204
  ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
11181
  ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
10205
else
11182
else
Lines 10207-10217 Link Here
10207
for as_dir in $PATH
11184
for as_dir in $PATH
10208
do
11185
do
10209
  IFS=$as_save_IFS
11186
  IFS=$as_save_IFS
10210
  test -z "$as_dir" && as_dir=.
11187
  case $as_dir in #(((
11188
    '') as_dir=./ ;;
11189
    */) ;;
11190
    *) as_dir=$as_dir/ ;;
11191
  esac
10211
    for ac_exec_ext in '' $ac_executable_extensions; do
11192
    for ac_exec_ext in '' $ac_executable_extensions; do
10212
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
11193
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
10213
    ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
11194
    ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
10214
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
11195
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
10215
    break 2
11196
    break 2
10216
  fi
11197
  fi
10217
done
11198
done
Lines 10222-10232 Link Here
10222
fi
11203
fi
10223
DSYMUTIL=$ac_cv_prog_DSYMUTIL
11204
DSYMUTIL=$ac_cv_prog_DSYMUTIL
10224
if test -n "$DSYMUTIL"; then
11205
if test -n "$DSYMUTIL"; then
10225
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
11206
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
10226
$as_echo "$DSYMUTIL" >&6; }
11207
printf "%s\n" "$DSYMUTIL" >&6; }
10227
else
11208
else
10228
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11209
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
10229
$as_echo "no" >&6; }
11210
printf "%s\n" "no" >&6; }
10230
fi
11211
fi
10231
11212
10232
11213
Lines 10235-10245 Link Here
10235
  ac_ct_DSYMUTIL=$DSYMUTIL
11216
  ac_ct_DSYMUTIL=$DSYMUTIL
10236
  # Extract the first word of "dsymutil", so it can be a program name with args.
11217
  # Extract the first word of "dsymutil", so it can be a program name with args.
10237
set dummy dsymutil; ac_word=$2
11218
set dummy dsymutil; ac_word=$2
10238
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
11219
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
10239
$as_echo_n "checking for $ac_word... " >&6; }
11220
printf %s "checking for $ac_word... " >&6; }
10240
if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
11221
if test ${ac_cv_prog_ac_ct_DSYMUTIL+y}
10241
  $as_echo_n "(cached) " >&6
11222
then :
10242
else
11223
  printf %s "(cached) " >&6
11224
else $as_nop
10243
  if test -n "$ac_ct_DSYMUTIL"; then
11225
  if test -n "$ac_ct_DSYMUTIL"; then
10244
  ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
11226
  ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
10245
else
11227
else
Lines 10247-10257 Link Here
10247
for as_dir in $PATH
11229
for as_dir in $PATH
10248
do
11230
do
10249
  IFS=$as_save_IFS
11231
  IFS=$as_save_IFS
10250
  test -z "$as_dir" && as_dir=.
11232
  case $as_dir in #(((
11233
    '') as_dir=./ ;;
11234
    */) ;;
11235
    *) as_dir=$as_dir/ ;;
11236
  esac
10251
    for ac_exec_ext in '' $ac_executable_extensions; do
11237
    for ac_exec_ext in '' $ac_executable_extensions; do
10252
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
11238
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
10253
    ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
11239
    ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
10254
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
11240
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
10255
    break 2
11241
    break 2
10256
  fi
11242
  fi
10257
done
11243
done
Lines 10262-10272 Link Here
10262
fi
11248
fi
10263
ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
11249
ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
10264
if test -n "$ac_ct_DSYMUTIL"; then
11250
if test -n "$ac_ct_DSYMUTIL"; then
10265
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
11251
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
10266
$as_echo "$ac_ct_DSYMUTIL" >&6; }
11252
printf "%s\n" "$ac_ct_DSYMUTIL" >&6; }
10267
else
11253
else
10268
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11254
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
10269
$as_echo "no" >&6; }
11255
printf "%s\n" "no" >&6; }
10270
fi
11256
fi
10271
11257
10272
  if test "x$ac_ct_DSYMUTIL" = x; then
11258
  if test "x$ac_ct_DSYMUTIL" = x; then
Lines 10274-10281 Link Here
10274
  else
11260
  else
10275
    case $cross_compiling:$ac_tool_warned in
11261
    case $cross_compiling:$ac_tool_warned in
10276
yes:)
11262
yes:)
10277
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
11263
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
10278
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
11264
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
10279
ac_tool_warned=yes ;;
11265
ac_tool_warned=yes ;;
10280
esac
11266
esac
10281
    DSYMUTIL=$ac_ct_DSYMUTIL
11267
    DSYMUTIL=$ac_ct_DSYMUTIL
Lines 10287-10297 Link Here
10287
    if test -n "$ac_tool_prefix"; then
11273
    if test -n "$ac_tool_prefix"; then
10288
  # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
11274
  # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
10289
set dummy ${ac_tool_prefix}nmedit; ac_word=$2
11275
set dummy ${ac_tool_prefix}nmedit; ac_word=$2
10290
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
11276
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
10291
$as_echo_n "checking for $ac_word... " >&6; }
11277
printf %s "checking for $ac_word... " >&6; }
10292
if ${ac_cv_prog_NMEDIT+:} false; then :
11278
if test ${ac_cv_prog_NMEDIT+y}
10293
  $as_echo_n "(cached) " >&6
11279
then :
10294
else
11280
  printf %s "(cached) " >&6
11281
else $as_nop
10295
  if test -n "$NMEDIT"; then
11282
  if test -n "$NMEDIT"; then
10296
  ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
11283
  ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
10297
else
11284
else
Lines 10299-10309 Link Here
10299
for as_dir in $PATH
11286
for as_dir in $PATH
10300
do
11287
do
10301
  IFS=$as_save_IFS
11288
  IFS=$as_save_IFS
10302
  test -z "$as_dir" && as_dir=.
11289
  case $as_dir in #(((
11290
    '') as_dir=./ ;;
11291
    */) ;;
11292
    *) as_dir=$as_dir/ ;;
11293
  esac
10303
    for ac_exec_ext in '' $ac_executable_extensions; do
11294
    for ac_exec_ext in '' $ac_executable_extensions; do
10304
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
11295
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
10305
    ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
11296
    ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
10306
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
11297
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
10307
    break 2
11298
    break 2
10308
  fi
11299
  fi
10309
done
11300
done
Lines 10314-10324 Link Here
10314
fi
11305
fi
10315
NMEDIT=$ac_cv_prog_NMEDIT
11306
NMEDIT=$ac_cv_prog_NMEDIT
10316
if test -n "$NMEDIT"; then
11307
if test -n "$NMEDIT"; then
10317
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
11308
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
10318
$as_echo "$NMEDIT" >&6; }
11309
printf "%s\n" "$NMEDIT" >&6; }
10319
else
11310
else
10320
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11311
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
10321
$as_echo "no" >&6; }
11312
printf "%s\n" "no" >&6; }
10322
fi
11313
fi
10323
11314
10324
11315
Lines 10327-10337 Link Here
10327
  ac_ct_NMEDIT=$NMEDIT
11318
  ac_ct_NMEDIT=$NMEDIT
10328
  # Extract the first word of "nmedit", so it can be a program name with args.
11319
  # Extract the first word of "nmedit", so it can be a program name with args.
10329
set dummy nmedit; ac_word=$2
11320
set dummy nmedit; ac_word=$2
10330
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
11321
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
10331
$as_echo_n "checking for $ac_word... " >&6; }
11322
printf %s "checking for $ac_word... " >&6; }
10332
if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
11323
if test ${ac_cv_prog_ac_ct_NMEDIT+y}
10333
  $as_echo_n "(cached) " >&6
11324
then :
10334
else
11325
  printf %s "(cached) " >&6
11326
else $as_nop
10335
  if test -n "$ac_ct_NMEDIT"; then
11327
  if test -n "$ac_ct_NMEDIT"; then
10336
  ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
11328
  ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
10337
else
11329
else
Lines 10339-10349 Link Here
10339
for as_dir in $PATH
11331
for as_dir in $PATH
10340
do
11332
do
10341
  IFS=$as_save_IFS
11333
  IFS=$as_save_IFS
10342
  test -z "$as_dir" && as_dir=.
11334
  case $as_dir in #(((
11335
    '') as_dir=./ ;;
11336
    */) ;;
11337
    *) as_dir=$as_dir/ ;;
11338
  esac
10343
    for ac_exec_ext in '' $ac_executable_extensions; do
11339
    for ac_exec_ext in '' $ac_executable_extensions; do
10344
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
11340
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
10345
    ac_cv_prog_ac_ct_NMEDIT="nmedit"
11341
    ac_cv_prog_ac_ct_NMEDIT="nmedit"
10346
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
11342
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
10347
    break 2
11343
    break 2
10348
  fi
11344
  fi
10349
done
11345
done
Lines 10354-10364 Link Here
10354
fi
11350
fi
10355
ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
11351
ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
10356
if test -n "$ac_ct_NMEDIT"; then
11352
if test -n "$ac_ct_NMEDIT"; then
10357
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
11353
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
10358
$as_echo "$ac_ct_NMEDIT" >&6; }
11354
printf "%s\n" "$ac_ct_NMEDIT" >&6; }
10359
else
11355
else
10360
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11356
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
10361
$as_echo "no" >&6; }
11357
printf "%s\n" "no" >&6; }
10362
fi
11358
fi
10363
11359
10364
  if test "x$ac_ct_NMEDIT" = x; then
11360
  if test "x$ac_ct_NMEDIT" = x; then
Lines 10366-10373 Link Here
10366
  else
11362
  else
10367
    case $cross_compiling:$ac_tool_warned in
11363
    case $cross_compiling:$ac_tool_warned in
10368
yes:)
11364
yes:)
10369
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
11365
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
10370
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
11366
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
10371
ac_tool_warned=yes ;;
11367
ac_tool_warned=yes ;;
10372
esac
11368
esac
10373
    NMEDIT=$ac_ct_NMEDIT
11369
    NMEDIT=$ac_ct_NMEDIT
Lines 10379-10389 Link Here
10379
    if test -n "$ac_tool_prefix"; then
11375
    if test -n "$ac_tool_prefix"; then
10380
  # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
11376
  # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
10381
set dummy ${ac_tool_prefix}lipo; ac_word=$2
11377
set dummy ${ac_tool_prefix}lipo; ac_word=$2
10382
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
11378
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
10383
$as_echo_n "checking for $ac_word... " >&6; }
11379
printf %s "checking for $ac_word... " >&6; }
10384
if ${ac_cv_prog_LIPO+:} false; then :
11380
if test ${ac_cv_prog_LIPO+y}
10385
  $as_echo_n "(cached) " >&6
11381
then :
10386
else
11382
  printf %s "(cached) " >&6
11383
else $as_nop
10387
  if test -n "$LIPO"; then
11384
  if test -n "$LIPO"; then
10388
  ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
11385
  ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
10389
else
11386
else
Lines 10391-10401 Link Here
10391
for as_dir in $PATH
11388
for as_dir in $PATH
10392
do
11389
do
10393
  IFS=$as_save_IFS
11390
  IFS=$as_save_IFS
10394
  test -z "$as_dir" && as_dir=.
11391
  case $as_dir in #(((
11392
    '') as_dir=./ ;;
11393
    */) ;;
11394
    *) as_dir=$as_dir/ ;;
11395
  esac
10395
    for ac_exec_ext in '' $ac_executable_extensions; do
11396
    for ac_exec_ext in '' $ac_executable_extensions; do
10396
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
11397
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
10397
    ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
11398
    ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
10398
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
11399
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
10399
    break 2
11400
    break 2
10400
  fi
11401
  fi
10401
done
11402
done
Lines 10406-10416 Link Here
10406
fi
11407
fi
10407
LIPO=$ac_cv_prog_LIPO
11408
LIPO=$ac_cv_prog_LIPO
10408
if test -n "$LIPO"; then
11409
if test -n "$LIPO"; then
10409
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
11410
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
10410
$as_echo "$LIPO" >&6; }
11411
printf "%s\n" "$LIPO" >&6; }
10411
else
11412
else
10412
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11413
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
10413
$as_echo "no" >&6; }
11414
printf "%s\n" "no" >&6; }
10414
fi
11415
fi
10415
11416
10416
11417
Lines 10419-10429 Link Here
10419
  ac_ct_LIPO=$LIPO
11420
  ac_ct_LIPO=$LIPO
10420
  # Extract the first word of "lipo", so it can be a program name with args.
11421
  # Extract the first word of "lipo", so it can be a program name with args.
10421
set dummy lipo; ac_word=$2
11422
set dummy lipo; ac_word=$2
10422
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
11423
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
10423
$as_echo_n "checking for $ac_word... " >&6; }
11424
printf %s "checking for $ac_word... " >&6; }
10424
if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
11425
if test ${ac_cv_prog_ac_ct_LIPO+y}
10425
  $as_echo_n "(cached) " >&6
11426
then :
10426
else
11427
  printf %s "(cached) " >&6
11428
else $as_nop
10427
  if test -n "$ac_ct_LIPO"; then
11429
  if test -n "$ac_ct_LIPO"; then
10428
  ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
11430
  ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
10429
else
11431
else
Lines 10431-10441 Link Here
10431
for as_dir in $PATH
11433
for as_dir in $PATH
10432
do
11434
do
10433
  IFS=$as_save_IFS
11435
  IFS=$as_save_IFS
10434
  test -z "$as_dir" && as_dir=.
11436
  case $as_dir in #(((
11437
    '') as_dir=./ ;;
11438
    */) ;;
11439
    *) as_dir=$as_dir/ ;;
11440
  esac
10435
    for ac_exec_ext in '' $ac_executable_extensions; do
11441
    for ac_exec_ext in '' $ac_executable_extensions; do
10436
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
11442
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
10437
    ac_cv_prog_ac_ct_LIPO="lipo"
11443
    ac_cv_prog_ac_ct_LIPO="lipo"
10438
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
11444
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
10439
    break 2
11445
    break 2
10440
  fi
11446
  fi
10441
done
11447
done
Lines 10446-10456 Link Here
10446
fi
11452
fi
10447
ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
11453
ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
10448
if test -n "$ac_ct_LIPO"; then
11454
if test -n "$ac_ct_LIPO"; then
10449
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
11455
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
10450
$as_echo "$ac_ct_LIPO" >&6; }
11456
printf "%s\n" "$ac_ct_LIPO" >&6; }
10451
else
11457
else
10452
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11458
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
10453
$as_echo "no" >&6; }
11459
printf "%s\n" "no" >&6; }
10454
fi
11460
fi
10455
11461
10456
  if test "x$ac_ct_LIPO" = x; then
11462
  if test "x$ac_ct_LIPO" = x; then
Lines 10458-10465 Link Here
10458
  else
11464
  else
10459
    case $cross_compiling:$ac_tool_warned in
11465
    case $cross_compiling:$ac_tool_warned in
10460
yes:)
11466
yes:)
10461
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
11467
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
10462
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
11468
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
10463
ac_tool_warned=yes ;;
11469
ac_tool_warned=yes ;;
10464
esac
11470
esac
10465
    LIPO=$ac_ct_LIPO
11471
    LIPO=$ac_ct_LIPO
Lines 10471-10481 Link Here
10471
    if test -n "$ac_tool_prefix"; then
11477
    if test -n "$ac_tool_prefix"; then
10472
  # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
11478
  # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
10473
set dummy ${ac_tool_prefix}otool; ac_word=$2
11479
set dummy ${ac_tool_prefix}otool; ac_word=$2
10474
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
11480
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
10475
$as_echo_n "checking for $ac_word... " >&6; }
11481
printf %s "checking for $ac_word... " >&6; }
10476
if ${ac_cv_prog_OTOOL+:} false; then :
11482
if test ${ac_cv_prog_OTOOL+y}
10477
  $as_echo_n "(cached) " >&6
11483
then :
10478
else
11484
  printf %s "(cached) " >&6
11485
else $as_nop
10479
  if test -n "$OTOOL"; then
11486
  if test -n "$OTOOL"; then
10480
  ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
11487
  ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
10481
else
11488
else
Lines 10483-10493 Link Here
10483
for as_dir in $PATH
11490
for as_dir in $PATH
10484
do
11491
do
10485
  IFS=$as_save_IFS
11492
  IFS=$as_save_IFS
10486
  test -z "$as_dir" && as_dir=.
11493
  case $as_dir in #(((
11494
    '') as_dir=./ ;;
11495
    */) ;;
11496
    *) as_dir=$as_dir/ ;;
11497
  esac
10487
    for ac_exec_ext in '' $ac_executable_extensions; do
11498
    for ac_exec_ext in '' $ac_executable_extensions; do
10488
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
11499
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
10489
    ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
11500
    ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
10490
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
11501
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
10491
    break 2
11502
    break 2
10492
  fi
11503
  fi
10493
done
11504
done
Lines 10498-10508 Link Here
10498
fi
11509
fi
10499
OTOOL=$ac_cv_prog_OTOOL
11510
OTOOL=$ac_cv_prog_OTOOL
10500
if test -n "$OTOOL"; then
11511
if test -n "$OTOOL"; then
10501
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
11512
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
10502
$as_echo "$OTOOL" >&6; }
11513
printf "%s\n" "$OTOOL" >&6; }
10503
else
11514
else
10504
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11515
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
10505
$as_echo "no" >&6; }
11516
printf "%s\n" "no" >&6; }
10506
fi
11517
fi
10507
11518
10508
11519
Lines 10511-10521 Link Here
10511
  ac_ct_OTOOL=$OTOOL
11522
  ac_ct_OTOOL=$OTOOL
10512
  # Extract the first word of "otool", so it can be a program name with args.
11523
  # Extract the first word of "otool", so it can be a program name with args.
10513
set dummy otool; ac_word=$2
11524
set dummy otool; ac_word=$2
10514
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
11525
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
10515
$as_echo_n "checking for $ac_word... " >&6; }
11526
printf %s "checking for $ac_word... " >&6; }
10516
if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
11527
if test ${ac_cv_prog_ac_ct_OTOOL+y}
10517
  $as_echo_n "(cached) " >&6
11528
then :
10518
else
11529
  printf %s "(cached) " >&6
11530
else $as_nop
10519
  if test -n "$ac_ct_OTOOL"; then
11531
  if test -n "$ac_ct_OTOOL"; then
10520
  ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
11532
  ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
10521
else
11533
else
Lines 10523-10533 Link Here
10523
for as_dir in $PATH
11535
for as_dir in $PATH
10524
do
11536
do
10525
  IFS=$as_save_IFS
11537
  IFS=$as_save_IFS
10526
  test -z "$as_dir" && as_dir=.
11538
  case $as_dir in #(((
11539
    '') as_dir=./ ;;
11540
    */) ;;
11541
    *) as_dir=$as_dir/ ;;
11542
  esac
10527
    for ac_exec_ext in '' $ac_executable_extensions; do
11543
    for ac_exec_ext in '' $ac_executable_extensions; do
10528
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
11544
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
10529
    ac_cv_prog_ac_ct_OTOOL="otool"
11545
    ac_cv_prog_ac_ct_OTOOL="otool"
10530
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
11546
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
10531
    break 2
11547
    break 2
10532
  fi
11548
  fi
10533
done
11549
done
Lines 10538-10548 Link Here
10538
fi
11554
fi
10539
ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
11555
ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
10540
if test -n "$ac_ct_OTOOL"; then
11556
if test -n "$ac_ct_OTOOL"; then
10541
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
11557
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
10542
$as_echo "$ac_ct_OTOOL" >&6; }
11558
printf "%s\n" "$ac_ct_OTOOL" >&6; }
10543
else
11559
else
10544
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11560
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
10545
$as_echo "no" >&6; }
11561
printf "%s\n" "no" >&6; }
10546
fi
11562
fi
10547
11563
10548
  if test "x$ac_ct_OTOOL" = x; then
11564
  if test "x$ac_ct_OTOOL" = x; then
Lines 10550-10557 Link Here
10550
  else
11566
  else
10551
    case $cross_compiling:$ac_tool_warned in
11567
    case $cross_compiling:$ac_tool_warned in
10552
yes:)
11568
yes:)
10553
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
11569
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
10554
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
11570
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
10555
ac_tool_warned=yes ;;
11571
ac_tool_warned=yes ;;
10556
esac
11572
esac
10557
    OTOOL=$ac_ct_OTOOL
11573
    OTOOL=$ac_ct_OTOOL
Lines 10563-10573 Link Here
10563
    if test -n "$ac_tool_prefix"; then
11579
    if test -n "$ac_tool_prefix"; then
10564
  # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
11580
  # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
10565
set dummy ${ac_tool_prefix}otool64; ac_word=$2
11581
set dummy ${ac_tool_prefix}otool64; ac_word=$2
10566
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
11582
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
10567
$as_echo_n "checking for $ac_word... " >&6; }
11583
printf %s "checking for $ac_word... " >&6; }
10568
if ${ac_cv_prog_OTOOL64+:} false; then :
11584
if test ${ac_cv_prog_OTOOL64+y}
10569
  $as_echo_n "(cached) " >&6
11585
then :
10570
else
11586
  printf %s "(cached) " >&6
11587
else $as_nop
10571
  if test -n "$OTOOL64"; then
11588
  if test -n "$OTOOL64"; then
10572
  ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
11589
  ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
10573
else
11590
else
Lines 10575-10585 Link Here
10575
for as_dir in $PATH
11592
for as_dir in $PATH
10576
do
11593
do
10577
  IFS=$as_save_IFS
11594
  IFS=$as_save_IFS
10578
  test -z "$as_dir" && as_dir=.
11595
  case $as_dir in #(((
11596
    '') as_dir=./ ;;
11597
    */) ;;
11598
    *) as_dir=$as_dir/ ;;
11599
  esac
10579
    for ac_exec_ext in '' $ac_executable_extensions; do
11600
    for ac_exec_ext in '' $ac_executable_extensions; do
10580
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
11601
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
10581
    ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
11602
    ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
10582
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
11603
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
10583
    break 2
11604
    break 2
10584
  fi
11605
  fi
10585
done
11606
done
Lines 10590-10600 Link Here
10590
fi
11611
fi
10591
OTOOL64=$ac_cv_prog_OTOOL64
11612
OTOOL64=$ac_cv_prog_OTOOL64
10592
if test -n "$OTOOL64"; then
11613
if test -n "$OTOOL64"; then
10593
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
11614
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
10594
$as_echo "$OTOOL64" >&6; }
11615
printf "%s\n" "$OTOOL64" >&6; }
10595
else
11616
else
10596
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11617
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
10597
$as_echo "no" >&6; }
11618
printf "%s\n" "no" >&6; }
10598
fi
11619
fi
10599
11620
10600
11621
Lines 10603-10613 Link Here
10603
  ac_ct_OTOOL64=$OTOOL64
11624
  ac_ct_OTOOL64=$OTOOL64
10604
  # Extract the first word of "otool64", so it can be a program name with args.
11625
  # Extract the first word of "otool64", so it can be a program name with args.
10605
set dummy otool64; ac_word=$2
11626
set dummy otool64; ac_word=$2
10606
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
11627
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
10607
$as_echo_n "checking for $ac_word... " >&6; }
11628
printf %s "checking for $ac_word... " >&6; }
10608
if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
11629
if test ${ac_cv_prog_ac_ct_OTOOL64+y}
10609
  $as_echo_n "(cached) " >&6
11630
then :
10610
else
11631
  printf %s "(cached) " >&6
11632
else $as_nop
10611
  if test -n "$ac_ct_OTOOL64"; then
11633
  if test -n "$ac_ct_OTOOL64"; then
10612
  ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
11634
  ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
10613
else
11635
else
Lines 10615-10625 Link Here
10615
for as_dir in $PATH
11637
for as_dir in $PATH
10616
do
11638
do
10617
  IFS=$as_save_IFS
11639
  IFS=$as_save_IFS
10618
  test -z "$as_dir" && as_dir=.
11640
  case $as_dir in #(((
11641
    '') as_dir=./ ;;
11642
    */) ;;
11643
    *) as_dir=$as_dir/ ;;
11644
  esac
10619
    for ac_exec_ext in '' $ac_executable_extensions; do
11645
    for ac_exec_ext in '' $ac_executable_extensions; do
10620
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
11646
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
10621
    ac_cv_prog_ac_ct_OTOOL64="otool64"
11647
    ac_cv_prog_ac_ct_OTOOL64="otool64"
10622
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
11648
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
10623
    break 2
11649
    break 2
10624
  fi
11650
  fi
10625
done
11651
done
Lines 10630-10640 Link Here
10630
fi
11656
fi
10631
ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
11657
ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
10632
if test -n "$ac_ct_OTOOL64"; then
11658
if test -n "$ac_ct_OTOOL64"; then
10633
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
11659
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
10634
$as_echo "$ac_ct_OTOOL64" >&6; }
11660
printf "%s\n" "$ac_ct_OTOOL64" >&6; }
10635
else
11661
else
10636
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11662
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
10637
$as_echo "no" >&6; }
11663
printf "%s\n" "no" >&6; }
10638
fi
11664
fi
10639
11665
10640
  if test "x$ac_ct_OTOOL64" = x; then
11666
  if test "x$ac_ct_OTOOL64" = x; then
Lines 10642-10649 Link Here
10642
  else
11668
  else
10643
    case $cross_compiling:$ac_tool_warned in
11669
    case $cross_compiling:$ac_tool_warned in
10644
yes:)
11670
yes:)
10645
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
11671
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
10646
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
11672
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
10647
ac_tool_warned=yes ;;
11673
ac_tool_warned=yes ;;
10648
esac
11674
esac
10649
    OTOOL64=$ac_ct_OTOOL64
11675
    OTOOL64=$ac_ct_OTOOL64
Lines 10678-10688 Link Here
10678
11704
10679
11705
10680
11706
10681
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
11707
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
10682
$as_echo_n "checking for -single_module linker flag... " >&6; }
11708
printf %s "checking for -single_module linker flag... " >&6; }
10683
if ${lt_cv_apple_cc_single_mod+:} false; then :
11709
if test ${lt_cv_apple_cc_single_mod+y}
10684
  $as_echo_n "(cached) " >&6
11710
then :
10685
else
11711
  printf %s "(cached) " >&6
11712
else $as_nop
10686
  lt_cv_apple_cc_single_mod=no
11713
  lt_cv_apple_cc_single_mod=no
10687
      if test -z "$LT_MULTI_MODULE"; then
11714
      if test -z "$LT_MULTI_MODULE"; then
10688
	# By default we will add the -single_module flag. You can override
11715
	# By default we will add the -single_module flag. You can override
Lines 10711-10724 Link Here
10711
	rm -f conftest.*
11738
	rm -f conftest.*
10712
      fi
11739
      fi
10713
fi
11740
fi
10714
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
11741
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
10715
$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
11742
printf "%s\n" "$lt_cv_apple_cc_single_mod" >&6; }
10716
11743
10717
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
11744
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
10718
$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
11745
printf %s "checking for -exported_symbols_list linker flag... " >&6; }
10719
if ${lt_cv_ld_exported_symbols_list+:} false; then :
11746
if test ${lt_cv_ld_exported_symbols_list+y}
10720
  $as_echo_n "(cached) " >&6
11747
then :
10721
else
11748
  printf %s "(cached) " >&6
11749
else $as_nop
10722
  lt_cv_ld_exported_symbols_list=no
11750
  lt_cv_ld_exported_symbols_list=no
10723
      save_LDFLAGS=$LDFLAGS
11751
      save_LDFLAGS=$LDFLAGS
10724
      echo "_main" > conftest.sym
11752
      echo "_main" > conftest.sym
Lines 10727-10757 Link Here
10727
/* end confdefs.h.  */
11755
/* end confdefs.h.  */
10728
11756
10729
int
11757
int
10730
main ()
11758
main (void)
10731
{
11759
{
10732
11760
10733
  ;
11761
  ;
10734
  return 0;
11762
  return 0;
10735
}
11763
}
10736
_ACEOF
11764
_ACEOF
10737
if ac_fn_c_try_link "$LINENO"; then :
11765
if ac_fn_c_try_link "$LINENO"
11766
then :
10738
  lt_cv_ld_exported_symbols_list=yes
11767
  lt_cv_ld_exported_symbols_list=yes
10739
else
11768
else $as_nop
10740
  lt_cv_ld_exported_symbols_list=no
11769
  lt_cv_ld_exported_symbols_list=no
10741
fi
11770
fi
10742
rm -f core conftest.err conftest.$ac_objext \
11771
rm -f core conftest.err conftest.$ac_objext conftest.beam \
10743
    conftest$ac_exeext conftest.$ac_ext
11772
    conftest$ac_exeext conftest.$ac_ext
10744
	LDFLAGS=$save_LDFLAGS
11773
	LDFLAGS=$save_LDFLAGS
10745
11774
10746
fi
11775
fi
10747
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
11776
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
10748
$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
11777
printf "%s\n" "$lt_cv_ld_exported_symbols_list" >&6; }
10749
11778
10750
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
11779
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
10751
$as_echo_n "checking for -force_load linker flag... " >&6; }
11780
printf %s "checking for -force_load linker flag... " >&6; }
10752
if ${lt_cv_ld_force_load+:} false; then :
11781
if test ${lt_cv_ld_force_load+y}
10753
  $as_echo_n "(cached) " >&6
11782
then :
10754
else
11783
  printf %s "(cached) " >&6
11784
else $as_nop
10755
  lt_cv_ld_force_load=no
11785
  lt_cv_ld_force_load=no
10756
      cat > conftest.c << _LT_EOF
11786
      cat > conftest.c << _LT_EOF
10757
int forced_loaded() { return 2;}
11787
int forced_loaded() { return 2;}
Lines 10779-10802 Link Here
10779
        rm -rf conftest.dSYM
11809
        rm -rf conftest.dSYM
10780
11810
10781
fi
11811
fi
10782
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
11812
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
10783
$as_echo "$lt_cv_ld_force_load" >&6; }
11813
printf "%s\n" "$lt_cv_ld_force_load" >&6; }
10784
    case $host_os in
11814
    case $host_os in
10785
    rhapsody* | darwin1.[012])
11815
    rhapsody* | darwin1.[012])
10786
      _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
11816
      _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
10787
    darwin1.*)
11817
    darwin1.*)
10788
      _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
11818
      _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
10789
    darwin*) # darwin 5.x on
11819
    darwin*)
10790
      # if running on 10.5 or later, the deployment target defaults
11820
      case $MACOSX_DEPLOYMENT_TARGET,$host in
10791
      # to the OS version, if on x86, and 10.4, the deployment
11821
        10.[012],*|,*powerpc*-darwin[5-8]*)
10792
      # target defaults to 10.4. Don't you love it?
11822
          _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
10793
      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
11823
        *)
10794
	10.0,*86*-darwin8*|10.0,*-darwin[91]*)
11824
          _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
10795
	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
10796
	10.[012][,.]*)
10797
	  _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
10798
	10.*)
10799
	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
10800
      esac
11825
      esac
10801
    ;;
11826
    ;;
10802
  esac
11827
  esac
Lines 10851-10873 Link Here
10851
    esac
11876
    esac
10852
}
11877
}
10853
11878
10854
for ac_header in dlfcn.h
11879
ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
10855
do :
10856
  ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
10857
"
11880
"
10858
if test "x$ac_cv_header_dlfcn_h" = xyes; then :
11881
if test "x$ac_cv_header_dlfcn_h" = xyes
10859
  cat >>confdefs.h <<_ACEOF
11882
then :
10860
#define HAVE_DLFCN_H 1
11883
  printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h
10861
_ACEOF
10862
11884
10863
fi
11885
fi
10864
11886
10865
done
10866
11887
10867
11888
10868
11889
10869
11890
10870
10871
# Set options
11891
# Set options
10872
enable_win32_dll=yes
11892
enable_win32_dll=yes
10873
11893
Lines 10876-10886 Link Here
10876
  if test -n "$ac_tool_prefix"; then
11896
  if test -n "$ac_tool_prefix"; then
10877
  # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
11897
  # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
10878
set dummy ${ac_tool_prefix}as; ac_word=$2
11898
set dummy ${ac_tool_prefix}as; ac_word=$2
10879
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
11899
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
10880
$as_echo_n "checking for $ac_word... " >&6; }
11900
printf %s "checking for $ac_word... " >&6; }
10881
if ${ac_cv_prog_AS+:} false; then :
11901
if test ${ac_cv_prog_AS+y}
10882
  $as_echo_n "(cached) " >&6
11902
then :
10883
else
11903
  printf %s "(cached) " >&6
11904
else $as_nop
10884
  if test -n "$AS"; then
11905
  if test -n "$AS"; then
10885
  ac_cv_prog_AS="$AS" # Let the user override the test.
11906
  ac_cv_prog_AS="$AS" # Let the user override the test.
10886
else
11907
else
Lines 10888-10898 Link Here
10888
for as_dir in $PATH
11909
for as_dir in $PATH
10889
do
11910
do
10890
  IFS=$as_save_IFS
11911
  IFS=$as_save_IFS
10891
  test -z "$as_dir" && as_dir=.
11912
  case $as_dir in #(((
11913
    '') as_dir=./ ;;
11914
    */) ;;
11915
    *) as_dir=$as_dir/ ;;
11916
  esac
10892
    for ac_exec_ext in '' $ac_executable_extensions; do
11917
    for ac_exec_ext in '' $ac_executable_extensions; do
10893
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
11918
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
10894
    ac_cv_prog_AS="${ac_tool_prefix}as"
11919
    ac_cv_prog_AS="${ac_tool_prefix}as"
10895
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
11920
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
10896
    break 2
11921
    break 2
10897
  fi
11922
  fi
10898
done
11923
done
Lines 10903-10913 Link Here
10903
fi
11928
fi
10904
AS=$ac_cv_prog_AS
11929
AS=$ac_cv_prog_AS
10905
if test -n "$AS"; then
11930
if test -n "$AS"; then
10906
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
11931
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
10907
$as_echo "$AS" >&6; }
11932
printf "%s\n" "$AS" >&6; }
10908
else
11933
else
10909
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11934
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
10910
$as_echo "no" >&6; }
11935
printf "%s\n" "no" >&6; }
10911
fi
11936
fi
10912
11937
10913
11938
Lines 10916-10926 Link Here
10916
  ac_ct_AS=$AS
11941
  ac_ct_AS=$AS
10917
  # Extract the first word of "as", so it can be a program name with args.
11942
  # Extract the first word of "as", so it can be a program name with args.
10918
set dummy as; ac_word=$2
11943
set dummy as; ac_word=$2
10919
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
11944
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
10920
$as_echo_n "checking for $ac_word... " >&6; }
11945
printf %s "checking for $ac_word... " >&6; }
10921
if ${ac_cv_prog_ac_ct_AS+:} false; then :
11946
if test ${ac_cv_prog_ac_ct_AS+y}
10922
  $as_echo_n "(cached) " >&6
11947
then :
10923
else
11948
  printf %s "(cached) " >&6
11949
else $as_nop
10924
  if test -n "$ac_ct_AS"; then
11950
  if test -n "$ac_ct_AS"; then
10925
  ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
11951
  ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
10926
else
11952
else
Lines 10928-10938 Link Here
10928
for as_dir in $PATH
11954
for as_dir in $PATH
10929
do
11955
do
10930
  IFS=$as_save_IFS
11956
  IFS=$as_save_IFS
10931
  test -z "$as_dir" && as_dir=.
11957
  case $as_dir in #(((
11958
    '') as_dir=./ ;;
11959
    */) ;;
11960
    *) as_dir=$as_dir/ ;;
11961
  esac
10932
    for ac_exec_ext in '' $ac_executable_extensions; do
11962
    for ac_exec_ext in '' $ac_executable_extensions; do
10933
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
11963
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
10934
    ac_cv_prog_ac_ct_AS="as"
11964
    ac_cv_prog_ac_ct_AS="as"
10935
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
11965
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
10936
    break 2
11966
    break 2
10937
  fi
11967
  fi
10938
done
11968
done
Lines 10943-10953 Link Here
10943
fi
11973
fi
10944
ac_ct_AS=$ac_cv_prog_ac_ct_AS
11974
ac_ct_AS=$ac_cv_prog_ac_ct_AS
10945
if test -n "$ac_ct_AS"; then
11975
if test -n "$ac_ct_AS"; then
10946
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
11976
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
10947
$as_echo "$ac_ct_AS" >&6; }
11977
printf "%s\n" "$ac_ct_AS" >&6; }
10948
else
11978
else
10949
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11979
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
10950
$as_echo "no" >&6; }
11980
printf "%s\n" "no" >&6; }
10951
fi
11981
fi
10952
11982
10953
  if test "x$ac_ct_AS" = x; then
11983
  if test "x$ac_ct_AS" = x; then
Lines 10955-10962 Link Here
10955
  else
11985
  else
10956
    case $cross_compiling:$ac_tool_warned in
11986
    case $cross_compiling:$ac_tool_warned in
10957
yes:)
11987
yes:)
10958
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
11988
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
10959
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
11989
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
10960
ac_tool_warned=yes ;;
11990
ac_tool_warned=yes ;;
10961
esac
11991
esac
10962
    AS=$ac_ct_AS
11992
    AS=$ac_ct_AS
Lines 10968-10978 Link Here
10968
  if test -n "$ac_tool_prefix"; then
11998
  if test -n "$ac_tool_prefix"; then
10969
  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
11999
  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
10970
set dummy ${ac_tool_prefix}dlltool; ac_word=$2
12000
set dummy ${ac_tool_prefix}dlltool; ac_word=$2
10971
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
12001
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
10972
$as_echo_n "checking for $ac_word... " >&6; }
12002
printf %s "checking for $ac_word... " >&6; }
10973
if ${ac_cv_prog_DLLTOOL+:} false; then :
12003
if test ${ac_cv_prog_DLLTOOL+y}
10974
  $as_echo_n "(cached) " >&6
12004
then :
10975
else
12005
  printf %s "(cached) " >&6
12006
else $as_nop
10976
  if test -n "$DLLTOOL"; then
12007
  if test -n "$DLLTOOL"; then
10977
  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
12008
  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
10978
else
12009
else
Lines 10980-10990 Link Here
10980
for as_dir in $PATH
12011
for as_dir in $PATH
10981
do
12012
do
10982
  IFS=$as_save_IFS
12013
  IFS=$as_save_IFS
10983
  test -z "$as_dir" && as_dir=.
12014
  case $as_dir in #(((
12015
    '') as_dir=./ ;;
12016
    */) ;;
12017
    *) as_dir=$as_dir/ ;;
12018
  esac
10984
    for ac_exec_ext in '' $ac_executable_extensions; do
12019
    for ac_exec_ext in '' $ac_executable_extensions; do
10985
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
12020
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
10986
    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
12021
    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
10987
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
12022
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
10988
    break 2
12023
    break 2
10989
  fi
12024
  fi
10990
done
12025
done
Lines 10995-11005 Link Here
10995
fi
12030
fi
10996
DLLTOOL=$ac_cv_prog_DLLTOOL
12031
DLLTOOL=$ac_cv_prog_DLLTOOL
10997
if test -n "$DLLTOOL"; then
12032
if test -n "$DLLTOOL"; then
10998
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
12033
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
10999
$as_echo "$DLLTOOL" >&6; }
12034
printf "%s\n" "$DLLTOOL" >&6; }
11000
else
12035
else
11001
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12036
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
11002
$as_echo "no" >&6; }
12037
printf "%s\n" "no" >&6; }
11003
fi
12038
fi
11004
12039
11005
12040
Lines 11008-11018 Link Here
11008
  ac_ct_DLLTOOL=$DLLTOOL
12043
  ac_ct_DLLTOOL=$DLLTOOL
11009
  # Extract the first word of "dlltool", so it can be a program name with args.
12044
  # Extract the first word of "dlltool", so it can be a program name with args.
11010
set dummy dlltool; ac_word=$2
12045
set dummy dlltool; ac_word=$2
11011
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
12046
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
11012
$as_echo_n "checking for $ac_word... " >&6; }
12047
printf %s "checking for $ac_word... " >&6; }
11013
if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
12048
if test ${ac_cv_prog_ac_ct_DLLTOOL+y}
11014
  $as_echo_n "(cached) " >&6
12049
then :
11015
else
12050
  printf %s "(cached) " >&6
12051
else $as_nop
11016
  if test -n "$ac_ct_DLLTOOL"; then
12052
  if test -n "$ac_ct_DLLTOOL"; then
11017
  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
12053
  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
11018
else
12054
else
Lines 11020-11030 Link Here
11020
for as_dir in $PATH
12056
for as_dir in $PATH
11021
do
12057
do
11022
  IFS=$as_save_IFS
12058
  IFS=$as_save_IFS
11023
  test -z "$as_dir" && as_dir=.
12059
  case $as_dir in #(((
12060
    '') as_dir=./ ;;
12061
    */) ;;
12062
    *) as_dir=$as_dir/ ;;
12063
  esac
11024
    for ac_exec_ext in '' $ac_executable_extensions; do
12064
    for ac_exec_ext in '' $ac_executable_extensions; do
11025
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
12065
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
11026
    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
12066
    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
11027
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
12067
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
11028
    break 2
12068
    break 2
11029
  fi
12069
  fi
11030
done
12070
done
Lines 11035-11045 Link Here
11035
fi
12075
fi
11036
ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
12076
ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
11037
if test -n "$ac_ct_DLLTOOL"; then
12077
if test -n "$ac_ct_DLLTOOL"; then
11038
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
12078
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
11039
$as_echo "$ac_ct_DLLTOOL" >&6; }
12079
printf "%s\n" "$ac_ct_DLLTOOL" >&6; }
11040
else
12080
else
11041
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12081
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
11042
$as_echo "no" >&6; }
12082
printf "%s\n" "no" >&6; }
11043
fi
12083
fi
11044
12084
11045
  if test "x$ac_ct_DLLTOOL" = x; then
12085
  if test "x$ac_ct_DLLTOOL" = x; then
Lines 11047-11054 Link Here
11047
  else
12087
  else
11048
    case $cross_compiling:$ac_tool_warned in
12088
    case $cross_compiling:$ac_tool_warned in
11049
yes:)
12089
yes:)
11050
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
12090
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
11051
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
12091
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
11052
ac_tool_warned=yes ;;
12092
ac_tool_warned=yes ;;
11053
esac
12093
esac
11054
    DLLTOOL=$ac_ct_DLLTOOL
12094
    DLLTOOL=$ac_ct_DLLTOOL
Lines 11060-11070 Link Here
11060
  if test -n "$ac_tool_prefix"; then
12100
  if test -n "$ac_tool_prefix"; then
11061
  # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
12101
  # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
11062
set dummy ${ac_tool_prefix}objdump; ac_word=$2
12102
set dummy ${ac_tool_prefix}objdump; ac_word=$2
11063
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
12103
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
11064
$as_echo_n "checking for $ac_word... " >&6; }
12104
printf %s "checking for $ac_word... " >&6; }
11065
if ${ac_cv_prog_OBJDUMP+:} false; then :
12105
if test ${ac_cv_prog_OBJDUMP+y}
11066
  $as_echo_n "(cached) " >&6
12106
then :
11067
else
12107
  printf %s "(cached) " >&6
12108
else $as_nop
11068
  if test -n "$OBJDUMP"; then
12109
  if test -n "$OBJDUMP"; then
11069
  ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
12110
  ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
11070
else
12111
else
Lines 11072-11082 Link Here
11072
for as_dir in $PATH
12113
for as_dir in $PATH
11073
do
12114
do
11074
  IFS=$as_save_IFS
12115
  IFS=$as_save_IFS
11075
  test -z "$as_dir" && as_dir=.
12116
  case $as_dir in #(((
12117
    '') as_dir=./ ;;
12118
    */) ;;
12119
    *) as_dir=$as_dir/ ;;
12120
  esac
11076
    for ac_exec_ext in '' $ac_executable_extensions; do
12121
    for ac_exec_ext in '' $ac_executable_extensions; do
11077
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
12122
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
11078
    ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
12123
    ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
11079
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
12124
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
11080
    break 2
12125
    break 2
11081
  fi
12126
  fi
11082
done
12127
done
Lines 11087-11097 Link Here
11087
fi
12132
fi
11088
OBJDUMP=$ac_cv_prog_OBJDUMP
12133
OBJDUMP=$ac_cv_prog_OBJDUMP
11089
if test -n "$OBJDUMP"; then
12134
if test -n "$OBJDUMP"; then
11090
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
12135
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
11091
$as_echo "$OBJDUMP" >&6; }
12136
printf "%s\n" "$OBJDUMP" >&6; }
11092
else
12137
else
11093
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12138
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
11094
$as_echo "no" >&6; }
12139
printf "%s\n" "no" >&6; }
11095
fi
12140
fi
11096
12141
11097
12142
Lines 11100-11110 Link Here
11100
  ac_ct_OBJDUMP=$OBJDUMP
12145
  ac_ct_OBJDUMP=$OBJDUMP
11101
  # Extract the first word of "objdump", so it can be a program name with args.
12146
  # Extract the first word of "objdump", so it can be a program name with args.
11102
set dummy objdump; ac_word=$2
12147
set dummy objdump; ac_word=$2
11103
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
12148
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
11104
$as_echo_n "checking for $ac_word... " >&6; }
12149
printf %s "checking for $ac_word... " >&6; }
11105
if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
12150
if test ${ac_cv_prog_ac_ct_OBJDUMP+y}
11106
  $as_echo_n "(cached) " >&6
12151
then :
11107
else
12152
  printf %s "(cached) " >&6
12153
else $as_nop
11108
  if test -n "$ac_ct_OBJDUMP"; then
12154
  if test -n "$ac_ct_OBJDUMP"; then
11109
  ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
12155
  ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
11110
else
12156
else
Lines 11112-11122 Link Here
11112
for as_dir in $PATH
12158
for as_dir in $PATH
11113
do
12159
do
11114
  IFS=$as_save_IFS
12160
  IFS=$as_save_IFS
11115
  test -z "$as_dir" && as_dir=.
12161
  case $as_dir in #(((
12162
    '') as_dir=./ ;;
12163
    */) ;;
12164
    *) as_dir=$as_dir/ ;;
12165
  esac
11116
    for ac_exec_ext in '' $ac_executable_extensions; do
12166
    for ac_exec_ext in '' $ac_executable_extensions; do
11117
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
12167
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
11118
    ac_cv_prog_ac_ct_OBJDUMP="objdump"
12168
    ac_cv_prog_ac_ct_OBJDUMP="objdump"
11119
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
12169
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
11120
    break 2
12170
    break 2
11121
  fi
12171
  fi
11122
done
12172
done
Lines 11127-11137 Link Here
11127
fi
12177
fi
11128
ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
12178
ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
11129
if test -n "$ac_ct_OBJDUMP"; then
12179
if test -n "$ac_ct_OBJDUMP"; then
11130
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
12180
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
11131
$as_echo "$ac_ct_OBJDUMP" >&6; }
12181
printf "%s\n" "$ac_ct_OBJDUMP" >&6; }
11132
else
12182
else
11133
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12183
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
11134
$as_echo "no" >&6; }
12184
printf "%s\n" "no" >&6; }
11135
fi
12185
fi
11136
12186
11137
  if test "x$ac_ct_OBJDUMP" = x; then
12187
  if test "x$ac_ct_OBJDUMP" = x; then
Lines 11139-11146 Link Here
11139
  else
12189
  else
11140
    case $cross_compiling:$ac_tool_warned in
12190
    case $cross_compiling:$ac_tool_warned in
11141
yes:)
12191
yes:)
11142
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
12192
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
11143
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
12193
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
11144
ac_tool_warned=yes ;;
12194
ac_tool_warned=yes ;;
11145
esac
12195
esac
11146
    OBJDUMP=$ac_ct_OBJDUMP
12196
    OBJDUMP=$ac_ct_OBJDUMP
Lines 11177-11183 Link Here
11177
12227
11178
12228
11179
            # Check whether --enable-shared was given.
12229
            # Check whether --enable-shared was given.
11180
if test "${enable_shared+set}" = set; then :
12230
if test ${enable_shared+y}
12231
then :
11181
  enableval=$enable_shared; p=${PACKAGE-default}
12232
  enableval=$enable_shared; p=${PACKAGE-default}
11182
    case $enableval in
12233
    case $enableval in
11183
    yes) enable_shared=yes ;;
12234
    yes) enable_shared=yes ;;
Lines 11195-11201 Link Here
11195
      IFS=$lt_save_ifs
12246
      IFS=$lt_save_ifs
11196
      ;;
12247
      ;;
11197
    esac
12248
    esac
11198
else
12249
else $as_nop
11199
  enable_shared=yes
12250
  enable_shared=yes
11200
fi
12251
fi
11201
12252
Lines 11208-11214 Link Here
11208
12259
11209
12260
11210
  # Check whether --enable-static was given.
12261
  # Check whether --enable-static was given.
11211
if test "${enable_static+set}" = set; then :
12262
if test ${enable_static+y}
12263
then :
11212
  enableval=$enable_static; p=${PACKAGE-default}
12264
  enableval=$enable_static; p=${PACKAGE-default}
11213
    case $enableval in
12265
    case $enableval in
11214
    yes) enable_static=yes ;;
12266
    yes) enable_static=yes ;;
Lines 11226-11232 Link Here
11226
      IFS=$lt_save_ifs
12278
      IFS=$lt_save_ifs
11227
      ;;
12279
      ;;
11228
    esac
12280
    esac
11229
else
12281
else $as_nop
11230
  enable_static=yes
12282
  enable_static=yes
11231
fi
12283
fi
11232
12284
Lines 11240-11246 Link Here
11240
12292
11241
12293
11242
# Check whether --with-pic was given.
12294
# Check whether --with-pic was given.
11243
if test "${with_pic+set}" = set; then :
12295
if test ${with_pic+y}
12296
then :
11244
  withval=$with_pic; lt_p=${PACKAGE-default}
12297
  withval=$with_pic; lt_p=${PACKAGE-default}
11245
    case $withval in
12298
    case $withval in
11246
    yes|no) pic_mode=$withval ;;
12299
    yes|no) pic_mode=$withval ;;
Lines 11257-11263 Link Here
11257
      IFS=$lt_save_ifs
12310
      IFS=$lt_save_ifs
11258
      ;;
12311
      ;;
11259
    esac
12312
    esac
11260
else
12313
else $as_nop
11261
  pic_mode=default
12314
  pic_mode=default
11262
fi
12315
fi
11263
12316
Lines 11269-11275 Link Here
11269
12322
11270
12323
11271
  # Check whether --enable-fast-install was given.
12324
  # Check whether --enable-fast-install was given.
11272
if test "${enable_fast_install+set}" = set; then :
12325
if test ${enable_fast_install+y}
12326
then :
11273
  enableval=$enable_fast_install; p=${PACKAGE-default}
12327
  enableval=$enable_fast_install; p=${PACKAGE-default}
11274
    case $enableval in
12328
    case $enableval in
11275
    yes) enable_fast_install=yes ;;
12329
    yes) enable_fast_install=yes ;;
Lines 11287-11293 Link Here
11287
      IFS=$lt_save_ifs
12341
      IFS=$lt_save_ifs
11288
      ;;
12342
      ;;
11289
    esac
12343
    esac
11290
else
12344
else $as_nop
11291
  enable_fast_install=yes
12345
  enable_fast_install=yes
11292
fi
12346
fi
11293
12347
Lines 11301-11311 Link Here
11301
  shared_archive_member_spec=
12355
  shared_archive_member_spec=
11302
case $host,$enable_shared in
12356
case $host,$enable_shared in
11303
power*-*-aix[5-9]*,yes)
12357
power*-*-aix[5-9]*,yes)
11304
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
12358
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
11305
$as_echo_n "checking which variant of shared library versioning to provide... " >&6; }
12359
printf %s "checking which variant of shared library versioning to provide... " >&6; }
11306
12360
11307
# Check whether --with-aix-soname was given.
12361
# Check whether --with-aix-soname was given.
11308
if test "${with_aix_soname+set}" = set; then :
12362
if test ${with_aix_soname+y}
12363
then :
11309
  withval=$with_aix_soname; case $withval in
12364
  withval=$with_aix_soname; case $withval in
11310
    aix|svr4|both)
12365
    aix|svr4|both)
11311
      ;;
12366
      ;;
Lines 11314-11331 Link Here
11314
      ;;
12369
      ;;
11315
    esac
12370
    esac
11316
    lt_cv_with_aix_soname=$with_aix_soname
12371
    lt_cv_with_aix_soname=$with_aix_soname
11317
else
12372
else $as_nop
11318
  if ${lt_cv_with_aix_soname+:} false; then :
12373
  if test ${lt_cv_with_aix_soname+y}
11319
  $as_echo_n "(cached) " >&6
12374
then :
11320
else
12375
  printf %s "(cached) " >&6
12376
else $as_nop
11321
  lt_cv_with_aix_soname=aix
12377
  lt_cv_with_aix_soname=aix
11322
fi
12378
fi
11323
12379
11324
    with_aix_soname=$lt_cv_with_aix_soname
12380
    with_aix_soname=$lt_cv_with_aix_soname
11325
fi
12381
fi
11326
12382
11327
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
12383
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
11328
$as_echo "$with_aix_soname" >&6; }
12384
printf "%s\n" "$with_aix_soname" >&6; }
11329
  if test aix != "$with_aix_soname"; then
12385
  if test aix != "$with_aix_soname"; then
11330
    # For the AIX way of multilib, we name the shared archive member
12386
    # For the AIX way of multilib, we name the shared archive member
11331
    # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
12387
    # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
Lines 11407-11417 Link Here
11407
   setopt NO_GLOB_SUBST
12463
   setopt NO_GLOB_SUBST
11408
fi
12464
fi
11409
12465
11410
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
12466
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
11411
$as_echo_n "checking for objdir... " >&6; }
12467
printf %s "checking for objdir... " >&6; }
11412
if ${lt_cv_objdir+:} false; then :
12468
if test ${lt_cv_objdir+y}
11413
  $as_echo_n "(cached) " >&6
12469
then :
11414
else
12470
  printf %s "(cached) " >&6
12471
else $as_nop
11415
  rm -f .libs 2>/dev/null
12472
  rm -f .libs 2>/dev/null
11416
mkdir .libs 2>/dev/null
12473
mkdir .libs 2>/dev/null
11417
if test -d .libs; then
12474
if test -d .libs; then
Lines 11422-11438 Link Here
11422
fi
12479
fi
11423
rmdir .libs 2>/dev/null
12480
rmdir .libs 2>/dev/null
11424
fi
12481
fi
11425
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
12482
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
11426
$as_echo "$lt_cv_objdir" >&6; }
12483
printf "%s\n" "$lt_cv_objdir" >&6; }
11427
objdir=$lt_cv_objdir
12484
objdir=$lt_cv_objdir
11428
12485
11429
12486
11430
12487
11431
12488
11432
12489
11433
cat >>confdefs.h <<_ACEOF
12490
printf "%s\n" "#define LT_OBJDIR \"$lt_cv_objdir/\"" >>confdefs.h
11434
#define LT_OBJDIR "$lt_cv_objdir/"
11435
_ACEOF
11436
12491
11437
12492
11438
12493
Lines 11478-11488 Link Here
11478
case $deplibs_check_method in
12533
case $deplibs_check_method in
11479
file_magic*)
12534
file_magic*)
11480
  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
12535
  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
11481
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
12536
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
11482
$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
12537
printf %s "checking for ${ac_tool_prefix}file... " >&6; }
11483
if ${lt_cv_path_MAGIC_CMD+:} false; then :
12538
if test ${lt_cv_path_MAGIC_CMD+y}
11484
  $as_echo_n "(cached) " >&6
12539
then :
11485
else
12540
  printf %s "(cached) " >&6
12541
else $as_nop
11486
  case $MAGIC_CMD in
12542
  case $MAGIC_CMD in
11487
[\\/*] |  ?:[\\/]*)
12543
[\\/*] |  ?:[\\/]*)
11488
  lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
12544
  lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
Lines 11531-11541 Link Here
11531
12587
11532
MAGIC_CMD=$lt_cv_path_MAGIC_CMD
12588
MAGIC_CMD=$lt_cv_path_MAGIC_CMD
11533
if test -n "$MAGIC_CMD"; then
12589
if test -n "$MAGIC_CMD"; then
11534
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
12590
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
11535
$as_echo "$MAGIC_CMD" >&6; }
12591
printf "%s\n" "$MAGIC_CMD" >&6; }
11536
else
12592
else
11537
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12593
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
11538
$as_echo "no" >&6; }
12594
printf "%s\n" "no" >&6; }
11539
fi
12595
fi
11540
12596
11541
12597
Lines 11544-11554 Link Here
11544
12600
11545
if test -z "$lt_cv_path_MAGIC_CMD"; then
12601
if test -z "$lt_cv_path_MAGIC_CMD"; then
11546
  if test -n "$ac_tool_prefix"; then
12602
  if test -n "$ac_tool_prefix"; then
11547
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
12603
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for file" >&5
11548
$as_echo_n "checking for file... " >&6; }
12604
printf %s "checking for file... " >&6; }
11549
if ${lt_cv_path_MAGIC_CMD+:} false; then :
12605
if test ${lt_cv_path_MAGIC_CMD+y}
11550
  $as_echo_n "(cached) " >&6
12606
then :
11551
else
12607
  printf %s "(cached) " >&6
12608
else $as_nop
11552
  case $MAGIC_CMD in
12609
  case $MAGIC_CMD in
11553
[\\/*] |  ?:[\\/]*)
12610
[\\/*] |  ?:[\\/]*)
11554
  lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
12611
  lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
Lines 11597-11607 Link Here
11597
12654
11598
MAGIC_CMD=$lt_cv_path_MAGIC_CMD
12655
MAGIC_CMD=$lt_cv_path_MAGIC_CMD
11599
if test -n "$MAGIC_CMD"; then
12656
if test -n "$MAGIC_CMD"; then
11600
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
12657
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
11601
$as_echo "$MAGIC_CMD" >&6; }
12658
printf "%s\n" "$MAGIC_CMD" >&6; }
11602
else
12659
else
11603
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12660
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
11604
$as_echo "no" >&6; }
12661
printf "%s\n" "no" >&6; }
11605
fi
12662
fi
11606
12663
11607
12664
Lines 11686-11696 Link Here
11686
    lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
12743
    lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
11687
  esac
12744
  esac
11688
12745
11689
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
12746
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
11690
$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
12747
printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
11691
if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
12748
if test ${lt_cv_prog_compiler_rtti_exceptions+y}
11692
  $as_echo_n "(cached) " >&6
12749
then :
11693
else
12750
  printf %s "(cached) " >&6
12751
else $as_nop
11694
  lt_cv_prog_compiler_rtti_exceptions=no
12752
  lt_cv_prog_compiler_rtti_exceptions=no
11695
   ac_outfile=conftest.$ac_objext
12753
   ac_outfile=conftest.$ac_objext
11696
   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
12754
   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
Lines 11721-11728 Link Here
11721
   $RM conftest*
12779
   $RM conftest*
11722
12780
11723
fi
12781
fi
11724
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
12782
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
11725
$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
12783
printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
11726
12784
11727
if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then
12785
if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then
11728
    lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
12786
    lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
Lines 11963-11969 Link Here
11963
	lt_prog_compiler_static='-qstaticlink'
13021
	lt_prog_compiler_static='-qstaticlink'
11964
	;;
13022
	;;
11965
      *)
13023
      *)
11966
	case `$CC -V 2>&1 | sed 5q` in
13024
	case `$CC -V 2>&1 | $SED 5q` in
11967
	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
13025
	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
11968
	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
13026
	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
11969
	  lt_prog_compiler_pic='-KPIC'
13027
	  lt_prog_compiler_pic='-KPIC'
Lines 12079-12104 Link Here
12079
    ;;
13137
    ;;
12080
esac
13138
esac
12081
13139
12082
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
13140
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
12083
$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
13141
printf %s "checking for $compiler option to produce PIC... " >&6; }
12084
if ${lt_cv_prog_compiler_pic+:} false; then :
13142
if test ${lt_cv_prog_compiler_pic+y}
12085
  $as_echo_n "(cached) " >&6
13143
then :
12086
else
13144
  printf %s "(cached) " >&6
13145
else $as_nop
12087
  lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
13146
  lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
12088
fi
13147
fi
12089
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
13148
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
12090
$as_echo "$lt_cv_prog_compiler_pic" >&6; }
13149
printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; }
12091
lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
13150
lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
12092
13151
12093
#
13152
#
12094
# Check to make sure the PIC flag actually works.
13153
# Check to make sure the PIC flag actually works.
12095
#
13154
#
12096
if test -n "$lt_prog_compiler_pic"; then
13155
if test -n "$lt_prog_compiler_pic"; then
12097
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
13156
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
12098
$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
13157
printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
12099
if ${lt_cv_prog_compiler_pic_works+:} false; then :
13158
if test ${lt_cv_prog_compiler_pic_works+y}
12100
  $as_echo_n "(cached) " >&6
13159
then :
12101
else
13160
  printf %s "(cached) " >&6
13161
else $as_nop
12102
  lt_cv_prog_compiler_pic_works=no
13162
  lt_cv_prog_compiler_pic_works=no
12103
   ac_outfile=conftest.$ac_objext
13163
   ac_outfile=conftest.$ac_objext
12104
   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
13164
   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
Lines 12129-12136 Link Here
12129
   $RM conftest*
13189
   $RM conftest*
12130
13190
12131
fi
13191
fi
12132
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
13192
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
12133
$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
13193
printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; }
12134
13194
12135
if test yes = "$lt_cv_prog_compiler_pic_works"; then
13195
if test yes = "$lt_cv_prog_compiler_pic_works"; then
12136
    case $lt_prog_compiler_pic in
13196
    case $lt_prog_compiler_pic in
Lines 12158-12168 Link Here
12158
# Check to make sure the static flag actually works.
13218
# Check to make sure the static flag actually works.
12159
#
13219
#
12160
wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
13220
wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
12161
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
13221
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
12162
$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
13222
printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
12163
if ${lt_cv_prog_compiler_static_works+:} false; then :
13223
if test ${lt_cv_prog_compiler_static_works+y}
12164
  $as_echo_n "(cached) " >&6
13224
then :
12165
else
13225
  printf %s "(cached) " >&6
13226
else $as_nop
12166
  lt_cv_prog_compiler_static_works=no
13227
  lt_cv_prog_compiler_static_works=no
12167
   save_LDFLAGS=$LDFLAGS
13228
   save_LDFLAGS=$LDFLAGS
12168
   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
13229
   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
Lines 12186-12193 Link Here
12186
   LDFLAGS=$save_LDFLAGS
13247
   LDFLAGS=$save_LDFLAGS
12187
13248
12188
fi
13249
fi
12189
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
13250
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
12190
$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
13251
printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; }
12191
13252
12192
if test yes = "$lt_cv_prog_compiler_static_works"; then
13253
if test yes = "$lt_cv_prog_compiler_static_works"; then
12193
    :
13254
    :
Lines 12201-12211 Link Here
12201
13262
12202
13263
12203
13264
12204
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
13265
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
12205
$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
13266
printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
12206
if ${lt_cv_prog_compiler_c_o+:} false; then :
13267
if test ${lt_cv_prog_compiler_c_o+y}
12207
  $as_echo_n "(cached) " >&6
13268
then :
12208
else
13269
  printf %s "(cached) " >&6
13270
else $as_nop
12209
  lt_cv_prog_compiler_c_o=no
13271
  lt_cv_prog_compiler_c_o=no
12210
   $RM -r conftest 2>/dev/null
13272
   $RM -r conftest 2>/dev/null
12211
   mkdir conftest
13273
   mkdir conftest
Lines 12248-12266 Link Here
12248
   $RM conftest*
13310
   $RM conftest*
12249
13311
12250
fi
13312
fi
12251
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
13313
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
12252
$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
13314
printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
12253
13315
12254
13316
12255
13317
12256
13318
12257
13319
12258
13320
12259
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
13321
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
12260
$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
13322
printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
12261
if ${lt_cv_prog_compiler_c_o+:} false; then :
13323
if test ${lt_cv_prog_compiler_c_o+y}
12262
  $as_echo_n "(cached) " >&6
13324
then :
12263
else
13325
  printf %s "(cached) " >&6
13326
else $as_nop
12264
  lt_cv_prog_compiler_c_o=no
13327
  lt_cv_prog_compiler_c_o=no
12265
   $RM -r conftest 2>/dev/null
13328
   $RM -r conftest 2>/dev/null
12266
   mkdir conftest
13329
   mkdir conftest
Lines 12303-12310 Link Here
12303
   $RM conftest*
13366
   $RM conftest*
12304
13367
12305
fi
13368
fi
12306
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
13369
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
12307
$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
13370
printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
12308
13371
12309
13372
12310
13373
Lines 12312-12330 Link Here
12312
hard_links=nottested
13375
hard_links=nottested
12313
if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then
13376
if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then
12314
  # do not overwrite the value of need_locks provided by the user
13377
  # do not overwrite the value of need_locks provided by the user
12315
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
13378
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
12316
$as_echo_n "checking if we can lock with hard links... " >&6; }
13379
printf %s "checking if we can lock with hard links... " >&6; }
12317
  hard_links=yes
13380
  hard_links=yes
12318
  $RM conftest*
13381
  $RM conftest*
12319
  ln conftest.a conftest.b 2>/dev/null && hard_links=no
13382
  ln conftest.a conftest.b 2>/dev/null && hard_links=no
12320
  touch conftest.a
13383
  touch conftest.a
12321
  ln conftest.a conftest.b 2>&5 || hard_links=no
13384
  ln conftest.a conftest.b 2>&5 || hard_links=no
12322
  ln conftest.a conftest.b 2>/dev/null && hard_links=no
13385
  ln conftest.a conftest.b 2>/dev/null && hard_links=no
12323
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
13386
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
12324
$as_echo "$hard_links" >&6; }
13387
printf "%s\n" "$hard_links" >&6; }
12325
  if test no = "$hard_links"; then
13388
  if test no = "$hard_links"; then
12326
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
13389
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
12327
$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
13390
printf "%s\n" "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
12328
    need_locks=warn
13391
    need_locks=warn
12329
  fi
13392
  fi
12330
else
13393
else
Lines 12336-12343 Link Here
12336
13399
12337
13400
12338
13401
12339
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
13402
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
12340
$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
13403
printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
12341
13404
12342
  runpath_var=
13405
  runpath_var=
12343
  allow_undefined_flag=
13406
  allow_undefined_flag=
Lines 12441-12447 Link Here
12441
      whole_archive_flag_spec=
13504
      whole_archive_flag_spec=
12442
    fi
13505
    fi
12443
    supports_anon_versioning=no
13506
    supports_anon_versioning=no
12444
    case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in
13507
    case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in
12445
      *GNU\ gold*) supports_anon_versioning=yes ;;
13508
      *GNU\ gold*) supports_anon_versioning=yes ;;
12446
      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
13509
      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
12447
      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
13510
      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
Lines 12568-12574 Link Here
12568
      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
13631
      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
12569
      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
13632
      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
12570
      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
13633
      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
12571
      archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
13634
      archive_expsym_cmds='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
12572
      ;;
13635
      ;;
12573
13636
12574
    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
13637
    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
Lines 12611-12617 Link Here
12611
	  compiler_needs_object=yes
13674
	  compiler_needs_object=yes
12612
	  ;;
13675
	  ;;
12613
	esac
13676
	esac
12614
	case `$CC -V 2>&1 | sed 5q` in
13677
	case `$CC -V 2>&1 | $SED 5q` in
12615
	*Sun\ C*)			# Sun C 5.9
13678
	*Sun\ C*)			# Sun C 5.9
12616
	  whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
13679
	  whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
12617
	  compiler_needs_object=yes
13680
	  compiler_needs_object=yes
Lines 12623-12629 Link Here
12623
13686
12624
        if test yes = "$supports_anon_versioning"; then
13687
        if test yes = "$supports_anon_versioning"; then
12625
          archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
13688
          archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
12626
            cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
13689
            cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
12627
            echo "local: *; };" >> $output_objdir/$libname.ver~
13690
            echo "local: *; };" >> $output_objdir/$libname.ver~
12628
            $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
13691
            $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
12629
        fi
13692
        fi
Lines 12639-12645 Link Here
12639
	  archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
13702
	  archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
12640
	  if test yes = "$supports_anon_versioning"; then
13703
	  if test yes = "$supports_anon_versioning"; then
12641
	    archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
13704
	    archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
12642
              cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
13705
              cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
12643
              echo "local: *; };" >> $output_objdir/$libname.ver~
13706
              echo "local: *; };" >> $output_objdir/$libname.ver~
12644
              $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
13707
              $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
12645
	  fi
13708
	  fi
Lines 12893-12913 Link Here
12893
        if test set = "${lt_cv_aix_libpath+set}"; then
13956
        if test set = "${lt_cv_aix_libpath+set}"; then
12894
  aix_libpath=$lt_cv_aix_libpath
13957
  aix_libpath=$lt_cv_aix_libpath
12895
else
13958
else
12896
  if ${lt_cv_aix_libpath_+:} false; then :
13959
  if test ${lt_cv_aix_libpath_+y}
12897
  $as_echo_n "(cached) " >&6
13960
then :
12898
else
13961
  printf %s "(cached) " >&6
13962
else $as_nop
12899
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
13963
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
12900
/* end confdefs.h.  */
13964
/* end confdefs.h.  */
12901
13965
12902
int
13966
int
12903
main ()
13967
main (void)
12904
{
13968
{
12905
13969
12906
  ;
13970
  ;
12907
  return 0;
13971
  return 0;
12908
}
13972
}
12909
_ACEOF
13973
_ACEOF
12910
if ac_fn_c_try_link "$LINENO"; then :
13974
if ac_fn_c_try_link "$LINENO"
13975
then :
12911
13976
12912
  lt_aix_libpath_sed='
13977
  lt_aix_libpath_sed='
12913
      /Import File Strings/,/^$/ {
13978
      /Import File Strings/,/^$/ {
Lines 12922-12928 Link Here
12922
    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
13987
    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
12923
  fi
13988
  fi
12924
fi
13989
fi
12925
rm -f core conftest.err conftest.$ac_objext \
13990
rm -f core conftest.err conftest.$ac_objext conftest.beam \
12926
    conftest$ac_exeext conftest.$ac_ext
13991
    conftest$ac_exeext conftest.$ac_ext
12927
  if test -z "$lt_cv_aix_libpath_"; then
13992
  if test -z "$lt_cv_aix_libpath_"; then
12928
    lt_cv_aix_libpath_=/usr/lib:/lib
13993
    lt_cv_aix_libpath_=/usr/lib:/lib
Lines 12946-12966 Link Here
12946
	 if test set = "${lt_cv_aix_libpath+set}"; then
14011
	 if test set = "${lt_cv_aix_libpath+set}"; then
12947
  aix_libpath=$lt_cv_aix_libpath
14012
  aix_libpath=$lt_cv_aix_libpath
12948
else
14013
else
12949
  if ${lt_cv_aix_libpath_+:} false; then :
14014
  if test ${lt_cv_aix_libpath_+y}
12950
  $as_echo_n "(cached) " >&6
14015
then :
12951
else
14016
  printf %s "(cached) " >&6
14017
else $as_nop
12952
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
14018
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
12953
/* end confdefs.h.  */
14019
/* end confdefs.h.  */
12954
14020
12955
int
14021
int
12956
main ()
14022
main (void)
12957
{
14023
{
12958
14024
12959
  ;
14025
  ;
12960
  return 0;
14026
  return 0;
12961
}
14027
}
12962
_ACEOF
14028
_ACEOF
12963
if ac_fn_c_try_link "$LINENO"; then :
14029
if ac_fn_c_try_link "$LINENO"
14030
then :
12964
14031
12965
  lt_aix_libpath_sed='
14032
  lt_aix_libpath_sed='
12966
      /Import File Strings/,/^$/ {
14033
      /Import File Strings/,/^$/ {
Lines 12975-12981 Link Here
12975
    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
14042
    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
12976
  fi
14043
  fi
12977
fi
14044
fi
12978
rm -f core conftest.err conftest.$ac_objext \
14045
rm -f core conftest.err conftest.$ac_objext conftest.beam \
12979
    conftest$ac_exeext conftest.$ac_ext
14046
    conftest$ac_exeext conftest.$ac_ext
12980
  if test -z "$lt_cv_aix_libpath_"; then
14047
  if test -z "$lt_cv_aix_libpath_"; then
12981
    lt_cv_aix_libpath_=/usr/lib:/lib
14048
    lt_cv_aix_libpath_=/usr/lib:/lib
Lines 13125-13132 Link Here
13125
    output_verbose_link_cmd=func_echo_all
14192
    output_verbose_link_cmd=func_echo_all
13126
    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
14193
    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
13127
    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
14194
    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
13128
    archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
14195
    archive_expsym_cmds="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
13129
    module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
14196
    module_expsym_cmds="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
13130
14197
13131
  else
14198
  else
13132
  ld_shlibs=no
14199
  ld_shlibs=no
Lines 13160-13166 Link Here
13160
      ;;
14227
      ;;
13161
14228
13162
    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
14229
    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
13163
    freebsd* | dragonfly*)
14230
    freebsd* | dragonfly* | midnightbsd*)
13164
      archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
14231
      archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
13165
      hardcode_libdir_flag_spec='-R$libdir'
14232
      hardcode_libdir_flag_spec='-R$libdir'
13166
      hardcode_direct=yes
14233
      hardcode_direct=yes
Lines 13226-13236 Link Here
13226
14293
13227
	  # Older versions of the 11.00 compiler do not understand -b yet
14294
	  # Older versions of the 11.00 compiler do not understand -b yet
13228
	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
14295
	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
13229
	  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
14296
	  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
13230
$as_echo_n "checking if $CC understands -b... " >&6; }
14297
printf %s "checking if $CC understands -b... " >&6; }
13231
if ${lt_cv_prog_compiler__b+:} false; then :
14298
if test ${lt_cv_prog_compiler__b+y}
13232
  $as_echo_n "(cached) " >&6
14299
then :
13233
else
14300
  printf %s "(cached) " >&6
14301
else $as_nop
13234
  lt_cv_prog_compiler__b=no
14302
  lt_cv_prog_compiler__b=no
13235
   save_LDFLAGS=$LDFLAGS
14303
   save_LDFLAGS=$LDFLAGS
13236
   LDFLAGS="$LDFLAGS -b"
14304
   LDFLAGS="$LDFLAGS -b"
Lines 13254-13261 Link Here
13254
   LDFLAGS=$save_LDFLAGS
14322
   LDFLAGS=$save_LDFLAGS
13255
14323
13256
fi
14324
fi
13257
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
14325
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
13258
$as_echo "$lt_cv_prog_compiler__b" >&6; }
14326
printf "%s\n" "$lt_cv_prog_compiler__b" >&6; }
13259
14327
13260
if test yes = "$lt_cv_prog_compiler__b"; then
14328
if test yes = "$lt_cv_prog_compiler__b"; then
13261
    archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
14329
    archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
Lines 13295-13322 Link Here
13295
	# work, assume that -exports_file does not work either and
14363
	# work, assume that -exports_file does not work either and
13296
	# implicitly export all symbols.
14364
	# implicitly export all symbols.
13297
	# This should be the same for all languages, so no per-tag cache variable.
14365
	# This should be the same for all languages, so no per-tag cache variable.
13298
	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
14366
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
13299
$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
14367
printf %s "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
13300
if ${lt_cv_irix_exported_symbol+:} false; then :
14368
if test ${lt_cv_irix_exported_symbol+y}
13301
  $as_echo_n "(cached) " >&6
14369
then :
13302
else
14370
  printf %s "(cached) " >&6
14371
else $as_nop
13303
  save_LDFLAGS=$LDFLAGS
14372
  save_LDFLAGS=$LDFLAGS
13304
	   LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
14373
	   LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
13305
	   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
14374
	   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
13306
/* end confdefs.h.  */
14375
/* end confdefs.h.  */
13307
int foo (void) { return 0; }
14376
int foo (void) { return 0; }
13308
_ACEOF
14377
_ACEOF
13309
if ac_fn_c_try_link "$LINENO"; then :
14378
if ac_fn_c_try_link "$LINENO"
14379
then :
13310
  lt_cv_irix_exported_symbol=yes
14380
  lt_cv_irix_exported_symbol=yes
13311
else
14381
else $as_nop
13312
  lt_cv_irix_exported_symbol=no
14382
  lt_cv_irix_exported_symbol=no
13313
fi
14383
fi
13314
rm -f core conftest.err conftest.$ac_objext \
14384
rm -f core conftest.err conftest.$ac_objext conftest.beam \
13315
    conftest$ac_exeext conftest.$ac_ext
14385
    conftest$ac_exeext conftest.$ac_ext
13316
           LDFLAGS=$save_LDFLAGS
14386
           LDFLAGS=$save_LDFLAGS
13317
fi
14387
fi
13318
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
14388
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
13319
$as_echo "$lt_cv_irix_exported_symbol" >&6; }
14389
printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
13320
	if test yes = "$lt_cv_irix_exported_symbol"; then
14390
	if test yes = "$lt_cv_irix_exported_symbol"; then
13321
          archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
14391
          archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
13322
	fi
14392
	fi
Lines 13597-13604 Link Here
13597
    fi
14667
    fi
13598
  fi
14668
  fi
13599
14669
13600
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
14670
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
13601
$as_echo "$ld_shlibs" >&6; }
14671
printf "%s\n" "$ld_shlibs" >&6; }
13602
test no = "$ld_shlibs" && can_build_shared=no
14672
test no = "$ld_shlibs" && can_build_shared=no
13603
14673
13604
with_gnu_ld=$with_gnu_ld
14674
with_gnu_ld=$with_gnu_ld
Lines 13634-13651 Link Here
13634
      # Test whether the compiler implicitly links with -lc since on some
14704
      # Test whether the compiler implicitly links with -lc since on some
13635
      # systems, -lgcc has to come before -lc. If gcc already passes -lc
14705
      # systems, -lgcc has to come before -lc. If gcc already passes -lc
13636
      # to ld, don't add -lc before -lgcc.
14706
      # to ld, don't add -lc before -lgcc.
13637
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
14707
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
13638
$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
14708
printf %s "checking whether -lc should be explicitly linked in... " >&6; }
13639
if ${lt_cv_archive_cmds_need_lc+:} false; then :
14709
if test ${lt_cv_archive_cmds_need_lc+y}
13640
  $as_echo_n "(cached) " >&6
14710
then :
13641
else
14711
  printf %s "(cached) " >&6
14712
else $as_nop
13642
  $RM conftest*
14713
  $RM conftest*
13643
	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
14714
	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
13644
14715
13645
	if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
14716
	if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
13646
  (eval $ac_compile) 2>&5
14717
  (eval $ac_compile) 2>&5
13647
  ac_status=$?
14718
  ac_status=$?
13648
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
14719
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
13649
  test $ac_status = 0; } 2>conftest.err; then
14720
  test $ac_status = 0; } 2>conftest.err; then
13650
	  soname=conftest
14721
	  soname=conftest
13651
	  lib=conftest
14722
	  lib=conftest
Lines 13663-13669 Link Here
13663
	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
14734
	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
13664
  (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
14735
  (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
13665
  ac_status=$?
14736
  ac_status=$?
13666
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
14737
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
13667
  test $ac_status = 0; }
14738
  test $ac_status = 0; }
13668
	  then
14739
	  then
13669
	    lt_cv_archive_cmds_need_lc=no
14740
	    lt_cv_archive_cmds_need_lc=no
Lines 13677-13684 Link Here
13677
	$RM conftest*
14748
	$RM conftest*
13678
14749
13679
fi
14750
fi
13680
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
14751
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
13681
$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
14752
printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; }
13682
      archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
14753
      archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
13683
      ;;
14754
      ;;
13684
    esac
14755
    esac
Lines 13837-13844 Link Here
13837
14908
13838
14909
13839
14910
13840
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
14911
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
13841
$as_echo_n "checking dynamic linker characteristics... " >&6; }
14912
printf %s "checking dynamic linker characteristics... " >&6; }
13842
14913
13843
if test yes = "$GCC"; then
14914
if test yes = "$GCC"; then
13844
  case $host_os in
14915
  case $host_os in
Lines 14100-14106 Link Here
14100
    case $host_os in
15171
    case $host_os in
14101
    cygwin*)
15172
    cygwin*)
14102
      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
15173
      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
14103
      soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
15174
      soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
14104
15175
14105
      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
15176
      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
14106
      ;;
15177
      ;;
Lines 14110-14116 Link Here
14110
      ;;
15181
      ;;
14111
    pw32*)
15182
    pw32*)
14112
      # pw32 DLLs use 'pw' prefix rather than 'lib'
15183
      # pw32 DLLs use 'pw' prefix rather than 'lib'
14113
      library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
15184
      library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
14114
      ;;
15185
      ;;
14115
    esac
15186
    esac
14116
    dynamic_linker='Win32 ld.exe'
15187
    dynamic_linker='Win32 ld.exe'
Lines 14136-14142 Link Here
14136
      done
15207
      done
14137
      IFS=$lt_save_ifs
15208
      IFS=$lt_save_ifs
14138
      # Convert to MSYS style.
15209
      # Convert to MSYS style.
14139
      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
15210
      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
14140
      ;;
15211
      ;;
14141
    cygwin*)
15212
    cygwin*)
14142
      # Convert to unix form, then to dos form, then back to unix form
15213
      # Convert to unix form, then to dos form, then back to unix form
Lines 14206-14212 Link Here
14206
  shlibpath_var=LD_LIBRARY_PATH
15277
  shlibpath_var=LD_LIBRARY_PATH
14207
  ;;
15278
  ;;
14208
15279
14209
freebsd* | dragonfly*)
15280
freebsd* | dragonfly* | midnightbsd*)
14210
  # DragonFly does not have aout.  When/if they implement a new
15281
  # DragonFly does not have aout.  When/if they implement a new
14211
  # versioning mechanism, adjust this.
15282
  # versioning mechanism, adjust this.
14212
  if test -x /usr/bin/objformat; then
15283
  if test -x /usr/bin/objformat; then
Lines 14399-14407 Link Here
14399
  shlibpath_overrides_runpath=no
15470
  shlibpath_overrides_runpath=no
14400
15471
14401
  # Some binutils ld are patched to set DT_RUNPATH
15472
  # Some binutils ld are patched to set DT_RUNPATH
14402
  if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
15473
  if test ${lt_cv_shlibpath_overrides_runpath+y}
14403
  $as_echo_n "(cached) " >&6
15474
then :
14404
else
15475
  printf %s "(cached) " >&6
15476
else $as_nop
14405
  lt_cv_shlibpath_overrides_runpath=no
15477
  lt_cv_shlibpath_overrides_runpath=no
14406
    save_LDFLAGS=$LDFLAGS
15478
    save_LDFLAGS=$LDFLAGS
14407
    save_libdir=$libdir
15479
    save_libdir=$libdir
Lines 14411-14429 Link Here
14411
/* end confdefs.h.  */
15483
/* end confdefs.h.  */
14412
15484
14413
int
15485
int
14414
main ()
15486
main (void)
14415
{
15487
{
14416
15488
14417
  ;
15489
  ;
14418
  return 0;
15490
  return 0;
14419
}
15491
}
14420
_ACEOF
15492
_ACEOF
14421
if ac_fn_c_try_link "$LINENO"; then :
15493
if ac_fn_c_try_link "$LINENO"
14422
  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
15494
then :
15495
  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null
15496
then :
14423
  lt_cv_shlibpath_overrides_runpath=yes
15497
  lt_cv_shlibpath_overrides_runpath=yes
14424
fi
15498
fi
14425
fi
15499
fi
14426
rm -f core conftest.err conftest.$ac_objext \
15500
rm -f core conftest.err conftest.$ac_objext conftest.beam \
14427
    conftest$ac_exeext conftest.$ac_ext
15501
    conftest$ac_exeext conftest.$ac_ext
14428
    LDFLAGS=$save_LDFLAGS
15502
    LDFLAGS=$save_LDFLAGS
14429
    libdir=$save_libdir
15503
    libdir=$save_libdir
Lines 14655-14662 Link Here
14655
  dynamic_linker=no
15729
  dynamic_linker=no
14656
  ;;
15730
  ;;
14657
esac
15731
esac
14658
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
15732
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
14659
$as_echo "$dynamic_linker" >&6; }
15733
printf "%s\n" "$dynamic_linker" >&6; }
14660
test no = "$dynamic_linker" && can_build_shared=no
15734
test no = "$dynamic_linker" && can_build_shared=no
14661
15735
14662
variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
15736
variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
Lines 14777-14784 Link Here
14777
15851
14778
15852
14779
15853
14780
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
15854
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
14781
$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
15855
printf %s "checking how to hardcode library paths into programs... " >&6; }
14782
hardcode_action=
15856
hardcode_action=
14783
if test -n "$hardcode_libdir_flag_spec" ||
15857
if test -n "$hardcode_libdir_flag_spec" ||
14784
   test -n "$runpath_var" ||
15858
   test -n "$runpath_var" ||
Lines 14802-14809 Link Here
14802
  # directories.
15876
  # directories.
14803
  hardcode_action=unsupported
15877
  hardcode_action=unsupported
14804
fi
15878
fi
14805
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
15879
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
14806
$as_echo "$hardcode_action" >&6; }
15880
printf "%s\n" "$hardcode_action" >&6; }
14807
15881
14808
if test relink = "$hardcode_action" ||
15882
if test relink = "$hardcode_action" ||
14809
   test yes = "$inherit_rpath"; then
15883
   test yes = "$inherit_rpath"; then
Lines 14847-14857 Link Here
14847
15921
14848
  darwin*)
15922
  darwin*)
14849
    # if libdl is installed we need to link against it
15923
    # if libdl is installed we need to link against it
14850
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
15924
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
14851
$as_echo_n "checking for dlopen in -ldl... " >&6; }
15925
printf %s "checking for dlopen in -ldl... " >&6; }
14852
if ${ac_cv_lib_dl_dlopen+:} false; then :
15926
if test ${ac_cv_lib_dl_dlopen+y}
14853
  $as_echo_n "(cached) " >&6
15927
then :
14854
else
15928
  printf %s "(cached) " >&6
15929
else $as_nop
14855
  ac_check_lib_save_LIBS=$LIBS
15930
  ac_check_lib_save_LIBS=$LIBS
14856
LIBS="-ldl  $LIBS"
15931
LIBS="-ldl  $LIBS"
14857
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
15932
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Lines 14860-14891 Link Here
14860
/* Override any GCC internal prototype to avoid an error.
15935
/* Override any GCC internal prototype to avoid an error.
14861
   Use char because int might match the return type of a GCC
15936
   Use char because int might match the return type of a GCC
14862
   builtin and then its argument prototype would still apply.  */
15937
   builtin and then its argument prototype would still apply.  */
14863
#ifdef __cplusplus
14864
extern "C"
14865
#endif
14866
char dlopen ();
15938
char dlopen ();
14867
int
15939
int
14868
main ()
15940
main (void)
14869
{
15941
{
14870
return dlopen ();
15942
return dlopen ();
14871
  ;
15943
  ;
14872
  return 0;
15944
  return 0;
14873
}
15945
}
14874
_ACEOF
15946
_ACEOF
14875
if ac_fn_c_try_link "$LINENO"; then :
15947
if ac_fn_c_try_link "$LINENO"
15948
then :
14876
  ac_cv_lib_dl_dlopen=yes
15949
  ac_cv_lib_dl_dlopen=yes
14877
else
15950
else $as_nop
14878
  ac_cv_lib_dl_dlopen=no
15951
  ac_cv_lib_dl_dlopen=no
14879
fi
15952
fi
14880
rm -f core conftest.err conftest.$ac_objext \
15953
rm -f core conftest.err conftest.$ac_objext conftest.beam \
14881
    conftest$ac_exeext conftest.$ac_ext
15954
    conftest$ac_exeext conftest.$ac_ext
14882
LIBS=$ac_check_lib_save_LIBS
15955
LIBS=$ac_check_lib_save_LIBS
14883
fi
15956
fi
14884
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
15957
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
14885
$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
15958
printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
14886
if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
15959
if test "x$ac_cv_lib_dl_dlopen" = xyes
15960
then :
14887
  lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
15961
  lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
14888
else
15962
else $as_nop
14889
15963
14890
    lt_cv_dlopen=dyld
15964
    lt_cv_dlopen=dyld
14891
    lt_cv_dlopen_libs=
15965
    lt_cv_dlopen_libs=
Lines 14905-14918 Link Here
14905
15979
14906
  *)
15980
  *)
14907
    ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
15981
    ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
14908
if test "x$ac_cv_func_shl_load" = xyes; then :
15982
if test "x$ac_cv_func_shl_load" = xyes
15983
then :
14909
  lt_cv_dlopen=shl_load
15984
  lt_cv_dlopen=shl_load
14910
else
15985
else $as_nop
14911
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
15986
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
14912
$as_echo_n "checking for shl_load in -ldld... " >&6; }
15987
printf %s "checking for shl_load in -ldld... " >&6; }
14913
if ${ac_cv_lib_dld_shl_load+:} false; then :
15988
if test ${ac_cv_lib_dld_shl_load+y}
14914
  $as_echo_n "(cached) " >&6
15989
then :
14915
else
15990
  printf %s "(cached) " >&6
15991
else $as_nop
14916
  ac_check_lib_save_LIBS=$LIBS
15992
  ac_check_lib_save_LIBS=$LIBS
14917
LIBS="-ldld  $LIBS"
15993
LIBS="-ldld  $LIBS"
14918
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
15994
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Lines 14921-14961 Link Here
14921
/* Override any GCC internal prototype to avoid an error.
15997
/* Override any GCC internal prototype to avoid an error.
14922
   Use char because int might match the return type of a GCC
15998
   Use char because int might match the return type of a GCC
14923
   builtin and then its argument prototype would still apply.  */
15999
   builtin and then its argument prototype would still apply.  */
14924
#ifdef __cplusplus
14925
extern "C"
14926
#endif
14927
char shl_load ();
16000
char shl_load ();
14928
int
16001
int
14929
main ()
16002
main (void)
14930
{
16003
{
14931
return shl_load ();
16004
return shl_load ();
14932
  ;
16005
  ;
14933
  return 0;
16006
  return 0;
14934
}
16007
}
14935
_ACEOF
16008
_ACEOF
14936
if ac_fn_c_try_link "$LINENO"; then :
16009
if ac_fn_c_try_link "$LINENO"
16010
then :
14937
  ac_cv_lib_dld_shl_load=yes
16011
  ac_cv_lib_dld_shl_load=yes
14938
else
16012
else $as_nop
14939
  ac_cv_lib_dld_shl_load=no
16013
  ac_cv_lib_dld_shl_load=no
14940
fi
16014
fi
14941
rm -f core conftest.err conftest.$ac_objext \
16015
rm -f core conftest.err conftest.$ac_objext conftest.beam \
14942
    conftest$ac_exeext conftest.$ac_ext
16016
    conftest$ac_exeext conftest.$ac_ext
14943
LIBS=$ac_check_lib_save_LIBS
16017
LIBS=$ac_check_lib_save_LIBS
14944
fi
16018
fi
14945
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
16019
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
14946
$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
16020
printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; }
14947
if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
16021
if test "x$ac_cv_lib_dld_shl_load" = xyes
16022
then :
14948
  lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
16023
  lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
14949
else
16024
else $as_nop
14950
  ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
16025
  ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
14951
if test "x$ac_cv_func_dlopen" = xyes; then :
16026
if test "x$ac_cv_func_dlopen" = xyes
16027
then :
14952
  lt_cv_dlopen=dlopen
16028
  lt_cv_dlopen=dlopen
14953
else
16029
else $as_nop
14954
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
16030
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
14955
$as_echo_n "checking for dlopen in -ldl... " >&6; }
16031
printf %s "checking for dlopen in -ldl... " >&6; }
14956
if ${ac_cv_lib_dl_dlopen+:} false; then :
16032
if test ${ac_cv_lib_dl_dlopen+y}
14957
  $as_echo_n "(cached) " >&6
16033
then :
14958
else
16034
  printf %s "(cached) " >&6
16035
else $as_nop
14959
  ac_check_lib_save_LIBS=$LIBS
16036
  ac_check_lib_save_LIBS=$LIBS
14960
LIBS="-ldl  $LIBS"
16037
LIBS="-ldl  $LIBS"
14961
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
16038
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Lines 14964-15000 Link Here
14964
/* Override any GCC internal prototype to avoid an error.
16041
/* Override any GCC internal prototype to avoid an error.
14965
   Use char because int might match the return type of a GCC
16042
   Use char because int might match the return type of a GCC
14966
   builtin and then its argument prototype would still apply.  */
16043
   builtin and then its argument prototype would still apply.  */
14967
#ifdef __cplusplus
14968
extern "C"
14969
#endif
14970
char dlopen ();
16044
char dlopen ();
14971
int
16045
int
14972
main ()
16046
main (void)
14973
{
16047
{
14974
return dlopen ();
16048
return dlopen ();
14975
  ;
16049
  ;
14976
  return 0;
16050
  return 0;
14977
}
16051
}
14978
_ACEOF
16052
_ACEOF
14979
if ac_fn_c_try_link "$LINENO"; then :
16053
if ac_fn_c_try_link "$LINENO"
16054
then :
14980
  ac_cv_lib_dl_dlopen=yes
16055
  ac_cv_lib_dl_dlopen=yes
14981
else
16056
else $as_nop
14982
  ac_cv_lib_dl_dlopen=no
16057
  ac_cv_lib_dl_dlopen=no
14983
fi
16058
fi
14984
rm -f core conftest.err conftest.$ac_objext \
16059
rm -f core conftest.err conftest.$ac_objext conftest.beam \
14985
    conftest$ac_exeext conftest.$ac_ext
16060
    conftest$ac_exeext conftest.$ac_ext
14986
LIBS=$ac_check_lib_save_LIBS
16061
LIBS=$ac_check_lib_save_LIBS
14987
fi
16062
fi
14988
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
16063
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
14989
$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
16064
printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
14990
if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
16065
if test "x$ac_cv_lib_dl_dlopen" = xyes
16066
then :
14991
  lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
16067
  lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
14992
else
16068
else $as_nop
14993
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
16069
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
14994
$as_echo_n "checking for dlopen in -lsvld... " >&6; }
16070
printf %s "checking for dlopen in -lsvld... " >&6; }
14995
if ${ac_cv_lib_svld_dlopen+:} false; then :
16071
if test ${ac_cv_lib_svld_dlopen+y}
14996
  $as_echo_n "(cached) " >&6
16072
then :
14997
else
16073
  printf %s "(cached) " >&6
16074
else $as_nop
14998
  ac_check_lib_save_LIBS=$LIBS
16075
  ac_check_lib_save_LIBS=$LIBS
14999
LIBS="-lsvld  $LIBS"
16076
LIBS="-lsvld  $LIBS"
15000
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
16077
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Lines 15003-15039 Link Here
15003
/* Override any GCC internal prototype to avoid an error.
16080
/* Override any GCC internal prototype to avoid an error.
15004
   Use char because int might match the return type of a GCC
16081
   Use char because int might match the return type of a GCC
15005
   builtin and then its argument prototype would still apply.  */
16082
   builtin and then its argument prototype would still apply.  */
15006
#ifdef __cplusplus
15007
extern "C"
15008
#endif
15009
char dlopen ();
16083
char dlopen ();
15010
int
16084
int
15011
main ()
16085
main (void)
15012
{
16086
{
15013
return dlopen ();
16087
return dlopen ();
15014
  ;
16088
  ;
15015
  return 0;
16089
  return 0;
15016
}
16090
}
15017
_ACEOF
16091
_ACEOF
15018
if ac_fn_c_try_link "$LINENO"; then :
16092
if ac_fn_c_try_link "$LINENO"
16093
then :
15019
  ac_cv_lib_svld_dlopen=yes
16094
  ac_cv_lib_svld_dlopen=yes
15020
else
16095
else $as_nop
15021
  ac_cv_lib_svld_dlopen=no
16096
  ac_cv_lib_svld_dlopen=no
15022
fi
16097
fi
15023
rm -f core conftest.err conftest.$ac_objext \
16098
rm -f core conftest.err conftest.$ac_objext conftest.beam \
15024
    conftest$ac_exeext conftest.$ac_ext
16099
    conftest$ac_exeext conftest.$ac_ext
15025
LIBS=$ac_check_lib_save_LIBS
16100
LIBS=$ac_check_lib_save_LIBS
15026
fi
16101
fi
15027
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
16102
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
15028
$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
16103
printf "%s\n" "$ac_cv_lib_svld_dlopen" >&6; }
15029
if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
16104
if test "x$ac_cv_lib_svld_dlopen" = xyes
16105
then :
15030
  lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
16106
  lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
15031
else
16107
else $as_nop
15032
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
16108
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
15033
$as_echo_n "checking for dld_link in -ldld... " >&6; }
16109
printf %s "checking for dld_link in -ldld... " >&6; }
15034
if ${ac_cv_lib_dld_dld_link+:} false; then :
16110
if test ${ac_cv_lib_dld_dld_link+y}
15035
  $as_echo_n "(cached) " >&6
16111
then :
15036
else
16112
  printf %s "(cached) " >&6
16113
else $as_nop
15037
  ac_check_lib_save_LIBS=$LIBS
16114
  ac_check_lib_save_LIBS=$LIBS
15038
LIBS="-ldld  $LIBS"
16115
LIBS="-ldld  $LIBS"
15039
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
16116
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Lines 15042-15071 Link Here
15042
/* Override any GCC internal prototype to avoid an error.
16119
/* Override any GCC internal prototype to avoid an error.
15043
   Use char because int might match the return type of a GCC
16120
   Use char because int might match the return type of a GCC
15044
   builtin and then its argument prototype would still apply.  */
16121
   builtin and then its argument prototype would still apply.  */
15045
#ifdef __cplusplus
15046
extern "C"
15047
#endif
15048
char dld_link ();
16122
char dld_link ();
15049
int
16123
int
15050
main ()
16124
main (void)
15051
{
16125
{
15052
return dld_link ();
16126
return dld_link ();
15053
  ;
16127
  ;
15054
  return 0;
16128
  return 0;
15055
}
16129
}
15056
_ACEOF
16130
_ACEOF
15057
if ac_fn_c_try_link "$LINENO"; then :
16131
if ac_fn_c_try_link "$LINENO"
16132
then :
15058
  ac_cv_lib_dld_dld_link=yes
16133
  ac_cv_lib_dld_dld_link=yes
15059
else
16134
else $as_nop
15060
  ac_cv_lib_dld_dld_link=no
16135
  ac_cv_lib_dld_dld_link=no
15061
fi
16136
fi
15062
rm -f core conftest.err conftest.$ac_objext \
16137
rm -f core conftest.err conftest.$ac_objext conftest.beam \
15063
    conftest$ac_exeext conftest.$ac_ext
16138
    conftest$ac_exeext conftest.$ac_ext
15064
LIBS=$ac_check_lib_save_LIBS
16139
LIBS=$ac_check_lib_save_LIBS
15065
fi
16140
fi
15066
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
16141
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
15067
$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
16142
printf "%s\n" "$ac_cv_lib_dld_dld_link" >&6; }
15068
if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
16143
if test "x$ac_cv_lib_dld_dld_link" = xyes
16144
then :
15069
  lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
16145
  lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
15070
fi
16146
fi
15071
16147
Lines 15104-15114 Link Here
15104
    save_LIBS=$LIBS
16180
    save_LIBS=$LIBS
15105
    LIBS="$lt_cv_dlopen_libs $LIBS"
16181
    LIBS="$lt_cv_dlopen_libs $LIBS"
15106
16182
15107
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
16183
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
15108
$as_echo_n "checking whether a program can dlopen itself... " >&6; }
16184
printf %s "checking whether a program can dlopen itself... " >&6; }
15109
if ${lt_cv_dlopen_self+:} false; then :
16185
if test ${lt_cv_dlopen_self+y}
15110
  $as_echo_n "(cached) " >&6
16186
then :
15111
else
16187
  printf %s "(cached) " >&6
16188
else $as_nop
15112
  	  if test yes = "$cross_compiling"; then :
16189
  	  if test yes = "$cross_compiling"; then :
15113
  lt_cv_dlopen_self=cross
16190
  lt_cv_dlopen_self=cross
15114
else
16191
else
Lines 15187-15193 Link Here
15187
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
16264
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
15188
  (eval $ac_link) 2>&5
16265
  (eval $ac_link) 2>&5
15189
  ac_status=$?
16266
  ac_status=$?
15190
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
16267
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
15191
  test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
16268
  test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
15192
    (./conftest; exit; ) >&5 2>/dev/null
16269
    (./conftest; exit; ) >&5 2>/dev/null
15193
    lt_status=$?
16270
    lt_status=$?
Lines 15205-15220 Link Here
15205
16282
15206
16283
15207
fi
16284
fi
15208
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
16285
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
15209
$as_echo "$lt_cv_dlopen_self" >&6; }
16286
printf "%s\n" "$lt_cv_dlopen_self" >&6; }
15210
16287
15211
    if test yes = "$lt_cv_dlopen_self"; then
16288
    if test yes = "$lt_cv_dlopen_self"; then
15212
      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
16289
      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
15213
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
16290
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
15214
$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
16291
printf %s "checking whether a statically linked program can dlopen itself... " >&6; }
15215
if ${lt_cv_dlopen_self_static+:} false; then :
16292
if test ${lt_cv_dlopen_self_static+y}
15216
  $as_echo_n "(cached) " >&6
16293
then :
15217
else
16294
  printf %s "(cached) " >&6
16295
else $as_nop
15218
  	  if test yes = "$cross_compiling"; then :
16296
  	  if test yes = "$cross_compiling"; then :
15219
  lt_cv_dlopen_self_static=cross
16297
  lt_cv_dlopen_self_static=cross
15220
else
16298
else
Lines 15293-15299 Link Here
15293
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
16371
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
15294
  (eval $ac_link) 2>&5
16372
  (eval $ac_link) 2>&5
15295
  ac_status=$?
16373
  ac_status=$?
15296
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
16374
  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
15297
  test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
16375
  test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
15298
    (./conftest; exit; ) >&5 2>/dev/null
16376
    (./conftest; exit; ) >&5 2>/dev/null
15299
    lt_status=$?
16377
    lt_status=$?
Lines 15311-15318 Link Here
15311
16389
15312
16390
15313
fi
16391
fi
15314
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
16392
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
15315
$as_echo "$lt_cv_dlopen_self_static" >&6; }
16393
printf "%s\n" "$lt_cv_dlopen_self_static" >&6; }
15316
    fi
16394
    fi
15317
16395
15318
    CPPFLAGS=$save_CPPFLAGS
16396
    CPPFLAGS=$save_CPPFLAGS
Lines 15350-15389 Link Here
15350
16428
15351
striplib=
16429
striplib=
15352
old_striplib=
16430
old_striplib=
15353
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
16431
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
15354
$as_echo_n "checking whether stripping libraries is possible... " >&6; }
16432
printf %s "checking whether stripping libraries is possible... " >&6; }
15355
if test -z "$STRIP"; then
16433
if test -z "$STRIP"; then
15356
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
16434
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
15357
$as_echo "no" >&6; }
16435
printf "%s\n" "no" >&6; }
15358
else
16436
else
15359
  if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
16437
  if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
15360
    old_striplib="$STRIP --strip-debug"
16438
    old_striplib="$STRIP --strip-debug"
15361
    striplib="$STRIP --strip-unneeded"
16439
    striplib="$STRIP --strip-unneeded"
15362
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
16440
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
15363
$as_echo "yes" >&6; }
16441
printf "%s\n" "yes" >&6; }
15364
  else
16442
  else
15365
    case $host_os in
16443
    case $host_os in
15366
    darwin*)
16444
    darwin*)
15367
      # FIXME - insert some real tests, host_os isn't really good enough
16445
      # FIXME - insert some real tests, host_os isn't really good enough
15368
      striplib="$STRIP -x"
16446
      striplib="$STRIP -x"
15369
      old_striplib="$STRIP -S"
16447
      old_striplib="$STRIP -S"
15370
      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
16448
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
15371
$as_echo "yes" >&6; }
16449
printf "%s\n" "yes" >&6; }
15372
      ;;
16450
      ;;
15373
    freebsd*)
16451
    freebsd*)
15374
      if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then
16452
      if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then
15375
        old_striplib="$STRIP --strip-debug"
16453
        old_striplib="$STRIP --strip-debug"
15376
        striplib="$STRIP --strip-unneeded"
16454
        striplib="$STRIP --strip-unneeded"
15377
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
16455
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
15378
$as_echo "yes" >&6; }
16456
printf "%s\n" "yes" >&6; }
15379
      else
16457
      else
15380
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
16458
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
15381
$as_echo "no" >&6; }
16459
printf "%s\n" "no" >&6; }
15382
      fi
16460
      fi
15383
      ;;
16461
      ;;
15384
    *)
16462
    *)
15385
      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
16463
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
15386
$as_echo "no" >&6; }
16464
printf "%s\n" "no" >&6; }
15387
      ;;
16465
      ;;
15388
    esac
16466
    esac
15389
  fi
16467
  fi
Lines 15401-15413 Link Here
15401
16479
15402
16480
15403
  # Report what library types will actually be built
16481
  # Report what library types will actually be built
15404
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
16482
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
15405
$as_echo_n "checking if libtool supports shared libraries... " >&6; }
16483
printf %s "checking if libtool supports shared libraries... " >&6; }
15406
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
16484
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
15407
$as_echo "$can_build_shared" >&6; }
16485
printf "%s\n" "$can_build_shared" >&6; }
15408
16486
15409
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
16487
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
15410
$as_echo_n "checking whether to build shared libraries... " >&6; }
16488
printf %s "checking whether to build shared libraries... " >&6; }
15411
  test no = "$can_build_shared" && enable_shared=no
16489
  test no = "$can_build_shared" && enable_shared=no
15412
16490
15413
  # On AIX, shared libraries and static libraries use the same namespace, and
16491
  # On AIX, shared libraries and static libraries use the same namespace, and
Lines 15431-15445 Link Here
15431
    fi
16509
    fi
15432
    ;;
16510
    ;;
15433
  esac
16511
  esac
15434
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
16512
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
15435
$as_echo "$enable_shared" >&6; }
16513
printf "%s\n" "$enable_shared" >&6; }
15436
16514
15437
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
16515
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
15438
$as_echo_n "checking whether to build static libraries... " >&6; }
16516
printf %s "checking whether to build static libraries... " >&6; }
15439
  # Make sure either enable_shared or enable_static is yes.
16517
  # Make sure either enable_shared or enable_static is yes.
15440
  test yes = "$enable_shared" || enable_static=yes
16518
  test yes = "$enable_shared" || enable_static=yes
15441
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
16519
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
15442
$as_echo "$enable_static" >&6; }
16520
printf "%s\n" "$enable_static" >&6; }
15443
16521
15444
16522
15445
16523
Lines 15478-15488 Link Here
15478
if test -n "$ac_tool_prefix"; then
16556
if test -n "$ac_tool_prefix"; then
15479
  # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args.
16557
  # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args.
15480
set dummy ${ac_tool_prefix}windres; ac_word=$2
16558
set dummy ${ac_tool_prefix}windres; ac_word=$2
15481
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
16559
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
15482
$as_echo_n "checking for $ac_word... " >&6; }
16560
printf %s "checking for $ac_word... " >&6; }
15483
if ${ac_cv_prog_RC+:} false; then :
16561
if test ${ac_cv_prog_RC+y}
15484
  $as_echo_n "(cached) " >&6
16562
then :
15485
else
16563
  printf %s "(cached) " >&6
16564
else $as_nop
15486
  if test -n "$RC"; then
16565
  if test -n "$RC"; then
15487
  ac_cv_prog_RC="$RC" # Let the user override the test.
16566
  ac_cv_prog_RC="$RC" # Let the user override the test.
15488
else
16567
else
Lines 15490-15500 Link Here
15490
for as_dir in $PATH
16569
for as_dir in $PATH
15491
do
16570
do
15492
  IFS=$as_save_IFS
16571
  IFS=$as_save_IFS
15493
  test -z "$as_dir" && as_dir=.
16572
  case $as_dir in #(((
16573
    '') as_dir=./ ;;
16574
    */) ;;
16575
    *) as_dir=$as_dir/ ;;
16576
  esac
15494
    for ac_exec_ext in '' $ac_executable_extensions; do
16577
    for ac_exec_ext in '' $ac_executable_extensions; do
15495
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
16578
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
15496
    ac_cv_prog_RC="${ac_tool_prefix}windres"
16579
    ac_cv_prog_RC="${ac_tool_prefix}windres"
15497
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
16580
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
15498
    break 2
16581
    break 2
15499
  fi
16582
  fi
15500
done
16583
done
Lines 15505-15515 Link Here
15505
fi
16588
fi
15506
RC=$ac_cv_prog_RC
16589
RC=$ac_cv_prog_RC
15507
if test -n "$RC"; then
16590
if test -n "$RC"; then
15508
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RC" >&5
16591
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RC" >&5
15509
$as_echo "$RC" >&6; }
16592
printf "%s\n" "$RC" >&6; }
15510
else
16593
else
15511
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
16594
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
15512
$as_echo "no" >&6; }
16595
printf "%s\n" "no" >&6; }
15513
fi
16596
fi
15514
16597
15515
16598
Lines 15518-15528 Link Here
15518
  ac_ct_RC=$RC
16601
  ac_ct_RC=$RC
15519
  # Extract the first word of "windres", so it can be a program name with args.
16602
  # Extract the first word of "windres", so it can be a program name with args.
15520
set dummy windres; ac_word=$2
16603
set dummy windres; ac_word=$2
15521
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
16604
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
15522
$as_echo_n "checking for $ac_word... " >&6; }
16605
printf %s "checking for $ac_word... " >&6; }
15523
if ${ac_cv_prog_ac_ct_RC+:} false; then :
16606
if test ${ac_cv_prog_ac_ct_RC+y}
15524
  $as_echo_n "(cached) " >&6
16607
then :
15525
else
16608
  printf %s "(cached) " >&6
16609
else $as_nop
15526
  if test -n "$ac_ct_RC"; then
16610
  if test -n "$ac_ct_RC"; then
15527
  ac_cv_prog_ac_ct_RC="$ac_ct_RC" # Let the user override the test.
16611
  ac_cv_prog_ac_ct_RC="$ac_ct_RC" # Let the user override the test.
15528
else
16612
else
Lines 15530-15540 Link Here
15530
for as_dir in $PATH
16614
for as_dir in $PATH
15531
do
16615
do
15532
  IFS=$as_save_IFS
16616
  IFS=$as_save_IFS
15533
  test -z "$as_dir" && as_dir=.
16617
  case $as_dir in #(((
16618
    '') as_dir=./ ;;
16619
    */) ;;
16620
    *) as_dir=$as_dir/ ;;
16621
  esac
15534
    for ac_exec_ext in '' $ac_executable_extensions; do
16622
    for ac_exec_ext in '' $ac_executable_extensions; do
15535
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
16623
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
15536
    ac_cv_prog_ac_ct_RC="windres"
16624
    ac_cv_prog_ac_ct_RC="windres"
15537
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
16625
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
15538
    break 2
16626
    break 2
15539
  fi
16627
  fi
15540
done
16628
done
Lines 15545-15555 Link Here
15545
fi
16633
fi
15546
ac_ct_RC=$ac_cv_prog_ac_ct_RC
16634
ac_ct_RC=$ac_cv_prog_ac_ct_RC
15547
if test -n "$ac_ct_RC"; then
16635
if test -n "$ac_ct_RC"; then
15548
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RC" >&5
16636
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RC" >&5
15549
$as_echo "$ac_ct_RC" >&6; }
16637
printf "%s\n" "$ac_ct_RC" >&6; }
15550
else
16638
else
15551
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
16639
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
15552
$as_echo "no" >&6; }
16640
printf "%s\n" "no" >&6; }
15553
fi
16641
fi
15554
16642
15555
  if test "x$ac_ct_RC" = x; then
16643
  if test "x$ac_ct_RC" = x; then
Lines 15557-15564 Link Here
15557
  else
16645
  else
15558
    case $cross_compiling:$ac_tool_warned in
16646
    case $cross_compiling:$ac_tool_warned in
15559
yes:)
16647
yes:)
15560
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
16648
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
15561
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
16649
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
15562
ac_tool_warned=yes ;;
16650
ac_tool_warned=yes ;;
15563
esac
16651
esac
15564
    RC=$ac_ct_RC
16652
    RC=$ac_ct_RC
Lines 15659-15665 Link Here
15659
fi
16747
fi
15660
16748
15661
16749
16750
#####################
16751
# Symbol versioning #
16752
#####################
15662
16753
16754
# NOTE: This checks if we are building shared or static library
16755
# and if --with-pic or --without-pic was used. Thus this check
16756
# must be after Libtool initialization.
16757
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if library symbol versioning should be used" >&5
16758
printf %s "checking if library symbol versioning should be used... " >&6; }
16759
# Check whether --enable-symbol-versions was given.
16760
if test ${enable_symbol_versions+y}
16761
then :
16762
  enableval=$enable_symbol_versions;
16763
else $as_nop
16764
  enable_symbol_versions=auto
16765
fi
16766
16767
if test "x$enable_symbol_versions" = xauto; then
16768
	case $host_os in
16769
		# NOTE: Even if one omits -gnu on GNU/Linux (e.g.
16770
		# i486-slackware-linux), configure will (via config.sub)
16771
		# append -gnu (e.g. i486-slackware-linux-gnu), and this
16772
		# test will work correctly.
16773
		gnu* | *-gnu* | freebsd*)
16774
			enable_symbol_versions=yes
16775
			;;
16776
		*)
16777
			enable_symbol_versions=no
16778
			;;
16779
	esac
16780
fi
16781
16782
# There are two variants for symbol versioning.
16783
# See src/liblzma/validate_map.sh for details.
16784
#
16785
# On GNU/Linux, extra symbols are added in the C code. These extra symbols
16786
# must not be put into a static library as they can cause problems (and
16787
# even if they didn't cause problems, they would be useless). On other
16788
# systems symbol versioning may be used too but there is no problem as only
16789
# a linker script is specified in src/liblzma/Makefile.am and that isn't
16790
# used when creating a static library.
16791
#
16792
# Libtool always uses -DPIC when building shared libraries by default and
16793
# doesn't use it for static libs by default. This can be overriden with
16794
# --with-pic and --without-pic though. As long as neither --with-pic nor
16795
# --without-pic is used then we can use #ifdef PIC to detect if the file is
16796
# being built for a shared library.
16797
if test "x$enable_symbol_versions" = xno ; then
16798
	enable_symbol_versions=no
16799
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
16800
printf "%s\n" "no" >&6; }
16801
elif test "x$enable_shared" = xno ; then
16802
	enable_symbol_versions=no
16803
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no (not building a shared library)" >&5
16804
printf "%s\n" "no (not building a shared library)" >&6; }
16805
else
16806
	case "$host_cpu-$host_os" in
16807
		microblaze*)
16808
			# GCC 12 on MicroBlaze doesn't support __symver__
16809
			# attribute. It's simplest and safest to use the
16810
			# generic version on that platform since then only
16811
			# the linker script is needed. The RHEL/CentOS 7
16812
			# compatibility symbols don't matter on MicroBlaze.
16813
			enable_symbol_versions=generic
16814
			;;
16815
		*-linux*)
16816
			case "$pic_mode-$enable_static" in
16817
				default-*)
16818
					# Use symvers if PIC is defined.
16819
					have_symbol_versions_linux=2
16820
					;;
16821
				*-no)
16822
					# Not building static library.
16823
					# Use symvers unconditionally.
16824
					have_symbol_versions_linux=1
16825
					;;
16826
				*)
16827
					{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
16828
printf "%s\n" "" >&6; }
16829
					as_fn_error $? "
16830
    On GNU/Linux, building both shared and static library at the same time
16831
    is not supported if --with-pic or --without-pic is used.
16832
    Use either --disable-shared or --disable-static to build one type
16833
    of library at a time. If both types are needed, build one at a time,
16834
    possibly picking only src/liblzma/.libs/liblzma.a from the static build." "$LINENO" 5
16835
					;;
16836
			esac
16837
			enable_symbol_versions=linux
16838
16839
printf "%s\n" "#define HAVE_SYMBOL_VERSIONS_LINUX $have_symbol_versions_linux" >>confdefs.h
16840
16841
			;;
16842
		*)
16843
			enable_symbol_versions=generic
16844
			;;
16845
	esac
16846
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes ($enable_symbol_versions)" >&5
16847
printf "%s\n" "yes ($enable_symbol_versions)" >&6; }
16848
fi
16849
16850
 if test "x$enable_symbol_versions" = xlinux; then
16851
  COND_SYMVERS_LINUX_TRUE=
16852
  COND_SYMVERS_LINUX_FALSE='#'
16853
else
16854
  COND_SYMVERS_LINUX_TRUE='#'
16855
  COND_SYMVERS_LINUX_FALSE=
16856
fi
16857
16858
 if test "x$enable_symbol_versions" = xgeneric; then
16859
  COND_SYMVERS_GENERIC_TRUE=
16860
  COND_SYMVERS_GENERIC_FALSE='#'
16861
else
16862
  COND_SYMVERS_GENERIC_TRUE='#'
16863
  COND_SYMVERS_GENERIC_FALSE=
16864
fi
16865
16866
16867
15663
###############################################################################
16868
###############################################################################
15664
# Checks for libraries.
16869
# Checks for libraries.
15665
###############################################################################
16870
###############################################################################
Lines 15669-15685 Link Here
15669
16874
15670
16875
15671
16876
15672
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
16877
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
15673
$as_echo_n "checking whether NLS is requested... " >&6; }
16878
printf %s "checking whether NLS is requested... " >&6; }
15674
    # Check whether --enable-nls was given.
16879
    # Check whether --enable-nls was given.
15675
if test "${enable_nls+set}" = set; then :
16880
if test ${enable_nls+y}
16881
then :
15676
  enableval=$enable_nls; USE_NLS=$enableval
16882
  enableval=$enable_nls; USE_NLS=$enableval
15677
else
16883
else $as_nop
15678
  USE_NLS=yes
16884
  USE_NLS=yes
15679
fi
16885
fi
15680
16886
15681
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
16887
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
15682
$as_echo "$USE_NLS" >&6; }
16888
printf "%s\n" "$USE_NLS" >&6; }
15683
16889
15684
16890
15685
16891
Lines 15718-15728 Link Here
15718
16924
15719
# Extract the first word of "msgfmt", so it can be a program name with args.
16925
# Extract the first word of "msgfmt", so it can be a program name with args.
15720
set dummy msgfmt; ac_word=$2
16926
set dummy msgfmt; ac_word=$2
15721
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
16927
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
15722
$as_echo_n "checking for $ac_word... " >&6; }
16928
printf %s "checking for $ac_word... " >&6; }
15723
if ${ac_cv_path_MSGFMT+:} false; then :
16929
if test ${ac_cv_path_MSGFMT+y}
15724
  $as_echo_n "(cached) " >&6
16930
then :
15725
else
16931
  printf %s "(cached) " >&6
16932
else $as_nop
15726
  case "$MSGFMT" in
16933
  case "$MSGFMT" in
15727
  [\\/]* | ?:[\\/]*)
16934
  [\\/]* | ?:[\\/]*)
15728
    ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
16935
    ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
Lines 15750-15769 Link Here
15750
fi
16957
fi
15751
MSGFMT="$ac_cv_path_MSGFMT"
16958
MSGFMT="$ac_cv_path_MSGFMT"
15752
if test "$MSGFMT" != ":"; then
16959
if test "$MSGFMT" != ":"; then
15753
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
16960
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
15754
$as_echo "$MSGFMT" >&6; }
16961
printf "%s\n" "$MSGFMT" >&6; }
15755
else
16962
else
15756
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
16963
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
15757
$as_echo "no" >&6; }
16964
printf "%s\n" "no" >&6; }
15758
fi
16965
fi
15759
16966
15760
  # Extract the first word of "gmsgfmt", so it can be a program name with args.
16967
  # Extract the first word of "gmsgfmt", so it can be a program name with args.
15761
set dummy gmsgfmt; ac_word=$2
16968
set dummy gmsgfmt; ac_word=$2
15762
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
16969
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
15763
$as_echo_n "checking for $ac_word... " >&6; }
16970
printf %s "checking for $ac_word... " >&6; }
15764
if ${ac_cv_path_GMSGFMT+:} false; then :
16971
if test ${ac_cv_path_GMSGFMT+y}
15765
  $as_echo_n "(cached) " >&6
16972
then :
15766
else
16973
  printf %s "(cached) " >&6
16974
else $as_nop
15767
  case $GMSGFMT in
16975
  case $GMSGFMT in
15768
  [\\/]* | ?:[\\/]*)
16976
  [\\/]* | ?:[\\/]*)
15769
  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
16977
  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
Lines 15773-15783 Link Here
15773
for as_dir in $PATH
16981
for as_dir in $PATH
15774
do
16982
do
15775
  IFS=$as_save_IFS
16983
  IFS=$as_save_IFS
15776
  test -z "$as_dir" && as_dir=.
16984
  case $as_dir in #(((
16985
    '') as_dir=./ ;;
16986
    */) ;;
16987
    *) as_dir=$as_dir/ ;;
16988
  esac
15777
    for ac_exec_ext in '' $ac_executable_extensions; do
16989
    for ac_exec_ext in '' $ac_executable_extensions; do
15778
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
16990
  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
15779
    ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
16991
    ac_cv_path_GMSGFMT="$as_dir$ac_word$ac_exec_ext"
15780
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
16992
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
15781
    break 2
16993
    break 2
15782
  fi
16994
  fi
15783
done
16995
done
Lines 15790-15800 Link Here
15790
fi
17002
fi
15791
GMSGFMT=$ac_cv_path_GMSGFMT
17003
GMSGFMT=$ac_cv_path_GMSGFMT
15792
if test -n "$GMSGFMT"; then
17004
if test -n "$GMSGFMT"; then
15793
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
17005
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
15794
$as_echo "$GMSGFMT" >&6; }
17006
printf "%s\n" "$GMSGFMT" >&6; }
15795
else
17007
else
15796
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17008
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
15797
$as_echo "no" >&6; }
17009
printf "%s\n" "no" >&6; }
15798
fi
17010
fi
15799
17011
15800
17012
Lines 15835-15845 Link Here
15835
17047
15836
# Extract the first word of "xgettext", so it can be a program name with args.
17048
# Extract the first word of "xgettext", so it can be a program name with args.
15837
set dummy xgettext; ac_word=$2
17049
set dummy xgettext; ac_word=$2
15838
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
17050
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
15839
$as_echo_n "checking for $ac_word... " >&6; }
17051
printf %s "checking for $ac_word... " >&6; }
15840
if ${ac_cv_path_XGETTEXT+:} false; then :
17052
if test ${ac_cv_path_XGETTEXT+y}
15841
  $as_echo_n "(cached) " >&6
17053
then :
15842
else
17054
  printf %s "(cached) " >&6
17055
else $as_nop
15843
  case "$XGETTEXT" in
17056
  case "$XGETTEXT" in
15844
  [\\/]* | ?:[\\/]*)
17057
  [\\/]* | ?:[\\/]*)
15845
    ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
17058
    ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
Lines 15867-15877 Link Here
15867
fi
17080
fi
15868
XGETTEXT="$ac_cv_path_XGETTEXT"
17081
XGETTEXT="$ac_cv_path_XGETTEXT"
15869
if test "$XGETTEXT" != ":"; then
17082
if test "$XGETTEXT" != ":"; then
15870
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
17083
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
15871
$as_echo "$XGETTEXT" >&6; }
17084
printf "%s\n" "$XGETTEXT" >&6; }
15872
else
17085
else
15873
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17086
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
15874
$as_echo "no" >&6; }
17087
printf "%s\n" "no" >&6; }
15875
fi
17088
fi
15876
17089
15877
    rm -f messages.po
17090
    rm -f messages.po
Lines 15912-15922 Link Here
15912
17125
15913
# Extract the first word of "msgmerge", so it can be a program name with args.
17126
# Extract the first word of "msgmerge", so it can be a program name with args.
15914
set dummy msgmerge; ac_word=$2
17127
set dummy msgmerge; ac_word=$2
15915
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
17128
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
15916
$as_echo_n "checking for $ac_word... " >&6; }
17129
printf %s "checking for $ac_word... " >&6; }
15917
if ${ac_cv_path_MSGMERGE+:} false; then :
17130
if test ${ac_cv_path_MSGMERGE+y}
15918
  $as_echo_n "(cached) " >&6
17131
then :
15919
else
17132
  printf %s "(cached) " >&6
17133
else $as_nop
15920
  case "$MSGMERGE" in
17134
  case "$MSGMERGE" in
15921
  [\\/]* | ?:[\\/]*)
17135
  [\\/]* | ?:[\\/]*)
15922
    ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
17136
    ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
Lines 15943-15953 Link Here
15943
fi
17157
fi
15944
MSGMERGE="$ac_cv_path_MSGMERGE"
17158
MSGMERGE="$ac_cv_path_MSGMERGE"
15945
if test "$MSGMERGE" != ":"; then
17159
if test "$MSGMERGE" != ":"; then
15946
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5
17160
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5
15947
$as_echo "$MSGMERGE" >&6; }
17161
printf "%s\n" "$MSGMERGE" >&6; }
15948
else
17162
else
15949
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17163
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
15950
$as_echo "no" >&6; }
17164
printf "%s\n" "no" >&6; }
15951
fi
17165
fi
15952
17166
15953
17167
Lines 15987-15995 Link Here
15987
17201
15988
17202
15989
# Check whether --with-gnu-ld was given.
17203
# Check whether --with-gnu-ld was given.
15990
if test "${with_gnu_ld+set}" = set; then :
17204
if test ${with_gnu_ld+y}
17205
then :
15991
  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
17206
  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
15992
else
17207
else $as_nop
15993
  with_gnu_ld=no
17208
  with_gnu_ld=no
15994
fi
17209
fi
15995
17210
Lines 16007-16031 Link Here
16007
fi
17222
fi
16008
17223
16009
if test -n "$LD"; then
17224
if test -n "$LD"; then
16010
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld" >&5
17225
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld" >&5
16011
$as_echo_n "checking for ld... " >&6; }
17226
printf %s "checking for ld... " >&6; }
16012
elif test "$GCC" = yes; then
17227
elif test "$GCC" = yes; then
16013
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
17228
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
16014
$as_echo_n "checking for ld used by $CC... " >&6; }
17229
printf %s "checking for ld used by $CC... " >&6; }
16015
elif test "$with_gnu_ld" = yes; then
17230
elif test "$with_gnu_ld" = yes; then
16016
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
17231
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
16017
$as_echo_n "checking for GNU ld... " >&6; }
17232
printf %s "checking for GNU ld... " >&6; }
16018
else
17233
else
16019
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
17234
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
16020
$as_echo_n "checking for non-GNU ld... " >&6; }
17235
printf %s "checking for non-GNU ld... " >&6; }
16021
fi
17236
fi
16022
if test -n "$LD"; then
17237
if test -n "$LD"; then
16023
  # Let the user override the test with a path.
17238
  # Let the user override the test with a path.
16024
  :
17239
  :
16025
else
17240
else
16026
  if ${acl_cv_path_LD+:} false; then :
17241
  if test ${acl_cv_path_LD+y}
16027
  $as_echo_n "(cached) " >&6
17242
then :
16028
else
17243
  printf %s "(cached) " >&6
17244
else $as_nop
16029
17245
16030
    acl_cv_path_LD= # Final result of this test
17246
    acl_cv_path_LD= # Final result of this test
16031
    ac_prog=ld # Program to search in $PATH
17247
    ac_prog=ld # Program to search in $PATH
Lines 16087-16100 Link Here
16087
      *-*-aix*)
17303
      *-*-aix*)
16088
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
17304
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
16089
/* end confdefs.h.  */
17305
/* end confdefs.h.  */
16090
#if defined __powerpc64__ || defined _ARCH_PPC64
17306
#if defined __powerpc64__ || defined __LP64__
16091
                int ok;
17307
                int ok;
16092
               #else
17308
               #else
16093
                error fail
17309
                error fail
16094
               #endif
17310
               #endif
16095
17311
16096
_ACEOF
17312
_ACEOF
16097
if ac_fn_c_try_compile "$LINENO"; then :
17313
if ac_fn_c_try_compile "$LINENO"
17314
then :
16098
  # The compiler produces 64-bit code. Add option '-b64' so that the
17315
  # The compiler produces 64-bit code. Add option '-b64' so that the
16099
           # linker groks 64-bit object files.
17316
           # linker groks 64-bit object files.
16100
           case "$acl_cv_path_LD " in
17317
           case "$acl_cv_path_LD " in
Lines 16103-16109 Link Here
16103
           esac
17320
           esac
16104
17321
16105
fi
17322
fi
16106
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
17323
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
16107
        ;;
17324
        ;;
16108
      sparc64-*-netbsd*)
17325
      sparc64-*-netbsd*)
16109
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
17326
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Lines 16115-16123 Link Here
16115
               #endif
17332
               #endif
16116
17333
16117
_ACEOF
17334
_ACEOF
16118
if ac_fn_c_try_compile "$LINENO"; then :
17335
if ac_fn_c_try_compile "$LINENO"
17336
then :
16119
17337
16120
else
17338
else $as_nop
16121
  # The compiler produces 32-bit code. Add option '-m elf32_sparc'
17339
  # The compiler produces 32-bit code. Add option '-m elf32_sparc'
16122
           # so that the linker groks 32-bit object files.
17340
           # so that the linker groks 32-bit object files.
16123
           case "$acl_cv_path_LD " in
17341
           case "$acl_cv_path_LD " in
Lines 16126-16132 Link Here
16126
           esac
17344
           esac
16127
17345
16128
fi
17346
fi
16129
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
17347
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
16130
        ;;
17348
        ;;
16131
    esac
17349
    esac
16132
17350
Lines 16135-16152 Link Here
16135
  LD="$acl_cv_path_LD"
17353
  LD="$acl_cv_path_LD"
16136
fi
17354
fi
16137
if test -n "$LD"; then
17355
if test -n "$LD"; then
16138
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
17356
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
16139
$as_echo "$LD" >&6; }
17357
printf "%s\n" "$LD" >&6; }
16140
else
17358
else
16141
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17359
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
16142
$as_echo "no" >&6; }
17360
printf "%s\n" "no" >&6; }
16143
  as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
17361
  as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
16144
fi
17362
fi
16145
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
17363
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
16146
$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
17364
printf %s "checking if the linker ($LD) is GNU ld... " >&6; }
16147
if ${acl_cv_prog_gnu_ld+:} false; then :
17365
if test ${acl_cv_prog_gnu_ld+y}
16148
  $as_echo_n "(cached) " >&6
17366
then :
16149
else
17367
  printf %s "(cached) " >&6
17368
else $as_nop
16150
  # I'd rather use --version here, but apparently some GNU lds only accept -v.
17369
  # I'd rather use --version here, but apparently some GNU lds only accept -v.
16151
case `$LD -v 2>&1 </dev/null` in
17370
case `$LD -v 2>&1 </dev/null` in
16152
*GNU* | *'with BFD'*)
17371
*GNU* | *'with BFD'*)
Lines 16157-16175 Link Here
16157
  ;;
17376
  ;;
16158
esac
17377
esac
16159
fi
17378
fi
16160
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5
17379
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5
16161
$as_echo "$acl_cv_prog_gnu_ld" >&6; }
17380
printf "%s\n" "$acl_cv_prog_gnu_ld" >&6; }
16162
with_gnu_ld=$acl_cv_prog_gnu_ld
17381
with_gnu_ld=$acl_cv_prog_gnu_ld
16163
17382
16164
17383
16165
17384
16166
17385
16167
                                                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
16168
$as_echo_n "checking for shared library run path origin... " >&6; }
16169
if ${acl_cv_rpath+:} false; then :
16170
  $as_echo_n "(cached) " >&6
16171
else
16172
17386
17387
                                                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
17388
printf %s "checking for shared library run path origin... " >&6; }
17389
if test ${acl_cv_rpath+y}
17390
then :
17391
  printf %s "(cached) " >&6
17392
else $as_nop
17393
16173
    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
17394
    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
16174
    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
17395
    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
16175
    . ./conftest.sh
17396
    . ./conftest.sh
Lines 16177-16184 Link Here
16177
    acl_cv_rpath=done
17398
    acl_cv_rpath=done
16178
17399
16179
fi
17400
fi
16180
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5
17401
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5
16181
$as_echo "$acl_cv_rpath" >&6; }
17402
printf "%s\n" "$acl_cv_rpath" >&6; }
16182
  wl="$acl_cv_wl"
17403
  wl="$acl_cv_wl"
16183
  acl_libext="$acl_cv_libext"
17404
  acl_libext="$acl_cv_libext"
16184
  acl_shlibext="$acl_cv_shlibext"
17405
  acl_shlibext="$acl_cv_shlibext"
Lines 16189-16222 Link Here
16189
  acl_hardcode_direct="$acl_cv_hardcode_direct"
17410
  acl_hardcode_direct="$acl_cv_hardcode_direct"
16190
  acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
17411
  acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
16191
    # Check whether --enable-rpath was given.
17412
    # Check whether --enable-rpath was given.
16192
if test "${enable_rpath+set}" = set; then :
17413
if test ${enable_rpath+y}
17414
then :
16193
  enableval=$enable_rpath; :
17415
  enableval=$enable_rpath; :
16194
else
17416
else $as_nop
16195
  enable_rpath=yes
17417
  enable_rpath=yes
16196
fi
17418
fi
16197
17419
16198
17420
16199
17421
16200
17422
16201
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking 32-bit host C ABI" >&5
17423
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking 32-bit host C ABI" >&5
16202
$as_echo_n "checking 32-bit host C ABI... " >&6; }
17424
printf %s "checking 32-bit host C ABI... " >&6; }
16203
if ${gl_cv_host_cpu_c_abi_32bit+:} false; then :
17425
if test ${gl_cv_host_cpu_c_abi_32bit+y}
16204
  $as_echo_n "(cached) " >&6
17426
then :
16205
else
17427
  printf %s "(cached) " >&6
17428
else $as_nop
16206
  if test -n "$gl_cv_host_cpu_c_abi"; then
17429
  if test -n "$gl_cv_host_cpu_c_abi"; then
16207
       case "$gl_cv_host_cpu_c_abi" in
17430
       case "$gl_cv_host_cpu_c_abi" in
16208
         i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc)
17431
         i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc)
16209
           gl_cv_host_cpu_c_abi_32bit=yes ;;
17432
           gl_cv_host_cpu_c_abi_32bit=yes ;;
16210
         *)
17433
         x86_64 | alpha | arm64 | hppa64 | ia64 | mips64 | powerpc64 | powerpc64-elfv2 | riscv*-lp64* | s390x | sparc64 )
16211
           gl_cv_host_cpu_c_abi_32bit=no ;;
17434
           gl_cv_host_cpu_c_abi_32bit=no ;;
17435
         *)
17436
           gl_cv_host_cpu_c_abi_32bit=unknown ;;
16212
       esac
17437
       esac
16213
     else
17438
     else
16214
       case "$host_cpu" in
17439
       case "$host_cpu" in
16215
17440
16216
         i[4567]86 )
17441
         # CPUs that only support a 32-bit ABI.
17442
         arc \
17443
         | bfin \
17444
         | cris* \
17445
         | csky \
17446
         | epiphany \
17447
         | ft32 \
17448
         | h8300 \
17449
         | m68k \
17450
         | microblaze | microblazeel \
17451
         | nds32 | nds32le | nds32be \
17452
         | nios2 | nios2eb | nios2el \
17453
         | or1k* \
17454
         | or32 \
17455
         | sh | sh1234 | sh1234elb \
17456
         | tic6x \
17457
         | xtensa* )
16217
           gl_cv_host_cpu_c_abi_32bit=yes
17458
           gl_cv_host_cpu_c_abi_32bit=yes
16218
           ;;
17459
           ;;
16219
17460
17461
         # CPUs that only support a 64-bit ABI.
17462
         alpha | alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] \
17463
         | mmix )
17464
           gl_cv_host_cpu_c_abi_32bit=no
17465
           ;;
17466
17467
         i[34567]86 )
17468
           gl_cv_host_cpu_c_abi_32bit=yes
17469
           ;;
17470
16220
         x86_64 )
17471
         x86_64 )
16221
           # On x86_64 systems, the C compiler may be generating code in one of
17472
           # On x86_64 systems, the C compiler may be generating code in one of
16222
           # these ABIs:
17473
           # these ABIs:
Lines 16236-16247 Link Here
16236
                  #endif
17487
                  #endif
16237
17488
16238
_ACEOF
17489
_ACEOF
16239
if ac_fn_c_try_compile "$LINENO"; then :
17490
if ac_fn_c_try_compile "$LINENO"
17491
then :
16240
  gl_cv_host_cpu_c_abi_32bit=no
17492
  gl_cv_host_cpu_c_abi_32bit=no
16241
else
17493
else $as_nop
16242
  gl_cv_host_cpu_c_abi_32bit=yes
17494
  gl_cv_host_cpu_c_abi_32bit=yes
16243
fi
17495
fi
16244
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
17496
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
16245
           ;;
17497
           ;;
16246
17498
16247
         arm* | aarch64 )
17499
         arm* | aarch64 )
Lines 16260-16271 Link Here
16260
                  #endif
17512
                  #endif
16261
17513
16262
_ACEOF
17514
_ACEOF
16263
if ac_fn_c_try_compile "$LINENO"; then :
17515
if ac_fn_c_try_compile "$LINENO"
17516
then :
16264
  gl_cv_host_cpu_c_abi_32bit=no
17517
  gl_cv_host_cpu_c_abi_32bit=no
16265
else
17518
else $as_nop
16266
  gl_cv_host_cpu_c_abi_32bit=yes
17519
  gl_cv_host_cpu_c_abi_32bit=yes
16267
fi
17520
fi
16268
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
17521
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
16269
           ;;
17522
           ;;
16270
17523
16271
         hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
17524
         hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
Lines 16280-16291 Link Here
16280
                  #endif
17533
                  #endif
16281
17534
16282
_ACEOF
17535
_ACEOF
16283
if ac_fn_c_try_compile "$LINENO"; then :
17536
if ac_fn_c_try_compile "$LINENO"
17537
then :
16284
  gl_cv_host_cpu_c_abi_32bit=no
17538
  gl_cv_host_cpu_c_abi_32bit=no
16285
else
17539
else $as_nop
16286
  gl_cv_host_cpu_c_abi_32bit=yes
17540
  gl_cv_host_cpu_c_abi_32bit=yes
16287
fi
17541
fi
16288
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
17542
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
16289
           ;;
17543
           ;;
16290
17544
16291
         ia64* )
17545
         ia64* )
Lines 16300-16311 Link Here
16300
                  #endif
17554
                  #endif
16301
17555
16302
_ACEOF
17556
_ACEOF
16303
if ac_fn_c_try_compile "$LINENO"; then :
17557
if ac_fn_c_try_compile "$LINENO"
17558
then :
16304
  gl_cv_host_cpu_c_abi_32bit=yes
17559
  gl_cv_host_cpu_c_abi_32bit=yes
16305
else
17560
else $as_nop
16306
  gl_cv_host_cpu_c_abi_32bit=no
17561
  gl_cv_host_cpu_c_abi_32bit=no
16307
fi
17562
fi
16308
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
17563
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
16309
           ;;
17564
           ;;
16310
17565
16311
         mips* )
17566
         mips* )
Lines 16320-16331 Link Here
16320
                  #endif
17575
                  #endif
16321
17576
16322
_ACEOF
17577
_ACEOF
16323
if ac_fn_c_try_compile "$LINENO"; then :
17578
if ac_fn_c_try_compile "$LINENO"
17579
then :
16324
  gl_cv_host_cpu_c_abi_32bit=no
17580
  gl_cv_host_cpu_c_abi_32bit=no
16325
else
17581
else $as_nop
16326
  gl_cv_host_cpu_c_abi_32bit=yes
17582
  gl_cv_host_cpu_c_abi_32bit=yes
16327
fi
17583
fi
16328
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
17584
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
16329
           ;;
17585
           ;;
16330
17586
16331
         powerpc* )
17587
         powerpc* )
Lines 16337-16355 Link Here
16337
           # be generating 64-bit code.
17593
           # be generating 64-bit code.
16338
           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
17594
           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
16339
/* end confdefs.h.  */
17595
/* end confdefs.h.  */
16340
#if defined __powerpc64__ || defined _ARCH_PPC64
17596
#if defined __powerpc64__ || defined __LP64__
16341
                   int ok;
17597
                   int ok;
16342
                  #else
17598
                  #else
16343
                   error fail
17599
                   error fail
16344
                  #endif
17600
                  #endif
16345
17601
16346
_ACEOF
17602
_ACEOF
16347
if ac_fn_c_try_compile "$LINENO"; then :
17603
if ac_fn_c_try_compile "$LINENO"
17604
then :
16348
  gl_cv_host_cpu_c_abi_32bit=no
17605
  gl_cv_host_cpu_c_abi_32bit=no
16349
else
17606
else $as_nop
16350
  gl_cv_host_cpu_c_abi_32bit=yes
17607
  gl_cv_host_cpu_c_abi_32bit=yes
16351
fi
17608
fi
16352
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
17609
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
16353
           ;;
17610
           ;;
16354
17611
16355
         rs6000 )
17612
         rs6000 )
Lines 16368-16379 Link Here
16368
                  #endif
17625
                  #endif
16369
17626
16370
_ACEOF
17627
_ACEOF
16371
if ac_fn_c_try_compile "$LINENO"; then :
17628
if ac_fn_c_try_compile "$LINENO"
17629
then :
16372
  gl_cv_host_cpu_c_abi_32bit=no
17630
  gl_cv_host_cpu_c_abi_32bit=no
16373
else
17631
else $as_nop
16374
  gl_cv_host_cpu_c_abi_32bit=yes
17632
  gl_cv_host_cpu_c_abi_32bit=yes
16375
fi
17633
fi
16376
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
17634
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
16377
           ;;
17635
           ;;
16378
17636
16379
         s390* )
17637
         s390* )
Lines 16388-16399 Link Here
16388
                  #endif
17646
                  #endif
16389
17647
16390
_ACEOF
17648
_ACEOF
16391
if ac_fn_c_try_compile "$LINENO"; then :
17649
if ac_fn_c_try_compile "$LINENO"
17650
then :
16392
  gl_cv_host_cpu_c_abi_32bit=no
17651
  gl_cv_host_cpu_c_abi_32bit=no
16393
else
17652
else $as_nop
16394
  gl_cv_host_cpu_c_abi_32bit=yes
17653
  gl_cv_host_cpu_c_abi_32bit=yes
16395
fi
17654
fi
16396
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
17655
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
16397
           ;;
17656
           ;;
16398
17657
16399
         sparc | sparc64 )
17658
         sparc | sparc64 )
Lines 16408-16430 Link Here
16408
                  #endif
17667
                  #endif
16409
17668
16410
_ACEOF
17669
_ACEOF
16411
if ac_fn_c_try_compile "$LINENO"; then :
17670
if ac_fn_c_try_compile "$LINENO"
17671
then :
16412
  gl_cv_host_cpu_c_abi_32bit=no
17672
  gl_cv_host_cpu_c_abi_32bit=no
16413
else
17673
else $as_nop
16414
  gl_cv_host_cpu_c_abi_32bit=yes
17674
  gl_cv_host_cpu_c_abi_32bit=yes
16415
fi
17675
fi
16416
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
17676
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
16417
           ;;
17677
           ;;
16418
17678
16419
         *)
17679
         *)
16420
           gl_cv_host_cpu_c_abi_32bit=no
17680
           gl_cv_host_cpu_c_abi_32bit=unknown
16421
           ;;
17681
           ;;
16422
       esac
17682
       esac
16423
     fi
17683
     fi
16424
17684
16425
fi
17685
fi
16426
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_host_cpu_c_abi_32bit" >&5
17686
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_host_cpu_c_abi_32bit" >&5
16427
$as_echo "$gl_cv_host_cpu_c_abi_32bit" >&6; }
17687
printf "%s\n" "$gl_cv_host_cpu_c_abi_32bit" >&6; }
16428
17688
16429
  HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit"
17689
  HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit"
16430
17690
Lines 16432-16521 Link Here
16432
17692
16433
17693
16434
17694
16435
  case "$host_os" in
17695
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ELF binary format" >&5
16436
    solaris*)
17696
printf %s "checking for ELF binary format... " >&6; }
16437
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5
17697
if test ${gl_cv_elf+y}
16438
$as_echo_n "checking for 64-bit host... " >&6; }
17698
then :
16439
if ${gl_cv_solaris_64bit+:} false; then :
17699
  printf %s "(cached) " >&6
16440
  $as_echo_n "(cached) " >&6
17700
else $as_nop
16441
else
16442
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
17701
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
16443
/* end confdefs.h.  */
17702
/* end confdefs.h.  */
16444
#ifdef _LP64
17703
#if defined __ELF__ || (defined __linux__ && defined __EDG__)
16445
                 int ok;
17704
        Extensible Linking Format
16446
                #else
17705
        #endif
16447
                 error fail
16448
                #endif
16449
17706
16450
_ACEOF
17707
_ACEOF
16451
if ac_fn_c_try_compile "$LINENO"; then :
17708
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
16452
  gl_cv_solaris_64bit=yes
17709
  $EGREP "Extensible Linking Format" >/dev/null 2>&1
16453
else
17710
then :
16454
  gl_cv_solaris_64bit=no
17711
  gl_cv_elf=yes
17712
else $as_nop
17713
  gl_cv_elf=no
16455
fi
17714
fi
16456
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
17715
rm -rf conftest*
16457
17716
17717
16458
fi
17718
fi
16459
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5
17719
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_elf" >&5
16460
$as_echo "$gl_cv_solaris_64bit" >&6; };;
17720
printf "%s\n" "$gl_cv_elf" >&6; }
16461
  esac
17721
  if test $gl_cv_elf = yes; then
17722
    # Extract the ELF class of a file (5th byte) in decimal.
17723
    # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header
17724
    if od -A x < /dev/null >/dev/null 2>/dev/null; then
17725
      # Use POSIX od.
17726
      func_elfclass ()
17727
      {
17728
        od -A n -t d1 -j 4 -N 1
17729
      }
17730
    else
17731
      # Use BSD hexdump.
17732
      func_elfclass ()
17733
      {
17734
        dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "'
17735
        echo
17736
      }
17737
    fi
17738
    # Use 'expr', not 'test', to compare the values of func_elfclass, because on
17739
    # Solaris 11 OpenIndiana and Solaris 11 OmniOS, the result is 001 or 002,
17740
    # not 1 or 2.
17741
    case $HOST_CPU_C_ABI_32BIT in
17742
      yes)
17743
        # 32-bit ABI.
17744
        acl_is_expected_elfclass ()
17745
        {
17746
          expr "`func_elfclass | sed -e 's/[ 	]//g'`" = 1 > /dev/null
17747
        }
17748
        ;;
17749
      no)
17750
        # 64-bit ABI.
17751
        acl_is_expected_elfclass ()
17752
        {
17753
          expr "`func_elfclass | sed -e 's/[ 	]//g'`" = 2 > /dev/null
17754
        }
17755
        ;;
17756
      *)
17757
        # Unknown.
17758
        acl_is_expected_elfclass ()
17759
        {
17760
          :
17761
        }
17762
        ;;
17763
    esac
17764
  else
17765
    acl_is_expected_elfclass ()
17766
    {
17767
      :
17768
    }
17769
  fi
16462
17770
16463
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the common suffixes of directories in the library search path" >&5
17771
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the common suffixes of directories in the library search path" >&5
16464
$as_echo_n "checking for the common suffixes of directories in the library search path... " >&6; }
17772
printf %s "checking for the common suffixes of directories in the library search path... " >&6; }
16465
if ${acl_cv_libdirstems+:} false; then :
17773
if test ${acl_cv_libdirstems+y}
16466
  $as_echo_n "(cached) " >&6
17774
then :
16467
else
17775
  printf %s "(cached) " >&6
16468
  acl_libdirstem=lib
17776
else $as_nop
17777
            acl_libdirstem=lib
16469
     acl_libdirstem2=
17778
     acl_libdirstem2=
17779
     acl_libdirstem3=
16470
     case "$host_os" in
17780
     case "$host_os" in
16471
       solaris*)
17781
       solaris*)
16472
                                                      if test $gl_cv_solaris_64bit = yes; then
17782
                                                      if test $HOST_CPU_C_ABI_32BIT = no; then
16473
           acl_libdirstem=lib/64
17783
           acl_libdirstem2=lib/64
16474
           case "$host_cpu" in
17784
           case "$host_cpu" in
16475
             sparc*)        acl_libdirstem2=lib/sparcv9 ;;
17785
             sparc*)        acl_libdirstem3=lib/sparcv9 ;;
16476
             i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
17786
             i*86 | x86_64) acl_libdirstem3=lib/amd64 ;;
16477
           esac
17787
           esac
16478
         fi
17788
         fi
16479
         ;;
17789
         ;;
16480
       *)
17790
       *)
16481
                           if test "$HOST_CPU_C_ABI_32BIT" != yes; then
17791
                                                                                 searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \
16482
                                            searchpath=`(if test -f /usr/bin/gcc \
17792
                     | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
16483
                           && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \
17793
         if test $HOST_CPU_C_ABI_32BIT != no; then
16484
                          LC_ALL=C /usr/bin/gcc -print-search-dirs; \
17794
           # 32-bit or unknown ABI.
16485
                        else \
17795
           if test -d /usr/lib32; then
16486
                          LC_ALL=C $CC -print-search-dirs; \
17796
             acl_libdirstem2=lib32
16487
                        fi) 2>/dev/null \
16488
                       | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
16489
           if test -n "$searchpath"; then
16490
             acl_save_IFS="${IFS= 	}"; IFS=":"
16491
             for searchdir in $searchpath; do
16492
               if test -d "$searchdir"; then
16493
                 case "$searchdir" in
16494
                   */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
16495
                   */../ | */.. )
16496
                     # Better ignore directories of this form. They are misleading.
16497
                     ;;
16498
                   *) searchdir=`cd "$searchdir" && pwd`
16499
                      case "$searchdir" in
16500
                        */lib64 ) acl_libdirstem=lib64 ;;
16501
                      esac ;;
16502
                 esac
16503
               fi
16504
             done
16505
             IFS="$acl_save_IFS"
16506
           fi
17797
           fi
16507
         fi
17798
         fi
17799
         if test $HOST_CPU_C_ABI_32BIT != yes; then
17800
           # 64-bit or unknown ABI.
17801
           if test -d /usr/lib64; then
17802
             acl_libdirstem3=lib64
17803
           fi
17804
         fi
17805
         if test -n "$searchpath"; then
17806
           acl_save_IFS="${IFS= 	}"; IFS=":"
17807
           for searchdir in $searchpath; do
17808
             if test -d "$searchdir"; then
17809
               case "$searchdir" in
17810
                 */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;;
17811
                 */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;;
17812
                 */../ | */.. )
17813
                   # Better ignore directories of this form. They are misleading.
17814
                   ;;
17815
                 *) searchdir=`cd "$searchdir" && pwd`
17816
                    case "$searchdir" in
17817
                      */lib32 ) acl_libdirstem2=lib32 ;;
17818
                      */lib64 ) acl_libdirstem3=lib64 ;;
17819
                    esac ;;
17820
               esac
17821
             fi
17822
           done
17823
           IFS="$acl_save_IFS"
17824
           if test $HOST_CPU_C_ABI_32BIT = yes; then
17825
             # 32-bit ABI.
17826
             acl_libdirstem3=
17827
           fi
17828
           if test $HOST_CPU_C_ABI_32BIT = no; then
17829
             # 64-bit ABI.
17830
             acl_libdirstem2=
17831
           fi
17832
         fi
16508
         ;;
17833
         ;;
16509
     esac
17834
     esac
16510
     test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
17835
     test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
16511
     acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2"
17836
     test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem"
17837
     acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3"
16512
17838
16513
fi
17839
fi
16514
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_libdirstems" >&5
17840
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acl_cv_libdirstems" >&5
16515
$as_echo "$acl_cv_libdirstems" >&6; }
17841
printf "%s\n" "$acl_cv_libdirstems" >&6; }
16516
  # Decompose acl_cv_libdirstems into acl_libdirstem and acl_libdirstem2.
17842
      acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'`
16517
  acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'`
17843
  acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'`
16518
  acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e '/,/s/.*,//'`
17844
  acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'`
16519
17845
16520
17846
16521
17847
Lines 16536-16548 Link Here
16536
17862
16537
    eval additional_includedir=\"$includedir\"
17863
    eval additional_includedir=\"$includedir\"
16538
    eval additional_libdir=\"$libdir\"
17864
    eval additional_libdir=\"$libdir\"
17865
    eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
17866
    eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
16539
17867
16540
  exec_prefix="$acl_save_exec_prefix"
17868
  exec_prefix="$acl_save_exec_prefix"
16541
  prefix="$acl_save_prefix"
17869
  prefix="$acl_save_prefix"
16542
17870
16543
17871
16544
# Check whether --with-libiconv-prefix was given.
17872
# Check whether --with-libiconv-prefix was given.
16545
if test "${with_libiconv_prefix+set}" = set; then :
17873
if test ${with_libiconv_prefix+y}
17874
then :
16546
  withval=$with_libiconv_prefix;
17875
  withval=$with_libiconv_prefix;
16547
    if test "X$withval" = "Xno"; then
17876
    if test "X$withval" = "Xno"; then
16548
      use_additional=no
17877
      use_additional=no
Lines 16556-16561 Link Here
16556
17885
16557
          eval additional_includedir=\"$includedir\"
17886
          eval additional_includedir=\"$includedir\"
16558
          eval additional_libdir=\"$libdir\"
17887
          eval additional_libdir=\"$libdir\"
17888
          eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
17889
          eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
16559
17890
16560
  exec_prefix="$acl_save_exec_prefix"
17891
  exec_prefix="$acl_save_exec_prefix"
16561
  prefix="$acl_save_prefix"
17892
  prefix="$acl_save_prefix"
Lines 16563-16577 Link Here
16563
      else
17894
      else
16564
        additional_includedir="$withval/include"
17895
        additional_includedir="$withval/include"
16565
        additional_libdir="$withval/$acl_libdirstem"
17896
        additional_libdir="$withval/$acl_libdirstem"
16566
        if test "$acl_libdirstem2" != "$acl_libdirstem" \
17897
        additional_libdir2="$withval/$acl_libdirstem2"
16567
           && test ! -d "$withval/$acl_libdirstem"; then
17898
        additional_libdir3="$withval/$acl_libdirstem3"
16568
          additional_libdir="$withval/$acl_libdirstem2"
16569
        fi
16570
      fi
17899
      fi
16571
    fi
17900
    fi
16572
17901
16573
fi
17902
fi
16574
17903
17904
  if test "X$additional_libdir2" = "X$additional_libdir"; then
17905
    additional_libdir2=
17906
  fi
17907
  if test "X$additional_libdir3" = "X$additional_libdir"; then
17908
    additional_libdir3=
17909
  fi
16575
      LIBICONV=
17910
      LIBICONV=
16576
  LTLIBICONV=
17911
  LTLIBICONV=
16577
  INCICONV=
17912
  INCICONV=
Lines 16617-16661 Link Here
16617
            shrext=
17952
            shrext=
16618
          fi
17953
          fi
16619
          if test $use_additional = yes; then
17954
          if test $use_additional = yes; then
16620
            dir="$additional_libdir"
17955
            for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do
16621
                                    if test -n "$acl_shlibext"; then
17956
              if test "X$found_dir" = "X"; then
16622
              if test -f "$dir/$libname$shrext"; then
17957
                eval dir=\$$additional_libdir_variable
16623
                found_dir="$dir"
17958
                if test -n "$dir"; then
16624
                found_so="$dir/$libname$shrext"
17959
                                                      if test -n "$acl_shlibext"; then
16625
              else
17960
                    if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then
16626
                if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
17961
                      found_dir="$dir"
16627
                  ver=`(cd "$dir" && \
17962
                      found_so="$dir/$libname$shrext"
16628
                        for f in "$libname$shrext".*; do echo "$f"; done \
17963
                    else
16629
                        | sed -e "s,^$libname$shrext\\\\.,," \
17964
                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
16630
                        | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
17965
                        ver=`(cd "$dir" && \
16631
                        | sed 1q ) 2>/dev/null`
17966
                              for f in "$libname$shrext".*; do echo "$f"; done \
16632
                  if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
17967
                              | sed -e "s,^$libname$shrext\\\\.,," \
16633
                    found_dir="$dir"
17968
                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
16634
                    found_so="$dir/$libname$shrext.$ver"
17969
                              | sed 1q ) 2>/dev/null`
17970
                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then
17971
                          found_dir="$dir"
17972
                          found_so="$dir/$libname$shrext.$ver"
17973
                        fi
17974
                      else
17975
                        eval library_names=\"$acl_library_names_spec\"
17976
                        for f in $library_names; do
17977
                          if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then
17978
                            found_dir="$dir"
17979
                            found_so="$dir/$f"
17980
                            break
17981
                          fi
17982
                        done
17983
                      fi
17984
                    fi
16635
                  fi
17985
                  fi
16636
                else
17986
                                    if test "X$found_dir" = "X"; then
16637
                  eval library_names=\"$acl_library_names_spec\"
17987
                    if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then
16638
                  for f in $library_names; do
16639
                    if test -f "$dir/$f"; then
16640
                      found_dir="$dir"
17988
                      found_dir="$dir"
16641
                      found_so="$dir/$f"
17989
                      found_a="$dir/$libname.$acl_libext"
16642
                      break
16643
                    fi
17990
                    fi
16644
                  done
17991
                  fi
17992
                  if test "X$found_dir" != "X"; then
17993
                    if test -f "$dir/$libname.la"; then
17994
                      found_la="$dir/$libname.la"
17995
                    fi
17996
                  fi
16645
                fi
17997
                fi
16646
              fi
17998
              fi
16647
            fi
17999
            done
16648
                        if test "X$found_dir" = "X"; then
16649
              if test -f "$dir/$libname.$acl_libext"; then
16650
                found_dir="$dir"
16651
                found_a="$dir/$libname.$acl_libext"
16652
              fi
16653
            fi
16654
            if test "X$found_dir" != "X"; then
16655
              if test -f "$dir/$libname.la"; then
16656
                found_la="$dir/$libname.la"
16657
              fi
16658
            fi
16659
          fi
18000
          fi
16660
          if test "X$found_dir" = "X"; then
18001
          if test "X$found_dir" = "X"; then
16661
            for x in $LDFLAGS $LTLIBICONV; do
18002
            for x in $LDFLAGS $LTLIBICONV; do
Lines 16672-16678 Link Here
16672
                -L*)
18013
                -L*)
16673
                  dir=`echo "X$x" | sed -e 's/^X-L//'`
18014
                  dir=`echo "X$x" | sed -e 's/^X-L//'`
16674
                                    if test -n "$acl_shlibext"; then
18015
                                    if test -n "$acl_shlibext"; then
16675
                    if test -f "$dir/$libname$shrext"; then
18016
                    if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then
16676
                      found_dir="$dir"
18017
                      found_dir="$dir"
16677
                      found_so="$dir/$libname$shrext"
18018
                      found_so="$dir/$libname$shrext"
16678
                    else
18019
                    else
Lines 16682-16695 Link Here
16682
                              | sed -e "s,^$libname$shrext\\\\.,," \
18023
                              | sed -e "s,^$libname$shrext\\\\.,," \
16683
                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
18024
                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
16684
                              | sed 1q ) 2>/dev/null`
18025
                              | sed 1q ) 2>/dev/null`
16685
                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
18026
                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then
16686
                          found_dir="$dir"
18027
                          found_dir="$dir"
16687
                          found_so="$dir/$libname$shrext.$ver"
18028
                          found_so="$dir/$libname$shrext.$ver"
16688
                        fi
18029
                        fi
16689
                      else
18030
                      else
16690
                        eval library_names=\"$acl_library_names_spec\"
18031
                        eval library_names=\"$acl_library_names_spec\"
16691
                        for f in $library_names; do
18032
                        for f in $library_names; do
16692
                          if test -f "$dir/$f"; then
18033
                          if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then
16693
                            found_dir="$dir"
18034
                            found_dir="$dir"
16694
                            found_so="$dir/$f"
18035
                            found_so="$dir/$f"
16695
                            break
18036
                            break
Lines 16699-16705 Link Here
16699
                    fi
18040
                    fi
16700
                  fi
18041
                  fi
16701
                                    if test "X$found_dir" = "X"; then
18042
                                    if test "X$found_dir" = "X"; then
16702
                    if test -f "$dir/$libname.$acl_libext"; then
18043
                    if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then
16703
                      found_dir="$dir"
18044
                      found_dir="$dir"
16704
                      found_a="$dir/$libname.$acl_libext"
18045
                      found_a="$dir/$libname.$acl_libext"
16705
                    fi
18046
                    fi
Lines 16721-16727 Link Here
16721
            if test "X$found_so" != "X"; then
18062
            if test "X$found_so" != "X"; then
16722
                                                        if test "$enable_rpath" = no \
18063
                                                        if test "$enable_rpath" = no \
16723
                 || test "X$found_dir" = "X/usr/$acl_libdirstem" \
18064
                 || test "X$found_dir" = "X/usr/$acl_libdirstem" \
16724
                 || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
18065
                 || test "X$found_dir" = "X/usr/$acl_libdirstem2" \
18066
                 || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then
16725
                                LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
18067
                                LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
16726
              else
18068
              else
16727
                                                                                haveit=
18069
                                                                                haveit=
Lines 16800-16805 Link Here
16800
                fi
18142
                fi
16801
                additional_includedir="$basedir/include"
18143
                additional_includedir="$basedir/include"
16802
                ;;
18144
                ;;
18145
              */$acl_libdirstem3 | */$acl_libdirstem3/)
18146
                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'`
18147
                if test "$name" = 'iconv'; then
18148
                  LIBICONV_PREFIX="$basedir"
18149
                fi
18150
                additional_includedir="$basedir/include"
18151
                ;;
16803
            esac
18152
            esac
16804
            if test "X$additional_includedir" != "X"; then
18153
            if test "X$additional_includedir" != "X"; then
16805
                                                                                                                if test "X$additional_includedir" != "X/usr/include"; then
18154
                                                                                                                if test "X$additional_includedir" != "X/usr/include"; then
Lines 16845-16856 Link Here
16845
                            for dep in $dependency_libs; do
18194
                            for dep in $dependency_libs; do
16846
                case "$dep" in
18195
                case "$dep" in
16847
                  -L*)
18196
                  -L*)
16848
                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
18197
                    dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
16849
                                                                                                                                                                if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
18198
                                                                                                                                                                if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \
16850
                       && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
18199
                       && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \
18200
                       && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then
16851
                      haveit=
18201
                      haveit=
16852
                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
18202
                      if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \
16853
                         || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
18203
                         || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \
18204
                         || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then
16854
                        if test -n "$GCC"; then
18205
                        if test -n "$GCC"; then
16855
                          case $host_os in
18206
                          case $host_os in
16856
                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
18207
                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
Lines 16869-16882 Link Here
16869
  exec_prefix="$acl_save_exec_prefix"
18220
  exec_prefix="$acl_save_exec_prefix"
16870
  prefix="$acl_save_prefix"
18221
  prefix="$acl_save_prefix"
16871
18222
16872
                          if test "X$x" = "X-L$additional_libdir"; then
18223
                          if test "X$x" = "X-L$dependency_libdir"; then
16873
                            haveit=yes
18224
                            haveit=yes
16874
                            break
18225
                            break
16875
                          fi
18226
                          fi
16876
                        done
18227
                        done
16877
                        if test -z "$haveit"; then
18228
                        if test -z "$haveit"; then
16878
                          if test -d "$additional_libdir"; then
18229
                          if test -d "$dependency_libdir"; then
16879
                                                        LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir"
18230
                                                        LIBICONV="${LIBICONV}${LIBICONV:+ }-L$dependency_libdir"
16880
                          fi
18231
                          fi
16881
                        fi
18232
                        fi
16882
                        haveit=
18233
                        haveit=
Lines 16890-16903 Link Here
16890
  exec_prefix="$acl_save_exec_prefix"
18241
  exec_prefix="$acl_save_exec_prefix"
16891
  prefix="$acl_save_prefix"
18242
  prefix="$acl_save_prefix"
16892
18243
16893
                          if test "X$x" = "X-L$additional_libdir"; then
18244
                          if test "X$x" = "X-L$dependency_libdir"; then
16894
                            haveit=yes
18245
                            haveit=yes
16895
                            break
18246
                            break
16896
                          fi
18247
                          fi
16897
                        done
18248
                        done
16898
                        if test -z "$haveit"; then
18249
                        if test -z "$haveit"; then
16899
                          if test -d "$additional_libdir"; then
18250
                          if test -d "$dependency_libdir"; then
16900
                                                        LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir"
18251
                                                        LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$dependency_libdir"
16901
                          fi
18252
                          fi
16902
                        fi
18253
                        fi
16903
                      fi
18254
                      fi
Lines 16929-16935 Link Here
16929
                    fi
18280
                    fi
16930
                    ;;
18281
                    ;;
16931
                  -l*)
18282
                  -l*)
16932
                                        names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
18283
                                                                                                                                                                dep=`echo "X$dep" | sed -e 's/^X-l//'`
18284
                    if test "X$dep" != Xc \
18285
                       || case $host_os in
18286
                            linux* | gnu* | k*bsd*-gnu) false ;;
18287
                            *)                          true ;;
18288
                          esac; then
18289
                      names_next_round="$names_next_round $dep"
18290
                    fi
16933
                    ;;
18291
                    ;;
16934
                  *.la)
18292
                  *.la)
16935
                                                                                names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
18293
                                                                                names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
Lines 17004-17114 Link Here
17004
18362
17005
18363
17006
18364
17007
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5
18365
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5
17008
$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; }
18366
printf %s "checking for CFPreferencesCopyAppValue... " >&6; }
17009
if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then :
18367
if test ${gt_cv_func_CFPreferencesCopyAppValue+y}
17010
  $as_echo_n "(cached) " >&6
18368
then :
17011
else
18369
  printf %s "(cached) " >&6
18370
else $as_nop
17012
  gt_save_LIBS="$LIBS"
18371
  gt_save_LIBS="$LIBS"
17013
     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
18372
     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
17014
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
18373
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
17015
/* end confdefs.h.  */
18374
/* end confdefs.h.  */
17016
#include <CoreFoundation/CFPreferences.h>
18375
#include <CoreFoundation/CFPreferences.h>
17017
int
18376
int
17018
main ()
18377
main (void)
17019
{
18378
{
17020
CFPreferencesCopyAppValue(NULL, NULL)
18379
CFPreferencesCopyAppValue(NULL, NULL)
17021
  ;
18380
  ;
17022
  return 0;
18381
  return 0;
17023
}
18382
}
17024
_ACEOF
18383
_ACEOF
17025
if ac_fn_c_try_link "$LINENO"; then :
18384
if ac_fn_c_try_link "$LINENO"
18385
then :
17026
  gt_cv_func_CFPreferencesCopyAppValue=yes
18386
  gt_cv_func_CFPreferencesCopyAppValue=yes
17027
else
18387
else $as_nop
17028
  gt_cv_func_CFPreferencesCopyAppValue=no
18388
  gt_cv_func_CFPreferencesCopyAppValue=no
17029
fi
18389
fi
17030
rm -f core conftest.err conftest.$ac_objext \
18390
rm -f core conftest.err conftest.$ac_objext conftest.beam \
17031
    conftest$ac_exeext conftest.$ac_ext
18391
    conftest$ac_exeext conftest.$ac_ext
17032
     LIBS="$gt_save_LIBS"
18392
     LIBS="$gt_save_LIBS"
17033
fi
18393
fi
17034
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5
18394
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5
17035
$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; }
18395
printf "%s\n" "$gt_cv_func_CFPreferencesCopyAppValue" >&6; }
17036
  if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
18396
  if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
17037
18397
17038
$as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h
18398
printf "%s\n" "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h
17039
18399
17040
  fi
18400
  fi
17041
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5
18401
                    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyPreferredLanguages" >&5
17042
$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; }
18402
printf %s "checking for CFLocaleCopyPreferredLanguages... " >&6; }
17043
if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then :
18403
if test ${gt_cv_func_CFLocaleCopyPreferredLanguages+y}
17044
  $as_echo_n "(cached) " >&6
18404
then :
17045
else
18405
  printf %s "(cached) " >&6
18406
else $as_nop
17046
  gt_save_LIBS="$LIBS"
18407
  gt_save_LIBS="$LIBS"
17047
     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
18408
     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
17048
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
18409
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
17049
/* end confdefs.h.  */
18410
/* end confdefs.h.  */
17050
#include <CoreFoundation/CFLocale.h>
18411
#include <CoreFoundation/CFLocale.h>
17051
int
18412
int
17052
main ()
18413
main (void)
17053
{
18414
{
17054
CFLocaleCopyCurrent();
17055
  ;
17056
  return 0;
17057
}
17058
_ACEOF
17059
if ac_fn_c_try_link "$LINENO"; then :
17060
  gt_cv_func_CFLocaleCopyCurrent=yes
17061
else
17062
  gt_cv_func_CFLocaleCopyCurrent=no
17063
fi
17064
rm -f core conftest.err conftest.$ac_objext \
17065
    conftest$ac_exeext conftest.$ac_ext
17066
     LIBS="$gt_save_LIBS"
17067
fi
17068
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5
17069
$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; }
17070
  if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
17071
17072
$as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h
17073
17074
  fi
17075
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyPreferredLanguages" >&5
17076
$as_echo_n "checking for CFLocaleCopyPreferredLanguages... " >&6; }
17077
if ${gt_cv_func_CFLocaleCopyPreferredLanguages+:} false; then :
17078
  $as_echo_n "(cached) " >&6
17079
else
17080
  gt_save_LIBS="$LIBS"
17081
     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
17082
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
17083
/* end confdefs.h.  */
17084
#include <CoreFoundation/CFLocale.h>
17085
int
17086
main ()
17087
{
17088
CFLocaleCopyPreferredLanguages();
18415
CFLocaleCopyPreferredLanguages();
17089
  ;
18416
  ;
17090
  return 0;
18417
  return 0;
17091
}
18418
}
17092
_ACEOF
18419
_ACEOF
17093
if ac_fn_c_try_link "$LINENO"; then :
18420
if ac_fn_c_try_link "$LINENO"
18421
then :
17094
  gt_cv_func_CFLocaleCopyPreferredLanguages=yes
18422
  gt_cv_func_CFLocaleCopyPreferredLanguages=yes
17095
else
18423
else $as_nop
17096
  gt_cv_func_CFLocaleCopyPreferredLanguages=no
18424
  gt_cv_func_CFLocaleCopyPreferredLanguages=no
17097
fi
18425
fi
17098
rm -f core conftest.err conftest.$ac_objext \
18426
rm -f core conftest.err conftest.$ac_objext conftest.beam \
17099
    conftest$ac_exeext conftest.$ac_ext
18427
    conftest$ac_exeext conftest.$ac_ext
17100
     LIBS="$gt_save_LIBS"
18428
     LIBS="$gt_save_LIBS"
17101
fi
18429
fi
17102
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyPreferredLanguages" >&5
18430
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyPreferredLanguages" >&5
17103
$as_echo "$gt_cv_func_CFLocaleCopyPreferredLanguages" >&6; }
18431
printf "%s\n" "$gt_cv_func_CFLocaleCopyPreferredLanguages" >&6; }
17104
  if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then
18432
  if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then
17105
18433
17106
$as_echo "#define HAVE_CFLOCALECOPYPREFERREDLANGUAGES 1" >>confdefs.h
18434
printf "%s\n" "#define HAVE_CFLOCALECOPYPREFERREDLANGUAGES 1" >>confdefs.h
17107
18435
17108
  fi
18436
  fi
17109
  INTL_MACOSX_LIBS=
18437
  INTL_MACOSX_LIBS=
17110
  if test $gt_cv_func_CFPreferencesCopyAppValue = yes \
18438
  if test $gt_cv_func_CFPreferencesCopyAppValue = yes \
17111
     || test $gt_cv_func_CFLocaleCopyCurrent = yes \
17112
     || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then
18439
     || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then
17113
    INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
18440
    INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
17114
  fi
18441
  fi
Lines 17150-17160 Link Here
17150
          gt_expression_test_code=
18477
          gt_expression_test_code=
17151
        fi
18478
        fi
17152
18479
17153
        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5
18480
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5
17154
$as_echo_n "checking for GNU gettext in libc... " >&6; }
18481
printf %s "checking for GNU gettext in libc... " >&6; }
17155
if eval \${$gt_func_gnugettext_libc+:} false; then :
18482
if eval test \${$gt_func_gnugettext_libc+y}
17156
  $as_echo_n "(cached) " >&6
18483
then :
17157
else
18484
  printf %s "(cached) " >&6
18485
else $as_nop
17158
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
18486
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
17159
/* end confdefs.h.  */
18487
/* end confdefs.h.  */
17160
18488
Lines 17169-17175 Link Here
17169
$gt_revision_test_code
18497
$gt_revision_test_code
17170
18498
17171
int
18499
int
17172
main ()
18500
main (void)
17173
{
18501
{
17174
18502
17175
bindtextdomain ("", "");
18503
bindtextdomain ("", "");
Lines 17179-17195 Link Here
17179
  return 0;
18507
  return 0;
17180
}
18508
}
17181
_ACEOF
18509
_ACEOF
17182
if ac_fn_c_try_link "$LINENO"; then :
18510
if ac_fn_c_try_link "$LINENO"
18511
then :
17183
  eval "$gt_func_gnugettext_libc=yes"
18512
  eval "$gt_func_gnugettext_libc=yes"
17184
else
18513
else $as_nop
17185
  eval "$gt_func_gnugettext_libc=no"
18514
  eval "$gt_func_gnugettext_libc=no"
17186
fi
18515
fi
17187
rm -f core conftest.err conftest.$ac_objext \
18516
rm -f core conftest.err conftest.$ac_objext conftest.beam \
17188
    conftest$ac_exeext conftest.$ac_ext
18517
    conftest$ac_exeext conftest.$ac_ext
17189
fi
18518
fi
17190
eval ac_res=\$$gt_func_gnugettext_libc
18519
eval ac_res=\$$gt_func_gnugettext_libc
17191
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
18520
	       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
17192
$as_echo "$ac_res" >&6; }
18521
printf "%s\n" "$ac_res" >&6; }
17193
18522
17194
        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
18523
        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
17195
18524
Lines 17222-17232 Link Here
17222
  done
18551
  done
17223
18552
17224
18553
17225
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
18554
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
17226
$as_echo_n "checking for iconv... " >&6; }
18555
printf %s "checking for iconv... " >&6; }
17227
if ${am_cv_func_iconv+:} false; then :
18556
if test ${am_cv_func_iconv+y}
17228
  $as_echo_n "(cached) " >&6
18557
then :
17229
else
18558
  printf %s "(cached) " >&6
18559
else $as_nop
17230
18560
17231
    am_cv_func_iconv="no, consider installing GNU libiconv"
18561
    am_cv_func_iconv="no, consider installing GNU libiconv"
17232
    am_cv_lib_iconv=no
18562
    am_cv_lib_iconv=no
Lines 17237-17243 Link Here
17237
#include <iconv.h>
18567
#include <iconv.h>
17238
18568
17239
int
18569
int
17240
main ()
18570
main (void)
17241
{
18571
{
17242
iconv_t cd = iconv_open("","");
18572
iconv_t cd = iconv_open("","");
17243
           iconv(cd,NULL,NULL,NULL,NULL);
18573
           iconv(cd,NULL,NULL,NULL,NULL);
Lines 17246-17255 Link Here
17246
  return 0;
18576
  return 0;
17247
}
18577
}
17248
_ACEOF
18578
_ACEOF
17249
if ac_fn_c_try_link "$LINENO"; then :
18579
if ac_fn_c_try_link "$LINENO"
18580
then :
17250
  am_cv_func_iconv=yes
18581
  am_cv_func_iconv=yes
17251
fi
18582
fi
17252
rm -f core conftest.err conftest.$ac_objext \
18583
rm -f core conftest.err conftest.$ac_objext conftest.beam \
17253
    conftest$ac_exeext conftest.$ac_ext
18584
    conftest$ac_exeext conftest.$ac_ext
17254
    if test "$am_cv_func_iconv" != yes; then
18585
    if test "$am_cv_func_iconv" != yes; then
17255
      am_save_LIBS="$LIBS"
18586
      am_save_LIBS="$LIBS"
Lines 17261-17267 Link Here
17261
#include <iconv.h>
18592
#include <iconv.h>
17262
18593
17263
int
18594
int
17264
main ()
18595
main (void)
17265
{
18596
{
17266
iconv_t cd = iconv_open("","");
18597
iconv_t cd = iconv_open("","");
17267
             iconv(cd,NULL,NULL,NULL,NULL);
18598
             iconv(cd,NULL,NULL,NULL,NULL);
Lines 17270-17293 Link Here
17270
  return 0;
18601
  return 0;
17271
}
18602
}
17272
_ACEOF
18603
_ACEOF
17273
if ac_fn_c_try_link "$LINENO"; then :
18604
if ac_fn_c_try_link "$LINENO"
18605
then :
17274
  am_cv_lib_iconv=yes
18606
  am_cv_lib_iconv=yes
17275
        am_cv_func_iconv=yes
18607
        am_cv_func_iconv=yes
17276
fi
18608
fi
17277
rm -f core conftest.err conftest.$ac_objext \
18609
rm -f core conftest.err conftest.$ac_objext conftest.beam \
17278
    conftest$ac_exeext conftest.$ac_ext
18610
    conftest$ac_exeext conftest.$ac_ext
17279
      LIBS="$am_save_LIBS"
18611
      LIBS="$am_save_LIBS"
17280
    fi
18612
    fi
17281
18613
17282
fi
18614
fi
17283
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5
18615
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5
17284
$as_echo "$am_cv_func_iconv" >&6; }
18616
printf "%s\n" "$am_cv_func_iconv" >&6; }
17285
  if test "$am_cv_func_iconv" = yes; then
18617
  if test "$am_cv_func_iconv" = yes; then
17286
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5
18618
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5
17287
$as_echo_n "checking for working iconv... " >&6; }
18619
printf %s "checking for working iconv... " >&6; }
17288
if ${am_cv_func_iconv_works+:} false; then :
18620
if test ${am_cv_func_iconv_works+y}
17289
  $as_echo_n "(cached) " >&6
18621
then :
17290
else
18622
  printf %s "(cached) " >&6
18623
else $as_nop
17291
18624
17292
                  am_save_LIBS="$LIBS"
18625
                  am_save_LIBS="$LIBS"
17293
      if test $am_cv_lib_iconv = yes; then
18626
      if test $am_cv_lib_iconv = yes; then
Lines 17295-17306 Link Here
17295
      fi
18628
      fi
17296
      am_cv_func_iconv_works=no
18629
      am_cv_func_iconv_works=no
17297
      for ac_iconv_const in '' 'const'; do
18630
      for ac_iconv_const in '' 'const'; do
17298
        if test "$cross_compiling" = yes; then :
18631
        if test "$cross_compiling" = yes
18632
then :
17299
  case "$host_os" in
18633
  case "$host_os" in
17300
             aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
18634
             aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
17301
             *)            am_cv_func_iconv_works="guessing yes" ;;
18635
             *)            am_cv_func_iconv_works="guessing yes" ;;
17302
           esac
18636
           esac
17303
else
18637
else $as_nop
17304
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
18638
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
17305
/* end confdefs.h.  */
18639
/* end confdefs.h.  */
17306
18640
Lines 17312-17322 Link Here
17312
#endif
18646
#endif
17313
18647
17314
int
18648
int
17315
main ()
18649
main (void)
17316
{
18650
{
17317
int result = 0;
18651
int result = 0;
17318
  /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
18652
  /* Test against AIX 5.1...7.2 bug: Failures are not distinguishable from
17319
     returns.  */
18653
     successful returns.  This is even documented in
18654
     <https://www.ibm.com/support/knowledgecenter/ssw_aix_72/i_bostechref/iconv.html> */
17320
  {
18655
  {
17321
    iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
18656
    iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
17322
    if (cd_utf8_to_88591 != (iconv_t)(-1))
18657
    if (cd_utf8_to_88591 != (iconv_t)(-1))
Lines 17424-17430 Link Here
17424
  return 0;
18759
  return 0;
17425
}
18760
}
17426
_ACEOF
18761
_ACEOF
17427
if ac_fn_c_try_run "$LINENO"; then :
18762
if ac_fn_c_try_run "$LINENO"
18763
then :
17428
  am_cv_func_iconv_works=yes
18764
  am_cv_func_iconv_works=yes
17429
fi
18765
fi
17430
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
18766
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
Lines 17436-17443 Link Here
17436
      LIBS="$am_save_LIBS"
18772
      LIBS="$am_save_LIBS"
17437
18773
17438
fi
18774
fi
17439
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5
18775
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5
17440
$as_echo "$am_cv_func_iconv_works" >&6; }
18776
printf "%s\n" "$am_cv_func_iconv_works" >&6; }
17441
    case "$am_cv_func_iconv_works" in
18777
    case "$am_cv_func_iconv_works" in
17442
      *no) am_func_iconv=no am_cv_lib_iconv=no ;;
18778
      *no) am_func_iconv=no am_cv_lib_iconv=no ;;
17443
      *)   am_func_iconv=yes ;;
18779
      *)   am_func_iconv=yes ;;
Lines 17447-17460 Link Here
17447
  fi
18783
  fi
17448
  if test "$am_func_iconv" = yes; then
18784
  if test "$am_func_iconv" = yes; then
17449
18785
17450
$as_echo "#define HAVE_ICONV 1" >>confdefs.h
18786
printf "%s\n" "#define HAVE_ICONV 1" >>confdefs.h
17451
18787
17452
  fi
18788
  fi
17453
  if test "$am_cv_lib_iconv" = yes; then
18789
  if test "$am_cv_lib_iconv" = yes; then
17454
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5
18790
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5
17455
$as_echo_n "checking how to link with libiconv... " >&6; }
18791
printf %s "checking how to link with libiconv... " >&6; }
17456
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5
18792
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5
17457
$as_echo "$LIBICONV" >&6; }
18793
printf "%s\n" "$LIBICONV" >&6; }
17458
  else
18794
  else
17459
            CPPFLAGS="$am_save_CPPFLAGS"
18795
            CPPFLAGS="$am_save_CPPFLAGS"
17460
    LIBICONV=
18796
    LIBICONV=
Lines 17479-17491 Link Here
17479
18815
17480
    eval additional_includedir=\"$includedir\"
18816
    eval additional_includedir=\"$includedir\"
17481
    eval additional_libdir=\"$libdir\"
18817
    eval additional_libdir=\"$libdir\"
18818
    eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
18819
    eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
17482
18820
17483
  exec_prefix="$acl_save_exec_prefix"
18821
  exec_prefix="$acl_save_exec_prefix"
17484
  prefix="$acl_save_prefix"
18822
  prefix="$acl_save_prefix"
17485
18823
17486
18824
17487
# Check whether --with-libintl-prefix was given.
18825
# Check whether --with-libintl-prefix was given.
17488
if test "${with_libintl_prefix+set}" = set; then :
18826
if test ${with_libintl_prefix+y}
18827
then :
17489
  withval=$with_libintl_prefix;
18828
  withval=$with_libintl_prefix;
17490
    if test "X$withval" = "Xno"; then
18829
    if test "X$withval" = "Xno"; then
17491
      use_additional=no
18830
      use_additional=no
Lines 17499-17504 Link Here
17499
18838
17500
          eval additional_includedir=\"$includedir\"
18839
          eval additional_includedir=\"$includedir\"
17501
          eval additional_libdir=\"$libdir\"
18840
          eval additional_libdir=\"$libdir\"
18841
          eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
18842
          eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
17502
18843
17503
  exec_prefix="$acl_save_exec_prefix"
18844
  exec_prefix="$acl_save_exec_prefix"
17504
  prefix="$acl_save_prefix"
18845
  prefix="$acl_save_prefix"
Lines 17506-17520 Link Here
17506
      else
18847
      else
17507
        additional_includedir="$withval/include"
18848
        additional_includedir="$withval/include"
17508
        additional_libdir="$withval/$acl_libdirstem"
18849
        additional_libdir="$withval/$acl_libdirstem"
17509
        if test "$acl_libdirstem2" != "$acl_libdirstem" \
18850
        additional_libdir2="$withval/$acl_libdirstem2"
17510
           && test ! -d "$withval/$acl_libdirstem"; then
18851
        additional_libdir3="$withval/$acl_libdirstem3"
17511
          additional_libdir="$withval/$acl_libdirstem2"
17512
        fi
17513
      fi
18852
      fi
17514
    fi
18853
    fi
17515
18854
17516
fi
18855
fi
17517
18856
18857
  if test "X$additional_libdir2" = "X$additional_libdir"; then
18858
    additional_libdir2=
18859
  fi
18860
  if test "X$additional_libdir3" = "X$additional_libdir"; then
18861
    additional_libdir3=
18862
  fi
17518
      LIBINTL=
18863
      LIBINTL=
17519
  LTLIBINTL=
18864
  LTLIBINTL=
17520
  INCINTL=
18865
  INCINTL=
Lines 17560-17604 Link Here
17560
            shrext=
18905
            shrext=
17561
          fi
18906
          fi
17562
          if test $use_additional = yes; then
18907
          if test $use_additional = yes; then
17563
            dir="$additional_libdir"
18908
            for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do
17564
                                    if test -n "$acl_shlibext"; then
18909
              if test "X$found_dir" = "X"; then
17565
              if test -f "$dir/$libname$shrext"; then
18910
                eval dir=\$$additional_libdir_variable
17566
                found_dir="$dir"
18911
                if test -n "$dir"; then
17567
                found_so="$dir/$libname$shrext"
18912
                                                      if test -n "$acl_shlibext"; then
17568
              else
18913
                    if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then
17569
                if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
18914
                      found_dir="$dir"
17570
                  ver=`(cd "$dir" && \
18915
                      found_so="$dir/$libname$shrext"
17571
                        for f in "$libname$shrext".*; do echo "$f"; done \
18916
                    else
17572
                        | sed -e "s,^$libname$shrext\\\\.,," \
18917
                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
17573
                        | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
18918
                        ver=`(cd "$dir" && \
17574
                        | sed 1q ) 2>/dev/null`
18919
                              for f in "$libname$shrext".*; do echo "$f"; done \
17575
                  if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
18920
                              | sed -e "s,^$libname$shrext\\\\.,," \
17576
                    found_dir="$dir"
18921
                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
17577
                    found_so="$dir/$libname$shrext.$ver"
18922
                              | sed 1q ) 2>/dev/null`
18923
                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then
18924
                          found_dir="$dir"
18925
                          found_so="$dir/$libname$shrext.$ver"
18926
                        fi
18927
                      else
18928
                        eval library_names=\"$acl_library_names_spec\"
18929
                        for f in $library_names; do
18930
                          if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then
18931
                            found_dir="$dir"
18932
                            found_so="$dir/$f"
18933
                            break
18934
                          fi
18935
                        done
18936
                      fi
18937
                    fi
17578
                  fi
18938
                  fi
17579
                else
18939
                                    if test "X$found_dir" = "X"; then
17580
                  eval library_names=\"$acl_library_names_spec\"
18940
                    if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then
17581
                  for f in $library_names; do
17582
                    if test -f "$dir/$f"; then
17583
                      found_dir="$dir"
18941
                      found_dir="$dir"
17584
                      found_so="$dir/$f"
18942
                      found_a="$dir/$libname.$acl_libext"
17585
                      break
17586
                    fi
18943
                    fi
17587
                  done
18944
                  fi
18945
                  if test "X$found_dir" != "X"; then
18946
                    if test -f "$dir/$libname.la"; then
18947
                      found_la="$dir/$libname.la"
18948
                    fi
18949
                  fi
17588
                fi
18950
                fi
17589
              fi
18951
              fi
17590
            fi
18952
            done
17591
                        if test "X$found_dir" = "X"; then
17592
              if test -f "$dir/$libname.$acl_libext"; then
17593
                found_dir="$dir"
17594
                found_a="$dir/$libname.$acl_libext"
17595
              fi
17596
            fi
17597
            if test "X$found_dir" != "X"; then
17598
              if test -f "$dir/$libname.la"; then
17599
                found_la="$dir/$libname.la"
17600
              fi
17601
            fi
17602
          fi
18953
          fi
17603
          if test "X$found_dir" = "X"; then
18954
          if test "X$found_dir" = "X"; then
17604
            for x in $LDFLAGS $LTLIBINTL; do
18955
            for x in $LDFLAGS $LTLIBINTL; do
Lines 17615-17621 Link Here
17615
                -L*)
18966
                -L*)
17616
                  dir=`echo "X$x" | sed -e 's/^X-L//'`
18967
                  dir=`echo "X$x" | sed -e 's/^X-L//'`
17617
                                    if test -n "$acl_shlibext"; then
18968
                                    if test -n "$acl_shlibext"; then
17618
                    if test -f "$dir/$libname$shrext"; then
18969
                    if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then
17619
                      found_dir="$dir"
18970
                      found_dir="$dir"
17620
                      found_so="$dir/$libname$shrext"
18971
                      found_so="$dir/$libname$shrext"
17621
                    else
18972
                    else
Lines 17625-17638 Link Here
17625
                              | sed -e "s,^$libname$shrext\\\\.,," \
18976
                              | sed -e "s,^$libname$shrext\\\\.,," \
17626
                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
18977
                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
17627
                              | sed 1q ) 2>/dev/null`
18978
                              | sed 1q ) 2>/dev/null`
17628
                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
18979
                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then
17629
                          found_dir="$dir"
18980
                          found_dir="$dir"
17630
                          found_so="$dir/$libname$shrext.$ver"
18981
                          found_so="$dir/$libname$shrext.$ver"
17631
                        fi
18982
                        fi
17632
                      else
18983
                      else
17633
                        eval library_names=\"$acl_library_names_spec\"
18984
                        eval library_names=\"$acl_library_names_spec\"
17634
                        for f in $library_names; do
18985
                        for f in $library_names; do
17635
                          if test -f "$dir/$f"; then
18986
                          if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then
17636
                            found_dir="$dir"
18987
                            found_dir="$dir"
17637
                            found_so="$dir/$f"
18988
                            found_so="$dir/$f"
17638
                            break
18989
                            break
Lines 17642-17648 Link Here
17642
                    fi
18993
                    fi
17643
                  fi
18994
                  fi
17644
                                    if test "X$found_dir" = "X"; then
18995
                                    if test "X$found_dir" = "X"; then
17645
                    if test -f "$dir/$libname.$acl_libext"; then
18996
                    if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then
17646
                      found_dir="$dir"
18997
                      found_dir="$dir"
17647
                      found_a="$dir/$libname.$acl_libext"
18998
                      found_a="$dir/$libname.$acl_libext"
17648
                    fi
18999
                    fi
Lines 17664-17670 Link Here
17664
            if test "X$found_so" != "X"; then
19015
            if test "X$found_so" != "X"; then
17665
                                                        if test "$enable_rpath" = no \
19016
                                                        if test "$enable_rpath" = no \
17666
                 || test "X$found_dir" = "X/usr/$acl_libdirstem" \
19017
                 || test "X$found_dir" = "X/usr/$acl_libdirstem" \
17667
                 || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
19018
                 || test "X$found_dir" = "X/usr/$acl_libdirstem2" \
19019
                 || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then
17668
                                LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
19020
                                LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
17669
              else
19021
              else
17670
                                                                                haveit=
19022
                                                                                haveit=
Lines 17743-17748 Link Here
17743
                fi
19095
                fi
17744
                additional_includedir="$basedir/include"
19096
                additional_includedir="$basedir/include"
17745
                ;;
19097
                ;;
19098
              */$acl_libdirstem3 | */$acl_libdirstem3/)
19099
                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'`
19100
                if test "$name" = 'intl'; then
19101
                  LIBINTL_PREFIX="$basedir"
19102
                fi
19103
                additional_includedir="$basedir/include"
19104
                ;;
17746
            esac
19105
            esac
17747
            if test "X$additional_includedir" != "X"; then
19106
            if test "X$additional_includedir" != "X"; then
17748
                                                                                                                if test "X$additional_includedir" != "X/usr/include"; then
19107
                                                                                                                if test "X$additional_includedir" != "X/usr/include"; then
Lines 17788-17799 Link Here
17788
                            for dep in $dependency_libs; do
19147
                            for dep in $dependency_libs; do
17789
                case "$dep" in
19148
                case "$dep" in
17790
                  -L*)
19149
                  -L*)
17791
                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
19150
                    dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
17792
                                                                                                                                                                if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
19151
                                                                                                                                                                if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \
17793
                       && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
19152
                       && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \
19153
                       && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then
17794
                      haveit=
19154
                      haveit=
17795
                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
19155
                      if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \
17796
                         || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
19156
                         || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \
19157
                         || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then
17797
                        if test -n "$GCC"; then
19158
                        if test -n "$GCC"; then
17798
                          case $host_os in
19159
                          case $host_os in
17799
                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
19160
                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
Lines 17812-17825 Link Here
17812
  exec_prefix="$acl_save_exec_prefix"
19173
  exec_prefix="$acl_save_exec_prefix"
17813
  prefix="$acl_save_prefix"
19174
  prefix="$acl_save_prefix"
17814
19175
17815
                          if test "X$x" = "X-L$additional_libdir"; then
19176
                          if test "X$x" = "X-L$dependency_libdir"; then
17816
                            haveit=yes
19177
                            haveit=yes
17817
                            break
19178
                            break
17818
                          fi
19179
                          fi
17819
                        done
19180
                        done
17820
                        if test -z "$haveit"; then
19181
                        if test -z "$haveit"; then
17821
                          if test -d "$additional_libdir"; then
19182
                          if test -d "$dependency_libdir"; then
17822
                                                        LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir"
19183
                                                        LIBINTL="${LIBINTL}${LIBINTL:+ }-L$dependency_libdir"
17823
                          fi
19184
                          fi
17824
                        fi
19185
                        fi
17825
                        haveit=
19186
                        haveit=
Lines 17833-17846 Link Here
17833
  exec_prefix="$acl_save_exec_prefix"
19194
  exec_prefix="$acl_save_exec_prefix"
17834
  prefix="$acl_save_prefix"
19195
  prefix="$acl_save_prefix"
17835
19196
17836
                          if test "X$x" = "X-L$additional_libdir"; then
19197
                          if test "X$x" = "X-L$dependency_libdir"; then
17837
                            haveit=yes
19198
                            haveit=yes
17838
                            break
19199
                            break
17839
                          fi
19200
                          fi
17840
                        done
19201
                        done
17841
                        if test -z "$haveit"; then
19202
                        if test -z "$haveit"; then
17842
                          if test -d "$additional_libdir"; then
19203
                          if test -d "$dependency_libdir"; then
17843
                                                        LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir"
19204
                                                        LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$dependency_libdir"
17844
                          fi
19205
                          fi
17845
                        fi
19206
                        fi
17846
                      fi
19207
                      fi
Lines 17872-17878 Link Here
17872
                    fi
19233
                    fi
17873
                    ;;
19234
                    ;;
17874
                  -l*)
19235
                  -l*)
17875
                                        names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
19236
                                                                                                                                                                dep=`echo "X$dep" | sed -e 's/^X-l//'`
19237
                    if test "X$dep" != Xc \
19238
                       || case $host_os in
19239
                            linux* | gnu* | k*bsd*-gnu) false ;;
19240
                            *)                          true ;;
19241
                          esac; then
19242
                      names_next_round="$names_next_round $dep"
19243
                    fi
17876
                    ;;
19244
                    ;;
17877
                  *.la)
19245
                  *.la)
17878
                                                                                names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
19246
                                                                                names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
Lines 17923-17933 Link Here
17923
19291
17924
19292
17925
19293
17926
          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
19294
          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
17927
$as_echo_n "checking for GNU gettext in libintl... " >&6; }
19295
printf %s "checking for GNU gettext in libintl... " >&6; }
17928
if eval \${$gt_func_gnugettext_libintl+:} false; then :
19296
if eval test \${$gt_func_gnugettext_libintl+y}
17929
  $as_echo_n "(cached) " >&6
19297
then :
17930
else
19298
  printf %s "(cached) " >&6
19299
else $as_nop
17931
  gt_save_CPPFLAGS="$CPPFLAGS"
19300
  gt_save_CPPFLAGS="$CPPFLAGS"
17932
            CPPFLAGS="$CPPFLAGS $INCINTL"
19301
            CPPFLAGS="$CPPFLAGS $INCINTL"
17933
            gt_save_LIBS="$LIBS"
19302
            gt_save_LIBS="$LIBS"
Lines 17950-17956 Link Here
17950
$gt_revision_test_code
19319
$gt_revision_test_code
17951
19320
17952
int
19321
int
17953
main ()
19322
main (void)
17954
{
19323
{
17955
19324
17956
bindtextdomain ("", "");
19325
bindtextdomain ("", "");
Lines 17960-17971 Link Here
17960
  return 0;
19329
  return 0;
17961
}
19330
}
17962
_ACEOF
19331
_ACEOF
17963
if ac_fn_c_try_link "$LINENO"; then :
19332
if ac_fn_c_try_link "$LINENO"
19333
then :
17964
  eval "$gt_func_gnugettext_libintl=yes"
19334
  eval "$gt_func_gnugettext_libintl=yes"
17965
else
19335
else $as_nop
17966
  eval "$gt_func_gnugettext_libintl=no"
19336
  eval "$gt_func_gnugettext_libintl=no"
17967
fi
19337
fi
17968
rm -f core conftest.err conftest.$ac_objext \
19338
rm -f core conftest.err conftest.$ac_objext conftest.beam \
17969
    conftest$ac_exeext conftest.$ac_ext
19339
    conftest$ac_exeext conftest.$ac_ext
17970
                        if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
19340
                        if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
17971
              LIBS="$LIBS $LIBICONV"
19341
              LIBS="$LIBS $LIBICONV"
Lines 17987-17993 Link Here
17987
$gt_revision_test_code
19357
$gt_revision_test_code
17988
19358
17989
int
19359
int
17990
main ()
19360
main (void)
17991
{
19361
{
17992
19362
17993
bindtextdomain ("", "");
19363
bindtextdomain ("", "");
Lines 17997-18017 Link Here
17997
  return 0;
19367
  return 0;
17998
}
19368
}
17999
_ACEOF
19369
_ACEOF
18000
if ac_fn_c_try_link "$LINENO"; then :
19370
if ac_fn_c_try_link "$LINENO"
19371
then :
18001
  LIBINTL="$LIBINTL $LIBICONV"
19372
  LIBINTL="$LIBINTL $LIBICONV"
18002
                 LTLIBINTL="$LTLIBINTL $LTLIBICONV"
19373
                 LTLIBINTL="$LTLIBINTL $LTLIBICONV"
18003
                 eval "$gt_func_gnugettext_libintl=yes"
19374
                 eval "$gt_func_gnugettext_libintl=yes"
18004
19375
18005
fi
19376
fi
18006
rm -f core conftest.err conftest.$ac_objext \
19377
rm -f core conftest.err conftest.$ac_objext conftest.beam \
18007
    conftest$ac_exeext conftest.$ac_ext
19378
    conftest$ac_exeext conftest.$ac_ext
18008
            fi
19379
            fi
18009
            CPPFLAGS="$gt_save_CPPFLAGS"
19380
            CPPFLAGS="$gt_save_CPPFLAGS"
18010
            LIBS="$gt_save_LIBS"
19381
            LIBS="$gt_save_LIBS"
18011
fi
19382
fi
18012
eval ac_res=\$$gt_func_gnugettext_libintl
19383
eval ac_res=\$$gt_func_gnugettext_libintl
18013
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
19384
	       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
18014
$as_echo "$ac_res" >&6; }
19385
printf "%s\n" "$ac_res" >&6; }
18015
        fi
19386
        fi
18016
19387
18017
                                        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
19388
                                        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
Lines 18038-18057 Link Here
18038
    if test "$gt_use_preinstalled_gnugettext" = "yes" \
19409
    if test "$gt_use_preinstalled_gnugettext" = "yes" \
18039
       || test "$nls_cv_use_gnu_gettext" = "yes"; then
19410
       || test "$nls_cv_use_gnu_gettext" = "yes"; then
18040
19411
18041
$as_echo "#define ENABLE_NLS 1" >>confdefs.h
19412
printf "%s\n" "#define ENABLE_NLS 1" >>confdefs.h
18042
19413
18043
    else
19414
    else
18044
      USE_NLS=no
19415
      USE_NLS=no
18045
    fi
19416
    fi
18046
  fi
19417
  fi
18047
19418
18048
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5
19419
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5
18049
$as_echo_n "checking whether to use NLS... " >&6; }
19420
printf %s "checking whether to use NLS... " >&6; }
18050
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
19421
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
18051
$as_echo "$USE_NLS" >&6; }
19422
printf "%s\n" "$USE_NLS" >&6; }
18052
  if test "$USE_NLS" = "yes"; then
19423
  if test "$USE_NLS" = "yes"; then
18053
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5
19424
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5
18054
$as_echo_n "checking where the gettext function comes from... " >&6; }
19425
printf %s "checking where the gettext function comes from... " >&6; }
18055
    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
19426
    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
18056
      if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
19427
      if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
18057
        gt_source="external libintl"
19428
        gt_source="external libintl"
Lines 18061-18078 Link Here
18061
    else
19432
    else
18062
      gt_source="included intl directory"
19433
      gt_source="included intl directory"
18063
    fi
19434
    fi
18064
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5
19435
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5
18065
$as_echo "$gt_source" >&6; }
19436
printf "%s\n" "$gt_source" >&6; }
18066
  fi
19437
  fi
18067
19438
18068
  if test "$USE_NLS" = "yes"; then
19439
  if test "$USE_NLS" = "yes"; then
18069
19440
18070
    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
19441
    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
18071
      if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
19442
      if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
18072
        { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5
19443
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5
18073
$as_echo_n "checking how to link with libintl... " >&6; }
19444
printf %s "checking how to link with libintl... " >&6; }
18074
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5
19445
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5
18075
$as_echo "$LIBINTL" >&6; }
19446
printf "%s\n" "$LIBINTL" >&6; }
18076
19447
18077
  for element in $INCINTL; do
19448
  for element in $INCINTL; do
18078
    haveit=
19449
    haveit=
Lines 18099-18108 Link Here
18099
      fi
19470
      fi
18100
19471
18101
19472
18102
$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h
19473
printf "%s\n" "#define HAVE_GETTEXT 1" >>confdefs.h
18103
19474
18104
19475
18105
$as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h
19476
printf "%s\n" "#define HAVE_DCGETTEXT 1" >>confdefs.h
18106
19477
18107
    fi
19478
    fi
18108
19479
Lines 18129-18260 Link Here
18129
19500
18130
# There is currently no workarounds in this package if some of
19501
# There is currently no workarounds in this package if some of
18131
# these headers are missing.
19502
# these headers are missing.
18132
for ac_header in fcntl.h limits.h sys/time.h
19503
       for ac_header in fcntl.h limits.h sys/time.h
18133
do :
19504
do :
18134
  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
19505
  as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh`
18135
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
19506
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
18136
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
19507
if eval test \"x\$"$as_ac_Header"\" = x"yes"
19508
then :
18137
  cat >>confdefs.h <<_ACEOF
19509
  cat >>confdefs.h <<_ACEOF
18138
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
19510
#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1
18139
_ACEOF
19511
_ACEOF
18140
19512
18141
else
19513
else $as_nop
18142
  as_fn_error $? "Required header file(s) are missing." "$LINENO" 5
19514
  as_fn_error $? "Required header file(s) are missing." "$LINENO" 5
18143
fi
19515
fi
18144
19516
18145
done
19517
done
18146
19518
19519
# immintrin.h allows the use of the intrinsic functions if they are available.
19520
# cpuid.h may be used for detecting x86 processor features at runtime.
19521
ac_fn_c_check_header_compile "$LINENO" "immintrin.h" "ac_cv_header_immintrin_h" "$ac_includes_default"
19522
if test "x$ac_cv_header_immintrin_h" = xyes
19523
then :
19524
  printf "%s\n" "#define HAVE_IMMINTRIN_H 1" >>confdefs.h
18147
19525
18148
# This allows the use of the intrinsic functions if they are available.
19526
fi
18149
for ac_header in immintrin.h
19527
ac_fn_c_check_header_compile "$LINENO" "cpuid.h" "ac_cv_header_cpuid_h" "$ac_includes_default"
18150
do :
19528
if test "x$ac_cv_header_cpuid_h" = xyes
18151
  ac_fn_c_check_header_mongrel "$LINENO" "immintrin.h" "ac_cv_header_immintrin_h" "$ac_includes_default"
19529
then :
18152
if test "x$ac_cv_header_immintrin_h" = xyes; then :
19530
  printf "%s\n" "#define HAVE_CPUID_H 1" >>confdefs.h
18153
  cat >>confdefs.h <<_ACEOF
18154
#define HAVE_IMMINTRIN_H 1
18155
_ACEOF
18156
19531
18157
fi
19532
fi
18158
19533
18159
done
18160
19534
18161
19535
18162
18163
###############################################################################
19536
###############################################################################
18164
# Checks for typedefs, structures, and compiler characteristics.
19537
# Checks for typedefs, structures, and compiler characteristics.
18165
###############################################################################
19538
###############################################################################
18166
19539
19540
ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default"
19541
if test "x$ac_cv_type__Bool" = xyes
19542
then :
18167
19543
18168
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
19544
printf "%s\n" "#define HAVE__BOOL 1" >>confdefs.h
18169
$as_echo_n "checking for stdbool.h that conforms to C99... " >&6; }
19545
18170
if ${ac_cv_header_stdbool_h+:} false; then :
19546
18171
  $as_echo_n "(cached) " >&6
19547
fi
18172
else
19548
19549
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
19550
printf %s "checking for stdbool.h that conforms to C99... " >&6; }
19551
if test ${ac_cv_header_stdbool_h+y}
19552
then :
19553
  printf %s "(cached) " >&6
19554
else $as_nop
18173
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
19555
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
18174
/* end confdefs.h.  */
19556
/* end confdefs.h.  */
19557
#include <stdbool.h>
18175
19558
18176
             #include <stdbool.h>
19559
             #ifndef __bool_true_false_are_defined
18177
             #ifndef bool
19560
               #error "__bool_true_false_are_defined is not defined"
18178
              "error: bool is not defined"
18179
             #endif
19561
             #endif
18180
             #ifndef false
19562
             char a[__bool_true_false_are_defined == 1 ? 1 : -1];
18181
              "error: false is not defined"
19563
19564
             /* Regardless of whether this is C++ or "_Bool" is a
19565
                valid type name, "true" and "false" should be usable
19566
                in #if expressions and integer constant expressions,
19567
                and "bool" should be a valid type name.  */
19568
19569
             #if !true
19570
               #error "'true' is not true"
18182
             #endif
19571
             #endif
18183
             #if false
18184
              "error: false is not 0"
18185
             #endif
18186
             #ifndef true
18187
              "error: true is not defined"
18188
             #endif
18189
             #if true != 1
19572
             #if true != 1
18190
              "error: true is not 1"
19573
               #error "'true' is not equal to 1"
18191
             #endif
19574
             #endif
18192
             #ifndef __bool_true_false_are_defined
19575
             char b[true == 1 ? 1 : -1];
18193
              "error: __bool_true_false_are_defined is not defined"
19576
             char c[true];
19577
19578
             #if false
19579
               #error "'false' is not false"
18194
             #endif
19580
             #endif
19581
             #if false != 0
19582
               #error "'false' is not equal to 0"
19583
             #endif
19584
             char d[false == 0 ? 1 : -1];
18195
19585
18196
             struct s { _Bool s: 1; _Bool t; } s;
19586
             enum { e = false, f = true, g = false * true, h = true * 256 };
18197
19587
18198
             char a[true == 1 ? 1 : -1];
19588
             char i[(bool) 0.5 == true ? 1 : -1];
18199
             char b[false == 0 ? 1 : -1];
19589
             char j[(bool) 0.0 == false ? 1 : -1];
18200
             char c[__bool_true_false_are_defined == 1 ? 1 : -1];
19590
             char k[sizeof (bool) > 0 ? 1 : -1];
18201
             char d[(bool) 0.5 == true ? 1 : -1];
19591
18202
             /* See body of main program for 'e'.  */
19592
             struct sb { bool s: 1; bool t; } s;
18203
             char f[(_Bool) 0.0 == false ? 1 : -1];
19593
             char l[sizeof s.t > 0 ? 1 : -1];
18204
             char g[true];
19594
18205
             char h[sizeof (_Bool)];
18206
             char i[sizeof s.t];
18207
             enum { j = false, k = true, l = false * true, m = true * 256 };
18208
             /* The following fails for
19595
             /* The following fails for
18209
                HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
19596
                HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
18210
             _Bool n[m];
19597
             bool m[h];
18211
             char o[sizeof n == m * sizeof n[0] ? 1 : -1];
19598
             char n[sizeof m == h * sizeof m[0] ? 1 : -1];
18212
             char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
19599
             char o[-1 - (bool) 0 < 0 ? 1 : -1];
18213
             /* Catch a bug in an HP-UX C compiler.  See
19600
             /* Catch a bug in an HP-UX C compiler.  See
18214
                http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
19601
         https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
18215
                http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
19602
         https://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
18216
              */
19603
              */
18217
             _Bool q = true;
19604
             bool p = true;
18218
             _Bool *pq = &q;
19605
             bool *pp = &p;
18219
19606
19607
             /* C 1999 specifies that bool, true, and false are to be
19608
                macros, but C++ 2011 and later overrule this.  */
19609
             #if __cplusplus < 201103
19610
              #ifndef bool
19611
               #error "bool is not defined"
19612
              #endif
19613
              #ifndef false
19614
               #error "false is not defined"
19615
              #endif
19616
              #ifndef true
19617
               #error "true is not defined"
19618
              #endif
19619
             #endif
19620
19621
             /* If _Bool is available, repeat with it all the tests
19622
                above that used bool.  */
19623
             #ifdef HAVE__BOOL
19624
               struct sB { _Bool s: 1; _Bool t; } t;
19625
19626
               char q[(_Bool) 0.5 == true ? 1 : -1];
19627
               char r[(_Bool) 0.0 == false ? 1 : -1];
19628
               char u[sizeof (_Bool) > 0 ? 1 : -1];
19629
               char v[sizeof t.t > 0 ? 1 : -1];
19630
19631
               _Bool w[h];
19632
               char x[sizeof m == h * sizeof m[0] ? 1 : -1];
19633
               char y[-1 - (_Bool) 0 < 0 ? 1 : -1];
19634
               _Bool z = true;
19635
               _Bool *pz = &p;
19636
             #endif
19637
18220
int
19638
int
18221
main ()
19639
main (void)
18222
{
19640
{
18223
19641
18224
             bool e = &s;
19642
             bool ps = &s;
18225
             *pq |= q;
19643
             *pp |= p;
18226
             *pq |= ! q;
19644
             *pp |= ! p;
18227
             /* Refer to every declared value, to avoid compiler optimizations.  */
18228
             return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
18229
                     + !m + !n + !o + !p + !q + !pq);
18230
19645
19646
             #ifdef HAVE__BOOL
19647
               _Bool pt = &t;
19648
               *pz |= z;
19649
               *pz |= ! z;
19650
             #endif
19651
19652
             /* Refer to every declared value, so they cannot be
19653
                discarded as unused.  */
19654
             return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !j + !k
19655
                     + !l + !m + !n + !o + !p + !pp + !ps
19656
             #ifdef HAVE__BOOL
19657
                     + !q + !r + !u + !v + !w + !x + !y + !z + !pt
19658
             #endif
19659
                    );
19660
18231
  ;
19661
  ;
18232
  return 0;
19662
  return 0;
18233
}
19663
}
18234
_ACEOF
19664
_ACEOF
18235
if ac_fn_c_try_compile "$LINENO"; then :
19665
if ac_fn_c_try_compile "$LINENO"
19666
then :
18236
  ac_cv_header_stdbool_h=yes
19667
  ac_cv_header_stdbool_h=yes
18237
else
19668
else $as_nop
18238
  ac_cv_header_stdbool_h=no
19669
  ac_cv_header_stdbool_h=no
18239
fi
19670
fi
18240
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
19671
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
18241
fi
19672
fi
18242
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5
19673
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5
18243
$as_echo "$ac_cv_header_stdbool_h" >&6; }
19674
printf "%s\n" "$ac_cv_header_stdbool_h" >&6; }
18244
   ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default"
18245
if test "x$ac_cv_type__Bool" = xyes; then :
18246
19675
18247
cat >>confdefs.h <<_ACEOF
18248
#define HAVE__BOOL 1
18249
_ACEOF
18250
18251
18252
fi
18253
18254
18255
if test $ac_cv_header_stdbool_h = yes; then
19676
if test $ac_cv_header_stdbool_h = yes; then
18256
19677
18257
$as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h
19678
printf "%s\n" "#define HAVE_STDBOOL_H 1" >>confdefs.h
18258
19679
18259
fi
19680
fi
18260
19681
Lines 18264-18275 Link Here
18264
  no|yes) ;; #(
19685
  no|yes) ;; #(
18265
  *)
19686
  *)
18266
19687
18267
$as_echo "#define _UINT8_T 1" >>confdefs.h
19688
printf "%s\n" "#define _UINT8_T 1" >>confdefs.h
18268
19689
18269
19690
18270
cat >>confdefs.h <<_ACEOF
19691
printf "%s\n" "#define uint8_t $ac_cv_c_uint8_t" >>confdefs.h
18271
#define uint8_t $ac_cv_c_uint8_t
18272
_ACEOF
18273
;;
19692
;;
18274
  esac
19693
  esac
18275
19694
Lines 18279-18287 Link Here
18279
  *)
19698
  *)
18280
19699
18281
19700
18282
cat >>confdefs.h <<_ACEOF
19701
printf "%s\n" "#define uint16_t $ac_cv_c_uint16_t" >>confdefs.h
18283
#define uint16_t $ac_cv_c_uint16_t
18284
_ACEOF
18285
;;
19702
;;
18286
  esac
19703
  esac
18287
19704
Lines 18290-18298 Link Here
18290
  no|yes) ;; #(
19707
  no|yes) ;; #(
18291
  *)
19708
  *)
18292
19709
18293
cat >>confdefs.h <<_ACEOF
19710
printf "%s\n" "#define int32_t $ac_cv_c_int32_t" >>confdefs.h
18294
#define int32_t $ac_cv_c_int32_t
18295
_ACEOF
18296
;;
19711
;;
18297
esac
19712
esac
18298
19713
Lines 18301-18312 Link Here
18301
  no|yes) ;; #(
19716
  no|yes) ;; #(
18302
  *)
19717
  *)
18303
19718
18304
$as_echo "#define _UINT32_T 1" >>confdefs.h
19719
printf "%s\n" "#define _UINT32_T 1" >>confdefs.h
18305
19720
18306
19721
18307
cat >>confdefs.h <<_ACEOF
19722
printf "%s\n" "#define uint32_t $ac_cv_c_uint32_t" >>confdefs.h
18308
#define uint32_t $ac_cv_c_uint32_t
18309
_ACEOF
18310
;;
19723
;;
18311
  esac
19724
  esac
18312
19725
Lines 18315-18323 Link Here
18315
  no|yes) ;; #(
19728
  no|yes) ;; #(
18316
  *)
19729
  *)
18317
19730
18318
cat >>confdefs.h <<_ACEOF
19731
printf "%s\n" "#define int64_t $ac_cv_c_int64_t" >>confdefs.h
18319
#define int64_t $ac_cv_c_int64_t
18320
_ACEOF
18321
;;
19732
;;
18322
esac
19733
esac
18323
19734
Lines 18326-18354 Link Here
18326
  no|yes) ;; #(
19737
  no|yes) ;; #(
18327
  *)
19738
  *)
18328
19739
18329
$as_echo "#define _UINT64_T 1" >>confdefs.h
19740
printf "%s\n" "#define _UINT64_T 1" >>confdefs.h
18330
19741
18331
19742
18332
cat >>confdefs.h <<_ACEOF
19743
printf "%s\n" "#define uint64_t $ac_cv_c_uint64_t" >>confdefs.h
18333
#define uint64_t $ac_cv_c_uint64_t
18334
_ACEOF
18335
;;
19744
;;
18336
  esac
19745
  esac
18337
19746
18338
19747
18339
  ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default"
19748
  ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default"
18340
if test "x$ac_cv_type_uintptr_t" = xyes; then :
19749
if test "x$ac_cv_type_uintptr_t" = xyes
19750
then :
18341
19751
18342
$as_echo "#define HAVE_UINTPTR_T 1" >>confdefs.h
19752
printf "%s\n" "#define HAVE_UINTPTR_T 1" >>confdefs.h
18343
19753
18344
else
19754
else $as_nop
18345
  for ac_type in 'unsigned int' 'unsigned long int' \
19755
  for ac_type in 'unsigned int' 'unsigned long int' \
18346
	'unsigned long long int'; do
19756
	'unsigned long long int'; do
18347
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
19757
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
18348
/* end confdefs.h.  */
19758
/* end confdefs.h.  */
18349
$ac_includes_default
19759
$ac_includes_default
18350
int
19760
int
18351
main ()
19761
main (void)
18352
{
19762
{
18353
static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($ac_type))];
19763
static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($ac_type))];
18354
test_array [0] = 0;
19764
test_array [0] = 0;
Lines 18358-18372 Link Here
18358
  return 0;
19768
  return 0;
18359
}
19769
}
18360
_ACEOF
19770
_ACEOF
18361
if ac_fn_c_try_compile "$LINENO"; then :
19771
if ac_fn_c_try_compile "$LINENO"
19772
then :
18362
19773
18363
cat >>confdefs.h <<_ACEOF
19774
printf "%s\n" "#define uintptr_t $ac_type" >>confdefs.h
18364
#define uintptr_t $ac_type
18365
_ACEOF
18366
19775
18367
	  ac_type=
19776
	  ac_type=
18368
fi
19777
fi
18369
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
19778
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
18370
       test -z "$ac_type" && break
19779
       test -z "$ac_type" && break
18371
     done
19780
     done
18372
fi
19781
fi
Lines 18377-18393 Link Here
18377
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
19786
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
18378
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
19787
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
18379
# This bug is HP SR number 8606223364.
19788
# This bug is HP SR number 8606223364.
18380
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5
19789
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5
18381
$as_echo_n "checking size of size_t... " >&6; }
19790
printf %s "checking size of size_t... " >&6; }
18382
if ${ac_cv_sizeof_size_t+:} false; then :
19791
if test ${ac_cv_sizeof_size_t+y}
18383
  $as_echo_n "(cached) " >&6
19792
then :
18384
else
19793
  printf %s "(cached) " >&6
18385
  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t"        "$ac_includes_default"; then :
19794
else $as_nop
19795
  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t"        "$ac_includes_default"
19796
then :
18386
19797
18387
else
19798
else $as_nop
18388
  if test "$ac_cv_type_size_t" = yes; then
19799
  if test "$ac_cv_type_size_t" = yes; then
18389
     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
19800
     { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
18390
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
19801
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
18391
as_fn_error 77 "cannot compute sizeof (size_t)
19802
as_fn_error 77 "cannot compute sizeof (size_t)
18392
See \`config.log' for more details" "$LINENO" 5; }
19803
See \`config.log' for more details" "$LINENO" 5; }
18393
   else
19804
   else
Lines 18396-18409 Link Here
18396
fi
19807
fi
18397
19808
18398
fi
19809
fi
18399
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5
19810
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5
18400
$as_echo "$ac_cv_sizeof_size_t" >&6; }
19811
printf "%s\n" "$ac_cv_sizeof_size_t" >&6; }
18401
19812
18402
19813
18403
19814
18404
cat >>confdefs.h <<_ACEOF
19815
printf "%s\n" "#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t" >>confdefs.h
18405
#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t
18406
_ACEOF
18407
19816
18408
19817
18409
19818
Lines 18411-18474 Link Here
18411
# information is available in struct stat. Otherwise one second accuracy
19820
# information is available in struct stat. Otherwise one second accuracy
18412
# is used.
19821
# is used.
18413
ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.tv_nsec" "ac_cv_member_struct_stat_st_atim_tv_nsec" "$ac_includes_default"
19822
ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.tv_nsec" "ac_cv_member_struct_stat_st_atim_tv_nsec" "$ac_includes_default"
18414
if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = xyes; then :
19823
if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = xyes
19824
then :
18415
19825
18416
cat >>confdefs.h <<_ACEOF
19826
printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1" >>confdefs.h
18417
#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1
18418
_ACEOF
18419
19827
18420
19828
18421
fi
19829
fi
18422
ac_fn_c_check_member "$LINENO" "struct stat" "st_atimespec.tv_nsec" "ac_cv_member_struct_stat_st_atimespec_tv_nsec" "$ac_includes_default"
19830
ac_fn_c_check_member "$LINENO" "struct stat" "st_atimespec.tv_nsec" "ac_cv_member_struct_stat_st_atimespec_tv_nsec" "$ac_includes_default"
18423
if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = xyes; then :
19831
if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = xyes
19832
then :
18424
19833
18425
cat >>confdefs.h <<_ACEOF
19834
printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1" >>confdefs.h
18426
#define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1
18427
_ACEOF
18428
19835
18429
19836
18430
fi
19837
fi
18431
ac_fn_c_check_member "$LINENO" "struct stat" "st_atimensec" "ac_cv_member_struct_stat_st_atimensec" "$ac_includes_default"
19838
ac_fn_c_check_member "$LINENO" "struct stat" "st_atimensec" "ac_cv_member_struct_stat_st_atimensec" "$ac_includes_default"
18432
if test "x$ac_cv_member_struct_stat_st_atimensec" = xyes; then :
19839
if test "x$ac_cv_member_struct_stat_st_atimensec" = xyes
19840
then :
18433
19841
18434
cat >>confdefs.h <<_ACEOF
19842
printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIMENSEC 1" >>confdefs.h
18435
#define HAVE_STRUCT_STAT_ST_ATIMENSEC 1
18436
_ACEOF
18437
19843
18438
19844
18439
fi
19845
fi
18440
ac_fn_c_check_member "$LINENO" "struct stat" "st_uatime" "ac_cv_member_struct_stat_st_uatime" "$ac_includes_default"
19846
ac_fn_c_check_member "$LINENO" "struct stat" "st_uatime" "ac_cv_member_struct_stat_st_uatime" "$ac_includes_default"
18441
if test "x$ac_cv_member_struct_stat_st_uatime" = xyes; then :
19847
if test "x$ac_cv_member_struct_stat_st_uatime" = xyes
19848
then :
18442
19849
18443
cat >>confdefs.h <<_ACEOF
19850
printf "%s\n" "#define HAVE_STRUCT_STAT_ST_UATIME 1" >>confdefs.h
18444
#define HAVE_STRUCT_STAT_ST_UATIME 1
18445
_ACEOF
18446
19851
18447
19852
18448
fi
19853
fi
18449
ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.st__tim.tv_nsec" "ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" "$ac_includes_default"
19854
ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.st__tim.tv_nsec" "ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" "$ac_includes_default"
18450
if test "x$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" = xyes; then :
19855
if test "x$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" = xyes
19856
then :
18451
19857
18452
cat >>confdefs.h <<_ACEOF
19858
printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC 1" >>confdefs.h
18453
#define HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC 1
18454
_ACEOF
18455
19859
18456
19860
18457
fi
19861
fi
18458
19862
18459
19863
18460
# Check whether --enable-largefile was given.
19864
# Check whether --enable-largefile was given.
18461
if test "${enable_largefile+set}" = set; then :
19865
if test ${enable_largefile+y}
19866
then :
18462
  enableval=$enable_largefile;
19867
  enableval=$enable_largefile;
18463
fi
19868
fi
18464
19869
18465
if test "$enable_largefile" != no; then
19870
if test "$enable_largefile" != no; then
18466
19871
18467
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
19872
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
18468
$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
19873
printf %s "checking for special C compiler options needed for large files... " >&6; }
18469
if ${ac_cv_sys_largefile_CC+:} false; then :
19874
if test ${ac_cv_sys_largefile_CC+y}
18470
  $as_echo_n "(cached) " >&6
19875
then :
18471
else
19876
  printf %s "(cached) " >&6
19877
else $as_nop
18472
  ac_cv_sys_largefile_CC=no
19878
  ac_cv_sys_largefile_CC=no
18473
     if test "$GCC" != yes; then
19879
     if test "$GCC" != yes; then
18474
       ac_save_CC=$CC
19880
       ac_save_CC=$CC
Lines 18482-18525 Link Here
18482
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
19888
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
18483
    since some C++ compilers masquerading as C compilers
19889
    since some C++ compilers masquerading as C compilers
18484
    incorrectly reject 9223372036854775807.  */
19890
    incorrectly reject 9223372036854775807.  */
18485
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
19891
#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
18486
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
19892
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
18487
		       && LARGE_OFF_T % 2147483647 == 1)
19893
		       && LARGE_OFF_T % 2147483647 == 1)
18488
		      ? 1 : -1];
19894
		      ? 1 : -1];
18489
int
19895
int
18490
main ()
19896
main (void)
18491
{
19897
{
18492
19898
18493
  ;
19899
  ;
18494
  return 0;
19900
  return 0;
18495
}
19901
}
18496
_ACEOF
19902
_ACEOF
18497
	 if ac_fn_c_try_compile "$LINENO"; then :
19903
	 if ac_fn_c_try_compile "$LINENO"
19904
then :
18498
  break
19905
  break
18499
fi
19906
fi
18500
rm -f core conftest.err conftest.$ac_objext
19907
rm -f core conftest.err conftest.$ac_objext conftest.beam
18501
	 CC="$CC -n32"
19908
	 CC="$CC -n32"
18502
	 if ac_fn_c_try_compile "$LINENO"; then :
19909
	 if ac_fn_c_try_compile "$LINENO"
19910
then :
18503
  ac_cv_sys_largefile_CC=' -n32'; break
19911
  ac_cv_sys_largefile_CC=' -n32'; break
18504
fi
19912
fi
18505
rm -f core conftest.err conftest.$ac_objext
19913
rm -f core conftest.err conftest.$ac_objext conftest.beam
18506
	 break
19914
	 break
18507
       done
19915
       done
18508
       CC=$ac_save_CC
19916
       CC=$ac_save_CC
18509
       rm -f conftest.$ac_ext
19917
       rm -f conftest.$ac_ext
18510
    fi
19918
    fi
18511
fi
19919
fi
18512
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
19920
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
18513
$as_echo "$ac_cv_sys_largefile_CC" >&6; }
19921
printf "%s\n" "$ac_cv_sys_largefile_CC" >&6; }
18514
  if test "$ac_cv_sys_largefile_CC" != no; then
19922
  if test "$ac_cv_sys_largefile_CC" != no; then
18515
    CC=$CC$ac_cv_sys_largefile_CC
19923
    CC=$CC$ac_cv_sys_largefile_CC
18516
  fi
19924
  fi
18517
19925
18518
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
19926
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
18519
$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
19927
printf %s "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
18520
if ${ac_cv_sys_file_offset_bits+:} false; then :
19928
if test ${ac_cv_sys_file_offset_bits+y}
18521
  $as_echo_n "(cached) " >&6
19929
then :
18522
else
19930
  printf %s "(cached) " >&6
19931
else $as_nop
18523
  while :; do
19932
  while :; do
18524
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
19933
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
18525
/* end confdefs.h.  */
19934
/* end confdefs.h.  */
Lines 18528-18549 Link Here
18528
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
19937
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
18529
    since some C++ compilers masquerading as C compilers
19938
    since some C++ compilers masquerading as C compilers
18530
    incorrectly reject 9223372036854775807.  */
19939
    incorrectly reject 9223372036854775807.  */
18531
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
19940
#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
18532
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
19941
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
18533
		       && LARGE_OFF_T % 2147483647 == 1)
19942
		       && LARGE_OFF_T % 2147483647 == 1)
18534
		      ? 1 : -1];
19943
		      ? 1 : -1];
18535
int
19944
int
18536
main ()
19945
main (void)
18537
{
19946
{
18538
19947
18539
  ;
19948
  ;
18540
  return 0;
19949
  return 0;
18541
}
19950
}
18542
_ACEOF
19951
_ACEOF
18543
if ac_fn_c_try_compile "$LINENO"; then :
19952
if ac_fn_c_try_compile "$LINENO"
19953
then :
18544
  ac_cv_sys_file_offset_bits=no; break
19954
  ac_cv_sys_file_offset_bits=no; break
18545
fi
19955
fi
18546
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
19956
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
18547
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
19957
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
18548
/* end confdefs.h.  */
19958
/* end confdefs.h.  */
18549
#define _FILE_OFFSET_BITS 64
19959
#define _FILE_OFFSET_BITS 64
Lines 18552-18594 Link Here
18552
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
19962
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
18553
    since some C++ compilers masquerading as C compilers
19963
    since some C++ compilers masquerading as C compilers
18554
    incorrectly reject 9223372036854775807.  */
19964
    incorrectly reject 9223372036854775807.  */
18555
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
19965
#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
18556
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
19966
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
18557
		       && LARGE_OFF_T % 2147483647 == 1)
19967
		       && LARGE_OFF_T % 2147483647 == 1)
18558
		      ? 1 : -1];
19968
		      ? 1 : -1];
18559
int
19969
int
18560
main ()
19970
main (void)
18561
{
19971
{
18562
19972
18563
  ;
19973
  ;
18564
  return 0;
19974
  return 0;
18565
}
19975
}
18566
_ACEOF
19976
_ACEOF
18567
if ac_fn_c_try_compile "$LINENO"; then :
19977
if ac_fn_c_try_compile "$LINENO"
19978
then :
18568
  ac_cv_sys_file_offset_bits=64; break
19979
  ac_cv_sys_file_offset_bits=64; break
18569
fi
19980
fi
18570
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
19981
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
18571
  ac_cv_sys_file_offset_bits=unknown
19982
  ac_cv_sys_file_offset_bits=unknown
18572
  break
19983
  break
18573
done
19984
done
18574
fi
19985
fi
18575
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
19986
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
18576
$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
19987
printf "%s\n" "$ac_cv_sys_file_offset_bits" >&6; }
18577
case $ac_cv_sys_file_offset_bits in #(
19988
case $ac_cv_sys_file_offset_bits in #(
18578
  no | unknown) ;;
19989
  no | unknown) ;;
18579
  *)
19990
  *)
18580
cat >>confdefs.h <<_ACEOF
19991
printf "%s\n" "#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits" >>confdefs.h
18581
#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
18582
_ACEOF
18583
;;
19992
;;
18584
esac
19993
esac
18585
rm -rf conftest*
19994
rm -rf conftest*
18586
  if test $ac_cv_sys_file_offset_bits = unknown; then
19995
  if test $ac_cv_sys_file_offset_bits = unknown; then
18587
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
19996
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
18588
$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
19997
printf %s "checking for _LARGE_FILES value needed for large files... " >&6; }
18589
if ${ac_cv_sys_large_files+:} false; then :
19998
if test ${ac_cv_sys_large_files+y}
18590
  $as_echo_n "(cached) " >&6
19999
then :
18591
else
20000
  printf %s "(cached) " >&6
20001
else $as_nop
18592
  while :; do
20002
  while :; do
18593
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20003
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
18594
/* end confdefs.h.  */
20004
/* end confdefs.h.  */
Lines 18597-18618 Link Here
18597
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
20007
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
18598
    since some C++ compilers masquerading as C compilers
20008
    since some C++ compilers masquerading as C compilers
18599
    incorrectly reject 9223372036854775807.  */
20009
    incorrectly reject 9223372036854775807.  */
18600
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
20010
#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
18601
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
20011
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
18602
		       && LARGE_OFF_T % 2147483647 == 1)
20012
		       && LARGE_OFF_T % 2147483647 == 1)
18603
		      ? 1 : -1];
20013
		      ? 1 : -1];
18604
int
20014
int
18605
main ()
20015
main (void)
18606
{
20016
{
18607
20017
18608
  ;
20018
  ;
18609
  return 0;
20019
  return 0;
18610
}
20020
}
18611
_ACEOF
20021
_ACEOF
18612
if ac_fn_c_try_compile "$LINENO"; then :
20022
if ac_fn_c_try_compile "$LINENO"
20023
then :
18613
  ac_cv_sys_large_files=no; break
20024
  ac_cv_sys_large_files=no; break
18614
fi
20025
fi
18615
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
20026
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
18616
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20027
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
18617
/* end confdefs.h.  */
20028
/* end confdefs.h.  */
18618
#define _LARGE_FILES 1
20029
#define _LARGE_FILES 1
Lines 18621-18667 Link Here
18621
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
20032
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
18622
    since some C++ compilers masquerading as C compilers
20033
    since some C++ compilers masquerading as C compilers
18623
    incorrectly reject 9223372036854775807.  */
20034
    incorrectly reject 9223372036854775807.  */
18624
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
20035
#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
18625
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
20036
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
18626
		       && LARGE_OFF_T % 2147483647 == 1)
20037
		       && LARGE_OFF_T % 2147483647 == 1)
18627
		      ? 1 : -1];
20038
		      ? 1 : -1];
18628
int
20039
int
18629
main ()
20040
main (void)
18630
{
20041
{
18631
20042
18632
  ;
20043
  ;
18633
  return 0;
20044
  return 0;
18634
}
20045
}
18635
_ACEOF
20046
_ACEOF
18636
if ac_fn_c_try_compile "$LINENO"; then :
20047
if ac_fn_c_try_compile "$LINENO"
20048
then :
18637
  ac_cv_sys_large_files=1; break
20049
  ac_cv_sys_large_files=1; break
18638
fi
20050
fi
18639
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
20051
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
18640
  ac_cv_sys_large_files=unknown
20052
  ac_cv_sys_large_files=unknown
18641
  break
20053
  break
18642
done
20054
done
18643
fi
20055
fi
18644
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
20056
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
18645
$as_echo "$ac_cv_sys_large_files" >&6; }
20057
printf "%s\n" "$ac_cv_sys_large_files" >&6; }
18646
case $ac_cv_sys_large_files in #(
20058
case $ac_cv_sys_large_files in #(
18647
  no | unknown) ;;
20059
  no | unknown) ;;
18648
  *)
20060
  *)
18649
cat >>confdefs.h <<_ACEOF
20061
printf "%s\n" "#define _LARGE_FILES $ac_cv_sys_large_files" >>confdefs.h
18650
#define _LARGE_FILES $ac_cv_sys_large_files
18651
_ACEOF
18652
;;
20062
;;
18653
esac
20063
esac
18654
rm -rf conftest*
20064
rm -rf conftest*
18655
  fi
20065
  fi
18656
18657
18658
fi
20066
fi
18659
20067
18660
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
20068
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
18661
$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
20069
printf %s "checking whether byte ordering is bigendian... " >&6; }
18662
if ${ac_cv_c_bigendian+:} false; then :
20070
if test ${ac_cv_c_bigendian+y}
18663
  $as_echo_n "(cached) " >&6
20071
then :
18664
else
20072
  printf %s "(cached) " >&6
20073
else $as_nop
18665
  ac_cv_c_bigendian=unknown
20074
  ac_cv_c_bigendian=unknown
18666
    # See if we're dealing with a universal compiler.
20075
    # See if we're dealing with a universal compiler.
18667
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20076
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Lines 18672-18678 Link Here
18672
	     typedef int dummy;
20081
	     typedef int dummy;
18673
20082
18674
_ACEOF
20083
_ACEOF
18675
if ac_fn_c_try_compile "$LINENO"; then :
20084
if ac_fn_c_try_compile "$LINENO"
20085
then :
18676
20086
18677
	# Check for potential -arch flags.  It is not universal unless
20087
	# Check for potential -arch flags.  It is not universal unless
18678
	# there are at least two -arch flags with different values.
20088
	# there are at least two -arch flags with different values.
Lines 18696-18702 Link Here
18696
	 fi
20106
	 fi
18697
       done
20107
       done
18698
fi
20108
fi
18699
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
20109
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
18700
    if test $ac_cv_c_bigendian = unknown; then
20110
    if test $ac_cv_c_bigendian = unknown; then
18701
      # See if sys/param.h defines the BYTE_ORDER macro.
20111
      # See if sys/param.h defines the BYTE_ORDER macro.
18702
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20112
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Lines 18705-18711 Link Here
18705
	     #include <sys/param.h>
20115
	     #include <sys/param.h>
18706
20116
18707
int
20117
int
18708
main ()
20118
main (void)
18709
{
20119
{
18710
#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
20120
#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
18711
		     && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
20121
		     && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
Lines 18717-18723 Link Here
18717
  return 0;
20127
  return 0;
18718
}
20128
}
18719
_ACEOF
20129
_ACEOF
18720
if ac_fn_c_try_compile "$LINENO"; then :
20130
if ac_fn_c_try_compile "$LINENO"
20131
then :
18721
  # It does; now see whether it defined to BIG_ENDIAN or not.
20132
  # It does; now see whether it defined to BIG_ENDIAN or not.
18722
	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20133
	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
18723
/* end confdefs.h.  */
20134
/* end confdefs.h.  */
Lines 18725-18731 Link Here
18725
		#include <sys/param.h>
20136
		#include <sys/param.h>
18726
20137
18727
int
20138
int
18728
main ()
20139
main (void)
18729
{
20140
{
18730
#if BYTE_ORDER != BIG_ENDIAN
20141
#if BYTE_ORDER != BIG_ENDIAN
18731
		 not big endian
20142
		 not big endian
Lines 18735-18748 Link Here
18735
  return 0;
20146
  return 0;
18736
}
20147
}
18737
_ACEOF
20148
_ACEOF
18738
if ac_fn_c_try_compile "$LINENO"; then :
20149
if ac_fn_c_try_compile "$LINENO"
20150
then :
18739
  ac_cv_c_bigendian=yes
20151
  ac_cv_c_bigendian=yes
18740
else
20152
else $as_nop
18741
  ac_cv_c_bigendian=no
20153
  ac_cv_c_bigendian=no
18742
fi
20154
fi
18743
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
20155
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
18744
fi
20156
fi
18745
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
20157
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
18746
    fi
20158
    fi
18747
    if test $ac_cv_c_bigendian = unknown; then
20159
    if test $ac_cv_c_bigendian = unknown; then
18748
      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
20160
      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
Lines 18751-18757 Link Here
18751
#include <limits.h>
20163
#include <limits.h>
18752
20164
18753
int
20165
int
18754
main ()
20166
main (void)
18755
{
20167
{
18756
#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
20168
#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
18757
	      bogus endian macros
20169
	      bogus endian macros
Lines 18761-18774 Link Here
18761
  return 0;
20173
  return 0;
18762
}
20174
}
18763
_ACEOF
20175
_ACEOF
18764
if ac_fn_c_try_compile "$LINENO"; then :
20176
if ac_fn_c_try_compile "$LINENO"
20177
then :
18765
  # It does; now see whether it defined to _BIG_ENDIAN or not.
20178
  # It does; now see whether it defined to _BIG_ENDIAN or not.
18766
	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20179
	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
18767
/* end confdefs.h.  */
20180
/* end confdefs.h.  */
18768
#include <limits.h>
20181
#include <limits.h>
18769
20182
18770
int
20183
int
18771
main ()
20184
main (void)
18772
{
20185
{
18773
#ifndef _BIG_ENDIAN
20186
#ifndef _BIG_ENDIAN
18774
		 not big endian
20187
		 not big endian
Lines 18778-18808 Link Here
18778
  return 0;
20191
  return 0;
18779
}
20192
}
18780
_ACEOF
20193
_ACEOF
18781
if ac_fn_c_try_compile "$LINENO"; then :
20194
if ac_fn_c_try_compile "$LINENO"
20195
then :
18782
  ac_cv_c_bigendian=yes
20196
  ac_cv_c_bigendian=yes
18783
else
20197
else $as_nop
18784
  ac_cv_c_bigendian=no
20198
  ac_cv_c_bigendian=no
18785
fi
20199
fi
18786
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
20200
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
18787
fi
20201
fi
18788
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
20202
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
18789
    fi
20203
    fi
18790
    if test $ac_cv_c_bigendian = unknown; then
20204
    if test $ac_cv_c_bigendian = unknown; then
18791
      # Compile a test program.
20205
      # Compile a test program.
18792
      if test "$cross_compiling" = yes; then :
20206
      if test "$cross_compiling" = yes
20207
then :
18793
  # Try to guess by grepping values from an object file.
20208
  # Try to guess by grepping values from an object file.
18794
	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20209
	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
18795
/* end confdefs.h.  */
20210
/* end confdefs.h.  */
18796
short int ascii_mm[] =
20211
unsigned short int ascii_mm[] =
18797
		  { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
20212
		  { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
18798
		short int ascii_ii[] =
20213
		unsigned short int ascii_ii[] =
18799
		  { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
20214
		  { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
18800
		int use_ascii (int i) {
20215
		int use_ascii (int i) {
18801
		  return ascii_mm[i] + ascii_ii[i];
20216
		  return ascii_mm[i] + ascii_ii[i];
18802
		}
20217
		}
18803
		short int ebcdic_ii[] =
20218
		unsigned short int ebcdic_ii[] =
18804
		  { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
20219
		  { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
18805
		short int ebcdic_mm[] =
20220
		unsigned short int ebcdic_mm[] =
18806
		  { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
20221
		  { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
18807
		int use_ebcdic (int i) {
20222
		int use_ebcdic (int i) {
18808
		  return ebcdic_mm[i] + ebcdic_ii[i];
20223
		  return ebcdic_mm[i] + ebcdic_ii[i];
Lines 18810-18823 Link Here
18810
		extern int foo;
20225
		extern int foo;
18811
20226
18812
int
20227
int
18813
main ()
20228
main (void)
18814
{
20229
{
18815
return use_ascii (foo) == use_ebcdic (foo);
20230
return use_ascii (foo) == use_ebcdic (foo);
18816
  ;
20231
  ;
18817
  return 0;
20232
  return 0;
18818
}
20233
}
18819
_ACEOF
20234
_ACEOF
18820
if ac_fn_c_try_compile "$LINENO"; then :
20235
if ac_fn_c_try_compile "$LINENO"
20236
then :
18821
  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
20237
  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
18822
	      ac_cv_c_bigendian=yes
20238
	      ac_cv_c_bigendian=yes
18823
	    fi
20239
	    fi
Lines 18830-18842 Link Here
18830
	      fi
20246
	      fi
18831
	    fi
20247
	    fi
18832
fi
20248
fi
18833
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
20249
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
18834
else
20250
else $as_nop
18835
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20251
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
18836
/* end confdefs.h.  */
20252
/* end confdefs.h.  */
18837
$ac_includes_default
20253
$ac_includes_default
18838
int
20254
int
18839
main ()
20255
main (void)
18840
{
20256
{
18841
20257
18842
	     /* Are we little or big endian?  From Harbison&Steele.  */
20258
	     /* Are we little or big endian?  From Harbison&Steele.  */
Lines 18852-18860 Link Here
18852
  return 0;
20268
  return 0;
18853
}
20269
}
18854
_ACEOF
20270
_ACEOF
18855
if ac_fn_c_try_run "$LINENO"; then :
20271
if ac_fn_c_try_run "$LINENO"
20272
then :
18856
  ac_cv_c_bigendian=no
20273
  ac_cv_c_bigendian=no
18857
else
20274
else $as_nop
18858
  ac_cv_c_bigendian=yes
20275
  ac_cv_c_bigendian=yes
18859
fi
20276
fi
18860
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
20277
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
Lines 18863-18879 Link Here
18863
20280
18864
    fi
20281
    fi
18865
fi
20282
fi
18866
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
20283
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
18867
$as_echo "$ac_cv_c_bigendian" >&6; }
20284
printf "%s\n" "$ac_cv_c_bigendian" >&6; }
18868
 case $ac_cv_c_bigendian in #(
20285
 case $ac_cv_c_bigendian in #(
18869
   yes)
20286
   yes)
18870
     $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
20287
     printf "%s\n" "#define WORDS_BIGENDIAN 1" >>confdefs.h
18871
;; #(
20288
;; #(
18872
   no)
20289
   no)
18873
      ;; #(
20290
      ;; #(
18874
   universal)
20291
   universal)
18875
20292
18876
$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
20293
printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
18877
20294
18878
     ;; #(
20295
     ;; #(
18879
   *)
20296
   *)
Lines 18882-18888 Link Here
18882
 esac
20299
 esac
18883
20300
18884
20301
20302
# __attribute__((__constructor__)) can be used for one-time initializations.
20303
# Use -Werror because some compilers accept unknown attributes and just
20304
# give a warning. If it works this should give no warnings, even
20305
# clang -Weverything should be fine.
20306
# dnl This doesn't need AC_LANG_SOURCE, minimal code is enough.
20307
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if __attribute__((__constructor__)) can be used" >&5
20308
printf %s "checking if __attribute__((__constructor__)) can be used... " >&6; }
20309
have_func_attribute_constructor=no
20310
OLD_CFLAGS="$CFLAGS"
20311
CFLAGS="$CFLAGS -Werror"
20312
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20313
/* end confdefs.h.  */
18885
20314
20315
	__attribute__((__constructor__))
20316
	static void my_constructor_func(void) { return; }
20317
20318
_ACEOF
20319
if ac_fn_c_try_compile "$LINENO"
20320
then :
20321
20322
20323
printf "%s\n" "#define HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR 1" >>confdefs.h
20324
20325
	have_func_attribute_constructor=yes
20326
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
20327
printf "%s\n" "yes" >&6; }
20328
20329
else $as_nop
20330
20331
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
20332
printf "%s\n" "no" >&6; }
20333
20334
fi
20335
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
20336
CFLAGS="$OLD_CFLAGS"
20337
20338
18886
###############################################################################
20339
###############################################################################
18887
# Checks for library functions.
20340
# Checks for library functions.
18888
###############################################################################
20341
###############################################################################
Lines 18890-18942 Link Here
18890
# Gnulib replacements as needed
20343
# Gnulib replacements as needed
18891
20344
18892
  if test -z "$GETOPT_H"; then
20345
  if test -z "$GETOPT_H"; then
18893
    for ac_header in getopt.h
20346
           for ac_header in getopt.h
18894
do :
20347
do :
18895
  ac_fn_c_check_header_mongrel "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default"
20348
  ac_fn_c_check_header_compile "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default"
18896
if test "x$ac_cv_header_getopt_h" = xyes; then :
20349
if test "x$ac_cv_header_getopt_h" = xyes
18897
  cat >>confdefs.h <<_ACEOF
20350
then :
18898
#define HAVE_GETOPT_H 1
20351
  printf "%s\n" "#define HAVE_GETOPT_H 1" >>confdefs.h
18899
_ACEOF
18900
20352
18901
else
20353
else $as_nop
18902
  GETOPT_H=getopt.h
20354
  GETOPT_H=getopt.h
18903
fi
20355
fi
18904
20356
18905
done
20357
done
18906
18907
  fi
20358
  fi
18908
20359
18909
  if test -z "$GETOPT_H"; then
20360
  if test -z "$GETOPT_H"; then
18910
    for ac_func in getopt_long
20361
20362
  for ac_func in getopt_long
18911
do :
20363
do :
18912
  ac_fn_c_check_func "$LINENO" "getopt_long" "ac_cv_func_getopt_long"
20364
  ac_fn_c_check_func "$LINENO" "getopt_long" "ac_cv_func_getopt_long"
18913
if test "x$ac_cv_func_getopt_long" = xyes; then :
20365
if test "x$ac_cv_func_getopt_long" = xyes
18914
  cat >>confdefs.h <<_ACEOF
20366
then :
18915
#define HAVE_GETOPT_LONG 1
20367
  printf "%s\n" "#define HAVE_GETOPT_LONG 1" >>confdefs.h
18916
_ACEOF
18917
20368
18918
else
20369
else $as_nop
18919
  GETOPT_H=getopt.h
20370
  GETOPT_H=getopt.h
18920
fi
20371
fi
18921
done
18922
20372
20373
done
18923
  fi
20374
  fi
18924
20375
18925
                                  if test -z "$GETOPT_H"; then
20376
                                  if test -z "$GETOPT_H"; then
18926
    ac_fn_c_check_decl "$LINENO" "optreset" "ac_cv_have_decl_optreset" "#include <getopt.h>
20377
    ac_fn_check_decl "$LINENO" "optreset" "ac_cv_have_decl_optreset" "#include <getopt.h>
18927
"
20378
" "$ac_c_undeclared_builtin_options" "CFLAGS"
18928
if test "x$ac_cv_have_decl_optreset" = xyes; then :
20379
if test "x$ac_cv_have_decl_optreset" = xyes
20380
then :
18929
20381
18930
$as_echo "#define HAVE_OPTRESET 1" >>confdefs.h
20382
printf "%s\n" "#define HAVE_OPTRESET 1" >>confdefs.h
18931
20383
18932
fi
20384
fi
18933
18934
  fi
20385
  fi
18935
20386
18936
20387
18937
20388
18938
20389
18939
  if test -n "$GETOPT_H"; then :
20390
  if test -n "$GETOPT_H"
20391
then :
18940
20392
18941
  case " $LIBOBJS " in
20393
  case " $LIBOBJS " in
18942
  *" getopt.$ac_objext "* ) ;;
20394
  *" getopt.$ac_objext "* ) ;;
Lines 18953-18959 Link Here
18953
20405
18954
  GETOPT_H=getopt.h
20406
  GETOPT_H=getopt.h
18955
20407
18956
$as_echo "#define __GETOPT_PREFIX rpl_" >>confdefs.h
20408
printf "%s\n" "#define __GETOPT_PREFIX rpl_" >>confdefs.h
18957
20409
18958
20410
18959
20411
Lines 18962-18991 Link Here
18962
20414
18963
20415
18964
# Find the best function to set timestamps.
20416
# Find the best function to set timestamps.
18965
for ac_func in futimens futimes futimesat utimes _futime utime
20417
20418
  for ac_func in futimens futimes futimesat utimes _futime utime
18966
do :
20419
do :
18967
  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
20420
  as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh`
18968
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
20421
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
18969
if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
20422
if eval test \"x\$"$as_ac_var"\" = x"yes"
20423
then :
18970
  cat >>confdefs.h <<_ACEOF
20424
  cat >>confdefs.h <<_ACEOF
18971
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
20425
#define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1
18972
_ACEOF
20426
_ACEOF
18973
 break
20427
 break
18974
fi
20428
fi
20429
18975
done
20430
done
18976
20431
18977
18978
# This is nice to have but not mandatory.
20432
# This is nice to have but not mandatory.
18979
for ac_func in posix_fadvise
20433
ac_fn_c_check_func "$LINENO" "posix_fadvise" "ac_cv_func_posix_fadvise"
18980
do :
20434
if test "x$ac_cv_func_posix_fadvise" = xyes
18981
  ac_fn_c_check_func "$LINENO" "posix_fadvise" "ac_cv_func_posix_fadvise"
20435
then :
18982
if test "x$ac_cv_func_posix_fadvise" = xyes; then :
20436
  printf "%s\n" "#define HAVE_POSIX_FADVISE 1" >>confdefs.h
18983
  cat >>confdefs.h <<_ACEOF
18984
#define HAVE_POSIX_FADVISE 1
18985
_ACEOF
18986
20437
18987
fi
20438
fi
18988
done
18989
20439
18990
20440
18991
20441
Lines 18995-19024 Link Here
18995
20445
18996
20446
18997
20447
18998
ac_fn_c_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include <errno.h>
20448
ac_fn_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include <errno.h>
18999
"
20449
" "$ac_c_undeclared_builtin_options" "CFLAGS"
19000
if test "x$ac_cv_have_decl_program_invocation_name" = xyes; then :
20450
if test "x$ac_cv_have_decl_program_invocation_name" = xyes
19001
  ac_have_decl=1
20451
then :
19002
else
19003
  ac_have_decl=0
19004
fi
19005
20452
19006
cat >>confdefs.h <<_ACEOF
20453
printf "%s\n" "#define HAVE_PROGRAM_INVOCATION_NAME 1" >>confdefs.h
19007
#define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl
19008
_ACEOF
19009
20454
20455
fi
19010
20456
19011
20457
19012
20458
19013
20459
19014
20460
19015
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if __builtin_bswap16/32/64 are supported" >&5
20461
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if __builtin_bswap16/32/64 are supported" >&5
19016
$as_echo_n "checking if __builtin_bswap16/32/64 are supported... " >&6; }
20462
printf %s "checking if __builtin_bswap16/32/64 are supported... " >&6; }
19017
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20463
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
19018
/* end confdefs.h.  */
20464
/* end confdefs.h.  */
19019
20465
19020
int
20466
int
19021
main ()
20467
main (void)
19022
{
20468
{
19023
__builtin_bswap16(1);
20469
__builtin_bswap16(1);
19024
			__builtin_bswap32(1);
20470
			__builtin_bswap32(1);
Lines 19027-19065 Link Here
19027
  return 0;
20473
  return 0;
19028
}
20474
}
19029
_ACEOF
20475
_ACEOF
19030
if ac_fn_c_try_link "$LINENO"; then :
20476
if ac_fn_c_try_link "$LINENO"
20477
then :
19031
20478
19032
20479
19033
$as_echo "#define HAVE___BUILTIN_BSWAPXX 1" >>confdefs.h
20480
printf "%s\n" "#define HAVE___BUILTIN_BSWAPXX 1" >>confdefs.h
19034
20481
19035
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
20482
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
19036
$as_echo "yes" >&6; }
20483
printf "%s\n" "yes" >&6; }
19037
20484
19038
else
20485
else $as_nop
19039
20486
19040
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20487
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
19041
$as_echo "no" >&6; }
20488
printf "%s\n" "no" >&6; }
19042
20489
19043
	# Look for other byteswapping methods.
20490
	# Look for other byteswapping methods.
19044
	for ac_header in byteswap.h sys/endian.h sys/byteorder.h
20491
	       for ac_header in byteswap.h sys/endian.h sys/byteorder.h
19045
do :
20492
do :
19046
  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
20493
  as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh`
19047
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
20494
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
19048
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
20495
if eval test \"x\$"$as_ac_Header"\" = x"yes"
20496
then :
19049
  cat >>confdefs.h <<_ACEOF
20497
  cat >>confdefs.h <<_ACEOF
19050
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
20498
#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1
19051
_ACEOF
20499
_ACEOF
19052
 break
20500
 break
19053
fi
20501
fi
19054
20502
19055
done
20503
done
19056
20504
19057
19058
	# Even if we have byteswap.h we may lack the specific macros/functions.
20505
	# Even if we have byteswap.h we may lack the specific macros/functions.
19059
	if test x$ac_cv_header_byteswap_h = xyes ; then
20506
	if test x$ac_cv_header_byteswap_h = xyes ; then
19060
20507
19061
			{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if bswap_16 is available" >&5
20508
			{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if bswap_16 is available" >&5
19062
$as_echo_n "checking if bswap_16 is available... " >&6; }
20509
printf %s "checking if bswap_16 is available... " >&6; }
19063
			cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20510
			cat confdefs.h - <<_ACEOF >conftest.$ac_ext
19064
/* end confdefs.h.  */
20511
/* end confdefs.h.  */
19065
20512
Lines 19072-19095 Link Here
19072
}
20519
}
19073
20520
19074
_ACEOF
20521
_ACEOF
19075
if ac_fn_c_try_link "$LINENO"; then :
20522
if ac_fn_c_try_link "$LINENO"
20523
then :
19076
20524
19077
20525
19078
$as_echo "#define HAVE_BSWAP_16 1" >>confdefs.h
20526
printf "%s\n" "#define HAVE_BSWAP_16 1" >>confdefs.h
19079
20527
19080
				{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
20528
				{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
19081
$as_echo "yes" >&6; }
20529
printf "%s\n" "yes" >&6; }
19082
20530
19083
else
20531
else $as_nop
19084
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20532
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
19085
$as_echo "no" >&6; }
20533
printf "%s\n" "no" >&6; }
19086
fi
20534
fi
19087
rm -f core conftest.err conftest.$ac_objext \
20535
rm -f core conftest.err conftest.$ac_objext conftest.beam \
19088
    conftest$ac_exeext conftest.$ac_ext
20536
    conftest$ac_exeext conftest.$ac_ext
19089
20537
19090
20538
19091
			{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if bswap_32 is available" >&5
20539
			{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if bswap_32 is available" >&5
19092
$as_echo_n "checking if bswap_32 is available... " >&6; }
20540
printf %s "checking if bswap_32 is available... " >&6; }
19093
			cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20541
			cat confdefs.h - <<_ACEOF >conftest.$ac_ext
19094
/* end confdefs.h.  */
20542
/* end confdefs.h.  */
19095
20543
Lines 19102-19125 Link Here
19102
}
20550
}
19103
20551
19104
_ACEOF
20552
_ACEOF
19105
if ac_fn_c_try_link "$LINENO"; then :
20553
if ac_fn_c_try_link "$LINENO"
20554
then :
19106
20555
19107
20556
19108
$as_echo "#define HAVE_BSWAP_32 1" >>confdefs.h
20557
printf "%s\n" "#define HAVE_BSWAP_32 1" >>confdefs.h
19109
20558
19110
				{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
20559
				{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
19111
$as_echo "yes" >&6; }
20560
printf "%s\n" "yes" >&6; }
19112
20561
19113
else
20562
else $as_nop
19114
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20563
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
19115
$as_echo "no" >&6; }
20564
printf "%s\n" "no" >&6; }
19116
fi
20565
fi
19117
rm -f core conftest.err conftest.$ac_objext \
20566
rm -f core conftest.err conftest.$ac_objext conftest.beam \
19118
    conftest$ac_exeext conftest.$ac_ext
20567
    conftest$ac_exeext conftest.$ac_ext
19119
20568
19120
20569
19121
			{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if bswap_64 is available" >&5
20570
			{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if bswap_64 is available" >&5
19122
$as_echo_n "checking if bswap_64 is available... " >&6; }
20571
printf %s "checking if bswap_64 is available... " >&6; }
19123
			cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20572
			cat confdefs.h - <<_ACEOF >conftest.$ac_ext
19124
/* end confdefs.h.  */
20573
/* end confdefs.h.  */
19125
20574
Lines 19132-19164 Link Here
19132
}
20581
}
19133
20582
19134
_ACEOF
20583
_ACEOF
19135
if ac_fn_c_try_link "$LINENO"; then :
20584
if ac_fn_c_try_link "$LINENO"
20585
then :
19136
20586
19137
20587
19138
$as_echo "#define HAVE_BSWAP_64 1" >>confdefs.h
20588
printf "%s\n" "#define HAVE_BSWAP_64 1" >>confdefs.h
19139
20589
19140
				{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
20590
				{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
19141
$as_echo "yes" >&6; }
20591
printf "%s\n" "yes" >&6; }
19142
20592
19143
else
20593
else $as_nop
19144
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20594
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
19145
$as_echo "no" >&6; }
20595
printf "%s\n" "no" >&6; }
19146
fi
20596
fi
19147
rm -f core conftest.err conftest.$ac_objext \
20597
rm -f core conftest.err conftest.$ac_objext conftest.beam \
19148
    conftest$ac_exeext conftest.$ac_ext
20598
    conftest$ac_exeext conftest.$ac_ext
19149
20599
19150
			fi
20600
			fi
19151
20601
19152
fi
20602
fi
19153
rm -f core conftest.err conftest.$ac_objext \
20603
rm -f core conftest.err conftest.$ac_objext conftest.beam \
19154
    conftest$ac_exeext conftest.$ac_ext
20604
    conftest$ac_exeext conftest.$ac_ext
19155
20605
19156
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if unaligned memory access should be used" >&5
20606
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if unaligned memory access should be used" >&5
19157
$as_echo_n "checking if unaligned memory access should be used... " >&6; }
20607
printf %s "checking if unaligned memory access should be used... " >&6; }
19158
# Check whether --enable-unaligned-access was given.
20608
# Check whether --enable-unaligned-access was given.
19159
if test "${enable_unaligned_access+set}" = set; then :
20609
if test ${enable_unaligned_access+y}
20610
then :
19160
  enableval=$enable_unaligned_access;
20611
  enableval=$enable_unaligned_access;
19161
else
20612
else $as_nop
19162
  enable_unaligned_access=auto
20613
  enable_unaligned_access=auto
19163
fi
20614
fi
19164
20615
Lines 19169-19174 Link Here
19169
		i?86|x86_64|powerpc|powerpc64)
20620
		i?86|x86_64|powerpc|powerpc64)
19170
			enable_unaligned_access=yes
20621
			enable_unaligned_access=yes
19171
			;;
20622
			;;
20623
		arm*|aarch64*)
20624
			# On 32-bit and 64-bit ARM, GCC and Clang
20625
			# #define __ARM_FEATURE_UNALIGNED if
20626
			# unaligned access is supported.
20627
			cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20628
/* end confdefs.h.  */
20629
20630
#ifndef __ARM_FEATURE_UNALIGNED
20631
compile error
20632
#endif
20633
int main(void) { return 0; }
20634
20635
_ACEOF
20636
if ac_fn_c_try_compile "$LINENO"
20637
then :
20638
  enable_unaligned_access=yes
20639
else $as_nop
20640
  enable_unaligned_access=no
20641
fi
20642
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
20643
			;;
19172
		*)
20644
		*)
19173
			enable_unaligned_access=no
20645
			enable_unaligned_access=no
19174
			;;
20646
			;;
Lines 19176-19264 Link Here
19176
fi
20648
fi
19177
if test "x$enable_unaligned_access" = xyes ; then
20649
if test "x$enable_unaligned_access" = xyes ; then
19178
20650
19179
$as_echo "#define TUKLIB_FAST_UNALIGNED_ACCESS 1" >>confdefs.h
20651
printf "%s\n" "#define TUKLIB_FAST_UNALIGNED_ACCESS 1" >>confdefs.h
19180
20652
19181
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
20653
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
19182
$as_echo "yes" >&6; }
20654
printf "%s\n" "yes" >&6; }
19183
else
20655
else
19184
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20656
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
19185
$as_echo "no" >&6; }
20657
printf "%s\n" "no" >&6; }
19186
fi
20658
fi
19187
20659
19188
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if unsafe type punning should be used" >&5
20660
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if unsafe type punning should be used" >&5
19189
$as_echo_n "checking if unsafe type punning should be used... " >&6; }
20661
printf %s "checking if unsafe type punning should be used... " >&6; }
19190
# Check whether --enable-unsafe-type-punning was given.
20662
# Check whether --enable-unsafe-type-punning was given.
19191
if test "${enable_unsafe_type_punning+set}" = set; then :
20663
if test ${enable_unsafe_type_punning+y}
20664
then :
19192
  enableval=$enable_unsafe_type_punning;
20665
  enableval=$enable_unsafe_type_punning;
19193
else
20666
else $as_nop
19194
  enable_unsafe_type_punning=no
20667
  enable_unsafe_type_punning=no
19195
fi
20668
fi
19196
20669
19197
if test "x$enable_unsafe_type_punning" = xyes ; then
20670
if test "x$enable_unsafe_type_punning" = xyes ; then
19198
20671
19199
$as_echo "#define TUKLIB_USE_UNSAFE_TYPE_PUNNING 1" >>confdefs.h
20672
printf "%s\n" "#define TUKLIB_USE_UNSAFE_TYPE_PUNNING 1" >>confdefs.h
19200
20673
19201
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
20674
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
19202
$as_echo "yes" >&6; }
20675
printf "%s\n" "yes" >&6; }
19203
else
20676
else
19204
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20677
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
19205
$as_echo "no" >&6; }
20678
printf "%s\n" "no" >&6; }
19206
fi
20679
fi
19207
20680
19208
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if __builtin_assume_aligned is supported" >&5
20681
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if __builtin_assume_aligned is supported" >&5
19209
$as_echo_n "checking if __builtin_assume_aligned is supported... " >&6; }
20682
printf %s "checking if __builtin_assume_aligned is supported... " >&6; }
19210
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20683
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
19211
/* end confdefs.h.  */
20684
/* end confdefs.h.  */
19212
20685
19213
int
20686
int
19214
main ()
20687
main (void)
19215
{
20688
{
19216
__builtin_assume_aligned("", 1);
20689
__builtin_assume_aligned("", 1);
19217
  ;
20690
  ;
19218
  return 0;
20691
  return 0;
19219
}
20692
}
19220
_ACEOF
20693
_ACEOF
19221
if ac_fn_c_try_link "$LINENO"; then :
20694
if ac_fn_c_try_link "$LINENO"
20695
then :
19222
20696
19223
20697
19224
$as_echo "#define HAVE___BUILTIN_ASSUME_ALIGNED 1" >>confdefs.h
20698
printf "%s\n" "#define HAVE___BUILTIN_ASSUME_ALIGNED 1" >>confdefs.h
19225
20699
19226
		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
20700
		{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
19227
$as_echo "yes" >&6; }
20701
printf "%s\n" "yes" >&6; }
19228
20702
19229
else
20703
else $as_nop
19230
20704
19231
		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20705
		{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
19232
$as_echo "no" >&6; }
20706
printf "%s\n" "no" >&6; }
19233
20707
19234
fi
20708
fi
19235
rm -f core conftest.err conftest.$ac_objext \
20709
rm -f core conftest.err conftest.$ac_objext conftest.beam \
19236
    conftest$ac_exeext conftest.$ac_ext
20710
    conftest$ac_exeext conftest.$ac_ext
19237
20711
19238
20712
19239
20713
19240
20714
19241
# sys/param.h might be needed by sys/sysctl.h.
20715
# sys/param.h might be needed by sys/sysctl.h.
19242
for ac_header in sys/param.h
20716
ac_fn_c_check_header_compile "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default"
19243
do :
20717
if test "x$ac_cv_header_sys_param_h" = xyes
19244
  ac_fn_c_check_header_mongrel "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default"
20718
then :
19245
if test "x$ac_cv_header_sys_param_h" = xyes; then :
20719
  printf "%s\n" "#define HAVE_SYS_PARAM_H 1" >>confdefs.h
19246
  cat >>confdefs.h <<_ACEOF
19247
#define HAVE_SYS_PARAM_H 1
19248
_ACEOF
19249
20720
19250
fi
20721
fi
19251
20722
19252
done
19253
20723
20724
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to detect the amount of physical memory" >&5
20725
printf %s "checking how to detect the amount of physical memory... " >&6; }
20726
if test ${tuklib_cv_physmem_method+y}
20727
then :
20728
  printf %s "(cached) " >&6
20729
else $as_nop
19254
20730
19255
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to detect the amount of physical memory" >&5
19256
$as_echo_n "checking how to detect the amount of physical memory... " >&6; }
19257
if ${tuklib_cv_physmem_method+:} false; then :
19258
  $as_echo_n "(cached) " >&6
19259
else
19260
20731
19261
19262
# Maybe checking $host_os would be enough but this matches what
20732
# Maybe checking $host_os would be enough but this matches what
19263
# tuklib_physmem.c does.
20733
# tuklib_physmem.c does.
19264
#
20734
#
Lines 19276-19284 Link Here
19276
#endif
20746
#endif
19277
20747
19278
_ACEOF
20748
_ACEOF
19279
if ac_fn_c_try_compile "$LINENO"; then :
20749
if ac_fn_c_try_compile "$LINENO"
20750
then :
19280
  tuklib_cv_physmem_method=special
20751
  tuklib_cv_physmem_method=special
19281
else
20752
else $as_nop
19282
20753
19283
20754
19284
# Look for AIX-specific solution before sysconf(), because the test
20755
# Look for AIX-specific solution before sysconf(), because the test
Lines 19297-19305 Link Here
19297
}
20768
}
19298
20769
19299
_ACEOF
20770
_ACEOF
19300
if ac_fn_c_try_compile "$LINENO"; then :
20771
if ac_fn_c_try_compile "$LINENO"
20772
then :
19301
  tuklib_cv_physmem_method=aix
20773
  tuklib_cv_physmem_method=aix
19302
else
20774
else $as_nop
19303
20775
19304
20776
19305
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20777
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Lines 19316-19330 Link Here
19316
}
20788
}
19317
20789
19318
_ACEOF
20790
_ACEOF
19319
if ac_fn_c_try_compile "$LINENO"; then :
20791
if ac_fn_c_try_compile "$LINENO"
20792
then :
19320
  tuklib_cv_physmem_method=sysconf
20793
  tuklib_cv_physmem_method=sysconf
19321
else
20794
else $as_nop
19322
20795
19323
20796
19324
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20797
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
19325
/* end confdefs.h.  */
20798
/* end confdefs.h.  */
19326
20799
19327
#include <sys/types.h>
19328
#ifdef HAVE_SYS_PARAM_H
20800
#ifdef HAVE_SYS_PARAM_H
19329
#	include <sys/param.h>
20801
#	include <sys/param.h>
19330
#endif
20802
#endif
Lines 19340-19348 Link Here
19340
}
20812
}
19341
20813
19342
_ACEOF
20814
_ACEOF
19343
if ac_fn_c_try_compile "$LINENO"; then :
20815
if ac_fn_c_try_compile "$LINENO"
20816
then :
19344
  tuklib_cv_physmem_method=sysctl
20817
  tuklib_cv_physmem_method=sysctl
19345
else
20818
else $as_nop
19346
20819
19347
20820
19348
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20821
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Lines 19361-19369 Link Here
19361
}
20834
}
19362
20835
19363
_ACEOF
20836
_ACEOF
19364
if ac_fn_c_try_compile "$LINENO"; then :
20837
if ac_fn_c_try_compile "$LINENO"
20838
then :
19365
  tuklib_cv_physmem_method=getsysinfo
20839
  tuklib_cv_physmem_method=getsysinfo
19366
else
20840
else $as_nop
19367
20841
19368
20842
19369
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20843
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Lines 19383-19391 Link Here
19383
}
20857
}
19384
20858
19385
_ACEOF
20859
_ACEOF
19386
if ac_fn_c_try_compile "$LINENO"; then :
20860
if ac_fn_c_try_compile "$LINENO"
20861
then :
19387
  tuklib_cv_physmem_method=pstat_getstatic
20862
  tuklib_cv_physmem_method=pstat_getstatic
19388
else
20863
else $as_nop
19389
20864
19390
20865
19391
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20866
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Lines 19403-19411 Link Here
19403
}
20878
}
19404
20879
19405
_ACEOF
20880
_ACEOF
19406
if ac_fn_c_try_compile "$LINENO"; then :
20881
if ac_fn_c_try_compile "$LINENO"
20882
then :
19407
  tuklib_cv_physmem_method=getinvent_r
20883
  tuklib_cv_physmem_method=getinvent_r
19408
else
20884
else $as_nop
19409
20885
19410
20886
19411
# This version of sysinfo() is Linux-specific. Some non-Linux systems have
20887
# This version of sysinfo() is Linux-specific. Some non-Linux systems have
Lines 19425-19440 Link Here
19425
}
20901
}
19426
20902
19427
_ACEOF
20903
_ACEOF
19428
if ac_fn_c_try_compile "$LINENO"; then :
20904
if ac_fn_c_try_compile "$LINENO"
20905
then :
19429
20906
19430
			tuklib_cv_physmem_method=sysinfo
20907
			tuklib_cv_physmem_method=sysinfo
19431
20908
19432
else
20909
else $as_nop
19433
20910
19434
			tuklib_cv_physmem_method=unknown
20911
			tuklib_cv_physmem_method=unknown
19435
20912
19436
fi
20913
fi
19437
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
20914
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
19438
		;;
20915
		;;
19439
	*)
20916
	*)
19440
		tuklib_cv_physmem_method=unknown
20917
		tuklib_cv_physmem_method=unknown
Lines 19442-19498 Link Here
19442
esac
20919
esac
19443
20920
19444
fi
20921
fi
19445
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
20922
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
19446
fi
20923
fi
19447
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
20924
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
19448
fi
20925
fi
19449
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
20926
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
19450
fi
20927
fi
19451
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
20928
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
19452
fi
20929
fi
19453
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
20930
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
19454
fi
20931
fi
19455
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
20932
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
19456
fi
20933
fi
19457
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
20934
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
19458
fi
20935
fi
19459
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tuklib_cv_physmem_method" >&5
20936
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tuklib_cv_physmem_method" >&5
19460
$as_echo "$tuklib_cv_physmem_method" >&6; }
20937
printf "%s\n" "$tuklib_cv_physmem_method" >&6; }
19461
20938
19462
case $tuklib_cv_physmem_method in
20939
case $tuklib_cv_physmem_method in
19463
	aix)
20940
	aix)
19464
20941
19465
$as_echo "#define TUKLIB_PHYSMEM_AIX 1" >>confdefs.h
20942
printf "%s\n" "#define TUKLIB_PHYSMEM_AIX 1" >>confdefs.h
19466
20943
19467
		;;
20944
		;;
19468
	sysconf)
20945
	sysconf)
19469
20946
19470
$as_echo "#define TUKLIB_PHYSMEM_SYSCONF 1" >>confdefs.h
20947
printf "%s\n" "#define TUKLIB_PHYSMEM_SYSCONF 1" >>confdefs.h
19471
20948
19472
		;;
20949
		;;
19473
	sysctl)
20950
	sysctl)
19474
20951
19475
$as_echo "#define TUKLIB_PHYSMEM_SYSCTL 1" >>confdefs.h
20952
printf "%s\n" "#define TUKLIB_PHYSMEM_SYSCTL 1" >>confdefs.h
19476
20953
19477
		;;
20954
		;;
19478
	getsysinfo)
20955
	getsysinfo)
19479
20956
19480
$as_echo "#define TUKLIB_PHYSMEM_GETSYSINFO 1" >>confdefs.h
20957
printf "%s\n" "#define TUKLIB_PHYSMEM_GETSYSINFO 1" >>confdefs.h
19481
20958
19482
		;;
20959
		;;
19483
	pstat_getstatic)
20960
	pstat_getstatic)
19484
20961
19485
$as_echo "#define TUKLIB_PHYSMEM_PSTAT_GETSTATIC 1" >>confdefs.h
20962
printf "%s\n" "#define TUKLIB_PHYSMEM_PSTAT_GETSTATIC 1" >>confdefs.h
19486
20963
19487
		;;
20964
		;;
19488
	getinvent_r)
20965
	getinvent_r)
19489
20966
19490
$as_echo "#define TUKLIB_PHYSMEM_GETINVENT_R 1" >>confdefs.h
20967
printf "%s\n" "#define TUKLIB_PHYSMEM_GETINVENT_R 1" >>confdefs.h
19491
20968
19492
		;;
20969
		;;
19493
	sysinfo)
20970
	sysinfo)
19494
20971
19495
$as_echo "#define TUKLIB_PHYSMEM_SYSINFO 1" >>confdefs.h
20972
printf "%s\n" "#define TUKLIB_PHYSMEM_SYSINFO 1" >>confdefs.h
19496
20973
19497
		;;
20974
		;;
19498
esac
20975
esac
Lines 19501-19526 Link Here
19501
20978
19502
20979
19503
# sys/param.h might be needed by sys/sysctl.h.
20980
# sys/param.h might be needed by sys/sysctl.h.
19504
for ac_header in sys/param.h
20981
ac_fn_c_check_header_compile "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default"
19505
do :
20982
if test "x$ac_cv_header_sys_param_h" = xyes
19506
  ac_fn_c_check_header_mongrel "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default"
20983
then :
19507
if test "x$ac_cv_header_sys_param_h" = xyes; then :
20984
  printf "%s\n" "#define HAVE_SYS_PARAM_H 1" >>confdefs.h
19508
  cat >>confdefs.h <<_ACEOF
19509
#define HAVE_SYS_PARAM_H 1
19510
_ACEOF
19511
20985
19512
fi
20986
fi
19513
20987
19514
done
19515
20988
20989
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to detect the number of available CPU cores" >&5
20990
printf %s "checking how to detect the number of available CPU cores... " >&6; }
20991
if test ${tuklib_cv_cpucores_method+y}
20992
then :
20993
  printf %s "(cached) " >&6
20994
else $as_nop
19516
20995
19517
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to detect the number of available CPU cores" >&5
19518
$as_echo_n "checking how to detect the number of available CPU cores... " >&6; }
19519
if ${tuklib_cv_cpucores_method+:} false; then :
19520
  $as_echo_n "(cached) " >&6
19521
else
19522
20996
19523
19524
# Maybe checking $host_os would be enough but this matches what
20997
# Maybe checking $host_os would be enough but this matches what
19525
# tuklib_cpucores.c does.
20998
# tuklib_cpucores.c does.
19526
#
20999
#
Lines 19536-19544 Link Here
19536
#endif
21009
#endif
19537
21010
19538
_ACEOF
21011
_ACEOF
19539
if ac_fn_c_try_compile "$LINENO"; then :
21012
if ac_fn_c_try_compile "$LINENO"
21013
then :
19540
  tuklib_cv_cpucores_method=special
21014
  tuklib_cv_cpucores_method=special
19541
else
21015
else $as_nop
19542
21016
19543
21017
19544
# glibc-based systems (GNU/Linux and GNU/kFreeBSD) have sched_getaffinity().
21018
# glibc-based systems (GNU/Linux and GNU/kFreeBSD) have sched_getaffinity().
Lines 19559-19567 Link Here
19559
}
21033
}
19560
21034
19561
_ACEOF
21035
_ACEOF
19562
if ac_fn_c_try_link "$LINENO"; then :
21036
if ac_fn_c_try_link "$LINENO"
21037
then :
19563
  tuklib_cv_cpucores_method=sched_getaffinity
21038
  tuklib_cv_cpucores_method=sched_getaffinity
19564
else
21039
else $as_nop
19565
21040
19566
21041
19567
# FreeBSD has both cpuset and sysctl. Look for cpuset first because
21042
# FreeBSD has both cpuset and sysctl. Look for cpuset first because
Lines 19587-19595 Link Here
19587
}
21062
}
19588
21063
19589
_ACEOF
21064
_ACEOF
19590
if ac_fn_c_try_compile "$LINENO"; then :
21065
if ac_fn_c_try_compile "$LINENO"
21066
then :
19591
  tuklib_cv_cpucores_method=cpuset
21067
  tuklib_cv_cpucores_method=cpuset
19592
else
21068
else $as_nop
19593
21069
19594
21070
19595
# On OS/2, both sysconf() and sysctl() pass the tests in this file,
21071
# On OS/2, both sysconf() and sysctl() pass the tests in this file,
Lines 19605-19611 Link Here
19605
#ifdef __QNX__
21081
#ifdef __QNX__
19606
compile error
21082
compile error
19607
#endif
21083
#endif
19608
#include <sys/types.h>
19609
#ifdef HAVE_SYS_PARAM_H
21084
#ifdef HAVE_SYS_PARAM_H
19610
#	include <sys/param.h>
21085
#	include <sys/param.h>
19611
#endif
21086
#endif
Lines 19613-19619 Link Here
19613
int
21088
int
19614
main(void)
21089
main(void)
19615
{
21090
{
21091
#ifdef HW_NCPUONLINE
21092
	/* This is preferred on OpenBSD, see tuklib_cpucores.c. */
21093
	int name[2] = { CTL_HW, HW_NCPUONLINE };
21094
#else
19616
	int name[2] = { CTL_HW, HW_NCPU };
21095
	int name[2] = { CTL_HW, HW_NCPU };
21096
#endif
19617
	int cpus;
21097
	int cpus;
19618
	size_t cpus_size = sizeof(cpus);
21098
	size_t cpus_size = sizeof(cpus);
19619
	sysctl(name, 2, &cpus, &cpus_size, NULL, 0);
21099
	sysctl(name, 2, &cpus, &cpus_size, NULL, 0);
Lines 19621-19629 Link Here
19621
}
21101
}
19622
21102
19623
_ACEOF
21103
_ACEOF
19624
if ac_fn_c_try_compile "$LINENO"; then :
21104
if ac_fn_c_try_compile "$LINENO"
21105
then :
19625
  tuklib_cv_cpucores_method=sysctl
21106
  tuklib_cv_cpucores_method=sysctl
19626
else
21107
else $as_nop
19627
21108
19628
21109
19629
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21110
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Lines 19645-19653 Link Here
19645
}
21126
}
19646
21127
19647
_ACEOF
21128
_ACEOF
19648
if ac_fn_c_try_compile "$LINENO"; then :
21129
if ac_fn_c_try_compile "$LINENO"
21130
then :
19649
  tuklib_cv_cpucores_method=sysconf
21131
  tuklib_cv_cpucores_method=sysconf
19650
else
21132
else $as_nop
19651
21133
19652
21134
19653
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21135
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Lines 19666-19719 Link Here
19666
}
21148
}
19667
21149
19668
_ACEOF
21150
_ACEOF
19669
if ac_fn_c_try_compile "$LINENO"; then :
21151
if ac_fn_c_try_compile "$LINENO"
21152
then :
19670
  tuklib_cv_cpucores_method=pstat_getdynamic
21153
  tuklib_cv_cpucores_method=pstat_getdynamic
19671
else
21154
else $as_nop
19672
21155
19673
21156
19674
	tuklib_cv_cpucores_method=unknown
21157
	tuklib_cv_cpucores_method=unknown
19675
21158
19676
fi
21159
fi
19677
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
21160
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
19678
fi
21161
fi
19679
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
21162
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
19680
fi
21163
fi
19681
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
21164
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
19682
fi
21165
fi
19683
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
21166
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
19684
fi
21167
fi
19685
rm -f core conftest.err conftest.$ac_objext \
21168
rm -f core conftest.err conftest.$ac_objext conftest.beam \
19686
    conftest$ac_exeext conftest.$ac_ext
21169
    conftest$ac_exeext conftest.$ac_ext
19687
fi
21170
fi
19688
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
21171
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
19689
fi
21172
fi
19690
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tuklib_cv_cpucores_method" >&5
21173
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tuklib_cv_cpucores_method" >&5
19691
$as_echo "$tuklib_cv_cpucores_method" >&6; }
21174
printf "%s\n" "$tuklib_cv_cpucores_method" >&6; }
19692
21175
19693
case $tuklib_cv_cpucores_method in
21176
case $tuklib_cv_cpucores_method in
19694
	sched_getaffinity)
21177
	sched_getaffinity)
19695
21178
19696
$as_echo "#define TUKLIB_CPUCORES_SCHED_GETAFFINITY 1" >>confdefs.h
21179
printf "%s\n" "#define TUKLIB_CPUCORES_SCHED_GETAFFINITY 1" >>confdefs.h
19697
21180
19698
		;;
21181
		;;
19699
	cpuset)
21182
	cpuset)
19700
21183
19701
$as_echo "#define TUKLIB_CPUCORES_CPUSET 1" >>confdefs.h
21184
printf "%s\n" "#define TUKLIB_CPUCORES_CPUSET 1" >>confdefs.h
19702
21185
19703
		;;
21186
		;;
19704
	sysctl)
21187
	sysctl)
19705
21188
19706
$as_echo "#define TUKLIB_CPUCORES_SYSCTL 1" >>confdefs.h
21189
printf "%s\n" "#define TUKLIB_CPUCORES_SYSCTL 1" >>confdefs.h
19707
21190
19708
		;;
21191
		;;
19709
	sysconf)
21192
	sysconf)
19710
21193
19711
$as_echo "#define TUKLIB_CPUCORES_SYSCONF 1" >>confdefs.h
21194
printf "%s\n" "#define TUKLIB_CPUCORES_SYSCONF 1" >>confdefs.h
19712
21195
19713
		;;
21196
		;;
19714
	pstat_getdynamic)
21197
	pstat_getdynamic)
19715
21198
19716
$as_echo "#define TUKLIB_CPUCORES_PSTAT_GETDYNAMIC 1" >>confdefs.h
21199
printf "%s\n" "#define TUKLIB_CPUCORES_PSTAT_GETDYNAMIC 1" >>confdefs.h
19717
21200
19718
		;;
21201
		;;
19719
esac
21202
esac
Lines 19721-19736 Link Here
19721
21204
19722
21205
19723
21206
19724
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc and mbstate_t are properly declared" >&5
21207
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc and mbstate_t are properly declared" >&5
19725
$as_echo_n "checking whether mbrtowc and mbstate_t are properly declared... " >&6; }
21208
printf %s "checking whether mbrtowc and mbstate_t are properly declared... " >&6; }
19726
if ${ac_cv_func_mbrtowc+:} false; then :
21209
if test ${ac_cv_func_mbrtowc+y}
19727
  $as_echo_n "(cached) " >&6
21210
then :
19728
else
21211
  printf %s "(cached) " >&6
21212
else $as_nop
19729
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21213
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
19730
/* end confdefs.h.  */
21214
/* end confdefs.h.  */
19731
#include <wchar.h>
21215
#include <wchar.h>
19732
int
21216
int
19733
main ()
21217
main (void)
19734
{
21218
{
19735
wchar_t wc;
21219
wchar_t wc;
19736
	      char const s[] = "";
21220
	      char const s[] = "";
Lines 19741-19772 Link Here
19741
  return 0;
21225
  return 0;
19742
}
21226
}
19743
_ACEOF
21227
_ACEOF
19744
if ac_fn_c_try_link "$LINENO"; then :
21228
if ac_fn_c_try_link "$LINENO"
21229
then :
19745
  ac_cv_func_mbrtowc=yes
21230
  ac_cv_func_mbrtowc=yes
19746
else
21231
else $as_nop
19747
  ac_cv_func_mbrtowc=no
21232
  ac_cv_func_mbrtowc=no
19748
fi
21233
fi
19749
rm -f core conftest.err conftest.$ac_objext \
21234
rm -f core conftest.err conftest.$ac_objext conftest.beam \
19750
    conftest$ac_exeext conftest.$ac_ext
21235
    conftest$ac_exeext conftest.$ac_ext
19751
fi
21236
fi
19752
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mbrtowc" >&5
21237
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mbrtowc" >&5
19753
$as_echo "$ac_cv_func_mbrtowc" >&6; }
21238
printf "%s\n" "$ac_cv_func_mbrtowc" >&6; }
19754
  if test $ac_cv_func_mbrtowc = yes; then
21239
  if test $ac_cv_func_mbrtowc = yes; then
19755
21240
19756
$as_echo "#define HAVE_MBRTOWC 1" >>confdefs.h
21241
printf "%s\n" "#define HAVE_MBRTOWC 1" >>confdefs.h
19757
21242
19758
  fi
21243
  fi
19759
21244
19760
for ac_func in wcwidth
21245
ac_fn_c_check_func "$LINENO" "wcwidth" "ac_cv_func_wcwidth"
19761
do :
21246
if test "x$ac_cv_func_wcwidth" = xyes
19762
  ac_fn_c_check_func "$LINENO" "wcwidth" "ac_cv_func_wcwidth"
21247
then :
19763
if test "x$ac_cv_func_wcwidth" = xyes; then :
21248
  printf "%s\n" "#define HAVE_WCWIDTH 1" >>confdefs.h
19764
  cat >>confdefs.h <<_ACEOF
19765
#define HAVE_WCWIDTH 1
19766
_ACEOF
19767
21249
19768
fi
21250
fi
19769
done
19770
21251
19771
21252
19772
21253
Lines 19787-19810 Link Here
19787
sha256_header_found=no
21268
sha256_header_found=no
19788
sha256_type_found=no
21269
sha256_type_found=no
19789
sha256_func_found=no
21270
sha256_func_found=no
19790
if test "x$enable_external_sha256" = "xyes"; then
21271
if test "x$enable_external_sha256" = "xyes"
21272
then :
21273
19791
	# Test for Common Crypto before others, because Darwin has sha256.h
21274
	# Test for Common Crypto before others, because Darwin has sha256.h
19792
	# too and we don't want to use that, because on older versions it
21275
	# too and we don't want to use that, because on older versions it
19793
	# uses OpenSSL functions, whose SHA256_Init is not guaranteed to
21276
	# uses OpenSSL functions, whose SHA256_Init is not guaranteed to
19794
	# succeed.
21277
	# succeed.
19795
	for ac_header in CommonCrypto/CommonDigest.h sha256.h sha2.h
21278
	       for ac_header in CommonCrypto/CommonDigest.h sha256.h sha2.h
19796
do :
21279
do :
19797
  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
21280
  as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh`
19798
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
21281
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
19799
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
21282
if eval test \"x\$"$as_ac_Header"\" = x"yes"
21283
then :
19800
  cat >>confdefs.h <<_ACEOF
21284
  cat >>confdefs.h <<_ACEOF
19801
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
21285
#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1
19802
_ACEOF
21286
_ACEOF
19803
 sha256_header_found=yes ; break
21287
 sha256_header_found=yes ; break
19804
fi
21288
fi
19805
21289
19806
done
21290
done
19807
19808
	if test "x$sha256_header_found" = xyes; then
21291
	if test "x$sha256_header_found" = xyes; then
19809
		ac_fn_c_check_type "$LINENO" "CC_SHA256_CTX" "ac_cv_type_CC_SHA256_CTX" "#ifdef HAVE_SYS_TYPES_H
21292
		ac_fn_c_check_type "$LINENO" "CC_SHA256_CTX" "ac_cv_type_CC_SHA256_CTX" "#ifdef HAVE_SYS_TYPES_H
19810
			  # include <sys/types.h>
21293
			  # include <sys/types.h>
Lines 19819-19829 Link Here
19819
			  # include <sha2.h>
21302
			  # include <sha2.h>
19820
			  #endif
21303
			  #endif
19821
"
21304
"
19822
if test "x$ac_cv_type_CC_SHA256_CTX" = xyes; then :
21305
if test "x$ac_cv_type_CC_SHA256_CTX" = xyes
21306
then :
19823
21307
19824
cat >>confdefs.h <<_ACEOF
21308
printf "%s\n" "#define HAVE_CC_SHA256_CTX 1" >>confdefs.h
19825
#define HAVE_CC_SHA256_CTX 1
19826
_ACEOF
19827
21309
19828
sha256_type_found=yes
21310
sha256_type_found=yes
19829
fi
21311
fi
Lines 19840-19850 Link Here
19840
			  # include <sha2.h>
21322
			  # include <sha2.h>
19841
			  #endif
21323
			  #endif
19842
"
21324
"
19843
if test "x$ac_cv_type_SHA256_CTX" = xyes; then :
21325
if test "x$ac_cv_type_SHA256_CTX" = xyes
21326
then :
19844
21327
19845
cat >>confdefs.h <<_ACEOF
21328
printf "%s\n" "#define HAVE_SHA256_CTX 1" >>confdefs.h
19846
#define HAVE_SHA256_CTX 1
19847
_ACEOF
19848
21329
19849
sha256_type_found=yes
21330
sha256_type_found=yes
19850
fi
21331
fi
Lines 19861-19881 Link Here
19861
			  # include <sha2.h>
21342
			  # include <sha2.h>
19862
			  #endif
21343
			  #endif
19863
"
21344
"
19864
if test "x$ac_cv_type_SHA2_CTX" = xyes; then :
21345
if test "x$ac_cv_type_SHA2_CTX" = xyes
21346
then :
19865
21347
19866
cat >>confdefs.h <<_ACEOF
21348
printf "%s\n" "#define HAVE_SHA2_CTX 1" >>confdefs.h
19867
#define HAVE_SHA2_CTX 1
19868
_ACEOF
19869
21349
19870
sha256_type_found=yes
21350
sha256_type_found=yes
19871
fi
21351
fi
19872
21352
19873
		if test "x$sha256_type_found" = xyes ; then
21353
		if test "x$sha256_type_found" = xyes ; then
19874
			{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing SHA256Init" >&5
21354
			{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing SHA256Init" >&5
19875
$as_echo_n "checking for library containing SHA256Init... " >&6; }
21355
printf %s "checking for library containing SHA256Init... " >&6; }
19876
if ${ac_cv_search_SHA256Init+:} false; then :
21356
if test ${ac_cv_search_SHA256Init+y}
19877
  $as_echo_n "(cached) " >&6
21357
then :
19878
else
21358
  printf %s "(cached) " >&6
21359
else $as_nop
19879
  ac_func_search_save_LIBS=$LIBS
21360
  ac_func_search_save_LIBS=$LIBS
19880
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21361
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
19881
/* end confdefs.h.  */
21362
/* end confdefs.h.  */
Lines 19883-19937 Link Here
19883
/* Override any GCC internal prototype to avoid an error.
21364
/* Override any GCC internal prototype to avoid an error.
19884
   Use char because int might match the return type of a GCC
21365
   Use char because int might match the return type of a GCC
19885
   builtin and then its argument prototype would still apply.  */
21366
   builtin and then its argument prototype would still apply.  */
19886
#ifdef __cplusplus
19887
extern "C"
19888
#endif
19889
char SHA256Init ();
21367
char SHA256Init ();
19890
int
21368
int
19891
main ()
21369
main (void)
19892
{
21370
{
19893
return SHA256Init ();
21371
return SHA256Init ();
19894
  ;
21372
  ;
19895
  return 0;
21373
  return 0;
19896
}
21374
}
19897
_ACEOF
21375
_ACEOF
19898
for ac_lib in '' md; do
21376
for ac_lib in '' md
21377
do
19899
  if test -z "$ac_lib"; then
21378
  if test -z "$ac_lib"; then
19900
    ac_res="none required"
21379
    ac_res="none required"
19901
  else
21380
  else
19902
    ac_res=-l$ac_lib
21381
    ac_res=-l$ac_lib
19903
    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
21382
    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
19904
  fi
21383
  fi
19905
  if ac_fn_c_try_link "$LINENO"; then :
21384
  if ac_fn_c_try_link "$LINENO"
21385
then :
19906
  ac_cv_search_SHA256Init=$ac_res
21386
  ac_cv_search_SHA256Init=$ac_res
19907
fi
21387
fi
19908
rm -f core conftest.err conftest.$ac_objext \
21388
rm -f core conftest.err conftest.$ac_objext conftest.beam \
19909
    conftest$ac_exeext
21389
    conftest$ac_exeext
19910
  if ${ac_cv_search_SHA256Init+:} false; then :
21390
  if test ${ac_cv_search_SHA256Init+y}
21391
then :
19911
  break
21392
  break
19912
fi
21393
fi
19913
done
21394
done
19914
if ${ac_cv_search_SHA256Init+:} false; then :
21395
if test ${ac_cv_search_SHA256Init+y}
21396
then :
19915
21397
19916
else
21398
else $as_nop
19917
  ac_cv_search_SHA256Init=no
21399
  ac_cv_search_SHA256Init=no
19918
fi
21400
fi
19919
rm conftest.$ac_ext
21401
rm conftest.$ac_ext
19920
LIBS=$ac_func_search_save_LIBS
21402
LIBS=$ac_func_search_save_LIBS
19921
fi
21403
fi
19922
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_SHA256Init" >&5
21404
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_SHA256Init" >&5
19923
$as_echo "$ac_cv_search_SHA256Init" >&6; }
21405
printf "%s\n" "$ac_cv_search_SHA256Init" >&6; }
19924
ac_res=$ac_cv_search_SHA256Init
21406
ac_res=$ac_cv_search_SHA256Init
19925
if test "$ac_res" != no; then :
21407
if test "$ac_res" != no
21408
then :
19926
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
21409
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
19927
21410
19928
fi
21411
fi
19929
21412
19930
			{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing SHA256_Init" >&5
21413
			{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing SHA256_Init" >&5
19931
$as_echo_n "checking for library containing SHA256_Init... " >&6; }
21414
printf %s "checking for library containing SHA256_Init... " >&6; }
19932
if ${ac_cv_search_SHA256_Init+:} false; then :
21415
if test ${ac_cv_search_SHA256_Init+y}
19933
  $as_echo_n "(cached) " >&6
21416
then :
19934
else
21417
  printf %s "(cached) " >&6
21418
else $as_nop
19935
  ac_func_search_save_LIBS=$LIBS
21419
  ac_func_search_save_LIBS=$LIBS
19936
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21420
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
19937
/* end confdefs.h.  */
21421
/* end confdefs.h.  */
Lines 19939-20002 Link Here
19939
/* Override any GCC internal prototype to avoid an error.
21423
/* Override any GCC internal prototype to avoid an error.
19940
   Use char because int might match the return type of a GCC
21424
   Use char because int might match the return type of a GCC
19941
   builtin and then its argument prototype would still apply.  */
21425
   builtin and then its argument prototype would still apply.  */
19942
#ifdef __cplusplus
19943
extern "C"
19944
#endif
19945
char SHA256_Init ();
21426
char SHA256_Init ();
19946
int
21427
int
19947
main ()
21428
main (void)
19948
{
21429
{
19949
return SHA256_Init ();
21430
return SHA256_Init ();
19950
  ;
21431
  ;
19951
  return 0;
21432
  return 0;
19952
}
21433
}
19953
_ACEOF
21434
_ACEOF
19954
for ac_lib in '' md; do
21435
for ac_lib in '' md
21436
do
19955
  if test -z "$ac_lib"; then
21437
  if test -z "$ac_lib"; then
19956
    ac_res="none required"
21438
    ac_res="none required"
19957
  else
21439
  else
19958
    ac_res=-l$ac_lib
21440
    ac_res=-l$ac_lib
19959
    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
21441
    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
19960
  fi
21442
  fi
19961
  if ac_fn_c_try_link "$LINENO"; then :
21443
  if ac_fn_c_try_link "$LINENO"
21444
then :
19962
  ac_cv_search_SHA256_Init=$ac_res
21445
  ac_cv_search_SHA256_Init=$ac_res
19963
fi
21446
fi
19964
rm -f core conftest.err conftest.$ac_objext \
21447
rm -f core conftest.err conftest.$ac_objext conftest.beam \
19965
    conftest$ac_exeext
21448
    conftest$ac_exeext
19966
  if ${ac_cv_search_SHA256_Init+:} false; then :
21449
  if test ${ac_cv_search_SHA256_Init+y}
21450
then :
19967
  break
21451
  break
19968
fi
21452
fi
19969
done
21453
done
19970
if ${ac_cv_search_SHA256_Init+:} false; then :
21454
if test ${ac_cv_search_SHA256_Init+y}
21455
then :
19971
21456
19972
else
21457
else $as_nop
19973
  ac_cv_search_SHA256_Init=no
21458
  ac_cv_search_SHA256_Init=no
19974
fi
21459
fi
19975
rm conftest.$ac_ext
21460
rm conftest.$ac_ext
19976
LIBS=$ac_func_search_save_LIBS
21461
LIBS=$ac_func_search_save_LIBS
19977
fi
21462
fi
19978
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_SHA256_Init" >&5
21463
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_SHA256_Init" >&5
19979
$as_echo "$ac_cv_search_SHA256_Init" >&6; }
21464
printf "%s\n" "$ac_cv_search_SHA256_Init" >&6; }
19980
ac_res=$ac_cv_search_SHA256_Init
21465
ac_res=$ac_cv_search_SHA256_Init
19981
if test "$ac_res" != no; then :
21466
if test "$ac_res" != no
21467
then :
19982
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
21468
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
19983
21469
19984
fi
21470
fi
19985
21471
19986
			for ac_func in CC_SHA256_Init SHA256Init SHA256_Init
21472
21473
  for ac_func in CC_SHA256_Init SHA256Init SHA256_Init
19987
do :
21474
do :
19988
  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
21475
  as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh`
19989
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
21476
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
19990
if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
21477
if eval test \"x\$"$as_ac_var"\" = x"yes"
21478
then :
19991
  cat >>confdefs.h <<_ACEOF
21479
  cat >>confdefs.h <<_ACEOF
19992
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
21480
#define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1
19993
_ACEOF
21481
_ACEOF
19994
 sha256_func_found=yes ; break
21482
 sha256_func_found=yes ; break
19995
fi
21483
fi
19996
done
19997
21484
21485
done
19998
		fi
21486
		fi
19999
	fi
21487
	fi
21488
20000
fi
21489
fi
20001
 if test "x$sha256_func_found" = xno; then
21490
 if test "x$sha256_func_found" = xno; then
20002
  COND_INTERNAL_SHA256_TRUE=
21491
  COND_INTERNAL_SHA256_TRUE=
Lines 20010-20057 Link Here
20010
	as_fn_error $? "--enable-external-sha256 was specified but no supported external SHA-256 implementation was found" "$LINENO" 5
21499
	as_fn_error $? "--enable-external-sha256 was specified but no supported external SHA-256 implementation was found" "$LINENO" 5
20011
fi
21500
fi
20012
21501
20013
# Check for SSE2 intrinsics.
21502
# Check for SSE2 intrinsics. There is no run-time detection for SSE2 so if
20014
ac_fn_c_check_decl "$LINENO" "_mm_movemask_epi8" "ac_cv_have_decl__mm_movemask_epi8" "#ifdef HAVE_IMMINTRIN_H
21503
# compiler options enable SSE2 then SSE2 support is required by the binaries.
21504
# The compile-time check for SSE2 is done with #ifdefs because some compilers
21505
# (ICC, MSVC) allow SSE2 intrinsics even when SSE2 isn't enabled.
21506
ac_fn_check_decl "$LINENO" "_mm_movemask_epi8" "ac_cv_have_decl__mm_movemask_epi8" "#ifdef HAVE_IMMINTRIN_H
20015
#include <immintrin.h>
21507
#include <immintrin.h>
20016
#endif
21508
#endif
20017
"
21509
" "$ac_c_undeclared_builtin_options" "CFLAGS"
20018
if test "x$ac_cv_have_decl__mm_movemask_epi8" = xyes; then :
21510
if test "x$ac_cv_have_decl__mm_movemask_epi8" = xyes
21511
then :
20019
21512
20020
$as_echo "#define HAVE__MM_MOVEMASK_EPI8 1" >>confdefs.h
21513
printf "%s\n" "#define HAVE__MM_MOVEMASK_EPI8 1" >>confdefs.h
20021
21514
20022
fi
21515
fi
20023
21516
21517
# For faster CRC on 32/64-bit x86 and E2K (see also crc64_fast.c):
21518
#
21519
#   - Check for the CLMUL intrinsic _mm_clmulepi64_si128 in <immintrin.h>.
21520
#     Check also for _mm_set_epi64x for consistency with CMake build
21521
#     where it's needed to disable CLMUL with VS2013.
21522
#
21523
#   - Check that __attribute__((__target__("ssse3,sse4.1,pclmul"))) works
21524
#     together with _mm_clmulepi64_si128 from <immintrin.h>. The attribute
21525
#     was added in GCC 4.4 but some GCC 4.x versions don't allow intrinsics
21526
#     with it. Exception: it must be not be used with EDG-based compilers
21527
#     like ICC and the compiler on E2K.
21528
#
21529
# If everything above is supported, runtime detection will be used to keep the
21530
# binaries working on systems that don't support the required extensions.
21531
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if _mm_clmulepi64_si128 is usable" >&5
21532
printf %s "checking if _mm_clmulepi64_si128 is usable... " >&6; }
21533
if test "x$enable_clmul_crc" = xno
21534
then :
20024
21535
21536
	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, --disable-clmul-crc was used" >&5
21537
printf "%s\n" "no, --disable-clmul-crc was used" >&6; }
21538
21539
else $as_nop
21540
21541
	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21542
/* end confdefs.h.  */
21543
21544
#include <immintrin.h>
21545
21546
// CLMUL works on older E2K instruction set but it is slow due to emulation.
21547
#if defined(__e2k__) && __iset__ < 6
21548
#	error
21549
#endif
21550
21551
// Intel's old compiler (ICC) can define __GNUC__ but the attribute must not
21552
// be used with it. The new Clang-based ICX needs the attribute.
21553
// Checking for !defined(__EDG__) catches ICC and other EDG-based compilers.
21554
#if (defined(__GNUC__) || defined(__clang__)) && !defined(__EDG__)
21555
__attribute__((__target__("ssse3,sse4.1,pclmul")))
21556
#endif
21557
__m128i my_clmul(__m128i a)
21558
{
21559
	const __m128i b = _mm_set_epi64x(1, 2);
21560
	return _mm_clmulepi64_si128(a, b, 0);
21561
}
21562
21563
_ACEOF
21564
if ac_fn_c_try_compile "$LINENO"
21565
then :
21566
21567
21568
printf "%s\n" "#define HAVE_USABLE_CLMUL 1" >>confdefs.h
21569
21570
		{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
21571
printf "%s\n" "yes" >&6; }
21572
21573
else $as_nop
21574
21575
		{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
21576
printf "%s\n" "no" >&6; }
21577
21578
fi
21579
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
21580
21581
fi
21582
20025
# Check for sandbox support. If one is found, set enable_sandbox=found.
21583
# Check for sandbox support. If one is found, set enable_sandbox=found.
20026
case $enable_sandbox in
21584
case $enable_sandbox in #(
20027
	auto | capsicum)
21585
  auto | capsicum) :
20028
21586
21587
20029
# On FreeBSD >= 11.x and Linux, Capsicum is uses <sys/capsicum.h>.
21588
# On FreeBSD >= 11.x and Linux, Capsicum is uses <sys/capsicum.h>.
20030
# If this header is found, it is assumed to be the right one.
21589
# If this header is found, it is assumed to be the right one.
20031
capsicum_header_found=no
21590
capsicum_header_found=no
20032
for ac_header in sys/capsicum.h
21591
       for ac_header in sys/capsicum.h
20033
do :
21592
do :
20034
  ac_fn_c_check_header_mongrel "$LINENO" "sys/capsicum.h" "ac_cv_header_sys_capsicum_h" "$ac_includes_default"
21593
  ac_fn_c_check_header_compile "$LINENO" "sys/capsicum.h" "ac_cv_header_sys_capsicum_h" "$ac_includes_default"
20035
if test "x$ac_cv_header_sys_capsicum_h" = xyes; then :
21594
if test "x$ac_cv_header_sys_capsicum_h" = xyes
20036
  cat >>confdefs.h <<_ACEOF
21595
then :
20037
#define HAVE_SYS_CAPSICUM_H 1
21596
  printf "%s\n" "#define HAVE_SYS_CAPSICUM_H 1" >>confdefs.h
20038
_ACEOF
20039
 capsicum_header_found=yes
21597
 capsicum_header_found=yes
20040
fi
21598
fi
20041
21599
20042
done
21600
done
20043
20044
if test "$capsicum_header_found" = no ; then
21601
if test "$capsicum_header_found" = no ; then
20045
    # On FreeBSD 10.x Capsicum uses <sys/capability.h>. Such a header exists
21602
    # On FreeBSD 10.x Capsicum uses <sys/capability.h>. Such a header exists
20046
    # on Linux too but it describes POSIX.1e capabilities. Look for the
21603
    # on Linux too but it describes POSIX.1e capabilities. Look for the
20047
    # declaration of cap_rights_limit to check if <sys/capability.h> is
21604
    # declaration of cap_rights_limit to check if <sys/capability.h> is
20048
    # a Capsicum header.
21605
    # a Capsicum header.
20049
    ac_fn_c_check_decl "$LINENO" "cap_rights_limit" "ac_cv_have_decl_cap_rights_limit" "#include <sys/capability.h>
21606
    ac_fn_check_decl "$LINENO" "cap_rights_limit" "ac_cv_have_decl_cap_rights_limit" "#include <sys/capability.h>
20050
"
21607
" "$ac_c_undeclared_builtin_options" "CFLAGS"
20051
if test "x$ac_cv_have_decl_cap_rights_limit" = xyes; then :
21608
if test "x$ac_cv_have_decl_cap_rights_limit" = xyes
21609
then :
20052
  capsicum_header_found=yes
21610
  capsicum_header_found=yes
20053
fi
21611
fi
20054
20055
fi
21612
fi
20056
21613
20057
capsicum_lib_found=no
21614
capsicum_lib_found=no
Lines 20070-20098 Link Here
20070
/* Override any GCC internal prototype to avoid an error.
21627
/* Override any GCC internal prototype to avoid an error.
20071
   Use char because int might match the return type of a GCC
21628
   Use char because int might match the return type of a GCC
20072
   builtin and then its argument prototype would still apply.  */
21629
   builtin and then its argument prototype would still apply.  */
20073
#ifdef __cplusplus
20074
extern "C"
20075
#endif
20076
char cap_rights_limit ();
21630
char cap_rights_limit ();
20077
int
21631
int
20078
main ()
21632
main (void)
20079
{
21633
{
20080
return cap_rights_limit ();
21634
return cap_rights_limit ();
20081
  ;
21635
  ;
20082
  return 0;
21636
  return 0;
20083
}
21637
}
20084
_ACEOF
21638
_ACEOF
20085
if ac_fn_c_try_link "$LINENO"; then :
21639
if ac_fn_c_try_link "$LINENO"
21640
then :
20086
  capsicum_lib_found=yes
21641
  capsicum_lib_found=yes
20087
fi
21642
fi
20088
rm -f core conftest.err conftest.$ac_objext \
21643
rm -f core conftest.err conftest.$ac_objext conftest.beam \
20089
    conftest$ac_exeext conftest.$ac_ext
21644
    conftest$ac_exeext conftest.$ac_ext
20090
    # Linux has Capsicum functions in libcaprights.
21645
    # Linux has Capsicum functions in libcaprights.
20091
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cap_rights_limit in -lcaprights" >&5
21646
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for cap_rights_limit in -lcaprights" >&5
20092
$as_echo_n "checking for cap_rights_limit in -lcaprights... " >&6; }
21647
printf %s "checking for cap_rights_limit in -lcaprights... " >&6; }
20093
if ${ac_cv_lib_caprights_cap_rights_limit+:} false; then :
21648
if test ${ac_cv_lib_caprights_cap_rights_limit+y}
20094
  $as_echo_n "(cached) " >&6
21649
then :
20095
else
21650
  printf %s "(cached) " >&6
21651
else $as_nop
20096
  ac_check_lib_save_LIBS=$LIBS
21652
  ac_check_lib_save_LIBS=$LIBS
20097
LIBS="-lcaprights  $LIBS"
21653
LIBS="-lcaprights  $LIBS"
20098
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21654
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Lines 20101-20130 Link Here
20101
/* Override any GCC internal prototype to avoid an error.
21657
/* Override any GCC internal prototype to avoid an error.
20102
   Use char because int might match the return type of a GCC
21658
   Use char because int might match the return type of a GCC
20103
   builtin and then its argument prototype would still apply.  */
21659
   builtin and then its argument prototype would still apply.  */
20104
#ifdef __cplusplus
20105
extern "C"
20106
#endif
20107
char cap_rights_limit ();
21660
char cap_rights_limit ();
20108
int
21661
int
20109
main ()
21662
main (void)
20110
{
21663
{
20111
return cap_rights_limit ();
21664
return cap_rights_limit ();
20112
  ;
21665
  ;
20113
  return 0;
21666
  return 0;
20114
}
21667
}
20115
_ACEOF
21668
_ACEOF
20116
if ac_fn_c_try_link "$LINENO"; then :
21669
if ac_fn_c_try_link "$LINENO"
21670
then :
20117
  ac_cv_lib_caprights_cap_rights_limit=yes
21671
  ac_cv_lib_caprights_cap_rights_limit=yes
20118
else
21672
else $as_nop
20119
  ac_cv_lib_caprights_cap_rights_limit=no
21673
  ac_cv_lib_caprights_cap_rights_limit=no
20120
fi
21674
fi
20121
rm -f core conftest.err conftest.$ac_objext \
21675
rm -f core conftest.err conftest.$ac_objext conftest.beam \
20122
    conftest$ac_exeext conftest.$ac_ext
21676
    conftest$ac_exeext conftest.$ac_ext
20123
LIBS=$ac_check_lib_save_LIBS
21677
LIBS=$ac_check_lib_save_LIBS
20124
fi
21678
fi
20125
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_caprights_cap_rights_limit" >&5
21679
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_caprights_cap_rights_limit" >&5
20126
$as_echo "$ac_cv_lib_caprights_cap_rights_limit" >&6; }
21680
printf "%s\n" "$ac_cv_lib_caprights_cap_rights_limit" >&6; }
20127
if test "x$ac_cv_lib_caprights_cap_rights_limit" = xyes; then :
21681
if test "x$ac_cv_lib_caprights_cap_rights_limit" = xyes
21682
then :
20128
  CAPSICUM_LIB=-lcaprights
21683
  CAPSICUM_LIB=-lcaprights
20129
                  capsicum_lib_found=yes
21684
                  capsicum_lib_found=yes
20130
fi
21685
fi
Lines 20140-20154 Link Here
20140
21695
20141
if test "$capsicum_lib_found" = yes ; then
21696
if test "$capsicum_lib_found" = yes ; then
20142
21697
20143
$as_echo "#define HAVE_CAPSICUM 1" >>confdefs.h
21698
printf "%s\n" "#define HAVE_CAPSICUM 1" >>confdefs.h
20144
21699
20145
    enable_sandbox=found
21700
    enable_sandbox=found
20146
else
21701
else
20147
    :
21702
    :
20148
fi
21703
fi
20149
		;;
21704
21705
 ;; #(
21706
  *) :
21707
     ;;
20150
esac
21708
esac
21709
case $enable_sandbox in #(
21710
  auto | pledge) :
20151
21711
21712
21713
  for ac_func in pledge
21714
do :
21715
  ac_fn_c_check_func "$LINENO" "pledge" "ac_cv_func_pledge"
21716
if test "x$ac_cv_func_pledge" = xyes
21717
then :
21718
  printf "%s\n" "#define HAVE_PLEDGE 1" >>confdefs.h
21719
 enable_sandbox=found ; break
21720
fi
21721
21722
done
21723
21724
 ;; #(
21725
  *) :
21726
     ;;
21727
esac
21728
20152
# If a specific sandboxing method was explicitly requested and it wasn't
21729
# If a specific sandboxing method was explicitly requested and it wasn't
20153
# found, give an error.
21730
# found, give an error.
20154
case $enable_sandbox in
21731
case $enable_sandbox in
Lines 20176-20215 Link Here
20176
  CFLAG_VISIBILITY=
21753
  CFLAG_VISIBILITY=
20177
  HAVE_VISIBILITY=0
21754
  HAVE_VISIBILITY=0
20178
  if test -n "$GCC"; then
21755
  if test -n "$GCC"; then
20179
                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the -Werror option is usable" >&5
21756
                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the -Werror option is usable" >&5
20180
$as_echo_n "checking whether the -Werror option is usable... " >&6; }
21757
printf %s "checking whether the -Werror option is usable... " >&6; }
20181
if ${gl_cv_cc_vis_werror+:} false; then :
21758
if test ${gl_cv_cc_vis_werror+y}
20182
  $as_echo_n "(cached) " >&6
21759
then :
20183
else
21760
  printf %s "(cached) " >&6
21761
else $as_nop
20184
  gl_save_CFLAGS="$CFLAGS"
21762
  gl_save_CFLAGS="$CFLAGS"
20185
       CFLAGS="$CFLAGS -Werror"
21763
       CFLAGS="$CFLAGS -Werror"
20186
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21764
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20187
/* end confdefs.h.  */
21765
/* end confdefs.h.  */
20188
21766
20189
int
21767
int
20190
main ()
21768
main (void)
20191
{
21769
{
20192
21770
20193
  ;
21771
  ;
20194
  return 0;
21772
  return 0;
20195
}
21773
}
20196
_ACEOF
21774
_ACEOF
20197
if ac_fn_c_try_compile "$LINENO"; then :
21775
if ac_fn_c_try_compile "$LINENO"
21776
then :
20198
  gl_cv_cc_vis_werror=yes
21777
  gl_cv_cc_vis_werror=yes
20199
else
21778
else $as_nop
20200
  gl_cv_cc_vis_werror=no
21779
  gl_cv_cc_vis_werror=no
20201
fi
21780
fi
20202
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
21781
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
20203
       CFLAGS="$gl_save_CFLAGS"
21782
       CFLAGS="$gl_save_CFLAGS"
20204
21783
20205
fi
21784
fi
20206
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5
21785
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5
20207
$as_echo "$gl_cv_cc_vis_werror" >&6; }
21786
printf "%s\n" "$gl_cv_cc_vis_werror" >&6; }
20208
        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for simple visibility declarations" >&5
21787
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for simple visibility declarations" >&5
20209
$as_echo_n "checking for simple visibility declarations... " >&6; }
21788
printf %s "checking for simple visibility declarations... " >&6; }
20210
if ${gl_cv_cc_visibility+:} false; then :
21789
if test ${gl_cv_cc_visibility+y}
20211
  $as_echo_n "(cached) " >&6
21790
then :
20212
else
21791
  printf %s "(cached) " >&6
21792
else $as_nop
20213
  gl_save_CFLAGS="$CFLAGS"
21793
  gl_save_CFLAGS="$CFLAGS"
20214
       CFLAGS="$CFLAGS -fvisibility=hidden"
21794
       CFLAGS="$CFLAGS -fvisibility=hidden"
20215
                                          if test $gl_cv_cc_vis_werror = yes; then
21795
                                          if test $gl_cv_cc_vis_werror = yes; then
Lines 20224-20247 Link Here
20224
              void dummyfunc (void) {}
21804
              void dummyfunc (void) {}
20225
21805
20226
int
21806
int
20227
main ()
21807
main (void)
20228
{
21808
{
20229
21809
20230
  ;
21810
  ;
20231
  return 0;
21811
  return 0;
20232
}
21812
}
20233
_ACEOF
21813
_ACEOF
20234
if ac_fn_c_try_compile "$LINENO"; then :
21814
if ac_fn_c_try_compile "$LINENO"
21815
then :
20235
  gl_cv_cc_visibility=yes
21816
  gl_cv_cc_visibility=yes
20236
else
21817
else $as_nop
20237
  gl_cv_cc_visibility=no
21818
  gl_cv_cc_visibility=no
20238
fi
21819
fi
20239
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
21820
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
20240
       CFLAGS="$gl_save_CFLAGS"
21821
       CFLAGS="$gl_save_CFLAGS"
20241
21822
20242
fi
21823
fi
20243
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5
21824
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5
20244
$as_echo "$gl_cv_cc_visibility" >&6; }
21825
printf "%s\n" "$gl_cv_cc_visibility" >&6; }
20245
    if test $gl_cv_cc_visibility = yes; then
21826
    if test $gl_cv_cc_visibility = yes; then
20246
      CFLAG_VISIBILITY="-fvisibility=hidden"
21827
      CFLAG_VISIBILITY="-fvisibility=hidden"
20247
      HAVE_VISIBILITY=1
21828
      HAVE_VISIBILITY=1
Lines 20250-20334 Link Here
20250
21831
20251
21832
20252
21833
20253
cat >>confdefs.h <<_ACEOF
21834
printf "%s\n" "#define HAVE_VISIBILITY $HAVE_VISIBILITY" >>confdefs.h
20254
#define HAVE_VISIBILITY $HAVE_VISIBILITY
20255
_ACEOF
20256
21835
20257
21836
20258
if test -n "$CFLAG_VISIBILITY" && test "$is_w32" = no; then
21837
if test -n "$CFLAG_VISIBILITY" && test "$is_w32" = no; then
20259
	AM_CFLAGS="$AM_CFLAGS $CFLAG_VISIBILITY"
21838
	AM_CFLAGS="$AM_CFLAGS $CFLAG_VISIBILITY"
20260
fi
21839
fi
20261
21840
20262
if test "$GCC" = yes ; then
21841
if test "$GCC" = yes
21842
then :
21843
20263
	# Enable as much warnings as possible. These commented warnings won't
21844
	# Enable as much warnings as possible. These commented warnings won't
20264
	# work for this package though:
21845
	# work for this package though:
20265
	#   * -Wunreachable-code breaks several assert(0) cases, which are
21846
	#   * -Wunreachable-code breaks several assert(0) cases, which are
20266
	#     backed up with "return LZMA_PROG_ERROR".
21847
	#     backed up with "return LZMA_PROG_ERROR".
20267
	#   * -Wcast-qual would break various things where we need a non-const
21848
	#   * -Wcast-qual would break various things where we need a non-const
20268
	#     pointer although we don't modify anything through it.
21849
	#     pointer although we don't modify anything through it.
20269
	#   * -Wcast-align breaks optimized CRC32 and CRC64 implementation
20270
	#     on some architectures (not on x86), where this warning is bogus,
20271
	#     because we take care of correct alignment.
20272
	#   * -Winline, -Wdisabled-optimization, -Wunsafe-loop-optimizations
21850
	#   * -Winline, -Wdisabled-optimization, -Wunsafe-loop-optimizations
20273
	#     don't seem so useful here; at least the last one gives some
21851
	#     don't seem so useful here; at least the last one gives some
20274
	#     warnings which are not bugs.
21852
	#     warnings which are not bugs.
21853
	#   * -Wconversion still shows too many warnings.
21854
	#
21855
	# The flags before the empty line are for GCC and many of them
21856
	# are supported by Clang too. The flags after the empty line are
21857
	# for Clang.
20275
	for NEW_FLAG in \
21858
	for NEW_FLAG in \
20276
			-Wall \
21859
			-Wall \
20277
			-Wextra \
21860
			-Wextra \
20278
			-Wvla \
21861
			-Wvla \
21862
			-Wc99-c11-compat \
20279
			-Wformat=2 \
21863
			-Wformat=2 \
20280
			-Winit-self \
21864
			-Winit-self \
20281
			-Wmissing-include-dirs \
21865
			-Wmissing-include-dirs \
20282
			-Wstrict-aliasing \
21866
			-Wshift-overflow=2 \
21867
			-Wstrict-overflow=3 \
21868
			-Walloc-zero \
21869
			-Wduplicated-cond \
20283
			-Wfloat-equal \
21870
			-Wfloat-equal \
20284
			-Wundef \
21871
			-Wundef \
20285
			-Wshadow \
21872
			-Wshadow \
20286
			-Wpointer-arith \
21873
			-Wpointer-arith \
20287
			-Wbad-function-cast \
21874
			-Wbad-function-cast \
20288
			-Wwrite-strings \
21875
			-Wwrite-strings \
21876
			-Wdate-time \
21877
			-Wsign-conversion \
21878
			-Wfloat-conversion \
20289
			-Wlogical-op \
21879
			-Wlogical-op \
20290
			-Waggregate-return \
21880
			-Waggregate-return \
20291
			-Wstrict-prototypes \
21881
			-Wstrict-prototypes \
20292
			-Wold-style-definition \
21882
			-Wold-style-definition \
20293
			-Wmissing-prototypes \
21883
			-Wmissing-prototypes \
20294
			-Wmissing-declarations \
21884
			-Wmissing-declarations \
20295
			-Wmissing-noreturn \
21885
			-Wredundant-decls \
20296
			-Wredundant-decls
21886
			\
21887
			-Wc99-compat \
21888
			-Wc11-extensions \
21889
			-Wc2x-compat \
21890
			-Wc2x-extensions \
21891
			-Wpre-c2x-compat \
21892
			-Warray-bounds-pointer-arithmetic \
21893
			-Wassign-enum \
21894
			-Wconditional-uninitialized \
21895
			-Wdocumentation \
21896
			-Wduplicate-enum \
21897
			-Wempty-translation-unit \
21898
			-Wflexible-array-extensions \
21899
			-Wmissing-variable-declarations \
21900
			-Wnewline-eof \
21901
			-Wshift-sign-overflow \
21902
			-Wstring-conversion
20297
	do
21903
	do
20298
		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts $NEW_FLAG" >&5
21904
		{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC accepts $NEW_FLAG" >&5
20299
$as_echo_n "checking if $CC accepts $NEW_FLAG... " >&6; }
21905
printf %s "checking if $CC accepts $NEW_FLAG... " >&6; }
20300
		OLD_CFLAGS="$CFLAGS"
21906
		OLD_CFLAGS="$CFLAGS"
20301
		CFLAGS="$CFLAGS $NEW_FLAG -Werror"
21907
		CFLAGS="$CFLAGS $NEW_FLAG -Werror"
20302
		cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21908
		cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20303
/* end confdefs.h.  */
21909
/* end confdefs.h.  */
20304
void foo(void); void foo(void) { }
21910
void foo(void); void foo(void) { }
20305
_ACEOF
21911
_ACEOF
20306
if ac_fn_c_try_compile "$LINENO"; then :
21912
if ac_fn_c_try_compile "$LINENO"
21913
then :
20307
21914
20308
			AM_CFLAGS="$AM_CFLAGS $NEW_FLAG"
21915
			AM_CFLAGS="$AM_CFLAGS $NEW_FLAG"
20309
			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
21916
			{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
20310
$as_echo "yes" >&6; }
21917
printf "%s\n" "yes" >&6; }
20311
21918
20312
else
21919
else $as_nop
20313
21920
20314
			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21921
			{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
20315
$as_echo "no" >&6; }
21922
printf "%s\n" "no" >&6; }
20316
21923
20317
fi
21924
fi
20318
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
21925
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
20319
		CFLAGS="$OLD_CFLAGS"
21926
		CFLAGS="$OLD_CFLAGS"
20320
	done
21927
	done
20321
21928
20322
	# Check whether --enable-werror was given.
21929
	# Check whether --enable-werror was given.
20323
if test "${enable_werror+set}" = set; then :
21930
if test ${enable_werror+y}
21931
then :
20324
  enableval=$enable_werror;
21932
  enableval=$enable_werror;
20325
else
21933
else $as_nop
20326
  enable_werror=no
21934
  enable_werror=no
20327
fi
21935
fi
20328
21936
20329
	if test "x$enable_werror" = "xyes"; then
21937
	if test "x$enable_werror" = "xyes"; then
20330
		AM_CFLAGS="$AM_CFLAGS -Werror"
21938
		AM_CFLAGS="$AM_CFLAGS -Werror"
20331
	fi
21939
	fi
21940
20332
fi
21941
fi
20333
21942
20334
21943
Lines 20356-20362 Link Here
20356
xz=`echo xz | sed "$program_transform_name"`
21965
xz=`echo xz | sed "$program_transform_name"`
20357
21966
20358
21967
20359
ac_config_files="$ac_config_files Doxyfile Makefile po/Makefile.in lib/Makefile src/Makefile src/liblzma/Makefile src/liblzma/api/Makefile src/xz/Makefile src/xzdec/Makefile src/lzmainfo/Makefile src/scripts/Makefile tests/Makefile debug/Makefile"
21968
ac_config_files="$ac_config_files Makefile po/Makefile.in lib/Makefile src/Makefile src/liblzma/Makefile src/liblzma/api/Makefile src/xz/Makefile src/xzdec/Makefile src/lzmainfo/Makefile src/scripts/Makefile tests/Makefile debug/Makefile"
20360
21969
20361
ac_config_files="$ac_config_files src/scripts/xzdiff"
21970
ac_config_files="$ac_config_files src/scripts/xzdiff"
20362
21971
Lines 20394-20401 Link Here
20394
    case $ac_val in #(
22003
    case $ac_val in #(
20395
    *${as_nl}*)
22004
    *${as_nl}*)
20396
      case $ac_var in #(
22005
      case $ac_var in #(
20397
      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
22006
      *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
20398
$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
22007
printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
20399
      esac
22008
      esac
20400
      case $ac_var in #(
22009
      case $ac_var in #(
20401
      _ | IFS | as_nl) ;; #(
22010
      _ | IFS | as_nl) ;; #(
Lines 20425-20439 Link Here
20425
     /^ac_cv_env_/b end
22034
     /^ac_cv_env_/b end
20426
     t clear
22035
     t clear
20427
     :clear
22036
     :clear
20428
     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
22037
     s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/
20429
     t end
22038
     t end
20430
     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
22039
     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
20431
     :end' >>confcache
22040
     :end' >>confcache
20432
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
22041
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
20433
  if test -w "$cache_file"; then
22042
  if test -w "$cache_file"; then
20434
    if test "x$cache_file" != "x/dev/null"; then
22043
    if test "x$cache_file" != "x/dev/null"; then
20435
      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
22044
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
20436
$as_echo "$as_me: updating cache $cache_file" >&6;}
22045
printf "%s\n" "$as_me: updating cache $cache_file" >&6;}
20437
      if test ! -f "$cache_file" || test -h "$cache_file"; then
22046
      if test ! -f "$cache_file" || test -h "$cache_file"; then
20438
	cat confcache >"$cache_file"
22047
	cat confcache >"$cache_file"
20439
      else
22048
      else
Lines 20447-20454 Link Here
20447
      fi
22056
      fi
20448
    fi
22057
    fi
20449
  else
22058
  else
20450
    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
22059
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
20451
$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
22060
printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;}
20452
  fi
22061
  fi
20453
fi
22062
fi
20454
rm -f confcache
22063
rm -f confcache
Lines 20465-20471 Link Here
20465
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
22074
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
20466
  # 1. Remove the extension, and $U if already installed.
22075
  # 1. Remove the extension, and $U if already installed.
20467
  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
22076
  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
20468
  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
22077
  ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"`
20469
  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
22078
  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
20470
  #    will be set to the directory where LIBOBJS objects are built.
22079
  #    will be set to the directory where LIBOBJS objects are built.
20471
  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
22080
  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
Lines 20584-20589 Link Here
20584
  as_fn_error $? "conditional \"COND_DECODER_ARMTHUMB\" was never defined.
22193
  as_fn_error $? "conditional \"COND_DECODER_ARMTHUMB\" was never defined.
20585
Usually this means the macro was only invoked conditionally." "$LINENO" 5
22194
Usually this means the macro was only invoked conditionally." "$LINENO" 5
20586
fi
22195
fi
22196
if test -z "${COND_FILTER_ARM64_TRUE}" && test -z "${COND_FILTER_ARM64_FALSE}"; then
22197
  as_fn_error $? "conditional \"COND_FILTER_ARM64\" was never defined.
22198
Usually this means the macro was only invoked conditionally." "$LINENO" 5
22199
fi
22200
if test -z "${COND_ENCODER_ARM64_TRUE}" && test -z "${COND_ENCODER_ARM64_FALSE}"; then
22201
  as_fn_error $? "conditional \"COND_ENCODER_ARM64\" was never defined.
22202
Usually this means the macro was only invoked conditionally." "$LINENO" 5
22203
fi
22204
if test -z "${COND_DECODER_ARM64_TRUE}" && test -z "${COND_DECODER_ARM64_FALSE}"; then
22205
  as_fn_error $? "conditional \"COND_DECODER_ARM64\" was never defined.
22206
Usually this means the macro was only invoked conditionally." "$LINENO" 5
22207
fi
20587
if test -z "${COND_FILTER_SPARC_TRUE}" && test -z "${COND_FILTER_SPARC_FALSE}"; then
22208
if test -z "${COND_FILTER_SPARC_TRUE}" && test -z "${COND_FILTER_SPARC_FALSE}"; then
20588
  as_fn_error $? "conditional \"COND_FILTER_SPARC\" was never defined.
22209
  as_fn_error $? "conditional \"COND_FILTER_SPARC\" was never defined.
20589
Usually this means the macro was only invoked conditionally." "$LINENO" 5
22210
Usually this means the macro was only invoked conditionally." "$LINENO" 5
Lines 20632-20645 Link Here
20632
  as_fn_error $? "conditional \"COND_CHECK_SHA256\" was never defined.
22253
  as_fn_error $? "conditional \"COND_CHECK_SHA256\" was never defined.
20633
Usually this means the macro was only invoked conditionally." "$LINENO" 5
22254
Usually this means the macro was only invoked conditionally." "$LINENO" 5
20634
fi
22255
fi
20635
if test -z "${COND_ASM_X86_TRUE}" && test -z "${COND_ASM_X86_FALSE}"; then
22256
if test -z "${COND_MICROLZMA_TRUE}" && test -z "${COND_MICROLZMA_FALSE}"; then
20636
  as_fn_error $? "conditional \"COND_ASM_X86\" was never defined.
22257
  as_fn_error $? "conditional \"COND_MICROLZMA\" was never defined.
20637
Usually this means the macro was only invoked conditionally." "$LINENO" 5
22258
Usually this means the macro was only invoked conditionally." "$LINENO" 5
20638
fi
22259
fi
20639
if test -z "${COND_ASM_X86_64_TRUE}" && test -z "${COND_ASM_X86_64_FALSE}"; then
22260
if test -z "${COND_LZIP_DECODER_TRUE}" && test -z "${COND_LZIP_DECODER_FALSE}"; then
20640
  as_fn_error $? "conditional \"COND_ASM_X86_64\" was never defined.
22261
  as_fn_error $? "conditional \"COND_LZIP_DECODER\" was never defined.
20641
Usually this means the macro was only invoked conditionally." "$LINENO" 5
22262
Usually this means the macro was only invoked conditionally." "$LINENO" 5
20642
fi
22263
fi
22264
if test -z "${COND_ASM_X86_TRUE}" && test -z "${COND_ASM_X86_FALSE}"; then
22265
  as_fn_error $? "conditional \"COND_ASM_X86\" was never defined.
22266
Usually this means the macro was only invoked conditionally." "$LINENO" 5
22267
fi
20643
if test -z "${COND_SMALL_TRUE}" && test -z "${COND_SMALL_FALSE}"; then
22268
if test -z "${COND_SMALL_TRUE}" && test -z "${COND_SMALL_FALSE}"; then
20644
  as_fn_error $? "conditional \"COND_SMALL\" was never defined.
22269
  as_fn_error $? "conditional \"COND_SMALL\" was never defined.
20645
Usually this means the macro was only invoked conditionally." "$LINENO" 5
22270
Usually this means the macro was only invoked conditionally." "$LINENO" 5
Lines 20672-20689 Link Here
20672
  as_fn_error $? "conditional \"COND_DOC\" was never defined.
22297
  as_fn_error $? "conditional \"COND_DOC\" was never defined.
20673
Usually this means the macro was only invoked conditionally." "$LINENO" 5
22298
Usually this means the macro was only invoked conditionally." "$LINENO" 5
20674
fi
22299
fi
20675
if test -z "${COND_SYMVERS_TRUE}" && test -z "${COND_SYMVERS_FALSE}"; then
22300
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
20676
  as_fn_error $? "conditional \"COND_SYMVERS\" was never defined.
22301
printf %s "checking that generated files are newer than configure... " >&6; }
20677
Usually this means the macro was only invoked conditionally." "$LINENO" 5
20678
fi
20679
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
20680
$as_echo_n "checking that generated files are newer than configure... " >&6; }
20681
   if test -n "$am_sleep_pid"; then
22302
   if test -n "$am_sleep_pid"; then
20682
     # Hide warnings about reused PIDs.
22303
     # Hide warnings about reused PIDs.
20683
     wait $am_sleep_pid 2>/dev/null
22304
     wait $am_sleep_pid 2>/dev/null
20684
   fi
22305
   fi
20685
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
22306
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5
20686
$as_echo "done" >&6; }
22307
printf "%s\n" "done" >&6; }
20687
 if test -n "$EXEEXT"; then
22308
 if test -n "$EXEEXT"; then
20688
  am__EXEEXT_TRUE=
22309
  am__EXEEXT_TRUE=
20689
  am__EXEEXT_FALSE='#'
22310
  am__EXEEXT_FALSE='#'
Lines 20712-20717 Link Here
20712
  as_fn_error $? "conditional \"COND_SHARED\" was never defined.
22333
  as_fn_error $? "conditional \"COND_SHARED\" was never defined.
20713
Usually this means the macro was only invoked conditionally." "$LINENO" 5
22334
Usually this means the macro was only invoked conditionally." "$LINENO" 5
20714
fi
22335
fi
22336
if test -z "${COND_SYMVERS_LINUX_TRUE}" && test -z "${COND_SYMVERS_LINUX_FALSE}"; then
22337
  as_fn_error $? "conditional \"COND_SYMVERS_LINUX\" was never defined.
22338
Usually this means the macro was only invoked conditionally." "$LINENO" 5
22339
fi
22340
if test -z "${COND_SYMVERS_GENERIC_TRUE}" && test -z "${COND_SYMVERS_GENERIC_FALSE}"; then
22341
  as_fn_error $? "conditional \"COND_SYMVERS_GENERIC\" was never defined.
22342
Usually this means the macro was only invoked conditionally." "$LINENO" 5
22343
fi
20715
22344
20716
if test -z "${COND_INTERNAL_SHA256_TRUE}" && test -z "${COND_INTERNAL_SHA256_FALSE}"; then
22345
if test -z "${COND_INTERNAL_SHA256_TRUE}" && test -z "${COND_INTERNAL_SHA256_FALSE}"; then
20717
  as_fn_error $? "conditional \"COND_INTERNAL_SHA256\" was never defined.
22346
  as_fn_error $? "conditional \"COND_INTERNAL_SHA256\" was never defined.
Lines 20726-20733 Link Here
20726
ac_write_fail=0
22355
ac_write_fail=0
20727
ac_clean_files_save=$ac_clean_files
22356
ac_clean_files_save=$ac_clean_files
20728
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
22357
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
20729
{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
22358
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
20730
$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
22359
printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;}
20731
as_write_fail=0
22360
as_write_fail=0
20732
cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
22361
cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
20733
#! $SHELL
22362
#! $SHELL
Lines 20750-20763 Link Here
20750
22379
20751
# Be more Bourne compatible
22380
# Be more Bourne compatible
20752
DUALCASE=1; export DUALCASE # for MKS sh
22381
DUALCASE=1; export DUALCASE # for MKS sh
20753
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
22382
as_nop=:
22383
if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
22384
then :
20754
  emulate sh
22385
  emulate sh
20755
  NULLCMD=:
22386
  NULLCMD=:
20756
  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
22387
  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
20757
  # is contrary to our usage.  Disable this feature.
22388
  # is contrary to our usage.  Disable this feature.
20758
  alias -g '${1+"$@"}'='"$@"'
22389
  alias -g '${1+"$@"}'='"$@"'
20759
  setopt NO_GLOB_SUBST
22390
  setopt NO_GLOB_SUBST
20760
else
22391
else $as_nop
20761
  case `(set -o) 2>/dev/null` in #(
22392
  case `(set -o) 2>/dev/null` in #(
20762
  *posix*) :
22393
  *posix*) :
20763
    set -o posix ;; #(
22394
    set -o posix ;; #(
Lines 20767-20812 Link Here
20767
fi
22398
fi
20768
22399
20769
22400
22401
22402
# Reset variables that may have inherited troublesome values from
22403
# the environment.
22404
22405
# IFS needs to be set, to space, tab, and newline, in precisely that order.
22406
# (If _AS_PATH_WALK were called with IFS unset, it would have the
22407
# side effect of setting IFS to empty, thus disabling word splitting.)
22408
# Quoting is to prevent editors from complaining about space-tab.
20770
as_nl='
22409
as_nl='
20771
'
22410
'
20772
export as_nl
22411
export as_nl
20773
# Printing a long string crashes Solaris 7 /usr/bin/printf.
22412
IFS=" ""	$as_nl"
20774
as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
20775
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
20776
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
20777
# Prefer a ksh shell builtin over an external printf program on Solaris,
20778
# but without wasting forks for bash or zsh.
20779
if test -z "$BASH_VERSION$ZSH_VERSION" \
20780
    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
20781
  as_echo='print -r --'
20782
  as_echo_n='print -rn --'
20783
elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
20784
  as_echo='printf %s\n'
20785
  as_echo_n='printf %s'
20786
else
20787
  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
20788
    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
20789
    as_echo_n='/usr/ucb/echo -n'
20790
  else
20791
    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
20792
    as_echo_n_body='eval
20793
      arg=$1;
20794
      case $arg in #(
20795
      *"$as_nl"*)
20796
	expr "X$arg" : "X\\(.*\\)$as_nl";
20797
	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
20798
      esac;
20799
      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
20800
    '
20801
    export as_echo_n_body
20802
    as_echo_n='sh -c $as_echo_n_body as_echo'
20803
  fi
20804
  export as_echo_body
20805
  as_echo='sh -c $as_echo_body as_echo'
20806
fi
20807
22413
22414
PS1='$ '
22415
PS2='> '
22416
PS4='+ '
22417
22418
# Ensure predictable behavior from utilities with locale-dependent output.
22419
LC_ALL=C
22420
export LC_ALL
22421
LANGUAGE=C
22422
export LANGUAGE
22423
22424
# We cannot yet rely on "unset" to work, but we need these variables
22425
# to be unset--not just set to an empty or harmless value--now, to
22426
# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh).  This construct
22427
# also avoids known problems related to "unset" and subshell syntax
22428
# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
22429
for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
22430
do eval test \${$as_var+y} \
22431
  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
22432
done
22433
22434
# Ensure that fds 0, 1, and 2 are open.
22435
if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
22436
if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
22437
if (exec 3>&2)            ; then :; else exec 2>/dev/null; fi
22438
20808
# The user is always right.
22439
# The user is always right.
20809
if test "${PATH_SEPARATOR+set}" != set; then
22440
if ${PATH_SEPARATOR+false} :; then
20810
  PATH_SEPARATOR=:
22441
  PATH_SEPARATOR=:
20811
  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
22442
  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
20812
    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
22443
    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
Lines 20815-20827 Link Here
20815
fi
22446
fi
20816
22447
20817
22448
20818
# IFS
20819
# We need space, tab and new line, in precisely that order.  Quoting is
20820
# there to prevent editors from complaining about space-tab.
20821
# (If _AS_PATH_WALK were called with IFS unset, it would disable word
20822
# splitting by setting IFS to empty value.)
20823
IFS=" ""	$as_nl"
20824
20825
# Find who we are.  Look in the path if we contain no directory separator.
22449
# Find who we are.  Look in the path if we contain no directory separator.
20826
as_myself=
22450
as_myself=
20827
case $0 in #((
22451
case $0 in #((
Lines 20830-20837 Link Here
20830
for as_dir in $PATH
22454
for as_dir in $PATH
20831
do
22455
do
20832
  IFS=$as_save_IFS
22456
  IFS=$as_save_IFS
20833
  test -z "$as_dir" && as_dir=.
22457
  case $as_dir in #(((
20834
    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
22458
    '') as_dir=./ ;;
22459
    */) ;;
22460
    *) as_dir=$as_dir/ ;;
22461
  esac
22462
    test -r "$as_dir$0" && as_myself=$as_dir$0 && break
20835
  done
22463
  done
20836
IFS=$as_save_IFS
22464
IFS=$as_save_IFS
20837
22465
Lines 20843-20874 Link Here
20843
  as_myself=$0
22471
  as_myself=$0
20844
fi
22472
fi
20845
if test ! -f "$as_myself"; then
22473
if test ! -f "$as_myself"; then
20846
  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
22474
  printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
20847
  exit 1
22475
  exit 1
20848
fi
22476
fi
20849
22477
20850
# Unset variables that we do not need and which cause bugs (e.g. in
20851
# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
20852
# suppresses any "Segmentation fault" message there.  '((' could
20853
# trigger a bug in pdksh 5.2.14.
20854
for as_var in BASH_ENV ENV MAIL MAILPATH
20855
do eval test x\${$as_var+set} = xset \
20856
  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
20857
done
20858
PS1='$ '
20859
PS2='> '
20860
PS4='+ '
20861
22478
20862
# NLS nuisances.
20863
LC_ALL=C
20864
export LC_ALL
20865
LANGUAGE=C
20866
export LANGUAGE
20867
22479
20868
# CDPATH.
20869
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
20870
20871
20872
# as_fn_error STATUS ERROR [LINENO LOG_FD]
22480
# as_fn_error STATUS ERROR [LINENO LOG_FD]
20873
# ----------------------------------------
22481
# ----------------------------------------
20874
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
22482
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
Lines 20879-20891 Link Here
20879
  as_status=$1; test $as_status -eq 0 && as_status=1
22487
  as_status=$1; test $as_status -eq 0 && as_status=1
20880
  if test "$4"; then
22488
  if test "$4"; then
20881
    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
22489
    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
20882
    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
22490
    printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
20883
  fi
22491
  fi
20884
  $as_echo "$as_me: error: $2" >&2
22492
  printf "%s\n" "$as_me: error: $2" >&2
20885
  as_fn_exit $as_status
22493
  as_fn_exit $as_status
20886
} # as_fn_error
22494
} # as_fn_error
20887
22495
20888
22496
22497
20889
# as_fn_set_status STATUS
22498
# as_fn_set_status STATUS
20890
# -----------------------
22499
# -----------------------
20891
# Set $? to STATUS, without forking.
22500
# Set $? to STATUS, without forking.
Lines 20912-20929 Link Here
20912
  { eval $1=; unset $1;}
22521
  { eval $1=; unset $1;}
20913
}
22522
}
20914
as_unset=as_fn_unset
22523
as_unset=as_fn_unset
22524
20915
# as_fn_append VAR VALUE
22525
# as_fn_append VAR VALUE
20916
# ----------------------
22526
# ----------------------
20917
# Append the text in VALUE to the end of the definition contained in VAR. Take
22527
# Append the text in VALUE to the end of the definition contained in VAR. Take
20918
# advantage of any shell optimizations that allow amortized linear growth over
22528
# advantage of any shell optimizations that allow amortized linear growth over
20919
# repeated appends, instead of the typical quadratic growth present in naive
22529
# repeated appends, instead of the typical quadratic growth present in naive
20920
# implementations.
22530
# implementations.
20921
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
22531
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
22532
then :
20922
  eval 'as_fn_append ()
22533
  eval 'as_fn_append ()
20923
  {
22534
  {
20924
    eval $1+=\$2
22535
    eval $1+=\$2
20925
  }'
22536
  }'
20926
else
22537
else $as_nop
20927
  as_fn_append ()
22538
  as_fn_append ()
20928
  {
22539
  {
20929
    eval $1=\$$1\$2
22540
    eval $1=\$$1\$2
Lines 20935-20946 Link Here
20935
# Perform arithmetic evaluation on the ARGs, and store the result in the
22546
# Perform arithmetic evaluation on the ARGs, and store the result in the
20936
# global $as_val. Take advantage of shells that can avoid forks. The arguments
22547
# global $as_val. Take advantage of shells that can avoid forks. The arguments
20937
# must be portable across $(()) and expr.
22548
# must be portable across $(()) and expr.
20938
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
22549
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
22550
then :
20939
  eval 'as_fn_arith ()
22551
  eval 'as_fn_arith ()
20940
  {
22552
  {
20941
    as_val=$(( $* ))
22553
    as_val=$(( $* ))
20942
  }'
22554
  }'
20943
else
22555
else $as_nop
20944
  as_fn_arith ()
22556
  as_fn_arith ()
20945
  {
22557
  {
20946
    as_val=`expr "$@" || test $? -eq 1`
22558
    as_val=`expr "$@" || test $? -eq 1`
Lines 20971-20977 Link Here
20971
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
22583
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
20972
	 X"$0" : 'X\(//\)$' \| \
22584
	 X"$0" : 'X\(//\)$' \| \
20973
	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
22585
	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
20974
$as_echo X/"$0" |
22586
printf "%s\n" X/"$0" |
20975
    sed '/^.*\/\([^/][^/]*\)\/*$/{
22587
    sed '/^.*\/\([^/][^/]*\)\/*$/{
20976
	    s//\1/
22588
	    s//\1/
20977
	    q
22589
	    q
Lines 20993-20998 Link Here
20993
as_cr_digits='0123456789'
22605
as_cr_digits='0123456789'
20994
as_cr_alnum=$as_cr_Letters$as_cr_digits
22606
as_cr_alnum=$as_cr_Letters$as_cr_digits
20995
22607
22608
22609
# Determine whether it's possible to make 'echo' print without a newline.
22610
# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
22611
# for compatibility with existing Makefiles.
20996
ECHO_C= ECHO_N= ECHO_T=
22612
ECHO_C= ECHO_N= ECHO_T=
20997
case `echo -n x` in #(((((
22613
case `echo -n x` in #(((((
20998
-n*)
22614
-n*)
Lines 21006-21011 Link Here
21006
  ECHO_N='-n';;
22622
  ECHO_N='-n';;
21007
esac
22623
esac
21008
22624
22625
# For backward compatibility with old third-party macros, we provide
22626
# the shell variables $as_echo and $as_echo_n.  New code should use
22627
# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
22628
as_echo='printf %s\n'
22629
as_echo_n='printf %s'
22630
21009
rm -f conf$$ conf$$.exe conf$$.file
22631
rm -f conf$$ conf$$.exe conf$$.file
21010
if test -d conf$$.dir; then
22632
if test -d conf$$.dir; then
21011
  rm -f conf$$.dir/conf$$.file
22633
  rm -f conf$$.dir/conf$$.file
Lines 21047-21053 Link Here
21047
    as_dirs=
22669
    as_dirs=
21048
    while :; do
22670
    while :; do
21049
      case $as_dir in #(
22671
      case $as_dir in #(
21050
      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
22672
      *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
21051
      *) as_qdir=$as_dir;;
22673
      *) as_qdir=$as_dir;;
21052
      esac
22674
      esac
21053
      as_dirs="'$as_qdir' $as_dirs"
22675
      as_dirs="'$as_qdir' $as_dirs"
Lines 21056-21062 Link Here
21056
	 X"$as_dir" : 'X\(//\)[^/]' \| \
22678
	 X"$as_dir" : 'X\(//\)[^/]' \| \
21057
	 X"$as_dir" : 'X\(//\)$' \| \
22679
	 X"$as_dir" : 'X\(//\)$' \| \
21058
	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
22680
	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
21059
$as_echo X"$as_dir" |
22681
printf "%s\n" X"$as_dir" |
21060
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
22682
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
21061
	    s//\1/
22683
	    s//\1/
21062
	    q
22684
	    q
Lines 21118-21125 Link Here
21118
# report actual input values of CONFIG_FILES etc. instead of their
22740
# report actual input values of CONFIG_FILES etc. instead of their
21119
# values after options handling.
22741
# values after options handling.
21120
ac_log="
22742
ac_log="
21121
This file was extended by XZ Utils $as_me 5.2.5, which was
22743
This file was extended by XZ Utils $as_me 5.4.3, which was
21122
generated by GNU Autoconf 2.69.  Invocation command line was
22744
generated by GNU Autoconf 2.71.  Invocation command line was
21123
22745
21124
  CONFIG_FILES    = $CONFIG_FILES
22746
  CONFIG_FILES    = $CONFIG_FILES
21125
  CONFIG_HEADERS  = $CONFIG_HEADERS
22747
  CONFIG_HEADERS  = $CONFIG_HEADERS
Lines 21178-21195 Link Here
21178
Configuration commands:
22800
Configuration commands:
21179
$config_commands
22801
$config_commands
21180
22802
21181
Report bugs to <lasse.collin@tukaani.org>.
22803
Report bugs to <xz@tukaani.org>.
21182
XZ Utils home page: <https://tukaani.org/xz/>."
22804
XZ Utils home page: <https://tukaani.org/xz/>."
21183
22805
21184
_ACEOF
22806
_ACEOF
22807
ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`
22808
ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`
21185
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
22809
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
21186
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
22810
ac_cs_config='$ac_cs_config_escaped'
21187
ac_cs_version="\\
22811
ac_cs_version="\\
21188
XZ Utils config.status 5.2.5
22812
XZ Utils config.status 5.4.3
21189
configured by $0, generated by GNU Autoconf 2.69,
22813
configured by $0, generated by GNU Autoconf 2.71,
21190
  with options \\"\$ac_cs_config\\"
22814
  with options \\"\$ac_cs_config\\"
21191
22815
21192
Copyright (C) 2012 Free Software Foundation, Inc.
22816
Copyright (C) 2021 Free Software Foundation, Inc.
21193
This config.status script is free software; the Free Software Foundation
22817
This config.status script is free software; the Free Software Foundation
21194
gives unlimited permission to copy, distribute and modify it."
22818
gives unlimited permission to copy, distribute and modify it."
21195
22819
Lines 21229-21243 Link Here
21229
  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
22853
  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
21230
    ac_cs_recheck=: ;;
22854
    ac_cs_recheck=: ;;
21231
  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
22855
  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
21232
    $as_echo "$ac_cs_version"; exit ;;
22856
    printf "%s\n" "$ac_cs_version"; exit ;;
21233
  --config | --confi | --conf | --con | --co | --c )
22857
  --config | --confi | --conf | --con | --co | --c )
21234
    $as_echo "$ac_cs_config"; exit ;;
22858
    printf "%s\n" "$ac_cs_config"; exit ;;
21235
  --debug | --debu | --deb | --de | --d | -d )
22859
  --debug | --debu | --deb | --de | --d | -d )
21236
    debug=: ;;
22860
    debug=: ;;
21237
  --file | --fil | --fi | --f )
22861
  --file | --fil | --fi | --f )
21238
    $ac_shift
22862
    $ac_shift
21239
    case $ac_optarg in
22863
    case $ac_optarg in
21240
    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
22864
    *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
21241
    '') as_fn_error $? "missing file argument" ;;
22865
    '') as_fn_error $? "missing file argument" ;;
21242
    esac
22866
    esac
21243
    as_fn_append CONFIG_FILES " '$ac_optarg'"
22867
    as_fn_append CONFIG_FILES " '$ac_optarg'"
Lines 21245-21251 Link Here
21245
  --header | --heade | --head | --hea )
22869
  --header | --heade | --head | --hea )
21246
    $ac_shift
22870
    $ac_shift
21247
    case $ac_optarg in
22871
    case $ac_optarg in
21248
    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
22872
    *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
21249
    esac
22873
    esac
21250
    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
22874
    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
21251
    ac_need_defaults=false;;
22875
    ac_need_defaults=false;;
Lines 21254-21260 Link Here
21254
    as_fn_error $? "ambiguous option: \`$1'
22878
    as_fn_error $? "ambiguous option: \`$1'
21255
Try \`$0 --help' for more information.";;
22879
Try \`$0 --help' for more information.";;
21256
  --help | --hel | -h )
22880
  --help | --hel | -h )
21257
    $as_echo "$ac_cs_usage"; exit ;;
22881
    printf "%s\n" "$ac_cs_usage"; exit ;;
21258
  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
22882
  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
21259
  | -silent | --silent | --silen | --sile | --sil | --si | --s)
22883
  | -silent | --silent | --silen | --sile | --sil | --si | --s)
21260
    ac_cs_silent=: ;;
22884
    ac_cs_silent=: ;;
Lines 21282-21288 Link Here
21282
if \$ac_cs_recheck; then
22906
if \$ac_cs_recheck; then
21283
  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
22907
  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
21284
  shift
22908
  shift
21285
  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
22909
  \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6
21286
  CONFIG_SHELL='$SHELL'
22910
  CONFIG_SHELL='$SHELL'
21287
  export CONFIG_SHELL
22911
  export CONFIG_SHELL
21288
  exec "\$@"
22912
  exec "\$@"
Lines 21296-21302 Link Here
21296
  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
22920
  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
21297
## Running $as_me. ##
22921
## Running $as_me. ##
21298
_ASBOX
22922
_ASBOX
21299
  $as_echo "$ac_log"
22923
  printf "%s\n" "$ac_log"
21300
} >&5
22924
} >&5
21301
22925
21302
_ACEOF
22926
_ACEOF
Lines 21351-21356 Link Here
21351
lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
22975
lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
21352
reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
22976
reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
21353
reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
22977
reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
22978
FILECMD='`$ECHO "$FILECMD" | $SED "$delay_single_quote_subst"`'
21354
deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
22979
deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
21355
file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
22980
file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
21356
file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
22981
file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
Lines 21523-21528 Link Here
21523
lt_SP2NL \
23148
lt_SP2NL \
21524
lt_NL2SP \
23149
lt_NL2SP \
21525
reload_flag \
23150
reload_flag \
23151
FILECMD \
21526
deplibs_check_method \
23152
deplibs_check_method \
21527
file_magic_cmd \
23153
file_magic_cmd \
21528
file_magic_glob \
23154
file_magic_glob \
Lines 21683-21689 Link Here
21683
    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
23309
    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
21684
    "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
23310
    "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
21685
    "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;;
23311
    "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;;
21686
    "Doxyfile") CONFIG_FILES="$CONFIG_FILES Doxyfile" ;;
21687
    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
23312
    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
21688
    "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
23313
    "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
21689
    "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
23314
    "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
Lines 21711-21719 Link Here
21711
# We use the long form for the default assignment because of an extremely
23336
# We use the long form for the default assignment because of an extremely
21712
# bizarre bug on SunOS 4.1.3.
23337
# bizarre bug on SunOS 4.1.3.
21713
if $ac_need_defaults; then
23338
if $ac_need_defaults; then
21714
  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
23339
  test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files
21715
  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
23340
  test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers
21716
  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
23341
  test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands
21717
fi
23342
fi
21718
23343
21719
# Have a temporary directory for convenience.  Make it in the build tree
23344
# Have a temporary directory for convenience.  Make it in the build tree
Lines 22049-22055 Link Here
22049
	   esac ||
23674
	   esac ||
22050
	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
23675
	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
22051
      esac
23676
      esac
22052
      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
23677
      case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
22053
      as_fn_append ac_file_inputs " '$ac_f'"
23678
      as_fn_append ac_file_inputs " '$ac_f'"
22054
    done
23679
    done
22055
23680
Lines 22057-22073 Link Here
22057
    # use $as_me), people would be surprised to read:
23682
    # use $as_me), people would be surprised to read:
22058
    #    /* config.h.  Generated by config.status.  */
23683
    #    /* config.h.  Generated by config.status.  */
22059
    configure_input='Generated from '`
23684
    configure_input='Generated from '`
22060
	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
23685
	  printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
22061
	`' by configure.'
23686
	`' by configure.'
22062
    if test x"$ac_file" != x-; then
23687
    if test x"$ac_file" != x-; then
22063
      configure_input="$ac_file.  $configure_input"
23688
      configure_input="$ac_file.  $configure_input"
22064
      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
23689
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
22065
$as_echo "$as_me: creating $ac_file" >&6;}
23690
printf "%s\n" "$as_me: creating $ac_file" >&6;}
22066
    fi
23691
    fi
22067
    # Neutralize special characters interpreted by sed in replacement strings.
23692
    # Neutralize special characters interpreted by sed in replacement strings.
22068
    case $configure_input in #(
23693
    case $configure_input in #(
22069
    *\&* | *\|* | *\\* )
23694
    *\&* | *\|* | *\\* )
22070
       ac_sed_conf_input=`$as_echo "$configure_input" |
23695
       ac_sed_conf_input=`printf "%s\n" "$configure_input" |
22071
       sed 's/[\\\\&|]/\\\\&/g'`;; #(
23696
       sed 's/[\\\\&|]/\\\\&/g'`;; #(
22072
    *) ac_sed_conf_input=$configure_input;;
23697
    *) ac_sed_conf_input=$configure_input;;
22073
    esac
23698
    esac
Lines 22084-22090 Link Here
22084
	 X"$ac_file" : 'X\(//\)[^/]' \| \
23709
	 X"$ac_file" : 'X\(//\)[^/]' \| \
22085
	 X"$ac_file" : 'X\(//\)$' \| \
23710
	 X"$ac_file" : 'X\(//\)$' \| \
22086
	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
23711
	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
22087
$as_echo X"$ac_file" |
23712
printf "%s\n" X"$ac_file" |
22088
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
23713
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
22089
	    s//\1/
23714
	    s//\1/
22090
	    q
23715
	    q
Lines 22108-22116 Link Here
22108
case "$ac_dir" in
23733
case "$ac_dir" in
22109
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
23734
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
22110
*)
23735
*)
22111
  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
23736
  ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
22112
  # A ".." for each directory in $ac_dir_suffix.
23737
  # A ".." for each directory in $ac_dir_suffix.
22113
  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
23738
  ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
22114
  case $ac_top_builddir_sub in
23739
  case $ac_top_builddir_sub in
22115
  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
23740
  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
22116
  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
23741
  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
Lines 22172-22179 Link Here
22172
case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
23797
case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
22173
*datarootdir*) ac_datarootdir_seen=yes;;
23798
*datarootdir*) ac_datarootdir_seen=yes;;
22174
*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
23799
*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
22175
  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
23800
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
22176
$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
23801
printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
22177
_ACEOF
23802
_ACEOF
22178
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
23803
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
22179
  ac_datarootdir_hack='
23804
  ac_datarootdir_hack='
Lines 22217-22225 Link Here
22217
  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
23842
  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
22218
  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
23843
  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
22219
      "$ac_tmp/out"`; test -z "$ac_out"; } &&
23844
      "$ac_tmp/out"`; test -z "$ac_out"; } &&
22220
  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
23845
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
22221
which seems to be undefined.  Please make sure it is defined" >&5
23846
which seems to be undefined.  Please make sure it is defined" >&5
22222
$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
23847
printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
22223
which seems to be undefined.  Please make sure it is defined" >&2;}
23848
which seems to be undefined.  Please make sure it is defined" >&2;}
22224
23849
22225
  rm -f "$ac_tmp/stdin"
23850
  rm -f "$ac_tmp/stdin"
Lines 22235-22254 Link Here
22235
  #
23860
  #
22236
  if test x"$ac_file" != x-; then
23861
  if test x"$ac_file" != x-; then
22237
    {
23862
    {
22238
      $as_echo "/* $configure_input  */" \
23863
      printf "%s\n" "/* $configure_input  */" >&1 \
22239
      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
23864
      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
22240
    } >"$ac_tmp/config.h" \
23865
    } >"$ac_tmp/config.h" \
22241
      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
23866
      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
22242
    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
23867
    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
22243
      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
23868
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
22244
$as_echo "$as_me: $ac_file is unchanged" >&6;}
23869
printf "%s\n" "$as_me: $ac_file is unchanged" >&6;}
22245
    else
23870
    else
22246
      rm -f "$ac_file"
23871
      rm -f "$ac_file"
22247
      mv "$ac_tmp/config.h" "$ac_file" \
23872
      mv "$ac_tmp/config.h" "$ac_file" \
22248
	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
23873
	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
22249
    fi
23874
    fi
22250
  else
23875
  else
22251
    $as_echo "/* $configure_input  */" \
23876
    printf "%s\n" "/* $configure_input  */" >&1 \
22252
      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
23877
      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
22253
      || as_fn_error $? "could not create -" "$LINENO" 5
23878
      || as_fn_error $? "could not create -" "$LINENO" 5
22254
  fi
23879
  fi
Lines 22268-22274 Link Here
22268
	 X"$_am_arg" : 'X\(//\)[^/]' \| \
23893
	 X"$_am_arg" : 'X\(//\)[^/]' \| \
22269
	 X"$_am_arg" : 'X\(//\)$' \| \
23894
	 X"$_am_arg" : 'X\(//\)$' \| \
22270
	 X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
23895
	 X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
22271
$as_echo X"$_am_arg" |
23896
printf "%s\n" X"$_am_arg" |
22272
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
23897
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
22273
	    s//\1/
23898
	    s//\1/
22274
	    q
23899
	    q
Lines 22288-22295 Link Here
22288
	  s/.*/./; q'`/stamp-h$_am_stamp_count
23913
	  s/.*/./; q'`/stamp-h$_am_stamp_count
22289
 ;;
23914
 ;;
22290
23915
22291
  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
23916
  :C)  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
22292
$as_echo "$as_me: executing $ac_file commands" >&6;}
23917
printf "%s\n" "$as_me: executing $ac_file commands" >&6;}
22293
 ;;
23918
 ;;
22294
  esac
23919
  esac
22295
23920
Lines 22315-22321 Link Here
22315
  for am_mf
23940
  for am_mf
22316
  do
23941
  do
22317
    # Strip MF so we end up with the name of the file.
23942
    # Strip MF so we end up with the name of the file.
22318
    am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'`
23943
    am_mf=`printf "%s\n" "$am_mf" | sed -e 's/:.*$//'`
22319
    # Check whether this is an Automake generated Makefile which includes
23944
    # Check whether this is an Automake generated Makefile which includes
22320
    # dependency-tracking related rules and includes.
23945
    # dependency-tracking related rules and includes.
22321
    # Grep'ing the whole file directly is not great: AIX grep has a line
23946
    # Grep'ing the whole file directly is not great: AIX grep has a line
Lines 22327-22333 Link Here
22327
	 X"$am_mf" : 'X\(//\)[^/]' \| \
23952
	 X"$am_mf" : 'X\(//\)[^/]' \| \
22328
	 X"$am_mf" : 'X\(//\)$' \| \
23953
	 X"$am_mf" : 'X\(//\)$' \| \
22329
	 X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
23954
	 X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
22330
$as_echo X"$am_mf" |
23955
printf "%s\n" X"$am_mf" |
22331
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
23956
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
22332
	    s//\1/
23957
	    s//\1/
22333
	    q
23958
	    q
Lines 22349-22355 Link Here
22349
$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
23974
$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
22350
	 X"$am_mf" : 'X\(//\)$' \| \
23975
	 X"$am_mf" : 'X\(//\)$' \| \
22351
	 X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
23976
	 X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
22352
$as_echo X/"$am_mf" |
23977
printf "%s\n" X/"$am_mf" |
22353
    sed '/^.*\/\([^/][^/]*\)\/*$/{
23978
    sed '/^.*\/\([^/][^/]*\)\/*$/{
22354
	    s//\1/
23979
	    s//\1/
22355
	    q
23980
	    q
Lines 22374-22383 Link Here
22374
   (exit $ac_status); } || am_rc=$?
23999
   (exit $ac_status); } || am_rc=$?
22375
  done
24000
  done
22376
  if test $am_rc -ne 0; then
24001
  if test $am_rc -ne 0; then
22377
    { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
24002
    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
22378
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
24003
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
22379
as_fn_error $? "Something went wrong bootstrapping makefile fragments
24004
as_fn_error $? "Something went wrong bootstrapping makefile fragments
22380
    for automatic dependency tracking.  Try re-running configure with the
24005
    for automatic dependency tracking.  If GNU make was not used, consider
24006
    re-running the configure script with MAKE=\"gmake\" (or whatever is
24007
    necessary).  You can also try re-running configure with the
22381
    '--disable-dependency-tracking' option to at least be able to build
24008
    '--disable-dependency-tracking' option to at least be able to build
22382
    the package (albeit without support for automatic dependency tracking).
24009
    the package (albeit without support for automatic dependency tracking).
22383
See \`config.log' for more details" "$LINENO" 5; }
24010
See \`config.log' for more details" "$LINENO" 5; }
Lines 22532-22537 Link Here
22532
# convert \$build files to toolchain format.
24159
# convert \$build files to toolchain format.
22533
to_tool_file_cmd=$lt_cv_to_tool_file_cmd
24160
to_tool_file_cmd=$lt_cv_to_tool_file_cmd
22534
24161
24162
# A file(cmd) program that detects file types.
24163
FILECMD=$lt_FILECMD
24164
22535
# Method to check whether dependent libraries are shared objects.
24165
# Method to check whether dependent libraries are shared objects.
22536
deplibs_check_method=$lt_deplibs_check_method
24166
deplibs_check_method=$lt_deplibs_check_method
22537
24167
Lines 22922-22927 Link Here
22922
  esac
24552
  esac
22923
24553
22924
24554
24555
22925
ltmain=$ac_aux_dir/ltmain.sh
24556
ltmain=$ac_aux_dir/ltmain.sh
22926
24557
22927
24558
Lines 22929-22935 Link Here
22929
  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
24560
  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
22930
  # text mode, it properly converts lines to CR/LF.  This bash problem
24561
  # text mode, it properly converts lines to CR/LF.  This bash problem
22931
  # is reportedly fixed, but why not run on old versions too?
24562
  # is reportedly fixed, but why not run on old versions too?
22932
  sed '$q' "$ltmain" >> "$cfgfile" \
24563
  $SED '$q' "$ltmain" >> "$cfgfile" \
22933
     || (rm -f "$cfgfile"; exit 1)
24564
     || (rm -f "$cfgfile"; exit 1)
22934
24565
22935
   mv -f "$cfgfile" "$ofile" ||
24566
   mv -f "$cfgfile" "$ofile" ||
Lines 23159-23165 Link Here
23159
                #      presentlang can be used as a fallback for messages
24790
                #      presentlang can be used as a fallback for messages
23160
                #      which are not translated in the desiredlang catalog).
24791
                #      which are not translated in the desiredlang catalog).
23161
                case "$desiredlang" in
24792
                case "$desiredlang" in
23162
                  "$presentlang"*) useit=yes;;
24793
                  "$presentlang" | "$presentlang"_* | "$presentlang".* | "$presentlang"@*)
24794
                    useit=yes
24795
                    ;;
23163
                esac
24796
                esac
23164
              done
24797
              done
23165
              if test $useit = yes; then
24798
              if test $useit = yes; then
Lines 23225-23232 Link Here
23225
  $ac_cs_success || as_fn_exit 1
24858
  $ac_cs_success || as_fn_exit 1
23226
fi
24859
fi
23227
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
24860
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
23228
  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
24861
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
23229
$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
24862
printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
23230
fi
24863
fi
23231
24864
23232
24865
Lines 23245-23253 Link Here
23245
	echo "No supported method to detect the number of CPU cores."
24878
	echo "No supported method to detect the number of CPU cores."
23246
fi
24879
fi
23247
24880
23248
if test "x$enable_threads$enable_small" = xnoyes; then
24881
if test "x$enable_threads$enable_small$have_func_attribute_constructor" \
24882
		= xnoyesno; then
23249
	echo
24883
	echo
23250
	echo "NOTE:"
24884
	echo "NOTE:"
23251
	echo "liblzma will be thread unsafe due the combination"
24885
	echo "liblzma will be thread-unsafe due to the combination"
23252
	echo "of --disable-threads --enable-small."
24886
	echo "of --disable-threads --enable-small when using a compiler"
24887
	echo "that doesn't support __attribute__((__constructor__))."
23253
fi
24888
fi
24889
(-)xz-5.2.5/configure.ac (-74 / +314 lines)
Lines 18-28 Link Here
18
AC_PREREQ([2.69])
18
AC_PREREQ([2.69])
19
19
20
AC_INIT([XZ Utils], m4_esyscmd([/bin/sh build-aux/version.sh]),
20
AC_INIT([XZ Utils], m4_esyscmd([/bin/sh build-aux/version.sh]),
21
	[lasse.collin@tukaani.org], [xz], [https://tukaani.org/xz/])
21
	[xz@tukaani.org], [xz], [https://tukaani.org/xz/])
22
AC_CONFIG_SRCDIR([src/liblzma/common/common.h])
22
AC_CONFIG_SRCDIR([src/liblzma/common/common.h])
23
AC_CONFIG_AUX_DIR([build-aux])
23
AC_CONFIG_AUX_DIR([build-aux])
24
AC_CONFIG_MACRO_DIR([m4])
24
AC_CONFIG_MACRO_DIR([m4])
25
AC_CONFIG_HEADER([config.h])
25
AC_CONFIG_HEADERS([config.h])
26
26
27
echo
27
echo
28
echo "$PACKAGE_STRING"
28
echo "$PACKAGE_STRING"
Lines 79-86 Link Here
79
# Filters #
79
# Filters #
80
###########
80
###########
81
81
82
m4_define([SUPPORTED_FILTERS], [lzma1,lzma2,delta,x86,powerpc,ia64,arm,armthumb,sparc])dnl
82
m4_define([SUPPORTED_FILTERS], [lzma1,lzma2,delta,x86,powerpc,ia64,arm,armthumb,arm64,sparc])dnl
83
m4_define([SIMPLE_FILTERS], [x86,powerpc,ia64,arm,armthumb,sparc])
83
m4_define([SIMPLE_FILTERS], [x86,powerpc,ia64,arm,armthumb,arm64,sparc])
84
m4_define([LZ_FILTERS], [lzma1,lzma2])
84
m4_define([LZ_FILTERS], [lzma1,lzma2])
85
85
86
m4_foreach([NAME], [SUPPORTED_FILTERS],
86
m4_foreach([NAME], [SUPPORTED_FILTERS],
Lines 210-215 Link Here
210
	[enable_match_finders=SUPPORTED_MATCH_FINDERS])
210
	[enable_match_finders=SUPPORTED_MATCH_FINDERS])
211
enable_match_finders=`echo "$enable_match_finders" | sed 's/,/ /g'`
211
enable_match_finders=`echo "$enable_match_finders" | sed 's/,/ /g'`
212
if test "x$enable_encoder_lz" = xyes ; then
212
if test "x$enable_encoder_lz" = xyes ; then
213
	if test -z "$enable_match_finders"; then
214
		AC_MSG_ERROR([At least one match finder is required for an LZ-based encoder.])
215
	fi
216
213
	for arg in $enable_match_finders
217
	for arg in $enable_match_finders
214
		do
218
		do
215
		case $arg in m4_foreach([NAME], [SUPPORTED_MATCH_FINDERS], [
219
		case $arg in m4_foreach([NAME], [SUPPORTED_MATCH_FINDERS], [
Lines 290-295 Link Here
290
fi
294
fi
291
295
292
296
297
#############
298
# MicroLZMA #
299
#############
300
301
AC_MSG_CHECKING([if MicroLZMA support should be built])
302
AC_ARG_ENABLE([microlzma], AS_HELP_STRING([--disable-microlzma],
303
		[Do not build MicroLZMA encoder and decoder.
304
		It is needed by specific applications only,
305
		for example, erofs-utils.]),
306
	[], [enable_microlzma=yes])
307
case $enable_microlzma in
308
	yes | no)
309
		AC_MSG_RESULT([$enable_microlzma])
310
		;;
311
	*)
312
		AC_MSG_RESULT([])
313
		AC_MSG_ERROR([--enable-microlzma accepts only `yes' or `no'.])
314
		;;
315
esac
316
AM_CONDITIONAL(COND_MICROLZMA, test "x$enable_microlzma" = xyes)
317
318
319
#############################
320
# .lz (lzip) format support #
321
#############################
322
323
AC_MSG_CHECKING([if .lz (lzip) decompression support should be built])
324
AC_ARG_ENABLE([lzip-decoder], AS_HELP_STRING([--disable-lzip-decoder],
325
		[Disable decompression support for .lz (lzip) files.]),
326
	[], [enable_lzip_decoder=yes])
327
if test "x$enable_decoder_lzma1" != xyes; then
328
	enable_lzip_decoder=no
329
	AC_MSG_RESULT([no because LZMA1 decoder is disabled])
330
elif test "x$enable_lzip_decoder" = xyes; then
331
	AC_DEFINE([HAVE_LZIP_DECODER], [1],
332
		[Define to 1 if .lz (lzip) decompression support is enabled.])
333
	AC_MSG_RESULT([yes])
334
else
335
	AC_MSG_RESULT([no])
336
fi
337
AM_CONDITIONAL(COND_LZIP_DECODER, test "x$enable_lzip_decoder" = xyes)
338
339
293
###########################
340
###########################
294
# Assembler optimizations #
341
# Assembler optimizations #
295
###########################
342
###########################
Lines 307-330 Link Here
307
		linux* | *bsd* | mingw* | cygwin | msys | *djgpp*)
354
		linux* | *bsd* | mingw* | cygwin | msys | *djgpp*)
308
			case $host_cpu in
355
			case $host_cpu in
309
				i?86)   enable_assembler=x86 ;;
356
				i?86)   enable_assembler=x86 ;;
310
				x86_64) enable_assembler=x86_64 ;;
311
			esac
357
			esac
312
			;;
358
			;;
313
	esac
359
	esac
314
fi
360
fi
315
case $enable_assembler in
361
case $enable_assembler in
316
	x86 | x86_64 | no)
362
	x86 | no)
317
		AC_MSG_RESULT([$enable_assembler])
363
		AC_MSG_RESULT([$enable_assembler])
318
		;;
364
		;;
319
	*)
365
	*)
320
		AC_MSG_RESULT([])
366
		AC_MSG_RESULT([])
321
		AC_MSG_ERROR([--enable-assembler accepts only `yes', `no', `x86', or `x86_64'.])
367
		AC_MSG_ERROR([--enable-assembler accepts only `yes', `no', or `x86' (32-bit).])
322
		;;
368
		;;
323
esac
369
esac
324
AM_CONDITIONAL(COND_ASM_X86, test "x$enable_assembler" = xx86)
370
AM_CONDITIONAL(COND_ASM_X86, test "x$enable_assembler" = xx86)
325
AM_CONDITIONAL(COND_ASM_X86_64, test "x$enable_assembler" = xx86_64)
326
371
327
372
373
#############
374
# CLMUL CRC #
375
#############
376
377
AC_ARG_ENABLE([clmul-crc], AS_HELP_STRING([--disable-clmul-crc],
378
		[Do not use carryless multiplication for CRC calculation
379
		even if support for it is detected.]),
380
	[], [enable_clmul_crc=yes])
381
382
328
#####################
383
#####################
329
# Size optimization #
384
# Size optimization #
330
#####################
385
#####################
Lines 465-504 Link Here
465
AM_CONDITIONAL([COND_DOC], [test x$enable_doc != xno])
520
AM_CONDITIONAL([COND_DOC], [test x$enable_doc != xno])
466
521
467
522
468
#####################
469
# Symbol versioning #
470
#####################
471
472
AC_MSG_CHECKING([if library symbol versioning should be used])
473
AC_ARG_ENABLE([symbol-versions], [AS_HELP_STRING([--enable-symbol-versions],
474
		[Use symbol versioning for liblzma. Enabled by default on
475
		GNU/Linux, other GNU-based systems, and FreeBSD.])],
476
	[], [enable_symbol_versions=auto])
477
if test "x$enable_symbol_versions" = xauto; then
478
	case $host_os in
479
		# NOTE: Even if one omits -gnu on GNU/Linux (e.g.
480
		# i486-slackware-linux), configure will (via config.sub)
481
		# append -gnu (e.g. i486-slackware-linux-gnu), and this
482
		# test will work correctly.
483
		gnu* | *-gnu* | freebsd*)
484
			enable_symbol_versions=yes
485
			;;
486
		*)
487
			enable_symbol_versions=no
488
			;;
489
	esac
490
fi
491
AC_MSG_RESULT([$enable_symbol_versions])
492
AM_CONDITIONAL([COND_SYMVERS], [test "x$enable_symbol_versions" = xyes])
493
494
495
##############
523
##############
496
# Sandboxing #
524
# Sandboxing #
497
##############
525
##############
498
526
499
AC_MSG_CHECKING([if sandboxing should be used])
527
AC_MSG_CHECKING([if sandboxing should be used])
500
AC_ARG_ENABLE([sandbox], [AS_HELP_STRING([--enable-sandbox=METHOD],
528
AC_ARG_ENABLE([sandbox], [AS_HELP_STRING([--enable-sandbox=METHOD],
501
		[Sandboxing METHOD can be `auto', `no', or `capsicum'.
529
		[Sandboxing METHOD can be
530
		`auto', `no', `capsicum', or `pledge'.
502
		The default is `auto' which enables sandboxing if
531
		The default is `auto' which enables sandboxing if
503
		a supported sandboxing method is found.])],
532
		a supported sandboxing method is found.])],
504
	[], [enable_sandbox=auto])
533
	[], [enable_sandbox=auto])
Lines 506-517 Link Here
506
	auto)
535
	auto)
507
		AC_MSG_RESULT([maybe (autodetect)])
536
		AC_MSG_RESULT([maybe (autodetect)])
508
		;;
537
		;;
509
	no | capsicum)
538
	no | capsicum | pledge)
510
		AC_MSG_RESULT([$enable_sandbox])
539
		AC_MSG_RESULT([$enable_sandbox])
511
		;;
540
		;;
512
	*)
541
	*)
513
		AC_MSG_RESULT([])
542
		AC_MSG_RESULT([])
514
		AC_MSG_ERROR([--enable-sandbox only accepts `auto', `no', or `capsicum'.])
543
		AC_MSG_ERROR([--enable-sandbox only accepts `auto', `no', `capsicum', or `pledge'.])
515
		;;
544
		;;
516
esac
545
esac
517
546
Lines 567-578 Link Here
567
596
568
# We don't use "subdir-objects" yet because it breaks "make distclean" when
597
# We don't use "subdir-objects" yet because it breaks "make distclean" when
569
# dependencies are enabled (as of Automake 1.14.1) due to this bug:
598
# dependencies are enabled (as of Automake 1.14.1) due to this bug:
570
# http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17354
599
# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=17354
571
# The -Wno-unsupported is used to silence warnings about missing
600
# The -Wno-unsupported is used to silence warnings about missing
572
# "subdir-objects".
601
# "subdir-objects".
573
AM_INIT_AUTOMAKE([1.12 foreign tar-v7 filename-length-max=99 serial-tests -Wno-unsupported])
602
AM_INIT_AUTOMAKE([1.12 foreign tar-v7 filename-length-max=99 -Wno-unsupported])
574
AC_PROG_LN_S
603
AC_PROG_LN_S
575
604
605
dnl # Autoconf >= 2.70 warns that AC_PROG_CC_C99 is obsolete. However,
606
dnl # we have to keep using AC_PROG_CC_C99 instead of AC_PROG_CC
607
dnl # as long as we try to be compatible with Autoconf 2.69.
576
AC_PROG_CC_C99
608
AC_PROG_CC_C99
577
if test x$ac_cv_prog_cc_c99 = xno ; then
609
if test x$ac_cv_prog_cc_c99 = xno ; then
578
	AC_MSG_ERROR([No C99 compiler was found.])
610
	AC_MSG_ERROR([No C99 compiler was found.])
Lines 582-589 Link Here
582
AM_PROG_AS
614
AM_PROG_AS
583
AC_USE_SYSTEM_EXTENSIONS
615
AC_USE_SYSTEM_EXTENSIONS
584
616
585
case $enable_threads in
617
AS_CASE([$enable_threads],
586
	posix)
618
	[posix], [
587
		echo
619
		echo
588
		echo "POSIX threading support:"
620
		echo "POSIX threading support:"
589
		AX_PTHREAD([:]) dnl We don't need the HAVE_PTHREAD macro.
621
		AX_PTHREAD([:]) dnl We don't need the HAVE_PTHREAD macro.
Lines 609-629 Link Here
609
		CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
641
		CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
610
		AC_SEARCH_LIBS([clock_gettime], [rt])
642
		AC_SEARCH_LIBS([clock_gettime], [rt])
611
		AC_CHECK_FUNCS([clock_gettime pthread_condattr_setclock])
643
		AC_CHECK_FUNCS([clock_gettime pthread_condattr_setclock])
612
		AC_CHECK_DECLS([CLOCK_MONOTONIC], [], [], [[#include <time.h>]])
644
		AC_CHECK_DECL([CLOCK_MONOTONIC], [AC_DEFINE(
645
			[HAVE_CLOCK_MONOTONIC], [1], [Define to 1 if
646
			`CLOCK_MONOTONIC' is declared in <time.h>.])], [],
647
			[[#include <time.h>]])
613
		CFLAGS=$OLD_CFLAGS
648
		CFLAGS=$OLD_CFLAGS
614
		;;
649
	],
615
	win95)
650
	[win95], [
616
		AC_DEFINE([MYTHREAD_WIN95], [1], [Define to 1 when using
651
		AC_DEFINE([MYTHREAD_WIN95], [1], [Define to 1 when using
617
			Windows 95 (and thus XP) compatible threads.
652
			Windows 95 (and thus XP) compatible threads.
618
			This avoids use of features that were added in
653
			This avoids use of features that were added in
619
			Windows Vista.])
654
			Windows Vista.])
620
		;;
655
	],
621
	vista)
656
	[vista], [
622
		AC_DEFINE([MYTHREAD_VISTA], [1], [Define to 1 when using
657
		AC_DEFINE([MYTHREAD_VISTA], [1], [Define to 1 when using
623
			Windows Vista compatible threads. This uses
658
			Windows Vista compatible threads. This uses
624
			features that are not available on Windows XP.])
659
			features that are not available on Windows XP.])
625
		;;
660
	]
626
esac
661
)
627
AM_CONDITIONAL([COND_THREADS], [test "x$enable_threads" != xno])
662
AM_CONDITIONAL([COND_THREADS], [test "x$enable_threads" != xno])
628
663
629
echo
664
echo
Lines 638-644 Link Here
638
# libs as shared.
673
# libs as shared.
639
AM_CONDITIONAL([COND_SHARED], [test "x$enable_shared" != xno])
674
AM_CONDITIONAL([COND_SHARED], [test "x$enable_shared" != xno])
640
675
676
#####################
677
# Symbol versioning #
678
#####################
641
679
680
# NOTE: This checks if we are building shared or static library
681
# and if --with-pic or --without-pic was used. Thus this check
682
# must be after Libtool initialization.
683
AC_MSG_CHECKING([if library symbol versioning should be used])
684
AC_ARG_ENABLE([symbol-versions], [AS_HELP_STRING([--enable-symbol-versions],
685
		[Use symbol versioning for liblzma. Enabled by default on
686
		GNU/Linux, other GNU-based systems, and FreeBSD.])],
687
	[], [enable_symbol_versions=auto])
688
if test "x$enable_symbol_versions" = xauto; then
689
	case $host_os in
690
		# NOTE: Even if one omits -gnu on GNU/Linux (e.g.
691
		# i486-slackware-linux), configure will (via config.sub)
692
		# append -gnu (e.g. i486-slackware-linux-gnu), and this
693
		# test will work correctly.
694
		gnu* | *-gnu* | freebsd*)
695
			enable_symbol_versions=yes
696
			;;
697
		*)
698
			enable_symbol_versions=no
699
			;;
700
	esac
701
fi
702
703
# There are two variants for symbol versioning.
704
# See src/liblzma/validate_map.sh for details.
705
#
706
# On GNU/Linux, extra symbols are added in the C code. These extra symbols
707
# must not be put into a static library as they can cause problems (and
708
# even if they didn't cause problems, they would be useless). On other
709
# systems symbol versioning may be used too but there is no problem as only
710
# a linker script is specified in src/liblzma/Makefile.am and that isn't
711
# used when creating a static library.
712
#
713
# Libtool always uses -DPIC when building shared libraries by default and
714
# doesn't use it for static libs by default. This can be overriden with
715
# --with-pic and --without-pic though. As long as neither --with-pic nor
716
# --without-pic is used then we can use #ifdef PIC to detect if the file is
717
# being built for a shared library.
718
if test "x$enable_symbol_versions" = xno ; then
719
	enable_symbol_versions=no
720
	AC_MSG_RESULT([no])
721
elif test "x$enable_shared" = xno ; then
722
	enable_symbol_versions=no
723
	AC_MSG_RESULT([no (not building a shared library)])
724
else
725
	case "$host_cpu-$host_os" in
726
		microblaze*)
727
			# GCC 12 on MicroBlaze doesn't support __symver__
728
			# attribute. It's simplest and safest to use the
729
			# generic version on that platform since then only
730
			# the linker script is needed. The RHEL/CentOS 7
731
			# compatibility symbols don't matter on MicroBlaze.
732
			enable_symbol_versions=generic
733
			;;
734
		*-linux*)
735
			case "$pic_mode-$enable_static" in
736
				default-*)
737
					# Use symvers if PIC is defined.
738
					have_symbol_versions_linux=2
739
					;;
740
				*-no)
741
					# Not building static library.
742
					# Use symvers unconditionally.
743
					have_symbol_versions_linux=1
744
					;;
745
				*)
746
					AC_MSG_RESULT([])
747
					AC_MSG_ERROR([
748
    On GNU/Linux, building both shared and static library at the same time
749
    is not supported if --with-pic or --without-pic is used.
750
    Use either --disable-shared or --disable-static to build one type
751
    of library at a time. If both types are needed, build one at a time,
752
    possibly picking only src/liblzma/.libs/liblzma.a from the static build.])
753
					;;
754
			esac
755
			enable_symbol_versions=linux
756
			AC_DEFINE_UNQUOTED([HAVE_SYMBOL_VERSIONS_LINUX],
757
				[$have_symbol_versions_linux],
758
				[Define to 1 to if GNU/Linux-specific details
759
				are unconditionally wanted for symbol
760
				versioning. Define to 2 to if these are wanted
761
				only if also PIC is defined (allows building
762
				both shared and static liblzma at the same
763
				time with Libtool if neither --with-pic nor
764
				--without-pic is used). This define must be
765
				used together with liblzma_linux.map.])
766
			;;
767
		*)
768
			enable_symbol_versions=generic
769
			;;
770
	esac
771
	AC_MSG_RESULT([yes ($enable_symbol_versions)])
772
fi
773
774
AM_CONDITIONAL([COND_SYMVERS_LINUX],
775
	[test "x$enable_symbol_versions" = xlinux])
776
AM_CONDITIONAL([COND_SYMVERS_GENERIC],
777
	[test "x$enable_symbol_versions" = xgeneric])
778
779
642
###############################################################################
780
###############################################################################
643
# Checks for libraries.
781
# Checks for libraries.
644
###############################################################################
782
###############################################################################
Lines 666-683 Link Here
666
	[],
804
	[],
667
	[AC_MSG_ERROR([Required header file(s) are missing.])])
805
	[AC_MSG_ERROR([Required header file(s) are missing.])])
668
806
669
# This allows the use of the intrinsic functions if they are available.
807
# immintrin.h allows the use of the intrinsic functions if they are available.
670
AC_CHECK_HEADERS([immintrin.h])
808
# cpuid.h may be used for detecting x86 processor features at runtime.
809
AC_CHECK_HEADERS([immintrin.h cpuid.h])
671
810
672
811
673
###############################################################################
812
###############################################################################
674
# Checks for typedefs, structures, and compiler characteristics.
813
# Checks for typedefs, structures, and compiler characteristics.
675
###############################################################################
814
###############################################################################
676
815
677
dnl We don't need these as long as we need a C99 compiler anyway.
678
dnl AC_C_INLINE
679
dnl AC_C_RESTRICT
680
681
AC_HEADER_STDBOOL
816
AC_HEADER_STDBOOL
682
817
683
AC_TYPE_UINT8_T
818
AC_TYPE_UINT8_T
Lines 703-709 Link Here
703
AC_SYS_LARGEFILE
838
AC_SYS_LARGEFILE
704
AC_C_BIGENDIAN
839
AC_C_BIGENDIAN
705
840
841
# __attribute__((__constructor__)) can be used for one-time initializations.
842
# Use -Werror because some compilers accept unknown attributes and just
843
# give a warning. If it works this should give no warnings, even
844
# clang -Weverything should be fine.
845
# dnl This doesn't need AC_LANG_SOURCE, minimal code is enough.
846
AC_MSG_CHECKING([if __attribute__((__constructor__)) can be used])
847
have_func_attribute_constructor=no
848
OLD_CFLAGS="$CFLAGS"
849
CFLAGS="$CFLAGS -Werror"
850
AC_COMPILE_IFELSE([
851
	__attribute__((__constructor__))
852
	static void my_constructor_func(void) { return; }
853
], [
854
	AC_DEFINE([HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR], [1],
855
		[Define to 1 if __attribute__((__constructor__))
856
		is supported for functions.])
857
	have_func_attribute_constructor=yes
858
	AC_MSG_RESULT([yes])
859
], [
860
	AC_MSG_RESULT([no])
861
])
862
CFLAGS="$OLD_CFLAGS"
706
863
864
707
###############################################################################
865
###############################################################################
708
# Checks for library functions.
866
# Checks for library functions.
709
###############################################################################
867
###############################################################################
Lines 740-746 Link Here
740
sha256_header_found=no
898
sha256_header_found=no
741
sha256_type_found=no
899
sha256_type_found=no
742
sha256_func_found=no
900
sha256_func_found=no
743
if test "x$enable_external_sha256" = "xyes"; then
901
AS_IF([test "x$enable_external_sha256" = "xyes"], [
744
	# Test for Common Crypto before others, because Darwin has sha256.h
902
	# Test for Common Crypto before others, because Darwin has sha256.h
745
	# too and we don't want to use that, because on older versions it
903
	# too and we don't want to use that, because on older versions it
746
	# uses OpenSSL functions, whose SHA256_Init is not guaranteed to
904
	# uses OpenSSL functions, whose SHA256_Init is not guaranteed to
Lines 770-782 Link Here
770
				[sha256_func_found=yes ; break])
928
				[sha256_func_found=yes ; break])
771
		fi
929
		fi
772
	fi
930
	fi
773
fi
931
])
774
AM_CONDITIONAL([COND_INTERNAL_SHA256], [test "x$sha256_func_found" = xno])
932
AM_CONDITIONAL([COND_INTERNAL_SHA256], [test "x$sha256_func_found" = xno])
775
if test "x$enable_external_sha256$sha256_func_found" = xyesno; then
933
if test "x$enable_external_sha256$sha256_func_found" = xyesno; then
776
	AC_MSG_ERROR([--enable-external-sha256 was specified but no supported external SHA-256 implementation was found])
934
	AC_MSG_ERROR([--enable-external-sha256 was specified but no supported external SHA-256 implementation was found])
777
fi
935
fi
778
936
779
# Check for SSE2 intrinsics.
937
# Check for SSE2 intrinsics. There is no run-time detection for SSE2 so if
938
# compiler options enable SSE2 then SSE2 support is required by the binaries.
939
# The compile-time check for SSE2 is done with #ifdefs because some compilers
940
# (ICC, MSVC) allow SSE2 intrinsics even when SSE2 isn't enabled.
780
AC_CHECK_DECL([_mm_movemask_epi8],
941
AC_CHECK_DECL([_mm_movemask_epi8],
781
	[AC_DEFINE([HAVE__MM_MOVEMASK_EPI8], [1],
942
	[AC_DEFINE([HAVE__MM_MOVEMASK_EPI8], [1],
782
		[Define to 1 if _mm_movemask_epi8 is available.])],
943
		[Define to 1 if _mm_movemask_epi8 is available.])],
Lines 785-796 Link Here
785
#include <immintrin.h>
946
#include <immintrin.h>
786
#endif])
947
#endif])
787
948
949
# For faster CRC on 32/64-bit x86 and E2K (see also crc64_fast.c):
950
#
951
#   - Check for the CLMUL intrinsic _mm_clmulepi64_si128 in <immintrin.h>.
952
#     Check also for _mm_set_epi64x for consistency with CMake build
953
#     where it's needed to disable CLMUL with VS2013.
954
#
955
#   - Check that __attribute__((__target__("ssse3,sse4.1,pclmul"))) works
956
#     together with _mm_clmulepi64_si128 from <immintrin.h>. The attribute
957
#     was added in GCC 4.4 but some GCC 4.x versions don't allow intrinsics
958
#     with it. Exception: it must be not be used with EDG-based compilers
959
#     like ICC and the compiler on E2K.
960
#
961
# If everything above is supported, runtime detection will be used to keep the
962
# binaries working on systems that don't support the required extensions.
963
AC_MSG_CHECKING([if _mm_clmulepi64_si128 is usable])
964
AS_IF([test "x$enable_clmul_crc" = xno], [
965
	AC_MSG_RESULT([no, --disable-clmul-crc was used])
966
], [
967
	AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
968
#include <immintrin.h>
969
970
// CLMUL works on older E2K instruction set but it is slow due to emulation.
971
#if defined(__e2k__) && __iset__ < 6
972
#	error
973
#endif
974
975
// Intel's old compiler (ICC) can define __GNUC__ but the attribute must not
976
// be used with it. The new Clang-based ICX needs the attribute.
977
// Checking for !defined(__EDG__) catches ICC and other EDG-based compilers.
978
#if (defined(__GNUC__) || defined(__clang__)) && !defined(__EDG__)
979
__attribute__((__target__("ssse3,sse4.1,pclmul")))
980
#endif
981
__m128i my_clmul(__m128i a)
982
{
983
	const __m128i b = _mm_set_epi64x(1, 2);
984
	return _mm_clmulepi64_si128(a, b, 0);
985
}
986
	]])], [
987
		AC_DEFINE([HAVE_USABLE_CLMUL], [1],
988
			[Define to 1 if _mm_set_epi64x and
989
			_mm_clmulepi64_si128 are usable.
990
			See configure.ac for details.])
991
		AC_MSG_RESULT([yes])
992
	], [
993
		AC_MSG_RESULT([no])
994
	])
995
])
996
788
# Check for sandbox support. If one is found, set enable_sandbox=found.
997
# Check for sandbox support. If one is found, set enable_sandbox=found.
789
case $enable_sandbox in
998
AS_CASE([$enable_sandbox],
790
	auto | capsicum)
999
	[auto | capsicum], [
791
		AX_CHECK_CAPSICUM([enable_sandbox=found], [:])
1000
		AX_CHECK_CAPSICUM([enable_sandbox=found], [:])
792
		;;
1001
	]
793
esac
1002
)
1003
AS_CASE([$enable_sandbox],
1004
	[auto | pledge], [
1005
		AC_CHECK_FUNCS([pledge], [enable_sandbox=found ; break])
1006
	]
1007
)
794
1008
795
# If a specific sandboxing method was explicitly requested and it wasn't
1009
# If a specific sandboxing method was explicitly requested and it wasn't
796
# found, give an error.
1010
# found, give an error.
Lines 819-859 Link Here
819
	AM_CFLAGS="$AM_CFLAGS $CFLAG_VISIBILITY"
1033
	AM_CFLAGS="$AM_CFLAGS $CFLAG_VISIBILITY"
820
fi
1034
fi
821
1035
822
if test "$GCC" = yes ; then
1036
AS_IF([test "$GCC" = yes], [
823
	# Enable as much warnings as possible. These commented warnings won't
1037
	# Enable as much warnings as possible. These commented warnings won't
824
	# work for this package though:
1038
	# work for this package though:
825
	#   * -Wunreachable-code breaks several assert(0) cases, which are
1039
	#   * -Wunreachable-code breaks several assert(0) cases, which are
826
	#     backed up with "return LZMA_PROG_ERROR".
1040
	#     backed up with "return LZMA_PROG_ERROR".
827
	#   * -Wcast-qual would break various things where we need a non-const
1041
	#   * -Wcast-qual would break various things where we need a non-const
828
	#     pointer although we don't modify anything through it.
1042
	#     pointer although we don't modify anything through it.
829
	#   * -Wcast-align breaks optimized CRC32 and CRC64 implementation
830
	#     on some architectures (not on x86), where this warning is bogus,
831
	#     because we take care of correct alignment.
832
	#   * -Winline, -Wdisabled-optimization, -Wunsafe-loop-optimizations
1043
	#   * -Winline, -Wdisabled-optimization, -Wunsafe-loop-optimizations
833
	#     don't seem so useful here; at least the last one gives some
1044
	#     don't seem so useful here; at least the last one gives some
834
	#     warnings which are not bugs.
1045
	#     warnings which are not bugs.
1046
	#   * -Wconversion still shows too many warnings.
1047
	#
1048
	# The flags before the empty line are for GCC and many of them
1049
	# are supported by Clang too. The flags after the empty line are
1050
	# for Clang.
835
	for NEW_FLAG in \
1051
	for NEW_FLAG in \
836
			-Wall \
1052
			-Wall \
837
			-Wextra \
1053
			-Wextra \
838
			-Wvla \
1054
			-Wvla \
1055
			-Wc99-c11-compat \
839
			-Wformat=2 \
1056
			-Wformat=2 \
840
			-Winit-self \
1057
			-Winit-self \
841
			-Wmissing-include-dirs \
1058
			-Wmissing-include-dirs \
842
			-Wstrict-aliasing \
1059
			-Wshift-overflow=2 \
1060
			-Wstrict-overflow=3 \
1061
			-Walloc-zero \
1062
			-Wduplicated-cond \
843
			-Wfloat-equal \
1063
			-Wfloat-equal \
844
			-Wundef \
1064
			-Wundef \
845
			-Wshadow \
1065
			-Wshadow \
846
			-Wpointer-arith \
1066
			-Wpointer-arith \
847
			-Wbad-function-cast \
1067
			-Wbad-function-cast \
848
			-Wwrite-strings \
1068
			-Wwrite-strings \
1069
			-Wdate-time \
1070
			-Wsign-conversion \
1071
			-Wfloat-conversion \
849
			-Wlogical-op \
1072
			-Wlogical-op \
850
			-Waggregate-return \
1073
			-Waggregate-return \
851
			-Wstrict-prototypes \
1074
			-Wstrict-prototypes \
852
			-Wold-style-definition \
1075
			-Wold-style-definition \
853
			-Wmissing-prototypes \
1076
			-Wmissing-prototypes \
854
			-Wmissing-declarations \
1077
			-Wmissing-declarations \
855
			-Wmissing-noreturn \
1078
			-Wredundant-decls \
856
			-Wredundant-decls
1079
			\
1080
			-Wc99-compat \
1081
			-Wc11-extensions \
1082
			-Wc2x-compat \
1083
			-Wc2x-extensions \
1084
			-Wpre-c2x-compat \
1085
			-Warray-bounds-pointer-arithmetic \
1086
			-Wassign-enum \
1087
			-Wconditional-uninitialized \
1088
			-Wdocumentation \
1089
			-Wduplicate-enum \
1090
			-Wempty-translation-unit \
1091
			-Wflexible-array-extensions \
1092
			-Wmissing-variable-declarations \
1093
			-Wnewline-eof \
1094
			-Wshift-sign-overflow \
1095
			-Wstring-conversion
857
	do
1096
	do
858
		AC_MSG_CHECKING([if $CC accepts $NEW_FLAG])
1097
		AC_MSG_CHECKING([if $CC accepts $NEW_FLAG])
859
		OLD_CFLAGS="$CFLAGS"
1098
		OLD_CFLAGS="$CFLAGS"
Lines 875-881 Link Here
875
	if test "x$enable_werror" = "xyes"; then
1114
	if test "x$enable_werror" = "xyes"; then
876
		AM_CFLAGS="$AM_CFLAGS -Werror"
1115
		AM_CFLAGS="$AM_CFLAGS -Werror"
877
	fi
1116
	fi
878
fi
1117
])
879
1118
880
1119
881
###############################################################################
1120
###############################################################################
Lines 896-902 Link Here
896
AC_SUBST([xz])
1135
AC_SUBST([xz])
897
1136
898
AC_CONFIG_FILES([
1137
AC_CONFIG_FILES([
899
	Doxyfile
900
	Makefile
1138
	Makefile
901
	po/Makefile.in
1139
	po/Makefile.in
902
	lib/Makefile
1140
	lib/Makefile
Lines 932-940 Link Here
932
	echo "No supported method to detect the number of CPU cores."
1170
	echo "No supported method to detect the number of CPU cores."
933
fi
1171
fi
934
1172
935
if test "x$enable_threads$enable_small" = xnoyes; then
1173
if test "x$enable_threads$enable_small$have_func_attribute_constructor" \
1174
		= xnoyesno; then
936
	echo
1175
	echo
937
	echo "NOTE:"
1176
	echo "NOTE:"
938
	echo "liblzma will be thread unsafe due the combination"
1177
	echo "liblzma will be thread-unsafe due to the combination"
939
	echo "of --disable-threads --enable-small."
1178
	echo "of --disable-threads --enable-small when using a compiler"
1179
	echo "that doesn't support __attribute__((__constructor__))."
940
fi
1180
fi
(-)xz-5.2.5/debug/Makefile.in (-5 / +8 lines)
Lines 1-7 Link Here
1
# Makefile.in generated by automake 1.16.1 from Makefile.am.
1
# Makefile.in generated by automake 1.16.5 from Makefile.am.
2
# @configure_input@
2
# @configure_input@
3
3
4
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
4
# Copyright (C) 1994-2021 Free Software Foundation, Inc.
5
5
6
# This Makefile.in is free software; the Free Software Foundation
6
# This Makefile.in is free software; the Free Software Foundation
7
# gives unlimited permission to copy and/or distribute it,
7
# gives unlimited permission to copy and/or distribute it,
Lines 223-230 Link Here
223
  unique=`for i in $$list; do \
223
  unique=`for i in $$list; do \
224
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
224
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
225
  done | $(am__uniquify_input)`
225
  done | $(am__uniquify_input)`
226
ETAGS = etags
227
CTAGS = ctags
228
am__DIST_COMMON = $(srcdir)/Makefile.in \
226
am__DIST_COMMON = $(srcdir)/Makefile.in \
229
	$(top_srcdir)/build-aux/depcomp README
227
	$(top_srcdir)/build-aux/depcomp README
230
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
228
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
Lines 248-253 Link Here
248
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
246
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
249
CPP = @CPP@
247
CPP = @CPP@
250
CPPFLAGS = @CPPFLAGS@
248
CPPFLAGS = @CPPFLAGS@
249
CSCOPE = @CSCOPE@
250
CTAGS = @CTAGS@
251
CYGPATH_W = @CYGPATH_W@
251
CYGPATH_W = @CYGPATH_W@
252
DEFS = @DEFS@
252
DEFS = @DEFS@
253
DEPDIR = @DEPDIR@
253
DEPDIR = @DEPDIR@
Lines 258-265 Link Here
258
ECHO_N = @ECHO_N@
258
ECHO_N = @ECHO_N@
259
ECHO_T = @ECHO_T@
259
ECHO_T = @ECHO_T@
260
EGREP = @EGREP@
260
EGREP = @EGREP@
261
ETAGS = @ETAGS@
261
EXEEXT = @EXEEXT@
262
EXEEXT = @EXEEXT@
262
FGREP = @FGREP@
263
FGREP = @FGREP@
264
FILECMD = @FILECMD@
263
GETOPT_H = @GETOPT_H@
265
GETOPT_H = @GETOPT_H@
264
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
266
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
265
GMSGFMT = @GMSGFMT@
267
GMSGFMT = @GMSGFMT@
Lines 312-317 Link Here
312
PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@
314
PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@
313
PTHREAD_CC = @PTHREAD_CC@
315
PTHREAD_CC = @PTHREAD_CC@
314
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
316
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
317
PTHREAD_CXX = @PTHREAD_CXX@
315
PTHREAD_LIBS = @PTHREAD_LIBS@
318
PTHREAD_LIBS = @PTHREAD_LIBS@
316
RANLIB = @RANLIB@
319
RANLIB = @RANLIB@
317
RC = @RC@
320
RC = @RC@
Lines 370-375 Link Here
370
prefix = @prefix@
373
prefix = @prefix@
371
program_transform_name = @program_transform_name@
374
program_transform_name = @program_transform_name@
372
psdir = @psdir@
375
psdir = @psdir@
376
runstatedir = @runstatedir@
373
sbindir = @sbindir@
377
sbindir = @sbindir@
374
sharedstatedir = @sharedstatedir@
378
sharedstatedir = @sharedstatedir@
375
srcdir = @srcdir@
379
srcdir = @srcdir@
Lines 557-563 Link Here
557
561
558
distclean-tags:
562
distclean-tags:
559
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
563
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
560
561
distdir: $(BUILT_SOURCES)
564
distdir: $(BUILT_SOURCES)
562
	$(MAKE) $(AM_MAKEFLAGS) distdir-am
565
	$(MAKE) $(AM_MAKEFLAGS) distdir-am
563
566
(-)xz-5.2.5/doc/examples/01_compress_easy.c (-1 / +1 lines)
Lines 173-179 Link Here
173
		lzma_ret ret = lzma_code(strm, action);
173
		lzma_ret ret = lzma_code(strm, action);
174
174
175
		// If the output buffer is full or if the compression finished
175
		// If the output buffer is full or if the compression finished
176
		// successfully, write the data from the output bufffer to
176
		// successfully, write the data from the output buffer to
177
		// the output file.
177
		// the output file.
178
		if (strm->avail_out == 0 || ret == LZMA_STREAM_END) {
178
		if (strm->avail_out == 0 || ret == LZMA_STREAM_END) {
179
			// When lzma_code() has returned LZMA_STREAM_END,
179
			// When lzma_code() has returned LZMA_STREAM_END,
(-)xz-5.2.5/doc/examples/Makefile (-1 / +2 lines)
Lines 13-19 Link Here
13
	01_compress_easy \
13
	01_compress_easy \
14
	02_decompress \
14
	02_decompress \
15
	03_compress_custom \
15
	03_compress_custom \
16
	04_compress_easy_mt
16
	04_compress_easy_mt \
17
	11_file_info
17
18
18
all: $(PROGS)
19
all: $(PROGS)
19
20
(-)xz-5.2.5/doc/faq.txt (-22 / +42 lines)
Lines 33-39 Link Here
33
    LZMA Utils.
33
    LZMA Utils.
34
34
35
    There are several other projects using LZMA. Most are more or less
35
    There are several other projects using LZMA. Most are more or less
36
    based on LZMA SDK. See <http://7-zip.org/links.html>.
36
    based on LZMA SDK. See <https://7-zip.org/links.html>.
37
37
38
38
39
Q:  Why is liblzma named liblzma if its primary file format is .xz?
39
Q:  Why is liblzma named liblzma if its primary file format is .xz?
Lines 115-121 Link Here
115
115
116
A:  BCJ filter is called "x86" in liblzma. BCJ2 is not included,
116
A:  BCJ filter is called "x86" in liblzma. BCJ2 is not included,
117
    because it requires using more than one encoded output stream.
117
    because it requires using more than one encoded output stream.
118
    A streamable version of BCJ2-style filtering is planned.
119
118
120
119
121
Q:  I need to use a script that runs "xz -9". On a system with 256 MiB
120
Q:  I need to use a script that runs "xz -9". On a system with 256 MiB
Lines 154-172 Link Here
154
    dictionary doesn't increase memory usage.
153
    dictionary doesn't increase memory usage.
155
154
156
155
157
Q:  Will xz support threaded compression?
156
Q:  How is multi-threaded compression implemented in XZ Utils?
158
157
159
A:  It is planned and has been taken into account when designing
158
A:  The simplest method is splitting the uncompressed data into blocks
160
    the .xz file format. Eventually there will probably be three types
161
    of threading, each method having its own advantages and disadvantages.
162
163
    The simplest method is splitting the uncompressed data into blocks
164
    and compressing them in parallel independent from each other.
159
    and compressing them in parallel independent from each other.
160
    This is currently the only threading method supported in XZ Utils.
165
    Since the blocks are compressed independently, they can also be
161
    Since the blocks are compressed independently, they can also be
166
    decompressed independently. Together with the index feature in .xz,
162
    decompressed independently. Together with the index feature in .xz,
167
    this allows using threads to create .xz files for random-access
163
    this allows using threads to create .xz files for random-access
168
    reading. This also makes threaded decompression possible, although
164
    reading. This also makes threaded decompression possible.
169
    it is not clear if threaded decompression will ever be implemented.
170
165
171
    The independent blocks method has a couple of disadvantages too. It
166
    The independent blocks method has a couple of disadvantages too. It
172
    will compress worse than a single-block method. Often the difference
167
    will compress worse than a single-block method. Often the difference
Lines 174-188 Link Here
174
    the memory usage of the compressor increases linearly when adding
169
    the memory usage of the compressor increases linearly when adding
175
    threads.
170
    threads.
176
171
177
    Match finder parallelization is another threading method. It has
172
    At least two other threading methods are possible but these haven't
178
    been in 7-Zip for ages. It doesn't affect compression ratio or
173
    been implemented in XZ Utils:
179
    memory usage significantly. Among the three threading methods, only
180
    this is useful when compressing small files (files that are not
181
    significantly bigger than the dictionary). Unfortunately this method
182
    scales only to about two CPU cores.
183
174
175
    Match finder parallelization has been in 7-Zip for ages. It doesn't
176
    affect compression ratio or memory usage significantly. Among the
177
    three threading methods, only this is useful when compressing small
178
    files (files that are not significantly bigger than the dictionary).
179
    Unfortunately this method scales only to about two CPU cores.
180
184
    The third method is pigz-style threading (I use that name, because
181
    The third method is pigz-style threading (I use that name, because
185
    pigz <http://www.zlib.net/pigz/> uses that method). It doesn't
182
    pigz <https://www.zlib.net/pigz/> uses that method). It doesn't
186
    affect compression ratio significantly and scales to many cores.
183
    affect compression ratio significantly and scales to many cores.
187
    The memory usage scales linearly when threads are added. This isn't
184
    The memory usage scales linearly when threads are added. This isn't
188
    significant with pigz, because Deflate uses only a 32 KiB dictionary,
185
    significant with pigz, because Deflate uses only a 32 KiB dictionary,
Lines 193-204 Link Here
193
    cores the overhead is not a big deal anymore.
190
    cores the overhead is not a big deal anymore.
194
191
195
    Combining the threading methods will be possible and also useful.
192
    Combining the threading methods will be possible and also useful.
196
    E.g. combining match finder parallelization with pigz-style threading
193
    For example, combining match finder parallelization with pigz-style
197
    can cut the memory usage by 50 %.
194
    threading or independent-blocks-threading can cut the memory usage
195
    by 50 %.
198
196
199
    It is possible that the single-threaded method will be modified to
197
200
    create files identical to the pigz-style method. We'll see once
198
Q:  I told xz to use many threads but it is using only one or two
201
    pigz-style threading has been implemented in liblzma.
199
    processor cores. What is wrong?
200
201
A:  Since multi-threaded compression is done by splitting the data into
202
    blocks that are compressed individually, if the input file is too
203
    small for the block size, then many threads cannot be used. The
204
    default block size increases when the compression level is
205
    increased. For example, xz -6 uses 8 MiB LZMA2 dictionary and
206
    24 MiB blocks, and xz -9 uses 64 MiB LZMA dictionary and 192 MiB
207
    blocks. If the input file is 100 MiB, xz -6 can use five threads
208
    of which one will finish quickly as it has only 4 MiB to compress.
209
    However, for the same file, xz -9 can only use one thread.
210
211
    One can adjust block size with --block-size=SIZE but making the
212
    block size smaller than LZMA2 dictionary is waste of RAM: using
213
    xz -9 with 6 MiB blocks isn't any better than using xz -6 with
214
    6 MiB blocks. The default settings use a block size bigger than
215
    the LZMA2 dictionary size because this was seen as a reasonable
216
    compromise between RAM usage and compression ratio.
217
218
    When decompressing, the ability to use threads depends on how the
219
    file was created. If it was created in multi-threaded mode then
220
    it can be decompressed in multi-threaded mode too if there are
221
    multiple blocks in the file.
202
222
203
223
204
Q:  How do I build a program that needs liblzmadec (lzmadec.h)?
224
Q:  How do I build a program that needs liblzmadec (lzmadec.h)?
(-)xz-5.2.5/doc/lzma-file-format.txt (-2 / +9 lines)
Lines 40-48 Link Here
40
40
41
0.2. Changes
41
0.2. Changes
42
42
43
        Last modified: 2011-04-12 11:55+0300
43
        Last modified: 2022-07-13 21:00+0300
44
44
45
        Compared to the previous version (2011-04-12 11:55+0300)
46
        the section 1.1.3 was modified to allow End of Payload Marker
47
        with a known Uncompressed Size.
45
48
49
46
1. File Format
50
1. File Format
47
51
48
        +-+-+-+-+-+-+-+-+-+-+-+-+-+==========================+
52
        +-+-+-+-+-+-+-+-+-+-+-+-+-+==========================+
Lines 129-135 Link Here
129
        Uncompressed Size is stored as unsigned 64-bit little endian
133
        Uncompressed Size is stored as unsigned 64-bit little endian
130
        integer. A special value of 0xFFFF_FFFF_FFFF_FFFF indicates
134
        integer. A special value of 0xFFFF_FFFF_FFFF_FFFF indicates
131
        that Uncompressed Size is unknown. End of Payload Marker (*)
135
        that Uncompressed Size is unknown. End of Payload Marker (*)
132
        is used if and only if Uncompressed Size is unknown.
136
        is used if Uncompressed Size is unknown. End of Payload Marker
137
        is allowed but rarely used if Uncompressed Size is known.
138
        XZ Utils 5.2.5 and older don't support .lzma files that have
139
        End of Payload Marker together with a known Uncompressed Size.
133
140
134
        XZ Utils rejects files whose Uncompressed Size field specifies
141
        XZ Utils rejects files whose Uncompressed Size field specifies
135
        a known size that is 256 GiB or more. This is to reject false
142
        a known size that is 256 GiB or more. This is to reject false
(-)xz-5.2.5/doc/man/txt/xz.txt (-385 / +485 lines)
Lines 24-187 Link Here
24
       xz is a general-purpose data compression tool with command line  syntax
24
       xz is a general-purpose data compression tool with command line  syntax
25
       similar  to  gzip(1)  and  bzip2(1).  The native file format is the .xz
25
       similar  to  gzip(1)  and  bzip2(1).  The native file format is the .xz
26
       format, but the legacy .lzma format used by LZMA  Utils  and  raw  com-
26
       format, but the legacy .lzma format used by LZMA  Utils  and  raw  com-
27
       pressed streams with no container format headers are also supported.
27
       pressed  streams  with  no container format headers are also supported.
28
       In addition, decompression of the .lz format used by lzip is supported.
28
29
29
       xz compresses or decompresses each file according to the selected oper-
30
       xz compresses or decompresses each file according to the selected oper-
30
       ation mode.  If no files are given or file is -, xz reads from standard
31
       ation mode.  If no files are given or file is -, xz reads from standard
31
       input and writes the processed data to standard output.  xz will refuse
32
       input and writes the processed data to standard output.  xz will refuse
32
       (display an error and skip the file) to write compressed data to  stan-
33
       (display  an error and skip the file) to write compressed data to stan-
33
       dard  output  if  it  is a terminal.  Similarly, xz will refuse to read
34
       dard output if it is a terminal.  Similarly, xz  will  refuse  to  read
34
       compressed data from standard input if it is a terminal.
35
       compressed data from standard input if it is a terminal.
35
36
36
       Unless --stdout is specified, files other than - are written to  a  new
37
       Unless  --stdout  is specified, files other than - are written to a new
37
       file whose name is derived from the source file name:
38
       file whose name is derived from the source file name:
38
39
39
       o  When  compressing,  the  suffix  of  the  target file format (.xz or
40
       o  When compressing, the suffix of  the  target  file  format  (.xz  or
40
          .lzma) is appended to the source filename to get  the  target  file-
41
          .lzma)  is  appended  to the source filename to get the target file-
41
          name.
42
          name.
42
43
43
       o  When  decompressing,  the  .xz  or  .lzma suffix is removed from the
44
       o  When decompressing, the .xz, .lzma, or .lz suffix  is  removed  from
44
          filename to get the target filename.  xz also  recognizes  the  suf-
45
          the  filename  to  get  the target filename.  xz also recognizes the
45
          fixes .txz and .tlz, and replaces them with the .tar suffix.
46
          suffixes .txz and .tlz, and replaces them with the .tar suffix.
46
47
47
       If  the  target file already exists, an error is displayed and the file
48
       If the target file already exists, an error is displayed and  the  file
48
       is skipped.
49
       is skipped.
49
50
50
       Unless writing to standard output, xz will display a warning  and  skip
51
       Unless  writing  to standard output, xz will display a warning and skip
51
       the file if any of the following applies:
52
       the file if any of the following applies:
52
53
53
       o  File  is  not  a regular file.  Symbolic links are not followed, and
54
       o  File is not a regular file.  Symbolic links are  not  followed,  and
54
          thus they are not considered to be regular files.
55
          thus they are not considered to be regular files.
55
56
56
       o  File has more than one hard link.
57
       o  File has more than one hard link.
57
58
58
       o  File has setuid, setgid, or sticky bit set.
59
       o  File has setuid, setgid, or sticky bit set.
59
60
60
       o  The operation mode is set to compress and the  file  already  has  a
61
       o  The  operation  mode  is  set to compress and the file already has a
61
          suffix  of  the  target file format (.xz or .txz when compressing to
62
          suffix of the target file format (.xz or .txz  when  compressing  to
62
          the .xz format, and .lzma or .tlz when compressing to the .lzma for-
63
          the .xz format, and .lzma or .tlz when compressing to the .lzma for-
63
          mat).
64
          mat).
64
65
65
       o  The  operation mode is set to decompress and the file doesn't have a
66
       o  The operation mode is set to decompress and the file doesn't have  a
66
          suffix of any of the supported file formats (.xz,  .txz,  .lzma,  or
67
          suffix of any of the supported file formats (.xz, .txz, .lzma, .tlz,
67
          .tlz).
68
          or .lz).
68
69
69
       After successfully compressing or decompressing the file, xz copies the
70
       After successfully compressing or decompressing the file, xz copies the
70
       owner, group, permissions, access time, and modification time from  the
71
       owner,  group, permissions, access time, and modification time from the
71
       source  file  to the target file.  If copying the group fails, the per-
72
       source file to the target file.  If copying the group fails,  the  per-
72
       missions are modified so that the target file doesn't become accessible
73
       missions are modified so that the target file doesn't become accessible
73
       to  users  who  didn't  have  permission to access the source file.  xz
74
       to users who didn't have permission to  access  the  source  file.   xz
74
       doesn't support copying other metadata like access control lists or ex-
75
       doesn't support copying other metadata like access control lists or ex-
75
       tended attributes yet.
76
       tended attributes yet.
76
77
77
       Once  the  target file has been successfully closed, the source file is
78
       Once the target file has been successfully closed, the source  file  is
78
       removed unless --keep was specified.  The source file is never  removed
79
       removed  unless --keep was specified.  The source file is never removed
79
       if the output is written to standard output.
80
       if the output is written to standard output or if an error occurs.
80
81
81
       Sending  SIGINFO  or  SIGUSR1 to the xz process makes it print progress
82
       Sending SIGINFO or SIGUSR1 to the xz process makes  it  print  progress
82
       information to standard error.  This has only limited  use  since  when
83
       information  to  standard  error.  This has only limited use since when
83
       standard error is a terminal, using --verbose will display an automati-
84
       standard error is a terminal, using --verbose will display an automati-
84
       cally updating progress indicator.
85
       cally updating progress indicator.
85
86
86
   Memory usage
87
   Memory usage
87
       The memory usage of xz varies from a few hundred kilobytes  to  several
88
       The  memory  usage of xz varies from a few hundred kilobytes to several
88
       gigabytes  depending  on  the  compression settings.  The settings used
89
       gigabytes depending on the compression  settings.   The  settings  used
89
       when compressing a file determine the memory requirements of the decom-
90
       when compressing a file determine the memory requirements of the decom-
90
       pressor.  Typically the decompressor needs 5 % to 20 % of the amount of
91
       pressor.  Typically the decompressor needs 5 % to 20 % of the amount of
91
       memory that the compressor needed when creating the file.  For example,
92
       memory that the compressor needed when creating the file.  For example,
92
       decompressing  a  file  created with xz -9 currently requires 65 MiB of
93
       decompressing a file created with xz -9 currently  requires  65 MiB  of
93
       memory.  Still, it is possible to have .xz files that  require  several
94
       memory.   Still,  it is possible to have .xz files that require several
94
       gigabytes of memory to decompress.
95
       gigabytes of memory to decompress.
95
96
96
       Especially  users  of  older  systems  may find the possibility of very
97
       Especially users of older systems may  find  the  possibility  of  very
97
       large memory usage annoying.  To prevent  uncomfortable  surprises,  xz
98
       large  memory  usage  annoying.  To prevent uncomfortable surprises, xz
98
       has  a  built-in  memory  usage  limiter, which is disabled by default.
99
       has a built-in memory usage limiter,  which  is  disabled  by  default.
99
       While some operating systems provide ways to limit the memory usage  of
100
       While  some operating systems provide ways to limit the memory usage of
100
       processes,  relying on it wasn't deemed to be flexible enough (e.g. us-
101
       processes, relying on it wasn't deemed to be flexible enough (for exam-
101
       ing ulimit(1) to limit virtual memory tends to cripple mmap(2)).
102
       ple, using ulimit(1) to limit virtual memory tends to cripple mmap(2)).
102
103
103
       The memory usage limiter can be enabled with the  command  line  option
104
       The  memory  usage  limiter can be enabled with the command line option
104
       --memlimit=limit.  Often it is more convenient to enable the limiter by
105
       --memlimit=limit.  Often it is more convenient to enable the limiter by
105
       default by setting the environment variable  XZ_DEFAULTS,  e.g.  XZ_DE-
106
       default  by  setting the environment variable XZ_DEFAULTS, for example,
106
       FAULTS=--memlimit=150MiB.   It is possible to set the limits separately
107
       XZ_DEFAULTS=--memlimit=150MiB.  It is possible to set the limits  sepa-
107
       for compression and decompression  by  using  --memlimit-compress=limit
108
       rately  for  compression  and  decompression  by  using --memlimit-com-
108
       and  --memlimit-decompress=limit.   Using  these  two  options  outside
109
       press=limit and --memlimit-decompress=limit.  Using these  two  options
109
       XZ_DEFAULTS is rarely useful because a single run of xz cannot do  both
110
       outside  XZ_DEFAULTS is rarely useful because a single run of xz cannot
110
       compression  and  decompression  and  --memlimit=limit (or -M limit) is
111
       do both compression  and  decompression  and  --memlimit=limit  (or  -M
111
       shorter to type on the command line.
112
       limit) is shorter to type on the command line.
112
113
113
       If the specified memory usage limit is exceeded when decompressing,  xz
114
       If  the specified memory usage limit is exceeded when decompressing, xz
114
       will  display  an  error  and decompressing the file will fail.  If the
115
       will display an error and decompressing the file  will  fail.   If  the
115
       limit is exceeded when compressing, xz will try to scale  the  settings
116
       limit  is  exceeded when compressing, xz will try to scale the settings
116
       down  so that the limit is no longer exceeded (except when using --for-
117
       down so that the limit is no longer exceeded (except when using  --for-
117
       mat=raw or --no-adjust).  This way the operation won't fail unless  the
118
       mat=raw  or --no-adjust).  This way the operation won't fail unless the
118
       limit is very small.  The scaling of the settings is done in steps that
119
       limit is very small.  The scaling of the settings is done in steps that
119
       don't match the compression level presets, e.g. if the  limit  is  only
120
       don't match the compression level presets, for example, if the limit is
120
       slightly  less than the amount required for xz -9, the settings will be
121
       only slightly less than the amount required for  xz  -9,  the  settings
121
       scaled down only a little, not all the way down to xz -8.
122
       will be scaled down only a little, not all the way down to xz -8.
122
123
123
   Concatenation and padding with .xz files
124
   Concatenation and padding with .xz files
124
       It is possible to concatenate .xz files as is.  xz will decompress such
125
       It is possible to concatenate .xz files as is.  xz will decompress such
125
       files as if they were a single .xz file.
126
       files as if they were a single .xz file.
126
127
127
       It  is possible to insert padding between the concatenated parts or af-
128
       It is possible to insert padding between the concatenated parts or  af-
128
       ter the last part.  The padding must consist of null bytes and the size
129
       ter the last part.  The padding must consist of null bytes and the size
129
       of  the  padding  must be a multiple of four bytes.  This can be useful
130
       of the padding must be a multiple of four bytes.  This can  be  useful,
130
       e.g. if the .xz file is stored on a medium that measures file sizes  in
131
       for  example,  if the .xz file is stored on a medium that measures file
131
       512-byte blocks.
132
       sizes in 512-byte blocks.
132
133
133
       Concatenation  and  padding  are  not  allowed  with .lzma files or raw
134
       Concatenation and padding are not  allowed  with  .lzma  files  or  raw
134
       streams.
135
       streams.
135
136
136
OPTIONS
137
OPTIONS
137
   Integer suffixes and special values
138
   Integer suffixes and special values
138
       In most places where an integer argument is expected, an optional  suf-
139
       In  most places where an integer argument is expected, an optional suf-
139
       fix  is  supported to easily indicate large integers.  There must be no
140
       fix is supported to easily indicate large integers.  There must  be  no
140
       space between the integer and the suffix.
141
       space between the integer and the suffix.
141
142
142
       KiB    Multiply the integer by 1,024 (2^10).  Ki, k, kB, K, and KB  are
143
       KiB    Multiply  the integer by 1,024 (2^10).  Ki, k, kB, K, and KB are
143
              accepted as synonyms for KiB.
144
              accepted as synonyms for KiB.
144
145
145
       MiB    Multiply  the integer by 1,048,576 (2^20).  Mi, m, M, and MB are
146
       MiB    Multiply the integer by 1,048,576 (2^20).  Mi, m, M, and MB  are
146
              accepted as synonyms for MiB.
147
              accepted as synonyms for MiB.
147
148
148
       GiB    Multiply the integer by 1,073,741,824 (2^30).  Gi, g, G, and  GB
149
       GiB    Multiply  the integer by 1,073,741,824 (2^30).  Gi, g, G, and GB
149
              are accepted as synonyms for GiB.
150
              are accepted as synonyms for GiB.
150
151
151
       The special value max can be used to indicate the maximum integer value
152
       The special value max can be used to indicate the maximum integer value
152
       supported by the option.
153
       supported by the option.
153
154
154
   Operation mode
155
   Operation mode
155
       If multiple operation mode options are given, the last  one  takes  ef-
156
       If  multiple  operation  mode options are given, the last one takes ef-
156
       fect.
157
       fect.
157
158
158
       -z, --compress
159
       -z, --compress
159
              Compress.   This is the default operation mode when no operation
160
              Compress.  This is the default operation mode when no  operation
160
              mode option is specified and no other operation mode is  implied
161
              mode  option is specified and no other operation mode is implied
161
              from the command name (for example, unxz implies --decompress).
162
              from the command name (for example, unxz implies --decompress).
162
163
163
       -d, --decompress, --uncompress
164
       -d, --decompress, --uncompress
164
              Decompress.
165
              Decompress.
165
166
166
       -t, --test
167
       -t, --test
167
              Test  the integrity of compressed files.  This option is equiva-
168
              Test the integrity of compressed files.  This option is  equiva-
168
              lent to --decompress --stdout except that the decompressed  data
169
              lent  to --decompress --stdout except that the decompressed data
169
              is  discarded  instead  of being written to standard output.  No
170
              is discarded instead of being written to  standard  output.   No
170
              files are created or removed.
171
              files are created or removed.
171
172
172
       -l, --list
173
       -l, --list
173
              Print information about compressed files.  No uncompressed  out-
174
              Print  information about compressed files.  No uncompressed out-
174
              put  is  produced, and no files are created or removed.  In list
175
              put is produced, and no files are created or removed.   In  list
175
              mode, the program cannot read the compressed data from  standard
176
              mode,  the program cannot read the compressed data from standard
176
              input or from other unseekable sources.
177
              input or from other unseekable sources.
177
178
178
              The  default  listing  shows  basic information about files, one
179
              The default listing shows basic  information  about  files,  one
179
              file per line.  To get more detailed information, use  also  the
180
              file  per  line.  To get more detailed information, use also the
180
              --verbose  option.   For  even  more  information, use --verbose
181
              --verbose option.  For  even  more  information,  use  --verbose
181
              twice, but note that this may be slow, because getting  all  the
182
              twice,  but  note that this may be slow, because getting all the
182
              extra  information  requires  many  seeks.  The width of verbose
183
              extra information requires many seeks.   The  width  of  verbose
183
              output exceeds 80 characters,  so  piping  the  output  to  e.g.
184
              output exceeds 80 characters, so piping the output to, for exam-
184
              less -S may be convenient if the terminal isn't wide enough.
185
              ple, less -S may  be  convenient  if  the  terminal  isn't  wide
186
              enough.
185
187
186
              The  exact output may vary between xz versions and different lo-
188
              The  exact output may vary between xz versions and different lo-
187
              cales.  For machine-readable output, --robot  --list  should  be
189
              cales.  For machine-readable output, --robot  --list  should  be
Lines 191-215 Link Here
191
       -k, --keep
193
       -k, --keep
192
              Don't delete the input files.
194
              Don't delete the input files.
193
195
196
              Since xz 5.2.6, this option also makes xz compress or decompress
197
              even if the input is a symbolic link to a regular file, has more
198
              than  one  hard  link,  or has the setuid, setgid, or sticky bit
199
              set.  The setuid, setgid, and sticky bits are not copied to  the
200
              target  file.   In  earlier  versions  this  was  only done with
201
              --force.
202
194
       -f, --force
203
       -f, --force
195
              This option has several effects:
204
              This option has several effects:
196
205
197
              o  If the target file already exists, delete it before compress-
206
              o  If the target file already exists, delete it before compress-
198
                 ing or decompressing.
207
                 ing or decompressing.
199
208
200
              o  Compress or decompress even if the input is a  symbolic  link
209
              o  Compress  or  decompress even if the input is a symbolic link
201
                 to  a  regular  file, has more than one hard link, or has the
210
                 to a regular file, has more than one hard link,  or  has  the
202
                 setuid, setgid, or sticky bit set.  The setuid,  setgid,  and
211
                 setuid,  setgid,  or sticky bit set.  The setuid, setgid, and
203
                 sticky bits are not copied to the target file.
212
                 sticky bits are not copied to the target file.
204
213
205
              o  When  used with --decompress --stdout and xz cannot recognize
214
              o  When used with --decompress --stdout and xz cannot  recognize
206
                 the type of the source file, copy the source file  as  is  to
215
                 the  type  of  the source file, copy the source file as is to
207
                 standard  output.   This allows xzcat --force to be used like
216
                 standard output.  This allows xzcat --force to be  used  like
208
                 cat(1) for files that have not been compressed with xz.  Note
217
                 cat(1) for files that have not been compressed with xz.  Note
209
                 that in future, xz might support new compressed file formats,
218
                 that in future, xz might support new compressed file formats,
210
                 which may make xz decompress more types of files  instead  of
219
                 which  may  make xz decompress more types of files instead of
211
                 copying  them  as is to standard output.  --format=format can
220
                 copying them as is to standard output.   --format=format  can
212
                 be used to restrict xz to decompress only a single file  for-
221
                 be  used to restrict xz to decompress only a single file for-
213
                 mat.
222
                 mat.
214
223
215
       -c, --stdout, --to-stdout
224
       -c, --stdout, --to-stdout
Lines 218-325 Link Here
218
227
219
       --single-stream
228
       --single-stream
220
              Decompress only the first .xz stream, and silently ignore possi-
229
              Decompress only the first .xz stream, and silently ignore possi-
221
              ble  remaining  input  data following the stream.  Normally such
230
              ble remaining input data following the  stream.   Normally  such
222
              trailing garbage makes xz display an error.
231
              trailing garbage makes xz display an error.
223
232
224
              xz never decompresses more than one stream from .lzma  files  or
233
              xz  never  decompresses more than one stream from .lzma files or
225
              raw  streams, but this option still makes xz ignore the possible
234
              raw streams, but this option still makes xz ignore the  possible
226
              trailing data after the .lzma file or raw stream.
235
              trailing data after the .lzma file or raw stream.
227
236
228
              This option has no effect if the operation mode is not  --decom-
237
              This  option has no effect if the operation mode is not --decom-
229
              press or --test.
238
              press or --test.
230
239
231
       --no-sparse
240
       --no-sparse
232
              Disable  creation of sparse files.  By default, if decompressing
241
              Disable creation of sparse files.  By default, if  decompressing
233
              into a regular file, xz tries to make the file sparse if the de-
242
              into a regular file, xz tries to make the file sparse if the de-
234
              compressed  data  contains  long  sequences of binary zeros.  It
243
              compressed data contains long sequences  of  binary  zeros.   It
235
              also works when writing to standard output as long  as  standard
244
              also  works  when writing to standard output as long as standard
236
              output  is  connected  to  a regular file and certain additional
245
              output is connected to a regular  file  and  certain  additional
237
              conditions are met to make it safe.  Creating sparse  files  may
246
              conditions  are  met to make it safe.  Creating sparse files may
238
              save  disk  space and speed up the decompression by reducing the
247
              save disk space and speed up the decompression by  reducing  the
239
              amount of disk I/O.
248
              amount of disk I/O.
240
249
241
       -S .suf, --suffix=.suf
250
       -S .suf, --suffix=.suf
242
              When compressing, use .suf as the suffix for the target file in-
251
              When compressing, use .suf as the suffix for the target file in-
243
              stead  of  .xz  or .lzma.  If not writing to standard output and
252
              stead of .xz or .lzma.  If not writing to  standard  output  and
244
              the source file already has the suffix .suf, a warning  is  dis-
253
              the  source  file already has the suffix .suf, a warning is dis-
245
              played and the file is skipped.
254
              played and the file is skipped.
246
255
247
              When  decompressing, recognize files with the suffix .suf in ad-
256
              When decompressing, recognize files with the suffix .suf in  ad-
248
              dition to files with the .xz, .txz, .lzma, or .tlz  suffix.   If
257
              dition  to files with the .xz, .txz, .lzma, .tlz, or .lz suffix.
249
              the  source  file  has the suffix .suf, the suffix is removed to
258
              If the source file has the suffix .suf, the suffix is removed to
250
              get the target filename.
259
              get the target filename.
251
260
252
              When compressing or decompressing  raw  streams  (--format=raw),
261
              When  compressing  or  decompressing raw streams (--format=raw),
253
              the  suffix  must always be specified unless writing to standard
262
              the suffix must always be specified unless writing  to  standard
254
              output, because there is no default suffix for raw streams.
263
              output, because there is no default suffix for raw streams.
255
264
256
       --files[=file]
265
       --files[=file]
257
              Read the filenames to process from file;  if  file  is  omitted,
266
              Read  the  filenames  to  process from file; if file is omitted,
258
              filenames  are read from standard input.  Filenames must be ter-
267
              filenames are read from standard input.  Filenames must be  ter-
259
              minated with the newline character.  A dash (-) is  taken  as  a
268
              minated  with  the  newline character.  A dash (-) is taken as a
260
              regular  filename; it doesn't mean standard input.  If filenames
269
              regular filename; it doesn't mean standard input.  If  filenames
261
              are given also as command line arguments, they are processed be-
270
              are given also as command line arguments, they are processed be-
262
              fore the filenames read from file.
271
              fore the filenames read from file.
263
272
264
       --files0[=file]
273
       --files0[=file]
265
              This  is  identical  to --files[=file] except that each filename
274
              This is identical to --files[=file] except  that  each  filename
266
              must be terminated with the null character.
275
              must be terminated with the null character.
267
276
268
   Basic file format and compression options
277
   Basic file format and compression options
269
       -F format, --format=format
278
       -F format, --format=format
270
              Specify the file format to compress or decompress:
279
              Specify the file format to compress or decompress:
271
280
272
              auto   This is the default.  When compressing, auto  is  equiva-
281
              auto   This  is  the default.  When compressing, auto is equiva-
273
                     lent  to xz.  When decompressing, the format of the input
282
                     lent to xz.  When decompressing, the format of the  input
274
                     file is automatically detected.  Note  that  raw  streams
283
                     file  is  automatically  detected.  Note that raw streams
275
                     (created with --format=raw) cannot be auto-detected.
284
                     (created with --format=raw) cannot be auto-detected.
276
285
277
              xz     Compress to the .xz file format, or accept only .xz files
286
              xz     Compress to the .xz file format, or accept only .xz files
278
                     when decompressing.
287
                     when decompressing.
279
288
280
              lzma, alone
289
              lzma, alone
281
                     Compress to the legacy .lzma file format, or accept  only
290
                     Compress  to the legacy .lzma file format, or accept only
282
                     .lzma  files  when  decompressing.   The alternative name
291
                     .lzma files when  decompressing.   The  alternative  name
283
                     alone is provided for backwards compatibility  with  LZMA
292
                     alone  is  provided for backwards compatibility with LZMA
284
                     Utils.
293
                     Utils.
285
294
286
              raw    Compress  or  uncompress a raw stream (no headers).  This
295
              lzip   Accept only .lz files when decompressing.  Compression is
296
                     not supported.
297
298
                     The .lz format version 0 and the unextended version 1 are
299
                     supported.  Version 0 files were produced by lzip 1.3 and
300
                     older.   Such  files  aren't common but may be found from
301
                     file archives as a few source packages were  released  in
302
                     this  format.   People  might  have old personal files in
303
                     this format too.  Decompression support  for  the  format
304
                     version 0 was removed in lzip 1.18.
305
306
                     lzip  1.4 and later create files in the format version 1.
307
                     The sync flush marker extension to the format  version  1
308
                     was added in lzip 1.6.  This extension is rarely used and
309
                     isn't supported by xz (diagnosed as corrupt input).
310
311
              raw    Compress or uncompress a raw stream (no  headers).   This
287
                     is meant for advanced users only.  To decode raw streams,
312
                     is meant for advanced users only.  To decode raw streams,
288
                     you need use --format=raw and explicitly specify the fil-
313
                     you need use --format=raw and explicitly specify the fil-
289
                     ter chain, which normally would have been stored  in  the
314
                     ter  chain,  which normally would have been stored in the
290
                     container headers.
315
                     container headers.
291
316
292
       -C check, --check=check
317
       -C check, --check=check
293
              Specify  the  type  of the integrity check.  The check is calcu-
318
              Specify the type of the integrity check.  The  check  is  calcu-
294
              lated from the uncompressed data and stored  in  the  .xz  file.
319
              lated  from  the  uncompressed  data and stored in the .xz file.
295
              This  option  has  an  effect only when compressing into the .xz
320
              This option has an effect only when  compressing  into  the  .xz
296
              format; the .lzma format doesn't support integrity checks.   The
321
              format;  the .lzma format doesn't support integrity checks.  The
297
              integrity check (if any) is verified when the .xz file is decom-
322
              integrity check (if any) is verified when the .xz file is decom-
298
              pressed.
323
              pressed.
299
324
300
              Supported check types:
325
              Supported check types:
301
326
302
              none   Don't calculate an integrity check at all.  This is  usu-
327
              none   Don't  calculate an integrity check at all.  This is usu-
303
                     ally  a  bad  idea.  This can be useful when integrity of
328
                     ally a bad idea.  This can be useful  when  integrity  of
304
                     the data is verified by other means anyway.
329
                     the data is verified by other means anyway.
305
330
306
              crc32  Calculate CRC32  using  the  polynomial  from  IEEE-802.3
331
              crc32  Calculate  CRC32  using  the  polynomial  from IEEE-802.3
307
                     (Ethernet).
332
                     (Ethernet).
308
333
309
              crc64  Calculate CRC64 using the polynomial from ECMA-182.  This
334
              crc64  Calculate CRC64 using the polynomial from ECMA-182.  This
310
                     is the default, since it is slightly better than CRC32 at
335
                     is the default, since it is slightly better than CRC32 at
311
                     detecting  damaged files and the speed difference is neg-
336
                     detecting damaged files and the speed difference is  neg-
312
                     ligible.
337
                     ligible.
313
338
314
              sha256 Calculate SHA-256.  This is somewhat  slower  than  CRC32
339
              sha256 Calculate  SHA-256.   This  is somewhat slower than CRC32
315
                     and CRC64.
340
                     and CRC64.
316
341
317
              Integrity  of the .xz headers is always verified with CRC32.  It
342
              Integrity of the .xz headers is always verified with CRC32.   It
318
              is not possible to change or disable it.
343
              is not possible to change or disable it.
319
344
320
       --ignore-check
345
       --ignore-check
321
              Don't verify the integrity check of the compressed data when de-
346
              Don't verify the integrity check of the compressed data when de-
322
              compressing.   The CRC32 values in the .xz headers will still be
347
              compressing.  The CRC32 values in the .xz headers will still  be
323
              verified normally.
348
              verified normally.
324
349
325
              Do not use this option unless you know what you are doing.  Pos-
350
              Do not use this option unless you know what you are doing.  Pos-
Lines 327-376 Link Here
327
352
328
              o  Trying to recover data from a corrupt .xz file.
353
              o  Trying to recover data from a corrupt .xz file.
329
354
330
              o  Speeding  up decompression.  This matters mostly with SHA-256
355
              o  Speeding up decompression.  This matters mostly with  SHA-256
331
                 or with files that have compressed extremely well.  It's rec-
356
                 or with files that have compressed extremely well.  It's rec-
332
                 ommended  to  not use this option for this purpose unless the
357
                 ommended to not use this option for this purpose  unless  the
333
                 file integrity is verified externally in some other way.
358
                 file integrity is verified externally in some other way.
334
359
335
       -0 ... -9
360
       -0 ... -9
336
              Select a compression preset level.  The default is -6.  If  mul-
361
              Select  a compression preset level.  The default is -6.  If mul-
337
              tiple  preset  levels  are specified, the last one takes effect.
362
              tiple preset levels are specified, the last  one  takes  effect.
338
              If a custom filter chain was already specified, setting  a  com-
363
              If  a  custom filter chain was already specified, setting a com-
339
              pression preset level clears the custom filter chain.
364
              pression preset level clears the custom filter chain.
340
365
341
              The  differences  between  the presets are more significant than
366
              The differences between the presets are  more  significant  than
342
              with gzip(1) and bzip2(1).  The  selected  compression  settings
367
              with  gzip(1)  and  bzip2(1).  The selected compression settings
343
              determine  the memory requirements of the decompressor, thus us-
368
              determine the memory requirements of the decompressor, thus  us-
344
              ing a too high preset level might make it painful to  decompress
369
              ing  a too high preset level might make it painful to decompress
345
              the  file  on an old system with little RAM.  Specifically, it's
370
              the file on an old system with little RAM.   Specifically,  it's
346
              not a good idea to blindly use -9 for everything like  it  often
371
              not  a  good idea to blindly use -9 for everything like it often
347
              is with gzip(1) and bzip2(1).
372
              is with gzip(1) and bzip2(1).
348
373
349
              -0 ... -3
374
              -0 ... -3
350
                     These  are somewhat fast presets.  -0 is sometimes faster
375
                     These are somewhat fast presets.  -0 is sometimes  faster
351
                     than gzip -9 while compressing much better.   The  higher
376
                     than  gzip  -9 while compressing much better.  The higher
352
                     ones  often have speed comparable to bzip2(1) with compa-
377
                     ones often have speed comparable to bzip2(1) with  compa-
353
                     rable or better compression ratio, although  the  results
378
                     rable  or  better compression ratio, although the results
354
                     depend a lot on the type of data being compressed.
379
                     depend a lot on the type of data being compressed.
355
380
356
              -4 ... -6
381
              -4 ... -6
357
                     Good  to very good compression while keeping decompressor
382
                     Good to very good compression while keeping  decompressor
358
                     memory usage reasonable even for old systems.  -6 is  the
383
                     memory  usage reasonable even for old systems.  -6 is the
359
                     default,  which  is  usually  a good choice e.g. for dis-
384
                     default, which is usually a good choice for  distributing
360
                     tributing files that need to be  decompressible  even  on
385
                     files that need to be decompressible even on systems with
361
                     systems  with  only 16 MiB RAM.  (-5e or -6e may be worth
386
                     only 16 MiB RAM.  (-5e or -6e may  be  worth  considering
362
                     considering too.  See --extreme.)
387
                     too.  See --extreme.)
363
388
364
              -7 ... -9
389
              -7 ... -9
365
                     These are like -6 but with higher compressor  and  decom-
390
                     These  are  like -6 but with higher compressor and decom-
366
                     pressor  memory requirements.  These are useful only when
391
                     pressor memory requirements.  These are useful only  when
367
                     compressing files bigger than 8 MiB, 16 MiB, and  32 MiB,
392
                     compressing  files bigger than 8 MiB, 16 MiB, and 32 MiB,
368
                     respectively.
393
                     respectively.
369
394
370
              On the same hardware, the decompression speed is approximately a
395
              On the same hardware, the decompression speed is approximately a
371
              constant number of bytes of  compressed  data  per  second.   In
396
              constant  number  of  bytes  of  compressed data per second.  In
372
              other  words,  the better the compression, the faster the decom-
397
              other words, the better the compression, the faster  the  decom-
373
              pression will usually be.  This also means that  the  amount  of
398
              pression  will  usually  be.  This also means that the amount of
374
              uncompressed output produced per second can vary a lot.
399
              uncompressed output produced per second can vary a lot.
375
400
376
              The following table summarises the features of the presets:
401
              The following table summarises the features of the presets:
Lines 390-429 Link Here
390
              Column descriptions:
415
              Column descriptions:
391
416
392
              o  DictSize is the LZMA2 dictionary size.  It is waste of memory
417
              o  DictSize is the LZMA2 dictionary size.  It is waste of memory
393
                 to use a dictionary bigger than the size of the  uncompressed
418
                 to  use a dictionary bigger than the size of the uncompressed
394
                 file.   This  is why it is good to avoid using the presets -7
419
                 file.  This is why it is good to avoid using the  presets  -7
395
                 ... -9 when there's no real need for them.  At -6 and  lower,
420
                 ...  -9 when there's no real need for them.  At -6 and lower,
396
                 the amount of memory wasted is usually low enough to not mat-
421
                 the amount of memory wasted is usually low enough to not mat-
397
                 ter.
422
                 ter.
398
423
399
              o  CompCPU is a simplified representation of the LZMA2  settings
424
              o  CompCPU  is a simplified representation of the LZMA2 settings
400
                 that  affect  compression speed.  The dictionary size affects
425
                 that affect compression speed.  The dictionary  size  affects
401
                 speed too, so while CompCPU is the same for levels -6 ... -9,
426
                 speed too, so while CompCPU is the same for levels -6 ... -9,
402
                 higher  levels still tend to be a little slower.  To get even
427
                 higher levels still tend to be a little slower.  To get  even
403
                 slower and thus possibly better compression, see --extreme.
428
                 slower and thus possibly better compression, see --extreme.
404
429
405
              o  CompMem contains the compressor memory  requirements  in  the
430
              o  CompMem  contains  the  compressor memory requirements in the
406
                 single-threaded  mode.   It may vary slightly between xz ver-
431
                 single-threaded mode.  It may vary slightly between  xz  ver-
407
                 sions.  Memory requirements of  some  of  the  future  multi-
432
                 sions.   Memory  requirements  of  some  of the future multi-
408
                 threaded  modes  may  be dramatically higher than that of the
433
                 threaded modes may be dramatically higher than  that  of  the
409
                 single-threaded mode.
434
                 single-threaded mode.
410
435
411
              o  DecMem contains the decompressor memory  requirements.   That
436
              o  DecMem  contains  the decompressor memory requirements.  That
412
                 is,  the  compression  settings determine the memory require-
437
                 is, the compression settings determine  the  memory  require-
413
                 ments of the decompressor.  The exact decompressor memory us-
438
                 ments of the decompressor.  The exact decompressor memory us-
414
                 age  is slightly more than the LZMA2 dictionary size, but the
439
                 age is slightly more than the LZMA2 dictionary size, but  the
415
                 values in the table have been rounded up  to  the  next  full
440
                 values  in  the  table  have been rounded up to the next full
416
                 MiB.
441
                 MiB.
417
442
418
       -e, --extreme
443
       -e, --extreme
419
              Use  a  slower  variant of the selected compression preset level
444
              Use a slower variant of the selected  compression  preset  level
420
              (-0 ... -9) to hopefully get a little bit better compression ra-
445
              (-0 ... -9) to hopefully get a little bit better compression ra-
421
              tio,  but with bad luck this can also make it worse.  Decompres-
446
              tio, but with bad luck this can also make it worse.   Decompres-
422
              sor memory usage is not affected, but  compressor  memory  usage
447
              sor  memory  usage  is not affected, but compressor memory usage
423
              increases a little at preset levels -0 ... -3.
448
              increases a little at preset levels -0 ... -3.
424
449
425
              Since  there  are  two  presets  with dictionary sizes 4 MiB and
450
              Since there are two presets  with  dictionary  sizes  4 MiB  and
426
              8 MiB, the presets -3e and  -5e  use  slightly  faster  settings
451
              8 MiB,  the  presets  -3e  and  -5e use slightly faster settings
427
              (lower CompCPU) than -4e and -6e, respectively.  That way no two
452
              (lower CompCPU) than -4e and -6e, respectively.  That way no two
428
              presets are identical.
453
              presets are identical.
429
454
Lines 439-538 Link Here
439
                      -8e      32 MiB       8      370 MiB   33 MiB
464
                      -8e      32 MiB       8      370 MiB   33 MiB
440
                      -9e      64 MiB       8      674 MiB   65 MiB
465
                      -9e      64 MiB       8      674 MiB   65 MiB
441
466
442
              For example, there are a total of four presets  that  use  8 MiB
467
              For  example,  there  are a total of four presets that use 8 MiB
443
              dictionary,  whose  order from the fastest to the slowest is -5,
468
              dictionary, whose order from the fastest to the slowest  is  -5,
444
              -6, -5e, and -6e.
469
              -6, -5e, and -6e.
445
470
446
       --fast
471
       --fast
447
       --best These are somewhat misleading aliases for  -0  and  -9,  respec-
472
       --best These  are  somewhat  misleading  aliases for -0 and -9, respec-
448
              tively.   These  are  provided  only for backwards compatibility
473
              tively.  These are provided  only  for  backwards  compatibility
449
              with LZMA Utils.  Avoid using these options.
474
              with LZMA Utils.  Avoid using these options.
450
475
451
       --block-size=size
476
       --block-size=size
452
              When compressing to the .xz format, split the  input  data  into
477
              When  compressing  to  the .xz format, split the input data into
453
              blocks  of  size bytes.  The blocks are compressed independently
478
              blocks of size bytes.  The blocks are  compressed  independently
454
              from each other, which helps with multi-threading and makes lim-
479
              from each other, which helps with multi-threading and makes lim-
455
              ited random-access decompression possible.  This option is typi-
480
              ited random-access decompression possible.  This option is typi-
456
              cally used to override the default block size in  multi-threaded
481
              cally  used to override the default block size in multi-threaded
457
              mode, but this option can be used in single-threaded mode too.
482
              mode, but this option can be used in single-threaded mode too.
458
483
459
              In  multi-threaded mode about three times size bytes will be al-
484
              In multi-threaded mode about three times size bytes will be  al-
460
              located in each thread for buffering input and output.  The  de-
485
              located  in each thread for buffering input and output.  The de-
461
              fault  size  is  three times the LZMA2 dictionary size or 1 MiB,
486
              fault size is three times the LZMA2 dictionary size  or  1  MiB,
462
              whichever is more.  Typically a good value is 2-4 times the size
487
              whichever is more.  Typically a good value is 2-4 times the size
463
              of the LZMA2 dictionary or at least 1 MiB.  Using size less than
488
              of the LZMA2 dictionary or at least 1 MiB.  Using size less than
464
              the LZMA2 dictionary size is waste of RAM because then the LZMA2
489
              the LZMA2 dictionary size is waste of RAM because then the LZMA2
465
              dictionary  buffer  will never get fully used.  The sizes of the
490
              dictionary buffer will never get fully used.  The sizes  of  the
466
              blocks are stored in the block headers, which a  future  version
491
              blocks  are  stored in the block headers, which a future version
467
              of xz will use for multi-threaded decompression.
492
              of xz will use for multi-threaded decompression.
468
493
469
              In  single-threaded  mode no block splitting is done by default.
494
              In single-threaded mode no block splitting is done  by  default.
470
              Setting this option doesn't affect memory usage.  No size infor-
495
              Setting this option doesn't affect memory usage.  No size infor-
471
              mation is stored in block headers, thus files created in single-
496
              mation is stored in block headers, thus files created in single-
472
              threaded mode won't be identical  to  files  created  in  multi-
497
              threaded  mode  won't  be  identical  to files created in multi-
473
              threaded  mode.   The lack of size information also means that a
498
              threaded mode.  The lack of size information also means  that  a
474
              future version of xz won't  be  able  decompress  the  files  in
499
              future  version  of  xz  won't  be  able decompress the files in
475
              multi-threaded mode.
500
              multi-threaded mode.
476
501
477
       --block-list=sizes
502
       --block-list=sizes
478
              When  compressing to the .xz format, start a new block after the
503
              When compressing to the .xz format, start a new block after  the
479
              given intervals of uncompressed data.
504
              given intervals of uncompressed data.
480
505
481
              The uncompressed sizes of the blocks are specified as  a  comma-
506
              The  uncompressed  sizes of the blocks are specified as a comma-
482
              separated  list.   Omitting a size (two or more consecutive com-
507
              separated list.  Omitting a size (two or more  consecutive  com-
483
              mas) is a shorthand to use the size of the previous block.
508
              mas) is a shorthand to use the size of the previous block.
484
509
485
              If the input file is bigger than the  sum  of  sizes,  the  last
510
              If  the  input  file  is  bigger than the sum of sizes, the last
486
              value in sizes is repeated until the end of the file.  A special
511
              value in sizes is repeated until the end of the file.  A special
487
              value of 0 may be used as the last value to  indicate  that  the
512
              value  of  0  may be used as the last value to indicate that the
488
              rest of the file should be encoded as a single block.
513
              rest of the file should be encoded as a single block.
489
514
490
              If one specifies sizes that exceed the encoder's block size (ei-
515
              If one specifies sizes that exceed the encoder's block size (ei-
491
              ther the default value in threaded mode or the  value  specified
516
              ther  the  default value in threaded mode or the value specified
492
              with  --block-size=size),  the  encoder  will  create additional
517
              with --block-size=size),  the  encoder  will  create  additional
493
              blocks while keeping the boundaries specified in sizes.  For ex-
518
              blocks while keeping the boundaries specified in sizes.  For ex-
494
              ample,       if       one      specifies      --block-size=10MiB
519
              ample,      if      one       specifies       --block-size=10MiB
495
              --block-list=5MiB,10MiB,8MiB,12MiB,24MiB and the input  file  is
520
              --block-list=5MiB,10MiB,8MiB,12MiB,24MiB  and  the input file is
496
              80  MiB, one will get 11 blocks: 5, 10, 8, 10, 2, 10, 10, 4, 10,
521
              80 MiB, one will get 11 blocks: 5, 10, 8, 10, 2, 10, 10, 4,  10,
497
              10, and 1 MiB.
522
              10, and 1 MiB.
498
523
499
              In multi-threaded mode the sizes of the blocks are stored in the
524
              In multi-threaded mode the sizes of the blocks are stored in the
500
              block  headers.  This isn't done in single-threaded mode, so the
525
              block headers.  This isn't done in single-threaded mode, so  the
501
              encoded output won't be identical to that of the  multi-threaded
526
              encoded  output won't be identical to that of the multi-threaded
502
              mode.
527
              mode.
503
528
504
       --flush-timeout=timeout
529
       --flush-timeout=timeout
505
              When  compressing, if more than timeout milliseconds (a positive
530
              When compressing, if more than timeout milliseconds (a  positive
506
              integer) has passed since the previous flush  and  reading  more
531
              integer)  has  passed  since the previous flush and reading more
507
              input  would  block,  all the pending input data is flushed from
532
              input would block, all the pending input data  is  flushed  from
508
              the encoder and made available in the output stream.   This  can
533
              the  encoder  and made available in the output stream.  This can
509
              be useful if xz is used to compress data that is streamed over a
534
              be useful if xz is used to compress data that is streamed over a
510
              network.  Small timeout values make the data  available  at  the
535
              network.   Small  timeout  values make the data available at the
511
              receiving  end with a small delay, but large timeout values give
536
              receiving end with a small delay, but large timeout values  give
512
              better compression ratio.
537
              better compression ratio.
513
538
514
              This feature is disabled by default.  If this option  is  speci-
539
              This  feature  is disabled by default.  If this option is speci-
515
              fied  more  than  once,  the last one takes effect.  The special
540
              fied more than once, the last one  takes  effect.   The  special
516
              timeout value of 0 can be used to explicitly disable  this  fea-
541
              timeout  value  of 0 can be used to explicitly disable this fea-
517
              ture.
542
              ture.
518
543
519
              This feature is not available on non-POSIX systems.
544
              This feature is not available on non-POSIX systems.
520
545
521
              This  feature is still experimental.  Currently xz is unsuitable
546
              This feature is still experimental.  Currently xz is  unsuitable
522
              for decompressing the stream in real time due  to  how  xz  does
547
              for  decompressing  the  stream  in real time due to how xz does
523
              buffering.
548
              buffering.
524
549
525
       --memlimit-compress=limit
550
       --memlimit-compress=limit
526
              Set  a  memory  usage  limit for compression.  If this option is
551
              Set a memory usage limit for compression.   If  this  option  is
527
              specified multiple times, the last one takes effect.
552
              specified multiple times, the last one takes effect.
528
553
529
              If the compression settings exceed the limit, xz will adjust the
554
              If the compression settings exceed the limit, xz will attempt to
530
              settings  downwards  so that the limit is no longer exceeded and
555
              adjust the settings downwards so that the limit is no longer ex-
531
              display a notice that automatic adjustment was done.   Such  ad-
556
              ceeded  and display a notice that automatic adjustment was done.
532
              justments  are not made when compressing with --format=raw or if
557
              The adjustments are done in this order: reducing the  number  of
533
              --no-adjust has been specified.  In those  cases,  an  error  is
558
              threads, switching to single-threaded mode if even one thread in
534
              displayed and xz will exit with exit status 1.
559
              multi-threaded mode exceeds the limit, and finally reducing  the
560
              LZMA2 dictionary size.
535
561
562
              When  compressing  with  --format=raw or if --no-adjust has been
563
              specified, only the number of threads may be  reduced  since  it
564
              can be done without affecting the compressed output.
565
566
              If  the  limit cannot be met even with the adjustments described
567
              above, an error is displayed and xz will exit with  exit  status
568
              1.
569
536
              The limit can be specified in multiple ways:
570
              The limit can be specified in multiple ways:
537
571
538
              o  The  limit can be an absolute value in bytes.  Using an inte-
572
              o  The  limit can be an absolute value in bytes.  Using an inte-
Lines 548-564 Link Here
548
582
549
              o  The limit can be reset back to its default value  by  setting
583
              o  The limit can be reset back to its default value  by  setting
550
                 it  to  0.  This is currently equivalent to setting the limit
584
                 it  to  0.  This is currently equivalent to setting the limit
551
                 to max (no memory usage limit).  Once multithreading  support
585
                 to max (no memory usage limit).
552
                 has been implemented, there may be a difference between 0 and
553
                 max for the multithreaded case, so it is recommended to use 0
554
                 instead of max until the details have been decided.
555
586
556
              For  32-bit  xz  there  is a special case: if the limit would be
587
              For 32-bit xz there is a special case: if  the  limit  would  be
557
              over 4020 MiB, the limit is set to 4020 MiB.  (The values 0  and
588
              over 4020 MiB, the limit is set to 4020 MiB.  On MIPS32 2000 MiB
558
              max  aren't  affected  by this.  A similar feature doesn't exist
589
              is used instead.  (The values 0 and max aren't affected by this.
559
              for decompression.)  This can be  helpful  when  a  32-bit  exe-
590
              A similar feature doesn't exist for decompression.)  This can be
560
              cutable  has access to 4 GiB address space while hopefully doing
591
              helpful when a 32-bit executable has  access  to  4 GiB  address
561
              no harm in other situations.
592
              space  (2  GiB on MIPS32) while hopefully doing no harm in other
593
              situations.
562
594
563
              See also the section Memory usage.
595
              See also the section Memory usage.
564
596
Lines 569-603 Link Here
569
              the  file will fail.  See --memlimit-compress=limit for possible
601
              the  file will fail.  See --memlimit-compress=limit for possible
570
              ways to specify the limit.
602
              ways to specify the limit.
571
603
604
       --memlimit-mt-decompress=limit
605
              Set a memory usage limit for multi-threaded decompression.  This
606
              can  only  affect the number of threads; this will never make xz
607
              refuse to decompress a file.  If limit is too low to  allow  any
608
              multi-threading,  the  limit  is ignored and xz will continue in
609
              single-threaded mode.  Note that if  also  --memlimit-decompress
610
              is used, it will always apply to both single-threaded and multi-
611
              threaded modes, and so the effective limit  for  multi-threading
612
              will  never  be higher than the limit set with --memlimit-decom-
613
              press.
614
615
              In contrast to the other  memory  usage  limit  options,  --mem-
616
              limit-mt-decompress=limit  has  a system-specific default limit.
617
              xz --info-memory can be used to see the current value.
618
619
              This option and its default  value  exist  because  without  any
620
              limit  the  threaded decompressor could end up allocating an in-
621
              sane amount of memory with some input  files.   If  the  default
622
              limit is too low on your system, feel free to increase the limit
623
              but never set it to a value larger than the amount of usable RAM
624
              as  with  appropriate  input  files  xz will attempt to use that
625
              amount of memory even with a low number of threads.  Running out
626
              of  memory  or  swapping  will not improve decompression perfor-
627
              mance.
628
629
              See --memlimit-compress=limit for possible ways to  specify  the
630
              limit.   Setting limit to 0 resets the limit to the default sys-
631
              tem-specific value.
632
633
634
572
       -M limit, --memlimit=limit, --memory=limit
635
       -M limit, --memlimit=limit, --memory=limit
573
              This  is  equivalent  to  specifying   --memlimit-compress=limit
636
              This  is  equivalent  to  specifying   --memlimit-compress=limit
574
              --memlimit-decompress=limit.
637
              --memlimit-decompress=limit --memlimit-mt-decompress=limit.
575
638
576
       --no-adjust
639
       --no-adjust
577
              Display an error and exit if the compression settings exceed the
640
              Display  an  error  and exit if the memory usage limit cannot be
578
              memory usage limit.  The default is to adjust the settings down-
641
              met without adjusting settings that affect the  compressed  out-
579
              wards so that the memory usage limit is not exceeded.  Automatic
642
              put.   That is, this prevents xz from switching the encoder from
580
              adjusting is always disabled when creating raw  streams  (--for-
643
              multi-threaded mode to single-threaded mode  and  from  reducing
581
              mat=raw).
644
              the  LZMA2  dictionary  size.  Even when this option is used the
645
              number of threads may be reduced to meet the memory usage  limit
646
              as that won't affect the compressed output.
582
647
648
              Automatic adjusting is always disabled when creating raw streams
649
              (--format=raw).
650
583
       -T threads, --threads=threads
651
       -T threads, --threads=threads
584
              Specify the number of worker threads to use.  Setting threads to
652
              Specify the number of worker threads to use.  Setting threads to
585
              a special value 0 makes xz use as many threads as there are  CPU
653
              a special value 0 makes xz use up to as many threads as the pro-
586
              cores  on  the system.  The actual number of threads can be less
654
              cessor(s) on the system support.  The actual number  of  threads
587
              than threads if the input file is not big enough  for  threading
655
              can  be  fewer  than threads if the input file is not big enough
588
              with  the  given  settings or if using more threads would exceed
656
              for threading with the given settings or if using  more  threads
589
              the memory usage limit.
657
              would exceed the memory usage limit.
590
658
659
              The  single-threaded and multi-threaded compressors produce dif-
660
              ferent output.  Single-threaded compressor will give the  small-
661
              est  file  size but only the output from the multi-threaded com-
662
              pressor can be decompressed  using  multiple  threads.   Setting
663
              threads to 1 will use the single-threaded mode.  Setting threads
664
              to any other value, including 0,  will  use  the  multi-threaded
665
              compressor even if the system supports only one hardware thread.
666
              (xz 5.2.x used single-threaded mode in this situation.)
667
668
              To use multi-threaded mode with only one thread, set threads  to
669
              +1.   The  +  prefix  has no effect with values other than 1.  A
670
              memory usage limit can still make xz switch  to  single-threaded
671
              mode  unless  --no-adjust is used.  Support for the + prefix was
672
              added in xz 5.4.0.
673
674
              If an automatic number of threads has been requested and no mem-
675
              ory  usage  limit has been specified, then a system-specific de-
676
              fault soft limit will be used to possibly limit  the  number  of
677
              threads.   It is a soft limit in sense that it is ignored if the
678
              number of threads becomes one, thus a soft limit will never stop
679
              xz  from  compressing or decompressing.  This default soft limit
680
              will not make xz switch  from  multi-threaded  mode  to  single-
681
              threaded   mode.    The  active  limits  can  be  seen  with  xz
682
              --info-memory.
683
591
              Currently the only threading method is to split the  input  into
684
              Currently the only threading method is to split the  input  into
592
              blocks and compress them independently from each other.  The de-
685
              blocks and compress them independently from each other.  The de-
593
              fault block size depends on the compression  level  and  can  be
686
              fault block size depends on the compression  level  and  can  be
594
              overridden with the --block-size=size option.
687
              overridden with the --block-size=size option.
595
688
596
              Threaded  decompression  hasn't  been  implemented yet.  It will
689
              Threaded decompression only works on files that contain multiple
597
              only work on files that contain multiple blocks with size infor-
690
              blocks with size information in block headers.  All large enough
598
              mation in block headers.  All files compressed in multi-threaded
691
              files compressed in multi-threaded mode meet this condition, but
599
              mode meet  this  condition,  but  files  compressed  in  single-
692
              files  compressed  in  single-threaded  mode   don't   even   if
600
              threaded mode don't even if --block-size=size is used.
693
              --block-size=size has been used.
601
694
602
   Custom compressor filter chains
695
   Custom compressor filter chains
603
       A custom filter chain allows specifying the compression settings in de-
696
       A custom filter chain allows specifying the compression settings in de-
Lines 695-713 Link Here
695
788
696
                     The literal coding makes an assumption that  the  highest
789
                     The literal coding makes an assumption that  the  highest
697
                     lc  bits of the previous uncompressed byte correlate with
790
                     lc  bits of the previous uncompressed byte correlate with
698
                     the next byte.  E.g. in typical English text,  an  upper-
791
                     the next byte.  For example, in typical English text,  an
699
                     case letter is often followed by a lower-case letter, and
792
                     upper-case  letter is often followed by a lower-case let-
700
                     a lower-case letter is usually followed by another lower-
793
                     ter, and a lower-case letter is usually followed  by  an-
701
                     case  letter.  In the US-ASCII character set, the highest
794
                     other  lower-case letter.  In the US-ASCII character set,
702
                     three bits are 010 for upper-case  letters  and  011  for
795
                     the highest three bits are 010 for upper-case letters and
703
                     lower-case  letters.   When lc is at least 3, the literal
796
                     011  for  lower-case letters.  When lc is at least 3, the
704
                     coding can take advantage of this property in the  uncom-
797
                     literal coding can take advantage of this property in the
705
                     pressed data.
798
                     uncompressed data.
706
799
707
                     The default value (3) is usually good.  If you want maxi-
800
                     The default value (3) is usually good.  If you want maxi-
708
                     mum compression, test lc=4.  Sometimes it helps a little,
801
                     mum compression, test lc=4.  Sometimes it helps a little,
709
                     and sometimes it makes compression worse.  If it makes it
802
                     and sometimes it makes compression worse.  If it makes it
710
                     worse, test e.g. lc=2 too.
803
                     worse, test lc=2 too.
711
804
712
              lp=lp  Specify the number of literal position bits.  The minimum
805
              lp=lp  Specify the number of literal position bits.  The minimum
713
                     is 0 and the maximum is 4; the default is 0.
806
                     is 0 and the maximum is 4; the default is 0.
Lines 724-735 Link Here
724
                     alignment (2^pb=2^2=4), which is often a good choice when
817
                     alignment (2^pb=2^2=4), which is often a good choice when
725
                     there's no better guess.
818
                     there's no better guess.
726
819
727
                     When  the  aligment  is known, setting pb accordingly may
820
                     When  the  alignment is known, setting pb accordingly may
728
                     reduce the file size a little.  E.g. with text files hav-
821
                     reduce the file size a little.  For  example,  with  text
729
                     ing  one-byte  alignment  (US-ASCII,  ISO-8859-*, UTF-8),
822
                     files  having  one-byte  alignment (US-ASCII, ISO-8859-*,
730
                     setting  pb=0  can  improve  compression  slightly.   For
823
                     UTF-8), setting pb=0 can  improve  compression  slightly.
731
                     UTF-16  text, pb=1 is a good choice.  If the alignment is
824
                     For UTF-16 text, pb=1 is a good choice.  If the alignment
732
                     an odd number like  3  bytes,  pb=0  might  be  the  best
825
                     is an odd number like 3 bytes, pb=0  might  be  the  best
733
                     choice.
826
                     choice.
734
827
735
                     Even though the assumed alignment can be adjusted with pb
828
                     Even though the assumed alignment can be adjusted with pb
Lines 811-820 Link Here
811
              dictionary size.  LZMA1 needs also lc, lp, and pb.
904
              dictionary size.  LZMA1 needs also lc, lp, and pb.
812
905
813
       --x86[=options]
906
       --x86[=options]
814
       --powerpc[=options]
815
       --ia64[=options]
816
       --arm[=options]
907
       --arm[=options]
817
       --armthumb[=options]
908
       --armthumb[=options]
909
       --arm64[=options]
910
       --powerpc[=options]
911
       --ia64[=options]
818
       --sparc[=options]
912
       --sparc[=options]
819
              Add a branch/call/jump (BCJ) filter to the filter chain.   These
913
              Add a branch/call/jump (BCJ) filter to the filter chain.   These
820
              filters  can  be  used  only  as a non-last filter in the filter
914
              filters  can  be  used  only  as a non-last filter in the filter
Lines 822-910 Link Here
822
916
823
              A BCJ filter converts relative addresses in the machine code  to
917
              A BCJ filter converts relative addresses in the machine code  to
824
              their  absolute  counterparts.   This doesn't change the size of
918
              their  absolute  counterparts.   This doesn't change the size of
825
              the data, but it increases redundancy, which can help  LZMA2  to
919
              the data but it increases redundancy, which can  help  LZMA2  to
826
              produce 0-15 % smaller .xz file.  The BCJ filters are always re-
920
              produce 0-15 % smaller .xz file.  The BCJ filters are always re-
827
              versible, so using a BCJ filter for wrong type of  data  doesn't
921
              versible, so using a BCJ filter for wrong type of  data  doesn't
828
              cause  any data loss, although it may make the compression ratio
922
              cause  any data loss, although it may make the compression ratio
829
              slightly worse.
923
              slightly worse.  The BCJ filters are very fast and  use  an  in-
924
              significant amount of memory.
830
925
831
              It is fine to apply a BCJ filter on a whole executable;  there's
832
              no  need to apply it only on the executable section.  Applying a
833
              BCJ filter on an archive that contains both executable and  non-
834
              executable  files may or may not give good results, so it gener-
835
              ally isn't good to blindly apply a BCJ filter  when  compressing
836
              binary packages for distribution.
837
838
              These  BCJ filters are very fast and use insignificant amount of
839
              memory.  If a BCJ filter improves compression ratio of  a  file,
840
              it  can  improve  decompression speed at the same time.  This is
841
              because, on the same hardware, the decompression speed of  LZMA2
842
              is  roughly  a fixed number of bytes of compressed data per sec-
843
              ond.
844
845
              These BCJ filters have known problems related to the compression
926
              These BCJ filters have known problems related to the compression
846
              ratio:
927
              ratio:
847
928
848
              o  Some  types  of files containing executable code (e.g. object
929
              o  Some types of files containing executable code (for  example,
849
                 files, static libraries, and Linux kernel modules)  have  the
930
                 object  files,  static  libraries,  and Linux kernel modules)
850
                 addresses  in  the  instructions  filled  with filler values.
931
                 have the addresses in the  instructions  filled  with  filler
851
                 These BCJ filters will still do the address conversion, which
932
                 values.   These BCJ filters will still do the address conver-
852
                 will make the compression worse with these files.
933
                 sion, which will make the compression worse with these files.
853
934
854
              o  Applying a BCJ filter on an archive containing multiple simi-
935
              o  If a BCJ filter is applied on an archive, it is possible that
855
                 lar executables can make the compression ratio worse than not
936
                 it  makes  the  compression  ratio worse than not using a BCJ
856
                 using  a  BCJ filter.  This is because the BCJ filter doesn't
937
                 filter.  For example, if there are similar or even  identical
857
                 detect the boundaries of the executable  files,  and  doesn't
938
                 executables  then  filtering  will likely make the files less
858
                 reset the address conversion counter for each executable.
939
                 similar and thus compression is worse.  The contents of  non-
940
                 executable  files  in  the  same  archive can matter too.  In
941
                 practice one has to try with and without a BCJ filter to  see
942
                 which is better in each situation.
859
943
860
              Both  of the above problems will be fixed in the future in a new
944
              Different  instruction  sets  have different alignment: the exe-
861
              filter.  The old BCJ filters will still be  useful  in  embedded
945
              cutable file must be aligned to a multiple of this value in  the
862
              systems,  because  the  decoder of the new filter will be bigger
946
              input data to make the filter work.
863
              and use more memory.
864
947
865
              Different instruction sets have different alignment:
866
867
                     Filter      Alignment   Notes
948
                     Filter      Alignment   Notes
868
                     x86             1       32-bit or 64-bit x86
949
                     x86             1       32-bit or 64-bit x86
950
                     ARM             4
951
                     ARM-Thumb       2
952
                     ARM64           4       4096-byte alignment is best
869
                     PowerPC         4       Big endian only
953
                     PowerPC         4       Big endian only
870
                     ARM             4       Little endian only
954
                     IA-64          16       Itanium
871
                     ARM-Thumb       2       Little endian only
955
                     SPARC           4
872
                     IA-64          16       Big or little endian
873
                     SPARC           4       Big or little endian
874
956
875
              Since the BCJ-filtered data is usually  compressed  with  LZMA2,
957
              Since  the  BCJ-filtered  data is usually compressed with LZMA2,
876
              the  compression ratio may be improved slightly if the LZMA2 op-
958
              the compression ratio may be improved slightly if the LZMA2  op-
877
              tions are set to match the alignment of the selected BCJ filter.
959
              tions are set to match the alignment of the selected BCJ filter.
878
              For  example,  with the IA-64 filter, it's good to set pb=4 with
960
              For example, with the IA-64 filter, it's good  to  set  pb=4  or
879
              LZMA2 (2^4=16).  The x86 filter is an  exception;  it's  usually
961
              even  pb=4,lp=4,lc=0  with LZMA2 (2^4=16).  The x86 filter is an
880
              good  to  stick to LZMA2's default four-byte alignment when com-
962
              exception; it's usually good to stick to LZMA2's  default  four-
881
              pressing x86 executables.
963
              byte alignment when compressing x86 executables.
882
964
883
              All BCJ filters support the same options:
965
              All BCJ filters support the same options:
884
966
885
              start=offset
967
              start=offset
886
                     Specify the start offset that is used when converting be-
968
                     Specify the start offset that is used when converting be-
887
                     tween  relative  and absolute addresses.  The offset must
969
                     tween relative and absolute addresses.  The  offset  must
888
                     be a multiple of the alignment of the filter (see the ta-
970
                     be a multiple of the alignment of the filter (see the ta-
889
                     ble  above).   The default is zero.  In practice, the de-
971
                     ble above).  The default is zero.  In practice,  the  de-
890
                     fault is good; specifying a custom offset is almost never
972
                     fault is good; specifying a custom offset is almost never
891
                     useful.
973
                     useful.
892
974
893
       --delta[=options]
975
       --delta[=options]
894
              Add  the Delta filter to the filter chain.  The Delta filter can
976
              Add the Delta filter to the filter chain.  The Delta filter  can
895
              be only used as a non-last filter in the filter chain.
977
              be only used as a non-last filter in the filter chain.
896
978
897
              Currently only simple byte-wise delta calculation is  supported.
979
              Currently  only simple byte-wise delta calculation is supported.
898
              It  can  be useful when compressing e.g. uncompressed bitmap im-
980
              It can be useful when  compressing,  for  example,  uncompressed
899
              ages or uncompressed PCM audio.  However, special purpose  algo-
981
              bitmap  images or uncompressed PCM audio.  However, special pur-
900
              rithms may give significantly better results than Delta + LZMA2.
982
              pose algorithms may give significantly better results than Delta
901
              This is true especially with audio, which compresses faster  and
983
              +  LZMA2.   This is true especially with audio, which compresses
902
              better e.g. with flac(1).
984
              faster and better, for example, with flac(1).
903
985
904
              Supported options:
986
              Supported options:
905
987
906
              dist=distance
988
              dist=distance
907
                     Specify  the  distance of the delta calculation in bytes.
989
                     Specify the distance of the delta calculation  in  bytes.
908
                     distance must be 1-256.  The default is 1.
990
                     distance must be 1-256.  The default is 1.
909
991
910
                     For example, with dist=2 and eight-byte input A1 B1 A2 B3
992
                     For example, with dist=2 and eight-byte input A1 B1 A2 B3
Lines 912-963 Link Here
912
994
913
   Other options
995
   Other options
914
       -q, --quiet
996
       -q, --quiet
915
              Suppress  warnings  and notices.  Specify this twice to suppress
997
              Suppress warnings and notices.  Specify this twice  to  suppress
916
              errors too.  This option has no effect on the exit status.  That
998
              errors too.  This option has no effect on the exit status.  That
917
              is,  even  if a warning was suppressed, the exit status to indi-
999
              is, even if a warning was suppressed, the exit status  to  indi-
918
              cate a warning is still used.
1000
              cate a warning is still used.
919
1001
920
       -v, --verbose
1002
       -v, --verbose
921
              Be verbose.  If standard error is connected to  a  terminal,  xz
1003
              Be  verbose.   If  standard error is connected to a terminal, xz
922
              will  display  a progress indicator.  Specifying --verbose twice
1004
              will display a progress indicator.  Specifying  --verbose  twice
923
              will give even more verbose output.
1005
              will give even more verbose output.
924
1006
925
              The progress indicator shows the following information:
1007
              The progress indicator shows the following information:
926
1008
927
              o  Completion percentage is shown if the size of the input  file
1009
              o  Completion  percentage is shown if the size of the input file
928
                 is known.  That is, the percentage cannot be shown in pipes.
1010
                 is known.  That is, the percentage cannot be shown in pipes.
929
1011
930
              o  Amount  of compressed data produced (compressing) or consumed
1012
              o  Amount of compressed data produced (compressing) or  consumed
931
                 (decompressing).
1013
                 (decompressing).
932
1014
933
              o  Amount of uncompressed data consumed  (compressing)  or  pro-
1015
              o  Amount  of  uncompressed  data consumed (compressing) or pro-
934
                 duced (decompressing).
1016
                 duced (decompressing).
935
1017
936
              o  Compression ratio, which is calculated by dividing the amount
1018
              o  Compression ratio, which is calculated by dividing the amount
937
                 of compressed data processed so far by the amount  of  uncom-
1019
                 of  compressed  data processed so far by the amount of uncom-
938
                 pressed data processed so far.
1020
                 pressed data processed so far.
939
1021
940
              o  Compression  or decompression speed.  This is measured as the
1022
              o  Compression or decompression speed.  This is measured as  the
941
                 amount of uncompressed data consumed  (compression)  or  pro-
1023
                 amount  of  uncompressed  data consumed (compression) or pro-
942
                 duced  (decompression)  per  second.  It is shown after a few
1024
                 duced (decompression) per second.  It is shown  after  a  few
943
                 seconds have passed since xz started processing the file.
1025
                 seconds have passed since xz started processing the file.
944
1026
945
              o  Elapsed time in the format M:SS or H:MM:SS.
1027
              o  Elapsed time in the format M:SS or H:MM:SS.
946
1028
947
              o  Estimated remaining time is shown only when the size  of  the
1029
              o  Estimated  remaining  time is shown only when the size of the
948
                 input  file  is  known  and  a couple of seconds have already
1030
                 input file is known and a  couple  of  seconds  have  already
949
                 passed since xz started processing the  file.   The  time  is
1031
                 passed  since  xz  started  processing the file.  The time is
950
                 shown  in  a  less precise format which never has any colons,
1032
                 shown in a less precise format which never  has  any  colons,
951
                 e.g. 2 min 30 s.
1033
                 for example, 2 min 30 s.
952
1034
953
              When standard error is not a terminal, --verbose  will  make  xz
1035
              When  standard  error  is not a terminal, --verbose will make xz
954
              print the filename, compressed size, uncompressed size, compres-
1036
              print the filename, compressed size, uncompressed size, compres-
955
              sion ratio, and possibly also the speed and elapsed  time  on  a
1037
              sion  ratio,  and  possibly also the speed and elapsed time on a
956
              single line to standard error after compressing or decompressing
1038
              single line to standard error after compressing or decompressing
957
              the file.  The speed and elapsed time are included only when the
1039
              the file.  The speed and elapsed time are included only when the
958
              operation  took at least a few seconds.  If the operation didn't
1040
              operation took at least a few seconds.  If the operation  didn't
959
              finish, e.g. due to user interruption, also the completion  per-
1041
              finish,  for example, due to user interruption, also the comple-
960
              centage is printed if the size of the input file is known.
1042
              tion percentage is printed if the size  of  the  input  file  is
1043
              known.
961
1044
962
       -Q, --no-warn
1045
       -Q, --no-warn
963
              Don't set the exit status to 2 even if a condition worth a warn-
1046
              Don't set the exit status to 2 even if a condition worth a warn-
Lines 974-999 Link Here
974
1057
975
       --info-memory
1058
       --info-memory
976
              Display, in human-readable  format,  how  much  physical  memory
1059
              Display, in human-readable  format,  how  much  physical  memory
977
              (RAM)  xz  thinks the system has and the memory usage limits for
1060
              (RAM)  and  how  many processor threads xz thinks the system has
978
              compression and decompression, and exit successfully.
1061
              and the memory usage limits for compression  and  decompression,
1062
              and exit successfully.
979
1063
980
       -h, --help
1064
       -h, --help
981
              Display a help message describing the  most  commonly  used  op-
1065
              Display  a  help  message  describing the most commonly used op-
982
              tions, and exit successfully.
1066
              tions, and exit successfully.
983
1067
984
       -H, --long-help
1068
       -H, --long-help
985
              Display  a  help message describing all features of xz, and exit
1069
              Display a help message describing all features of xz,  and  exit
986
              successfully
1070
              successfully
987
1071
988
       -V, --version
1072
       -V, --version
989
              Display the version number of xz and liblzma in  human  readable
1073
              Display  the  version number of xz and liblzma in human readable
990
              format.   To get machine-parsable output, specify --robot before
1074
              format.  To get machine-parsable output, specify --robot  before
991
              --version.
1075
              --version.
992
1076
993
ROBOT MODE
1077
ROBOT MODE
994
       The robot mode is activated with the --robot option.  It makes the out-
1078
       The robot mode is activated with the --robot option.  It makes the out-
995
       put of xz easier to parse by other programs.  Currently --robot is sup-
1079
       put of xz easier to parse by other programs.  Currently --robot is sup-
996
       ported only together with --version,  --info-memory,  and  --list.   It
1080
       ported  only  together  with  --version, --info-memory, and --list.  It
997
       will be supported for compression and decompression in the future.
1081
       will be supported for compression and decompression in the future.
998
1082
999
   Version
1083
   Version
Lines 1005-1014 Link Here
1005
1089
1006
       X      Major version.
1090
       X      Major version.
1007
1091
1008
       YYY    Minor version.  Even numbers are stable.  Odd numbers are  alpha
1092
       YYY    Minor  version.  Even numbers are stable.  Odd numbers are alpha
1009
              or beta versions.
1093
              or beta versions.
1010
1094
1011
       ZZZ    Patch  level  for stable releases or just a counter for develop-
1095
       ZZZ    Patch level for stable releases or just a counter  for  develop-
1012
              ment releases.
1096
              ment releases.
1013
1097
1014
       S      Stability.  0 is alpha, 1 is beta, and 2 is stable.  S should be
1098
       S      Stability.  0 is alpha, 1 is beta, and 2 is stable.  S should be
Lines 1020-1038 Link Here
1020
       Examples: 4.999.9beta is 49990091 and 5.0.0 is 50000002.
1104
       Examples: 4.999.9beta is 49990091 and 5.0.0 is 50000002.
1021
1105
1022
   Memory limit information
1106
   Memory limit information
1023
       xz --robot --info-memory prints a single line with three  tab-separated
1107
       xz  --robot --info-memory prints a single line with three tab-separated
1024
       columns:
1108
       columns:
1025
1109
1026
       1.  Total amount of physical memory (RAM) in bytes
1110
       1.  Total amount of physical memory (RAM) in bytes.
1027
1111
1028
       2.  Memory  usage  limit  for compression in bytes.  A special value of
1112
       2.  Memory usage limit for compression in bytes  (--memlimit-compress).
1029
           zero indicates the default setting, which for single-threaded  mode
1113
           A  special  value of 0 indicates the default setting which for sin-
1030
           is the same as no limit.
1114
           gle-threaded mode is the same as no limit.
1031
1115
1032
       3.  Memory  usage limit for decompression in bytes.  A special value of
1116
       3.  Memory usage limit for decompression  in  bytes  (--memlimit-decom-
1033
           zero indicates the default setting, which for single-threaded  mode
1117
           press).   A  special value of 0 indicates the default setting which
1034
           is the same as no limit.
1118
           for single-threaded mode is the same as no limit.
1035
1119
1120
       4.  Since xz 5.3.4alpha: Memory usage for multi-threaded  decompression
1121
           in  bytes (--memlimit-mt-decompress).  This is never zero because a
1122
           system-specific default value shown in the column 5 is used  if  no
1123
           limit  has  been  specified explicitly.  This is also never greater
1124
           than the value in the column 3 even if  a  larger  value  has  been
1125
           specified with --memlimit-mt-decompress.
1126
1127
       5.  Since  xz  5.3.4alpha: A system-specific default memory usage limit
1128
           that is used to limit the number of threads when  compressing  with
1129
           an  automatic  number  of threads (--threads=0) and no memory usage
1130
           limit has been specified (--memlimit-compress).  This is also  used
1131
           as the default value for --memlimit-mt-decompress.
1132
1133
       6.  Since xz 5.3.4alpha: Number of available processor threads.
1134
1036
       In  the  future,  the  output of xz --robot --info-memory may have more
1135
       In  the  future,  the  output of xz --robot --info-memory may have more
1037
       columns, but never more than a single line.
1136
       columns, but never more than a single line.
1038
1137
Lines 1069-1075 Link Here
1069
              3.  Total number of blocks in the stream(s)
1168
              3.  Total number of blocks in the stream(s)
1070
              4.  Compressed size of the file
1169
              4.  Compressed size of the file
1071
              5.  Uncompressed size of the file
1170
              5.  Uncompressed size of the file
1072
              6.  Compression ratio, for example  0.123.   If  ratio  is  over
1171
              6.  Compression ratio, for example, 0.123.   If  ratio  is  over
1073
                  9.999,  three  dashes (---) are displayed instead of the ra-
1172
                  9.999,  three  dashes (---) are displayed instead of the ra-
1074
                  tio.
1173
                  tio.
1075
              7.  Comma-separated list of integrity check names.  The  follow-
1174
              7.  Comma-separated list of integrity check names.  The  follow-
Lines 1183-1196 Link Here
1183
1282
1184
       XZ_OPT This is for passing options to xz when it is not possible to set
1283
       XZ_OPT This is for passing options to xz when it is not possible to set
1185
              the options directly on the xz command line.  This is  the  case
1284
              the options directly on the xz command line.  This is  the  case
1186
              e.g. when xz is run by a script or tool, e.g. GNU tar(1):
1285
              when xz is run by a script or tool, for example, GNU tar(1):
1187
1286
1188
                     XZ_OPT=-2v tar caf foo.tar.xz foo
1287
                     XZ_OPT=-2v tar caf foo.tar.xz foo
1189
1288
1190
              Scripts  may use XZ_OPT e.g. to set script-specific default com-
1289
              Scripts  may use XZ_OPT, for example, to set script-specific de-
1191
              pression options.  It is still recommended  to  allow  users  to
1290
              fault compression options.  It is  still  recommended  to  allow
1192
              override XZ_OPT if that is reasonable, e.g. in sh(1) scripts one
1291
              users to override XZ_OPT if that is reasonable.  For example, in
1193
              may use something like this:
1292
              sh(1) scripts one may use something like this:
1194
1293
1195
                     XZ_OPT=${XZ_OPT-"-7e"}
1294
                     XZ_OPT=${XZ_OPT-"-7e"}
1196
                     export XZ_OPT
1295
                     export XZ_OPT
Lines 1244-1251 Link Here
1244
       LZMA  Utils  does that when compressing regular files.  The alternative
1343
       LZMA  Utils  does that when compressing regular files.  The alternative
1245
       is to mark that uncompressed size is  unknown  and  use  end-of-payload
1344
       is to mark that uncompressed size is  unknown  and  use  end-of-payload
1246
       marker to indicate where the decompressor should stop.  LZMA Utils uses
1345
       marker to indicate where the decompressor should stop.  LZMA Utils uses
1247
       this method when uncompressed size isn't known, which is the  case  for
1346
       this method when uncompressed size isn't known, which is the case,  for
1248
       example in pipes.
1347
       example, in pipes.
1249
1348
1250
       xz  supports  decompressing  .lzma files with or without end-of-payload
1349
       xz  supports  decompressing  .lzma files with or without end-of-payload
1251
       marker, but all .lzma files  created  by  xz  will  use  end-of-payload
1350
       marker, but all .lzma files  created  by  xz  will  use  end-of-payload
Lines 1327-1334 Link Here
1327
              xz -dk bar.xz
1426
              xz -dk bar.xz
1328
1427
1329
       Create  baz.tar.xz  with the preset -4e (-4 --extreme), which is slower
1428
       Create  baz.tar.xz  with the preset -4e (-4 --extreme), which is slower
1330
       than e.g. the default -6, but needs less memory for compression and de-
1429
       than the default -6, but needs less memory for compression  and  decom-
1331
       compression (48 MiB and 5 MiB, respectively):
1430
       pression (48 MiB and 5 MiB, respectively):
1332
1431
1333
              tar cf - baz | xz -4e > baz.tar.xz
1432
              tar cf - baz | xz -4e > baz.tar.xz
1334
1433
Lines 1392-1397 Link Here
1392
1491
1393
              Preset   CompCPU
1492
              Preset   CompCPU
1394
               -0         0
1493
               -0         0
1494
1395
               -1         1
1495
               -1         1
1396
               -2         2
1496
               -2         2
1397
               -3         3
1497
               -3         3
Lines 1401-1410 Link Here
1401
               -5e        7
1501
               -5e        7
1402
               -6e        8
1502
               -6e        8
1403
1503
1404
       If you know that a file requires somewhat big dictionary (e.g. 32  MiB)
1504
       If you know that a file requires somewhat big dictionary (for  example,
1405
       to  compress well, but you want to compress it quicker than xz -8 would
1505
       32 MiB)  to  compress well, but you want to compress it quicker than xz
1406
       do, a preset with a low CompCPU value (e.g. 1) can be modified to use a
1506
       -8 would do, a preset with a low CompCPU value (for example, 1) can  be
1407
       bigger dictionary:
1507
       modified to use a bigger dictionary:
1408
1508
1409
              xz --lzma2=preset=1,dict=32MiB foo.tar
1509
              xz --lzma2=preset=1,dict=32MiB foo.tar
1410
1510
Lines 1431-1457 Link Here
1431
       files.
1531
       files.
1432
1532
1433
       Sometimes  the  compression  time  doesn't matter, but the decompressor
1533
       Sometimes  the  compression  time  doesn't matter, but the decompressor
1434
       memory usage has to be kept low e.g. to make it possible to  decompress
1534
       memory usage has to be kept low, for example, to make  it  possible  to
1435
       the  file  on  an  embedded system.  The following command uses -6e (-6
1535
       decompress  the file on an embedded system.  The following command uses
1436
       --extreme) as a base and sets the dictionary to only 64 KiB.   The  re-
1536
       -6e (-6 --extreme) as a base and sets the dictionary  to  only  64 KiB.
1437
       sulting  file can be decompressed with XZ Embedded (that's why there is
1537
       The  resulting  file  can  be decompressed with XZ Embedded (that's why
1438
       --check=crc32) using about 100 KiB of memory.
1538
       there is --check=crc32) using about 100 KiB of memory.
1439
1539
1440
              xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo
1540
              xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo
1441
1541
1442
       If you want to squeeze out as many bytes  as  possible,  adjusting  the
1542
       If you want to squeeze out as many bytes  as  possible,  adjusting  the
1443
       number  of  literal  context bits (lc) and number of position bits (pb)
1543
       number  of  literal  context bits (lc) and number of position bits (pb)
1444
       can sometimes help.  Adjusting the number of literal position bits (lp)
1544
       can sometimes help.  Adjusting the number of literal position bits (lp)
1445
       might  help  too,  but  usually  lc  and pb are more important.  E.g. a
1545
       might help too, but usually lc and pb are more important.  For example,
1446
       source code archive contains mostly US-ASCII text,  so  something  like
1546
       a source code archive contains mostly US-ASCII text, so something  like
1447
       the following might give slightly (like 0.1 %) smaller file than xz -6e
1547
       the following might give slightly (like 0.1 %) smaller file than xz -6e
1448
       (try also without lc=4):
1548
       (try also without lc=4):
1449
1549
1450
              xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar
1550
              xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar
1451
1551
1452
       Using another filter together with LZMA2 can improve  compression  with
1552
       Using another filter together with LZMA2 can improve  compression  with
1453
       certain file types.  E.g. to compress a x86-32 or x86-64 shared library
1553
       certain file types.  For example, to compress a x86-32 or x86-64 shared
1454
       using the x86 BCJ filter:
1554
       library using the x86 BCJ filter:
1455
1555
1456
              xz --x86 --lzma2 libfoo.so
1556
              xz --x86 --lzma2 libfoo.so
1457
1557
Lines 1464-1480 Link Here
1464
       images.  It should usually beat PNG, which has a few more advanced fil-
1564
       images.  It should usually beat PNG, which has a few more advanced fil-
1465
       ters than simple delta but uses Deflate for the actual compression.
1565
       ters than simple delta but uses Deflate for the actual compression.
1466
1566
1467
       The  image has to be saved in uncompressed format, e.g. as uncompressed
1567
       The  image  has to be saved in uncompressed format, for example, as un-
1468
       TIFF.  The distance parameter of the Delta filter is set to  match  the
1568
       compressed TIFF.  The distance parameter of the Delta filter is set  to
1469
       number  of  bytes per pixel in the image.  E.g. 24-bit RGB bitmap needs
1569
       match  the number of bytes per pixel in the image.  For example, 24-bit
1470
       dist=3, and it is also good to pass pb=0 to LZMA2  to  accommodate  the
1570
       RGB bitmap needs dist=3, and it is also good to pass pb=0 to  LZMA2  to
1471
       three-byte alignment:
1571
       accommodate the three-byte alignment:
1472
1572
1473
              xz --delta=dist=3 --lzma2=pb=0 foo.tiff
1573
              xz --delta=dist=3 --lzma2=pb=0 foo.tiff
1474
1574
1475
       If multiple images have been put into a single archive (e.g. .tar), the
1575
       If  multiple  images  have been put into a single archive (for example,
1476
       Delta filter will work on that too as long as all images have the  same
1576
       .tar), the Delta filter will work on that too as  long  as  all  images
1477
       number of bytes per pixel.
1577
       have the same number of bytes per pixel.
1478
1578
1479
SEE ALSO
1579
SEE ALSO
1480
       xzdec(1),   xzdiff(1),   xzgrep(1),   xzless(1),   xzmore(1),  gzip(1),
1580
       xzdec(1),   xzdiff(1),   xzgrep(1),   xzless(1),   xzmore(1),  gzip(1),
Lines 1482-1489 Link Here
1482
1582
1483
       XZ Utils: <https://tukaani.org/xz/>
1583
       XZ Utils: <https://tukaani.org/xz/>
1484
       XZ Embedded: <https://tukaani.org/xz/embedded.html>
1584
       XZ Embedded: <https://tukaani.org/xz/embedded.html>
1485
       LZMA SDK: <http://7-zip.org/sdk.html>
1585
       LZMA SDK: <https://7-zip.org/sdk.html>
1486
1586
1487
1587
1488
1588
1489
Tukaani                           2020-02-01                             XZ(1)
1589
Tukaani                           2022-12-01                             XZ(1)
(-)xz-5.2.5/doc/man/txt/xzdiff.txt (-10 / +11 lines)
Lines 13-36 Link Here
13
13
14
DESCRIPTION
14
DESCRIPTION
15
       xzcmp  and  xzdiff  invoke  cmp(1)  or diff(1) on files compressed with
15
       xzcmp  and  xzdiff  invoke  cmp(1)  or diff(1) on files compressed with
16
       xz(1), lzma(1), gzip(1), bzip2(1), or lzop(1).  All  options  specified
16
       xz(1), lzma(1), gzip(1), bzip2(1), lzop(1), or  zstd(1).   All  options
17
       are  passed  directly to cmp(1) or diff(1).  If only one file is speci-
17
       specified  are  passed directly to cmp(1) or diff(1).  If only one file
18
       fied, then the files compared are file1 (which must have a suffix of  a
18
       is specified, then the files compared are file1 (which must have a suf-
19
       supported compression format) and file1 from which the compression for-
19
       fix  of  a  supported compression format) and file1 from which the com-
20
       mat suffix has been stripped.  If two files are  specified,  then  they
20
       pression format suffix has been stripped.  If two files are  specified,
21
       are  uncompressed  if necessary and fed to cmp(1) or diff(1).  The exit
21
       then  they  are uncompressed if necessary and fed to cmp(1) or diff(1).
22
       status from cmp(1) or diff(1) is preserved.
22
       The exit status from cmp(1) or diff(1) is preserved unless a decompres-
23
       sion error occurs; then exit status is 2.
23
24
24
       The names lzcmp and lzdiff are provided for backward compatibility with
25
       The names lzcmp and lzdiff are provided for backward compatibility with
25
       LZMA Utils.
26
       LZMA Utils.
26
27
27
SEE ALSO
28
SEE ALSO
28
       cmp(1), diff(1), xz(1), gzip(1), bzip2(1), lzop(1), zdiff(1)
29
       cmp(1), diff(1), xz(1), gzip(1), bzip2(1), lzop(1), zstd(1), zdiff(1)
29
30
30
BUGS
31
BUGS
31
       Messages  from  the cmp(1) or diff(1) programs refer to temporary file-
32
       Messages from the cmp(1) or diff(1) programs refer to  temporary  file-
32
       names instead of those specified.
33
       names instead of those specified.
33
34
34
35
35
36
36
Tukaani                           2011-03-19                         XZDIFF(1)
37
Tukaani                           2021-06-04                         XZDIFF(1)
(-)xz-5.2.5/doc/man/txt/xzgrep.txt (-9 / +19 lines)
Lines 6-12 Link Here
6
       xzgrep - search compressed files for a regular expression
6
       xzgrep - search compressed files for a regular expression
7
7
8
SYNOPSIS
8
SYNOPSIS
9
       xzgrep [grep_options] [-e] pattern file...
9
       xzgrep [grep_options] [-e] pattern [file...]
10
       xzegrep ...
10
       xzegrep ...
11
       xzfgrep ...
11
       xzfgrep ...
12
       lzgrep ...
12
       lzgrep ...
Lines 15-39 Link Here
15
15
16
DESCRIPTION
16
DESCRIPTION
17
       xzgrep  invokes  grep(1)  on  files which may be either uncompressed or
17
       xzgrep  invokes  grep(1)  on  files which may be either uncompressed or
18
       compressed with xz(1), lzma(1), gzip(1), bzip2(1), or lzop(1).  All op-
18
       compressed with xz(1), lzma(1), gzip(1), bzip2(1), lzop(1), or zstd(1).
19
       tions specified are passed directly to grep(1).
19
       All options specified are passed directly to grep(1).
20
20
21
       If  no file is specified, then standard input is decompressed if neces-
21
       If  no file is specified, then standard input is decompressed if neces-
22
       sary and fed to grep(1).  When reading from  standard  input,  gzip(1),
22
       sary and fed to grep(1).  When reading from  standard  input,  gzip(1),
23
       bzip2(1), and lzop(1) compressed files are not supported.
23
       bzip2(1), lzop(1), and zstd(1) compressed files are not supported.
24
24
25
       If xzgrep is invoked as xzegrep or xzfgrep then egrep(1) or fgrep(1) is
25
       If  xzgrep  is invoked as xzegrep or xzfgrep then grep -E or grep -F is
26
       used instead of grep(1).  The same applies to  names  lzgrep,  lzegrep,
26
       used instead of grep(1).  The same applies to  names  lzgrep,  lzegrep,
27
       and  lzfgrep,  which  are provided for backward compatibility with LZMA
27
       and  lzfgrep,  which  are provided for backward compatibility with LZMA
28
       Utils.
28
       Utils.
29
29
30
EXIT STATUS
31
       0      At least one match was found from at  least  one  of  the  input
32
              files.  No errors occurred.
33
34
       1      No  matches  were  found from any of the input files.  No errors
35
              occurred.
36
37
       >1     One or more errors occurred.  It  is  unknown  if  matches  were
38
              found.
39
30
ENVIRONMENT
40
ENVIRONMENT
31
       GREP   If the GREP environment variable is set, xzgrep uses it  instead
41
       GREP   If  the GREP environment variable is set, xzgrep uses it instead
32
              of grep(1), egrep(1), or fgrep(1).
42
              of grep(1), grep -E, or grep -F.
33
43
34
SEE ALSO
44
SEE ALSO
35
       grep(1), xz(1), gzip(1), bzip2(1), lzop(1), zgrep(1)
45
       grep(1), xz(1), gzip(1), bzip2(1), lzop(1), zstd(1), zgrep(1)
36
46
37
47
38
48
39
Tukaani                           2011-03-19                         XZGREP(1)
49
Tukaani                           2022-07-19                         XZGREP(1)
(-)xz-5.2.5/doc/xz-file-format.txt (-7 / +22 lines)
Lines 2-8 Link Here
2
The .xz File Format
2
The .xz File Format
3
===================
3
===================
4
4
5
Version 1.0.4 (2009-08-27)
5
Version 1.1.0 (2022-12-11)
6
6
7
7
8
        0. Preface
8
        0. Preface
Lines 93-98 Link Here
93
93
94
        Version   Date          Description
94
        Version   Date          Description
95
95
96
        1.1.0     2022-12-11    Added ARM64 filter and clarified 32-bit
97
                                ARM endianness in Section 5.3.2,
98
                                language improvements in Section 5.4
99
96
        1.0.4     2009-08-27    Language improvements in Sections 1.2,
100
        1.0.4     2009-08-27    Language improvements in Sections 1.2,
97
                                2.1.1.2, 3.1.1, 3.1.2, and 5.3.1
101
                                2.1.1.2, 3.1.1, 3.1.2, and 5.3.1
98
102
Lines 915-924 Link Here
915
              0x04       1 byte     x86 filter (BCJ)
919
              0x04       1 byte     x86 filter (BCJ)
916
              0x05       4 bytes    PowerPC (big endian) filter
920
              0x05       4 bytes    PowerPC (big endian) filter
917
              0x06      16 bytes    IA64 filter
921
              0x06      16 bytes    IA64 filter
918
              0x07       4 bytes    ARM (little endian) filter
922
              0x07       4 bytes    ARM filter [1]
919
              0x08       2 bytes    ARM Thumb (little endian) filter
923
              0x08       2 bytes    ARM Thumb filter [1]
920
              0x09       4 bytes    SPARC filter
924
              0x09       4 bytes    SPARC filter
925
              0x0A       4 bytes    ARM64 filter [2]
921
926
927
              [1] These are for little endian instruction encoding.
928
                  This must not be confused with data endianness.
929
                  A processor configured for big endian data access
930
                  may still use little endian instruction encoding.
931
                  The filters don't care about the data endianness.
932
933
              [2] 4096-byte alignment gives the best results
934
                  because the address in the ADRP instruction
935
                  is a multiple of 4096 bytes.
936
922
        If the size of Filter Properties is four bytes, the Filter
937
        If the size of Filter Properties is four bytes, the Filter
923
        Properties field contains the start offset used for address
938
        Properties field contains the start offset used for address
924
        conversions. It is stored as an unsigned 32-bit little endian
939
        conversions. It is stored as an unsigned 32-bit little endian
Lines 987-998 Link Here
987
1002
988
5.4. Custom Filter IDs
1003
5.4. Custom Filter IDs
989
1004
990
        If a developer wants to use custom Filter IDs, he has two
1005
        If a developer wants to use custom Filter IDs, there are two
991
        choices. The first choice is to contact Lasse Collin and ask
1006
        choices. The first choice is to contact Lasse Collin and ask
992
        him to allocate a range of IDs for the developer.
1007
        him to allocate a range of IDs for the developer.
993
1008
994
        The second choice is to generate a 40-bit random integer,
1009
        The second choice is to generate a 40-bit random integer
995
        which the developer can use as his personal Developer ID.
1010
        which the developer can use as a personal Developer ID.
996
        To minimize the risk of collisions, Developer ID has to be
1011
        To minimize the risk of collisions, Developer ID has to be
997
        a randomly generated integer, not manually selected "hex word".
1012
        a randomly generated integer, not manually selected "hex word".
998
        The following command, which works on many free operating
1013
        The following command, which works on many free operating
Lines 1000-1006 Link Here
1000
1015
1001
            dd if=/dev/urandom bs=5 count=1 | hexdump
1016
            dd if=/dev/urandom bs=5 count=1 | hexdump
1002
1017
1003
        The developer can then use his Developer ID to create unique
1018
        The developer can then use the Developer ID to create unique
1004
        (well, hopefully unique) Filter IDs.
1019
        (well, hopefully unique) Filter IDs.
1005
1020
1006
            Bits    Mask                    Description
1021
            Bits    Mask                    Description
(-)xz-5.2.5/dos/INSTALL.txt (-2 / +2 lines)
Lines 17-23 Link Here
17
17
18
Getting and Installing DJGPP
18
Getting and Installing DJGPP
19
19
20
    You may use <http://www.delorie.com/djgpp/zip-picker.html> to help
20
    You may use <https://www.delorie.com/djgpp/zip-picker.html> to help
21
    deciding what to download. If you are only interested in building
21
    deciding what to download. If you are only interested in building
22
    XZ Utils, the zip-picker may list files that you don't strictly
22
    XZ Utils, the zip-picker may list files that you don't strictly
23
    need. However, using the zip-picker can still be worth it to get a
23
    need. However, using the zip-picker can still be worth it to get a
Lines 25-31 Link Here
25
    from readme.1st too).
25
    from readme.1st too).
26
26
27
    For a more manual method, first select a mirror from
27
    For a more manual method, first select a mirror from
28
    <http://www.delorie.com/djgpp/getting.html> and go the
28
    <https://www.delorie.com/djgpp/getting.html> and go the
29
    subdirectory named "current". You need the following files:
29
    subdirectory named "current". You need the following files:
30
30
31
        unzip32.exe  (if you don't already have a LFN-capable unzipper)
31
        unzip32.exe  (if you don't already have a LFN-capable unzipper)
(-)xz-5.2.5/dos/Makefile (+4 lines)
Lines 62-67 Link Here
62
	../src/liblzma/common/block_header_encoder.c \
62
	../src/liblzma/common/block_header_encoder.c \
63
	../src/liblzma/common/block_util.c \
63
	../src/liblzma/common/block_util.c \
64
	../src/liblzma/common/common.c \
64
	../src/liblzma/common/common.c \
65
	../src/liblzma/common/file_info.c \
65
	../src/liblzma/common/filter_common.c \
66
	../src/liblzma/common/filter_common.c \
66
	../src/liblzma/common/filter_decoder.c \
67
	../src/liblzma/common/filter_decoder.c \
67
	../src/liblzma/common/filter_encoder.c \
68
	../src/liblzma/common/filter_encoder.c \
Lines 72-82 Link Here
72
	../src/liblzma/common/index_decoder.c \
73
	../src/liblzma/common/index_decoder.c \
73
	../src/liblzma/common/index_encoder.c \
74
	../src/liblzma/common/index_encoder.c \
74
	../src/liblzma/common/index_hash.c \
75
	../src/liblzma/common/index_hash.c \
76
	../src/liblzma/common/lzip_decoder.c \
75
	../src/liblzma/common/stream_decoder.c \
77
	../src/liblzma/common/stream_decoder.c \
76
	../src/liblzma/common/stream_encoder.c \
78
	../src/liblzma/common/stream_encoder.c \
77
	../src/liblzma/common/stream_flags_common.c \
79
	../src/liblzma/common/stream_flags_common.c \
78
	../src/liblzma/common/stream_flags_decoder.c \
80
	../src/liblzma/common/stream_flags_decoder.c \
79
	../src/liblzma/common/stream_flags_encoder.c \
81
	../src/liblzma/common/stream_flags_encoder.c \
82
	../src/liblzma/common/string_conversion.c \
80
	../src/liblzma/common/vli_decoder.c \
83
	../src/liblzma/common/vli_decoder.c \
81
	../src/liblzma/common/vli_encoder.c \
84
	../src/liblzma/common/vli_encoder.c \
82
	../src/liblzma/common/vli_size.c \
85
	../src/liblzma/common/vli_size.c \
Lines 96-101 Link Here
96
	../src/liblzma/lzma/lzma_encoder_presets.c \
99
	../src/liblzma/lzma/lzma_encoder_presets.c \
97
	../src/liblzma/rangecoder/price_table.c \
100
	../src/liblzma/rangecoder/price_table.c \
98
	../src/liblzma/simple/arm.c \
101
	../src/liblzma/simple/arm.c \
102
	../src/liblzma/simple/arm64.c \
99
	../src/liblzma/simple/armthumb.c \
103
	../src/liblzma/simple/armthumb.c \
100
	../src/liblzma/simple/ia64.c \
104
	../src/liblzma/simple/ia64.c \
101
	../src/liblzma/simple/powerpc.c \
105
	../src/liblzma/simple/powerpc.c \
(-)xz-5.2.5/dos/config.h (-1 / +10 lines)
Lines 16-21 Link Here
16
/* Define to 1 if arm decoder is enabled. */
16
/* Define to 1 if arm decoder is enabled. */
17
#define HAVE_DECODER_ARM 1
17
#define HAVE_DECODER_ARM 1
18
18
19
/* Define to 1 if arm64 decoder is enabled. */
20
#define HAVE_DECODER_ARM64 1
21
19
/* Define to 1 if armthumb decoder is enabled. */
22
/* Define to 1 if armthumb decoder is enabled. */
20
#define HAVE_DECODER_ARMTHUMB 1
23
#define HAVE_DECODER_ARMTHUMB 1
21
24
Lines 46-51 Link Here
46
/* Define to 1 if arm encoder is enabled. */
49
/* Define to 1 if arm encoder is enabled. */
47
#define HAVE_ENCODER_ARM 1
50
#define HAVE_ENCODER_ARM 1
48
51
52
/* Define to 1 if arm64 encoder is enabled. */
53
#define HAVE_ENCODER_ARM64 1
54
49
/* Define to 1 if armthumb encoder is enabled. */
55
/* Define to 1 if armthumb encoder is enabled. */
50
#define HAVE_ENCODER_ARMTHUMB 1
56
#define HAVE_ENCODER_ARMTHUMB 1
51
57
Lines 76-81 Link Here
76
/* Define to 1 if you have the <limits.h> header file. */
82
/* Define to 1 if you have the <limits.h> header file. */
77
#define HAVE_LIMITS_H 1
83
#define HAVE_LIMITS_H 1
78
84
85
/* Define to 1 if .lz (lzip) decompression support is enabled. */
86
#define HAVE_LZIP_DECODER 1
87
79
/* Define to 1 to enable bt2 match finder. */
88
/* Define to 1 to enable bt2 match finder. */
80
#define HAVE_MF_BT2 1
89
#define HAVE_MF_BT2 1
81
90
Lines 128-134 Link Here
128
#define NDEBUG 1
137
#define NDEBUG 1
129
138
130
/* Define to the address where bug reports for this package should be sent. */
139
/* Define to the address where bug reports for this package should be sent. */
131
#define PACKAGE_BUGREPORT "lasse.collin@tukaani.org"
140
#define PACKAGE_BUGREPORT "xz@tukaani.org"
132
141
133
/* Define to the full name of this package. */
142
/* Define to the full name of this package. */
134
#define PACKAGE_NAME "XZ Utils"
143
#define PACKAGE_NAME "XZ Utils"
(-)xz-5.2.5/lib/Makefile.in (-5 / +11 lines)
Lines 1-7 Link Here
1
# Makefile.in generated by automake 1.16.1 from Makefile.am.
1
# Makefile.in generated by automake 1.16.5 from Makefile.am.
2
# @configure_input@
2
# @configure_input@
3
3
4
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
4
# Copyright (C) 1994-2021 Free Software Foundation, Inc.
5
5
6
# This Makefile.in is free software; the Free Software Foundation
6
# This Makefile.in is free software; the Free Software Foundation
7
# gives unlimited permission to copy and/or distribute it,
7
# gives unlimited permission to copy and/or distribute it,
Lines 193-198 Link Here
193
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
193
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
194
CPP = @CPP@
194
CPP = @CPP@
195
CPPFLAGS = @CPPFLAGS@
195
CPPFLAGS = @CPPFLAGS@
196
CSCOPE = @CSCOPE@
197
CTAGS = @CTAGS@
196
CYGPATH_W = @CYGPATH_W@
198
CYGPATH_W = @CYGPATH_W@
197
DEFS = @DEFS@
199
DEFS = @DEFS@
198
DEPDIR = @DEPDIR@
200
DEPDIR = @DEPDIR@
Lines 203-210 Link Here
203
ECHO_N = @ECHO_N@
205
ECHO_N = @ECHO_N@
204
ECHO_T = @ECHO_T@
206
ECHO_T = @ECHO_T@
205
EGREP = @EGREP@
207
EGREP = @EGREP@
208
ETAGS = @ETAGS@
206
EXEEXT = @EXEEXT@
209
EXEEXT = @EXEEXT@
207
FGREP = @FGREP@
210
FGREP = @FGREP@
211
FILECMD = @FILECMD@
208
GETOPT_H = @GETOPT_H@
212
GETOPT_H = @GETOPT_H@
209
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
213
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
210
GMSGFMT = @GMSGFMT@
214
GMSGFMT = @GMSGFMT@
Lines 257-262 Link Here
257
PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@
261
PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@
258
PTHREAD_CC = @PTHREAD_CC@
262
PTHREAD_CC = @PTHREAD_CC@
259
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
263
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
264
PTHREAD_CXX = @PTHREAD_CXX@
260
PTHREAD_LIBS = @PTHREAD_LIBS@
265
PTHREAD_LIBS = @PTHREAD_LIBS@
261
RANLIB = @RANLIB@
266
RANLIB = @RANLIB@
262
RC = @RC@
267
RC = @RC@
Lines 315-320 Link Here
315
prefix = @prefix@
320
prefix = @prefix@
316
program_transform_name = @program_transform_name@
321
program_transform_name = @program_transform_name@
317
psdir = @psdir@
322
psdir = @psdir@
323
runstatedir = @runstatedir@
318
sbindir = @sbindir@
324
sbindir = @sbindir@
319
sharedstatedir = @sharedstatedir@
325
sharedstatedir = @sharedstatedir@
320
srcdir = @srcdir@
326
srcdir = @srcdir@
Lines 421-427 Link Here
421
427
422
cscope cscopelist:
428
cscope cscopelist:
423
429
424
425
distdir: $(BUILT_SOURCES)
430
distdir: $(BUILT_SOURCES)
426
	$(MAKE) $(AM_MAKEFLAGS) distdir-am
431
	$(MAKE) $(AM_MAKEFLAGS) distdir-am
427
432
Lines 462-468 Link Here
462
installdirs:
467
installdirs:
463
install: $(BUILT_SOURCES)
468
install: $(BUILT_SOURCES)
464
	$(MAKE) $(AM_MAKEFLAGS) install-am
469
	$(MAKE) $(AM_MAKEFLAGS) install-am
465
install-exec: install-exec-am
470
install-exec: $(BUILT_SOURCES)
471
	$(MAKE) $(AM_MAKEFLAGS) install-exec-am
466
install-data: install-data-am
472
install-data: install-data-am
467
uninstall: uninstall-am
473
uninstall: uninstall-am
468
474
Lines 565-571 Link Here
565
571
566
uninstall-am:
572
uninstall-am:
567
573
568
.MAKE: all check install install-am install-strip
574
.MAKE: all check install install-am install-exec install-strip
569
575
570
.PHONY: all all-am am--depfiles check check-am clean clean-generic \
576
.PHONY: all all-am am--depfiles check check-am clean clean-generic \
571
	clean-libtool clean-noinstLIBRARIES cscopelist-am ctags-am \
577
	clean-libtool clean-noinstLIBRARIES cscopelist-am ctags-am \
(-)xz-5.2.5/m4/ax_pthread.m4 (-7 / +22 lines)
Lines 14-33 Link Here
14
#   flags that are needed. (The user can also force certain compiler
14
#   flags that are needed. (The user can also force certain compiler
15
#   flags/libs to be tested by setting these environment variables.)
15
#   flags/libs to be tested by setting these environment variables.)
16
#
16
#
17
#   Also sets PTHREAD_CC to any special C compiler that is needed for
17
#   Also sets PTHREAD_CC and PTHREAD_CXX to any special C compiler that is
18
#   multi-threaded programs (defaults to the value of CC otherwise). (This
18
#   needed for multi-threaded programs (defaults to the value of CC
19
#   is necessary on AIX to use the special cc_r compiler alias.)
19
#   respectively CXX otherwise). (This is necessary on e.g. AIX to use the
20
#   special cc_r/CC_r compiler alias.)
20
#
21
#
21
#   NOTE: You are assumed to not only compile your program with these flags,
22
#   NOTE: You are assumed to not only compile your program with these flags,
22
#   but also to link with them as well. For example, you might link with
23
#   but also to link with them as well. For example, you might link with
23
#   $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
24
#   $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
25
#   $PTHREAD_CXX $CXXFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
24
#
26
#
25
#   If you are only building threaded programs, you may wish to use these
27
#   If you are only building threaded programs, you may wish to use these
26
#   variables in your default LIBS, CFLAGS, and CC:
28
#   variables in your default LIBS, CFLAGS, and CC:
27
#
29
#
28
#     LIBS="$PTHREAD_LIBS $LIBS"
30
#     LIBS="$PTHREAD_LIBS $LIBS"
29
#     CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
31
#     CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
32
#     CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS"
30
#     CC="$PTHREAD_CC"
33
#     CC="$PTHREAD_CC"
34
#     CXX="$PTHREAD_CXX"
31
#
35
#
32
#   In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
36
#   In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
33
#   has a nonstandard name, this macro defines PTHREAD_CREATE_JOINABLE to
37
#   has a nonstandard name, this macro defines PTHREAD_CREATE_JOINABLE to
Lines 83-89 Link Here
83
#   modified version of the Autoconf Macro, you may extend this special
87
#   modified version of the Autoconf Macro, you may extend this special
84
#   exception to the GPL to apply to your modified version as well.
88
#   exception to the GPL to apply to your modified version as well.
85
89
86
#serial 27
90
#serial 31
87
91
88
AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
92
AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
89
AC_DEFUN([AX_PTHREAD], [
93
AC_DEFUN([AX_PTHREAD], [
Lines 105-110 Link Here
105
        ax_pthread_save_CFLAGS="$CFLAGS"
109
        ax_pthread_save_CFLAGS="$CFLAGS"
106
        ax_pthread_save_LIBS="$LIBS"
110
        ax_pthread_save_LIBS="$LIBS"
107
        AS_IF([test "x$PTHREAD_CC" != "x"], [CC="$PTHREAD_CC"])
111
        AS_IF([test "x$PTHREAD_CC" != "x"], [CC="$PTHREAD_CC"])
112
        AS_IF([test "x$PTHREAD_CXX" != "x"], [CXX="$PTHREAD_CXX"])
108
        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
113
        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
109
        LIBS="$PTHREAD_LIBS $LIBS"
114
        LIBS="$PTHREAD_LIBS $LIBS"
110
        AC_MSG_CHECKING([for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS])
115
        AC_MSG_CHECKING([for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS])
Lines 386-392 Link Here
386
             # step
391
             # step
387
             ax_pthread_save_ac_link="$ac_link"
392
             ax_pthread_save_ac_link="$ac_link"
388
             ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g'
393
             ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g'
389
             ax_pthread_link_step=`$as_echo "$ac_link" | sed "$ax_pthread_sed"`
394
             ax_pthread_link_step=`AS_ECHO(["$ac_link"]) | sed "$ax_pthread_sed"`
390
             ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)"
395
             ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)"
391
             ax_pthread_save_CFLAGS="$CFLAGS"
396
             ax_pthread_save_CFLAGS="$CFLAGS"
392
             for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do
397
             for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do
Lines 482-499 Link Here
482
                    [#handle absolute path differently from PATH based program lookup
487
                    [#handle absolute path differently from PATH based program lookup
483
                     AS_CASE(["x$CC"],
488
                     AS_CASE(["x$CC"],
484
                         [x/*],
489
                         [x/*],
485
                         [AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])],
490
                         [
486
                         [AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])])
491
			   AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])
492
			   AS_IF([test "x${CXX}" != "x"], [AS_IF([AS_EXECUTABLE_P([${CXX}_r])],[PTHREAD_CXX="${CXX}_r"])])
493
			 ],
494
                         [
495
			   AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])
496
			   AS_IF([test "x${CXX}" != "x"], [AC_CHECK_PROGS([PTHREAD_CXX],[${CXX}_r],[$CXX])])
497
			 ]
498
                     )
499
                    ])
487
                ;;
500
                ;;
488
            esac
501
            esac
489
        fi
502
        fi
490
fi
503
fi
491
504
492
test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
505
test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
506
test -n "$PTHREAD_CXX" || PTHREAD_CXX="$CXX"
493
507
494
AC_SUBST([PTHREAD_LIBS])
508
AC_SUBST([PTHREAD_LIBS])
495
AC_SUBST([PTHREAD_CFLAGS])
509
AC_SUBST([PTHREAD_CFLAGS])
496
AC_SUBST([PTHREAD_CC])
510
AC_SUBST([PTHREAD_CC])
511
AC_SUBST([PTHREAD_CXX])
497
512
498
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
513
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
499
if test "x$ax_pthread_ok" = "xyes"; then
514
if test "x$ax_pthread_ok" = "xyes"; then
(-)xz-5.2.5/m4/gettext.m4 (-17 / +17 lines)
Lines 1-15 Link Here
1
# gettext.m4 serial 70 (gettext-0.20)
1
# gettext.m4 serial 72 (gettext-0.21.1)
2
dnl Copyright (C) 1995-2014, 2016, 2018 Free Software Foundation, Inc.
2
dnl Copyright (C) 1995-2014, 2016, 2018-2020 Free Software Foundation, Inc.
3
dnl This file is free software; the Free Software Foundation
3
dnl This file is free software; the Free Software Foundation
4
dnl gives unlimited permission to copy and/or distribute it,
4
dnl gives unlimited permission to copy and/or distribute it,
5
dnl with or without modifications, as long as this notice is preserved.
5
dnl with or without modifications, as long as this notice is preserved.
6
dnl
6
dnl
7
dnl This file can be used in projects which are not available under
7
dnl This file can be used in projects which are not available under
8
dnl the GNU General Public License or the GNU Library General Public
8
dnl the GNU General Public License or the GNU Lesser General Public
9
dnl License but which still want to provide support for the GNU gettext
9
dnl License but which still want to provide support for the GNU gettext
10
dnl functionality.
10
dnl functionality.
11
dnl Please note that the actual code of the GNU gettext library is covered
11
dnl Please note that the actual code of the GNU gettext library is covered
12
dnl by the GNU Library General Public License, and the rest of the GNU
12
dnl by the GNU Lesser General Public License, and the rest of the GNU
13
dnl gettext package is covered by the GNU General Public License.
13
dnl gettext package is covered by the GNU General Public License.
14
dnl They are *not* in the public domain.
14
dnl They are *not* in the public domain.
15
15
Lines 55-76 Link Here
55
AC_DEFUN([AM_GNU_GETTEXT],
55
AC_DEFUN([AM_GNU_GETTEXT],
56
[
56
[
57
  dnl Argument checking.
57
  dnl Argument checking.
58
  ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [use-libtool], ,
58
  m4_if([$1], [], , [m4_if([$1], [external], , [m4_if([$1], [use-libtool], ,
59
    [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
59
    [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
60
])])])])
60
])])])])
61
  ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old],
61
  m4_if(m4_if([$1], [], [old])[]m4_if([$1], [no-libtool], [old]), [old],
62
    [errprint([ERROR: Use of AM_GNU_GETTEXT without [external] argument is no longer supported.
62
    [errprint([ERROR: Use of AM_GNU_GETTEXT without [external] argument is no longer supported.
63
])])
63
])])
64
  ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
64
  m4_if([$2], [], , [m4_if([$2], [need-ngettext], , [m4_if([$2], [need-formatstring-macros], ,
65
    [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
65
    [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
66
])])])])
66
])])])])
67
  define([gt_included_intl],
67
  define([gt_included_intl],
68
    ifelse([$1], [external], [no], [yes]))
68
    m4_if([$1], [external], [no], [yes]))
69
  gt_NEEDS_INIT
69
  gt_NEEDS_INIT
70
  AM_GNU_GETTEXT_NEED([$2])
70
  AM_GNU_GETTEXT_NEED([$2])
71
71
72
  AC_REQUIRE([AM_PO_SUBDIRS])dnl
72
  AC_REQUIRE([AM_PO_SUBDIRS])dnl
73
  ifelse(gt_included_intl, yes, [
73
  m4_if(gt_included_intl, yes, [
74
    AC_REQUIRE([AM_INTL_SUBDIR])dnl
74
    AC_REQUIRE([AM_INTL_SUBDIR])dnl
75
  ])
75
  ])
76
76
Lines 88-94 Link Here
88
  dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
88
  dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
89
  dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
89
  dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
90
  dnl Since AC_PROVIDE_IFELSE is not documented, we avoid it.
90
  dnl Since AC_PROVIDE_IFELSE is not documented, we avoid it.
91
  ifelse(gt_included_intl, yes, , [
91
  m4_if(gt_included_intl, yes, , [
92
    AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
92
    AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
93
  ])
93
  ])
94
94
Lines 98-104 Link Here
98
  dnl Set USE_NLS.
98
  dnl Set USE_NLS.
99
  AC_REQUIRE([AM_NLS])
99
  AC_REQUIRE([AM_NLS])
100
100
101
  ifelse(gt_included_intl, yes, [
101
  m4_if(gt_included_intl, yes, [
102
    BUILD_INCLUDED_LIBINTL=no
102
    BUILD_INCLUDED_LIBINTL=no
103
    USE_INCLUDED_LIBINTL=no
103
    USE_INCLUDED_LIBINTL=no
104
  ])
104
  ])
Lines 118-124 Link Here
118
  dnl If we use NLS figure out what method
118
  dnl If we use NLS figure out what method
119
  if test "$USE_NLS" = "yes"; then
119
  if test "$USE_NLS" = "yes"; then
120
    gt_use_preinstalled_gnugettext=no
120
    gt_use_preinstalled_gnugettext=no
121
    ifelse(gt_included_intl, yes, [
121
    m4_if(gt_included_intl, yes, [
122
      AC_MSG_CHECKING([whether included gettext is requested])
122
      AC_MSG_CHECKING([whether included gettext is requested])
123
      AC_ARG_WITH([included-gettext],
123
      AC_ARG_WITH([included-gettext],
124
        [  --with-included-gettext use the GNU gettext library included here],
124
        [  --with-included-gettext use the GNU gettext library included here],
Lines 174-180 Link Here
174
174
175
        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
175
        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
176
          dnl Sometimes libintl requires libiconv, so first search for libiconv.
176
          dnl Sometimes libintl requires libiconv, so first search for libiconv.
177
          ifelse(gt_included_intl, yes, , [
177
          m4_if(gt_included_intl, yes, , [
178
            AM_ICONV_LINK
178
            AM_ICONV_LINK
179
          ])
179
          ])
180
          dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
180
          dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
Lines 261-267 Link Here
261
          INCINTL=
261
          INCINTL=
262
        fi
262
        fi
263
263
264
    ifelse(gt_included_intl, yes, [
264
    m4_if(gt_included_intl, yes, [
265
        if test "$gt_use_preinstalled_gnugettext" != "yes"; then
265
        if test "$gt_use_preinstalled_gnugettext" != "yes"; then
266
          dnl GNU gettext is not found in the C library.
266
          dnl GNU gettext is not found in the C library.
267
          dnl Fall back on included GNU gettext library.
267
          dnl Fall back on included GNU gettext library.
Lines 273-280 Link Here
273
        dnl Mark actions used to generate GNU NLS library.
273
        dnl Mark actions used to generate GNU NLS library.
274
        BUILD_INCLUDED_LIBINTL=yes
274
        BUILD_INCLUDED_LIBINTL=yes
275
        USE_INCLUDED_LIBINTL=yes
275
        USE_INCLUDED_LIBINTL=yes
276
        LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LIBICONV $LIBTHREAD"
276
        LIBINTL="m4_if([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LIBICONV $LIBTHREAD"
277
        LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LTLIBICONV $LTLIBTHREAD"
277
        LTLIBINTL="m4_if([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LTLIBICONV $LTLIBTHREAD"
278
        LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
278
        LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
279
      fi
279
      fi
280
280
Lines 341-347 Link Here
341
    POSUB=po
341
    POSUB=po
342
  fi
342
  fi
343
343
344
  ifelse(gt_included_intl, yes, [
344
  m4_if(gt_included_intl, yes, [
345
    dnl In GNU gettext we have to set BUILD_INCLUDED_LIBINTL to 'yes'
345
    dnl In GNU gettext we have to set BUILD_INCLUDED_LIBINTL to 'yes'
346
    dnl because some of the testsuite requires it.
346
    dnl because some of the testsuite requires it.
347
    BUILD_INCLUDED_LIBINTL=yes
347
    BUILD_INCLUDED_LIBINTL=yes
(-)xz-5.2.5/m4/host-cpu-c-abi.m4 (-9 / +43 lines)
Lines 1-5 Link Here
1
# host-cpu-c-abi.m4 serial 11
1
# host-cpu-c-abi.m4 serial 15
2
dnl Copyright (C) 2002-2019 Free Software Foundation, Inc.
2
dnl Copyright (C) 2002-2022 Free Software Foundation, Inc.
3
dnl This file is free software; the Free Software Foundation
3
dnl This file is free software; the Free Software Foundation
4
dnl gives unlimited permission to copy and/or distribute it,
4
dnl gives unlimited permission to copy and/or distribute it,
5
dnl with or without modifications, as long as this notice is preserved.
5
dnl with or without modifications, as long as this notice is preserved.
Lines 55-61 Link Here
55
    [case "$host_cpu" in
55
    [case "$host_cpu" in
56
56
57
changequote(,)dnl
57
changequote(,)dnl
58
       i[4567]86 )
58
       i[34567]86 )
59
changequote([,])dnl
59
changequote([,])dnl
60
         gl_cv_host_cpu_c_abi=i386
60
         gl_cv_host_cpu_c_abi=i386
61
         ;;
61
         ;;
Lines 211-217 Link Here
211
         # be generating 64-bit code.
211
         # be generating 64-bit code.
212
         AC_COMPILE_IFELSE(
212
         AC_COMPILE_IFELSE(
213
           [AC_LANG_SOURCE(
213
           [AC_LANG_SOURCE(
214
              [[#if defined __powerpc64__ || defined _ARCH_PPC64
214
              [[#if defined __powerpc64__ || defined __LP64__
215
                 int ok;
215
                 int ok;
216
                #else
216
                #else
217
                 error fail
217
                 error fail
Lines 382-387 Link Here
382
#ifndef __ia64__
382
#ifndef __ia64__
383
#undef __ia64__
383
#undef __ia64__
384
#endif
384
#endif
385
#ifndef __loongarch64__
386
#undef __loongarch64__
387
#endif
385
#ifndef __m68k__
388
#ifndef __m68k__
386
#undef __m68k__
389
#undef __m68k__
387
#endif
390
#endif
Lines 457-463 Link Here
457
460
458
461
459
dnl Sets the HOST_CPU_C_ABI_32BIT variable to 'yes' if the C language ABI
462
dnl Sets the HOST_CPU_C_ABI_32BIT variable to 'yes' if the C language ABI
460
dnl (application binary interface) is a 32-bit one, or to 'no' otherwise.
463
dnl (application binary interface) is a 32-bit one, to 'no' if it is a 64-bit
464
dnl one, or to 'unknown' if unknown.
461
dnl This is a simplified variant of gl_HOST_CPU_C_ABI.
465
dnl This is a simplified variant of gl_HOST_CPU_C_ABI.
462
AC_DEFUN([gl_HOST_CPU_C_ABI_32BIT],
466
AC_DEFUN([gl_HOST_CPU_C_ABI_32BIT],
463
[
467
[
Lines 467-481 Link Here
467
       case "$gl_cv_host_cpu_c_abi" in
471
       case "$gl_cv_host_cpu_c_abi" in
468
         i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc)
472
         i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc)
469
           gl_cv_host_cpu_c_abi_32bit=yes ;;
473
           gl_cv_host_cpu_c_abi_32bit=yes ;;
470
         *)
474
         x86_64 | alpha | arm64 | hppa64 | ia64 | mips64 | powerpc64 | powerpc64-elfv2 | riscv*-lp64* | s390x | sparc64 )
471
           gl_cv_host_cpu_c_abi_32bit=no ;;
475
           gl_cv_host_cpu_c_abi_32bit=no ;;
476
         *)
477
           gl_cv_host_cpu_c_abi_32bit=unknown ;;
472
       esac
478
       esac
473
     else
479
     else
474
       case "$host_cpu" in
480
       case "$host_cpu" in
475
481
482
         # CPUs that only support a 32-bit ABI.
483
         arc \
484
         | bfin \
485
         | cris* \
486
         | csky \
487
         | epiphany \
488
         | ft32 \
489
         | h8300 \
490
         | m68k \
491
         | microblaze | microblazeel \
492
         | nds32 | nds32le | nds32be \
493
         | nios2 | nios2eb | nios2el \
494
         | or1k* \
495
         | or32 \
496
         | sh | sh[1234] | sh[1234]e[lb] \
497
         | tic6x \
498
         | xtensa* )
499
           gl_cv_host_cpu_c_abi_32bit=yes
500
           ;;
501
502
         # CPUs that only support a 64-bit ABI.
476
changequote(,)dnl
503
changequote(,)dnl
477
         i[4567]86 )
504
         alpha | alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] \
505
         | mmix )
478
changequote([,])dnl
506
changequote([,])dnl
507
           gl_cv_host_cpu_c_abi_32bit=no
508
           ;;
509
510
changequote(,)dnl
511
         i[34567]86 )
512
changequote([,])dnl
479
           gl_cv_host_cpu_c_abi_32bit=yes
513
           gl_cv_host_cpu_c_abi_32bit=yes
480
           ;;
514
           ;;
481
515
Lines 574-580 Link Here
574
           # be generating 64-bit code.
608
           # be generating 64-bit code.
575
           AC_COMPILE_IFELSE(
609
           AC_COMPILE_IFELSE(
576
             [AC_LANG_SOURCE(
610
             [AC_LANG_SOURCE(
577
                [[#if defined __powerpc64__ || defined _ARCH_PPC64
611
                [[#if defined __powerpc64__ || defined __LP64__
578
                   int ok;
612
                   int ok;
579
                  #else
613
                  #else
580
                   error fail
614
                   error fail
Lines 634-640 Link Here
634
           ;;
668
           ;;
635
669
636
         *)
670
         *)
637
           gl_cv_host_cpu_c_abi_32bit=no
671
           gl_cv_host_cpu_c_abi_32bit=unknown
638
           ;;
672
           ;;
639
       esac
673
       esac
640
     fi
674
     fi
(-)xz-5.2.5/m4/iconv.m4 (-36 / +31 lines)
Lines 1-5 Link Here
1
# iconv.m4 serial 21
1
# iconv.m4 serial 24
2
dnl Copyright (C) 2000-2002, 2007-2014, 2016-2019 Free Software Foundation,
2
dnl Copyright (C) 2000-2002, 2007-2014, 2016-2022 Free Software Foundation,
3
dnl Inc.
3
dnl Inc.
4
dnl This file is free software; the Free Software Foundation
4
dnl This file is free software; the Free Software Foundation
5
dnl gives unlimited permission to copy and/or distribute it,
5
dnl gives unlimited permission to copy and/or distribute it,
Lines 7-12 Link Here
7
7
8
dnl From Bruno Haible.
8
dnl From Bruno Haible.
9
9
10
AC_PREREQ([2.64])
11
12
dnl Note: AM_ICONV is documented in the GNU gettext manual
13
dnl <https://www.gnu.org/software/gettext/manual/html_node/AM_005fICONV.html>.
14
dnl Don't make changes that are incompatible with that documentation!
15
10
AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
16
AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
11
[
17
[
12
  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
18
  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
Lines 86-93 Link Here
86
#endif
92
#endif
87
             ]],
93
             ]],
88
             [[int result = 0;
94
             [[int result = 0;
89
  /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
95
  /* Test against AIX 5.1...7.2 bug: Failures are not distinguishable from
90
     returns.  */
96
     successful returns.  This is even documented in
97
     <https://www.ibm.com/support/knowledgecenter/ssw_aix_72/i_bostechref/iconv.html> */
91
  {
98
  {
92
    iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
99
    iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
93
    if (cd_utf8_to_88591 != (iconv_t)(-1))
100
    if (cd_utf8_to_88591 != (iconv_t)(-1))
Lines 225-232 Link Here
225
  AC_SUBST([LTLIBICONV])
232
  AC_SUBST([LTLIBICONV])
226
])
233
])
227
234
228
dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to
235
dnl Define AM_ICONV using AC_DEFUN_ONCE, in order to avoid warnings like
229
dnl avoid warnings like
230
dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required".
236
dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required".
231
dnl This is tricky because of the way 'aclocal' is implemented:
237
dnl This is tricky because of the way 'aclocal' is implemented:
232
dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN.
238
dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN.
Lines 234-287 Link Here
234
dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions.
240
dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions.
235
dnl   Otherwise aclocal would emit many "Use of uninitialized value $1"
241
dnl   Otherwise aclocal would emit many "Use of uninitialized value $1"
236
dnl   warnings.
242
dnl   warnings.
237
m4_define([gl_iconv_AC_DEFUN],
243
AC_DEFUN_ONCE([AM_ICONV],
238
  m4_version_prereq([2.64],
239
    [[AC_DEFUN_ONCE(
240
        [$1], [$2])]],
241
    [m4_ifdef([gl_00GNULIB],
242
       [[AC_DEFUN_ONCE(
243
           [$1], [$2])]],
244
       [[AC_DEFUN(
245
           [$1], [$2])]])]))
246
gl_iconv_AC_DEFUN([AM_ICONV],
247
[
244
[
248
  AM_ICONV_LINK
245
  AM_ICONV_LINK
249
  if test "$am_cv_func_iconv" = yes; then
246
  if test "$am_cv_func_iconv" = yes; then
250
    AC_MSG_CHECKING([for iconv declaration])
247
    AC_CACHE_CHECK([whether iconv is compatible with its POSIX signature],
251
    AC_CACHE_VAL([am_cv_proto_iconv], [
248
      [gl_cv_iconv_nonconst],
252
      AC_COMPILE_IFELSE(
249
      [AC_COMPILE_IFELSE(
253
        [AC_LANG_PROGRAM(
250
         [AC_LANG_PROGRAM(
254
           [[
251
            [[
255
#include <stdlib.h>
252
#include <stdlib.h>
256
#include <iconv.h>
253
#include <iconv.h>
257
extern
254
extern
258
#ifdef __cplusplus
255
#ifdef __cplusplus
259
"C"
256
"C"
260
#endif
257
#endif
261
#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus)
262
size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
258
size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
263
#else
259
            ]],
264
size_t iconv();
260
            [[]])],
265
#endif
261
         [gl_cv_iconv_nonconst=yes],
266
           ]],
262
         [gl_cv_iconv_nonconst=no])
267
           [[]])],
263
      ])
268
        [am_cv_proto_iconv_arg1=""],
269
        [am_cv_proto_iconv_arg1="const"])
270
      am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
271
    am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
272
    AC_MSG_RESULT([
273
         $am_cv_proto_iconv])
274
  else
264
  else
275
    dnl When compiling GNU libiconv on a system that does not have iconv yet,
265
    dnl When compiling GNU libiconv on a system that does not have iconv yet,
276
    dnl pick the POSIX compliant declaration without 'const'.
266
    dnl pick the POSIX compliant declaration without 'const'.
277
    am_cv_proto_iconv_arg1=""
267
    gl_cv_iconv_nonconst=yes
278
  fi
268
  fi
279
  AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1],
269
  if test $gl_cv_iconv_nonconst = yes; then
270
    iconv_arg1=""
271
  else
272
    iconv_arg1="const"
273
  fi
274
  AC_DEFINE_UNQUOTED([ICONV_CONST], [$iconv_arg1],
280
    [Define as const if the declaration of iconv() needs const.])
275
    [Define as const if the declaration of iconv() needs const.])
281
  dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>.
276
  dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>.
282
  m4_ifdef([gl_ICONV_H_DEFAULTS],
277
  m4_ifdef([gl_ICONV_H_DEFAULTS],
283
    [AC_REQUIRE([gl_ICONV_H_DEFAULTS])
278
    [AC_REQUIRE([gl_ICONV_H_DEFAULTS])
284
     if test -n "$am_cv_proto_iconv_arg1"; then
279
     if test $gl_cv_iconv_nonconst != yes; then
285
       ICONV_CONST="const"
280
       ICONV_CONST="const"
286
     fi
281
     fi
287
    ])
282
    ])
(-)xz-5.2.5/m4/intlmacosx.m4 (-20 / +13 lines)
Lines 1-15 Link Here
1
# intlmacosx.m4 serial 6 (gettext-0.20)
1
# intlmacosx.m4 serial 8 (gettext-0.20.2)
2
dnl Copyright (C) 2004-2014, 2016, 2019 Free Software Foundation, Inc.
2
dnl Copyright (C) 2004-2014, 2016, 2019-2022 Free Software Foundation, Inc.
3
dnl This file is free software; the Free Software Foundation
3
dnl This file is free software; the Free Software Foundation
4
dnl gives unlimited permission to copy and/or distribute it,
4
dnl gives unlimited permission to copy and/or distribute it,
5
dnl with or without modifications, as long as this notice is preserved.
5
dnl with or without modifications, as long as this notice is preserved.
6
dnl
6
dnl
7
dnl This file can be used in projects which are not available under
7
dnl This file can be used in projects which are not available under
8
dnl the GNU General Public License or the GNU Library General Public
8
dnl the GNU General Public License or the GNU Lesser General Public
9
dnl License but which still want to provide support for the GNU gettext
9
dnl License but which still want to provide support for the GNU gettext
10
dnl functionality.
10
dnl functionality.
11
dnl Please note that the actual code of the GNU gettext library is covered
11
dnl Please note that the actual code of the GNU gettext library is covered
12
dnl by the GNU Library General Public License, and the rest of the GNU
12
dnl by the GNU Lesser General Public License, and the rest of the GNU
13
dnl gettext package is covered by the GNU General Public License.
13
dnl gettext package is covered by the GNU General Public License.
14
dnl They are *not* in the public domain.
14
dnl They are *not* in the public domain.
15
15
Lines 33-53 Link Here
33
    AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1],
33
    AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1],
34
      [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
34
      [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
35
  fi
35
  fi
36
  dnl Check for API introduced in Mac OS X 10.5.
36
  dnl Don't check for the API introduced in Mac OS X 10.5, CFLocaleCopyCurrent,
37
  AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent],
37
  dnl because in macOS 10.13.4 it has the following behaviour:
38
    [gt_save_LIBS="$LIBS"
38
  dnl When two or more languages are specified in the
39
     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
39
  dnl "System Preferences > Language & Region > Preferred Languages" panel,
40
     AC_LINK_IFELSE(
40
  dnl it returns en_CC where CC is the territory (even when English is not among
41
       [AC_LANG_PROGRAM(
41
  dnl the preferred languages!).  What we want instead is what
42
          [[#include <CoreFoundation/CFLocale.h>]],
42
  dnl CFLocaleCopyCurrent returned in earlier macOS releases and what
43
          [[CFLocaleCopyCurrent();]])],
43
  dnl CFPreferencesCopyAppValue still returns, namely ll_CC where ll is the
44
       [gt_cv_func_CFLocaleCopyCurrent=yes],
44
  dnl first among the preferred languages and CC is the territory.
45
       [gt_cv_func_CFLocaleCopyCurrent=no])
46
     LIBS="$gt_save_LIBS"])
47
  if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
48
    AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1],
49
      [Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
50
  fi
51
  AC_CACHE_CHECK([for CFLocaleCopyPreferredLanguages], [gt_cv_func_CFLocaleCopyPreferredLanguages],
45
  AC_CACHE_CHECK([for CFLocaleCopyPreferredLanguages], [gt_cv_func_CFLocaleCopyPreferredLanguages],
52
    [gt_save_LIBS="$LIBS"
46
    [gt_save_LIBS="$LIBS"
53
     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
47
     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
Lines 64-70 Link Here
64
  fi
58
  fi
65
  INTL_MACOSX_LIBS=
59
  INTL_MACOSX_LIBS=
66
  if test $gt_cv_func_CFPreferencesCopyAppValue = yes \
60
  if test $gt_cv_func_CFPreferencesCopyAppValue = yes \
67
     || test $gt_cv_func_CFLocaleCopyCurrent = yes \
68
     || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then
61
     || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then
69
    INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
62
    INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
70
  fi
63
  fi
(-)xz-5.2.5/m4/lib-ld.m4 (-3 / +3 lines)
Lines 1-5 Link Here
1
# lib-ld.m4 serial 9
1
# lib-ld.m4 serial 10
2
dnl Copyright (C) 1996-2003, 2009-2019 Free Software Foundation, Inc.
2
dnl Copyright (C) 1996-2003, 2009-2022 Free Software Foundation, Inc.
3
dnl This file is free software; the Free Software Foundation
3
dnl This file is free software; the Free Software Foundation
4
dnl gives unlimited permission to copy and/or distribute it,
4
dnl gives unlimited permission to copy and/or distribute it,
5
dnl with or without modifications, as long as this notice is preserved.
5
dnl with or without modifications, as long as this notice is preserved.
Lines 122-128 Link Here
122
      *-*-aix*)
122
      *-*-aix*)
123
        AC_COMPILE_IFELSE(
123
        AC_COMPILE_IFELSE(
124
          [AC_LANG_SOURCE(
124
          [AC_LANG_SOURCE(
125
             [[#if defined __powerpc64__ || defined _ARCH_PPC64
125
             [[#if defined __powerpc64__ || defined __LP64__
126
                int ok;
126
                int ok;
127
               #else
127
               #else
128
                error fail
128
                error fail
(-)xz-5.2.5/m4/lib-link.m4 (-67 / +106 lines)
Lines 1-5 Link Here
1
# lib-link.m4 serial 28
1
# lib-link.m4 serial 33
2
dnl Copyright (C) 2001-2019 Free Software Foundation, Inc.
2
dnl Copyright (C) 2001-2022 Free Software Foundation, Inc.
3
dnl This file is free software; the Free Software Foundation
3
dnl This file is free software; the Free Software Foundation
4
dnl gives unlimited permission to copy and/or distribute it,
4
dnl gives unlimited permission to copy and/or distribute it,
5
dnl with or without modifications, as long as this notice is preserved.
5
dnl with or without modifications, as long as this notice is preserved.
Lines 192-201 Link Here
192
  AC_LIB_WITH_FINAL_PREFIX([
192
  AC_LIB_WITH_FINAL_PREFIX([
193
    eval additional_includedir=\"$includedir\"
193
    eval additional_includedir=\"$includedir\"
194
    eval additional_libdir=\"$libdir\"
194
    eval additional_libdir=\"$libdir\"
195
    eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
196
    eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
195
  ])
197
  ])
196
  AC_ARG_WITH(PACK[-prefix],
198
  AC_ARG_WITH(PACK[-prefix],
197
[[  --with-]]PACK[[-prefix[=DIR]  search for ]PACKLIBS[ in DIR/include and DIR/lib
199
[[  --with-]]PACK[[-prefix[=DIR]  search for ]]PACKLIBS[[ in DIR/include and DIR/lib
198
  --without-]]PACK[[-prefix     don't search for ]PACKLIBS[ in includedir and libdir]],
200
  --without-]]PACK[[-prefix     don't search for ]]PACKLIBS[[ in includedir and libdir]],
199
[
201
[
200
    if test "X$withval" = "Xno"; then
202
    if test "X$withval" = "Xno"; then
201
      use_additional=no
203
      use_additional=no
Lines 204-220 Link Here
204
        AC_LIB_WITH_FINAL_PREFIX([
206
        AC_LIB_WITH_FINAL_PREFIX([
205
          eval additional_includedir=\"$includedir\"
207
          eval additional_includedir=\"$includedir\"
206
          eval additional_libdir=\"$libdir\"
208
          eval additional_libdir=\"$libdir\"
209
          eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
210
          eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
207
        ])
211
        ])
208
      else
212
      else
209
        additional_includedir="$withval/include"
213
        additional_includedir="$withval/include"
210
        additional_libdir="$withval/$acl_libdirstem"
214
        additional_libdir="$withval/$acl_libdirstem"
211
        if test "$acl_libdirstem2" != "$acl_libdirstem" \
215
        additional_libdir2="$withval/$acl_libdirstem2"
212
           && test ! -d "$withval/$acl_libdirstem"; then
216
        additional_libdir3="$withval/$acl_libdirstem3"
213
          additional_libdir="$withval/$acl_libdirstem2"
214
        fi
215
      fi
217
      fi
216
    fi
218
    fi
217
])
219
])
220
  if test "X$additional_libdir2" = "X$additional_libdir"; then
221
    additional_libdir2=
222
  fi
223
  if test "X$additional_libdir3" = "X$additional_libdir"; then
224
    additional_libdir3=
225
  fi
218
  dnl Search the library and its dependencies in $additional_libdir and
226
  dnl Search the library and its dependencies in $additional_libdir and
219
  dnl $LDFLAGS. Using breadth-first-seach.
227
  dnl $LDFLAGS. Using breadth-first-seach.
220
  LIB[]NAME=
228
  LIB[]NAME=
Lines 270-317 Link Here
270
            shrext=
278
            shrext=
271
          fi
279
          fi
272
          if test $use_additional = yes; then
280
          if test $use_additional = yes; then
273
            dir="$additional_libdir"
281
            for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do
274
            dnl The same code as in the loop below:
282
              if test "X$found_dir" = "X"; then
275
            dnl First look for a shared library.
283
                eval dir=\$$additional_libdir_variable
276
            if test -n "$acl_shlibext"; then
284
                if test -n "$dir"; then
277
              if test -f "$dir/$libname$shrext"; then
285
                  dnl The same code as in the loop below:
278
                found_dir="$dir"
286
                  dnl First look for a shared library.
279
                found_so="$dir/$libname$shrext"
287
                  if test -n "$acl_shlibext"; then
280
              else
288
                    if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then
281
                if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
289
                      found_dir="$dir"
282
                  ver=`(cd "$dir" && \
290
                      found_so="$dir/$libname$shrext"
283
                        for f in "$libname$shrext".*; do echo "$f"; done \
291
                    else
284
                        | sed -e "s,^$libname$shrext\\\\.,," \
292
                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
285
                        | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
293
                        ver=`(cd "$dir" && \
286
                        | sed 1q ) 2>/dev/null`
294
                              for f in "$libname$shrext".*; do echo "$f"; done \
287
                  if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
295
                              | sed -e "s,^$libname$shrext\\\\.,," \
288
                    found_dir="$dir"
296
                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
289
                    found_so="$dir/$libname$shrext.$ver"
297
                              | sed 1q ) 2>/dev/null`
298
                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then
299
                          found_dir="$dir"
300
                          found_so="$dir/$libname$shrext.$ver"
301
                        fi
302
                      else
303
                        eval library_names=\"$acl_library_names_spec\"
304
                        for f in $library_names; do
305
                          if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then
306
                            found_dir="$dir"
307
                            found_so="$dir/$f"
308
                            break
309
                          fi
310
                        done
311
                      fi
312
                    fi
290
                  fi
313
                  fi
291
                else
314
                  dnl Then look for a static library.
292
                  eval library_names=\"$acl_library_names_spec\"
315
                  if test "X$found_dir" = "X"; then
293
                  for f in $library_names; do
316
                    if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then
294
                    if test -f "$dir/$f"; then
295
                      found_dir="$dir"
317
                      found_dir="$dir"
296
                      found_so="$dir/$f"
318
                      found_a="$dir/$libname.$acl_libext"
297
                      break
298
                    fi
319
                    fi
299
                  done
320
                  fi
321
                  if test "X$found_dir" != "X"; then
322
                    if test -f "$dir/$libname.la"; then
323
                      found_la="$dir/$libname.la"
324
                    fi
325
                  fi
300
                fi
326
                fi
301
              fi
327
              fi
302
            fi
328
            done
303
            dnl Then look for a static library.
304
            if test "X$found_dir" = "X"; then
305
              if test -f "$dir/$libname.$acl_libext"; then
306
                found_dir="$dir"
307
                found_a="$dir/$libname.$acl_libext"
308
              fi
309
            fi
310
            if test "X$found_dir" != "X"; then
311
              if test -f "$dir/$libname.la"; then
312
                found_la="$dir/$libname.la"
313
              fi
314
            fi
315
          fi
329
          fi
316
          if test "X$found_dir" = "X"; then
330
          if test "X$found_dir" = "X"; then
317
            for x in $LDFLAGS $LTLIB[]NAME; do
331
            for x in $LDFLAGS $LTLIB[]NAME; do
Lines 321-327 Link Here
321
                  dir=`echo "X$x" | sed -e 's/^X-L//'`
335
                  dir=`echo "X$x" | sed -e 's/^X-L//'`
322
                  dnl First look for a shared library.
336
                  dnl First look for a shared library.
323
                  if test -n "$acl_shlibext"; then
337
                  if test -n "$acl_shlibext"; then
324
                    if test -f "$dir/$libname$shrext"; then
338
                    if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then
325
                      found_dir="$dir"
339
                      found_dir="$dir"
326
                      found_so="$dir/$libname$shrext"
340
                      found_so="$dir/$libname$shrext"
327
                    else
341
                    else
Lines 331-344 Link Here
331
                              | sed -e "s,^$libname$shrext\\\\.,," \
345
                              | sed -e "s,^$libname$shrext\\\\.,," \
332
                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
346
                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
333
                              | sed 1q ) 2>/dev/null`
347
                              | sed 1q ) 2>/dev/null`
334
                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
348
                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then
335
                          found_dir="$dir"
349
                          found_dir="$dir"
336
                          found_so="$dir/$libname$shrext.$ver"
350
                          found_so="$dir/$libname$shrext.$ver"
337
                        fi
351
                        fi
338
                      else
352
                      else
339
                        eval library_names=\"$acl_library_names_spec\"
353
                        eval library_names=\"$acl_library_names_spec\"
340
                        for f in $library_names; do
354
                        for f in $library_names; do
341
                          if test -f "$dir/$f"; then
355
                          if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then
342
                            found_dir="$dir"
356
                            found_dir="$dir"
343
                            found_so="$dir/$f"
357
                            found_so="$dir/$f"
344
                            break
358
                            break
Lines 349-355 Link Here
349
                  fi
363
                  fi
350
                  dnl Then look for a static library.
364
                  dnl Then look for a static library.
351
                  if test "X$found_dir" = "X"; then
365
                  if test "X$found_dir" = "X"; then
352
                    if test -f "$dir/$libname.$acl_libext"; then
366
                    if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then
353
                      found_dir="$dir"
367
                      found_dir="$dir"
354
                      found_a="$dir/$libname.$acl_libext"
368
                      found_a="$dir/$libname.$acl_libext"
355
                    fi
369
                    fi
Lines 375-381 Link Here
375
              dnl standard /usr/lib.
389
              dnl standard /usr/lib.
376
              if test "$enable_rpath" = no \
390
              if test "$enable_rpath" = no \
377
                 || test "X$found_dir" = "X/usr/$acl_libdirstem" \
391
                 || test "X$found_dir" = "X/usr/$acl_libdirstem" \
378
                 || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
392
                 || test "X$found_dir" = "X/usr/$acl_libdirstem2" \
393
                 || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then
379
                dnl No hardcoding is needed.
394
                dnl No hardcoding is needed.
380
                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
395
                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
381
              else
396
              else
Lines 475-480 Link Here
475
                fi
490
                fi
476
                additional_includedir="$basedir/include"
491
                additional_includedir="$basedir/include"
477
                ;;
492
                ;;
493
              */$acl_libdirstem3 | */$acl_libdirstem3/)
494
                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'`
495
                if test "$name" = '$1'; then
496
                  LIB[]NAME[]_PREFIX="$basedir"
497
                fi
498
                additional_includedir="$basedir/include"
499
                ;;
478
            esac
500
            esac
479
            if test "X$additional_includedir" != "X"; then
501
            if test "X$additional_includedir" != "X"; then
480
              dnl Potentially add $additional_includedir to $INCNAME.
502
              dnl Potentially add $additional_includedir to $INCNAME.
Lines 525-543 Link Here
525
              for dep in $dependency_libs; do
547
              for dep in $dependency_libs; do
526
                case "$dep" in
548
                case "$dep" in
527
                  -L*)
549
                  -L*)
528
                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
550
                    dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
529
                    dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
551
                    dnl Potentially add $dependency_libdir to $LIBNAME and $LTLIBNAME.
530
                    dnl But don't add it
552
                    dnl But don't add it
531
                    dnl   1. if it's the standard /usr/lib,
553
                    dnl   1. if it's the standard /usr/lib,
532
                    dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
554
                    dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
533
                    dnl   3. if it's already present in $LDFLAGS or the already
555
                    dnl   3. if it's already present in $LDFLAGS or the already
534
                    dnl      constructed $LIBNAME,
556
                    dnl      constructed $LIBNAME,
535
                    dnl   4. if it doesn't exist as a directory.
557
                    dnl   4. if it doesn't exist as a directory.
536
                    if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
558
                    if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \
537
                       && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
559
                       && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \
560
                       && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then
538
                      haveit=
561
                      haveit=
539
                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
562
                      if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \
540
                         || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
563
                         || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \
564
                         || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then
541
                        if test -n "$GCC"; then
565
                        if test -n "$GCC"; then
542
                          case $host_os in
566
                          case $host_os in
543
                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
567
                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
Lines 548-576 Link Here
548
                        haveit=
572
                        haveit=
549
                        for x in $LDFLAGS $LIB[]NAME; do
573
                        for x in $LDFLAGS $LIB[]NAME; do
550
                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
574
                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
551
                          if test "X$x" = "X-L$additional_libdir"; then
575
                          if test "X$x" = "X-L$dependency_libdir"; then
552
                            haveit=yes
576
                            haveit=yes
553
                            break
577
                            break
554
                          fi
578
                          fi
555
                        done
579
                        done
556
                        if test -z "$haveit"; then
580
                        if test -z "$haveit"; then
557
                          if test -d "$additional_libdir"; then
581
                          if test -d "$dependency_libdir"; then
558
                            dnl Really add $additional_libdir to $LIBNAME.
582
                            dnl Really add $dependency_libdir to $LIBNAME.
559
                            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
583
                            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$dependency_libdir"
560
                          fi
584
                          fi
561
                        fi
585
                        fi
562
                        haveit=
586
                        haveit=
563
                        for x in $LDFLAGS $LTLIB[]NAME; do
587
                        for x in $LDFLAGS $LTLIB[]NAME; do
564
                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
588
                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
565
                          if test "X$x" = "X-L$additional_libdir"; then
589
                          if test "X$x" = "X-L$dependency_libdir"; then
566
                            haveit=yes
590
                            haveit=yes
567
                            break
591
                            break
568
                          fi
592
                          fi
569
                        done
593
                        done
570
                        if test -z "$haveit"; then
594
                        if test -z "$haveit"; then
571
                          if test -d "$additional_libdir"; then
595
                          if test -d "$dependency_libdir"; then
572
                            dnl Really add $additional_libdir to $LTLIBNAME.
596
                            dnl Really add $dependency_libdir to $LTLIBNAME.
573
                            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
597
                            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$dependency_libdir"
574
                          fi
598
                          fi
575
                        fi
599
                        fi
576
                      fi
600
                      fi
Lines 607-613 Link Here
607
                    ;;
631
                    ;;
608
                  -l*)
632
                  -l*)
609
                    dnl Handle this in the next round.
633
                    dnl Handle this in the next round.
610
                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
634
                    dnl But on GNU systems, ignore -lc options, because
635
                    dnl   - linking with libc is the default anyway,
636
                    dnl   - linking with libc.a may produce an error
637
                    dnl     "/usr/bin/ld: dynamic STT_GNU_IFUNC symbol `strcmp' with pointer equality in `/usr/lib/libc.a(strcmp.o)' can not be used when making an executable; recompile with -fPIE and relink with -pie"
638
                    dnl     or may produce an executable that always crashes, see
639
                    dnl     <https://lists.gnu.org/archive/html/grep-devel/2020-09/msg00052.html>.
640
                    dep=`echo "X$dep" | sed -e 's/^X-l//'`
641
                    if test "X$dep" != Xc \
642
                       || case $host_os in
643
                            linux* | gnu* | k*bsd*-gnu) false ;;
644
                            *)                          true ;;
645
                          esac; then
646
                      names_next_round="$names_next_round $dep"
647
                    fi
611
                    ;;
648
                    ;;
612
                  *.la)
649
                  *.la)
613
                    dnl Handle this in the next round. Throw away the .la's
650
                    dnl Handle this in the next round. Throw away the .la's
Lines 718-724 Link Here
718
          dir="$next"
755
          dir="$next"
719
          dnl No need to hardcode the standard /usr/lib.
756
          dnl No need to hardcode the standard /usr/lib.
720
          if test "X$dir" != "X/usr/$acl_libdirstem" \
757
          if test "X$dir" != "X/usr/$acl_libdirstem" \
721
             && test "X$dir" != "X/usr/$acl_libdirstem2"; then
758
             && test "X$dir" != "X/usr/$acl_libdirstem2" \
759
             && test "X$dir" != "X/usr/$acl_libdirstem3"; then
722
            rpathdirs="$rpathdirs $dir"
760
            rpathdirs="$rpathdirs $dir"
723
          fi
761
          fi
724
          next=
762
          next=
Lines 728-734 Link Here
728
            -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
766
            -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
729
                 dnl No need to hardcode the standard /usr/lib.
767
                 dnl No need to hardcode the standard /usr/lib.
730
                 if test "X$dir" != "X/usr/$acl_libdirstem" \
768
                 if test "X$dir" != "X/usr/$acl_libdirstem" \
731
                    && test "X$dir" != "X/usr/$acl_libdirstem2"; then
769
                    && test "X$dir" != "X/usr/$acl_libdirstem2" \
770
                    && test "X$dir" != "X/usr/$acl_libdirstem3"; then
732
                   rpathdirs="$rpathdirs $dir"
771
                   rpathdirs="$rpathdirs $dir"
733
                 fi
772
                 fi
734
                 next= ;;
773
                 next= ;;
(-)xz-5.2.5/m4/lib-prefix.m4 (-66 / +140 lines)
Lines 1-5 Link Here
1
# lib-prefix.m4 serial 14
1
# lib-prefix.m4 serial 20
2
dnl Copyright (C) 2001-2005, 2008-2019 Free Software Foundation, Inc.
2
dnl Copyright (C) 2001-2005, 2008-2022 Free Software Foundation, Inc.
3
dnl This file is free software; the Free Software Foundation
3
dnl This file is free software; the Free Software Foundation
4
dnl gives unlimited permission to copy and/or distribute it,
4
dnl gives unlimited permission to copy and/or distribute it,
5
dnl with or without modifications, as long as this notice is preserved.
5
dnl with or without modifications, as long as this notice is preserved.
Lines 147-167 Link Here
147
])
147
])
148
148
149
dnl AC_LIB_PREPARE_MULTILIB creates
149
dnl AC_LIB_PREPARE_MULTILIB creates
150
dnl - a variable acl_libdirstem, containing the basename of the libdir, either
150
dnl - a function acl_is_expected_elfclass, that tests whether standard input
151
dnl   "lib" or "lib64" or "lib/64",
151
dn;   has a 32-bit or 64-bit ELF header, depending on the host CPU ABI,
152
dnl - a variable acl_libdirstem2, as a secondary possible value for
152
dnl - 3 variables acl_libdirstem, acl_libdirstem2, acl_libdirstem3, containing
153
dnl   acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or
153
dnl   the basename of the libdir to try in turn, either "lib" or "lib64" or
154
dnl   "lib/amd64".
154
dnl   "lib/64" or "lib32" or "lib/sparcv9" or "lib/amd64" or similar.
155
AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
155
AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
156
[
156
[
157
  dnl There is no formal standard regarding lib and lib64.
157
  dnl There is no formal standard regarding lib, lib32, and lib64.
158
  dnl On glibc systems, the current practice is that on a system supporting
158
  dnl On most glibc systems, the current practice is that on a system supporting
159
  dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
159
  dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
160
  dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine
160
  dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. However, on
161
  dnl the compiler's default mode by looking at the compiler's library search
161
  dnl Arch Linux based distributions, it's the opposite: 32-bit libraries go
162
  dnl path. If at least one of its elements ends in /lib64 or points to a
162
  dnl under $prefix/lib32 and 64-bit libraries go under $prefix/lib.
163
  dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI.
163
  dnl We determine the compiler's default mode by looking at the compiler's
164
  dnl Otherwise we use the default, namely "lib".
164
  dnl library search path. If at least one of its elements ends in /lib64 or
165
  dnl points to a directory whose absolute pathname ends in /lib64, we use that
166
  dnl for 64-bit ABIs. Similarly for 32-bit ABIs. Otherwise we use the default,
167
  dnl namely "lib".
165
  dnl On Solaris systems, the current practice is that on a system supporting
168
  dnl On Solaris systems, the current practice is that on a system supporting
166
  dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
169
  dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
167
  dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or
170
  dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or
Lines 169-195 Link Here
169
  AC_REQUIRE([AC_CANONICAL_HOST])
172
  AC_REQUIRE([AC_CANONICAL_HOST])
170
  AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT])
173
  AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT])
171
174
172
  case "$host_os" in
175
  AC_CACHE_CHECK([for ELF binary format], [gl_cv_elf],
173
    solaris*)
176
    [AC_EGREP_CPP([Extensible Linking Format],
174
      AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit],
177
       [#if defined __ELF__ || (defined __linux__ && defined __EDG__)
175
        [AC_COMPILE_IFELSE(
178
        Extensible Linking Format
176
           [AC_LANG_SOURCE(
179
        #endif
177
              [[#ifdef _LP64
180
       ],
178
                 int ok;
181
       [gl_cv_elf=yes],
179
                #else
182
       [gl_cv_elf=no])
180
                 error fail
183
    ])
181
                #endif
184
  if test $gl_cv_elf = yes; then
182
              ]])],
185
    # Extract the ELF class of a file (5th byte) in decimal.
183
           [gl_cv_solaris_64bit=yes],
186
    # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header
184
           [gl_cv_solaris_64bit=no])
187
    if od -A x < /dev/null >/dev/null 2>/dev/null; then
185
        ]);;
188
      # Use POSIX od.
186
  esac
189
      func_elfclass ()
190
      {
191
        od -A n -t d1 -j 4 -N 1
192
      }
193
    else
194
      # Use BSD hexdump.
195
      func_elfclass ()
196
      {
197
        dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "'
198
        echo
199
      }
200
    fi
201
    # Use 'expr', not 'test', to compare the values of func_elfclass, because on
202
    # Solaris 11 OpenIndiana and Solaris 11 OmniOS, the result is 001 or 002,
203
    # not 1 or 2.
204
changequote(,)dnl
205
    case $HOST_CPU_C_ABI_32BIT in
206
      yes)
207
        # 32-bit ABI.
208
        acl_is_expected_elfclass ()
209
        {
210
          expr "`func_elfclass | sed -e 's/[ 	]//g'`" = 1 > /dev/null
211
        }
212
        ;;
213
      no)
214
        # 64-bit ABI.
215
        acl_is_expected_elfclass ()
216
        {
217
          expr "`func_elfclass | sed -e 's/[ 	]//g'`" = 2 > /dev/null
218
        }
219
        ;;
220
      *)
221
        # Unknown.
222
        acl_is_expected_elfclass ()
223
        {
224
          :
225
        }
226
        ;;
227
    esac
228
changequote([,])dnl
229
  else
230
    acl_is_expected_elfclass ()
231
    {
232
      :
233
    }
234
  fi
187
235
188
  dnl Allow the user to override the result by setting acl_cv_libdirstems.
236
  dnl Allow the user to override the result by setting acl_cv_libdirstems.
189
  AC_CACHE_CHECK([for the common suffixes of directories in the library search path],
237
  AC_CACHE_CHECK([for the common suffixes of directories in the library search path],
190
    [acl_cv_libdirstems],
238
    [acl_cv_libdirstems],
191
    [acl_libdirstem=lib
239
    [dnl Try 'lib' first, because that's the default for libdir in GNU, see
240
     dnl <https://www.gnu.org/prep/standards/html_node/Directory-Variables.html>.
241
     acl_libdirstem=lib
192
     acl_libdirstem2=
242
     acl_libdirstem2=
243
     acl_libdirstem3=
193
     case "$host_os" in
244
     case "$host_os" in
194
       solaris*)
245
       solaris*)
195
         dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment
246
         dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment
Lines 197-249 Link Here
197
         dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link."
248
         dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link."
198
         dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the
249
         dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the
199
         dnl symlink is missing, so we set acl_libdirstem2 too.
250
         dnl symlink is missing, so we set acl_libdirstem2 too.
200
         if test $gl_cv_solaris_64bit = yes; then
251
         if test $HOST_CPU_C_ABI_32BIT = no; then
201
           acl_libdirstem=lib/64
252
           acl_libdirstem2=lib/64
202
           case "$host_cpu" in
253
           case "$host_cpu" in
203
             sparc*)        acl_libdirstem2=lib/sparcv9 ;;
254
             sparc*)        acl_libdirstem3=lib/sparcv9 ;;
204
             i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
255
             i*86 | x86_64) acl_libdirstem3=lib/amd64 ;;
205
           esac
256
           esac
206
         fi
257
         fi
207
         ;;
258
         ;;
208
       *)
259
       *)
209
         dnl If $CC generates code for a 32-bit ABI, the libraries are
260
         dnl If $CC generates code for a 32-bit ABI, the libraries are
210
         dnl surely under $prefix/lib, not $prefix/lib64.
261
         dnl surely under $prefix/lib or $prefix/lib32, not $prefix/lib64.
211
         if test "$HOST_CPU_C_ABI_32BIT" != yes; then
262
         dnl Similarly, if $CC generates code for a 64-bit ABI, the libraries
212
           dnl The result is a property of the system. However, non-system
263
         dnl are surely under $prefix/lib or $prefix/lib64, not $prefix/lib32.
213
           dnl compilers sometimes have odd library search paths. Therefore
264
         dnl Find the compiler's search path. However, non-system compilers
214
           dnl prefer asking /usr/bin/gcc, if available, rather than $CC.
265
         dnl sometimes have odd library search paths. But we can't simply invoke
215
           searchpath=`(if test -f /usr/bin/gcc \
266
         dnl '/usr/bin/gcc -print-search-dirs' because that would not take into
216
                           && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \
267
         dnl account the -m32/-m31 or -m64 options from the $CC or $CFLAGS.
217
                          LC_ALL=C /usr/bin/gcc -print-search-dirs; \
268
         searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \
218
                        else \
269
                     | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
219
                          LC_ALL=C $CC -print-search-dirs; \
270
         if test $HOST_CPU_C_ABI_32BIT != no; then
220
                        fi) 2>/dev/null \
271
           # 32-bit or unknown ABI.
221
                       | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
272
           if test -d /usr/lib32; then
222
           if test -n "$searchpath"; then
273
             acl_libdirstem2=lib32
223
             acl_save_IFS="${IFS= 	}"; IFS=":"
224
             for searchdir in $searchpath; do
225
               if test -d "$searchdir"; then
226
                 case "$searchdir" in
227
                   */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
228
                   */../ | */.. )
229
                     # Better ignore directories of this form. They are misleading.
230
                     ;;
231
                   *) searchdir=`cd "$searchdir" && pwd`
232
                      case "$searchdir" in
233
                        */lib64 ) acl_libdirstem=lib64 ;;
234
                      esac ;;
235
                 esac
236
               fi
237
             done
238
             IFS="$acl_save_IFS"
239
           fi
274
           fi
240
         fi
275
         fi
276
         if test $HOST_CPU_C_ABI_32BIT != yes; then
277
           # 64-bit or unknown ABI.
278
           if test -d /usr/lib64; then
279
             acl_libdirstem3=lib64
280
           fi
281
         fi
282
         if test -n "$searchpath"; then
283
           acl_save_IFS="${IFS= 	}"; IFS=":"
284
           for searchdir in $searchpath; do
285
             if test -d "$searchdir"; then
286
               case "$searchdir" in
287
                 */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;;
288
                 */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;;
289
                 */../ | */.. )
290
                   # Better ignore directories of this form. They are misleading.
291
                   ;;
292
                 *) searchdir=`cd "$searchdir" && pwd`
293
                    case "$searchdir" in
294
                      */lib32 ) acl_libdirstem2=lib32 ;;
295
                      */lib64 ) acl_libdirstem3=lib64 ;;
296
                    esac ;;
297
               esac
298
             fi
299
           done
300
           IFS="$acl_save_IFS"
301
           if test $HOST_CPU_C_ABI_32BIT = yes; then
302
             # 32-bit ABI.
303
             acl_libdirstem3=
304
           fi
305
           if test $HOST_CPU_C_ABI_32BIT = no; then
306
             # 64-bit ABI.
307
             acl_libdirstem2=
308
           fi
309
         fi
241
         ;;
310
         ;;
242
     esac
311
     esac
243
     test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
312
     test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
244
     acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2"
313
     test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem"
314
     acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3"
245
    ])
315
    ])
246
  # Decompose acl_cv_libdirstems into acl_libdirstem and acl_libdirstem2.
316
  dnl Decompose acl_cv_libdirstems into acl_libdirstem, acl_libdirstem2, and
317
  dnl acl_libdirstem3.
318
changequote(,)dnl
247
  acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'`
319
  acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'`
248
  acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e '/,/s/.*,//'`
320
  acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'`
321
  acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'`
322
changequote([,])dnl
249
])
323
])
(-)xz-5.2.5/m4/libtool.m4 (-61 / +67 lines)
Lines 1-6 Link Here
1
# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
1
# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
2
#
2
#
3
#   Copyright (C) 1996-2001, 2003-2018 Free Software Foundation, Inc.
3
#   Copyright (C) 1996-2001, 2003-2019, 2021-2022 Free Software
4
#   Foundation, Inc.
4
#   Written by Gordon Matzigkeit, 1996
5
#   Written by Gordon Matzigkeit, 1996
5
#
6
#
6
# This file is free software; the Free Software Foundation gives
7
# This file is free software; the Free Software Foundation gives
Lines 31-37 Link Here
31
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
32
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
32
])
33
])
33
34
34
# serial 58 LT_INIT
35
# serial 59 LT_INIT
35
36
36
37
37
# LT_PREREQ(VERSION)
38
# LT_PREREQ(VERSION)
Lines 181-186 Link Here
181
m4_require([_LT_CHECK_SHELL_FEATURES])dnl
182
m4_require([_LT_CHECK_SHELL_FEATURES])dnl
182
m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
183
m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
183
m4_require([_LT_CMD_RELOAD])dnl
184
m4_require([_LT_CMD_RELOAD])dnl
185
m4_require([_LT_DECL_FILECMD])dnl
184
m4_require([_LT_CHECK_MAGIC_METHOD])dnl
186
m4_require([_LT_CHECK_MAGIC_METHOD])dnl
185
m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
187
m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
186
m4_require([_LT_CMD_OLD_ARCHIVE])dnl
188
m4_require([_LT_CMD_OLD_ARCHIVE])dnl
Lines 777-783 Link Here
777
  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
779
  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
778
  # text mode, it properly converts lines to CR/LF.  This bash problem
780
  # text mode, it properly converts lines to CR/LF.  This bash problem
779
  # is reportedly fixed, but why not run on old versions too?
781
  # is reportedly fixed, but why not run on old versions too?
780
  sed '$q' "$ltmain" >> "$cfgfile" \
782
  $SED '$q' "$ltmain" >> "$cfgfile" \
781
     || (rm -f "$cfgfile"; exit 1)
783
     || (rm -f "$cfgfile"; exit 1)
782
784
783
   mv -f "$cfgfile" "$ofile" ||
785
   mv -f "$cfgfile" "$ofile" ||
Lines 1066-1082 Link Here
1066
      _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
1068
      _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
1067
    darwin1.*)
1069
    darwin1.*)
1068
      _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
1070
      _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
1069
    darwin*) # darwin 5.x on
1071
    darwin*)
1070
      # if running on 10.5 or later, the deployment target defaults
1072
      case $MACOSX_DEPLOYMENT_TARGET,$host in
1071
      # to the OS version, if on x86, and 10.4, the deployment
1073
        10.[[012]],*|,*powerpc*-darwin[[5-8]]*)
1072
      # target defaults to 10.4. Don't you love it?
1074
          _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
1073
      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
1075
        *)
1074
	10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
1076
          _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
1075
	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
1076
	10.[[012]][[,.]]*)
1077
	  _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
1078
	10.*)
1079
	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
1080
      esac
1077
      esac
1081
    ;;
1078
    ;;
1082
  esac
1079
  esac
Lines 1125-1136 Link Here
1125
    output_verbose_link_cmd=func_echo_all
1122
    output_verbose_link_cmd=func_echo_all
1126
    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
1123
    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
1127
    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
1124
    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
1128
    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
1125
    _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
1129
    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
1126
    _LT_TAGVAR(module_expsym_cmds, $1)="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
1130
    m4_if([$1], [CXX],
1127
    m4_if([$1], [CXX],
1131
[   if test yes != "$lt_cv_apple_cc_single_mod"; then
1128
[   if test yes != "$lt_cv_apple_cc_single_mod"; then
1132
      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"
1129
      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"
1133
      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
1130
      _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
1134
    fi
1131
    fi
1135
],[])
1132
],[])
1136
  else
1133
  else
Lines 1244-1250 Link Here
1244
# _LT_WITH_SYSROOT
1241
# _LT_WITH_SYSROOT
1245
# ----------------
1242
# ----------------
1246
AC_DEFUN([_LT_WITH_SYSROOT],
1243
AC_DEFUN([_LT_WITH_SYSROOT],
1247
[AC_MSG_CHECKING([for sysroot])
1244
[m4_require([_LT_DECL_SED])dnl
1245
AC_MSG_CHECKING([for sysroot])
1248
AC_ARG_WITH([sysroot],
1246
AC_ARG_WITH([sysroot],
1249
[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
1247
[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
1250
  [Search for dependent libraries within DIR (or the compiler's sysroot
1248
  [Search for dependent libraries within DIR (or the compiler's sysroot
Lines 1261-1267 Link Here
1261
   fi
1259
   fi
1262
   ;; #(
1260
   ;; #(
1263
 /*)
1261
 /*)
1264
   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
1262
   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
1265
   ;; #(
1263
   ;; #(
1266
 no|'')
1264
 no|'')
1267
   ;; #(
1265
   ;; #(
Lines 1291-1297 Link Here
1291
  # options accordingly.
1289
  # options accordingly.
1292
  echo 'int i;' > conftest.$ac_ext
1290
  echo 'int i;' > conftest.$ac_ext
1293
  if AC_TRY_EVAL(ac_compile); then
1291
  if AC_TRY_EVAL(ac_compile); then
1294
    case `/usr/bin/file conftest.$ac_objext` in
1292
    case `$FILECMD conftest.$ac_objext` in
1295
      *ELF-32*)
1293
      *ELF-32*)
1296
	HPUX_IA64_MODE=32
1294
	HPUX_IA64_MODE=32
1297
	;;
1295
	;;
Lines 1308-1314 Link Here
1308
  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
1306
  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
1309
  if AC_TRY_EVAL(ac_compile); then
1307
  if AC_TRY_EVAL(ac_compile); then
1310
    if test yes = "$lt_cv_prog_gnu_ld"; then
1308
    if test yes = "$lt_cv_prog_gnu_ld"; then
1311
      case `/usr/bin/file conftest.$ac_objext` in
1309
      case `$FILECMD conftest.$ac_objext` in
1312
	*32-bit*)
1310
	*32-bit*)
1313
	  LD="${LD-ld} -melf32bsmip"
1311
	  LD="${LD-ld} -melf32bsmip"
1314
	  ;;
1312
	  ;;
Lines 1320-1326 Link Here
1320
	;;
1318
	;;
1321
      esac
1319
      esac
1322
    else
1320
    else
1323
      case `/usr/bin/file conftest.$ac_objext` in
1321
      case `$FILECMD conftest.$ac_objext` in
1324
	*32-bit*)
1322
	*32-bit*)
1325
	  LD="${LD-ld} -32"
1323
	  LD="${LD-ld} -32"
1326
	  ;;
1324
	  ;;
Lines 1342-1348 Link Here
1342
  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
1340
  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
1343
  if AC_TRY_EVAL(ac_compile); then
1341
  if AC_TRY_EVAL(ac_compile); then
1344
    emul=elf
1342
    emul=elf
1345
    case `/usr/bin/file conftest.$ac_objext` in
1343
    case `$FILECMD conftest.$ac_objext` in
1346
      *32-bit*)
1344
      *32-bit*)
1347
	emul="${emul}32"
1345
	emul="${emul}32"
1348
	;;
1346
	;;
Lines 1350-1356 Link Here
1350
	emul="${emul}64"
1348
	emul="${emul}64"
1351
	;;
1349
	;;
1352
    esac
1350
    esac
1353
    case `/usr/bin/file conftest.$ac_objext` in
1351
    case `$FILECMD conftest.$ac_objext` in
1354
      *MSB*)
1352
      *MSB*)
1355
	emul="${emul}btsmip"
1353
	emul="${emul}btsmip"
1356
	;;
1354
	;;
Lines 1358-1364 Link Here
1358
	emul="${emul}ltsmip"
1356
	emul="${emul}ltsmip"
1359
	;;
1357
	;;
1360
    esac
1358
    esac
1361
    case `/usr/bin/file conftest.$ac_objext` in
1359
    case `$FILECMD conftest.$ac_objext` in
1362
      *N32*)
1360
      *N32*)
1363
	emul="${emul}n32"
1361
	emul="${emul}n32"
1364
	;;
1362
	;;
Lines 1378-1391 Link Here
1378
  # not appear in the list.
1376
  # not appear in the list.
1379
  echo 'int i;' > conftest.$ac_ext
1377
  echo 'int i;' > conftest.$ac_ext
1380
  if AC_TRY_EVAL(ac_compile); then
1378
  if AC_TRY_EVAL(ac_compile); then
1381
    case `/usr/bin/file conftest.o` in
1379
    case `$FILECMD conftest.o` in
1382
      *32-bit*)
1380
      *32-bit*)
1383
	case $host in
1381
	case $host in
1384
	  x86_64-*kfreebsd*-gnu)
1382
	  x86_64-*kfreebsd*-gnu)
1385
	    LD="${LD-ld} -m elf_i386_fbsd"
1383
	    LD="${LD-ld} -m elf_i386_fbsd"
1386
	    ;;
1384
	    ;;
1387
	  x86_64-*linux*)
1385
	  x86_64-*linux*)
1388
	    case `/usr/bin/file conftest.o` in
1386
	    case `$FILECMD conftest.o` in
1389
	      *x86-64*)
1387
	      *x86-64*)
1390
		LD="${LD-ld} -m elf32_x86_64"
1388
		LD="${LD-ld} -m elf32_x86_64"
1391
		;;
1389
		;;
Lines 1453-1459 Link Here
1453
  # options accordingly.
1451
  # options accordingly.
1454
  echo 'int i;' > conftest.$ac_ext
1452
  echo 'int i;' > conftest.$ac_ext
1455
  if AC_TRY_EVAL(ac_compile); then
1453
  if AC_TRY_EVAL(ac_compile); then
1456
    case `/usr/bin/file conftest.o` in
1454
    case `$FILECMD conftest.o` in
1457
    *64-bit*)
1455
    *64-bit*)
1458
      case $lt_cv_prog_gnu_ld in
1456
      case $lt_cv_prog_gnu_ld in
1459
      yes*)
1457
      yes*)
Lines 1726-1732 Link Here
1726
    lt_cv_sys_max_cmd_len=8192;
1724
    lt_cv_sys_max_cmd_len=8192;
1727
    ;;
1725
    ;;
1728
1726
1729
  bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
1727
  bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*)
1730
    # This has been around since 386BSD, at least.  Likely further.
1728
    # This has been around since 386BSD, at least.  Likely further.
1731
    if test -x /sbin/sysctl; then
1729
    if test -x /sbin/sysctl; then
1732
      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
1730
      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
Lines 1769-1775 Link Here
1769
  sysv5* | sco5v6* | sysv4.2uw2*)
1767
  sysv5* | sco5v6* | sysv4.2uw2*)
1770
    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
1768
    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
1771
    if test -n "$kargmax"; then
1769
    if test -n "$kargmax"; then
1772
      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[	 ]]//'`
1770
      lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[[	 ]]//'`
1773
    else
1771
    else
1774
      lt_cv_sys_max_cmd_len=32768
1772
      lt_cv_sys_max_cmd_len=32768
1775
    fi
1773
    fi
Lines 2570-2576 Link Here
2570
    case $host_os in
2568
    case $host_os in
2571
    cygwin*)
2569
    cygwin*)
2572
      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
2570
      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
2573
      soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
2571
      soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
2574
m4_if([$1], [],[
2572
m4_if([$1], [],[
2575
      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
2573
      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
2576
      ;;
2574
      ;;
Lines 2580-2586 Link Here
2580
      ;;
2578
      ;;
2581
    pw32*)
2579
    pw32*)
2582
      # pw32 DLLs use 'pw' prefix rather than 'lib'
2580
      # pw32 DLLs use 'pw' prefix rather than 'lib'
2583
      library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
2581
      library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
2584
      ;;
2582
      ;;
2585
    esac
2583
    esac
2586
    dynamic_linker='Win32 ld.exe'
2584
    dynamic_linker='Win32 ld.exe'
Lines 2606-2612 Link Here
2606
      done
2604
      done
2607
      IFS=$lt_save_ifs
2605
      IFS=$lt_save_ifs
2608
      # Convert to MSYS style.
2606
      # Convert to MSYS style.
2609
      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
2607
      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
2610
      ;;
2608
      ;;
2611
    cygwin*)
2609
    cygwin*)
2612
      # Convert to unix form, then to dos form, then back to unix form
2610
      # Convert to unix form, then to dos form, then back to unix form
Lines 2676-2682 Link Here
2676
  shlibpath_var=LD_LIBRARY_PATH
2674
  shlibpath_var=LD_LIBRARY_PATH
2677
  ;;
2675
  ;;
2678
2676
2679
freebsd* | dragonfly*)
2677
freebsd* | dragonfly* | midnightbsd*)
2680
  # DragonFly does not have aout.  When/if they implement a new
2678
  # DragonFly does not have aout.  When/if they implement a new
2681
  # versioning mechanism, adjust this.
2679
  # versioning mechanism, adjust this.
2682
  if test -x /usr/bin/objformat; then
2680
  if test -x /usr/bin/objformat; then
Lines 3475-3481 Link Here
3475
3473
3476
bsdi[[45]]*)
3474
bsdi[[45]]*)
3477
  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
3475
  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
3478
  lt_cv_file_magic_cmd='/usr/bin/file -L'
3476
  lt_cv_file_magic_cmd='$FILECMD -L'
3479
  lt_cv_file_magic_test_file=/shlib/libc.so
3477
  lt_cv_file_magic_test_file=/shlib/libc.so
3480
  ;;
3478
  ;;
3481
3479
Lines 3509-3522 Link Here
3509
  lt_cv_deplibs_check_method=pass_all
3507
  lt_cv_deplibs_check_method=pass_all
3510
  ;;
3508
  ;;
3511
3509
3512
freebsd* | dragonfly*)
3510
freebsd* | dragonfly* | midnightbsd*)
3513
  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
3511
  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
3514
    case $host_cpu in
3512
    case $host_cpu in
3515
    i*86 )
3513
    i*86 )
3516
      # Not sure whether the presence of OpenBSD here was a mistake.
3514
      # Not sure whether the presence of OpenBSD here was a mistake.
3517
      # Let's accept both of them until this is cleared up.
3515
      # Let's accept both of them until this is cleared up.
3518
      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
3516
      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
3519
      lt_cv_file_magic_cmd=/usr/bin/file
3517
      lt_cv_file_magic_cmd=$FILECMD
3520
      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
3518
      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
3521
      ;;
3519
      ;;
3522
    esac
3520
    esac
Lines 3530-3536 Link Here
3530
  ;;
3528
  ;;
3531
3529
3532
hpux10.20* | hpux11*)
3530
hpux10.20* | hpux11*)
3533
  lt_cv_file_magic_cmd=/usr/bin/file
3531
  lt_cv_file_magic_cmd=$FILECMD
3534
  case $host_cpu in
3532
  case $host_cpu in
3535
  ia64*)
3533
  ia64*)
3536
    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
3534
    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
Lines 3577-3583 Link Here
3577
3575
3578
newos6*)
3576
newos6*)
3579
  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
3577
  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
3580
  lt_cv_file_magic_cmd=/usr/bin/file
3578
  lt_cv_file_magic_cmd=$FILECMD
3581
  lt_cv_file_magic_test_file=/usr/lib/libnls.so
3579
  lt_cv_file_magic_test_file=/usr/lib/libnls.so
3582
  ;;
3580
  ;;
3583
3581
Lines 3704-3716 Link Here
3704
	mingw*) lt_bad_file=conftest.nm/nofile ;;
3702
	mingw*) lt_bad_file=conftest.nm/nofile ;;
3705
	*) lt_bad_file=/dev/null ;;
3703
	*) lt_bad_file=/dev/null ;;
3706
	esac
3704
	esac
3707
	case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
3705
	case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in
3708
	*$lt_bad_file* | *'Invalid file or object type'*)
3706
	*$lt_bad_file* | *'Invalid file or object type'*)
3709
	  lt_cv_path_NM="$tmp_nm -B"
3707
	  lt_cv_path_NM="$tmp_nm -B"
3710
	  break 2
3708
	  break 2
3711
	  ;;
3709
	  ;;
3712
	*)
3710
	*)
3713
	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
3711
	  case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in
3714
	  */dev/null*)
3712
	  */dev/null*)
3715
	    lt_cv_path_NM="$tmp_nm -p"
3713
	    lt_cv_path_NM="$tmp_nm -p"
3716
	    break 2
3714
	    break 2
Lines 3736-3742 Link Here
3736
    # Let the user override the test.
3734
    # Let the user override the test.
3737
  else
3735
  else
3738
    AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
3736
    AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
3739
    case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
3737
    case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in
3740
    *COFF*)
3738
    *COFF*)
3741
      DUMPBIN="$DUMPBIN -symbols -headers"
3739
      DUMPBIN="$DUMPBIN -symbols -headers"
3742
      ;;
3740
      ;;
Lines 3976-3982 Link Here
3976
3974
3977
if test "$lt_cv_nm_interface" = "MS dumpbin"; then
3975
if test "$lt_cv_nm_interface" = "MS dumpbin"; then
3978
  # Gets list of data symbols to import.
3976
  # Gets list of data symbols to import.
3979
  lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
3977
  lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'"
3980
  # Adjust the below global symbol transforms to fixup imported variables.
3978
  # Adjust the below global symbol transforms to fixup imported variables.
3981
  lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
3979
  lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
3982
  lt_c_name_hook=" -e 's/^I .* \(.*\)$/  {\"\1\", (void *) 0},/p'"
3980
  lt_c_name_hook=" -e 's/^I .* \(.*\)$/  {\"\1\", (void *) 0},/p'"
Lines 3994-4013 Link Here
3994
# Transform an extracted symbol line into a proper C declaration.
3992
# Transform an extracted symbol line into a proper C declaration.
3995
# Some systems (esp. on ia64) link data and code symbols differently,
3993
# Some systems (esp. on ia64) link data and code symbols differently,
3996
# so use this general approach.
3994
# so use this general approach.
3997
lt_cv_sys_global_symbol_to_cdecl="sed -n"\
3995
lt_cv_sys_global_symbol_to_cdecl="$SED -n"\
3998
$lt_cdecl_hook\
3996
$lt_cdecl_hook\
3999
" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
3997
" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
4000
" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
3998
" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
4001
3999
4002
# Transform an extracted symbol line into symbol name and symbol address
4000
# Transform an extracted symbol line into symbol name and symbol address
4003
lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
4001
lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\
4004
$lt_c_name_hook\
4002
$lt_c_name_hook\
4005
" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
4003
" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
4006
" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/p'"
4004
" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/p'"
4007
4005
4008
# Transform an extracted symbol line into symbol name with lib prefix and
4006
# Transform an extracted symbol line into symbol name with lib prefix and
4009
# symbol address.
4007
# symbol address.
4010
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
4008
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\
4011
$lt_c_name_lib_hook\
4009
$lt_c_name_lib_hook\
4012
" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
4010
" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
4013
" -e 's/^$symcode$symcode* .* \(lib.*\)$/  {\"\1\", (void *) \&\1},/p'"\
4011
" -e 's/^$symcode$symcode* .* \(lib.*\)$/  {\"\1\", (void *) \&\1},/p'"\
Lines 4049-4057 Link Here
4049
"     s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
4047
"     s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
4050
"     ' prfx=^$ac_symprfx]"
4048
"     ' prfx=^$ac_symprfx]"
4051
  else
4049
  else
4052
    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
4050
    lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
4053
  fi
4051
  fi
4054
  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
4052
  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'"
4055
4053
4056
  # Check to see that the pipe works correctly.
4054
  # Check to see that the pipe works correctly.
4057
  pipe_works=no
4055
  pipe_works=no
Lines 4338-4344 Link Here
4338
	    ;;
4336
	    ;;
4339
	esac
4337
	esac
4340
	;;
4338
	;;
4341
      freebsd* | dragonfly*)
4339
      freebsd* | dragonfly* | midnightbsd*)
4342
	# FreeBSD uses GNU C++
4340
	# FreeBSD uses GNU C++
4343
	;;
4341
	;;
4344
      hpux9* | hpux10* | hpux11*)
4342
      hpux9* | hpux10* | hpux11*)
Lines 4421-4427 Link Here
4421
	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
4419
	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
4422
	    ;;
4420
	    ;;
4423
	  *)
4421
	  *)
4424
	    case `$CC -V 2>&1 | sed 5q` in
4422
	    case `$CC -V 2>&1 | $SED 5q` in
4425
	    *Sun\ C*)
4423
	    *Sun\ C*)
4426
	      # Sun C++ 5.9
4424
	      # Sun C++ 5.9
4427
	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4425
	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
Lines 4757-4763 Link Here
4757
	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
4755
	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
4758
	;;
4756
	;;
4759
      *)
4757
      *)
4760
	case `$CC -V 2>&1 | sed 5q` in
4758
	case `$CC -V 2>&1 | $SED 5q` in
4761
	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
4759
	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
4762
	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
4760
	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
4763
	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4761
	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
Lines 5065-5071 Link Here
5065
      _LT_TAGVAR(whole_archive_flag_spec, $1)=
5063
      _LT_TAGVAR(whole_archive_flag_spec, $1)=
5066
    fi
5064
    fi
5067
    supports_anon_versioning=no
5065
    supports_anon_versioning=no
5068
    case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in
5066
    case `$LD -v | $SED -e 's/([[^)]]\+)\s\+//' 2>&1` in
5069
      *GNU\ gold*) supports_anon_versioning=yes ;;
5067
      *GNU\ gold*) supports_anon_versioning=yes ;;
5070
      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
5068
      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
5071
      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
5069
      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
Lines 5192-5198 Link Here
5192
      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
5190
      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
5193
      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
5191
      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
5194
      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
5192
      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
5195
      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
5193
      _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
5196
      ;;
5194
      ;;
5197
5195
5198
    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
5196
    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
Lines 5235-5241 Link Here
5235
	  _LT_TAGVAR(compiler_needs_object, $1)=yes
5233
	  _LT_TAGVAR(compiler_needs_object, $1)=yes
5236
	  ;;
5234
	  ;;
5237
	esac
5235
	esac
5238
	case `$CC -V 2>&1 | sed 5q` in
5236
	case `$CC -V 2>&1 | $SED 5q` in
5239
	*Sun\ C*)			# Sun C 5.9
5237
	*Sun\ C*)			# Sun C 5.9
5240
	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
5238
	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
5241
	  _LT_TAGVAR(compiler_needs_object, $1)=yes
5239
	  _LT_TAGVAR(compiler_needs_object, $1)=yes
Lines 5247-5253 Link Here
5247
5245
5248
        if test yes = "$supports_anon_versioning"; then
5246
        if test yes = "$supports_anon_versioning"; then
5249
          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
5247
          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
5250
            cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
5248
            cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
5251
            echo "local: *; };" >> $output_objdir/$libname.ver~
5249
            echo "local: *; };" >> $output_objdir/$libname.ver~
5252
            $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
5250
            $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
5253
        fi
5251
        fi
Lines 5263-5269 Link Here
5263
	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
5261
	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
5264
	  if test yes = "$supports_anon_versioning"; then
5262
	  if test yes = "$supports_anon_versioning"; then
5265
	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
5263
	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
5266
              cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
5264
              cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
5267
              echo "local: *; };" >> $output_objdir/$libname.ver~
5265
              echo "local: *; };" >> $output_objdir/$libname.ver~
5268
              $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
5266
              $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
5269
	  fi
5267
	  fi
Lines 5672-5678 Link Here
5672
      ;;
5670
      ;;
5673
5671
5674
    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
5672
    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
5675
    freebsd* | dragonfly*)
5673
    freebsd* | dragonfly* | midnightbsd*)
5676
      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
5674
      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
5677
      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
5675
      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
5678
      _LT_TAGVAR(hardcode_direct, $1)=yes
5676
      _LT_TAGVAR(hardcode_direct, $1)=yes
Lines 6784-6790 Link Here
6784
        _LT_TAGVAR(archive_cmds_need_lc, $1)=no
6782
        _LT_TAGVAR(archive_cmds_need_lc, $1)=no
6785
        ;;
6783
        ;;
6786
6784
6787
      freebsd* | dragonfly*)
6785
      freebsd* | dragonfly* | midnightbsd*)
6788
        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
6786
        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
6789
        # conventions
6787
        # conventions
6790
        _LT_TAGVAR(ld_shlibs, $1)=yes
6788
        _LT_TAGVAR(ld_shlibs, $1)=yes
Lines 6921-6927 Link Here
6921
	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
6919
	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
6922
	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
6920
	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
6923
	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
6921
	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
6924
	_LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
6922
	_LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
6925
	;;
6923
	;;
6926
      irix5* | irix6*)
6924
      irix5* | irix6*)
6927
        case $cc_basename in
6925
        case $cc_basename in
Lines 7061-7073 Link Here
7061
	    _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
7059
	    _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
7062
	    if test yes = "$supports_anon_versioning"; then
7060
	    if test yes = "$supports_anon_versioning"; then
7063
	      _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
7061
	      _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
7064
                cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
7062
                cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
7065
                echo "local: *; };" >> $output_objdir/$libname.ver~
7063
                echo "local: *; };" >> $output_objdir/$libname.ver~
7066
                $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
7064
                $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
7067
	    fi
7065
	    fi
7068
	    ;;
7066
	    ;;
7069
	  *)
7067
	  *)
7070
	    case `$CC -V 2>&1 | sed 5q` in
7068
	    case `$CC -V 2>&1 | $SED 5q` in
7071
	    *Sun\ C*)
7069
	    *Sun\ C*)
7072
	      # Sun C++ 5.9
7070
	      # Sun C++ 5.9
7073
	      _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
7071
	      _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
Lines 8212-8217 Link Here
8212
_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
8210
_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
8213
AC_SUBST([DLLTOOL])
8211
AC_SUBST([DLLTOOL])
8214
])
8212
])
8213
8214
# _LT_DECL_FILECMD
8215
# ----------------
8216
# Check for a file(cmd) program that can be used to detect file type and magic
8217
m4_defun([_LT_DECL_FILECMD],
8218
[AC_CHECK_TOOL([FILECMD], [file], [:])
8219
_LT_DECL([], [FILECMD], [1], [A file(cmd) program that detects file types])
8220
])# _LD_DECL_FILECMD
8215
8221
8216
# _LT_DECL_SED
8222
# _LT_DECL_SED
8217
# ------------
8223
# ------------
(-)xz-5.2.5/m4/ltoptions.m4 (-2 / +2 lines)
Lines 1-7 Link Here
1
# Helper functions for option handling.                    -*- Autoconf -*-
1
# Helper functions for option handling.                    -*- Autoconf -*-
2
#
2
#
3
#   Copyright (C) 2004-2005, 2007-2009, 2011-2018 Free Software
3
#   Copyright (C) 2004-2005, 2007-2009, 2011-2019, 2021-2022 Free
4
#   Foundation, Inc.
4
#   Software Foundation, Inc.
5
#   Written by Gary V. Vaughan, 2004
5
#   Written by Gary V. Vaughan, 2004
6
#
6
#
7
# This file is free software; the Free Software Foundation gives
7
# This file is free software; the Free Software Foundation gives
(-)xz-5.2.5/m4/ltsugar.m4 (-1 / +1 lines)
Lines 1-6 Link Here
1
# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
1
# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
2
#
2
#
3
# Copyright (C) 2004-2005, 2007-2008, 2011-2018 Free Software
3
# Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2022 Free Software
4
# Foundation, Inc.
4
# Foundation, Inc.
5
# Written by Gary V. Vaughan, 2004
5
# Written by Gary V. Vaughan, 2004
6
#
6
#
(-)xz-5.2.5/m4/ltversion.m4 (-6 / +7 lines)
Lines 1-6 Link Here
1
# ltversion.m4 -- version numbers			-*- Autoconf -*-
1
# ltversion.m4 -- version numbers			-*- Autoconf -*-
2
#
2
#
3
#   Copyright (C) 2004, 2011-2018 Free Software Foundation, Inc.
3
#   Copyright (C) 2004, 2011-2019, 2021-2022 Free Software Foundation,
4
#   Inc.
4
#   Written by Scott James Remnant, 2004
5
#   Written by Scott James Remnant, 2004
5
#
6
#
6
# This file is free software; the Free Software Foundation gives
7
# This file is free software; the Free Software Foundation gives
Lines 9-23 Link Here
9
10
10
# @configure_input@
11
# @configure_input@
11
12
12
# serial 4221 ltversion.m4
13
# serial 4249 ltversion.m4
13
# This file is part of GNU Libtool
14
# This file is part of GNU Libtool
14
15
15
m4_define([LT_PACKAGE_VERSION], [2.4.6.42-b88ce-dirty])
16
m4_define([LT_PACKAGE_VERSION], [2.4.7.4-1ec8f-dirty])
16
m4_define([LT_PACKAGE_REVISION], [2.4.6.42])
17
m4_define([LT_PACKAGE_REVISION], [2.4.7.4])
17
18
18
AC_DEFUN([LTVERSION_VERSION],
19
AC_DEFUN([LTVERSION_VERSION],
19
[macro_version='2.4.6.42-b88ce-dirty'
20
[macro_version='2.4.7.4-1ec8f-dirty'
20
macro_revision='2.4.6.42'
21
macro_revision='2.4.7.4'
21
_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
22
_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
22
_LT_DECL(, macro_revision, 0)
23
_LT_DECL(, macro_revision, 0)
23
])
24
])
(-)xz-5.2.5/m4/lt~obsolete.m4 (-2 / +2 lines)
Lines 1-7 Link Here
1
# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
1
# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
2
#
2
#
3
#   Copyright (C) 2004-2005, 2007, 2009, 2011-2018 Free Software
3
#   Copyright (C) 2004-2005, 2007, 2009, 2011-2019, 2021-2022 Free
4
#   Foundation, Inc.
4
#   Software Foundation, Inc.
5
#   Written by Scott James Remnant, 2004.
5
#   Written by Scott James Remnant, 2004.
6
#
6
#
7
# This file is free software; the Free Software Foundation gives
7
# This file is free software; the Free Software Foundation gives
(-)xz-5.2.5/m4/nls.m4 (-5 / +5 lines)
Lines 1-16 Link Here
1
# nls.m4 serial 5 (gettext-0.18)
1
# nls.m4 serial 6 (gettext-0.20.2)
2
dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016, 2019 Free Software
2
dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016, 2019-2022 Free
3
dnl Foundation, Inc.
3
dnl Software Foundation, Inc.
4
dnl This file is free software; the Free Software Foundation
4
dnl This file is free software; the Free Software Foundation
5
dnl gives unlimited permission to copy and/or distribute it,
5
dnl gives unlimited permission to copy and/or distribute it,
6
dnl with or without modifications, as long as this notice is preserved.
6
dnl with or without modifications, as long as this notice is preserved.
7
dnl
7
dnl
8
dnl This file can be used in projects which are not available under
8
dnl This file can be used in projects which are not available under
9
dnl the GNU General Public License or the GNU Library General Public
9
dnl the GNU General Public License or the GNU Lesser General Public
10
dnl License but which still want to provide support for the GNU gettext
10
dnl License but which still want to provide support for the GNU gettext
11
dnl functionality.
11
dnl functionality.
12
dnl Please note that the actual code of the GNU gettext library is covered
12
dnl Please note that the actual code of the GNU gettext library is covered
13
dnl by the GNU Library General Public License, and the rest of the GNU
13
dnl by the GNU Lesser General Public License, and the rest of the GNU
14
dnl gettext package is covered by the GNU General Public License.
14
dnl gettext package is covered by the GNU General Public License.
15
dnl They are *not* in the public domain.
15
dnl They are *not* in the public domain.
16
16
(-)xz-5.2.5/m4/po.m4 (-6 / +10 lines)
Lines 1-15 Link Here
1
# po.m4 serial 30 (gettext-0.20)
1
# po.m4 serial 32 (gettext-0.21.1)
2
dnl Copyright (C) 1995-2014, 2016, 2018-2019 Free Software Foundation, Inc.
2
dnl Copyright (C) 1995-2014, 2016, 2018-2022 Free Software Foundation, Inc.
3
dnl This file is free software; the Free Software Foundation
3
dnl This file is free software; the Free Software Foundation
4
dnl gives unlimited permission to copy and/or distribute it,
4
dnl gives unlimited permission to copy and/or distribute it,
5
dnl with or without modifications, as long as this notice is preserved.
5
dnl with or without modifications, as long as this notice is preserved.
6
dnl
6
dnl
7
dnl This file can be used in projects which are not available under
7
dnl This file can be used in projects which are not available under
8
dnl the GNU General Public License or the GNU Library General Public
8
dnl the GNU General Public License or the GNU Lesser General Public
9
dnl License but which still want to provide support for the GNU gettext
9
dnl License but which still want to provide support for the GNU gettext
10
dnl functionality.
10
dnl functionality.
11
dnl Please note that the actual code of the GNU gettext library is covered
11
dnl Please note that the actual code of the GNU gettext library is covered
12
dnl by the GNU Library General Public License, and the rest of the GNU
12
dnl by the GNU Lesser General Public License, and the rest of the GNU
13
dnl gettext package is covered by the GNU General Public License.
13
dnl gettext package is covered by the GNU General Public License.
14
dnl They are *not* in the public domain.
14
dnl They are *not* in the public domain.
15
15
Lines 179-185 Link Here
179
                #      presentlang can be used as a fallback for messages
179
                #      presentlang can be used as a fallback for messages
180
                #      which are not translated in the desiredlang catalog).
180
                #      which are not translated in the desiredlang catalog).
181
                case "$desiredlang" in
181
                case "$desiredlang" in
182
                  "$presentlang"*) useit=yes;;
182
                  "$presentlang" | "$presentlang"_* | "$presentlang".* | "$presentlang"@*)
183
                    useit=yes
184
                    ;;
183
                esac
185
                esac
184
              done
186
              done
185
              if test $useit = yes; then
187
              if test $useit = yes; then
Lines 379-385 Link Here
379
        #      presentlang can be used as a fallback for messages
381
        #      presentlang can be used as a fallback for messages
380
        #      which are not translated in the desiredlang catalog).
382
        #      which are not translated in the desiredlang catalog).
381
        case "$desiredlang" in
383
        case "$desiredlang" in
382
          "$presentlang"*) useit=yes;;
384
          "$presentlang" | "$presentlang"_* | "$presentlang".* | "$presentlang"@*)
385
            useit=yes
386
            ;;
383
        esac
387
        esac
384
      done
388
      done
385
      if test $useit = yes; then
389
      if test $useit = yes; then
(-)xz-5.2.5/m4/progtest.m4 (-8 / +8 lines)
Lines 1-22 Link Here
1
# progtest.m4 serial 7 (gettext-0.18.2)
1
# progtest.m4 serial 9 (gettext-0.21.1)
2
dnl Copyright (C) 1996-2003, 2005, 2008-2019 Free Software Foundation, Inc.
2
dnl Copyright (C) 1996-2003, 2005, 2008-2022 Free Software Foundation, Inc.
3
dnl This file is free software; the Free Software Foundation
3
dnl This file is free software; the Free Software Foundation
4
dnl gives unlimited permission to copy and/or distribute it,
4
dnl gives unlimited permission to copy and/or distribute it,
5
dnl with or without modifications, as long as this notice is preserved.
5
dnl with or without modifications, as long as this notice is preserved.
6
dnl
6
dnl
7
dnl This file can be used in projects which are not available under
7
dnl This file can be used in projects which are not available under
8
dnl the GNU General Public License or the GNU Library General Public
8
dnl the GNU General Public License or the GNU Lesser General Public
9
dnl License but which still want to provide support for the GNU gettext
9
dnl License but which still want to provide support for the GNU gettext
10
dnl functionality.
10
dnl functionality.
11
dnl Please note that the actual code of the GNU gettext library is covered
11
dnl Please note that the actual code of the GNU gettext library is covered
12
dnl by the GNU Library General Public License, and the rest of the GNU
12
dnl by the GNU Lesser General Public License, and the rest of the GNU
13
dnl gettext package is covered by the GNU General Public License.
13
dnl gettext package is covered by the GNU General Public License.
14
dnl They are *not* in the public domain.
14
dnl They are *not* in the public domain.
15
15
16
dnl Authors:
16
dnl Authors:
17
dnl   Ulrich Drepper <drepper@cygnus.com>, 1996.
17
dnl   Ulrich Drepper <drepper@cygnus.com>, 1996.
18
18
19
AC_PREREQ([2.50])
19
AC_PREREQ([2.53])
20
20
21
# Search path for a program which passes the given test.
21
# Search path for a program which passes the given test.
22
22
Lines 61-67 Link Here
61
    ;;
61
    ;;
62
  *)
62
  *)
63
    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
63
    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
64
    for ac_dir in ifelse([$5], , $PATH, [$5]); do
64
    for ac_dir in m4_if([$5], , $PATH, [$5]); do
65
      IFS="$ac_save_IFS"
65
      IFS="$ac_save_IFS"
66
      test -z "$ac_dir" && ac_dir=.
66
      test -z "$ac_dir" && ac_dir=.
67
      for ac_exec_ext in '' $ac_executable_extensions; do
67
      for ac_exec_ext in '' $ac_executable_extensions; do
Lines 77-88 Link Here
77
    IFS="$ac_save_IFS"
77
    IFS="$ac_save_IFS"
78
dnl If no 4th arg is given, leave the cache variable unset,
78
dnl If no 4th arg is given, leave the cache variable unset,
79
dnl so AC_PATH_PROGS will keep looking.
79
dnl so AC_PATH_PROGS will keep looking.
80
ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
80
m4_if([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
81
])dnl
81
])dnl
82
    ;;
82
    ;;
83
esac])dnl
83
esac])dnl
84
$1="$ac_cv_path_$1"
84
$1="$ac_cv_path_$1"
85
if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
85
if test m4_if([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
86
  AC_MSG_RESULT([$][$1])
86
  AC_MSG_RESULT([$][$1])
87
else
87
else
88
  AC_MSG_RESULT([no])
88
  AC_MSG_RESULT([no])
(-)xz-5.2.5/m4/tuklib_cpucores.m4 (-1 / +5 lines)
Lines 95-101 Link Here
95
#ifdef __QNX__
95
#ifdef __QNX__
96
compile error
96
compile error
97
#endif
97
#endif
98
#include <sys/types.h>
99
#ifdef HAVE_SYS_PARAM_H
98
#ifdef HAVE_SYS_PARAM_H
100
#	include <sys/param.h>
99
#	include <sys/param.h>
101
#endif
100
#endif
Lines 103-109 Link Here
103
int
102
int
104
main(void)
103
main(void)
105
{
104
{
105
#ifdef HW_NCPUONLINE
106
	/* This is preferred on OpenBSD, see tuklib_cpucores.c. */
107
	int name[2] = { CTL_HW, HW_NCPUONLINE };
108
#else
106
	int name[2] = { CTL_HW, HW_NCPU };
109
	int name[2] = { CTL_HW, HW_NCPU };
110
#endif
107
	int cpus;
111
	int cpus;
108
	size_t cpus_size = sizeof(cpus);
112
	size_t cpus_size = sizeof(cpus);
109
	sysctl(name, 2, &cpus, &cpus_size, NULL, 0);
113
	sysctl(name, 2, &cpus, &cpus_size, NULL, 0);
(-)xz-5.2.5/m4/tuklib_integer.m4 (-6 / +18 lines)
Lines 8-15 Link Here
8
#   Checks for tuklib_integer.h:
8
#   Checks for tuklib_integer.h:
9
#     - Endianness
9
#     - Endianness
10
#     - Does the compiler or the operating system provide byte swapping macros
10
#     - Does the compiler or the operating system provide byte swapping macros
11
#     - Does the hardware support fast unaligned access to 16-bit
11
#     - Does the hardware support fast unaligned access to 16-bit, 32-bit,
12
#       and 32-bit integers
12
#       and 64-bit integers
13
#
13
#
14
# COPYING
14
# COPYING
15
#
15
#
Lines 64-71 Link Here
64
AC_MSG_CHECKING([if unaligned memory access should be used])
64
AC_MSG_CHECKING([if unaligned memory access should be used])
65
AC_ARG_ENABLE([unaligned-access], AS_HELP_STRING([--enable-unaligned-access],
65
AC_ARG_ENABLE([unaligned-access], AS_HELP_STRING([--enable-unaligned-access],
66
		[Enable if the system supports *fast* unaligned memory access
66
		[Enable if the system supports *fast* unaligned memory access
67
		with 16-bit and 32-bit integers. By default, this is enabled
67
		with 16-bit, 32-bit, and 64-bit integers. By default,
68
		only on x86, x86_64, and big endian PowerPC.]),
68
		this is enabled only on x86, x86_64, big endian PowerPC,
69
		and some ARM systems.]),
69
	[], [enable_unaligned_access=auto])
70
	[], [enable_unaligned_access=auto])
70
if test "x$enable_unaligned_access" = xauto ; then
71
if test "x$enable_unaligned_access" = xauto ; then
71
	# TODO: There may be other architectures, on which unaligned access
72
	# TODO: There may be other architectures, on which unaligned access
Lines 74-79 Link Here
74
		i?86|x86_64|powerpc|powerpc64)
75
		i?86|x86_64|powerpc|powerpc64)
75
			enable_unaligned_access=yes
76
			enable_unaligned_access=yes
76
			;;
77
			;;
78
		arm*|aarch64*)
79
			# On 32-bit and 64-bit ARM, GCC and Clang
80
			# #define __ARM_FEATURE_UNALIGNED if
81
			# unaligned access is supported.
82
			AC_COMPILE_IFELSE([AC_LANG_SOURCE([
83
#ifndef __ARM_FEATURE_UNALIGNED
84
compile error
85
#endif
86
int main(void) { return 0; }
87
])], [enable_unaligned_access=yes], [enable_unaligned_access=no])
88
			;;
77
		*)
89
		*)
78
			enable_unaligned_access=no
90
			enable_unaligned_access=no
79
			;;
91
			;;
Lines 81-88 Link Here
81
fi
93
fi
82
if test "x$enable_unaligned_access" = xyes ; then
94
if test "x$enable_unaligned_access" = xyes ; then
83
	AC_DEFINE([TUKLIB_FAST_UNALIGNED_ACCESS], [1], [Define to 1 if
95
	AC_DEFINE([TUKLIB_FAST_UNALIGNED_ACCESS], [1], [Define to 1 if
84
		the system supports fast unaligned access to 16-bit and
96
		the system supports fast unaligned access to 16-bit,
85
		32-bit integers.])
97
		32-bit, and 64-bit integers.])
86
	AC_MSG_RESULT([yes])
98
	AC_MSG_RESULT([yes])
87
else
99
else
88
	AC_MSG_RESULT([no])
100
	AC_MSG_RESULT([no])
(-)xz-5.2.5/m4/tuklib_physmem.m4 (-1 lines)
Lines 88-94 Link Here
88
]])], [tuklib_cv_physmem_method=sysconf], [
88
]])], [tuklib_cv_physmem_method=sysconf], [
89
89
90
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
90
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
91
#include <sys/types.h>
92
#ifdef HAVE_SYS_PARAM_H
91
#ifdef HAVE_SYS_PARAM_H
93
#	include <sys/param.h>
92
#	include <sys/param.h>
94
#endif
93
#endif
(-)xz-5.2.5/m4/tuklib_progname.m4 (-1 / +4 lines)
Lines 21-25 Link Here
21
21
22
AC_DEFUN_ONCE([TUKLIB_PROGNAME], [
22
AC_DEFUN_ONCE([TUKLIB_PROGNAME], [
23
AC_REQUIRE([TUKLIB_COMMON])
23
AC_REQUIRE([TUKLIB_COMMON])
24
AC_CHECK_DECLS([program_invocation_name], [], [], [#include <errno.h>])
24
AC_CHECK_DECL([program_invocation_name], [AC_DEFINE(
25
	[HAVE_PROGRAM_INVOCATION_NAME], [1],
26
	[Define to 1 if `program_invocation_name' is declared in <errno.h>.])],
27
	[], [#include <errno.h>])
25
])dnl
28
])dnl
(-)xz-5.2.5/po/LINGUAS (+11 lines)
Lines 1-12 Link Here
1
ca
1
cs
2
cs
2
da
3
da
3
de
4
de
5
eo
6
es
4
fi
7
fi
5
fr
8
fr
9
hr
6
hu
10
hu
7
it
11
it
12
ko
8
pl
13
pl
14
pt
9
pt_BR
15
pt_BR
16
ro
17
sr
18
sv
19
tr
20
uk
10
vi
21
vi
11
zh_CN
22
zh_CN
12
zh_TW
23
zh_TW
(-)xz-5.2.5/po/Makefile.in.in (-6 / +13 lines)
Lines 1-13 Link Here
1
# Makefile for PO directory in any package using GNU gettext.
1
# Makefile for PO directory in any package using GNU gettext.
2
# Copyright (C) 1995-2000 Ulrich Drepper <drepper@gnu.ai.mit.edu>
2
# Copyright (C) 1995-2000 Ulrich Drepper <drepper@gnu.ai.mit.edu>
3
# Copyright (C) 2000-2019 Free Software Foundation, Inc.
3
# Copyright (C) 2000-2020 Free Software Foundation, Inc.
4
#
4
#
5
# Copying and distribution of this file, with or without modification,
5
# Copying and distribution of this file, with or without modification,
6
# are permitted in any medium without royalty provided the copyright
6
# are permitted in any medium without royalty provided the copyright
7
# notice and this notice are preserved.  This file is offered as-is,
7
# notice and this notice are preserved.  This file is offered as-is,
8
# without any warranty.
8
# without any warranty.
9
#
9
#
10
# Origin: gettext-0.20
10
# Origin: gettext-0.21
11
GETTEXT_MACRO_VERSION = 0.20
11
GETTEXT_MACRO_VERSION = 0.20
12
12
13
PACKAGE = @PACKAGE@
13
PACKAGE = @PACKAGE@
Lines 90-95 Link Here
90
90
91
# Makevars gets inserted here. (Don't remove this line!)
91
# Makevars gets inserted here. (Don't remove this line!)
92
92
93
all: all-@USE_NLS@
94
95
93
.SUFFIXES:
96
.SUFFIXES:
94
.SUFFIXES: .po .gmo .sed .sin .nop .po-create .po-update
97
.SUFFIXES: .po .gmo .sed .sin .nop .po-create .po-update
95
98
Lines 107-113 Link Here
107
# the .pot file. This eliminates the need to update the .po files when the
110
# the .pot file. This eliminates the need to update the .po files when the
108
# .pot file has changed, which would be troublesome if the .po files are put
111
# .pot file has changed, which would be troublesome if the .po files are put
109
# under version control.
112
# under version control.
110
.po.gmo: $(srcdir)/$(DOMAIN).pot
113
$(GMOFILES): $(srcdir)/$(DOMAIN).pot
114
.po.gmo:
111
	@lang=`echo $* | sed -e 's,.*/,,'`; \
115
	@lang=`echo $* | sed -e 's,.*/,,'`; \
112
	test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
116
	test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
113
	echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \
117
	echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \
Lines 123-130 Link Here
123
	mv t-$@ $@
127
	mv t-$@ $@
124
128
125
129
126
all: all-@USE_NLS@
127
128
all-yes: $(srcdir)/stamp-po
130
all-yes: $(srcdir)/stamp-po
129
all-no:
131
all-no:
130
132
Lines 413-424 Link Here
413
	@$(MAKE) dist2
415
	@$(MAKE) dist2
414
# This is a separate target because 'update-po' must be executed before.
416
# This is a separate target because 'update-po' must be executed before.
415
dist2: $(srcdir)/stamp-po $(DISTFILES)
417
dist2: $(srcdir)/stamp-po $(DISTFILES)
416
	dists="$(DISTFILES)"; \
418
	@dists="$(DISTFILES)"; \
417
	if test "$(PACKAGE)" = "gettext-tools"; then \
419
	if test "$(PACKAGE)" = "gettext-tools"; then \
418
	  dists="$$dists Makevars.template"; \
420
	  dists="$$dists Makevars.template"; \
419
	fi; \
421
	fi; \
420
	if test -f $(srcdir)/$(DOMAIN).pot; then \
422
	if test -f $(srcdir)/$(DOMAIN).pot; then \
421
	  dists="$$dists $(DOMAIN).pot stamp-po"; \
423
	  dists="$$dists $(DOMAIN).pot stamp-po"; \
424
	else \
425
	  case $(XGETTEXT) in \
426
	    :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \
427
	    *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the contents of the POTFILES.in file and the XGETTEXT_OPTIONS in the Makevars file." 1>&2;; \
428
	  esac; \
422
	fi; \
429
	fi; \
423
	if test -f $(srcdir)/ChangeLog; then \
430
	if test -f $(srcdir)/ChangeLog; then \
424
	  dists="$$dists ChangeLog"; \
431
	  dists="$$dists ChangeLog"; \
(-)xz-5.2.5/po/cs.po (-246 / +384 lines)
Lines 5-12 Link Here
5
msgid ""
5
msgid ""
6
msgstr ""
6
msgstr ""
7
"Project-Id-Version: xz-utils\n"
7
"Project-Id-Version: xz-utils\n"
8
"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
8
"Report-Msgid-Bugs-To: xz@tukaani.org\n"
9
"POT-Creation-Date: 2020-03-17 16:29+0200\n"
9
"POT-Creation-Date: 2023-05-04 22:32+0800\n"
10
"PO-Revision-Date: 2010-12-03 11:32+0100\n"
10
"PO-Revision-Date: 2010-12-03 11:32+0100\n"
11
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
11
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
12
"Language-Team: Czech <diskuze@lists.l10n.cz>\n"
12
"Language-Team: Czech <diskuze@lists.l10n.cz>\n"
Lines 18-116 Link Here
18
"X-Poedit-Language: Czech\n"
18
"X-Poedit-Language: Czech\n"
19
"X-Poedit-SourceCharset: utf-8\n"
19
"X-Poedit-SourceCharset: utf-8\n"
20
20
21
#: src/xz/args.c:63
21
#: src/xz/args.c:77
22
#, c-format
22
#, c-format
23
msgid "%s: Invalid argument to --block-list"
23
msgid "%s: Invalid argument to --block-list"
24
msgstr ""
24
msgstr ""
25
25
26
#: src/xz/args.c:73
26
#: src/xz/args.c:87
27
#, c-format
27
#, c-format
28
msgid "%s: Too many arguments to --block-list"
28
msgid "%s: Too many arguments to --block-list"
29
msgstr ""
29
msgstr ""
30
30
31
#: src/xz/args.c:102
31
#: src/xz/args.c:116
32
msgid "0 can only be used as the last element in --block-list"
32
msgid "0 can only be used as the last element in --block-list"
33
msgstr ""
33
msgstr ""
34
34
35
#: src/xz/args.c:406
35
#: src/xz/args.c:451
36
#, c-format
36
#, c-format
37
msgid "%s: Unknown file format type"
37
msgid "%s: Unknown file format type"
38
msgstr "%s: Neznámý typ formátu souboru"
38
msgstr "%s: Neznámý typ formátu souboru"
39
39
40
#: src/xz/args.c:429 src/xz/args.c:437
40
#: src/xz/args.c:474 src/xz/args.c:482
41
#, c-format
41
#, c-format
42
msgid "%s: Unsupported integrity check type"
42
msgid "%s: Unsupported integrity check type"
43
msgstr "%s: Neznámý typ kontroly integrity"
43
msgstr "%s: Neznámý typ kontroly integrity"
44
44
45
#: src/xz/args.c:473
45
#: src/xz/args.c:518
46
msgid "Only one file can be specified with `--files' or `--files0'."
46
msgid "Only one file can be specified with `--files' or `--files0'."
47
msgstr "Spolu s přepínači „--files“ nebo „--files0“ může být zadán pouze jeden soubor"
47
msgstr "Spolu s přepínači „--files“ nebo „--files0“ může být zadán pouze jeden soubor"
48
48
49
#: src/xz/args.c:541
49
#: src/xz/args.c:586
50
#, c-format
50
#, c-format
51
msgid "The environment variable %s contains too many arguments"
51
msgid "The environment variable %s contains too many arguments"
52
msgstr "Proměnná prostředí %s obsahuje příliš mnoho argumentů"
52
msgstr "Proměnná prostředí %s obsahuje příliš mnoho argumentů"
53
53
54
#: src/xz/args.c:643
54
#: src/xz/args.c:688
55
msgid "Compression support was disabled at build time"
55
msgid "Compression support was disabled at build time"
56
msgstr ""
56
msgstr ""
57
57
58
#: src/xz/args.c:650
58
#: src/xz/args.c:695
59
msgid "Decompression support was disabled at build time"
59
msgid "Decompression support was disabled at build time"
60
msgstr ""
60
msgstr ""
61
61
62
#: src/xz/coder.c:110
62
#: src/xz/args.c:701
63
msgid "Compression of lzip files (.lz) is not supported"
64
msgstr ""
65
66
#: src/xz/args.c:732
67
#, fuzzy
68
#| msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
69
msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout"
70
msgstr "%s: S přepínačem --format=raw je vyžadován --sufix=.PRIP, vyjma zápisu do standardního výstupu"
71
72
#: src/xz/coder.c:115
63
msgid "Maximum number of filters is four"
73
msgid "Maximum number of filters is four"
64
msgstr "Maximální počet filtrů je čtyři"
74
msgstr "Maximální počet filtrů je čtyři"
65
75
66
#: src/xz/coder.c:129
76
#: src/xz/coder.c:134
67
msgid "Memory usage limit is too low for the given filter setup."
77
msgid "Memory usage limit is too low for the given filter setup."
68
msgstr "Omezení použitelné paměti je příliš malé pro dané nastavení filtru."
78
msgstr "Omezení použitelné paměti je příliš malé pro dané nastavení filtru."
69
79
70
#: src/xz/coder.c:159
80
#: src/xz/coder.c:169
71
msgid "Using a preset in raw mode is discouraged."
81
msgid "Using a preset in raw mode is discouraged."
72
msgstr "Použití přednastavení v režimu raw je nevhodné."
82
msgstr "Použití přednastavení v režimu raw je nevhodné."
73
83
74
#: src/xz/coder.c:161
84
#: src/xz/coder.c:171
75
msgid "The exact options of the presets may vary between software versions."
85
msgid "The exact options of the presets may vary between software versions."
76
msgstr "Přesné volby u přednastavení se mohou lišit mezi různými verzemi softwaru."
86
msgstr "Přesné volby u přednastavení se mohou lišit mezi různými verzemi softwaru."
77
87
78
#: src/xz/coder.c:184
88
#: src/xz/coder.c:194
79
msgid "The .lzma format supports only the LZMA1 filter"
89
msgid "The .lzma format supports only the LZMA1 filter"
80
msgstr "Formát .lzma podporuje pouze filtr LZMA1"
90
msgstr "Formát .lzma podporuje pouze filtr LZMA1"
81
91
82
#: src/xz/coder.c:192
92
#: src/xz/coder.c:202
83
msgid "LZMA1 cannot be used with the .xz format"
93
msgid "LZMA1 cannot be used with the .xz format"
84
msgstr "LZMA1 nelze použít s formátem .xz"
94
msgstr "LZMA1 nelze použít s formátem .xz"
85
95
86
#: src/xz/coder.c:209
96
#: src/xz/coder.c:219
87
msgid "The filter chain is incompatible with --flush-timeout"
97
msgid "The filter chain is incompatible with --flush-timeout"
88
msgstr ""
98
msgstr ""
89
99
90
#: src/xz/coder.c:215
100
#: src/xz/coder.c:225
91
msgid "Switching to single-threaded mode due to --flush-timeout"
101
msgid "Switching to single-threaded mode due to --flush-timeout"
92
msgstr ""
102
msgstr ""
93
103
94
#: src/xz/coder.c:235
104
#: src/xz/coder.c:249
95
#, c-format
105
#, c-format
96
msgid "Using up to %<PRIu32> threads."
106
msgid "Using up to %<PRIu32> threads."
97
msgstr ""
107
msgstr ""
98
108
99
#: src/xz/coder.c:251
109
#: src/xz/coder.c:265
100
msgid "Unsupported filter chain or filter options"
110
msgid "Unsupported filter chain or filter options"
101
msgstr "Nepodporovaný omezující filtr nebo volby filtru"
111
msgstr "Nepodporovaný omezující filtr nebo volby filtru"
102
112
103
#: src/xz/coder.c:263
113
#: src/xz/coder.c:277
104
#, c-format
114
#, c-format
105
msgid "Decompression will need %s MiB of memory."
115
msgid "Decompression will need %s MiB of memory."
106
msgstr "Dekomprimace bude vyžadovat %s MiB paměti."
116
msgstr "Dekomprimace bude vyžadovat %s MiB paměti."
107
117
108
#: src/xz/coder.c:300
118
#: src/xz/coder.c:309
119
#, fuzzy, c-format
120
#| msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
121
msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
122
msgstr "Přizpůsobit velikost slovníku LZMA%c z %s MiB na %s MiB, tak aby nebylo překročeno omezení použitelné paměti %s MiB"
123
124
#: src/xz/coder.c:329
109
#, c-format
125
#, c-format
110
msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
126
msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway."
111
msgstr ""
127
msgstr ""
112
128
113
#: src/xz/coder.c:354
129
#: src/xz/coder.c:356
130
#, fuzzy, c-format
131
#| msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
132
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
133
msgstr "Přizpůsobit velikost slovníku LZMA%c z %s MiB na %s MiB, tak aby nebylo překročeno omezení použitelné paměti %s MiB"
134
135
#: src/xz/coder.c:411
114
#, c-format
136
#, c-format
115
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
137
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
116
msgstr "Přizpůsobit velikost slovníku LZMA%c z %s MiB na %s MiB, tak aby nebylo překročeno omezení použitelné paměti %s MiB"
138
msgstr "Přizpůsobit velikost slovníku LZMA%c z %s MiB na %s MiB, tak aby nebylo překročeno omezení použitelné paměti %s MiB"
Lines 120-130 Link Here
120
msgid "Error creating a pipe: %s"
142
msgid "Error creating a pipe: %s"
121
msgstr ""
143
msgstr ""
122
144
123
#: src/xz/file_io.c:224
145
#: src/xz/file_io.c:252
124
msgid "Failed to enable the sandbox"
146
msgid "Failed to enable the sandbox"
125
msgstr ""
147
msgstr ""
126
148
127
#: src/xz/file_io.c:266
149
#: src/xz/file_io.c:294
128
#, c-format
150
#, c-format
129
msgid "%s: poll() failed: %s"
151
msgid "%s: poll() failed: %s"
130
msgstr ""
152
msgstr ""
Lines 139-333 Link Here
139
#. it is possible that the user has put a new file in place
161
#. it is possible that the user has put a new file in place
140
#. of the original file, and in that case it obviously
162
#. of the original file, and in that case it obviously
141
#. shouldn't be removed.
163
#. shouldn't be removed.
142
#: src/xz/file_io.c:333
164
#: src/xz/file_io.c:361
143
#, c-format
165
#, c-format
144
msgid "%s: File seems to have been moved, not removing"
166
msgid "%s: File seems to have been moved, not removing"
145
msgstr "%s: Vypadá to, že soubor byl přesunut, proto nebude odstraněn"
167
msgstr "%s: Vypadá to, že soubor byl přesunut, proto nebude odstraněn"
146
168
147
#: src/xz/file_io.c:340 src/xz/file_io.c:882
169
#: src/xz/file_io.c:368 src/xz/file_io.c:924
148
#, c-format
170
#, c-format
149
msgid "%s: Cannot remove: %s"
171
msgid "%s: Cannot remove: %s"
150
msgstr "%s: Nelze odstranit: %s"
172
msgstr "%s: Nelze odstranit: %s"
151
173
152
#: src/xz/file_io.c:366
174
#: src/xz/file_io.c:394
153
#, c-format
175
#, c-format
154
msgid "%s: Cannot set the file owner: %s"
176
msgid "%s: Cannot set the file owner: %s"
155
msgstr "%s: Nelze nastavit vlastníka souboru: %s"
177
msgstr "%s: Nelze nastavit vlastníka souboru: %s"
156
178
157
#: src/xz/file_io.c:372
179
#: src/xz/file_io.c:407
158
#, c-format
180
#, c-format
159
msgid "%s: Cannot set the file group: %s"
181
msgid "%s: Cannot set the file group: %s"
160
msgstr "%s: Nelze nastavit skupinu souboru: %s"
182
msgstr "%s: Nelze nastavit skupinu souboru: %s"
161
183
162
#: src/xz/file_io.c:391
184
#: src/xz/file_io.c:426
163
#, c-format
185
#, c-format
164
msgid "%s: Cannot set the file permissions: %s"
186
msgid "%s: Cannot set the file permissions: %s"
165
msgstr "%s: Nelze nastavit oprávnění souboru: %s"
187
msgstr "%s: Nelze nastavit oprávnění souboru: %s"
166
188
167
#: src/xz/file_io.c:517
189
#: src/xz/file_io.c:552
168
#, c-format
190
#, c-format
169
msgid "Error getting the file status flags from standard input: %s"
191
msgid "Error getting the file status flags from standard input: %s"
170
msgstr ""
192
msgstr ""
171
193
172
#: src/xz/file_io.c:574 src/xz/file_io.c:636
194
#: src/xz/file_io.c:610 src/xz/file_io.c:672
173
#, c-format
195
#, c-format
174
msgid "%s: Is a symbolic link, skipping"
196
msgid "%s: Is a symbolic link, skipping"
175
msgstr "%s: Jedná se o symbolický odkaz, vynechává se"
197
msgstr "%s: Jedná se o symbolický odkaz, vynechává se"
176
198
177
#: src/xz/file_io.c:665
199
#: src/xz/file_io.c:701
178
#, c-format
200
#, c-format
179
msgid "%s: Is a directory, skipping"
201
msgid "%s: Is a directory, skipping"
180
msgstr "%s: Jedná se o složku, vynechává se"
202
msgstr "%s: Jedná se o složku, vynechává se"
181
203
182
#: src/xz/file_io.c:671
204
#: src/xz/file_io.c:707
183
#, c-format
205
#, c-format
184
msgid "%s: Not a regular file, skipping"
206
msgid "%s: Not a regular file, skipping"
185
msgstr "%s: Nejedná se o běžný soubor, vynechává se"
207
msgstr "%s: Nejedná se o běžný soubor, vynechává se"
186
208
187
#: src/xz/file_io.c:688
209
#: src/xz/file_io.c:724
188
#, c-format
210
#, c-format
189
msgid "%s: File has setuid or setgid bit set, skipping"
211
msgid "%s: File has setuid or setgid bit set, skipping"
190
msgstr "%s: Soubor má nastavený bit setuid nebo setgid, vynechává se"
212
msgstr "%s: Soubor má nastavený bit setuid nebo setgid, vynechává se"
191
213
192
#: src/xz/file_io.c:695
214
#: src/xz/file_io.c:731
193
#, c-format
215
#, c-format
194
msgid "%s: File has sticky bit set, skipping"
216
msgid "%s: File has sticky bit set, skipping"
195
msgstr "%s: Soubor má nastavený bit sticky, vynechává se"
217
msgstr "%s: Soubor má nastavený bit sticky, vynechává se"
196
218
197
#: src/xz/file_io.c:702
219
#: src/xz/file_io.c:738
198
#, c-format
220
#, c-format
199
msgid "%s: Input file has more than one hard link, skipping"
221
msgid "%s: Input file has more than one hard link, skipping"
200
msgstr "%s: Vstupní soubor má více než jeden pevný odkaz, vynechává se"
222
msgstr "%s: Vstupní soubor má více než jeden pevný odkaz, vynechává se"
201
223
202
#: src/xz/file_io.c:792
224
#: src/xz/file_io.c:780
225
msgid "Empty filename, skipping"
226
msgstr "Prázdný název souboru, vynechává se"
227
228
#: src/xz/file_io.c:834
203
#, c-format
229
#, c-format
204
msgid "Error restoring the status flags to standard input: %s"
230
msgid "Error restoring the status flags to standard input: %s"
205
msgstr ""
231
msgstr ""
206
232
207
#: src/xz/file_io.c:840
233
#: src/xz/file_io.c:882
208
#, c-format
234
#, c-format
209
msgid "Error getting the file status flags from standard output: %s"
235
msgid "Error getting the file status flags from standard output: %s"
210
msgstr ""
236
msgstr ""
211
237
212
#: src/xz/file_io.c:1018
238
#: src/xz/file_io.c:1060
213
#, c-format
239
#, c-format
214
msgid "Error restoring the O_APPEND flag to standard output: %s"
240
msgid "Error restoring the O_APPEND flag to standard output: %s"
215
msgstr "Chyba při obnovení příznaku O_APPEND na standardní výstup: %s"
241
msgstr "Chyba při obnovení příznaku O_APPEND na standardní výstup: %s"
216
242
217
#: src/xz/file_io.c:1030
243
#: src/xz/file_io.c:1072
218
#, c-format
244
#, c-format
219
msgid "%s: Closing the file failed: %s"
245
msgid "%s: Closing the file failed: %s"
220
msgstr "%s: Selhalo zavření souboru: %s"
246
msgstr "%s: Selhalo zavření souboru: %s"
221
247
222
#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
248
#: src/xz/file_io.c:1108 src/xz/file_io.c:1371
223
#, c-format
249
#, c-format
224
msgid "%s: Seeking failed when trying to create a sparse file: %s"
250
msgid "%s: Seeking failed when trying to create a sparse file: %s"
225
msgstr "%s: Selhalo nastavení pozice při pokusu o vytvoření souboru řídké matice: %s"
251
msgstr "%s: Selhalo nastavení pozice při pokusu o vytvoření souboru řídké matice: %s"
226
252
227
#: src/xz/file_io.c:1167
253
#: src/xz/file_io.c:1209
228
#, c-format
254
#, c-format
229
msgid "%s: Read error: %s"
255
msgid "%s: Read error: %s"
230
msgstr "%s: Chyba čtení: %s"
256
msgstr "%s: Chyba čtení: %s"
231
257
232
#: src/xz/file_io.c:1191
258
#: src/xz/file_io.c:1239
233
#, c-format
259
#, c-format
234
msgid "%s: Error seeking the file: %s"
260
msgid "%s: Error seeking the file: %s"
235
msgstr "%s: Chyba při posunu v rámci souboru: %s"
261
msgstr "%s: Chyba při posunu v rámci souboru: %s"
236
262
237
#: src/xz/file_io.c:1201
263
#: src/xz/file_io.c:1263
238
#, c-format
264
#, c-format
239
msgid "%s: Unexpected end of file"
265
msgid "%s: Unexpected end of file"
240
msgstr "%s: Neočekávaný konec souboru"
266
msgstr "%s: Neočekávaný konec souboru"
241
267
242
#: src/xz/file_io.c:1260
268
#: src/xz/file_io.c:1322
243
#, c-format
269
#, c-format
244
msgid "%s: Write error: %s"
270
msgid "%s: Write error: %s"
245
msgstr "%s: Chyba zápisu: %s"
271
msgstr "%s: Chyba zápisu: %s"
246
272
247
#: src/xz/hardware.c:137
273
#: src/xz/hardware.c:238
248
msgid "Disabled"
274
msgid "Disabled"
249
msgstr "Vypnuto"
275
msgstr "Vypnuto"
250
276
251
#. TRANSLATORS: Test with "xz --info-memory" to see if
277
#: src/xz/hardware.c:269
252
#. the alignment looks nice.
278
#, fuzzy
253
#: src/xz/hardware.c:156
279
#| msgid "Total amount of physical memory (RAM): "
254
msgid "Total amount of physical memory (RAM): "
280
msgid "Amount of physical memory (RAM):"
255
msgstr "Celkové množství fyzické paměti (RAM):     "
281
msgstr "Celkové množství fyzické paměti (RAM):     "
256
282
257
#: src/xz/hardware.c:158
283
#: src/xz/hardware.c:270
258
msgid "Memory usage limit for compression:    "
284
msgid "Number of processor threads:"
259
msgstr "Omezení použitelné paměti pro komprimaci:  "
285
msgstr ""
260
286
261
#: src/xz/hardware.c:160
287
#: src/xz/hardware.c:271
262
msgid "Memory usage limit for decompression:  "
288
msgid "Compression:"
289
msgstr ""
290
291
#: src/xz/hardware.c:272
292
msgid "Decompression:"
293
msgstr ""
294
295
#: src/xz/hardware.c:273
296
#, fuzzy
297
#| msgid "Memory usage limit for decompression:  "
298
msgid "Multi-threaded decompression:"
263
msgstr "Omezení použitelné paměti pro dekomprimaci:"
299
msgstr "Omezení použitelné paměti pro dekomprimaci:"
264
300
301
#: src/xz/hardware.c:274
302
msgid "Default for -T0:"
303
msgstr ""
304
305
#: src/xz/hardware.c:292
306
msgid "Hardware information:"
307
msgstr ""
308
309
#: src/xz/hardware.c:299
310
#, fuzzy
311
#| msgid "Memory usage limit reached"
312
msgid "Memory usage limits:"
313
msgstr "Dosaženo omezení použitelné paměti"
314
315
#: src/xz/list.c:68
316
msgid "Streams:"
317
msgstr ""
318
319
#: src/xz/list.c:69
320
msgid "Blocks:"
321
msgstr ""
322
323
#: src/xz/list.c:70
324
#, fuzzy
325
#| msgid "  Compressed size:    %s\n"
326
msgid "Compressed size:"
327
msgstr "  Komprimovaná velikost:   %s\n"
328
329
#: src/xz/list.c:71
330
#, fuzzy
331
#| msgid "  Uncompressed size:  %s\n"
332
msgid "Uncompressed size:"
333
msgstr "  Nekomprimovaná velikost: %s\n"
334
335
#: src/xz/list.c:72
336
msgid "Ratio:"
337
msgstr ""
338
339
#: src/xz/list.c:73
340
msgid "Check:"
341
msgstr ""
342
343
#: src/xz/list.c:74
344
#, fuzzy
345
#| msgid "  Stream padding:     %s\n"
346
msgid "Stream Padding:"
347
msgstr "  Zarovnání proudu:        %s\n"
348
349
#: src/xz/list.c:75
350
#, fuzzy
351
#| msgid "  Memory needed:      %s MiB\n"
352
msgid "Memory needed:"
353
msgstr "  Potřebná paměť:          %s MiB\n"
354
355
#: src/xz/list.c:76
356
#, fuzzy
357
#| msgid "  Sizes in headers:   %s\n"
358
msgid "Sizes in headers:"
359
msgstr "  Velikosti v hlavičkách:  %s\n"
360
361
#: src/xz/list.c:79
362
#, fuzzy
363
#| msgid "  Number of files:    %s\n"
364
msgid "Number of files:"
365
msgstr "  Počet souborů:           %s\n"
366
367
#: src/xz/list.c:122
368
msgid "Stream"
369
msgstr ""
370
371
#: src/xz/list.c:123
372
msgid "Block"
373
msgstr ""
374
375
#: src/xz/list.c:124
376
msgid "Blocks"
377
msgstr ""
378
379
#: src/xz/list.c:125
380
msgid "CompOffset"
381
msgstr ""
382
383
#: src/xz/list.c:126
384
msgid "UncompOffset"
385
msgstr ""
386
387
#: src/xz/list.c:127
388
msgid "CompSize"
389
msgstr ""
390
391
#: src/xz/list.c:128
392
msgid "UncompSize"
393
msgstr ""
394
395
#: src/xz/list.c:129
396
#, fuzzy
397
#| msgid "Totals:"
398
msgid "TotalSize"
399
msgstr "Celkem:"
400
401
#: src/xz/list.c:130
402
msgid "Ratio"
403
msgstr ""
404
405
#: src/xz/list.c:131
406
msgid "Check"
407
msgstr ""
408
409
#: src/xz/list.c:132
410
msgid "CheckVal"
411
msgstr ""
412
413
#: src/xz/list.c:133
414
msgid "Padding"
415
msgstr ""
416
417
#: src/xz/list.c:134
418
msgid "Header"
419
msgstr ""
420
421
#: src/xz/list.c:135
422
msgid "Flags"
423
msgstr ""
424
425
#: src/xz/list.c:136
426
msgid "MemUsage"
427
msgstr ""
428
429
#: src/xz/list.c:137
430
msgid "Filters"
431
msgstr ""
432
265
#. TRANSLATORS: Indicates that there is no integrity check.
433
#. TRANSLATORS: Indicates that there is no integrity check.
266
#. This string is used in tables, so the width must not
434
#. This string is used in tables. In older xz version this
267
#. exceed ten columns with a fixed-width font.
435
#. string was limited to ten columns in a fixed-width font, but
268
#: src/xz/list.c:65
436
#. nowadays there is no strict length restriction anymore.
437
#: src/xz/list.c:169
269
msgid "None"
438
msgid "None"
270
msgstr "žádná"
439
msgstr "žádná"
271
440
272
#. TRANSLATORS: Indicates that integrity check name is not known,
441
#. TRANSLATORS: Indicates that integrity check name is not known,
273
#. but the Check ID is known (here 2). This and other "Unknown-N"
442
#. but the Check ID is known (here 2). In older xz version these
274
#. strings are used in tables, so the width must not exceed ten
443
#. strings were limited to ten columns in a fixed-width font, but
275
#. columns with a fixed-width font. It's OK to omit the dash if
444
#. nowadays there is no strict length restriction anymore.
276
#. you need space for one extra letter, but don't use spaces.
445
#: src/xz/list.c:175
277
#: src/xz/list.c:72
278
msgid "Unknown-2"
446
msgid "Unknown-2"
279
msgstr "neznámá-2"
447
msgstr "neznámá-2"
280
448
281
#: src/xz/list.c:73
449
#: src/xz/list.c:176
282
msgid "Unknown-3"
450
msgid "Unknown-3"
283
msgstr "neznámá-3"
451
msgstr "neznámá-3"
284
452
285
#: src/xz/list.c:75
453
#: src/xz/list.c:178
286
msgid "Unknown-5"
454
msgid "Unknown-5"
287
msgstr "neznámá-5"
455
msgstr "neznámá-5"
288
456
289
#: src/xz/list.c:76
457
#: src/xz/list.c:179
290
msgid "Unknown-6"
458
msgid "Unknown-6"
291
msgstr "neznámá-6"
459
msgstr "neznámá-6"
292
460
293
#: src/xz/list.c:77
461
#: src/xz/list.c:180
294
msgid "Unknown-7"
462
msgid "Unknown-7"
295
msgstr "neznámá-7"
463
msgstr "neznámá-7"
296
464
297
#: src/xz/list.c:78
465
#: src/xz/list.c:181
298
msgid "Unknown-8"
466
msgid "Unknown-8"
299
msgstr "neznámá-8"
467
msgstr "neznámá-8"
300
468
301
#: src/xz/list.c:79
469
#: src/xz/list.c:182
302
msgid "Unknown-9"
470
msgid "Unknown-9"
303
msgstr "neznámá-9"
471
msgstr "neznámá-9"
304
472
305
#: src/xz/list.c:81
473
#: src/xz/list.c:184
306
msgid "Unknown-11"
474
msgid "Unknown-11"
307
msgstr "neznámá-11"
475
msgstr "neznámá-11"
308
476
309
#: src/xz/list.c:82
477
#: src/xz/list.c:185
310
msgid "Unknown-12"
478
msgid "Unknown-12"
311
msgstr "neznámá-12"
479
msgstr "neznámá-12"
312
480
313
#: src/xz/list.c:83
481
#: src/xz/list.c:186
314
msgid "Unknown-13"
482
msgid "Unknown-13"
315
msgstr "neznámá-13"
483
msgstr "neznámá-13"
316
484
317
#: src/xz/list.c:84
485
#: src/xz/list.c:187
318
msgid "Unknown-14"
486
msgid "Unknown-14"
319
msgstr "neznámá-14"
487
msgstr "neznámá-14"
320
488
321
#: src/xz/list.c:85
489
#: src/xz/list.c:188
322
msgid "Unknown-15"
490
msgid "Unknown-15"
323
msgstr "neznámá-15"
491
msgstr "neznámá-15"
324
492
325
#: src/xz/list.c:153
493
#: src/xz/list.c:351
326
#, c-format
494
#, c-format
327
msgid "%s: File is empty"
495
msgid "%s: File is empty"
328
msgstr "%s: Soubor je prázdný"
496
msgstr "%s: Soubor je prázdný"
329
497
330
#: src/xz/list.c:158
498
#: src/xz/list.c:356
331
#, c-format
499
#, c-format
332
msgid "%s: Too small to be a valid .xz file"
500
msgid "%s: Too small to be a valid .xz file"
333
msgstr "%s: Je příliš malý na to, aby to mohl být platný soubor .xz"
501
msgstr "%s: Je příliš malý na to, aby to mohl být platný soubor .xz"
Lines 336-440 Link Here
336
#. to Ratio, the columns are right aligned. Check and Filename
504
#. to Ratio, the columns are right aligned. Check and Filename
337
#. are left aligned. If you need longer words, it's OK to
505
#. are left aligned. If you need longer words, it's OK to
338
#. use two lines here. Test with "xz -l foo.xz".
506
#. use two lines here. Test with "xz -l foo.xz".
339
#: src/xz/list.c:677
507
#: src/xz/list.c:730
340
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
508
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
341
msgstr "Proud   Bloky      Komprim    Nekomprim  Poměr  Kontrl  Název souboru"
509
msgstr "Proud   Bloky      Komprim    Nekomprim  Poměr  Kontrl  Název souboru"
342
510
343
#: src/xz/list.c:717
511
#: src/xz/list.c:1025 src/xz/list.c:1203
344
#, c-format
345
msgid "  Streams:            %s\n"
346
msgstr "  Proudů:                  %s\n"
347
348
#: src/xz/list.c:719
349
#, c-format
350
msgid "  Blocks:             %s\n"
351
msgstr "  Bloků:                   %s\n"
352
353
#: src/xz/list.c:721
354
#, c-format
355
msgid "  Compressed size:    %s\n"
356
msgstr "  Komprimovaná velikost:   %s\n"
357
358
#: src/xz/list.c:724
359
#, c-format
360
msgid "  Uncompressed size:  %s\n"
361
msgstr "  Nekomprimovaná velikost: %s\n"
362
363
#: src/xz/list.c:727
364
#, c-format
365
msgid "  Ratio:              %s\n"
366
msgstr "  Poměr komprimace:        %s\n"
367
368
#: src/xz/list.c:729
369
#, c-format
370
msgid "  Check:              %s\n"
371
msgstr "  Typ kontroly:            %s\n"
372
373
#: src/xz/list.c:730
374
#, c-format
375
msgid "  Stream padding:     %s\n"
376
msgstr "  Zarovnání proudu:        %s\n"
377
378
#. TRANSLATORS: The second line is column headings. All except
379
#. Check are right aligned; Check is left aligned. Test with
380
#. "xz -lv foo.xz".
381
#: src/xz/list.c:758
382
msgid ""
383
"  Streams:\n"
384
"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
385
msgstr ""
386
"  Proudy:\n"
387
"     Proud     Bloky     KomprPozice   NekomprPozice   KomprVelikost NekomprVelikost  Poměr  Kontrola   Zarovnání"
388
389
#. TRANSLATORS: The second line is column headings. All
390
#. except Check are right aligned; Check is left aligned.
391
#: src/xz/list.c:813
392
#, c-format
393
msgid ""
394
"  Blocks:\n"
395
"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
396
msgstr ""
397
"  Bloky:\n"
398
"     Proud      Blok     KomprPozice   NekomprPozice    CelkVelikost NekomprVelikost  Poměr  Kontrola"
399
400
#. TRANSLATORS: These are additional column headings
401
#. for the most verbose listing mode. CheckVal
402
#. (Check value), Flags, and Filters are left aligned.
403
#. Header (Block Header Size), CompSize, and MemUsage
404
#. are right aligned. %*s is replaced with 0-120
405
#. spaces to make the CheckVal column wide enough.
406
#. Test with "xz -lvv foo.xz".
407
#: src/xz/list.c:825
408
#, c-format
409
msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
410
msgstr "   KontrHod %*s Hlavič  Příznaky     KomprVel    PoužiPam  Filtry"
411
412
#: src/xz/list.c:903 src/xz/list.c:1078
413
#, c-format
414
msgid "  Memory needed:      %s MiB\n"
415
msgstr "  Potřebná paměť:          %s MiB\n"
416
417
#: src/xz/list.c:905 src/xz/list.c:1080
418
#, c-format
419
msgid "  Sizes in headers:   %s\n"
420
msgstr "  Velikosti v hlavičkách:  %s\n"
421
422
#: src/xz/list.c:906 src/xz/list.c:1081
423
msgid "Yes"
512
msgid "Yes"
424
msgstr "Ano"
513
msgstr "Ano"
425
514
426
#: src/xz/list.c:906 src/xz/list.c:1081
515
#: src/xz/list.c:1025 src/xz/list.c:1203
427
msgid "No"
516
msgid "No"
428
msgstr "Ne"
517
msgstr "Ne"
429
518
430
#: src/xz/list.c:907 src/xz/list.c:1082
519
#: src/xz/list.c:1027 src/xz/list.c:1205
431
#, c-format
520
#, c-format
432
msgid "  Minimum XZ Utils version: %s\n"
521
msgid "  Minimum XZ Utils version: %s\n"
433
msgstr ""
522
msgstr ""
434
523
435
#. TRANSLATORS: %s is an integer. Only the plural form of this
524
#. TRANSLATORS: %s is an integer. Only the plural form of this
436
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
525
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
437
#: src/xz/list.c:1057
526
#: src/xz/list.c:1178
438
#, c-format
527
#, c-format
439
msgid "%s file\n"
528
msgid "%s file\n"
440
msgid_plural "%s files\n"
529
msgid_plural "%s files\n"
Lines 442-461 Link Here
442
msgstr[1] "%s soubory\n"
531
msgstr[1] "%s soubory\n"
443
msgstr[2] "%s souborů\n"
532
msgstr[2] "%s souborů\n"
444
533
445
#: src/xz/list.c:1070
534
#: src/xz/list.c:1191
446
msgid "Totals:"
535
msgid "Totals:"
447
msgstr "Celkem:"
536
msgstr "Celkem:"
448
537
449
#: src/xz/list.c:1071
538
#: src/xz/list.c:1269
450
#, c-format
451
msgid "  Number of files:    %s\n"
452
msgstr "  Počet souborů:           %s\n"
453
454
#: src/xz/list.c:1146
455
msgid "--list works only on .xz files (--format=xz or --format=auto)"
539
msgid "--list works only on .xz files (--format=xz or --format=auto)"
456
msgstr "--list pracuje pouze se soubory .xz (--format=xz nebo --format=auto)"
540
msgstr "--list pracuje pouze se soubory .xz (--format=xz nebo --format=auto)"
457
541
458
#: src/xz/list.c:1152
542
#: src/xz/list.c:1275
459
msgid "--list does not support reading from standard input"
543
msgid "--list does not support reading from standard input"
460
msgstr "--list nepodporuje čtení ze standardního vstupu"
544
msgstr "--list nepodporuje čtení ze standardního vstupu"
461
545
Lines 474-484 Link Here
474
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
558
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
475
msgstr "%s: Byl nalezen nulový znak při čtení názvů souborů; nechtěli jste náhodou použít „--files0“ místo „--files“?"
559
msgstr "%s: Byl nalezen nulový znak při čtení názvů souborů; nechtěli jste náhodou použít „--files0“ místo „--files“?"
476
560
477
#: src/xz/main.c:174
561
#: src/xz/main.c:188
478
msgid "Compression and decompression with --robot are not supported yet."
562
msgid "Compression and decompression with --robot are not supported yet."
479
msgstr "Komprimace a dekomprimace s přepínačem --robot není zatím podporovaná."
563
msgstr "Komprimace a dekomprimace s přepínačem --robot není zatím podporovaná."
480
564
481
#: src/xz/main.c:252
565
#: src/xz/main.c:266
482
msgid "Cannot read data from standard input when reading filenames from standard input"
566
msgid "Cannot read data from standard input when reading filenames from standard input"
483
msgstr "Ze standardního vstupu nelze číst data, když se ze standardního vstupu načítají názvy souborů"
567
msgstr "Ze standardního vstupu nelze číst data, když se ze standardního vstupu načítají názvy souborů"
484
568
Lines 486-553 Link Here
486
#. of the line in messages. Usually it becomes "xz: ".
570
#. of the line in messages. Usually it becomes "xz: ".
487
#. This is a translatable string because French needs
571
#. This is a translatable string because French needs
488
#. a space before a colon.
572
#. a space before a colon.
489
#: src/xz/message.c:728
573
#: src/xz/message.c:725
490
#, c-format
574
#, c-format
491
msgid "%s: "
575
msgid "%s: "
492
msgstr ""
576
msgstr ""
493
577
494
#: src/xz/message.c:791 src/xz/message.c:841
578
#: src/xz/message.c:797 src/xz/message.c:856
495
msgid "Internal error (bug)"
579
msgid "Internal error (bug)"
496
msgstr "Interní chyba"
580
msgstr "Interní chyba"
497
581
498
#: src/xz/message.c:798
582
#: src/xz/message.c:804
499
msgid "Cannot establish signal handlers"
583
msgid "Cannot establish signal handlers"
500
msgstr "Nelze ustanovit ovladač signálu"
584
msgstr "Nelze ustanovit ovladač signálu"
501
585
502
#: src/xz/message.c:807
586
#: src/xz/message.c:813
503
msgid "No integrity check; not verifying file integrity"
587
msgid "No integrity check; not verifying file integrity"
504
msgstr "Žádná kontrola integrity; integrita souboru se nebude ověřovat"
588
msgstr "Žádná kontrola integrity; integrita souboru se nebude ověřovat"
505
589
506
#: src/xz/message.c:810
590
#: src/xz/message.c:816
507
msgid "Unsupported type of integrity check; not verifying file integrity"
591
msgid "Unsupported type of integrity check; not verifying file integrity"
508
msgstr "Nepodporovaný typ kontroly integrity; integrita souboru se nebude ověřovat"
592
msgstr "Nepodporovaný typ kontroly integrity; integrita souboru se nebude ověřovat"
509
593
510
#: src/xz/message.c:817
594
#: src/xz/message.c:823
511
msgid "Memory usage limit reached"
595
msgid "Memory usage limit reached"
512
msgstr "Dosaženo omezení použitelné paměti"
596
msgstr "Dosaženo omezení použitelné paměti"
513
597
514
#: src/xz/message.c:820
598
#: src/xz/message.c:826
515
msgid "File format not recognized"
599
msgid "File format not recognized"
516
msgstr "Formát souboru nebyl rozpoznán"
600
msgstr "Formát souboru nebyl rozpoznán"
517
601
518
#: src/xz/message.c:823
602
#: src/xz/message.c:829
519
msgid "Unsupported options"
603
msgid "Unsupported options"
520
msgstr "Nepodporovaná volba"
604
msgstr "Nepodporovaná volba"
521
605
522
#: src/xz/message.c:826
606
#: src/xz/message.c:832
523
msgid "Compressed data is corrupt"
607
msgid "Compressed data is corrupt"
524
msgstr "Komprimovaná data jsou poškozená"
608
msgstr "Komprimovaná data jsou poškozená"
525
609
526
#: src/xz/message.c:829
610
#: src/xz/message.c:835
527
msgid "Unexpected end of input"
611
msgid "Unexpected end of input"
528
msgstr "Neočekávaný konec vstupu"
612
msgstr "Neočekávaný konec vstupu"
529
613
530
#: src/xz/message.c:862
614
#: src/xz/message.c:877
531
#, c-format
615
#, c-format
532
msgid "%s MiB of memory is required. The limiter is disabled."
616
msgid "%s MiB of memory is required. The limiter is disabled."
533
msgstr ""
617
msgstr ""
534
618
535
#: src/xz/message.c:890
619
#: src/xz/message.c:905
536
#, c-format
620
#, c-format
537
msgid "%s MiB of memory is required. The limit is %s."
621
msgid "%s MiB of memory is required. The limit is %s."
538
msgstr "Je vyžadováno %s MiB paměti. Limit je %s."
622
msgstr "Je vyžadováno %s MiB paměti. Limit je %s."
539
623
540
#: src/xz/message.c:1057
624
#: src/xz/message.c:924
541
#, c-format
625
#, c-format
542
msgid "%s: Filter chain: %s\n"
626
msgid "%s: Filter chain: %s\n"
543
msgstr "%s: Omezující filtr: %s\n"
627
msgstr "%s: Omezující filtr: %s\n"
544
628
545
#: src/xz/message.c:1067
629
#: src/xz/message.c:935
546
#, c-format
630
#, c-format
547
msgid "Try `%s --help' for more information."
631
msgid "Try `%s --help' for more information."
548
msgstr "Zkuste „%s --help“ pro více informací"
632
msgstr "Zkuste „%s --help“ pro více informací"
549
633
550
#: src/xz/message.c:1093
634
#: src/xz/message.c:961
551
#, c-format
635
#, c-format
552
msgid ""
636
msgid ""
553
"Usage: %s [OPTION]... [FILE]...\n"
637
"Usage: %s [OPTION]... [FILE]...\n"
Lines 558-572 Link Here
558
"Komprimuje nebo dekomprimuje SOUBORy ve formátu xz.\n"
642
"Komprimuje nebo dekomprimuje SOUBORy ve formátu xz.\n"
559
"\n"
643
"\n"
560
644
561
#: src/xz/message.c:1100
645
#: src/xz/message.c:968
562
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
646
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
563
msgstr "Povinné argumenty pro dlouhé přepínače jsou povinné rovněž pro krátké přepínače.\n"
647
msgstr "Povinné argumenty pro dlouhé přepínače jsou povinné rovněž pro krátké přepínače.\n"
564
648
565
#: src/xz/message.c:1104
649
#: src/xz/message.c:972
566
msgid " Operation mode:\n"
650
msgid " Operation mode:\n"
567
msgstr "Operační režim:\n"
651
msgstr "Operační režim:\n"
568
652
569
#: src/xz/message.c:1107
653
#: src/xz/message.c:975
570
msgid ""
654
msgid ""
571
"  -z, --compress      force compression\n"
655
"  -z, --compress      force compression\n"
572
"  -d, --decompress    force decompression\n"
656
"  -d, --decompress    force decompression\n"
Lines 578-584 Link Here
578
" -t, --test            testovat integritu komprimovaného souboru\n"
662
" -t, --test            testovat integritu komprimovaného souboru\n"
579
" -l, --list            vypsat informace o souborech .xz"
663
" -l, --list            vypsat informace o souborech .xz"
580
664
581
#: src/xz/message.c:1113
665
#: src/xz/message.c:981
582
msgid ""
666
msgid ""
583
"\n"
667
"\n"
584
" Operation modifiers:\n"
668
" Operation modifiers:\n"
Lines 586-592 Link Here
586
"\n"
670
"\n"
587
"Modifikátory operací:\n"
671
"Modifikátory operací:\n"
588
672
589
#: src/xz/message.c:1116
673
#: src/xz/message.c:984
590
msgid ""
674
msgid ""
591
"  -k, --keep          keep (don't delete) input files\n"
675
"  -k, --keep          keep (don't delete) input files\n"
592
"  -f, --force         force overwrite of output file and (de)compress links\n"
676
"  -f, --force         force overwrite of output file and (de)compress links\n"
Lines 596-608 Link Here
596
" -f, --force           vynutit přepis výstupního souboru a de/komprimovat odkazy\n"
680
" -f, --force           vynutit přepis výstupního souboru a de/komprimovat odkazy\n"
597
" -c, --stdout          zapisovat na standardní výstup a nemazat vstupní soubory"
681
" -c, --stdout          zapisovat na standardní výstup a nemazat vstupní soubory"
598
682
599
#: src/xz/message.c:1122
683
#: src/xz/message.c:993
600
msgid ""
684
msgid ""
601
"      --single-stream decompress only the first stream, and silently\n"
685
"      --single-stream decompress only the first stream, and silently\n"
602
"                      ignore possible remaining input data"
686
"                      ignore possible remaining input data"
603
msgstr ""
687
msgstr ""
604
688
605
#: src/xz/message.c:1125
689
#: src/xz/message.c:996
606
msgid ""
690
msgid ""
607
"      --no-sparse     do not create sparse files when decompressing\n"
691
"      --no-sparse     do not create sparse files when decompressing\n"
608
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
692
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
Lines 618-624 Link Here
618
"                       názvy souborů musí být zakončeny znakem nového řádku\n"
702
"                       názvy souborů musí být zakončeny znakem nového řádku\n"
619
"     --files0[=SOUBOR] stejné jako --files, ale použít k zakončování nulový znak"
703
"     --files0[=SOUBOR] stejné jako --files, ale použít k zakončování nulový znak"
620
704
621
#: src/xz/message.c:1134
705
#: src/xz/message.c:1005
622
msgid ""
706
msgid ""
623
"\n"
707
"\n"
624
" Basic file format and compression options:\n"
708
" Basic file format and compression options:\n"
Lines 626-635 Link Here
626
"\n"
710
"\n"
627
"Základní přepínače pro formát souboru a komprimaci:\n"
711
"Základní přepínače pro formát souboru a komprimaci:\n"
628
712
629
#: src/xz/message.c:1136
713
#: src/xz/message.c:1007
714
#, fuzzy
715
#| msgid ""
716
#| "  -F, --format=FMT    file format to encode or decode; possible values are\n"
717
#| "                      `auto' (default), `xz', `lzma', and `raw'\n"
718
#| "  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
719
#| "                      `crc32', `crc64' (default), or `sha256'"
630
msgid ""
720
msgid ""
631
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
721
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
632
"                      `auto' (default), `xz', `lzma', and `raw'\n"
722
"                      `auto' (default), `xz', `lzma', `lzip', and `raw'\n"
633
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
723
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
634
"                      `crc32', `crc64' (default), or `sha256'"
724
"                      `crc32', `crc64' (default), or `sha256'"
635
msgstr ""
725
msgstr ""
Lines 638-648 Link Here
638
" -C, --check=KONTROLA  typ kontroly integrity: „none“ (používejte s rozmyslem),\n"
728
" -C, --check=KONTROLA  typ kontroly integrity: „none“ (používejte s rozmyslem),\n"
639
"                       „crc32“, „crc64“ (výchozí) nebo „sha256“"
729
"                       „crc32“, „crc64“ (výchozí) nebo „sha256“"
640
730
641
#: src/xz/message.c:1141
731
#: src/xz/message.c:1012
642
msgid "      --ignore-check  don't verify the integrity check when decompressing"
732
msgid "      --ignore-check  don't verify the integrity check when decompressing"
643
msgstr ""
733
msgstr ""
644
734
645
#: src/xz/message.c:1145
735
#: src/xz/message.c:1016
646
msgid ""
736
msgid ""
647
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
737
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
648
"                      decompressor memory usage into account before using 7-9!"
738
"                      decompressor memory usage into account before using 7-9!"
Lines 650-656 Link Here
650
" -0 .. -9              přednastavení komprimace; výchozí je 6; než použijete\n"
740
" -0 .. -9              přednastavení komprimace; výchozí je 6; než použijete\n"
651
"                       hodnoty 7 – 9, vezměte do úvahy množství použité paměti"
741
"                       hodnoty 7 – 9, vezměte do úvahy množství použité paměti"
652
742
653
#: src/xz/message.c:1149
743
#: src/xz/message.c:1020
654
msgid ""
744
msgid ""
655
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
745
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
656
"                      does not affect decompressor memory requirements"
746
"                      does not affect decompressor memory requirements"
Lines 658-684 Link Here
658
" -e, --extreme         zkusit zlepšit poměr komprimace využitím více času\n"
748
" -e, --extreme         zkusit zlepšit poměr komprimace využitím více času\n"
659
"                       procesoru; nemá vliv na paměťové nároky dekomprimace"
749
"                       procesoru; nemá vliv na paměťové nároky dekomprimace"
660
750
661
#: src/xz/message.c:1153
751
#: src/xz/message.c:1024
662
msgid ""
752
msgid ""
663
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
753
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
664
"                      to use as many threads as there are processor cores"
754
"                      to use as many threads as there are processor cores"
665
msgstr ""
755
msgstr ""
666
756
667
#: src/xz/message.c:1158
757
#: src/xz/message.c:1029
668
msgid ""
758
msgid ""
669
"      --block-size=SIZE\n"
759
"      --block-size=SIZE\n"
670
"                      start a new .xz block after every SIZE bytes of input;\n"
760
"                      start a new .xz block after every SIZE bytes of input;\n"
671
"                      use this to set the block size for threaded compression"
761
"                      use this to set the block size for threaded compression"
672
msgstr ""
762
msgstr ""
673
763
674
#: src/xz/message.c:1162
764
#: src/xz/message.c:1033
675
msgid ""
765
msgid ""
676
"      --block-list=SIZES\n"
766
"      --block-list=SIZES\n"
677
"                      start a new .xz block after the given comma-separated\n"
767
"                      start a new .xz block after the given comma-separated\n"
678
"                      intervals of uncompressed data"
768
"                      intervals of uncompressed data"
679
msgstr ""
769
msgstr ""
680
770
681
#: src/xz/message.c:1166
771
#: src/xz/message.c:1037
682
msgid ""
772
msgid ""
683
"      --flush-timeout=TIMEOUT\n"
773
"      --flush-timeout=TIMEOUT\n"
684
"                      when compressing, if more than TIMEOUT milliseconds has\n"
774
"                      when compressing, if more than TIMEOUT milliseconds has\n"
Lines 686-699 Link Here
686
"                      would block, all pending data is flushed out"
776
"                      would block, all pending data is flushed out"
687
msgstr ""
777
msgstr ""
688
778
689
#: src/xz/message.c:1172
779
#: src/xz/message.c:1043
690
#, no-c-format
780
#, fuzzy, no-c-format
781
#| msgid ""
782
#| "      --memlimit-compress=LIMIT\n"
783
#| "      --memlimit-decompress=LIMIT\n"
784
#| "  -M, --memlimit=LIMIT\n"
785
#| "                      set memory usage limit for compression, decompression,\n"
786
#| "                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
691
msgid ""
787
msgid ""
692
"      --memlimit-compress=LIMIT\n"
788
"      --memlimit-compress=LIMIT\n"
693
"      --memlimit-decompress=LIMIT\n"
789
"      --memlimit-decompress=LIMIT\n"
790
"      --memlimit-mt-decompress=LIMIT\n"
694
"  -M, --memlimit=LIMIT\n"
791
"  -M, --memlimit=LIMIT\n"
695
"                      set memory usage limit for compression, decompression,\n"
792
"                      set memory usage limit for compression, decompression,\n"
696
"                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
793
"                      threaded decompression, or all of these; LIMIT is in\n"
794
"                      bytes, % of RAM, or 0 for defaults"
697
msgstr ""
795
msgstr ""
698
"     --memlimit-compress=LIMIT\n"
796
"     --memlimit-compress=LIMIT\n"
699
"     --memlimit-decompress=LIMIT\n"
797
"     --memlimit-decompress=LIMIT\n"
Lines 702-708 Link Here
702
"                       dekomprimaci nebo obojí; LIMIT je v bajtech, % z paměti\n"
800
"                       dekomprimaci nebo obojí; LIMIT je v bajtech, % z paměti\n"
703
"                       RAM nebo 0 pro výchozí"
801
"                       RAM nebo 0 pro výchozí"
704
802
705
#: src/xz/message.c:1179
803
#: src/xz/message.c:1052
706
msgid ""
804
msgid ""
707
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
805
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
708
"                      give an error instead of adjusting the settings downwards"
806
"                      give an error instead of adjusting the settings downwards"
Lines 710-716 Link Here
710
"     --no-adjust       pokud nastavení komprimace přesáhne omezení použitelné\n"
808
"     --no-adjust       pokud nastavení komprimace přesáhne omezení použitelné\n"
711
"                       paměti, předat chybu namísto snížení nastavení"
809
"                       paměti, předat chybu namísto snížení nastavení"
712
810
713
#: src/xz/message.c:1185
811
#: src/xz/message.c:1058
714
msgid ""
812
msgid ""
715
"\n"
813
"\n"
716
" Custom filter chain for compression (alternative for using presets):"
814
" Custom filter chain for compression (alternative for using presets):"
Lines 718-724 Link Here
718
"\n"
816
"\n"
719
"Vlastní omezující filtr pro komprimaci (alternativa k použití přednastavených):"
817
"Vlastní omezující filtr pro komprimaci (alternativa k použití přednastavených):"
720
818
721
#: src/xz/message.c:1194
819
#: src/xz/message.c:1067
722
msgid ""
820
msgid ""
723
"\n"
821
"\n"
724
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
822
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
Lines 747-760 Link Here
747
"                         depth=POČ  maximální hloubka prohledávání;\n"
845
"                         depth=POČ  maximální hloubka prohledávání;\n"
748
"                                    0 = automaticky (výchozí)"
846
"                                    0 = automaticky (výchozí)"
749
847
750
#: src/xz/message.c:1209
848
#: src/xz/message.c:1082
849
#, fuzzy
850
#| msgid ""
851
#| "\n"
852
#| "  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
853
#| "  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
854
#| "  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
855
#| "  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
856
#| "  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
857
#| "  --sparc[=OPTS]      SPARC BCJ filter\n"
858
#| "                      Valid OPTS for all BCJ filters:\n"
859
#| "                        start=NUM  start offset for conversions (default=0)"
751
msgid ""
860
msgid ""
752
"\n"
861
"\n"
753
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
862
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
863
"  --arm[=OPTS]        ARM BCJ filter\n"
864
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter\n"
865
"  --arm64[=OPTS]      ARM64 BCJ filter\n"
754
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
866
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
755
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
867
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
756
"  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
757
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
758
"  --sparc[=OPTS]      SPARC BCJ filter\n"
868
"  --sparc[=OPTS]      SPARC BCJ filter\n"
759
"                      Valid OPTS for all BCJ filters:\n"
869
"                      Valid OPTS for all BCJ filters:\n"
760
"                        start=NUM  start offset for conversions (default=0)"
870
"                        start=NUM  start offset for conversions (default=0)"
Lines 769-775 Link Here
769
"                       Platné volby pro všechny filtry BCJ:\n"
879
"                       Platné volby pro všechny filtry BCJ:\n"
770
"                         start=POČ  počáteční posun pro převody (výchozí=0)"
880
"                         start=POČ  počáteční posun pro převody (výchozí=0)"
771
881
772
#: src/xz/message.c:1221
882
#: src/xz/message.c:1095
773
msgid ""
883
msgid ""
774
"\n"
884
"\n"
775
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
885
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
Lines 781-787 Link Here
781
"                         dist=POČ   vzdálenost mezi bajty, které jsou odečítány\n"
891
"                         dist=POČ   vzdálenost mezi bajty, které jsou odečítány\n"
782
"                                    jeden od druhého (1 – 256; 1)"
892
"                                    jeden od druhého (1 – 256; 1)"
783
893
784
#: src/xz/message.c:1229
894
#: src/xz/message.c:1103
785
msgid ""
895
msgid ""
786
"\n"
896
"\n"
787
" Other options:\n"
897
" Other options:\n"
Lines 789-795 Link Here
789
"\n"
899
"\n"
790
" Ostatní přepínače:\n"
900
" Ostatní přepínače:\n"
791
901
792
#: src/xz/message.c:1232
902
#: src/xz/message.c:1106
793
msgid ""
903
msgid ""
794
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
904
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
795
"  -v, --verbose       be verbose; specify twice for even more verbose"
905
"  -v, --verbose       be verbose; specify twice for even more verbose"
Lines 798-814 Link Here
798
" -v, --verbose         podrobnější zprávy; zadáním dvakrát, budou ještě\n"
908
" -v, --verbose         podrobnější zprávy; zadáním dvakrát, budou ještě\n"
799
"                       podrobnější"
909
"                       podrobnější"
800
910
801
#: src/xz/message.c:1237
911
#: src/xz/message.c:1111
802
msgid "  -Q, --no-warn       make warnings not affect the exit status"
912
msgid "  -Q, --no-warn       make warnings not affect the exit status"
803
msgstr " -Q, --no-warn         způsobí, že varování neovlivní stav ukončení"
913
msgstr " -Q, --no-warn         způsobí, že varování neovlivní stav ukončení"
804
914
805
#: src/xz/message.c:1239
915
#: src/xz/message.c:1113
806
msgid "      --robot         use machine-parsable messages (useful for scripts)"
916
msgid "      --robot         use machine-parsable messages (useful for scripts)"
807
msgstr ""
917
msgstr ""
808
"     --robot           použít strojově analyzovatelné zprávy (užitečné pro\n"
918
"     --robot           použít strojově analyzovatelné zprávy (užitečné pro\n"
809
"                       skripty)"
919
"                       skripty)"
810
920
811
#: src/xz/message.c:1242
921
#: src/xz/message.c:1116
812
msgid ""
922
msgid ""
813
"      --info-memory   display the total amount of RAM and the currently active\n"
923
"      --info-memory   display the total amount of RAM and the currently active\n"
814
"                      memory usage limits, and exit"
924
"                      memory usage limits, and exit"
Lines 816-822 Link Here
816
"     --info-memory     zobrazit celkové množství paměti RAM a současné aktivní\n"
926
"     --info-memory     zobrazit celkové množství paměti RAM a současné aktivní\n"
817
"                       omezení použitelné paměti a skončit"
927
"                       omezení použitelné paměti a skončit"
818
928
819
#: src/xz/message.c:1245
929
#: src/xz/message.c:1119
820
msgid ""
930
msgid ""
821
"  -h, --help          display the short help (lists only the basic options)\n"
931
"  -h, --help          display the short help (lists only the basic options)\n"
822
"  -H, --long-help     display this long help and exit"
932
"  -H, --long-help     display this long help and exit"
Lines 824-830 Link Here
824
" -h, --help            zobrazit krátkou nápovědu (vypíše jen základní přepínače)\n"
934
" -h, --help            zobrazit krátkou nápovědu (vypíše jen základní přepínače)\n"
825
" -H, --long-help       zobrazit tuto úplnou nápovědu a skončit"
935
" -H, --long-help       zobrazit tuto úplnou nápovědu a skončit"
826
936
827
#: src/xz/message.c:1249
937
#: src/xz/message.c:1123
828
msgid ""
938
msgid ""
829
"  -h, --help          display this short help and exit\n"
939
"  -h, --help          display this short help and exit\n"
830
"  -H, --long-help     display the long help (lists also the advanced options)"
940
"  -H, --long-help     display the long help (lists also the advanced options)"
Lines 832-842 Link Here
832
" -h, --help            zobrazit tuto zkrácenou nápovědu a skončit\n"
942
" -h, --help            zobrazit tuto zkrácenou nápovědu a skončit\n"
833
" -H, --long-help       zobrazit úplnou nápovědu (vypíše i pokročilé přepínače)"
943
" -H, --long-help       zobrazit úplnou nápovědu (vypíše i pokročilé přepínače)"
834
944
835
#: src/xz/message.c:1254
945
#: src/xz/message.c:1128
836
msgid "  -V, --version       display the version number and exit"
946
msgid "  -V, --version       display the version number and exit"
837
msgstr " -V, --version         zobrazit číslo verze a skončit"
947
msgstr " -V, --version         zobrazit číslo verze a skončit"
838
948
839
#: src/xz/message.c:1256
949
#: src/xz/message.c:1130
840
msgid ""
950
msgid ""
841
"\n"
951
"\n"
842
"With no FILE, or when FILE is -, read standard input.\n"
952
"With no FILE, or when FILE is -, read standard input.\n"
Lines 848-864 Link Here
848
#. for this package. Please add _another line_ saying
958
#. for this package. Please add _another line_ saying
849
#. "Report translation bugs to <...>\n" with the email or WWW
959
#. "Report translation bugs to <...>\n" with the email or WWW
850
#. address for translation bugs. Thanks.
960
#. address for translation bugs. Thanks.
851
#: src/xz/message.c:1262
961
#: src/xz/message.c:1136
852
#, c-format
962
#, c-format
853
msgid "Report bugs to <%s> (in English or Finnish).\n"
963
msgid "Report bugs to <%s> (in English or Finnish).\n"
854
msgstr "Chyby hlaste na <%s> (v angličtině nebo finštině).\n"
964
msgstr "Chyby hlaste na <%s> (v angličtině nebo finštině).\n"
855
965
856
#: src/xz/message.c:1264
966
#: src/xz/message.c:1138
857
#, c-format
967
#, c-format
858
msgid "%s home page: <%s>\n"
968
msgid "%s home page: <%s>\n"
859
msgstr "Domovská stránka %s: <%s>\n"
969
msgstr "Domovská stránka %s: <%s>\n"
860
970
861
#: src/xz/message.c:1268
971
#: src/xz/message.c:1142
862
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
972
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
863
msgstr ""
973
msgstr ""
864
974
Lines 886-912 Link Here
886
msgid "The sum of lc and lp must not exceed 4"
996
msgid "The sum of lc and lp must not exceed 4"
887
msgstr "Součet lc a lp nesmí překročit hodnotu 4"
997
msgstr "Součet lc a lp nesmí překročit hodnotu 4"
888
998
889
#: src/xz/options.c:359
999
#: src/xz/suffix.c:160
890
#, c-format
1000
#, c-format
891
msgid "The selected match finder requires at least nice=%<PRIu32>"
892
msgstr "Vybraný vyhledávač shod vyžaduje minimálně nice=%<PRIu32>"
893
894
#: src/xz/suffix.c:133 src/xz/suffix.c:258
895
#, c-format
896
msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
897
msgstr "%s: S přepínačem --format=raw je vyžadován --sufix=.PRIP, vyjma zápisu do standardního výstupu"
898
899
#: src/xz/suffix.c:164
900
#, c-format
901
msgid "%s: Filename has an unknown suffix, skipping"
1001
msgid "%s: Filename has an unknown suffix, skipping"
902
msgstr "%s: Název souboru má neznámou příponu, vynechává se"
1002
msgstr "%s: Název souboru má neznámou příponu, vynechává se"
903
1003
904
#: src/xz/suffix.c:185
1004
#: src/xz/suffix.c:181
905
#, c-format
1005
#, c-format
906
msgid "%s: File already has `%s' suffix, skipping"
1006
msgid "%s: File already has `%s' suffix, skipping"
907
msgstr "%s: Soubor již má příponu „%s“, vynechává se"
1007
msgstr "%s: Soubor již má příponu „%s“, vynechává se"
908
1008
909
#: src/xz/suffix.c:393
1009
#: src/xz/suffix.c:388
910
#, c-format
1010
#, c-format
911
msgid "%s: Invalid filename suffix"
1011
msgid "%s: Invalid filename suffix"
912
msgstr "%s: Neplatná přípona názvu souboru"
1012
msgstr "%s: Neplatná přípona názvu souboru"
Lines 930-944 Link Here
930
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
1030
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
931
msgstr "Hodnota volby „%s“ musí být v rozsahu [%<PRIu64>, %<PRIu64>]"
1031
msgstr "Hodnota volby „%s“ musí být v rozsahu [%<PRIu64>, %<PRIu64>]"
932
1032
933
#: src/xz/util.c:267
1033
#: src/xz/util.c:269
934
msgid "Empty filename, skipping"
935
msgstr "Prázdný název souboru, vynechává se"
936
937
#: src/xz/util.c:281
938
msgid "Compressed data cannot be read from a terminal"
1034
msgid "Compressed data cannot be read from a terminal"
939
msgstr "Z terminálu nelze číst komprimovaná data"
1035
msgstr "Z terminálu nelze číst komprimovaná data"
940
1036
941
#: src/xz/util.c:294
1037
#: src/xz/util.c:282
942
msgid "Compressed data cannot be written to a terminal"
1038
msgid "Compressed data cannot be written to a terminal"
943
msgstr "Do terminálu nelze zapisovat komprimovaná data"
1039
msgstr "Do terminálu nelze zapisovat komprimovaná data"
944
1040
Lines 949-954 Link Here
949
#: src/common/tuklib_exit.c:43
1045
#: src/common/tuklib_exit.c:43
950
msgid "Unknown error"
1046
msgid "Unknown error"
951
msgstr "Neznámá chyba"
1047
msgstr "Neznámá chyba"
1048
1049
#~ msgid "Memory usage limit for compression:    "
1050
#~ msgstr "Omezení použitelné paměti pro komprimaci:  "
1051
1052
#, c-format
1053
#~ msgid "  Streams:            %s\n"
1054
#~ msgstr "  Proudů:                  %s\n"
1055
1056
#, c-format
1057
#~ msgid "  Blocks:             %s\n"
1058
#~ msgstr "  Bloků:                   %s\n"
1059
1060
#, c-format
1061
#~ msgid "  Ratio:              %s\n"
1062
#~ msgstr "  Poměr komprimace:        %s\n"
1063
1064
#, c-format
1065
#~ msgid "  Check:              %s\n"
1066
#~ msgstr "  Typ kontroly:            %s\n"
1067
1068
#~ msgid ""
1069
#~ "  Streams:\n"
1070
#~ "    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
1071
#~ msgstr ""
1072
#~ "  Proudy:\n"
1073
#~ "     Proud     Bloky     KomprPozice   NekomprPozice   KomprVelikost NekomprVelikost  Poměr  Kontrola   Zarovnání"
1074
1075
#, c-format
1076
#~ msgid ""
1077
#~ "  Blocks:\n"
1078
#~ "    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
1079
#~ msgstr ""
1080
#~ "  Bloky:\n"
1081
#~ "     Proud      Blok     KomprPozice   NekomprPozice    CelkVelikost NekomprVelikost  Poměr  Kontrola"
1082
1083
#, c-format
1084
#~ msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
1085
#~ msgstr "   KontrHod %*s Hlavič  Příznaky     KomprVel    PoužiPam  Filtry"
1086
1087
#, c-format
1088
#~ msgid "The selected match finder requires at least nice=%<PRIu32>"
1089
#~ msgstr "Vybraný vyhledávač shod vyžaduje minimálně nice=%<PRIu32>"
952
1090
953
#~ msgid "Limit was %s MiB, but %s MiB would have been needed"
1091
#~ msgid "Limit was %s MiB, but %s MiB would have been needed"
954
#~ msgstr "Limit byl %s MiB, ale bylo by zapotřebí %s MiB"
1092
#~ msgstr "Limit byl %s MiB, ale bylo by zapotřebí %s MiB"
(-)xz-5.2.5/po/da.po (-245 / +360 lines)
Lines 5-12 Link Here
5
msgid ""
5
msgid ""
6
msgstr ""
6
msgstr ""
7
"Project-Id-Version: xz 5.2.4\n"
7
"Project-Id-Version: xz 5.2.4\n"
8
"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
8
"Report-Msgid-Bugs-To: xz@tukaani.org\n"
9
"POT-Creation-Date: 2020-03-17 16:29+0200\n"
9
"POT-Creation-Date: 2023-05-04 22:32+0800\n"
10
"PO-Revision-Date: 2019-03-04 23:08+0100\n"
10
"PO-Revision-Date: 2019-03-04 23:08+0100\n"
11
"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
11
"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
12
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
12
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
Lines 17-115 Link Here
17
"X-Bugs: Report translation errors to the Language-Team address.\n"
17
"X-Bugs: Report translation errors to the Language-Team address.\n"
18
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
18
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
19
20
#: src/xz/args.c:63
20
#: src/xz/args.c:77
21
#, c-format
21
#, c-format
22
msgid "%s: Invalid argument to --block-list"
22
msgid "%s: Invalid argument to --block-list"
23
msgstr "%s: Ugyldigt parameter til --block-list"
23
msgstr "%s: Ugyldigt parameter til --block-list"
24
24
25
#: src/xz/args.c:73
25
#: src/xz/args.c:87
26
#, c-format
26
#, c-format
27
msgid "%s: Too many arguments to --block-list"
27
msgid "%s: Too many arguments to --block-list"
28
msgstr "%s: For mange argumenter til --block-list"
28
msgstr "%s: For mange argumenter til --block-list"
29
29
30
#: src/xz/args.c:102
30
#: src/xz/args.c:116
31
msgid "0 can only be used as the last element in --block-list"
31
msgid "0 can only be used as the last element in --block-list"
32
msgstr "0 kan kun bruges som det sidste element i --block-list"
32
msgstr "0 kan kun bruges som det sidste element i --block-list"
33
33
34
#: src/xz/args.c:406
34
#: src/xz/args.c:451
35
#, c-format
35
#, c-format
36
msgid "%s: Unknown file format type"
36
msgid "%s: Unknown file format type"
37
msgstr "%s: Ukendt filformattype"
37
msgstr "%s: Ukendt filformattype"
38
38
39
#: src/xz/args.c:429 src/xz/args.c:437
39
#: src/xz/args.c:474 src/xz/args.c:482
40
#, c-format
40
#, c-format
41
msgid "%s: Unsupported integrity check type"
41
msgid "%s: Unsupported integrity check type"
42
msgstr "%s: Typen for integritetkontrol er ikke understøttet"
42
msgstr "%s: Typen for integritetkontrol er ikke understøttet"
43
43
44
#: src/xz/args.c:473
44
#: src/xz/args.c:518
45
msgid "Only one file can be specified with `--files' or `--files0'."
45
msgid "Only one file can be specified with `--files' or `--files0'."
46
msgstr "Kun en fil kan angives med »--files« eller »--files0«."
46
msgstr "Kun en fil kan angives med »--files« eller »--files0«."
47
47
48
#: src/xz/args.c:541
48
#: src/xz/args.c:586
49
#, c-format
49
#, c-format
50
msgid "The environment variable %s contains too many arguments"
50
msgid "The environment variable %s contains too many arguments"
51
msgstr "Miljøvariablen %s indeholder for mange argumenter"
51
msgstr "Miljøvariablen %s indeholder for mange argumenter"
52
52
53
#: src/xz/args.c:643
53
#: src/xz/args.c:688
54
msgid "Compression support was disabled at build time"
54
msgid "Compression support was disabled at build time"
55
msgstr "Komprimeringsunderstøttelse blev deaktiveret på byggetidspunktet"
55
msgstr "Komprimeringsunderstøttelse blev deaktiveret på byggetidspunktet"
56
56
57
#: src/xz/args.c:650
57
#: src/xz/args.c:695
58
msgid "Decompression support was disabled at build time"
58
msgid "Decompression support was disabled at build time"
59
msgstr "Dekomprimeringsunderstøttelse blev deaktiveret på byggetidspunktet"
59
msgstr "Dekomprimeringsunderstøttelse blev deaktiveret på byggetidspunktet"
60
60
61
#: src/xz/coder.c:110
61
#: src/xz/args.c:701
62
msgid "Compression of lzip files (.lz) is not supported"
63
msgstr ""
64
65
#: src/xz/args.c:732
66
#, fuzzy
67
#| msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
68
msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout"
69
msgstr "%s: med --format=raw, --suffix=.SUF er krævet med mindre der skrives til standardud"
70
71
#: src/xz/coder.c:115
62
msgid "Maximum number of filters is four"
72
msgid "Maximum number of filters is four"
63
msgstr "Maksimalt antal filtre er fire"
73
msgstr "Maksimalt antal filtre er fire"
64
74
65
#: src/xz/coder.c:129
75
#: src/xz/coder.c:134
66
msgid "Memory usage limit is too low for the given filter setup."
76
msgid "Memory usage limit is too low for the given filter setup."
67
msgstr "Begræsningen for brug af hukommelse er for lav for den givne filteropsætning."
77
msgstr "Begræsningen for brug af hukommelse er for lav for den givne filteropsætning."
68
78
69
#: src/xz/coder.c:159
79
#: src/xz/coder.c:169
70
msgid "Using a preset in raw mode is discouraged."
80
msgid "Using a preset in raw mode is discouraged."
71
msgstr "Det frarådes at bruge en forhåndskonfiguration i rå tilstand (raw mode)."
81
msgstr "Det frarådes at bruge en forhåndskonfiguration i rå tilstand (raw mode)."
72
82
73
#: src/xz/coder.c:161
83
#: src/xz/coder.c:171
74
msgid "The exact options of the presets may vary between software versions."
84
msgid "The exact options of the presets may vary between software versions."
75
msgstr "De præcise indstillinger for forhåndskonfigurationerne kan variere mellem programversioner."
85
msgstr "De præcise indstillinger for forhåndskonfigurationerne kan variere mellem programversioner."
76
86
77
#: src/xz/coder.c:184
87
#: src/xz/coder.c:194
78
msgid "The .lzma format supports only the LZMA1 filter"
88
msgid "The .lzma format supports only the LZMA1 filter"
79
msgstr "Formatet .lzma understøtter kun LZMA1-filteret"
89
msgstr "Formatet .lzma understøtter kun LZMA1-filteret"
80
90
81
#: src/xz/coder.c:192
91
#: src/xz/coder.c:202
82
msgid "LZMA1 cannot be used with the .xz format"
92
msgid "LZMA1 cannot be used with the .xz format"
83
msgstr "LZMA1 kan ikke bruges med .xz-formatet"
93
msgstr "LZMA1 kan ikke bruges med .xz-formatet"
84
94
85
#: src/xz/coder.c:209
95
#: src/xz/coder.c:219
86
msgid "The filter chain is incompatible with --flush-timeout"
96
msgid "The filter chain is incompatible with --flush-timeout"
87
msgstr "Filterkæden er ikke kompatibel med --flush-timeout"
97
msgstr "Filterkæden er ikke kompatibel med --flush-timeout"
88
98
89
#: src/xz/coder.c:215
99
#: src/xz/coder.c:225
90
msgid "Switching to single-threaded mode due to --flush-timeout"
100
msgid "Switching to single-threaded mode due to --flush-timeout"
91
msgstr "Skifter til enkelt trådet tilstand på grund af --flush-timeout"
101
msgstr "Skifter til enkelt trådet tilstand på grund af --flush-timeout"
92
102
93
#: src/xz/coder.c:235
103
#: src/xz/coder.c:249
94
#, c-format
104
#, c-format
95
msgid "Using up to %<PRIu32> threads."
105
msgid "Using up to %<PRIu32> threads."
96
msgstr "Bruger op til %<PRIu32> tråde."
106
msgstr "Bruger op til %<PRIu32> tråde."
97
107
98
#: src/xz/coder.c:251
108
#: src/xz/coder.c:265
99
msgid "Unsupported filter chain or filter options"
109
msgid "Unsupported filter chain or filter options"
100
msgstr "Filterkæde eller filterindstillinger er ikke understøttet"
110
msgstr "Filterkæde eller filterindstillinger er ikke understøttet"
101
111
102
#: src/xz/coder.c:263
112
#: src/xz/coder.c:277
103
#, c-format
113
#, c-format
104
msgid "Decompression will need %s MiB of memory."
114
msgid "Decompression will need %s MiB of memory."
105
msgstr "Dekomprimering vil kræve %s MiB hukommelse."
115
msgstr "Dekomprimering vil kræve %s MiB hukommelse."
106
116
107
#: src/xz/coder.c:300
117
#: src/xz/coder.c:309
118
#, fuzzy, c-format
119
#| msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
120
msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
121
msgstr "Justerede antallet af tråde fra %s til %s for ikke at overskride begræsningen på brug af hukommelse på %s MiB"
122
123
#: src/xz/coder.c:329
108
#, c-format
124
#, c-format
109
msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
125
msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway."
126
msgstr ""
127
128
#: src/xz/coder.c:356
129
#, fuzzy, c-format
130
#| msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
131
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
110
msgstr "Justerede antallet af tråde fra %s til %s for ikke at overskride begræsningen på brug af hukommelse på %s MiB"
132
msgstr "Justerede antallet af tråde fra %s til %s for ikke at overskride begræsningen på brug af hukommelse på %s MiB"
111
133
112
#: src/xz/coder.c:354
134
#: src/xz/coder.c:411
113
#, c-format
135
#, c-format
114
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
136
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
115
msgstr "Justerede LZMA%c-ordbogsstørrelsen fra %s MiB til %s MiB for ikke at overskride begrænsningen på brug af hukommelse på %s MiB"
137
msgstr "Justerede LZMA%c-ordbogsstørrelsen fra %s MiB til %s MiB for ikke at overskride begrænsningen på brug af hukommelse på %s MiB"
Lines 119-129 Link Here
119
msgid "Error creating a pipe: %s"
141
msgid "Error creating a pipe: %s"
120
msgstr "Det opstod en fejl under oprettelse af en datakanal: %s"
142
msgstr "Det opstod en fejl under oprettelse af en datakanal: %s"
121
143
122
#: src/xz/file_io.c:224
144
#: src/xz/file_io.c:252
123
msgid "Failed to enable the sandbox"
145
msgid "Failed to enable the sandbox"
124
msgstr "Kunne ikke aktivere sandkassen"
146
msgstr "Kunne ikke aktivere sandkassen"
125
147
126
#: src/xz/file_io.c:266
148
#: src/xz/file_io.c:294
127
#, c-format
149
#, c-format
128
msgid "%s: poll() failed: %s"
150
msgid "%s: poll() failed: %s"
129
msgstr "%s: poll() mislykkedes: %s"
151
msgstr "%s: poll() mislykkedes: %s"
Lines 138-332 Link Here
138
#. it is possible that the user has put a new file in place
160
#. it is possible that the user has put a new file in place
139
#. of the original file, and in that case it obviously
161
#. of the original file, and in that case it obviously
140
#. shouldn't be removed.
162
#. shouldn't be removed.
141
#: src/xz/file_io.c:333
163
#: src/xz/file_io.c:361
142
#, c-format
164
#, c-format
143
msgid "%s: File seems to have been moved, not removing"
165
msgid "%s: File seems to have been moved, not removing"
144
msgstr "%s: Filen er vist blevet flyttet, sletter ikke"
166
msgstr "%s: Filen er vist blevet flyttet, sletter ikke"
145
167
146
#: src/xz/file_io.c:340 src/xz/file_io.c:882
168
#: src/xz/file_io.c:368 src/xz/file_io.c:924
147
#, c-format
169
#, c-format
148
msgid "%s: Cannot remove: %s"
170
msgid "%s: Cannot remove: %s"
149
msgstr "%s: Kan ikke fjerne: %s"
171
msgstr "%s: Kan ikke fjerne: %s"
150
172
151
#: src/xz/file_io.c:366
173
#: src/xz/file_io.c:394
152
#, c-format
174
#, c-format
153
msgid "%s: Cannot set the file owner: %s"
175
msgid "%s: Cannot set the file owner: %s"
154
msgstr "%s: Kan ikke angive filejeren: %s"
176
msgstr "%s: Kan ikke angive filejeren: %s"
155
177
156
#: src/xz/file_io.c:372
178
#: src/xz/file_io.c:407
157
#, c-format
179
#, c-format
158
msgid "%s: Cannot set the file group: %s"
180
msgid "%s: Cannot set the file group: %s"
159
msgstr "%s: Kan ikke angive filgruppen: %s"
181
msgstr "%s: Kan ikke angive filgruppen: %s"
160
182
161
#: src/xz/file_io.c:391
183
#: src/xz/file_io.c:426
162
#, c-format
184
#, c-format
163
msgid "%s: Cannot set the file permissions: %s"
185
msgid "%s: Cannot set the file permissions: %s"
164
msgstr "%s: Kan ikke angive filtilladelser: %s"
186
msgstr "%s: Kan ikke angive filtilladelser: %s"
165
187
166
#: src/xz/file_io.c:517
188
#: src/xz/file_io.c:552
167
#, c-format
189
#, c-format
168
msgid "Error getting the file status flags from standard input: %s"
190
msgid "Error getting the file status flags from standard input: %s"
169
msgstr "Der opstod en fejl under indhentelse af filstatusflag fra standardind: %s"
191
msgstr "Der opstod en fejl under indhentelse af filstatusflag fra standardind: %s"
170
192
171
#: src/xz/file_io.c:574 src/xz/file_io.c:636
193
#: src/xz/file_io.c:610 src/xz/file_io.c:672
172
#, c-format
194
#, c-format
173
msgid "%s: Is a symbolic link, skipping"
195
msgid "%s: Is a symbolic link, skipping"
174
msgstr "%s: Er en symbolsk henvisning, udelader"
196
msgstr "%s: Er en symbolsk henvisning, udelader"
175
197
176
#: src/xz/file_io.c:665
198
#: src/xz/file_io.c:701
177
#, c-format
199
#, c-format
178
msgid "%s: Is a directory, skipping"
200
msgid "%s: Is a directory, skipping"
179
msgstr "%s: Er en mappe, udelader"
201
msgstr "%s: Er en mappe, udelader"
180
202
181
#: src/xz/file_io.c:671
203
#: src/xz/file_io.c:707
182
#, c-format
204
#, c-format
183
msgid "%s: Not a regular file, skipping"
205
msgid "%s: Not a regular file, skipping"
184
msgstr "%s: Er ikke en normal fil, udelader"
206
msgstr "%s: Er ikke en normal fil, udelader"
185
207
186
#: src/xz/file_io.c:688
208
#: src/xz/file_io.c:724
187
#, c-format
209
#, c-format
188
msgid "%s: File has setuid or setgid bit set, skipping"
210
msgid "%s: File has setuid or setgid bit set, skipping"
189
msgstr "%s: Filen har setuid- eller setgid-bitsæt, udelader"
211
msgstr "%s: Filen har setuid- eller setgid-bitsæt, udelader"
190
212
191
#: src/xz/file_io.c:695
213
#: src/xz/file_io.c:731
192
#, c-format
214
#, c-format
193
msgid "%s: File has sticky bit set, skipping"
215
msgid "%s: File has sticky bit set, skipping"
194
msgstr "%s: Fil har klæbende bitsæt, udelader"
216
msgstr "%s: Fil har klæbende bitsæt, udelader"
195
217
196
#: src/xz/file_io.c:702
218
#: src/xz/file_io.c:738
197
#, c-format
219
#, c-format
198
msgid "%s: Input file has more than one hard link, skipping"
220
msgid "%s: Input file has more than one hard link, skipping"
199
msgstr "%s: Inddatafil har mere end en hård henvisning, udelader"
221
msgstr "%s: Inddatafil har mere end en hård henvisning, udelader"
200
222
201
#: src/xz/file_io.c:792
223
#: src/xz/file_io.c:780
224
msgid "Empty filename, skipping"
225
msgstr "Tomt filnavn, udelader"
226
227
#: src/xz/file_io.c:834
202
#, c-format
228
#, c-format
203
msgid "Error restoring the status flags to standard input: %s"
229
msgid "Error restoring the status flags to standard input: %s"
204
msgstr "Der opstod en fejl under gendannelse af statusflagene til standardind: %s"
230
msgstr "Der opstod en fejl under gendannelse af statusflagene til standardind: %s"
205
231
206
#: src/xz/file_io.c:840
232
#: src/xz/file_io.c:882
207
#, c-format
233
#, c-format
208
msgid "Error getting the file status flags from standard output: %s"
234
msgid "Error getting the file status flags from standard output: %s"
209
msgstr "Der opstod en fejl under indhentelse af filstatusflag fra standardud: %s"
235
msgstr "Der opstod en fejl under indhentelse af filstatusflag fra standardud: %s"
210
236
211
#: src/xz/file_io.c:1018
237
#: src/xz/file_io.c:1060
212
#, c-format
238
#, c-format
213
msgid "Error restoring the O_APPEND flag to standard output: %s"
239
msgid "Error restoring the O_APPEND flag to standard output: %s"
214
msgstr "Der opstod en fejl under gendannelse af flaget O_APPEND til standardud: %s"
240
msgstr "Der opstod en fejl under gendannelse af flaget O_APPEND til standardud: %s"
215
241
216
#: src/xz/file_io.c:1030
242
#: src/xz/file_io.c:1072
217
#, c-format
243
#, c-format
218
msgid "%s: Closing the file failed: %s"
244
msgid "%s: Closing the file failed: %s"
219
msgstr "%s: Lukning af filen fejlede: %s"
245
msgstr "%s: Lukning af filen fejlede: %s"
220
246
221
#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
247
#: src/xz/file_io.c:1108 src/xz/file_io.c:1371
222
#, c-format
248
#, c-format
223
msgid "%s: Seeking failed when trying to create a sparse file: %s"
249
msgid "%s: Seeking failed when trying to create a sparse file: %s"
224
msgstr "%s: Søgning fejlede under forsøg på at oprette en tynd fil: %s"
250
msgstr "%s: Søgning fejlede under forsøg på at oprette en tynd fil: %s"
225
251
226
#: src/xz/file_io.c:1167
252
#: src/xz/file_io.c:1209
227
#, c-format
253
#, c-format
228
msgid "%s: Read error: %s"
254
msgid "%s: Read error: %s"
229
msgstr "%s: Læsefejl: %s"
255
msgstr "%s: Læsefejl: %s"
230
256
231
#: src/xz/file_io.c:1191
257
#: src/xz/file_io.c:1239
232
#, c-format
258
#, c-format
233
msgid "%s: Error seeking the file: %s"
259
msgid "%s: Error seeking the file: %s"
234
msgstr "%s: Der opstod en fejl under søgning efter filen: %s"
260
msgstr "%s: Der opstod en fejl under søgning efter filen: %s"
235
261
236
#: src/xz/file_io.c:1201
262
#: src/xz/file_io.c:1263
237
#, c-format
263
#, c-format
238
msgid "%s: Unexpected end of file"
264
msgid "%s: Unexpected end of file"
239
msgstr "%s: Uventet filafslutning"
265
msgstr "%s: Uventet filafslutning"
240
266
241
#: src/xz/file_io.c:1260
267
#: src/xz/file_io.c:1322
242
#, c-format
268
#, c-format
243
msgid "%s: Write error: %s"
269
msgid "%s: Write error: %s"
244
msgstr "%s: Skrivefejl: %s"
270
msgstr "%s: Skrivefejl: %s"
245
271
246
#: src/xz/hardware.c:137
272
#: src/xz/hardware.c:238
247
msgid "Disabled"
273
msgid "Disabled"
248
msgstr "Deaktiveret"
274
msgstr "Deaktiveret"
249
275
250
#. TRANSLATORS: Test with "xz --info-memory" to see if
276
#: src/xz/hardware.c:269
251
#. the alignment looks nice.
277
#, fuzzy
252
#: src/xz/hardware.c:156
278
#| msgid "Total amount of physical memory (RAM): "
253
msgid "Total amount of physical memory (RAM): "
279
msgid "Amount of physical memory (RAM):"
254
msgstr "Samlet mængde fysisk hukommelse (RAM):           "
280
msgstr "Samlet mængde fysisk hukommelse (RAM):           "
255
281
256
#: src/xz/hardware.c:158
282
#: src/xz/hardware.c:270
257
msgid "Memory usage limit for compression:    "
283
msgid "Number of processor threads:"
258
msgstr "Grænse for hukommelsesforbrug til komprimering:  "
284
msgstr ""
259
285
260
#: src/xz/hardware.c:160
286
#: src/xz/hardware.c:271
261
msgid "Memory usage limit for decompression:  "
287
msgid "Compression:"
288
msgstr ""
289
290
#: src/xz/hardware.c:272
291
msgid "Decompression:"
292
msgstr ""
293
294
#: src/xz/hardware.c:273
295
#, fuzzy
296
#| msgid "Memory usage limit for decompression:  "
297
msgid "Multi-threaded decompression:"
262
msgstr "Grænse for hukommelsesforbug til dekomprimering: "
298
msgstr "Grænse for hukommelsesforbug til dekomprimering: "
263
299
300
#: src/xz/hardware.c:274
301
msgid "Default for -T0:"
302
msgstr ""
303
304
#: src/xz/hardware.c:292
305
msgid "Hardware information:"
306
msgstr ""
307
308
#: src/xz/hardware.c:299
309
#, fuzzy
310
#| msgid "Memory usage limit reached"
311
msgid "Memory usage limits:"
312
msgstr "Begrænsning på brug af hukommelse er nået"
313
314
#: src/xz/list.c:68
315
msgid "Streams:"
316
msgstr ""
317
318
#: src/xz/list.c:69
319
msgid "Blocks:"
320
msgstr ""
321
322
#: src/xz/list.c:70
323
#, fuzzy
324
#| msgid "  Compressed size:    %s\n"
325
msgid "Compressed size:"
326
msgstr "  Komprimeret str.:   %s\n"
327
328
#: src/xz/list.c:71
329
#, fuzzy
330
#| msgid "  Uncompressed size:  %s\n"
331
msgid "Uncompressed size:"
332
msgstr "  Ukomprimeret str.:  %s\n"
333
334
#: src/xz/list.c:72
335
msgid "Ratio:"
336
msgstr ""
337
338
#: src/xz/list.c:73
339
msgid "Check:"
340
msgstr ""
341
342
#: src/xz/list.c:74
343
#, fuzzy
344
#| msgid "  Stream padding:     %s\n"
345
msgid "Stream Padding:"
346
msgstr "  Strømfyld:          %s\n"
347
348
#: src/xz/list.c:75
349
#, fuzzy
350
#| msgid "  Memory needed:      %s MiB\n"
351
msgid "Memory needed:"
352
msgstr "  Hukommelse krævet:  %s MiB\n"
353
354
#: src/xz/list.c:76
355
#, fuzzy
356
#| msgid "  Sizes in headers:   %s\n"
357
msgid "Sizes in headers:"
358
msgstr "  Størrelser i teksthoveder: %s\n"
359
360
#: src/xz/list.c:79
361
#, fuzzy
362
#| msgid "  Number of files:    %s\n"
363
msgid "Number of files:"
364
msgstr "  Antal filer:        %s\n"
365
366
#: src/xz/list.c:122
367
msgid "Stream"
368
msgstr ""
369
370
#: src/xz/list.c:123
371
msgid "Block"
372
msgstr ""
373
374
#: src/xz/list.c:124
375
msgid "Blocks"
376
msgstr ""
377
378
#: src/xz/list.c:125
379
msgid "CompOffset"
380
msgstr ""
381
382
#: src/xz/list.c:126
383
msgid "UncompOffset"
384
msgstr ""
385
386
#: src/xz/list.c:127
387
msgid "CompSize"
388
msgstr ""
389
390
#: src/xz/list.c:128
391
msgid "UncompSize"
392
msgstr ""
393
394
#: src/xz/list.c:129
395
#, fuzzy
396
#| msgid "Totals:"
397
msgid "TotalSize"
398
msgstr "I alt:"
399
400
#: src/xz/list.c:130
401
msgid "Ratio"
402
msgstr ""
403
404
#: src/xz/list.c:131
405
msgid "Check"
406
msgstr ""
407
408
#: src/xz/list.c:132
409
msgid "CheckVal"
410
msgstr ""
411
412
#: src/xz/list.c:133
413
msgid "Padding"
414
msgstr ""
415
416
#: src/xz/list.c:134
417
msgid "Header"
418
msgstr ""
419
420
#: src/xz/list.c:135
421
msgid "Flags"
422
msgstr ""
423
424
#: src/xz/list.c:136
425
msgid "MemUsage"
426
msgstr ""
427
428
#: src/xz/list.c:137
429
msgid "Filters"
430
msgstr ""
431
264
#. TRANSLATORS: Indicates that there is no integrity check.
432
#. TRANSLATORS: Indicates that there is no integrity check.
265
#. This string is used in tables, so the width must not
433
#. This string is used in tables. In older xz version this
266
#. exceed ten columns with a fixed-width font.
434
#. string was limited to ten columns in a fixed-width font, but
267
#: src/xz/list.c:65
435
#. nowadays there is no strict length restriction anymore.
436
#: src/xz/list.c:169
268
msgid "None"
437
msgid "None"
269
msgstr "Ingen"
438
msgstr "Ingen"
270
439
271
#. TRANSLATORS: Indicates that integrity check name is not known,
440
#. TRANSLATORS: Indicates that integrity check name is not known,
272
#. but the Check ID is known (here 2). This and other "Unknown-N"
441
#. but the Check ID is known (here 2). In older xz version these
273
#. strings are used in tables, so the width must not exceed ten
442
#. strings were limited to ten columns in a fixed-width font, but
274
#. columns with a fixed-width font. It's OK to omit the dash if
443
#. nowadays there is no strict length restriction anymore.
275
#. you need space for one extra letter, but don't use spaces.
444
#: src/xz/list.c:175
276
#: src/xz/list.c:72
277
msgid "Unknown-2"
445
msgid "Unknown-2"
278
msgstr "Ukendt-2"
446
msgstr "Ukendt-2"
279
447
280
#: src/xz/list.c:73
448
#: src/xz/list.c:176
281
msgid "Unknown-3"
449
msgid "Unknown-3"
282
msgstr "Ukendt-3"
450
msgstr "Ukendt-3"
283
451
284
#: src/xz/list.c:75
452
#: src/xz/list.c:178
285
msgid "Unknown-5"
453
msgid "Unknown-5"
286
msgstr "Ukendt-5"
454
msgstr "Ukendt-5"
287
455
288
#: src/xz/list.c:76
456
#: src/xz/list.c:179
289
msgid "Unknown-6"
457
msgid "Unknown-6"
290
msgstr "Ukendt-6"
458
msgstr "Ukendt-6"
291
459
292
#: src/xz/list.c:77
460
#: src/xz/list.c:180
293
msgid "Unknown-7"
461
msgid "Unknown-7"
294
msgstr "Ukendt-7"
462
msgstr "Ukendt-7"
295
463
296
#: src/xz/list.c:78
464
#: src/xz/list.c:181
297
msgid "Unknown-8"
465
msgid "Unknown-8"
298
msgstr "Ukendt-8"
466
msgstr "Ukendt-8"
299
467
300
#: src/xz/list.c:79
468
#: src/xz/list.c:182
301
msgid "Unknown-9"
469
msgid "Unknown-9"
302
msgstr "Ukendt-9"
470
msgstr "Ukendt-9"
303
471
304
#: src/xz/list.c:81
472
#: src/xz/list.c:184
305
msgid "Unknown-11"
473
msgid "Unknown-11"
306
msgstr "Ukendt-11"
474
msgstr "Ukendt-11"
307
475
308
#: src/xz/list.c:82
476
#: src/xz/list.c:185
309
msgid "Unknown-12"
477
msgid "Unknown-12"
310
msgstr "Ukendt-12"
478
msgstr "Ukendt-12"
311
479
312
#: src/xz/list.c:83
480
#: src/xz/list.c:186
313
msgid "Unknown-13"
481
msgid "Unknown-13"
314
msgstr "Ukendt-13"
482
msgstr "Ukendt-13"
315
483
316
#: src/xz/list.c:84
484
#: src/xz/list.c:187
317
msgid "Unknown-14"
485
msgid "Unknown-14"
318
msgstr "Ukendt-14"
486
msgstr "Ukendt-14"
319
487
320
#: src/xz/list.c:85
488
#: src/xz/list.c:188
321
msgid "Unknown-15"
489
msgid "Unknown-15"
322
msgstr "Ukendt-15"
490
msgstr "Ukendt-15"
323
491
324
#: src/xz/list.c:153
492
#: src/xz/list.c:351
325
#, c-format
493
#, c-format
326
msgid "%s: File is empty"
494
msgid "%s: File is empty"
327
msgstr "%s: Filen er tom"
495
msgstr "%s: Filen er tom"
328
496
329
#: src/xz/list.c:158
497
#: src/xz/list.c:356
330
#, c-format
498
#, c-format
331
msgid "%s: Too small to be a valid .xz file"
499
msgid "%s: Too small to be a valid .xz file"
332
msgstr "%s: For lille til at være en gyldig .xz-fil"
500
msgstr "%s: For lille til at være en gyldig .xz-fil"
Lines 335-459 Link Here
335
#. to Ratio, the columns are right aligned. Check and Filename
503
#. to Ratio, the columns are right aligned. Check and Filename
336
#. are left aligned. If you need longer words, it's OK to
504
#. are left aligned. If you need longer words, it's OK to
337
#. use two lines here. Test with "xz -l foo.xz".
505
#. use two lines here. Test with "xz -l foo.xz".
338
#: src/xz/list.c:677
506
#: src/xz/list.c:730
339
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
507
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
340
msgstr ""
508
msgstr ""
341
509
342
#: src/xz/list.c:717
510
#: src/xz/list.c:1025 src/xz/list.c:1203
343
#, c-format
344
msgid "  Streams:            %s\n"
345
msgstr "  Strømme:            %s\n"
346
347
#: src/xz/list.c:719
348
#, c-format
349
msgid "  Blocks:             %s\n"
350
msgstr "  Blokke:             %s\n"
351
352
#: src/xz/list.c:721
353
#, c-format
354
msgid "  Compressed size:    %s\n"
355
msgstr "  Komprimeret str.:   %s\n"
356
357
#: src/xz/list.c:724
358
#, c-format
359
msgid "  Uncompressed size:  %s\n"
360
msgstr "  Ukomprimeret str.:  %s\n"
361
362
#: src/xz/list.c:727
363
#, c-format
364
msgid "  Ratio:              %s\n"
365
msgstr "  Pakkeforhold:       %s\n"
366
367
#: src/xz/list.c:729
368
#, c-format
369
msgid "  Check:              %s\n"
370
msgstr "  Kontrol:            %s\n"
371
372
#: src/xz/list.c:730
373
#, c-format
374
msgid "  Stream padding:     %s\n"
375
msgstr "  Strømfyld:          %s\n"
376
377
#. TRANSLATORS: The second line is column headings. All except
378
#. Check are right aligned; Check is left aligned. Test with
379
#. "xz -lv foo.xz".
380
#: src/xz/list.c:758
381
msgid ""
382
"  Streams:\n"
383
"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
384
msgstr ""
385
"  Strømme:\n"
386
"     Strøm    Blokke      KompForsk.    DekompForsk.        KompStr.      DekompStr.  Forh.  Kontrol       Fyld"
387
388
#. TRANSLATORS: The second line is column headings. All
389
#. except Check are right aligned; Check is left aligned.
390
#: src/xz/list.c:813
391
#, c-format
392
msgid ""
393
"  Blocks:\n"
394
"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
395
msgstr ""
396
"  Blokke:\n"
397
"     Strøm     Blok       KompForsk.    DekompForsk.        Ialtstr.      DekompStr.  Forh.  Kontrol"
398
399
#. TRANSLATORS: These are additional column headings
400
#. for the most verbose listing mode. CheckVal
401
#. (Check value), Flags, and Filters are left aligned.
402
#. Header (Block Header Size), CompSize, and MemUsage
403
#. are right aligned. %*s is replaced with 0-120
404
#. spaces to make the CheckVal column wide enough.
405
#. Test with "xz -lvv foo.xz".
406
#: src/xz/list.c:825
407
#, c-format
408
msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
409
msgstr "    KontrolVær %*sTeksth Flag         Kompstr.    HukForb.  Filtre"
410
411
#: src/xz/list.c:903 src/xz/list.c:1078
412
#, c-format
413
msgid "  Memory needed:      %s MiB\n"
414
msgstr "  Hukommelse krævet:  %s MiB\n"
415
416
#: src/xz/list.c:905 src/xz/list.c:1080
417
#, c-format
418
msgid "  Sizes in headers:   %s\n"
419
msgstr "  Størrelser i teksthoveder: %s\n"
420
421
#: src/xz/list.c:906 src/xz/list.c:1081
422
msgid "Yes"
511
msgid "Yes"
423
msgstr "Ja"
512
msgstr "Ja"
424
513
425
#: src/xz/list.c:906 src/xz/list.c:1081
514
#: src/xz/list.c:1025 src/xz/list.c:1203
426
msgid "No"
515
msgid "No"
427
msgstr "Nej"
516
msgstr "Nej"
428
517
429
#: src/xz/list.c:907 src/xz/list.c:1082
518
#: src/xz/list.c:1027 src/xz/list.c:1205
430
#, c-format
519
#, c-format
431
msgid "  Minimum XZ Utils version: %s\n"
520
msgid "  Minimum XZ Utils version: %s\n"
432
msgstr "  Minimum for XZ Utils-version: %s\n"
521
msgstr "  Minimum for XZ Utils-version: %s\n"
433
522
434
#. TRANSLATORS: %s is an integer. Only the plural form of this
523
#. TRANSLATORS: %s is an integer. Only the plural form of this
435
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
524
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
436
#: src/xz/list.c:1057
525
#: src/xz/list.c:1178
437
#, c-format
526
#, c-format
438
msgid "%s file\n"
527
msgid "%s file\n"
439
msgid_plural "%s files\n"
528
msgid_plural "%s files\n"
440
msgstr[0] "%s fil\n"
529
msgstr[0] "%s fil\n"
441
msgstr[1] "%s filer\n"
530
msgstr[1] "%s filer\n"
442
531
443
#: src/xz/list.c:1070
532
#: src/xz/list.c:1191
444
msgid "Totals:"
533
msgid "Totals:"
445
msgstr "I alt:"
534
msgstr "I alt:"
446
535
447
#: src/xz/list.c:1071
536
#: src/xz/list.c:1269
448
#, c-format
449
msgid "  Number of files:    %s\n"
450
msgstr "  Antal filer:        %s\n"
451
452
#: src/xz/list.c:1146
453
msgid "--list works only on .xz files (--format=xz or --format=auto)"
537
msgid "--list works only on .xz files (--format=xz or --format=auto)"
454
msgstr ""
538
msgstr ""
455
539
456
#: src/xz/list.c:1152
540
#: src/xz/list.c:1275
457
msgid "--list does not support reading from standard input"
541
msgid "--list does not support reading from standard input"
458
msgstr "--list understøtter ikke læsning fra standardind"
542
msgstr "--list understøtter ikke læsning fra standardind"
459
543
Lines 472-482 Link Here
472
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
556
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
473
msgstr ""
557
msgstr ""
474
558
475
#: src/xz/main.c:174
559
#: src/xz/main.c:188
476
msgid "Compression and decompression with --robot are not supported yet."
560
msgid "Compression and decompression with --robot are not supported yet."
477
msgstr "Komprimering og dekomprimering med --robot er endnu ikke understøttet."
561
msgstr "Komprimering og dekomprimering med --robot er endnu ikke understøttet."
478
562
479
#: src/xz/main.c:252
563
#: src/xz/main.c:266
480
msgid "Cannot read data from standard input when reading filenames from standard input"
564
msgid "Cannot read data from standard input when reading filenames from standard input"
481
msgstr ""
565
msgstr ""
482
566
Lines 484-551 Link Here
484
#. of the line in messages. Usually it becomes "xz: ".
568
#. of the line in messages. Usually it becomes "xz: ".
485
#. This is a translatable string because French needs
569
#. This is a translatable string because French needs
486
#. a space before a colon.
570
#. a space before a colon.
487
#: src/xz/message.c:728
571
#: src/xz/message.c:725
488
#, c-format
572
#, c-format
489
msgid "%s: "
573
msgid "%s: "
490
msgstr "%s: "
574
msgstr "%s: "
491
575
492
#: src/xz/message.c:791 src/xz/message.c:841
576
#: src/xz/message.c:797 src/xz/message.c:856
493
msgid "Internal error (bug)"
577
msgid "Internal error (bug)"
494
msgstr "Intern fejl (fejl)"
578
msgstr "Intern fejl (fejl)"
495
579
496
#: src/xz/message.c:798
580
#: src/xz/message.c:804
497
msgid "Cannot establish signal handlers"
581
msgid "Cannot establish signal handlers"
498
msgstr "Kan ikke etbalere signalhåndteringer"
582
msgstr "Kan ikke etbalere signalhåndteringer"
499
583
500
#: src/xz/message.c:807
584
#: src/xz/message.c:813
501
msgid "No integrity check; not verifying file integrity"
585
msgid "No integrity check; not verifying file integrity"
502
msgstr "Ingen integritetkontrol; verificerer ikke filintegritet"
586
msgstr "Ingen integritetkontrol; verificerer ikke filintegritet"
503
587
504
#: src/xz/message.c:810
588
#: src/xz/message.c:816
505
msgid "Unsupported type of integrity check; not verifying file integrity"
589
msgid "Unsupported type of integrity check; not verifying file integrity"
506
msgstr ""
590
msgstr ""
507
591
508
#: src/xz/message.c:817
592
#: src/xz/message.c:823
509
msgid "Memory usage limit reached"
593
msgid "Memory usage limit reached"
510
msgstr "Begrænsning på brug af hukommelse er nået"
594
msgstr "Begrænsning på brug af hukommelse er nået"
511
595
512
#: src/xz/message.c:820
596
#: src/xz/message.c:826
513
msgid "File format not recognized"
597
msgid "File format not recognized"
514
msgstr "Filformatet blev ikke genkendt"
598
msgstr "Filformatet blev ikke genkendt"
515
599
516
#: src/xz/message.c:823
600
#: src/xz/message.c:829
517
msgid "Unsupported options"
601
msgid "Unsupported options"
518
msgstr "Tilvalg er ikke understøttede"
602
msgstr "Tilvalg er ikke understøttede"
519
603
520
#: src/xz/message.c:826
604
#: src/xz/message.c:832
521
msgid "Compressed data is corrupt"
605
msgid "Compressed data is corrupt"
522
msgstr "Komprimerede data er ødelagte"
606
msgstr "Komprimerede data er ødelagte"
523
607
524
#: src/xz/message.c:829
608
#: src/xz/message.c:835
525
msgid "Unexpected end of input"
609
msgid "Unexpected end of input"
526
msgstr "Uventet afslutning på inddata"
610
msgstr "Uventet afslutning på inddata"
527
611
528
#: src/xz/message.c:862
612
#: src/xz/message.c:877
529
#, c-format
613
#, c-format
530
msgid "%s MiB of memory is required. The limiter is disabled."
614
msgid "%s MiB of memory is required. The limiter is disabled."
531
msgstr "%s MiB hukommelse er krævet. Begrænseren er deaktiveret."
615
msgstr "%s MiB hukommelse er krævet. Begrænseren er deaktiveret."
532
616
533
#: src/xz/message.c:890
617
#: src/xz/message.c:905
534
#, c-format
618
#, c-format
535
msgid "%s MiB of memory is required. The limit is %s."
619
msgid "%s MiB of memory is required. The limit is %s."
536
msgstr "%s MiB hukommelse er krævet. Begrænsningen er %s."
620
msgstr "%s MiB hukommelse er krævet. Begrænsningen er %s."
537
621
538
#: src/xz/message.c:1057
622
#: src/xz/message.c:924
539
#, c-format
623
#, c-format
540
msgid "%s: Filter chain: %s\n"
624
msgid "%s: Filter chain: %s\n"
541
msgstr "%s: Filterkæde: %s\n"
625
msgstr "%s: Filterkæde: %s\n"
542
626
543
#: src/xz/message.c:1067
627
#: src/xz/message.c:935
544
#, c-format
628
#, c-format
545
msgid "Try `%s --help' for more information."
629
msgid "Try `%s --help' for more information."
546
msgstr "Prøv »%s --help« for yderligere information."
630
msgstr "Prøv »%s --help« for yderligere information."
547
631
548
#: src/xz/message.c:1093
632
#: src/xz/message.c:961
549
#, c-format
633
#, c-format
550
msgid ""
634
msgid ""
551
"Usage: %s [OPTION]... [FILE]...\n"
635
"Usage: %s [OPTION]... [FILE]...\n"
Lines 553-569 Link Here
553
"\n"
637
"\n"
554
msgstr ""
638
msgstr ""
555
639
556
#: src/xz/message.c:1100
640
#: src/xz/message.c:968
557
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
641
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
558
msgstr ""
642
msgstr ""
559
"Obligatoriske argumenter til lange tilvalg er også obligatoriske for korte\n"
643
"Obligatoriske argumenter til lange tilvalg er også obligatoriske for korte\n"
560
"tilvalg.\n"
644
"tilvalg.\n"
561
645
562
#: src/xz/message.c:1104
646
#: src/xz/message.c:972
563
msgid " Operation mode:\n"
647
msgid " Operation mode:\n"
564
msgstr " Operationstilstand:\n"
648
msgstr " Operationstilstand:\n"
565
649
566
#: src/xz/message.c:1107
650
#: src/xz/message.c:975
567
msgid ""
651
msgid ""
568
"  -z, --compress      force compression\n"
652
"  -z, --compress      force compression\n"
569
"  -d, --decompress    force decompression\n"
653
"  -d, --decompress    force decompression\n"
Lines 571-577 Link Here
571
"  -l, --list          list information about .xz files"
655
"  -l, --list          list information about .xz files"
572
msgstr ""
656
msgstr ""
573
657
574
#: src/xz/message.c:1113
658
#: src/xz/message.c:981
575
msgid ""
659
msgid ""
576
"\n"
660
"\n"
577
" Operation modifiers:\n"
661
" Operation modifiers:\n"
Lines 579-598 Link Here
579
"\n"
663
"\n"
580
"Operationsændrere:\n"
664
"Operationsændrere:\n"
581
665
582
#: src/xz/message.c:1116
666
#: src/xz/message.c:984
583
msgid ""
667
msgid ""
584
"  -k, --keep          keep (don't delete) input files\n"
668
"  -k, --keep          keep (don't delete) input files\n"
585
"  -f, --force         force overwrite of output file and (de)compress links\n"
669
"  -f, --force         force overwrite of output file and (de)compress links\n"
586
"  -c, --stdout        write to standard output and don't delete input files"
670
"  -c, --stdout        write to standard output and don't delete input files"
587
msgstr ""
671
msgstr ""
588
672
589
#: src/xz/message.c:1122
673
#: src/xz/message.c:993
590
msgid ""
674
msgid ""
591
"      --single-stream decompress only the first stream, and silently\n"
675
"      --single-stream decompress only the first stream, and silently\n"
592
"                      ignore possible remaining input data"
676
"                      ignore possible remaining input data"
593
msgstr ""
677
msgstr ""
594
678
595
#: src/xz/message.c:1125
679
#: src/xz/message.c:996
596
msgid ""
680
msgid ""
597
"      --no-sparse     do not create sparse files when decompressing\n"
681
"      --no-sparse     do not create sparse files when decompressing\n"
598
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
682
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
Lines 602-658 Link Here
602
"      --files0[=FILE] like --files but use the null character as terminator"
686
"      --files0[=FILE] like --files but use the null character as terminator"
603
msgstr ""
687
msgstr ""
604
688
605
#: src/xz/message.c:1134
689
#: src/xz/message.c:1005
606
msgid ""
690
msgid ""
607
"\n"
691
"\n"
608
" Basic file format and compression options:\n"
692
" Basic file format and compression options:\n"
609
msgstr ""
693
msgstr ""
610
694
611
#: src/xz/message.c:1136
695
#: src/xz/message.c:1007
612
msgid ""
696
msgid ""
613
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
697
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
614
"                      `auto' (default), `xz', `lzma', and `raw'\n"
698
"                      `auto' (default), `xz', `lzma', `lzip', and `raw'\n"
615
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
699
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
616
"                      `crc32', `crc64' (default), or `sha256'"
700
"                      `crc32', `crc64' (default), or `sha256'"
617
msgstr ""
701
msgstr ""
618
702
619
#: src/xz/message.c:1141
703
#: src/xz/message.c:1012
620
msgid "      --ignore-check  don't verify the integrity check when decompressing"
704
msgid "      --ignore-check  don't verify the integrity check when decompressing"
621
msgstr ""
705
msgstr ""
622
706
623
#: src/xz/message.c:1145
707
#: src/xz/message.c:1016
624
msgid ""
708
msgid ""
625
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
709
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
626
"                      decompressor memory usage into account before using 7-9!"
710
"                      decompressor memory usage into account before using 7-9!"
627
msgstr ""
711
msgstr ""
628
712
629
#: src/xz/message.c:1149
713
#: src/xz/message.c:1020
630
msgid ""
714
msgid ""
631
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
715
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
632
"                      does not affect decompressor memory requirements"
716
"                      does not affect decompressor memory requirements"
633
msgstr ""
717
msgstr ""
634
718
635
#: src/xz/message.c:1153
719
#: src/xz/message.c:1024
636
msgid ""
720
msgid ""
637
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
721
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
638
"                      to use as many threads as there are processor cores"
722
"                      to use as many threads as there are processor cores"
639
msgstr ""
723
msgstr ""
640
724
641
#: src/xz/message.c:1158
725
#: src/xz/message.c:1029
642
msgid ""
726
msgid ""
643
"      --block-size=SIZE\n"
727
"      --block-size=SIZE\n"
644
"                      start a new .xz block after every SIZE bytes of input;\n"
728
"                      start a new .xz block after every SIZE bytes of input;\n"
645
"                      use this to set the block size for threaded compression"
729
"                      use this to set the block size for threaded compression"
646
msgstr ""
730
msgstr ""
647
731
648
#: src/xz/message.c:1162
732
#: src/xz/message.c:1033
649
msgid ""
733
msgid ""
650
"      --block-list=SIZES\n"
734
"      --block-list=SIZES\n"
651
"                      start a new .xz block after the given comma-separated\n"
735
"                      start a new .xz block after the given comma-separated\n"
652
"                      intervals of uncompressed data"
736
"                      intervals of uncompressed data"
653
msgstr ""
737
msgstr ""
654
738
655
#: src/xz/message.c:1166
739
#: src/xz/message.c:1037
656
msgid ""
740
msgid ""
657
"      --flush-timeout=TIMEOUT\n"
741
"      --flush-timeout=TIMEOUT\n"
658
"                      when compressing, if more than TIMEOUT milliseconds has\n"
742
"                      when compressing, if more than TIMEOUT milliseconds has\n"
Lines 660-688 Link Here
660
"                      would block, all pending data is flushed out"
744
"                      would block, all pending data is flushed out"
661
msgstr ""
745
msgstr ""
662
746
663
#: src/xz/message.c:1172
747
#: src/xz/message.c:1043
664
#, no-c-format
748
#, no-c-format
665
msgid ""
749
msgid ""
666
"      --memlimit-compress=LIMIT\n"
750
"      --memlimit-compress=LIMIT\n"
667
"      --memlimit-decompress=LIMIT\n"
751
"      --memlimit-decompress=LIMIT\n"
752
"      --memlimit-mt-decompress=LIMIT\n"
668
"  -M, --memlimit=LIMIT\n"
753
"  -M, --memlimit=LIMIT\n"
669
"                      set memory usage limit for compression, decompression,\n"
754
"                      set memory usage limit for compression, decompression,\n"
670
"                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
755
"                      threaded decompression, or all of these; LIMIT is in\n"
756
"                      bytes, % of RAM, or 0 for defaults"
671
msgstr ""
757
msgstr ""
672
758
673
#: src/xz/message.c:1179
759
#: src/xz/message.c:1052
674
msgid ""
760
msgid ""
675
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
761
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
676
"                      give an error instead of adjusting the settings downwards"
762
"                      give an error instead of adjusting the settings downwards"
677
msgstr ""
763
msgstr ""
678
764
679
#: src/xz/message.c:1185
765
#: src/xz/message.c:1058
680
msgid ""
766
msgid ""
681
"\n"
767
"\n"
682
" Custom filter chain for compression (alternative for using presets):"
768
" Custom filter chain for compression (alternative for using presets):"
683
msgstr ""
769
msgstr ""
684
770
685
#: src/xz/message.c:1194
771
#: src/xz/message.c:1067
686
msgid ""
772
msgid ""
687
"\n"
773
"\n"
688
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
774
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
Lines 698-717 Link Here
698
"                        depth=NUM  maximum search depth; 0=automatic (default)"
784
"                        depth=NUM  maximum search depth; 0=automatic (default)"
699
msgstr ""
785
msgstr ""
700
786
701
#: src/xz/message.c:1209
787
#: src/xz/message.c:1082
702
msgid ""
788
msgid ""
703
"\n"
789
"\n"
704
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
790
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
791
"  --arm[=OPTS]        ARM BCJ filter\n"
792
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter\n"
793
"  --arm64[=OPTS]      ARM64 BCJ filter\n"
705
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
794
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
706
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
795
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
707
"  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
708
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
709
"  --sparc[=OPTS]      SPARC BCJ filter\n"
796
"  --sparc[=OPTS]      SPARC BCJ filter\n"
710
"                      Valid OPTS for all BCJ filters:\n"
797
"                      Valid OPTS for all BCJ filters:\n"
711
"                        start=NUM  start offset for conversions (default=0)"
798
"                        start=NUM  start offset for conversions (default=0)"
712
msgstr ""
799
msgstr ""
713
800
714
#: src/xz/message.c:1221
801
#: src/xz/message.c:1095
715
msgid ""
802
msgid ""
716
"\n"
803
"\n"
717
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
804
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
Lines 719-725 Link Here
719
"                                   from each other (1-256; 1)"
806
"                                   from each other (1-256; 1)"
720
msgstr ""
807
msgstr ""
721
808
722
#: src/xz/message.c:1229
809
#: src/xz/message.c:1103
723
msgid ""
810
msgid ""
724
"\n"
811
"\n"
725
" Other options:\n"
812
" Other options:\n"
Lines 727-755 Link Here
727
"\n"
814
"\n"
728
"Andre tilvalg:\n"
815
"Andre tilvalg:\n"
729
816
730
#: src/xz/message.c:1232
817
#: src/xz/message.c:1106
731
msgid ""
818
msgid ""
732
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
819
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
733
"  -v, --verbose       be verbose; specify twice for even more verbose"
820
"  -v, --verbose       be verbose; specify twice for even more verbose"
734
msgstr ""
821
msgstr ""
735
822
736
#: src/xz/message.c:1237
823
#: src/xz/message.c:1111
737
msgid "  -Q, --no-warn       make warnings not affect the exit status"
824
msgid "  -Q, --no-warn       make warnings not affect the exit status"
738
msgstr ""
825
msgstr ""
739
826
740
#: src/xz/message.c:1239
827
#: src/xz/message.c:1113
741
msgid "      --robot         use machine-parsable messages (useful for scripts)"
828
msgid "      --robot         use machine-parsable messages (useful for scripts)"
742
msgstr ""
829
msgstr ""
743
"      --robot         brug beskeder der kan fortolkes maskinelt (nyttigt\n"
830
"      --robot         brug beskeder der kan fortolkes maskinelt (nyttigt\n"
744
"                      for skripter)"
831
"                      for skripter)"
745
832
746
#: src/xz/message.c:1242
833
#: src/xz/message.c:1116
747
msgid ""
834
msgid ""
748
"      --info-memory   display the total amount of RAM and the currently active\n"
835
"      --info-memory   display the total amount of RAM and the currently active\n"
749
"                      memory usage limits, and exit"
836
"                      memory usage limits, and exit"
750
msgstr ""
837
msgstr ""
751
838
752
#: src/xz/message.c:1245
839
#: src/xz/message.c:1119
753
msgid ""
840
msgid ""
754
"  -h, --help          display the short help (lists only the basic options)\n"
841
"  -h, --help          display the short help (lists only the basic options)\n"
755
"  -H, --long-help     display this long help and exit"
842
"  -H, --long-help     display this long help and exit"
Lines 758-764 Link Here
758
"                      tilvalg)\n"
845
"                      tilvalg)\n"
759
"  -H, --long-help     vis den lange hjælpetekst og afslut"
846
"  -H, --long-help     vis den lange hjælpetekst og afslut"
760
847
761
#: src/xz/message.c:1249
848
#: src/xz/message.c:1123
762
msgid ""
849
msgid ""
763
"  -h, --help          display this short help and exit\n"
850
"  -h, --help          display this short help and exit\n"
764
"  -H, --long-help     display the long help (lists also the advanced options)"
851
"  -H, --long-help     display the long help (lists also the advanced options)"
Lines 767-777 Link Here
767
"  -H, --long-help     vis den lange hjælpetekst (viser også de avancerede\n"
854
"  -H, --long-help     vis den lange hjælpetekst (viser også de avancerede\n"
768
"                      tilvalg)"
855
"                      tilvalg)"
769
856
770
#: src/xz/message.c:1254
857
#: src/xz/message.c:1128
771
msgid "  -V, --version       display the version number and exit"
858
msgid "  -V, --version       display the version number and exit"
772
msgstr "  -V, --version       vis versionsnummer og afslut"
859
msgstr "  -V, --version       vis versionsnummer og afslut"
773
860
774
#: src/xz/message.c:1256
861
#: src/xz/message.c:1130
775
msgid ""
862
msgid ""
776
"\n"
863
"\n"
777
"With no FILE, or when FILE is -, read standard input.\n"
864
"With no FILE, or when FILE is -, read standard input.\n"
Lines 783-801 Link Here
783
#. for this package. Please add _another line_ saying
870
#. for this package. Please add _another line_ saying
784
#. "Report translation bugs to <...>\n" with the email or WWW
871
#. "Report translation bugs to <...>\n" with the email or WWW
785
#. address for translation bugs. Thanks.
872
#. address for translation bugs. Thanks.
786
#: src/xz/message.c:1262
873
#: src/xz/message.c:1136
787
#, c-format
874
#, c-format
788
msgid "Report bugs to <%s> (in English or Finnish).\n"
875
msgid "Report bugs to <%s> (in English or Finnish).\n"
789
msgstr ""
876
msgstr ""
790
"Rapporter fejl til <%s> (på engelsk eller finsk).\n"
877
"Rapporter fejl til <%s> (på engelsk eller finsk).\n"
791
"Rapporter oversættelsesfejl til <dansk@dansk-gruppen.dk>.\n"
878
"Rapporter oversættelsesfejl til <dansk@dansk-gruppen.dk>.\n"
792
879
793
#: src/xz/message.c:1264
880
#: src/xz/message.c:1138
794
#, c-format
881
#, c-format
795
msgid "%s home page: <%s>\n"
882
msgid "%s home page: <%s>\n"
796
msgstr "%s hjemmeside: <%s>\n"
883
msgstr "%s hjemmeside: <%s>\n"
797
884
798
#: src/xz/message.c:1268
885
#: src/xz/message.c:1142
799
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
886
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
800
msgstr "DETTE ER EN UDVIKLINGSVERSION - BRUG IKKE I PRODUKTION."
887
msgstr "DETTE ER EN UDVIKLINGSVERSION - BRUG IKKE I PRODUKTION."
801
888
Lines 823-849 Link Here
823
msgid "The sum of lc and lp must not exceed 4"
910
msgid "The sum of lc and lp must not exceed 4"
824
msgstr "Summen af lc og lp må ikke være højere end 4"
911
msgstr "Summen af lc og lp må ikke være højere end 4"
825
912
826
#: src/xz/options.c:359
913
#: src/xz/suffix.c:160
827
#, c-format
914
#, c-format
828
msgid "The selected match finder requires at least nice=%<PRIu32>"
829
msgstr "Den valgte matchfinder kræver mindst nice=%<PRIu32>"
830
831
#: src/xz/suffix.c:133 src/xz/suffix.c:258
832
#, c-format
833
msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
834
msgstr "%s: med --format=raw, --suffix=.SUF er krævet med mindre der skrives til standardud"
835
836
#: src/xz/suffix.c:164
837
#, c-format
838
msgid "%s: Filename has an unknown suffix, skipping"
915
msgid "%s: Filename has an unknown suffix, skipping"
839
msgstr "%s: Filnavn har ukendt endelse, udelader"
916
msgstr "%s: Filnavn har ukendt endelse, udelader"
840
917
841
#: src/xz/suffix.c:185
918
#: src/xz/suffix.c:181
842
#, c-format
919
#, c-format
843
msgid "%s: File already has `%s' suffix, skipping"
920
msgid "%s: File already has `%s' suffix, skipping"
844
msgstr "%s: Filen har allrede endelsen »%s«, udelader."
921
msgstr "%s: Filen har allrede endelsen »%s«, udelader."
845
922
846
#: src/xz/suffix.c:393
923
#: src/xz/suffix.c:388
847
#, c-format
924
#, c-format
848
msgid "%s: Invalid filename suffix"
925
msgid "%s: Invalid filename suffix"
849
msgstr "%s: Ugyldig filnavnendelse"
926
msgstr "%s: Ugyldig filnavnendelse"
Lines 867-881 Link Here
867
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
944
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
868
msgstr "Værdien for tilvalget »%s« skal være i intervallet [%<PRIu64>, %<PRIu64>]"
945
msgstr "Værdien for tilvalget »%s« skal være i intervallet [%<PRIu64>, %<PRIu64>]"
869
946
870
#: src/xz/util.c:267
947
#: src/xz/util.c:269
871
msgid "Empty filename, skipping"
872
msgstr "Tomt filnavn, udelader"
873
874
#: src/xz/util.c:281
875
msgid "Compressed data cannot be read from a terminal"
948
msgid "Compressed data cannot be read from a terminal"
876
msgstr "Komprimerede data kan ikke læses fra en terminal"
949
msgstr "Komprimerede data kan ikke læses fra en terminal"
877
950
878
#: src/xz/util.c:294
951
#: src/xz/util.c:282
879
msgid "Compressed data cannot be written to a terminal"
952
msgid "Compressed data cannot be written to a terminal"
880
msgstr "Komprimerede data kan ikke skrives til en terminal"
953
msgstr "Komprimerede data kan ikke skrives til en terminal"
881
954
Lines 892-894 Link Here
892
965
893
#~ msgid "Sandbox was successfully enabled"
966
#~ msgid "Sandbox was successfully enabled"
894
#~ msgstr "Sandkassen blev aktiveret"
967
#~ msgstr "Sandkassen blev aktiveret"
968
969
#~ msgid "Memory usage limit for compression:    "
970
#~ msgstr "Grænse for hukommelsesforbrug til komprimering:  "
971
972
#, c-format
973
#~ msgid "  Streams:            %s\n"
974
#~ msgstr "  Strømme:            %s\n"
975
976
#, c-format
977
#~ msgid "  Blocks:             %s\n"
978
#~ msgstr "  Blokke:             %s\n"
979
980
#, c-format
981
#~ msgid "  Ratio:              %s\n"
982
#~ msgstr "  Pakkeforhold:       %s\n"
983
984
#, c-format
985
#~ msgid "  Check:              %s\n"
986
#~ msgstr "  Kontrol:            %s\n"
987
988
#~ msgid ""
989
#~ "  Streams:\n"
990
#~ "    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
991
#~ msgstr ""
992
#~ "  Strømme:\n"
993
#~ "     Strøm    Blokke      KompForsk.    DekompForsk.        KompStr.      DekompStr.  Forh.  Kontrol       Fyld"
994
995
#, c-format
996
#~ msgid ""
997
#~ "  Blocks:\n"
998
#~ "    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
999
#~ msgstr ""
1000
#~ "  Blokke:\n"
1001
#~ "     Strøm     Blok       KompForsk.    DekompForsk.        Ialtstr.      DekompStr.  Forh.  Kontrol"
1002
1003
#, c-format
1004
#~ msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
1005
#~ msgstr "    KontrolVær %*sTeksth Flag         Kompstr.    HukForb.  Filtre"
1006
1007
#, c-format
1008
#~ msgid "The selected match finder requires at least nice=%<PRIu32>"
1009
#~ msgstr "Den valgte matchfinder kræver mindst nice=%<PRIu32>"
(-)xz-5.2.5/po/de.po (-269 / +316 lines)
Lines 3-15 Link Here
3
#
3
#
4
# André Noll <maan@tuebingen.mpg.de>, 2010.
4
# André Noll <maan@tuebingen.mpg.de>, 2010.
5
# Anna Henningsen <sqrt@entless.org>, 2015.
5
# Anna Henningsen <sqrt@entless.org>, 2015.
6
# Mario Blättermann <mario.blaettermann@gmail.com>, 2019.
6
# Mario Blättermann <mario.blaettermann@gmail.com>, 2019, 2022.
7
msgid ""
7
msgid ""
8
msgstr ""
8
msgstr ""
9
"Project-Id-Version: xz 5.2.4\n"
9
"Project-Id-Version: xz 5.4.0-pre2\n"
10
"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
10
"Report-Msgid-Bugs-To: xz@tukaani.org\n"
11
"POT-Creation-Date: 2020-03-17 16:29+0200\n"
11
"POT-Creation-Date: 2023-05-04 22:32+0800\n"
12
"PO-Revision-Date: 2019-04-12 11:00+0200\n"
12
"PO-Revision-Date: 2022-12-05 18:55+0100\n"
13
"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
13
"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
14
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
14
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
15
"Language: de\n"
15
"Language: de\n"
Lines 18-119 Link Here
18
"Content-Transfer-Encoding: 8bit\n"
18
"Content-Transfer-Encoding: 8bit\n"
19
"X-Bugs: Report translation errors to the Language-Team address.\n"
19
"X-Bugs: Report translation errors to the Language-Team address.\n"
20
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
20
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
21
"X-Generator: Lokalize 18.12.3\n"
21
"X-Generator: Lokalize 22.08.3\n"
22
22
23
#: src/xz/args.c:63
23
#: src/xz/args.c:77
24
#, c-format
24
#, c-format
25
msgid "%s: Invalid argument to --block-list"
25
msgid "%s: Invalid argument to --block-list"
26
msgstr "%s: Ungültiges Argument für --block-list"
26
msgstr "%s: Ungültiges Argument für --block-list"
27
27
28
#: src/xz/args.c:73
28
#: src/xz/args.c:87
29
#, c-format
29
#, c-format
30
msgid "%s: Too many arguments to --block-list"
30
msgid "%s: Too many arguments to --block-list"
31
msgstr "%s: Zu viele Argumente für --block-list"
31
msgstr "%s: Zu viele Argumente für --block-list"
32
32
33
#: src/xz/args.c:102
33
#: src/xz/args.c:116
34
msgid "0 can only be used as the last element in --block-list"
34
msgid "0 can only be used as the last element in --block-list"
35
msgstr "0 kann nur das letzte Element in --block-list sein"
35
msgstr "0 kann nur das letzte Element in --block-list sein"
36
36
37
#: src/xz/args.c:406
37
#: src/xz/args.c:451
38
#, c-format
38
#, c-format
39
msgid "%s: Unknown file format type"
39
msgid "%s: Unknown file format type"
40
msgstr "%s: Unbekanntes Dateiformat"
40
msgstr "%s: Unbekanntes Dateiformat"
41
41
42
#: src/xz/args.c:429 src/xz/args.c:437
42
#: src/xz/args.c:474 src/xz/args.c:482
43
#, c-format
43
#, c-format
44
msgid "%s: Unsupported integrity check type"
44
msgid "%s: Unsupported integrity check type"
45
msgstr "%s: Integritätsprüfungstyp nicht unterstützt"
45
msgstr "%s: Integritätsprüfungstyp nicht unterstützt"
46
46
47
#: src/xz/args.c:473
47
#: src/xz/args.c:518
48
msgid "Only one file can be specified with `--files' or `--files0'."
48
msgid "Only one file can be specified with `--files' or `--files0'."
49
msgstr "Nur eine Datei kann als Argument für »--files« oder »--files0« angegeben werden."
49
msgstr "Nur eine Datei kann als Argument für »--files« oder »--files0« angegeben werden."
50
50
51
#: src/xz/args.c:541
51
#: src/xz/args.c:586
52
#, c-format
52
#, c-format
53
msgid "The environment variable %s contains too many arguments"
53
msgid "The environment variable %s contains too many arguments"
54
msgstr "Die Umgebungsvariable %s enthält zu viele Argumente"
54
msgstr "Die Umgebungsvariable %s enthält zu viele Argumente"
55
55
56
#: src/xz/args.c:643
56
#: src/xz/args.c:688
57
msgid "Compression support was disabled at build time"
57
msgid "Compression support was disabled at build time"
58
msgstr "Die Unterstützung für Kompression wurde zum Zeitpunkt der Erstellung deaktiviert"
58
msgstr "Die Unterstützung für Kompression wurde zum Zeitpunkt der Erstellung deaktiviert"
59
59
60
#: src/xz/args.c:650
60
#: src/xz/args.c:695
61
msgid "Decompression support was disabled at build time"
61
msgid "Decompression support was disabled at build time"
62
msgstr "Die Unterstützung für Dekompression wurde zum Zeitpunkt der Erstellung deaktiviert"
62
msgstr "Die Unterstützung für Dekompression wurde zum Zeitpunkt der Erstellung deaktiviert"
63
63
64
#: src/xz/coder.c:110
64
#: src/xz/args.c:701
65
msgid "Compression of lzip files (.lz) is not supported"
66
msgstr "Kompression von lzip-Dateien (.lz) wird nicht unterstützt"
67
68
#: src/xz/args.c:732
69
#, fuzzy
70
#| msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
71
msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout"
72
msgstr "%s: Mit --format=raw ist --suffix=.SUF notwendig, falls nicht in die Standardausgabe geschrieben wird"
73
74
#: src/xz/coder.c:115
65
msgid "Maximum number of filters is four"
75
msgid "Maximum number of filters is four"
66
msgstr "Maximal vier Filter möglich"
76
msgstr "Maximal vier Filter möglich"
67
77
68
#: src/xz/coder.c:129
78
#: src/xz/coder.c:134
69
msgid "Memory usage limit is too low for the given filter setup."
79
msgid "Memory usage limit is too low for the given filter setup."
70
msgstr "Die Speicherbedarfsbegrenzung ist für die gegebene Filter-Konfiguration zu niedrig."
80
msgstr "Die Speicherbedarfsbegrenzung ist für die gegebene Filter-Konfiguration zu niedrig."
71
81
72
#: src/xz/coder.c:159
82
#: src/xz/coder.c:169
73
msgid "Using a preset in raw mode is discouraged."
83
msgid "Using a preset in raw mode is discouraged."
74
msgstr "Verwendung einer Voreinstellung im Roh-Modus wird nicht empfohlen."
84
msgstr "Verwendung einer Voreinstellung im Roh-Modus wird nicht empfohlen."
75
85
76
#: src/xz/coder.c:161
86
#: src/xz/coder.c:171
77
msgid "The exact options of the presets may vary between software versions."
87
msgid "The exact options of the presets may vary between software versions."
78
msgstr "Die genauen Optionen der Voreinstellung können zwischen Softwareversionen variieren."
88
msgstr "Die genauen Optionen der Voreinstellung können zwischen Softwareversionen variieren."
79
89
80
#: src/xz/coder.c:184
90
#: src/xz/coder.c:194
81
msgid "The .lzma format supports only the LZMA1 filter"
91
msgid "The .lzma format supports only the LZMA1 filter"
82
msgstr "Das .lzma-Format unterstützt nur den LZMA1-Filter"
92
msgstr "Das .lzma-Format unterstützt nur den LZMA1-Filter"
83
93
84
#: src/xz/coder.c:192
94
#: src/xz/coder.c:202
85
msgid "LZMA1 cannot be used with the .xz format"
95
msgid "LZMA1 cannot be used with the .xz format"
86
msgstr "LZMA1 kann nicht mit dem .xz-Format verwendet werden"
96
msgstr "LZMA1 kann nicht mit dem .xz-Format verwendet werden"
87
97
88
#: src/xz/coder.c:209
98
#: src/xz/coder.c:219
89
msgid "The filter chain is incompatible with --flush-timeout"
99
msgid "The filter chain is incompatible with --flush-timeout"
90
msgstr "Diese Filterkette ist inkompatibel zu --flush-timeout"
100
msgstr "Diese Filterkette ist inkompatibel zu --flush-timeout"
91
101
92
#: src/xz/coder.c:215
102
#: src/xz/coder.c:225
93
msgid "Switching to single-threaded mode due to --flush-timeout"
103
msgid "Switching to single-threaded mode due to --flush-timeout"
94
msgstr "Wegen --flush-timeout wird auf den Einzelthread-Modus umgeschaltet"
104
msgstr "Wegen --flush-timeout wird auf den Einzelthread-Modus umgeschaltet"
95
105
96
#: src/xz/coder.c:235
106
#: src/xz/coder.c:249
97
#, c-format
107
#, c-format
98
msgid "Using up to %<PRIu32> threads."
108
msgid "Using up to %<PRIu32> threads."
99
msgstr "Bis zu %<PRIu32> Threads werden benutzt."
109
msgstr "Bis zu %<PRIu32> Threads werden benutzt."
100
110
101
#: src/xz/coder.c:251
111
#: src/xz/coder.c:265
102
msgid "Unsupported filter chain or filter options"
112
msgid "Unsupported filter chain or filter options"
103
msgstr "Filterkette oder Filteroptionen werden nicht unterstützt"
113
msgstr "Filterkette oder Filteroptionen werden nicht unterstützt"
104
114
105
#: src/xz/coder.c:263
115
#: src/xz/coder.c:277
106
#, c-format
116
#, c-format
107
msgid "Decompression will need %s MiB of memory."
117
msgid "Decompression will need %s MiB of memory."
108
msgstr "Dekompression wird %s MiB Speicher brauchen."
118
msgstr "Dekompression wird %s MiB Speicher brauchen."
109
119
110
#: src/xz/coder.c:300
120
#: src/xz/coder.c:309
111
#, c-format
121
#, c-format
112
msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
122
msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
113
msgstr "Anzahl der Threads wurde von %s auf %s angepasst, um die Speicherbedarfsbegrenzung von %s MiB nicht zu übersteigen"
123
msgstr "Anzahl der Threads wurde von %s auf %s reduziert, um die Speicherbedarfsbegrenzung von %s MiB nicht zu übersteigen"
114
124
115
#: src/xz/coder.c:354
125
#: src/xz/coder.c:329
116
#, c-format
126
#, c-format
127
msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway."
128
msgstr "Anzahl der Threads wurde von %s auf einen reduziert. Die automatische Begrenzung des Speicherverbrauchs auf %s MiB wird immer noch überschritten. %s MiB an Speicher sind erforderlich. Es wird dennoch fortgesetzt."
129
130
#: src/xz/coder.c:356
131
#, c-format
132
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
133
msgstr "Es wurde in den Einzelthread-Modus gewechselt, um die Speicherbedarfsbegrenzung von %s MiB nicht zu übersteigen"
134
135
#: src/xz/coder.c:411
136
#, c-format
117
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
137
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
118
msgstr "Die LZMA%c-Wörterbuchgröße wurde von %s MiB auf %s MiB angepasst, um die Speicherbedarfsbegrenzung von %s MiB nicht zu übersteigen"
138
msgstr "Die LZMA%c-Wörterbuchgröße wurde von %s MiB auf %s MiB angepasst, um die Speicherbedarfsbegrenzung von %s MiB nicht zu übersteigen"
119
139
Lines 122-132 Link Here
122
msgid "Error creating a pipe: %s"
142
msgid "Error creating a pipe: %s"
123
msgstr "Fehler beim Erzeugen der Pipeline: %s"
143
msgstr "Fehler beim Erzeugen der Pipeline: %s"
124
144
125
#: src/xz/file_io.c:224
145
#: src/xz/file_io.c:252
126
msgid "Failed to enable the sandbox"
146
msgid "Failed to enable the sandbox"
127
msgstr "Sandbox konnte nicht aktiviert werden"
147
msgstr "Sandbox konnte nicht aktiviert werden"
128
148
129
#: src/xz/file_io.c:266
149
#: src/xz/file_io.c:294
130
#, c-format
150
#, c-format
131
msgid "%s: poll() failed: %s"
151
msgid "%s: poll() failed: %s"
132
msgstr "%s: poll() ist fehlgeschlagen: %s"
152
msgstr "%s: poll() ist fehlgeschlagen: %s"
Lines 141-335 Link Here
141
#. it is possible that the user has put a new file in place
161
#. it is possible that the user has put a new file in place
142
#. of the original file, and in that case it obviously
162
#. of the original file, and in that case it obviously
143
#. shouldn't be removed.
163
#. shouldn't be removed.
144
#: src/xz/file_io.c:333
164
#: src/xz/file_io.c:361
145
#, c-format
165
#, c-format
146
msgid "%s: File seems to have been moved, not removing"
166
msgid "%s: File seems to have been moved, not removing"
147
msgstr "%s: Datei scheint verschoben worden zu sein, daher wird sie nicht gelöscht"
167
msgstr "%s: Datei scheint verschoben worden zu sein, daher wird sie nicht gelöscht"
148
168
149
#: src/xz/file_io.c:340 src/xz/file_io.c:882
169
#: src/xz/file_io.c:368 src/xz/file_io.c:924
150
#, c-format
170
#, c-format
151
msgid "%s: Cannot remove: %s"
171
msgid "%s: Cannot remove: %s"
152
msgstr "%s: Löschen nicht möglich: %s"
172
msgstr "%s: Löschen nicht möglich: %s"
153
173
154
#: src/xz/file_io.c:366
174
#: src/xz/file_io.c:394
155
#, c-format
175
#, c-format
156
msgid "%s: Cannot set the file owner: %s"
176
msgid "%s: Cannot set the file owner: %s"
157
msgstr "%s: Dateieigentümer kann nicht gesetzt werden: %s"
177
msgstr "%s: Dateieigentümer kann nicht gesetzt werden: %s"
158
178
159
#: src/xz/file_io.c:372
179
#: src/xz/file_io.c:407
160
#, c-format
180
#, c-format
161
msgid "%s: Cannot set the file group: %s"
181
msgid "%s: Cannot set the file group: %s"
162
msgstr "%s: Dateigruppe kann nicht gesetzt werden: %s"
182
msgstr "%s: Dateigruppe kann nicht gesetzt werden: %s"
163
183
164
#: src/xz/file_io.c:391
184
#: src/xz/file_io.c:426
165
#, c-format
185
#, c-format
166
msgid "%s: Cannot set the file permissions: %s"
186
msgid "%s: Cannot set the file permissions: %s"
167
msgstr "%s: Zugriffsrechte können nicht gesetzt werden: %s"
187
msgstr "%s: Zugriffsrechte können nicht gesetzt werden: %s"
168
188
169
#: src/xz/file_io.c:517
189
#: src/xz/file_io.c:552
170
#, c-format
190
#, c-format
171
msgid "Error getting the file status flags from standard input: %s"
191
msgid "Error getting the file status flags from standard input: %s"
172
msgstr "Dateistatus-Markierungen können nicht aus der Standardeingabe ermittelt werden: %s"
192
msgstr "Dateistatus-Markierungen können nicht aus der Standardeingabe ermittelt werden: %s"
173
193
174
#: src/xz/file_io.c:574 src/xz/file_io.c:636
194
#: src/xz/file_io.c:610 src/xz/file_io.c:672
175
#, c-format
195
#, c-format
176
msgid "%s: Is a symbolic link, skipping"
196
msgid "%s: Is a symbolic link, skipping"
177
msgstr "%s: Ist ein symbolischer Link, wird übersprungen"
197
msgstr "%s: Ist ein symbolischer Link, wird übersprungen"
178
198
179
#: src/xz/file_io.c:665
199
#: src/xz/file_io.c:701
180
#, c-format
200
#, c-format
181
msgid "%s: Is a directory, skipping"
201
msgid "%s: Is a directory, skipping"
182
msgstr "%s: Ist ein Verzeichnis, wird übersprungen"
202
msgstr "%s: Ist ein Verzeichnis, wird übersprungen"
183
203
184
#: src/xz/file_io.c:671
204
#: src/xz/file_io.c:707
185
#, c-format
205
#, c-format
186
msgid "%s: Not a regular file, skipping"
206
msgid "%s: Not a regular file, skipping"
187
msgstr "%s: Keine reguläre Datei, wird übersprungen"
207
msgstr "%s: Keine reguläre Datei, wird übersprungen"
188
208
189
#: src/xz/file_io.c:688
209
#: src/xz/file_io.c:724
190
#, c-format
210
#, c-format
191
msgid "%s: File has setuid or setgid bit set, skipping"
211
msgid "%s: File has setuid or setgid bit set, skipping"
192
msgstr "%s: Datei hat das setuid- oder setgid-Bit gesetzt, wird übersprungen"
212
msgstr "%s: Datei hat das setuid- oder setgid-Bit gesetzt, wird übersprungen"
193
213
194
#: src/xz/file_io.c:695
214
#: src/xz/file_io.c:731
195
#, c-format
215
#, c-format
196
msgid "%s: File has sticky bit set, skipping"
216
msgid "%s: File has sticky bit set, skipping"
197
msgstr "%s: Datei hat sticky-Bit gesetzt, wird übersprungen"
217
msgstr "%s: Datei hat sticky-Bit gesetzt, wird übersprungen"
198
218
199
#: src/xz/file_io.c:702
219
#: src/xz/file_io.c:738
200
#, c-format
220
#, c-format
201
msgid "%s: Input file has more than one hard link, skipping"
221
msgid "%s: Input file has more than one hard link, skipping"
202
msgstr "%s: Eingabedatei hat mehr als einen harten Link, wird übersprungen"
222
msgstr "%s: Eingabedatei hat mehr als einen harten Link, wird übersprungen"
203
223
204
#: src/xz/file_io.c:792
224
#: src/xz/file_io.c:780
225
msgid "Empty filename, skipping"
226
msgstr "Leerer Dateiname, wird übersprungen"
227
228
#: src/xz/file_io.c:834
205
#, c-format
229
#, c-format
206
msgid "Error restoring the status flags to standard input: %s"
230
msgid "Error restoring the status flags to standard input: %s"
207
msgstr "Fehler beim Wiederherstellen der Status-Markierungen für die Standardeingabe: %s"
231
msgstr "Fehler beim Wiederherstellen der Status-Markierungen für die Standardeingabe: %s"
208
232
209
#: src/xz/file_io.c:840
233
#: src/xz/file_io.c:882
210
#, c-format
234
#, c-format
211
msgid "Error getting the file status flags from standard output: %s"
235
msgid "Error getting the file status flags from standard output: %s"
212
msgstr "Status-Markierungen der Standardausgabe können nicht ermittelt werden: %s"
236
msgstr "Status-Markierungen der Standardausgabe können nicht ermittelt werden: %s"
213
237
214
#: src/xz/file_io.c:1018
238
#: src/xz/file_io.c:1060
215
#, c-format
239
#, c-format
216
msgid "Error restoring the O_APPEND flag to standard output: %s"
240
msgid "Error restoring the O_APPEND flag to standard output: %s"
217
msgstr "Fehler beim Wiederherstellen der O_APPEND-Markierungen für die Standardausgabe: %s"
241
msgstr "Fehler beim Wiederherstellen der O_APPEND-Markierungen für die Standardausgabe: %s"
218
242
219
#: src/xz/file_io.c:1030
243
#: src/xz/file_io.c:1072
220
#, c-format
244
#, c-format
221
msgid "%s: Closing the file failed: %s"
245
msgid "%s: Closing the file failed: %s"
222
msgstr "%s: Fehler beim Schließen der Datei: %s"
246
msgstr "%s: Fehler beim Schließen der Datei: %s"
223
247
224
#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
248
#: src/xz/file_io.c:1108 src/xz/file_io.c:1371
225
#, c-format
249
#, c-format
226
msgid "%s: Seeking failed when trying to create a sparse file: %s"
250
msgid "%s: Seeking failed when trying to create a sparse file: %s"
227
msgstr "%s: Positionierungsfehler beim Versuch, eine Sparse-Datei (dünnbesetzte Datei) zu erzeugen: %s"
251
msgstr "%s: Positionierungsfehler beim Versuch, eine Sparse-Datei (dünnbesetzte Datei) zu erzeugen: %s"
228
252
229
#: src/xz/file_io.c:1167
253
#: src/xz/file_io.c:1209
230
#, c-format
254
#, c-format
231
msgid "%s: Read error: %s"
255
msgid "%s: Read error: %s"
232
msgstr "%s: Lesefehler: %s"
256
msgstr "%s: Lesefehler: %s"
233
257
234
#: src/xz/file_io.c:1191
258
#: src/xz/file_io.c:1239
235
#, c-format
259
#, c-format
236
msgid "%s: Error seeking the file: %s"
260
msgid "%s: Error seeking the file: %s"
237
msgstr "%s: Fehler beim Durchsuchen der Datei: %s"
261
msgstr "%s: Fehler beim Durchsuchen der Datei: %s"
238
262
239
#: src/xz/file_io.c:1201
263
#: src/xz/file_io.c:1263
240
#, c-format
264
#, c-format
241
msgid "%s: Unexpected end of file"
265
msgid "%s: Unexpected end of file"
242
msgstr "%s: Unerwartetes Ende der Datei"
266
msgstr "%s: Unerwartetes Ende der Datei"
243
267
244
#: src/xz/file_io.c:1260
268
#: src/xz/file_io.c:1322
245
#, c-format
269
#, c-format
246
msgid "%s: Write error: %s"
270
msgid "%s: Write error: %s"
247
msgstr "%s: Schreibfehler: %s"
271
msgstr "%s: Schreibfehler: %s"
248
272
249
#: src/xz/hardware.c:137
273
#: src/xz/hardware.c:238
250
msgid "Disabled"
274
msgid "Disabled"
251
msgstr "Deaktiviert"
275
msgstr "Deaktiviert"
252
276
253
#. TRANSLATORS: Test with "xz --info-memory" to see if
277
#: src/xz/hardware.c:269
254
#. the alignment looks nice.
278
msgid "Amount of physical memory (RAM):"
255
#: src/xz/hardware.c:156
279
msgstr "Gesamtmenge physischer Speicher (RAM):"
256
msgid "Total amount of physical memory (RAM): "
257
msgstr "Gesamtmenge physischer Speicher (RAM):        "
258
280
259
#: src/xz/hardware.c:158
281
#: src/xz/hardware.c:270
260
msgid "Memory usage limit for compression:    "
282
msgid "Number of processor threads:"
261
msgstr "Speicherbedarfsbegrenzung für Kompression:    "
283
msgstr "Anzahl der Prozessor-Threads:"
262
284
263
#: src/xz/hardware.c:160
285
#: src/xz/hardware.c:271
264
msgid "Memory usage limit for decompression:  "
286
msgid "Compression:"
265
msgstr "Speicherbedarfsbegrenzung für Dekompression:  "
287
msgstr "Kompression:"
266
288
289
#: src/xz/hardware.c:272
290
msgid "Decompression:"
291
msgstr "Dekompression:"
292
293
#: src/xz/hardware.c:273
294
msgid "Multi-threaded decompression:"
295
msgstr "Multithread-Dekompression:"
296
297
#: src/xz/hardware.c:274
298
msgid "Default for -T0:"
299
msgstr "Vorgabe für -T0:"
300
301
#: src/xz/hardware.c:292
302
msgid "Hardware information:"
303
msgstr "Hardware-Information:"
304
305
#: src/xz/hardware.c:299
306
msgid "Memory usage limits:"
307
msgstr "Speicherbedarfsbegrenzung:"
308
309
#: src/xz/list.c:68
310
msgid "Streams:"
311
msgstr "Datenströme:"
312
313
#: src/xz/list.c:69
314
msgid "Blocks:"
315
msgstr "Blöcke:"
316
317
#: src/xz/list.c:70
318
msgid "Compressed size:"
319
msgstr "Größe komprimiert:"
320
321
#: src/xz/list.c:71
322
msgid "Uncompressed size:"
323
msgstr "Größe unkomprimiert:"
324
325
#: src/xz/list.c:72
326
msgid "Ratio:"
327
msgstr "Verhältnis:"
328
329
#: src/xz/list.c:73
330
msgid "Check:"
331
msgstr "Prüfung:"
332
333
#: src/xz/list.c:74
334
msgid "Stream Padding:"
335
msgstr "Datenstromauffüllung:"
336
337
#: src/xz/list.c:75
338
msgid "Memory needed:"
339
msgstr "Benötigter Speicher:"
340
341
#: src/xz/list.c:76
342
msgid "Sizes in headers:"
343
msgstr "Größe in Köpfen:"
344
345
#: src/xz/list.c:79
346
msgid "Number of files:"
347
msgstr "Anzahl Dateien:"
348
349
#: src/xz/list.c:122
350
msgid "Stream"
351
msgstr "Datenstrom"
352
353
#: src/xz/list.c:123
354
msgid "Block"
355
msgstr "Block"
356
357
#: src/xz/list.c:124
358
msgid "Blocks"
359
msgstr "Blöcke"
360
361
#: src/xz/list.c:125
362
msgid "CompOffset"
363
msgstr "KompVers"
364
365
#: src/xz/list.c:126
366
msgid "UncompOffset"
367
msgstr "UnkompVers"
368
369
#: src/xz/list.c:127
370
msgid "CompSize"
371
msgstr "KompGröße"
372
373
#: src/xz/list.c:128
374
msgid "UncompSize"
375
msgstr "UnkompGröße"
376
377
#: src/xz/list.c:129
378
msgid "TotalSize"
379
msgstr "Gesamt"
380
381
#: src/xz/list.c:130
382
msgid "Ratio"
383
msgstr "Verhältnis"
384
385
#: src/xz/list.c:131
386
msgid "Check"
387
msgstr "Prüfung"
388
389
#: src/xz/list.c:132
390
msgid "CheckVal"
391
msgstr "Prüfwert"
392
393
#: src/xz/list.c:133
394
msgid "Padding"
395
msgstr "Auffüllung"
396
397
#: src/xz/list.c:134
398
msgid "Header"
399
msgstr "Kopf"
400
401
#: src/xz/list.c:135
402
msgid "Flags"
403
msgstr "Flags"
404
405
#: src/xz/list.c:136
406
msgid "MemUsage"
407
msgstr "SpeichVerb"
408
409
#: src/xz/list.c:137
410
msgid "Filters"
411
msgstr "Filter"
412
267
#. TRANSLATORS: Indicates that there is no integrity check.
413
#. TRANSLATORS: Indicates that there is no integrity check.
268
#. This string is used in tables, so the width must not
414
#. This string is used in tables. In older xz version this
269
#. exceed ten columns with a fixed-width font.
415
#. string was limited to ten columns in a fixed-width font, but
270
#: src/xz/list.c:65
416
#. nowadays there is no strict length restriction anymore.
417
#: src/xz/list.c:169
271
msgid "None"
418
msgid "None"
272
msgstr "Keine"
419
msgstr "Keine"
273
420
274
#. TRANSLATORS: Indicates that integrity check name is not known,
421
#. TRANSLATORS: Indicates that integrity check name is not known,
275
#. but the Check ID is known (here 2). This and other "Unknown-N"
422
#. but the Check ID is known (here 2). In older xz version these
276
#. strings are used in tables, so the width must not exceed ten
423
#. strings were limited to ten columns in a fixed-width font, but
277
#. columns with a fixed-width font. It's OK to omit the dash if
424
#. nowadays there is no strict length restriction anymore.
278
#. you need space for one extra letter, but don't use spaces.
425
#: src/xz/list.c:175
279
#: src/xz/list.c:72
280
msgid "Unknown-2"
426
msgid "Unknown-2"
281
msgstr "Unbek.2"
427
msgstr "Unbek.2"
282
428
283
#: src/xz/list.c:73
429
#: src/xz/list.c:176
284
msgid "Unknown-3"
430
msgid "Unknown-3"
285
msgstr "Unbek.3"
431
msgstr "Unbek.3"
286
432
287
#: src/xz/list.c:75
433
#: src/xz/list.c:178
288
msgid "Unknown-5"
434
msgid "Unknown-5"
289
msgstr "Unbek.5"
435
msgstr "Unbek.5"
290
436
291
#: src/xz/list.c:76
437
#: src/xz/list.c:179
292
msgid "Unknown-6"
438
msgid "Unknown-6"
293
msgstr "Unbek.6"
439
msgstr "Unbek.6"
294
440
295
#: src/xz/list.c:77
441
#: src/xz/list.c:180
296
msgid "Unknown-7"
442
msgid "Unknown-7"
297
msgstr "Unbek.7"
443
msgstr "Unbek.7"
298
444
299
#: src/xz/list.c:78
445
#: src/xz/list.c:181
300
msgid "Unknown-8"
446
msgid "Unknown-8"
301
msgstr "Unbek.8"
447
msgstr "Unbek.8"
302
448
303
#: src/xz/list.c:79
449
#: src/xz/list.c:182
304
msgid "Unknown-9"
450
msgid "Unknown-9"
305
msgstr "Unbek.9"
451
msgstr "Unbek.9"
306
452
307
#: src/xz/list.c:81
453
#: src/xz/list.c:184
308
msgid "Unknown-11"
454
msgid "Unknown-11"
309
msgstr "Unbek.11"
455
msgstr "Unbek.11"
310
456
311
#: src/xz/list.c:82
457
#: src/xz/list.c:185
312
msgid "Unknown-12"
458
msgid "Unknown-12"
313
msgstr "Unbek.12"
459
msgstr "Unbek.12"
314
460
315
#: src/xz/list.c:83
461
#: src/xz/list.c:186
316
msgid "Unknown-13"
462
msgid "Unknown-13"
317
msgstr "Unbek.13"
463
msgstr "Unbek.13"
318
464
319
#: src/xz/list.c:84
465
#: src/xz/list.c:187
320
msgid "Unknown-14"
466
msgid "Unknown-14"
321
msgstr "Unbek.14"
467
msgstr "Unbek.14"
322
468
323
#: src/xz/list.c:85
469
#: src/xz/list.c:188
324
msgid "Unknown-15"
470
msgid "Unknown-15"
325
msgstr "Unbek.15"
471
msgstr "Unbek.15"
326
472
327
#: src/xz/list.c:153
473
#: src/xz/list.c:351
328
#, c-format
474
#, c-format
329
msgid "%s: File is empty"
475
msgid "%s: File is empty"
330
msgstr "%s: Datei ist leer"
476
msgstr "%s: Datei ist leer"
331
477
332
#: src/xz/list.c:158
478
#: src/xz/list.c:356
333
#, c-format
479
#, c-format
334
msgid "%s: Too small to be a valid .xz file"
480
msgid "%s: Too small to be a valid .xz file"
335
msgstr "%s: Zu klein, um eine gültige .xz-Datei zu sein"
481
msgstr "%s: Zu klein, um eine gültige .xz-Datei zu sein"
Lines 338-462 Link Here
338
#. to Ratio, the columns are right aligned. Check and Filename
484
#. to Ratio, the columns are right aligned. Check and Filename
339
#. are left aligned. If you need longer words, it's OK to
485
#. are left aligned. If you need longer words, it's OK to
340
#. use two lines here. Test with "xz -l foo.xz".
486
#. use two lines here. Test with "xz -l foo.xz".
341
#: src/xz/list.c:677
487
#: src/xz/list.c:730
342
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
488
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
343
msgstr " Str.  Blöcke       Kompr.     Unkompr.  Verh.  Check   Dateiname"
489
msgstr " Str.  Blöcke       Kompr.     Unkompr.  Verh.  Check   Dateiname"
344
490
345
#: src/xz/list.c:717
491
#: src/xz/list.c:1025 src/xz/list.c:1203
346
#, c-format
347
msgid "  Streams:            %s\n"
348
msgstr "  Datenströme:          %s\n"
349
350
#: src/xz/list.c:719
351
#, c-format
352
msgid "  Blocks:             %s\n"
353
msgstr "  Blöcke:               %s\n"
354
355
#: src/xz/list.c:721
356
#, c-format
357
msgid "  Compressed size:    %s\n"
358
msgstr "  Größe komprimiert:    %s\n"
359
360
#: src/xz/list.c:724
361
#, c-format
362
msgid "  Uncompressed size:  %s\n"
363
msgstr "  Größe unkomprimiert:  %s\n"
364
365
#: src/xz/list.c:727
366
#, c-format
367
msgid "  Ratio:              %s\n"
368
msgstr "  Verhältnis:           %s\n"
369
370
#: src/xz/list.c:729
371
#, c-format
372
msgid "  Check:              %s\n"
373
msgstr "  Check:                %s\n"
374
375
#: src/xz/list.c:730
376
#, c-format
377
msgid "  Stream padding:     %s\n"
378
msgstr "  Datenstromauffüllung: %s\n"
379
380
#. TRANSLATORS: The second line is column headings. All except
381
#. Check are right aligned; Check is left aligned. Test with
382
#. "xz -lv foo.xz".
383
#: src/xz/list.c:758
384
msgid ""
385
"  Streams:\n"
386
"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
387
msgstr ""
388
"  Datenströme:\n"
389
"     D.Strom  Blöcke      KompOffset    UnkompOffset       KompGröße     UnkompGröße  Verh.  Check   Auffüllung"
390
391
#. TRANSLATORS: The second line is column headings. All
392
#. except Check are right aligned; Check is left aligned.
393
#: src/xz/list.c:813
394
#, c-format
395
msgid ""
396
"  Blocks:\n"
397
"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
398
msgstr ""
399
"  Blöcke:\n"
400
"     Strom     Block      KompOffset    UnkompOffset      TotalGröße     UnkompGröße  Verh.  Check"
401
402
#. TRANSLATORS: These are additional column headings
403
#. for the most verbose listing mode. CheckVal
404
#. (Check value), Flags, and Filters are left aligned.
405
#. Header (Block Header Size), CompSize, and MemUsage
406
#. are right aligned. %*s is replaced with 0-120
407
#. spaces to make the CheckVal column wide enough.
408
#. Test with "xz -lvv foo.xz".
409
#: src/xz/list.c:825
410
#, c-format
411
msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
412
msgstr "      PrüfWert %*s   Kopf  Schalter    KompGröße    Speicher  Filter"
413
414
#: src/xz/list.c:903 src/xz/list.c:1078
415
#, c-format
416
msgid "  Memory needed:      %s MiB\n"
417
msgstr "  Benötigter Speicher: %s MiB\n"
418
419
#: src/xz/list.c:905 src/xz/list.c:1080
420
#, c-format
421
msgid "  Sizes in headers:   %s\n"
422
msgstr "  Größe in Köpfen:     %s\n"
423
424
#: src/xz/list.c:906 src/xz/list.c:1081
425
msgid "Yes"
492
msgid "Yes"
426
msgstr "Ja"
493
msgstr "Ja"
427
494
428
#: src/xz/list.c:906 src/xz/list.c:1081
495
#: src/xz/list.c:1025 src/xz/list.c:1203
429
msgid "No"
496
msgid "No"
430
msgstr "Nein"
497
msgstr "Nein"
431
498
432
#: src/xz/list.c:907 src/xz/list.c:1082
499
#: src/xz/list.c:1027 src/xz/list.c:1205
433
#, c-format
500
#, c-format
434
msgid "  Minimum XZ Utils version: %s\n"
501
msgid "  Minimum XZ Utils version: %s\n"
435
msgstr "  Minimal erforderliche XZ Utils-Version: %s\n"
502
msgstr "  Minimal erforderliche XZ Utils-Version: %s\n"
436
503
437
#. TRANSLATORS: %s is an integer. Only the plural form of this
504
#. TRANSLATORS: %s is an integer. Only the plural form of this
438
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
505
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
439
#: src/xz/list.c:1057
506
#: src/xz/list.c:1178
440
#, c-format
507
#, c-format
441
msgid "%s file\n"
508
msgid "%s file\n"
442
msgid_plural "%s files\n"
509
msgid_plural "%s files\n"
443
msgstr[0] "%s Datei\n"
510
msgstr[0] "%s Datei\n"
444
msgstr[1] "%s Dateien\n"
511
msgstr[1] "%s Dateien\n"
445
512
446
#: src/xz/list.c:1070
513
#: src/xz/list.c:1191
447
msgid "Totals:"
514
msgid "Totals:"
448
msgstr "Gesamt:"
515
msgstr "Gesamt:"
449
516
450
#: src/xz/list.c:1071
517
#: src/xz/list.c:1269
451
#, c-format
452
msgid "  Number of files:    %s\n"
453
msgstr "  Anzahl Dateien:     %s\n"
454
455
#: src/xz/list.c:1146
456
msgid "--list works only on .xz files (--format=xz or --format=auto)"
518
msgid "--list works only on .xz files (--format=xz or --format=auto)"
457
msgstr "--list funktioniert nur mit .xz-Dateien (--format=xz oder --format=auto)"
519
msgstr "--list funktioniert nur mit .xz-Dateien (--format=xz oder --format=auto)"
458
520
459
#: src/xz/list.c:1152
521
#: src/xz/list.c:1275
460
msgid "--list does not support reading from standard input"
522
msgid "--list does not support reading from standard input"
461
msgstr "--list unterstützt kein Lesen aus der Standardeingabe"
523
msgstr "--list unterstützt kein Lesen aus der Standardeingabe"
462
524
Lines 475-485 Link Here
475
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
537
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
476
msgstr "%s: Null-Zeichen beim Lesen der Dateinamen gefunden; meinten Sie »--files0« statt »--files«?"
538
msgstr "%s: Null-Zeichen beim Lesen der Dateinamen gefunden; meinten Sie »--files0« statt »--files«?"
477
539
478
#: src/xz/main.c:174
540
#: src/xz/main.c:188
479
msgid "Compression and decompression with --robot are not supported yet."
541
msgid "Compression and decompression with --robot are not supported yet."
480
msgstr "Kompression und Dekompression mit --robot wird noch nicht unterstützt."
542
msgstr "Kompression und Dekompression mit --robot wird noch nicht unterstützt."
481
543
482
#: src/xz/main.c:252
544
#: src/xz/main.c:266
483
msgid "Cannot read data from standard input when reading filenames from standard input"
545
msgid "Cannot read data from standard input when reading filenames from standard input"
484
msgstr "Lesen der Daten aus der Standardeingabe ist nicht möglich, wenn die Dateinamen auch aus der Standardeingabe gelesen werden"
546
msgstr "Lesen der Daten aus der Standardeingabe ist nicht möglich, wenn die Dateinamen auch aus der Standardeingabe gelesen werden"
485
547
Lines 487-554 Link Here
487
#. of the line in messages. Usually it becomes "xz: ".
549
#. of the line in messages. Usually it becomes "xz: ".
488
#. This is a translatable string because French needs
550
#. This is a translatable string because French needs
489
#. a space before a colon.
551
#. a space before a colon.
490
#: src/xz/message.c:728
552
#: src/xz/message.c:725
491
#, c-format
553
#, c-format
492
msgid "%s: "
554
msgid "%s: "
493
msgstr "%s: "
555
msgstr "%s: "
494
556
495
#: src/xz/message.c:791 src/xz/message.c:841
557
#: src/xz/message.c:797 src/xz/message.c:856
496
msgid "Internal error (bug)"
558
msgid "Internal error (bug)"
497
msgstr "Interner Fehler (Bug)"
559
msgstr "Interner Fehler (Bug)"
498
560
499
#: src/xz/message.c:798
561
#: src/xz/message.c:804
500
msgid "Cannot establish signal handlers"
562
msgid "Cannot establish signal handlers"
501
msgstr "Signalroutine kann nicht gesetzt werden"
563
msgstr "Signalroutine kann nicht gesetzt werden"
502
564
503
#: src/xz/message.c:807
565
#: src/xz/message.c:813
504
msgid "No integrity check; not verifying file integrity"
566
msgid "No integrity check; not verifying file integrity"
505
msgstr "Keine Integritätsprüfung; Integrität der Datei wird nicht überprüft"
567
msgstr "Keine Integritätsprüfung; Integrität der Datei wird nicht überprüft"
506
568
507
#: src/xz/message.c:810
569
#: src/xz/message.c:816
508
msgid "Unsupported type of integrity check; not verifying file integrity"
570
msgid "Unsupported type of integrity check; not verifying file integrity"
509
msgstr "Typ der Integritätsprüfung wird nicht unterstützt; Integrität der Datei wird nicht überprüft"
571
msgstr "Typ der Integritätsprüfung wird nicht unterstützt; Integrität der Datei wird nicht überprüft"
510
572
511
#: src/xz/message.c:817
573
#: src/xz/message.c:823
512
msgid "Memory usage limit reached"
574
msgid "Memory usage limit reached"
513
msgstr "Speicherbedarfsbegrenzung erreicht"
575
msgstr "Speicherbedarfsbegrenzung erreicht"
514
576
515
#: src/xz/message.c:820
577
#: src/xz/message.c:826
516
msgid "File format not recognized"
578
msgid "File format not recognized"
517
msgstr "Dateiformat nicht erkannt"
579
msgstr "Dateiformat nicht erkannt"
518
580
519
#: src/xz/message.c:823
581
#: src/xz/message.c:829
520
msgid "Unsupported options"
582
msgid "Unsupported options"
521
msgstr "Optionen nicht unterstützt"
583
msgstr "Optionen nicht unterstützt"
522
584
523
#: src/xz/message.c:826
585
#: src/xz/message.c:832
524
msgid "Compressed data is corrupt"
586
msgid "Compressed data is corrupt"
525
msgstr "Komprimierte Daten sind beschädigt"
587
msgstr "Komprimierte Daten sind beschädigt"
526
588
527
#: src/xz/message.c:829
589
#: src/xz/message.c:835
528
msgid "Unexpected end of input"
590
msgid "Unexpected end of input"
529
msgstr "Unerwartetes Ende der Eingabe"
591
msgstr "Unerwartetes Ende der Eingabe"
530
592
531
#: src/xz/message.c:862
593
#: src/xz/message.c:877
532
#, c-format
594
#, c-format
533
msgid "%s MiB of memory is required. The limiter is disabled."
595
msgid "%s MiB of memory is required. The limiter is disabled."
534
msgstr "%s MiB Speicher wird benötigt. Die Begrenzung ist deaktiviert."
596
msgstr "%s MiB Speicher wird benötigt. Die Begrenzung ist deaktiviert."
535
597
536
#: src/xz/message.c:890
598
#: src/xz/message.c:905
537
#, c-format
599
#, c-format
538
msgid "%s MiB of memory is required. The limit is %s."
600
msgid "%s MiB of memory is required. The limit is %s."
539
msgstr "%s MiB Speicher wird benötigt. Die Begrenzung ist %s."
601
msgstr "%s MiB Speicher wird benötigt. Die Begrenzung ist %s."
540
602
541
#: src/xz/message.c:1057
603
#: src/xz/message.c:924
542
#, c-format
604
#, c-format
543
msgid "%s: Filter chain: %s\n"
605
msgid "%s: Filter chain: %s\n"
544
msgstr "%s: Filterkette: %s\n"
606
msgstr "%s: Filterkette: %s\n"
545
607
546
#: src/xz/message.c:1067
608
#: src/xz/message.c:935
547
#, c-format
609
#, c-format
548
msgid "Try `%s --help' for more information."
610
msgid "Try `%s --help' for more information."
549
msgstr "Versuchen Sie »%s --help« für mehr Informationen."
611
msgstr "Versuchen Sie »%s --help« für mehr Informationen."
550
612
551
#: src/xz/message.c:1093
613
#: src/xz/message.c:961
552
#, c-format
614
#, c-format
553
msgid ""
615
msgid ""
554
"Usage: %s [OPTION]... [FILE]...\n"
616
"Usage: %s [OPTION]... [FILE]...\n"
Lines 559-575 Link Here
559
"Komprimiert oder dekomprimiert .xz-DATEI(EN).\n"
621
"Komprimiert oder dekomprimiert .xz-DATEI(EN).\n"
560
"\n"
622
"\n"
561
623
562
#: src/xz/message.c:1100
624
#: src/xz/message.c:968
563
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
625
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
564
msgstr ""
626
msgstr ""
565
"Obligatorische Argumente für lange Optionen sind auch für kurze Optionen\n"
627
"Obligatorische Argumente für lange Optionen sind auch für kurze Optionen\n"
566
"zwingend.\n"
628
"zwingend.\n"
567
629
568
#: src/xz/message.c:1104
630
#: src/xz/message.c:972
569
msgid " Operation mode:\n"
631
msgid " Operation mode:\n"
570
msgstr " Aktionsmodus:\n"
632
msgstr " Aktionsmodus:\n"
571
633
572
#: src/xz/message.c:1107
634
#: src/xz/message.c:975
573
msgid ""
635
msgid ""
574
"  -z, --compress      force compression\n"
636
"  -z, --compress      force compression\n"
575
"  -d, --decompress    force decompression\n"
637
"  -d, --decompress    force decompression\n"
Lines 581-587 Link Here
581
"  -t, --test            Dateiintegrität überprüfen\n"
643
"  -t, --test            Dateiintegrität überprüfen\n"
582
"  -l, --list            Dateiinformationen anzeigen"
644
"  -l, --list            Dateiinformationen anzeigen"
583
645
584
#: src/xz/message.c:1113
646
#: src/xz/message.c:981
585
msgid ""
647
msgid ""
586
"\n"
648
"\n"
587
" Operation modifiers:\n"
649
" Operation modifiers:\n"
Lines 589-595 Link Here
589
"\n"
651
"\n"
590
" Aktionsmodifikatoren:\n"
652
" Aktionsmodifikatoren:\n"
591
653
592
#: src/xz/message.c:1116
654
#: src/xz/message.c:984
593
msgid ""
655
msgid ""
594
"  -k, --keep          keep (don't delete) input files\n"
656
"  -k, --keep          keep (don't delete) input files\n"
595
"  -f, --force         force overwrite of output file and (de)compress links\n"
657
"  -f, --force         force overwrite of output file and (de)compress links\n"
Lines 601-607 Link Here
601
"  -c, --stdout          In die Standardausgabe schreiben und die\n"
663
"  -c, --stdout          In die Standardausgabe schreiben und die\n"
602
"                          Eingabedateien nicht löschen"
664
"                          Eingabedateien nicht löschen"
603
665
604
#: src/xz/message.c:1122
666
#: src/xz/message.c:993
605
msgid ""
667
msgid ""
606
"      --single-stream decompress only the first stream, and silently\n"
668
"      --single-stream decompress only the first stream, and silently\n"
607
"                      ignore possible remaining input data"
669
"                      ignore possible remaining input data"
Lines 610-616 Link Here
610
"                          stillschweigend mögliche weitere Eingabedaten\n"
672
"                          stillschweigend mögliche weitere Eingabedaten\n"
611
"                          ignorieren"
673
"                          ignorieren"
612
674
613
#: src/xz/message.c:1125
675
#: src/xz/message.c:996
614
msgid ""
676
msgid ""
615
"      --no-sparse     do not create sparse files when decompressing\n"
677
"      --no-sparse     do not create sparse files when decompressing\n"
616
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
678
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
Lines 631-637 Link Here
631
"      --files0=[DATEI]  Wie --files, aber das Null-Zeichen wird als\n"
693
"      --files0=[DATEI]  Wie --files, aber das Null-Zeichen wird als\n"
632
"                          Trenner benutzt"
694
"                          Trenner benutzt"
633
695
634
#: src/xz/message.c:1134
696
#: src/xz/message.c:1005
635
msgid ""
697
msgid ""
636
"\n"
698
"\n"
637
" Basic file format and compression options:\n"
699
" Basic file format and compression options:\n"
Lines 639-664 Link Here
639
"\n"
701
"\n"
640
" Grundlegende Optionen für Dateiformat und Kompression:\n"
702
" Grundlegende Optionen für Dateiformat und Kompression:\n"
641
703
642
#: src/xz/message.c:1136
704
#: src/xz/message.c:1007
643
msgid ""
705
msgid ""
644
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
706
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
645
"                      `auto' (default), `xz', `lzma', and `raw'\n"
707
"                      `auto' (default), `xz', `lzma', `lzip', and `raw'\n"
646
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
708
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
647
"                      `crc32', `crc64' (default), or `sha256'"
709
"                      `crc32', `crc64' (default), or `sha256'"
648
msgstr ""
710
msgstr ""
649
"  -F, --format=FMT      Dateiformat zur Kodierung oder Dekodierung; mögliche\n"
711
"  -F, --format=FMT      Dateiformat zur Kodierung oder Dekodierung; mögliche\n"
650
"                          Werte sind »auto« (Voreinstellung), »xz«, »lzma« und\n"
712
"                          Werte sind »auto« (Voreinstellung), »xz«, »lzma«,\n"
651
"                          »raw«\n"
713
"                          »lzip« und »raw«\n"
652
"  -C, --check=PRÜFUNG   Typ der Integritätsprüfung: »none« (Vorsicht),\n"
714
"  -C, --check=PRÜFUNG   Typ der Integritätsprüfung: »none« (Vorsicht),\n"
653
"                          »crc32«, »crc64« (Voreinstellung) oder »sha256«"
715
"                          »crc32«, »crc64« (Voreinstellung) oder »sha256«"
654
716
655
#: src/xz/message.c:1141
717
#: src/xz/message.c:1012
656
msgid "      --ignore-check  don't verify the integrity check when decompressing"
718
msgid "      --ignore-check  don't verify the integrity check when decompressing"
657
msgstr ""
719
msgstr ""
658
"     --ignore-check     Integritätsprüfung beim Dekomprimieren\n"
720
"     --ignore-check     Integritätsprüfung beim Dekomprimieren\n"
659
"                          nicht ausführen"
721
"                          nicht ausführen"
660
722
661
#: src/xz/message.c:1145
723
#: src/xz/message.c:1016
662
msgid ""
724
msgid ""
663
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
725
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
664
"                      decompressor memory usage into account before using 7-9!"
726
"                      decompressor memory usage into account before using 7-9!"
Lines 667-673 Link Here
667
"                          Beachten Sie den Speicherbedarf des Kompressors\n"
729
"                          Beachten Sie den Speicherbedarf des Kompressors\n"
668
"                          *und* des Dekompressors, wenn Sie 7-9 benutzen!"
730
"                          *und* des Dekompressors, wenn Sie 7-9 benutzen!"
669
731
670
#: src/xz/message.c:1149
732
#: src/xz/message.c:1020
671
msgid ""
733
msgid ""
672
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
734
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
673
"                      does not affect decompressor memory requirements"
735
"                      does not affect decompressor memory requirements"
Lines 676-682 Link Here
676
"                          Kompressionsverhältnis zu verbessern. Dies beeinflusst\n"
738
"                          Kompressionsverhältnis zu verbessern. Dies beeinflusst\n"
677
"                          den Speicherbedarf des Dekompressors nicht."
739
"                          den Speicherbedarf des Dekompressors nicht."
678
740
679
#: src/xz/message.c:1153
741
#: src/xz/message.c:1024
680
msgid ""
742
msgid ""
681
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
743
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
682
"                      to use as many threads as there are processor cores"
744
"                      to use as many threads as there are processor cores"
Lines 686-692 Link Here
686
"                          wird, dann werden so viele Threads erzeugt, wie\n"
748
"                          wird, dann werden so viele Threads erzeugt, wie\n"
687
"                          Prozessorkerne vorhanden sind"
749
"                          Prozessorkerne vorhanden sind"
688
750
689
#: src/xz/message.c:1158
751
#: src/xz/message.c:1029
690
msgid ""
752
msgid ""
691
"      --block-size=SIZE\n"
753
"      --block-size=SIZE\n"
692
"                      start a new .xz block after every SIZE bytes of input;\n"
754
"                      start a new .xz block after every SIZE bytes of input;\n"
Lines 698-704 Link Here
698
"                          Option, um die Blockgröße für die Kompression mit\n"
760
"                          Option, um die Blockgröße für die Kompression mit\n"
699
"                          mehreren Threads zu setzen"
761
"                          mehreren Threads zu setzen"
700
762
701
#: src/xz/message.c:1162
763
#: src/xz/message.c:1033
702
msgid ""
764
msgid ""
703
"      --block-list=SIZES\n"
765
"      --block-list=SIZES\n"
704
"                      start a new .xz block after the given comma-separated\n"
766
"                      start a new .xz block after the given comma-separated\n"
Lines 709-715 Link Here
709
"                          Kommata getrennten Intervalle an unkomprimierten\n"
771
"                          Kommata getrennten Intervalle an unkomprimierten\n"
710
"                          Daten beginnen"
772
"                          Daten beginnen"
711
773
712
#: src/xz/message.c:1166
774
#: src/xz/message.c:1037
713
msgid ""
775
msgid ""
714
"      --flush-timeout=TIMEOUT\n"
776
"      --flush-timeout=TIMEOUT\n"
715
"                      when compressing, if more than TIMEOUT milliseconds has\n"
777
"                      when compressing, if more than TIMEOUT milliseconds has\n"
Lines 723-739 Link Here
723
"                          Eingabedaten den Prozess blockieren würde, dann werden\n"
785
"                          Eingabedaten den Prozess blockieren würde, dann werden\n"
724
"                          alle noch ausstehenden Daten geschrieben"
786
"                          alle noch ausstehenden Daten geschrieben"
725
787
726
#: src/xz/message.c:1172
788
#: src/xz/message.c:1043
727
#, no-c-format
789
#, no-c-format
728
msgid ""
790
msgid ""
729
"      --memlimit-compress=LIMIT\n"
791
"      --memlimit-compress=LIMIT\n"
730
"      --memlimit-decompress=LIMIT\n"
792
"      --memlimit-decompress=LIMIT\n"
793
"      --memlimit-mt-decompress=LIMIT\n"
731
"  -M, --memlimit=LIMIT\n"
794
"  -M, --memlimit=LIMIT\n"
732
"                      set memory usage limit for compression, decompression,\n"
795
"                      set memory usage limit for compression, decompression,\n"
733
"                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
796
"                      threaded decompression, or all of these; LIMIT is in\n"
797
"                      bytes, % of RAM, or 0 for defaults"
734
msgstr ""
798
msgstr ""
735
"      --memlimit-compress=BEGRENZUNG\n"
799
"      --memlimit-compress=BEGRENZUNG\n"
736
"      --memlimit-decompress=BEGRENZUNG\n"
800
"      --memlimit-decompress=BEGRENZUNG\n"
801
"      --memlimit-mt-decompress=BEGRENZUNG\n"
737
"  -M, --memlimit=BEGRENZUNG\n"
802
"  -M, --memlimit=BEGRENZUNG\n"
738
"                        Speicherbedarfsbegrenzung für Kompression,\n"
803
"                        Speicherbedarfsbegrenzung für Kompression,\n"
739
"                          Dekompression oder beides setzen; die BEGRENZUNG\n"
804
"                          Dekompression oder beides setzen; die BEGRENZUNG\n"
Lines 741-747 Link Here
741
"                          Geben Sie 0 an, um die Grundeinstellungen zu\n"
806
"                          Geben Sie 0 an, um die Grundeinstellungen zu\n"
742
"                          verwenden."
807
"                          verwenden."
743
808
744
#: src/xz/message.c:1179
809
#: src/xz/message.c:1052
745
msgid ""
810
msgid ""
746
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
811
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
747
"                      give an error instead of adjusting the settings downwards"
812
"                      give an error instead of adjusting the settings downwards"
Lines 751-757 Link Here
751
"                          Fehler ausgegeben, statt die Einstellungen\n"
816
"                          Fehler ausgegeben, statt die Einstellungen\n"
752
"                          nach unten anzupassen."
817
"                          nach unten anzupassen."
753
818
754
#: src/xz/message.c:1185
819
#: src/xz/message.c:1058
755
msgid ""
820
msgid ""
756
"\n"
821
"\n"
757
" Custom filter chain for compression (alternative for using presets):"
822
" Custom filter chain for compression (alternative for using presets):"
Lines 759-765 Link Here
759
"\n"
824
"\n"
760
" Benutzerdefinierte Filterkette für Kompression (alternativ zu Voreinstellung):"
825
" Benutzerdefinierte Filterkette für Kompression (alternativ zu Voreinstellung):"
761
826
762
#: src/xz/message.c:1194
827
#: src/xz/message.c:1067
763
msgid ""
828
msgid ""
764
"\n"
829
"\n"
765
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
830
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
Lines 784-821 Link Here
784
"                          lc=ZAHL     Anzahl der Literal-Kontext-Bits (0-4; 3)\n"
849
"                          lc=ZAHL     Anzahl der Literal-Kontext-Bits (0-4; 3)\n"
785
"                          lp=ZAHL     Anzahl der Literal-Positions-Bits (0-4; 0)\n"
850
"                          lp=ZAHL     Anzahl der Literal-Positions-Bits (0-4; 0)\n"
786
"                          pb=ZAHL     Anzahl der Positions-Bits (0-4; 2)\n"
851
"                          pb=ZAHL     Anzahl der Positions-Bits (0-4; 2)\n"
787
"                          mode=MODUS  Kompressionsmodus (fast, normal; normal)\n"
852
"                          mode=MODUS Kompressionsmodus (fast, normal; normal)\n"
788
"                          nice=ZAHL   Nice-Länge eines Treffers (2-273; 64)\n"
853
"                          nice=ZAHL  Nice-Länge eines Treffers (2-273; 64)\n"
789
"                          mf=NAME     Algorithmus zum Auffinden von\n"
854
"                          mf=NAME    Algorithmus zum Auffinden von\n"
790
"                                      Übereinstimmungen\n"
855
"                                     Übereinstimmungen (hc3, hc4, bt2, bt3, bt4;\n"
791
"                                      (hc3, hc4, bt2, bt3, bt4; bt4)\n"
856
"                                     bt4)\n"
792
"                          depth=ZAHL  Maximale Suchtiefe; 0=automatisch\n"
857
"                          depth=ZAHL Maximale Suchtiefe; 0=automatisch\n"
793
"                                      (Voreinstellung)"
858
"                                     (Voreinstellung)"
794
859
795
#: src/xz/message.c:1209
860
#: src/xz/message.c:1082
796
msgid ""
861
msgid ""
797
"\n"
862
"\n"
798
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
863
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
864
"  --arm[=OPTS]        ARM BCJ filter\n"
865
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter\n"
866
"  --arm64[=OPTS]      ARM64 BCJ filter\n"
799
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
867
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
800
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
868
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
801
"  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
802
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
803
"  --sparc[=OPTS]      SPARC BCJ filter\n"
869
"  --sparc[=OPTS]      SPARC BCJ filter\n"
804
"                      Valid OPTS for all BCJ filters:\n"
870
"                      Valid OPTS for all BCJ filters:\n"
805
"                        start=NUM  start offset for conversions (default=0)"
871
"                        start=NUM  start offset for conversions (default=0)"
806
msgstr ""
872
msgstr ""
807
"\n"
873
"\n"
808
"  --x86[=OPTIONEN]      x86 BCJ-Filter (32-bit und 64-bit)\n"
874
"  --x86[=OPTIONEN]      x86 BCJ-Filter (32-bit und 64-bit)\n"
875
"  --arm[=OPTIONEN]      ARM-BCJ-Filter\n"
876
"  --armthumb[=OPTIONEN] ARM-Thumb-BCJ-Filter\n"
877
"  --arm64[=OPTIONEN]    ARM64-BCJ-Filter\n"
809
"  --powerpc[=OPTIONEN]  PowerPC-BCJ-Filter (nur Big Endian)\n"
878
"  --powerpc[=OPTIONEN]  PowerPC-BCJ-Filter (nur Big Endian)\n"
810
"  --ia64[=OPTIONEN]     IA64-(Itanium-)BCJ-Filter\n"
879
"  --ia64[=OPTIONEN]     IA64-(Itanium-)BCJ-Filter\n"
811
"  --arm[=OPTIONEN]      ARM-BCJ-Filter (nur Little Endian)\n"
812
"  --armthumb[=OPTIONEN] ARM-Thumb-BCJ-Filter (nur Little Endian)\n"
813
"  --sparc[=OPTIONEN]    SPARC-BCJ-Filter\n"
880
"  --sparc[=OPTIONEN]    SPARC-BCJ-Filter\n"
814
"                        Zulässige Optionen für alle BCJ-Filter:\n"
881
"                        Zulässige Optionen für alle BCJ-Filter:\n"
815
"                          start=ZAHL Startversatz für Konversion\n"
882
"                          start=ZAHL Startversatz für Konversion\n"
816
"                          (Voreinstellung=0)"
883
"                          (Voreinstellung=0)"
817
884
818
#: src/xz/message.c:1221
885
#: src/xz/message.c:1095
819
msgid ""
886
msgid ""
820
"\n"
887
"\n"
821
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
888
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
Lines 828-834 Link Here
828
"                          dist=NUM  Abstand zwischen den Bytes, die voneinander\n"
895
"                          dist=NUM  Abstand zwischen den Bytes, die voneinander\n"
829
"                                    subtrahiert werden (1-256; 1)"
896
"                                    subtrahiert werden (1-256; 1)"
830
897
831
#: src/xz/message.c:1229
898
#: src/xz/message.c:1103
832
msgid ""
899
msgid ""
833
"\n"
900
"\n"
834
" Other options:\n"
901
" Other options:\n"
Lines 836-842 Link Here
836
"\n"
903
"\n"
837
" Andere Optionen:\n"
904
" Andere Optionen:\n"
838
905
839
#: src/xz/message.c:1232
906
#: src/xz/message.c:1106
840
msgid ""
907
msgid ""
841
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
908
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
842
"  -v, --verbose       be verbose; specify twice for even more verbose"
909
"  -v, --verbose       be verbose; specify twice for even more verbose"
Lines 846-862 Link Here
846
"  -v, --verbose         Ausführlicher Modus; wird diese Option zweimal\n"
913
"  -v, --verbose         Ausführlicher Modus; wird diese Option zweimal\n"
847
"                          angegeben, erfolgen noch ausführlichere Ausgaben"
914
"                          angegeben, erfolgen noch ausführlichere Ausgaben"
848
915
849
#: src/xz/message.c:1237
916
#: src/xz/message.c:1111
850
msgid "  -Q, --no-warn       make warnings not affect the exit status"
917
msgid "  -Q, --no-warn       make warnings not affect the exit status"
851
msgstr "  -Q, --no-warn         Warnungen verändern nicht den Exit-Status"
918
msgstr "  -Q, --no-warn         Warnungen verändern nicht den Exit-Status"
852
919
853
#: src/xz/message.c:1239
920
#: src/xz/message.c:1113
854
msgid "      --robot         use machine-parsable messages (useful for scripts)"
921
msgid "      --robot         use machine-parsable messages (useful for scripts)"
855
msgstr ""
922
msgstr ""
856
"      --robot           Maschinenlesbare Meldungen ausgeben (nützlich für\n"
923
"      --robot           Maschinenlesbare Meldungen ausgeben (nützlich für\n"
857
"                        Skripte)"
924
"                        Skripte)"
858
925
859
#: src/xz/message.c:1242
926
#: src/xz/message.c:1116
860
msgid ""
927
msgid ""
861
"      --info-memory   display the total amount of RAM and the currently active\n"
928
"      --info-memory   display the total amount of RAM and the currently active\n"
862
"                      memory usage limits, and exit"
929
"                      memory usage limits, and exit"
Lines 865-871 Link Here
865
"                          Speicherbedarfsbegrenzung anzeigen\n"
932
"                          Speicherbedarfsbegrenzung anzeigen\n"
866
"                          und das Programm beenden"
933
"                          und das Programm beenden"
867
934
868
#: src/xz/message.c:1245
935
#: src/xz/message.c:1119
869
msgid ""
936
msgid ""
870
"  -h, --help          display the short help (lists only the basic options)\n"
937
"  -h, --help          display the short help (lists only the basic options)\n"
871
"  -H, --long-help     display this long help and exit"
938
"  -H, --long-help     display this long help and exit"
Lines 874-880 Link Here
874
"                          Optionen)\n"
941
"                          Optionen)\n"
875
"  -H, --long-help       Diese lange Hilfe anzeigen und das Programm beenden"
942
"  -H, --long-help       Diese lange Hilfe anzeigen und das Programm beenden"
876
943
877
#: src/xz/message.c:1249
944
#: src/xz/message.c:1123
878
msgid ""
945
msgid ""
879
"  -h, --help          display this short help and exit\n"
946
"  -h, --help          display this short help and exit\n"
880
"  -H, --long-help     display the long help (lists also the advanced options)"
947
"  -H, --long-help     display the long help (lists also the advanced options)"
Lines 883-893 Link Here
883
"  -H, --long-help       Die lange Hilfe (und damit auch fortgeschrittene\n"
950
"  -H, --long-help       Die lange Hilfe (und damit auch fortgeschrittene\n"
884
"                          Optionen) anzeigen"
951
"                          Optionen) anzeigen"
885
952
886
#: src/xz/message.c:1254
953
#: src/xz/message.c:1128
887
msgid "  -V, --version       display the version number and exit"
954
msgid "  -V, --version       display the version number and exit"
888
msgstr "  -V, --version         Versionsnummer anzeigen und beenden"
955
msgstr "  -V, --version         Versionsnummer anzeigen und beenden"
889
956
890
#: src/xz/message.c:1256
957
#: src/xz/message.c:1130
891
msgid ""
958
msgid ""
892
"\n"
959
"\n"
893
"With no FILE, or when FILE is -, read standard input.\n"
960
"With no FILE, or when FILE is -, read standard input.\n"
Lines 900-916 Link Here
900
#. for this package. Please add _another line_ saying
967
#. for this package. Please add _another line_ saying
901
#. "Report translation bugs to <...>\n" with the email or WWW
968
#. "Report translation bugs to <...>\n" with the email or WWW
902
#. address for translation bugs. Thanks.
969
#. address for translation bugs. Thanks.
903
#: src/xz/message.c:1262
970
#: src/xz/message.c:1136
904
#, c-format
971
#, c-format
905
msgid "Report bugs to <%s> (in English or Finnish).\n"
972
msgid "Report bugs to <%s> (in English or Finnish).\n"
906
msgstr "Melden Sie Fehler an <%s> (auf Englisch oder Finnisch).\n"
973
msgstr "Melden Sie Fehler an <%s> (auf Englisch oder Finnisch).\n"
907
974
908
#: src/xz/message.c:1264
975
#: src/xz/message.c:1138
909
#, c-format
976
#, c-format
910
msgid "%s home page: <%s>\n"
977
msgid "%s home page: <%s>\n"
911
msgstr "%s-Homepage: <%s>\n"
978
msgstr "%s-Homepage: <%s>\n"
912
979
913
#: src/xz/message.c:1268
980
#: src/xz/message.c:1142
914
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
981
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
915
msgstr "DIES IST EINE NICHT FÜR DEN PRODUKTIVBETRIEB GEEIGNETE ENTWICKLERVERSION."
982
msgstr "DIES IST EINE NICHT FÜR DEN PRODUKTIVBETRIEB GEEIGNETE ENTWICKLERVERSION."
916
983
Lines 938-964 Link Here
938
msgid "The sum of lc and lp must not exceed 4"
1005
msgid "The sum of lc and lp must not exceed 4"
939
msgstr "Die Summe aus lc und lp darf höchstens 4 sein"
1006
msgstr "Die Summe aus lc und lp darf höchstens 4 sein"
940
1007
941
#: src/xz/options.c:359
1008
#: src/xz/suffix.c:160
942
#, c-format
1009
#, c-format
943
msgid "The selected match finder requires at least nice=%<PRIu32>"
944
msgstr "Der ausgewählte Algorithmus zum Auffinden von Übereinstimmungen braucht mindestens nice=%<PRIu32>"
945
946
#: src/xz/suffix.c:133 src/xz/suffix.c:258
947
#, c-format
948
msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
949
msgstr "%s: Mit --format=raw ist --suffix=.SUF notwendig, falls nicht in die Standardausgabe geschrieben wird"
950
951
#: src/xz/suffix.c:164
952
#, c-format
953
msgid "%s: Filename has an unknown suffix, skipping"
1010
msgid "%s: Filename has an unknown suffix, skipping"
954
msgstr "%s: Dateiname hat unbekanntes Suffix, wird übersprungen"
1011
msgstr "%s: Dateiname hat unbekanntes Suffix, wird übersprungen"
955
1012
956
#: src/xz/suffix.c:185
1013
#: src/xz/suffix.c:181
957
#, c-format
1014
#, c-format
958
msgid "%s: File already has `%s' suffix, skipping"
1015
msgid "%s: File already has `%s' suffix, skipping"
959
msgstr "%s: Datei hat bereits das Suffix »%s«, wird übersprungen"
1016
msgstr "%s: Datei hat bereits das Suffix »%s«, wird übersprungen"
960
1017
961
#: src/xz/suffix.c:393
1018
#: src/xz/suffix.c:388
962
#, c-format
1019
#, c-format
963
msgid "%s: Invalid filename suffix"
1020
msgid "%s: Invalid filename suffix"
964
msgstr "%s: Ungültige Dateiendung"
1021
msgstr "%s: Ungültige Dateiendung"
Lines 982-996 Link Here
982
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
1039
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
983
msgstr "Wert der Option »%s« muss im Bereich [%<PRIu64>, %<PRIu64>] sein"
1040
msgstr "Wert der Option »%s« muss im Bereich [%<PRIu64>, %<PRIu64>] sein"
984
1041
985
#: src/xz/util.c:267
1042
#: src/xz/util.c:269
986
msgid "Empty filename, skipping"
987
msgstr "Leerer Dateiname, wird übersprungen"
988
989
#: src/xz/util.c:281
990
msgid "Compressed data cannot be read from a terminal"
1043
msgid "Compressed data cannot be read from a terminal"
991
msgstr "Komprimierte Daten können nicht vom Terminal gelesen werden"
1044
msgstr "Komprimierte Daten können nicht vom Terminal gelesen werden"
992
1045
993
#: src/xz/util.c:294
1046
#: src/xz/util.c:282
994
msgid "Compressed data cannot be written to a terminal"
1047
msgid "Compressed data cannot be written to a terminal"
995
msgstr "Komprimierte Daten können nicht auf das Terminal geschrieben werden"
1048
msgstr "Komprimierte Daten können nicht auf das Terminal geschrieben werden"
996
1049
Lines 1001-1009 Link Here
1001
#: src/common/tuklib_exit.c:43
1054
#: src/common/tuklib_exit.c:43
1002
msgid "Unknown error"
1055
msgid "Unknown error"
1003
msgstr "Unbekannter Fehler"
1056
msgstr "Unbekannter Fehler"
1004
1005
#~ msgid "Sandbox is disabled due to incompatible command line arguments"
1006
#~ msgstr "Sandbox ist wegen inkompatibler Befehlszeilenargumente deaktiviert"
1007
1008
#~ msgid "Sandbox was successfully enabled"
1009
#~ msgstr "Sandbox wurde erfolgreich aktiviert"
(-)xz-5.2.5/po/fi.po (-259 / +347 lines)
Lines 1-118 Link Here
1
# Finnish translations for xz package
1
# Finnish translations for xz package
2
# Suomenkielinen käännös xz-paketille.
2
# Suomenkielinen käännös xz-paketille.
3
# This file is put in the public domain.
3
# This file is put in the public domain.
4
# Lauri Nurmi <lanurmi@iki.fi>, 2019, 2020.
4
# Lauri Nurmi <lanurmi@iki.fi>, 2019, 2020, 2022.
5
#
5
#
6
msgid ""
6
msgid ""
7
msgstr ""
7
msgstr ""
8
"Project-Id-Version: xz 5.2.4\n"
8
"Project-Id-Version: xz 5.4.0-pre1\n"
9
"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
9
"Report-Msgid-Bugs-To: xz@tukaani.org\n"
10
"POT-Creation-Date: 2020-03-17 16:29+0200\n"
10
"POT-Creation-Date: 2023-05-04 22:32+0800\n"
11
"PO-Revision-Date: 2020-02-14 18:33+0200\n"
11
"PO-Revision-Date: 2022-11-10 16:17+0200\n"
12
"Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\n"
12
"Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\n"
13
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
13
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
14
"Language: fi\n"
14
"Language: fi\n"
15
"MIME-Version: 1.0\n"
15
"MIME-Version: 1.0\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
17
"Content-Transfer-Encoding: 8bit\n"
17
"Content-Transfer-Encoding: 8bit\n"
18
"X-Bugs: Report translation errors to the Language-Team address.\n"
19
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
18
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
20
"X-Generator: Poedit 2.2.4\n"
19
"X-Bugs: Report translation errors to the Language-Team address.\n"
20
"X-Generator: Poedit 3.2\n"
21
21
22
#: src/xz/args.c:63
22
#: src/xz/args.c:77
23
#, c-format
23
#, c-format
24
msgid "%s: Invalid argument to --block-list"
24
msgid "%s: Invalid argument to --block-list"
25
msgstr "%s: Virheellinen argumentti valitsimelle --block-list"
25
msgstr "%s: Virheellinen argumentti valitsimelle --block-list"
26
26
27
#: src/xz/args.c:73
27
#: src/xz/args.c:87
28
#, c-format
28
#, c-format
29
msgid "%s: Too many arguments to --block-list"
29
msgid "%s: Too many arguments to --block-list"
30
msgstr "%s: Liian monta argumenttia valitsimelle --block-list"
30
msgstr "%s: Liian monta argumenttia valitsimelle --block-list"
31
31
32
#: src/xz/args.c:102
32
#: src/xz/args.c:116
33
msgid "0 can only be used as the last element in --block-list"
33
msgid "0 can only be used as the last element in --block-list"
34
msgstr "0:aa voi käyttää vain viimeisenä alkiona valitsimen --block-list kanssa"
34
msgstr "0:aa voi käyttää vain viimeisenä alkiona valitsimen --block-list kanssa"
35
35
36
#: src/xz/args.c:406
36
#: src/xz/args.c:451
37
#, c-format
37
#, c-format
38
msgid "%s: Unknown file format type"
38
msgid "%s: Unknown file format type"
39
msgstr "%s: Tuntematon tiedostomuototyyppi"
39
msgstr "%s: Tuntematon tiedostomuototyyppi"
40
40
41
#: src/xz/args.c:429 src/xz/args.c:437
41
#: src/xz/args.c:474 src/xz/args.c:482
42
#, c-format
42
#, c-format
43
msgid "%s: Unsupported integrity check type"
43
msgid "%s: Unsupported integrity check type"
44
msgstr "%s: Eheystarkistuksen tyyppiä ei tueta"
44
msgstr "%s: Eheystarkistuksen tyyppiä ei tueta"
45
45
46
#: src/xz/args.c:473
46
#: src/xz/args.c:518
47
msgid "Only one file can be specified with `--files' or `--files0'."
47
msgid "Only one file can be specified with `--files' or `--files0'."
48
msgstr "Vain yksi tiedosto voidaan antaa valitsimille ”--files” ja ”--files0”."
48
msgstr "Vain yksi tiedosto voidaan antaa valitsimille ”--files” ja ”--files0”."
49
49
50
#: src/xz/args.c:541
50
#: src/xz/args.c:586
51
#, c-format
51
#, c-format
52
msgid "The environment variable %s contains too many arguments"
52
msgid "The environment variable %s contains too many arguments"
53
msgstr "Ympäristömuuttuja %s sisältää liian monta argumenttia"
53
msgstr "Ympäristömuuttuja %s sisältää liian monta argumenttia"
54
54
55
#: src/xz/args.c:643
55
#: src/xz/args.c:688
56
msgid "Compression support was disabled at build time"
56
msgid "Compression support was disabled at build time"
57
msgstr "Tiivistämistuki on poistettu käytöstä käännösaikana"
57
msgstr "Tiivistämistuki on poistettu käytöstä käännösaikana"
58
58
59
#: src/xz/args.c:650
59
#: src/xz/args.c:695
60
msgid "Decompression support was disabled at build time"
60
msgid "Decompression support was disabled at build time"
61
msgstr "Purkutuki on poistettu käytöstä käännösaikana"
61
msgstr "Purkutuki on poistettu käytöstä käännösaikana"
62
62
63
#: src/xz/coder.c:110
63
#: src/xz/args.c:701
64
msgid "Compression of lzip files (.lz) is not supported"
65
msgstr "Lzip-tiedostojen (.lz) pakkaamista ei tueta"
66
67
#: src/xz/args.c:732
68
#, fuzzy
69
#| msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
70
msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout"
71
msgstr "%s: --format=raw vaatii, että --suffix=.PÄÄTE on annettu, ellei kirjoiteta vakiotulosteeseen"
72
73
#: src/xz/coder.c:115
64
msgid "Maximum number of filters is four"
74
msgid "Maximum number of filters is four"
65
msgstr "Suodattimien enimmäismäärä on neljä"
75
msgstr "Suodattimien enimmäismäärä on neljä"
66
76
67
#: src/xz/coder.c:129
77
#: src/xz/coder.c:134
68
msgid "Memory usage limit is too low for the given filter setup."
78
msgid "Memory usage limit is too low for the given filter setup."
69
msgstr "Muistinkäytön raja on liian matala valituille suotimille."
79
msgstr "Muistinkäytön raja on liian matala valituille suotimille."
70
80
71
#: src/xz/coder.c:159
81
#: src/xz/coder.c:169
72
msgid "Using a preset in raw mode is discouraged."
82
msgid "Using a preset in raw mode is discouraged."
73
msgstr "Esiasetusten käyttö raw-tilassa ei ole suositeltavaa."
83
msgstr "Esiasetusten käyttö raw-tilassa ei ole suositeltavaa."
74
84
75
#: src/xz/coder.c:161
85
#: src/xz/coder.c:171
76
msgid "The exact options of the presets may vary between software versions."
86
msgid "The exact options of the presets may vary between software versions."
77
msgstr "Esiasetusten tarkat asetukset saattavat vaihdella ohjelmistoversioiden välillä."
87
msgstr "Esiasetusten tarkat asetukset saattavat vaihdella ohjelmistoversioiden välillä."
78
88
79
#: src/xz/coder.c:184
89
#: src/xz/coder.c:194
80
msgid "The .lzma format supports only the LZMA1 filter"
90
msgid "The .lzma format supports only the LZMA1 filter"
81
msgstr ".lzma-muoto tukee vain LZMA1-suodinta"
91
msgstr ".lzma-muoto tukee vain LZMA1-suodinta"
82
92
83
#: src/xz/coder.c:192
93
#: src/xz/coder.c:202
84
msgid "LZMA1 cannot be used with the .xz format"
94
msgid "LZMA1 cannot be used with the .xz format"
85
msgstr "LZMA1:tä ei voi käyttää .xz-muodon kanssa"
95
msgstr "LZMA1:tä ei voi käyttää .xz-muodon kanssa"
86
96
87
#: src/xz/coder.c:209
97
#: src/xz/coder.c:219
88
msgid "The filter chain is incompatible with --flush-timeout"
98
msgid "The filter chain is incompatible with --flush-timeout"
89
msgstr "Suodinketju on yhteensopimaton valitsimen --flush-timeout kanssa"
99
msgstr "Suodinketju on yhteensopimaton valitsimen --flush-timeout kanssa"
90
100
91
#: src/xz/coder.c:215
101
#: src/xz/coder.c:225
92
msgid "Switching to single-threaded mode due to --flush-timeout"
102
msgid "Switching to single-threaded mode due to --flush-timeout"
93
msgstr "Vaihdetaan yksisäikeiseen tilaan valitsimen --flush-timeout vuoksi"
103
msgstr "Vaihdetaan yksisäikeiseen tilaan valitsimen --flush-timeout vuoksi"
94
104
95
#: src/xz/coder.c:235
105
#: src/xz/coder.c:249
96
#, c-format
106
#, c-format
97
msgid "Using up to %<PRIu32> threads."
107
msgid "Using up to %<PRIu32> threads."
98
msgstr "Käytetään enintään %<PRIu32> säiettä."
108
msgstr "Käytetään enintään %<PRIu32> säiettä."
99
109
100
#: src/xz/coder.c:251
110
#: src/xz/coder.c:265
101
msgid "Unsupported filter chain or filter options"
111
msgid "Unsupported filter chain or filter options"
102
msgstr "Ei-tuettu suodinketju tai suotimen asetukset"
112
msgstr "Ei-tuettu suodinketju tai suotimen asetukset"
103
113
104
#: src/xz/coder.c:263
114
#: src/xz/coder.c:277
105
#, c-format
115
#, c-format
106
msgid "Decompression will need %s MiB of memory."
116
msgid "Decompression will need %s MiB of memory."
107
msgstr "Purkaminen vaatii %s MiB muistia."
117
msgstr "Purkaminen vaatii %s MiB muistia."
108
118
109
#: src/xz/coder.c:300
119
#: src/xz/coder.c:309
110
#, c-format
120
#, c-format
111
msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
121
msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
112
msgstr "Pudotettiin säikeiden määrä %s säikeestä %s:een, jottei ylitettäisi %s MiB:n rajaa muistinkäytölle"
122
msgstr "Pudotettiin säikeiden määrä %s säikeestä %s:een, jottei ylitettäisi %s MiB:n rajaa muistinkäytölle"
113
123
114
#: src/xz/coder.c:354
124
#: src/xz/coder.c:329
115
#, c-format
125
#, c-format
126
msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway."
127
msgstr "Pudotettiin säikeiden määrä %s säikeestä yhteen. Automaattinen %s MiB:n raja muistinkäytölle ylittyy silti. Vaaditaan %s MiB muistia. Jatketaan kaikesta huolimatta."
128
129
#: src/xz/coder.c:356
130
#, c-format
131
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
132
msgstr "Siirrytään yhden säikeen tilaan, jottei ylitettäisi %s MiB:n rajaa muistinkäytölle"
133
134
#: src/xz/coder.c:411
135
#, c-format
116
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
136
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
117
msgstr "Pudotettiin LZMA%c-sanaston koko %s MiB:stä %s MiB:hen, jottei ylitettäisi %s MiB:n rajaa muistinkäytölle"
137
msgstr "Pudotettiin LZMA%c-sanaston koko %s MiB:stä %s MiB:hen, jottei ylitettäisi %s MiB:n rajaa muistinkäytölle"
118
138
Lines 121-131 Link Here
121
msgid "Error creating a pipe: %s"
141
msgid "Error creating a pipe: %s"
122
msgstr "Virhe putkea luodessa: %s"
142
msgstr "Virhe putkea luodessa: %s"
123
143
124
#: src/xz/file_io.c:224
144
#: src/xz/file_io.c:252
125
msgid "Failed to enable the sandbox"
145
msgid "Failed to enable the sandbox"
126
msgstr "Hiekkalaatikon ottaminen käyttöön epäonnistui"
146
msgstr "Hiekkalaatikon ottaminen käyttöön epäonnistui"
127
147
128
#: src/xz/file_io.c:266
148
#: src/xz/file_io.c:294
129
#, c-format
149
#, c-format
130
msgid "%s: poll() failed: %s"
150
msgid "%s: poll() failed: %s"
131
msgstr "%s: poll()-kutsu epäonnistui: %s"
151
msgstr "%s: poll()-kutsu epäonnistui: %s"
Lines 140-334 Link Here
140
#. it is possible that the user has put a new file in place
160
#. it is possible that the user has put a new file in place
141
#. of the original file, and in that case it obviously
161
#. of the original file, and in that case it obviously
142
#. shouldn't be removed.
162
#. shouldn't be removed.
143
#: src/xz/file_io.c:333
163
#: src/xz/file_io.c:361
144
#, c-format
164
#, c-format
145
msgid "%s: File seems to have been moved, not removing"
165
msgid "%s: File seems to have been moved, not removing"
146
msgstr "%s: Tiedosto on nähtävästi siirretty, ei poisteta"
166
msgstr "%s: Tiedosto on nähtävästi siirretty, ei poisteta"
147
167
148
#: src/xz/file_io.c:340 src/xz/file_io.c:882
168
#: src/xz/file_io.c:368 src/xz/file_io.c:924
149
#, c-format
169
#, c-format
150
msgid "%s: Cannot remove: %s"
170
msgid "%s: Cannot remove: %s"
151
msgstr "%s: Ei voi poistaa: %s"
171
msgstr "%s: Ei voi poistaa: %s"
152
172
153
#: src/xz/file_io.c:366
173
#: src/xz/file_io.c:394
154
#, c-format
174
#, c-format
155
msgid "%s: Cannot set the file owner: %s"
175
msgid "%s: Cannot set the file owner: %s"
156
msgstr "%s: Tiedoston omistajaa ei voi asettaa: %s"
176
msgstr "%s: Tiedoston omistajaa ei voi asettaa: %s"
157
177
158
#: src/xz/file_io.c:372
178
#: src/xz/file_io.c:407
159
#, c-format
179
#, c-format
160
msgid "%s: Cannot set the file group: %s"
180
msgid "%s: Cannot set the file group: %s"
161
msgstr "%s: Tiedoston ryhmää ei voi asettaa: %s"
181
msgstr "%s: Tiedoston ryhmää ei voi asettaa: %s"
162
182
163
#: src/xz/file_io.c:391
183
#: src/xz/file_io.c:426
164
#, c-format
184
#, c-format
165
msgid "%s: Cannot set the file permissions: %s"
185
msgid "%s: Cannot set the file permissions: %s"
166
msgstr "%s: Tiedoston oikeuksia ei voi asettaa: %s"
186
msgstr "%s: Tiedoston oikeuksia ei voi asettaa: %s"
167
187
168
#: src/xz/file_io.c:517
188
#: src/xz/file_io.c:552
169
#, c-format
189
#, c-format
170
msgid "Error getting the file status flags from standard input: %s"
190
msgid "Error getting the file status flags from standard input: %s"
171
msgstr "Virhe tiedoston tilalippujen noutamisessa vakiosyötteelle: %s"
191
msgstr "Virhe tiedoston tilalippujen noutamisessa vakiosyötteelle: %s"
172
192
173
#: src/xz/file_io.c:574 src/xz/file_io.c:636
193
#: src/xz/file_io.c:610 src/xz/file_io.c:672
174
#, c-format
194
#, c-format
175
msgid "%s: Is a symbolic link, skipping"
195
msgid "%s: Is a symbolic link, skipping"
176
msgstr "%s: On symbolinen linkki, ohitetaan"
196
msgstr "%s: On symbolinen linkki, ohitetaan"
177
197
178
#: src/xz/file_io.c:665
198
#: src/xz/file_io.c:701
179
#, c-format
199
#, c-format
180
msgid "%s: Is a directory, skipping"
200
msgid "%s: Is a directory, skipping"
181
msgstr "%s: On hakemisto, ohitetaan"
201
msgstr "%s: On hakemisto, ohitetaan"
182
202
183
#: src/xz/file_io.c:671
203
#: src/xz/file_io.c:707
184
#, c-format
204
#, c-format
185
msgid "%s: Not a regular file, skipping"
205
msgid "%s: Not a regular file, skipping"
186
msgstr "%s: Ei ole tavallinen tiedosto, ohitetaan"
206
msgstr "%s: Ei ole tavallinen tiedosto, ohitetaan"
187
207
188
#: src/xz/file_io.c:688
208
#: src/xz/file_io.c:724
189
#, c-format
209
#, c-format
190
msgid "%s: File has setuid or setgid bit set, skipping"
210
msgid "%s: File has setuid or setgid bit set, skipping"
191
msgstr "%s: Tiedostolla on setuid- tai setgid-bitti, ohitetaan"
211
msgstr "%s: Tiedostolla on setuid- tai setgid-bitti, ohitetaan"
192
212
193
#: src/xz/file_io.c:695
213
#: src/xz/file_io.c:731
194
#, c-format
214
#, c-format
195
msgid "%s: File has sticky bit set, skipping"
215
msgid "%s: File has sticky bit set, skipping"
196
msgstr "%s: Tiedostolla on sticky-bitti, ohitetaan"
216
msgstr "%s: Tiedostolla on sticky-bitti, ohitetaan"
197
217
198
#: src/xz/file_io.c:702
218
#: src/xz/file_io.c:738
199
#, c-format
219
#, c-format
200
msgid "%s: Input file has more than one hard link, skipping"
220
msgid "%s: Input file has more than one hard link, skipping"
201
msgstr "%s: Syötetiedostoon on yli yksi kova linkki, ohitetaan"
221
msgstr "%s: Syötetiedostoon on yli yksi kova linkki, ohitetaan"
202
222
203
#: src/xz/file_io.c:792
223
#: src/xz/file_io.c:780
224
msgid "Empty filename, skipping"
225
msgstr "Tyhjä tiedostonimi, ohitetaan"
226
227
#: src/xz/file_io.c:834
204
#, c-format
228
#, c-format
205
msgid "Error restoring the status flags to standard input: %s"
229
msgid "Error restoring the status flags to standard input: %s"
206
msgstr "Virhe tilalippujen palauttamisessa vakiosyötteelle: %s"
230
msgstr "Virhe tilalippujen palauttamisessa vakiosyötteelle: %s"
207
231
208
#: src/xz/file_io.c:840
232
#: src/xz/file_io.c:882
209
#, c-format
233
#, c-format
210
msgid "Error getting the file status flags from standard output: %s"
234
msgid "Error getting the file status flags from standard output: %s"
211
msgstr "Virhe tiedoston tilalippujen noutamisessa vakiotulosteelle: %s"
235
msgstr "Virhe tiedoston tilalippujen noutamisessa vakiotulosteelle: %s"
212
236
213
#: src/xz/file_io.c:1018
237
#: src/xz/file_io.c:1060
214
#, c-format
238
#, c-format
215
msgid "Error restoring the O_APPEND flag to standard output: %s"
239
msgid "Error restoring the O_APPEND flag to standard output: %s"
216
msgstr "Virhe O_APPEND-lipun palauttamisessa vakiosyötteelle: %s"
240
msgstr "Virhe O_APPEND-lipun palauttamisessa vakiosyötteelle: %s"
217
241
218
#: src/xz/file_io.c:1030
242
#: src/xz/file_io.c:1072
219
#, c-format
243
#, c-format
220
msgid "%s: Closing the file failed: %s"
244
msgid "%s: Closing the file failed: %s"
221
msgstr "%s: Tiedoston sulkeminen epäonnistui: %s"
245
msgstr "%s: Tiedoston sulkeminen epäonnistui: %s"
222
246
223
#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
247
#: src/xz/file_io.c:1108 src/xz/file_io.c:1371
224
#, c-format
248
#, c-format
225
msgid "%s: Seeking failed when trying to create a sparse file: %s"
249
msgid "%s: Seeking failed when trying to create a sparse file: %s"
226
msgstr "%s: Siirtyminen epäonnistui yritettäessä luoda hajanaista tiedostoa: %s"
250
msgstr "%s: Siirtyminen epäonnistui yritettäessä luoda hajanaista tiedostoa: %s"
227
251
228
#: src/xz/file_io.c:1167
252
#: src/xz/file_io.c:1209
229
#, c-format
253
#, c-format
230
msgid "%s: Read error: %s"
254
msgid "%s: Read error: %s"
231
msgstr "%s: Lukuvirhe: %s"
255
msgstr "%s: Lukuvirhe: %s"
232
256
233
#: src/xz/file_io.c:1191
257
#: src/xz/file_io.c:1239
234
#, c-format
258
#, c-format
235
msgid "%s: Error seeking the file: %s"
259
msgid "%s: Error seeking the file: %s"
236
msgstr "%s: Virhe tiedostossa siirtymisessä: %s"
260
msgstr "%s: Virhe tiedostossa siirtymisessä: %s"
237
261
238
#: src/xz/file_io.c:1201
262
#: src/xz/file_io.c:1263
239
#, c-format
263
#, c-format
240
msgid "%s: Unexpected end of file"
264
msgid "%s: Unexpected end of file"
241
msgstr "%s: Odottamaton tiedoston loppu"
265
msgstr "%s: Odottamaton tiedoston loppu"
242
266
243
#: src/xz/file_io.c:1260
267
#: src/xz/file_io.c:1322
244
#, c-format
268
#, c-format
245
msgid "%s: Write error: %s"
269
msgid "%s: Write error: %s"
246
msgstr "%s: Kirjoitusvirhe: %s"
270
msgstr "%s: Kirjoitusvirhe: %s"
247
271
248
#: src/xz/hardware.c:137
272
#: src/xz/hardware.c:238
249
msgid "Disabled"
273
msgid "Disabled"
250
msgstr "Pois käytöstä"
274
msgstr "Pois käytöstä"
251
275
252
#. TRANSLATORS: Test with "xz --info-memory" to see if
276
#: src/xz/hardware.c:269
253
#. the alignment looks nice.
277
msgid "Amount of physical memory (RAM):"
254
#: src/xz/hardware.c:156
278
msgstr "Fyysisen muistin kokonaismäärä (RAM):"
255
msgid "Total amount of physical memory (RAM): "
256
msgstr "Fyysisen muistin kokonaismäärä (RAM):  "
257
279
258
#: src/xz/hardware.c:158
280
#: src/xz/hardware.c:270
259
msgid "Memory usage limit for compression:    "
281
msgid "Number of processor threads:"
260
msgstr "Muistinkäytön raja tiivistykselle:     "
282
msgstr "Suoritinsäikeiden määrä:"
261
283
262
#: src/xz/hardware.c:160
284
#: src/xz/hardware.c:271
263
msgid "Memory usage limit for decompression:  "
285
msgid "Compression:"
264
msgstr "Muistinkäytön raja purkamiselle:       "
286
msgstr "Tiivistys:"
265
287
288
#: src/xz/hardware.c:272
289
msgid "Decompression:"
290
msgstr "Purku:"
291
292
#: src/xz/hardware.c:273
293
msgid "Multi-threaded decompression:"
294
msgstr "Monisäikeinen purku:"
295
296
#: src/xz/hardware.c:274
297
msgid "Default for -T0:"
298
msgstr "-T0:n oletusarvo:"
299
300
#: src/xz/hardware.c:292
301
msgid "Hardware information:"
302
msgstr "Laitteiston tiedot:"
303
304
#: src/xz/hardware.c:299
305
msgid "Memory usage limits:"
306
msgstr "Muistinkäytön rajat:"
307
308
#: src/xz/list.c:68
309
msgid "Streams:"
310
msgstr "Virrat:"
311
312
#: src/xz/list.c:69
313
msgid "Blocks:"
314
msgstr "Lohkot:"
315
316
#: src/xz/list.c:70
317
msgid "Compressed size:"
318
msgstr "Tiivistetty koko:"
319
320
#: src/xz/list.c:71
321
msgid "Uncompressed size:"
322
msgstr "Tiivistämätön koko:"
323
324
#: src/xz/list.c:72
325
msgid "Ratio:"
326
msgstr "Suhde:"
327
328
#: src/xz/list.c:73
329
msgid "Check:"
330
msgstr "Tarkistus:"
331
332
#: src/xz/list.c:74
333
msgid "Stream Padding:"
334
msgstr "Virran tasaus:"
335
336
#: src/xz/list.c:75
337
msgid "Memory needed:"
338
msgstr "Tarvittava muisti:"
339
340
#: src/xz/list.c:76
341
msgid "Sizes in headers:"
342
msgstr "Koot otsakkeissa:"
343
344
#: src/xz/list.c:79
345
msgid "Number of files:"
346
msgstr "Tiedostojen määrä:"
347
348
#: src/xz/list.c:122
349
msgid "Stream"
350
msgstr "Virta"
351
352
#: src/xz/list.c:123
353
msgid "Block"
354
msgstr "Lohko"
355
356
#: src/xz/list.c:124
357
msgid "Blocks"
358
msgstr "Lohkot"
359
360
#: src/xz/list.c:125
361
msgid "CompOffset"
362
msgstr "TiivSiirr."
363
364
#: src/xz/list.c:126
365
msgid "UncompOffset"
366
msgstr "Tv:tönSiirr."
367
368
#: src/xz/list.c:127
369
msgid "CompSize"
370
msgstr "TiivKoko"
371
372
#: src/xz/list.c:128
373
msgid "UncompSize"
374
msgstr "Tv:tönKoko"
375
376
#: src/xz/list.c:129
377
msgid "TotalSize"
378
msgstr "Yht.Koko"
379
380
#: src/xz/list.c:130
381
msgid "Ratio"
382
msgstr "Suhde"
383
384
#: src/xz/list.c:131
385
msgid "Check"
386
msgstr "Tark."
387
388
#: src/xz/list.c:132
389
msgid "CheckVal"
390
msgstr "Tark.arvo"
391
392
#: src/xz/list.c:133
393
msgid "Padding"
394
msgstr "Tasaus"
395
396
#: src/xz/list.c:134
397
msgid "Header"
398
msgstr "Otsake"
399
400
#: src/xz/list.c:135
401
msgid "Flags"
402
msgstr "Liput"
403
404
#: src/xz/list.c:136
405
msgid "MemUsage"
406
msgstr "Muist.käyt."
407
408
#: src/xz/list.c:137
409
msgid "Filters"
410
msgstr "Suodattimet"
411
266
#. TRANSLATORS: Indicates that there is no integrity check.
412
#. TRANSLATORS: Indicates that there is no integrity check.
267
#. This string is used in tables, so the width must not
413
#. This string is used in tables. In older xz version this
268
#. exceed ten columns with a fixed-width font.
414
#. string was limited to ten columns in a fixed-width font, but
269
#: src/xz/list.c:65
415
#. nowadays there is no strict length restriction anymore.
416
#: src/xz/list.c:169
270
msgid "None"
417
msgid "None"
271
msgstr "Ei mitään"
418
msgstr "Ei mitään"
272
419
273
#. TRANSLATORS: Indicates that integrity check name is not known,
420
#. TRANSLATORS: Indicates that integrity check name is not known,
274
#. but the Check ID is known (here 2). This and other "Unknown-N"
421
#. but the Check ID is known (here 2). In older xz version these
275
#. strings are used in tables, so the width must not exceed ten
422
#. strings were limited to ten columns in a fixed-width font, but
276
#. columns with a fixed-width font. It's OK to omit the dash if
423
#. nowadays there is no strict length restriction anymore.
277
#. you need space for one extra letter, but don't use spaces.
424
#: src/xz/list.c:175
278
#: src/xz/list.c:72
279
msgid "Unknown-2"
425
msgid "Unknown-2"
280
msgstr "Tuntematon-2"
426
msgstr "Tuntematon-2"
281
427
282
#: src/xz/list.c:73
428
#: src/xz/list.c:176
283
msgid "Unknown-3"
429
msgid "Unknown-3"
284
msgstr "Tuntematon-3"
430
msgstr "Tuntematon-3"
285
431
286
#: src/xz/list.c:75
432
#: src/xz/list.c:178
287
msgid "Unknown-5"
433
msgid "Unknown-5"
288
msgstr "Tuntematon-5"
434
msgstr "Tuntematon-5"
289
435
290
#: src/xz/list.c:76
436
#: src/xz/list.c:179
291
msgid "Unknown-6"
437
msgid "Unknown-6"
292
msgstr "Tuntematon-6"
438
msgstr "Tuntematon-6"
293
439
294
#: src/xz/list.c:77
440
#: src/xz/list.c:180
295
msgid "Unknown-7"
441
msgid "Unknown-7"
296
msgstr "Tuntematon-7"
442
msgstr "Tuntematon-7"
297
443
298
#: src/xz/list.c:78
444
#: src/xz/list.c:181
299
msgid "Unknown-8"
445
msgid "Unknown-8"
300
msgstr "Tuntematon-8"
446
msgstr "Tuntematon-8"
301
447
302
#: src/xz/list.c:79
448
#: src/xz/list.c:182
303
msgid "Unknown-9"
449
msgid "Unknown-9"
304
msgstr "Tuntematon-9"
450
msgstr "Tuntematon-9"
305
451
306
#: src/xz/list.c:81
452
#: src/xz/list.c:184
307
msgid "Unknown-11"
453
msgid "Unknown-11"
308
msgstr "Tuntematon-11"
454
msgstr "Tuntematon-11"
309
455
310
#: src/xz/list.c:82
456
#: src/xz/list.c:185
311
msgid "Unknown-12"
457
msgid "Unknown-12"
312
msgstr "Tuntematon-12"
458
msgstr "Tuntematon-12"
313
459
314
#: src/xz/list.c:83
460
#: src/xz/list.c:186
315
msgid "Unknown-13"
461
msgid "Unknown-13"
316
msgstr "Tuntematon-13"
462
msgstr "Tuntematon-13"
317
463
318
#: src/xz/list.c:84
464
#: src/xz/list.c:187
319
msgid "Unknown-14"
465
msgid "Unknown-14"
320
msgstr "Tuntematon-14"
466
msgstr "Tuntematon-14"
321
467
322
#: src/xz/list.c:85
468
#: src/xz/list.c:188
323
msgid "Unknown-15"
469
msgid "Unknown-15"
324
msgstr "Tuntematon-15"
470
msgstr "Tuntematon-15"
325
471
326
#: src/xz/list.c:153
472
#: src/xz/list.c:351
327
#, c-format
473
#, c-format
328
msgid "%s: File is empty"
474
msgid "%s: File is empty"
329
msgstr "%s: Tiedosto on tyhjä"
475
msgstr "%s: Tiedosto on tyhjä"
330
476
331
#: src/xz/list.c:158
477
#: src/xz/list.c:356
332
#, c-format
478
#, c-format
333
msgid "%s: Too small to be a valid .xz file"
479
msgid "%s: Too small to be a valid .xz file"
334
msgstr "%s: Liian pieni kelvolliseksi .xz-tiedostoksi"
480
msgstr "%s: Liian pieni kelvolliseksi .xz-tiedostoksi"
Lines 337-461 Link Here
337
#. to Ratio, the columns are right aligned. Check and Filename
483
#. to Ratio, the columns are right aligned. Check and Filename
338
#. are left aligned. If you need longer words, it's OK to
484
#. are left aligned. If you need longer words, it's OK to
339
#. use two lines here. Test with "xz -l foo.xz".
485
#. use two lines here. Test with "xz -l foo.xz".
340
#: src/xz/list.c:677
486
#: src/xz/list.c:730
341
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
487
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
342
msgstr "Virrat Lohkot   Tiivist.   Tiivistämätön Suhde  Tark.   Tiedostonimi"
488
msgstr "Virrat Lohkot   Tiivist.   Tiivistämätön Suhde  Tark.   Tiedostonimi"
343
489
344
#: src/xz/list.c:717
490
#: src/xz/list.c:1025 src/xz/list.c:1203
345
#, c-format
346
msgid "  Streams:            %s\n"
347
msgstr "  Virrat:             %s\n"
348
349
#: src/xz/list.c:719
350
#, c-format
351
msgid "  Blocks:             %s\n"
352
msgstr "  Lohkot:             %s\n"
353
354
#: src/xz/list.c:721
355
#, c-format
356
msgid "  Compressed size:    %s\n"
357
msgstr "  Tiivistetty koko:   %s\n"
358
359
#: src/xz/list.c:724
360
#, c-format
361
msgid "  Uncompressed size:  %s\n"
362
msgstr "  Tiivistämätön koko: %s\n"
363
364
#: src/xz/list.c:727
365
#, c-format
366
msgid "  Ratio:              %s\n"
367
msgstr "  Suhde:              %s\n"
368
369
#: src/xz/list.c:729
370
#, c-format
371
msgid "  Check:              %s\n"
372
msgstr "  Tarkistus:          %s\n"
373
374
#: src/xz/list.c:730
375
#, c-format
376
msgid "  Stream padding:     %s\n"
377
msgstr "  Virran tasaus:      %s\n"
378
379
#. TRANSLATORS: The second line is column headings. All except
380
#. Check are right aligned; Check is left aligned. Test with
381
#. "xz -lv foo.xz".
382
#: src/xz/list.c:758
383
msgid ""
384
"  Streams:\n"
385
"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
386
msgstr ""
387
"  Virrat:\n"
388
"     Virta    Lohkot      TiivSiirr.    Tv:tönSiirr.        TiivKoko      Tv:tönKoko  Suhde  Tark.       Tasaus"
389
390
#. TRANSLATORS: The second line is column headings. All
391
#. except Check are right aligned; Check is left aligned.
392
#: src/xz/list.c:813
393
#, c-format
394
msgid ""
395
"  Blocks:\n"
396
"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
397
msgstr ""
398
"  Lohkot:\n"
399
"     Virta     Lohko      TiivSiirr.    Tv:tönSiirr.        Yht.Koko      Tv:tönKoko  Suhde  Tark."
400
401
#. TRANSLATORS: These are additional column headings
402
#. for the most verbose listing mode. CheckVal
403
#. (Check value), Flags, and Filters are left aligned.
404
#. Header (Block Header Size), CompSize, and MemUsage
405
#. are right aligned. %*s is replaced with 0-120
406
#. spaces to make the CheckVal column wide enough.
407
#. Test with "xz -lvv foo.xz".
408
#: src/xz/list.c:825
409
#, c-format
410
msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
411
msgstr "      Tark.arvo%*s Otsake  Liput        TiivKoko  Muist.käyt. Suotimet"
412
413
#: src/xz/list.c:903 src/xz/list.c:1078
414
#, c-format
415
msgid "  Memory needed:      %s MiB\n"
416
msgstr "  Tarvittava muisti:  %s MiB\n"
417
418
#: src/xz/list.c:905 src/xz/list.c:1080
419
#, c-format
420
msgid "  Sizes in headers:   %s\n"
421
msgstr "  Koot otsakkeissa:   %s\n"
422
423
#: src/xz/list.c:906 src/xz/list.c:1081
424
msgid "Yes"
491
msgid "Yes"
425
msgstr "Kyllä"
492
msgstr "Kyllä"
426
493
427
#: src/xz/list.c:906 src/xz/list.c:1081
494
#: src/xz/list.c:1025 src/xz/list.c:1203
428
msgid "No"
495
msgid "No"
429
msgstr "Ei"
496
msgstr "Ei"
430
497
431
#: src/xz/list.c:907 src/xz/list.c:1082
498
#: src/xz/list.c:1027 src/xz/list.c:1205
432
#, c-format
499
#, c-format
433
msgid "  Minimum XZ Utils version: %s\n"
500
msgid "  Minimum XZ Utils version: %s\n"
434
msgstr "  XZ Utilsin vähimmäisversio: %s\n"
501
msgstr "  XZ Utilsin vähimmäisversio: %s\n"
435
502
436
#. TRANSLATORS: %s is an integer. Only the plural form of this
503
#. TRANSLATORS: %s is an integer. Only the plural form of this
437
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
504
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
438
#: src/xz/list.c:1057
505
#: src/xz/list.c:1178
439
#, c-format
506
#, c-format
440
msgid "%s file\n"
507
msgid "%s file\n"
441
msgid_plural "%s files\n"
508
msgid_plural "%s files\n"
442
msgstr[0] "%s tiedosto\n"
509
msgstr[0] "%s tiedosto\n"
443
msgstr[1] "%s tiedostoa\n"
510
msgstr[1] "%s tiedostoa\n"
444
511
445
#: src/xz/list.c:1070
512
#: src/xz/list.c:1191
446
msgid "Totals:"
513
msgid "Totals:"
447
msgstr "Yhteensä:"
514
msgstr "Yhteensä:"
448
515
449
#: src/xz/list.c:1071
516
#: src/xz/list.c:1269
450
#, c-format
451
msgid "  Number of files:    %s\n"
452
msgstr "  Tiedostojen määrä:  %s\n"
453
454
#: src/xz/list.c:1146
455
msgid "--list works only on .xz files (--format=xz or --format=auto)"
517
msgid "--list works only on .xz files (--format=xz or --format=auto)"
456
msgstr "--list toimii vain .xz-tiedostoille (--format=xz tai --format=auto)"
518
msgstr "--list toimii vain .xz-tiedostoille (--format=xz tai --format=auto)"
457
519
458
#: src/xz/list.c:1152
520
#: src/xz/list.c:1275
459
msgid "--list does not support reading from standard input"
521
msgid "--list does not support reading from standard input"
460
msgstr "--list ei tue lukemista vakiosyötteestä"
522
msgstr "--list ei tue lukemista vakiosyötteestä"
461
523
Lines 474-484 Link Here
474
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
536
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
475
msgstr "%s: Nul-merkki kohdattiin tiedostonimiä lukiessa; oliko tarkoitus antaa valitsin ”--files0” eikä ”--files”?"
537
msgstr "%s: Nul-merkki kohdattiin tiedostonimiä lukiessa; oliko tarkoitus antaa valitsin ”--files0” eikä ”--files”?"
476
538
477
#: src/xz/main.c:174
539
#: src/xz/main.c:188
478
msgid "Compression and decompression with --robot are not supported yet."
540
msgid "Compression and decompression with --robot are not supported yet."
479
msgstr "Tiivistys ja purku --robot -valitsimen kanssa eivät ole vielä tuettuja."
541
msgstr "Tiivistys ja purku --robot -valitsimen kanssa eivät ole vielä tuettuja."
480
542
481
#: src/xz/main.c:252
543
#: src/xz/main.c:266
482
msgid "Cannot read data from standard input when reading filenames from standard input"
544
msgid "Cannot read data from standard input when reading filenames from standard input"
483
msgstr "Dataa ei voi lukea vakiosyötteestä kun tiedostonimiä luetaan vakiosyötteestä"
545
msgstr "Dataa ei voi lukea vakiosyötteestä kun tiedostonimiä luetaan vakiosyötteestä"
484
546
Lines 486-553 Link Here
486
#. of the line in messages. Usually it becomes "xz: ".
548
#. of the line in messages. Usually it becomes "xz: ".
487
#. This is a translatable string because French needs
549
#. This is a translatable string because French needs
488
#. a space before a colon.
550
#. a space before a colon.
489
#: src/xz/message.c:728
551
#: src/xz/message.c:725
490
#, c-format
552
#, c-format
491
msgid "%s: "
553
msgid "%s: "
492
msgstr "%s: "
554
msgstr "%s: "
493
555
494
#: src/xz/message.c:791 src/xz/message.c:841
556
#: src/xz/message.c:797 src/xz/message.c:856
495
msgid "Internal error (bug)"
557
msgid "Internal error (bug)"
496
msgstr "Sisäinen virhe (ohjelmistovika)"
558
msgstr "Sisäinen virhe (ohjelmistovika)"
497
559
498
#: src/xz/message.c:798
560
#: src/xz/message.c:804
499
msgid "Cannot establish signal handlers"
561
msgid "Cannot establish signal handlers"
500
msgstr "Signaalinkäsittelimiä ei voi muodostaa"
562
msgstr "Signaalinkäsittelimiä ei voi muodostaa"
501
563
502
#: src/xz/message.c:807
564
#: src/xz/message.c:813
503
msgid "No integrity check; not verifying file integrity"
565
msgid "No integrity check; not verifying file integrity"
504
msgstr "Ei eheystarkastusta; ei varmenneta tiedoston eheyttä"
566
msgstr "Ei eheystarkastusta; ei varmenneta tiedoston eheyttä"
505
567
506
#: src/xz/message.c:810
568
#: src/xz/message.c:816
507
msgid "Unsupported type of integrity check; not verifying file integrity"
569
msgid "Unsupported type of integrity check; not verifying file integrity"
508
msgstr "Ei-tuettu eheystarkastuksen tyyppi; ei varmenneta tiedoston eheyttä"
570
msgstr "Ei-tuettu eheystarkastuksen tyyppi; ei varmenneta tiedoston eheyttä"
509
571
510
#: src/xz/message.c:817
572
#: src/xz/message.c:823
511
msgid "Memory usage limit reached"
573
msgid "Memory usage limit reached"
512
msgstr "Muistinkäytön raja saavutettu"
574
msgstr "Muistinkäytön raja saavutettu"
513
575
514
#: src/xz/message.c:820
576
#: src/xz/message.c:826
515
msgid "File format not recognized"
577
msgid "File format not recognized"
516
msgstr "Tiedostomuotoa ei tunnistettu"
578
msgstr "Tiedostomuotoa ei tunnistettu"
517
579
518
#: src/xz/message.c:823
580
#: src/xz/message.c:829
519
msgid "Unsupported options"
581
msgid "Unsupported options"
520
msgstr "Ei-tuetut valitsimet"
582
msgstr "Ei-tuetut valitsimet"
521
583
522
#: src/xz/message.c:826
584
#: src/xz/message.c:832
523
msgid "Compressed data is corrupt"
585
msgid "Compressed data is corrupt"
524
msgstr "Tiivistetty data on turmeltunut"
586
msgstr "Tiivistetty data on turmeltunut"
525
587
526
#: src/xz/message.c:829
588
#: src/xz/message.c:835
527
msgid "Unexpected end of input"
589
msgid "Unexpected end of input"
528
msgstr "Odottamaton syötteen loppu"
590
msgstr "Odottamaton syötteen loppu"
529
591
530
#: src/xz/message.c:862
592
#: src/xz/message.c:877
531
#, c-format
593
#, c-format
532
msgid "%s MiB of memory is required. The limiter is disabled."
594
msgid "%s MiB of memory is required. The limiter is disabled."
533
msgstr "%s MiB muistia vaaditaan. Rajoitin on poistettu käytöstä."
595
msgstr "%s MiB muistia vaaditaan. Rajoitin on poistettu käytöstä."
534
596
535
#: src/xz/message.c:890
597
#: src/xz/message.c:905
536
#, c-format
598
#, c-format
537
msgid "%s MiB of memory is required. The limit is %s."
599
msgid "%s MiB of memory is required. The limit is %s."
538
msgstr "%s MiB muistia vaaditaan. Raja on %s."
600
msgstr "%s MiB muistia vaaditaan. Raja on %s."
539
601
540
#: src/xz/message.c:1057
602
#: src/xz/message.c:924
541
#, c-format
603
#, c-format
542
msgid "%s: Filter chain: %s\n"
604
msgid "%s: Filter chain: %s\n"
543
msgstr "%s: Suodinketju: %s\n"
605
msgstr "%s: Suodinketju: %s\n"
544
606
545
#: src/xz/message.c:1067
607
#: src/xz/message.c:935
546
#, c-format
608
#, c-format
547
msgid "Try `%s --help' for more information."
609
msgid "Try `%s --help' for more information."
548
msgstr "Komento ”%s --help” antaa lisää tietoa."
610
msgstr "Komento ”%s --help” antaa lisää tietoa."
549
611
550
#: src/xz/message.c:1093
612
#: src/xz/message.c:961
551
#, c-format
613
#, c-format
552
msgid ""
614
msgid ""
553
"Usage: %s [OPTION]... [FILE]...\n"
615
"Usage: %s [OPTION]... [FILE]...\n"
Lines 558-572 Link Here
558
"Tiivistä tai pura .xz-muotoisia TIEDOSTOja.\n"
620
"Tiivistä tai pura .xz-muotoisia TIEDOSTOja.\n"
559
"\n"
621
"\n"
560
622
561
#: src/xz/message.c:1100
623
#: src/xz/message.c:968
562
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
624
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
563
msgstr "Pitkien valitsinten pakolliset argumentit ovat pakollisia myös lyhyille.\n"
625
msgstr "Pitkien valitsinten pakolliset argumentit ovat pakollisia myös lyhyille.\n"
564
626
565
#: src/xz/message.c:1104
627
#: src/xz/message.c:972
566
msgid " Operation mode:\n"
628
msgid " Operation mode:\n"
567
msgstr " Toimintatila:\n"
629
msgstr " Toimintatila:\n"
568
630
569
#: src/xz/message.c:1107
631
#: src/xz/message.c:975
570
msgid ""
632
msgid ""
571
"  -z, --compress      force compression\n"
633
"  -z, --compress      force compression\n"
572
"  -d, --decompress    force decompression\n"
634
"  -d, --decompress    force decompression\n"
Lines 578-584 Link Here
578
"  -t, --test          testaa tiivistetyn tiedoston eheys\n"
640
"  -t, --test          testaa tiivistetyn tiedoston eheys\n"
579
"  -l, --list          näytä tietoja .xz-tiedostoista"
641
"  -l, --list          näytä tietoja .xz-tiedostoista"
580
642
581
#: src/xz/message.c:1113
643
#: src/xz/message.c:981
582
msgid ""
644
msgid ""
583
"\n"
645
"\n"
584
" Operation modifiers:\n"
646
" Operation modifiers:\n"
Lines 586-592 Link Here
586
"\n"
648
"\n"
587
" Toimintomääreet:\n"
649
" Toimintomääreet:\n"
588
650
589
#: src/xz/message.c:1116
651
#: src/xz/message.c:984
590
msgid ""
652
msgid ""
591
"  -k, --keep          keep (don't delete) input files\n"
653
"  -k, --keep          keep (don't delete) input files\n"
592
"  -f, --force         force overwrite of output file and (de)compress links\n"
654
"  -f, --force         force overwrite of output file and (de)compress links\n"
Lines 597-603 Link Here
597
"                      linkit\n"
659
"                      linkit\n"
598
"  -c, --stdout        kirjoita vakiotulosteeseen äläkä poista syötetiedostoja"
660
"  -c, --stdout        kirjoita vakiotulosteeseen äläkä poista syötetiedostoja"
599
661
600
#: src/xz/message.c:1122
662
#: src/xz/message.c:993
601
msgid ""
663
msgid ""
602
"      --single-stream decompress only the first stream, and silently\n"
664
"      --single-stream decompress only the first stream, and silently\n"
603
"                      ignore possible remaining input data"
665
"                      ignore possible remaining input data"
Lines 605-611 Link Here
605
"      --single-stream pura vain ensimmäinen virta, ja ohita\n"
667
"      --single-stream pura vain ensimmäinen virta, ja ohita\n"
606
"                      hiljaisesti mahdollinen jäljellä oleva syötedata"
668
"                      hiljaisesti mahdollinen jäljellä oleva syötedata"
607
669
608
#: src/xz/message.c:1125
670
#: src/xz/message.c:996
609
msgid ""
671
msgid ""
610
"      --no-sparse     do not create sparse files when decompressing\n"
672
"      --no-sparse     do not create sparse files when decompressing\n"
611
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
673
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
Lines 621-627 Link Here
621
"                      tiedostonimet on päätettävä rivinvaihtomerkillä\n"
683
"                      tiedostonimet on päätettävä rivinvaihtomerkillä\n"
622
"      --files0[=TIED] kuten --files mutta käytä päättämiseen nul-merkkiä"
684
"      --files0[=TIED] kuten --files mutta käytä päättämiseen nul-merkkiä"
623
685
624
#: src/xz/message.c:1134
686
#: src/xz/message.c:1005
625
msgid ""
687
msgid ""
626
"\n"
688
"\n"
627
" Basic file format and compression options:\n"
689
" Basic file format and compression options:\n"
Lines 629-651 Link Here
629
"\n"
691
"\n"
630
" Tiedostomuodon ja tiivistyksen perusvalitsimet:\n"
692
" Tiedostomuodon ja tiivistyksen perusvalitsimet:\n"
631
693
632
#: src/xz/message.c:1136
694
#: src/xz/message.c:1007
633
msgid ""
695
msgid ""
634
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
696
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
635
"                      `auto' (default), `xz', `lzma', and `raw'\n"
697
"                      `auto' (default), `xz', `lzma', `lzip', and `raw'\n"
636
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
698
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
637
"                      `crc32', `crc64' (default), or `sha256'"
699
"                      `crc32', `crc64' (default), or `sha256'"
638
msgstr ""
700
msgstr ""
639
"  -F, --format=MUOTO  tuotettava tai luettava tiedostomuotoa; vaihtoehdot\n"
701
"  -F, --format=MUOTO  tuotettava tai luettava tiedostomuoto; vaihtoehdot\n"
640
"                      ovat ”auto” (oletus), ”xz”, ”lzma” ja ”raw”\n"
702
"                      ovat ”auto” (oletus), ”xz”, ”lzma”, ”lzip” ja ”raw”\n"
641
"  -C, --check=CHECK   eheystarkastuksen tyyppi: ”none” (käytä varoen),\n"
703
"  -C, --check=CHECK   eheystarkastuksen tyyppi: ”none” (käytä varoen),\n"
642
"                      ”crc32”, ”crc64” (oletus) tai ”sha256”"
704
"                      ”crc32”, ”crc64” (oletus) tai ”sha256”"
643
705
644
#: src/xz/message.c:1141
706
#: src/xz/message.c:1012
645
msgid "      --ignore-check  don't verify the integrity check when decompressing"
707
msgid "      --ignore-check  don't verify the integrity check when decompressing"
646
msgstr "      --ignore-check  älä suorita eheystarkastusta purettaessa"
708
msgstr "      --ignore-check  älä suorita eheystarkastusta purettaessa"
647
709
648
#: src/xz/message.c:1145
710
#: src/xz/message.c:1016
649
msgid ""
711
msgid ""
650
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
712
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
651
"                      decompressor memory usage into account before using 7-9!"
713
"                      decompressor memory usage into account before using 7-9!"
Lines 654-660 Link Here
654
"                      *ja* purun muistinkäyttö huomioon ennen kuin käytät\n"
716
"                      *ja* purun muistinkäyttö huomioon ennen kuin käytät\n"
655
"                      arvoja 7–9!"
717
"                      arvoja 7–9!"
656
718
657
#: src/xz/message.c:1149
719
#: src/xz/message.c:1020
658
msgid ""
720
msgid ""
659
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
721
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
660
"                      does not affect decompressor memory requirements"
722
"                      does not affect decompressor memory requirements"
Lines 662-668 Link Here
662
"  -e, --extreme       yritä parantaa tiivistyssuhdetta käyttämällä enemmän\n"
724
"  -e, --extreme       yritä parantaa tiivistyssuhdetta käyttämällä enemmän\n"
663
"                      suoritinaikaa; ei vaikuta purkimen muistivaatimuksiin"
725
"                      suoritinaikaa; ei vaikuta purkimen muistivaatimuksiin"
664
726
665
#: src/xz/message.c:1153
727
#: src/xz/message.c:1024
666
msgid ""
728
msgid ""
667
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
729
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
668
"                      to use as many threads as there are processor cores"
730
"                      to use as many threads as there are processor cores"
Lines 670-676 Link Here
670
"  -T, --threads=MÄÄRÄ käytä enintää MÄÄRÄä säiettä; oletus on 1; asettamalla\n"
732
"  -T, --threads=MÄÄRÄ käytä enintää MÄÄRÄä säiettä; oletus on 1; asettamalla\n"
671
"                      0:ksi käytetään suoritinytimien määrän verran säikeitä"
733
"                      0:ksi käytetään suoritinytimien määrän verran säikeitä"
672
734
673
#: src/xz/message.c:1158
735
#: src/xz/message.c:1029
674
msgid ""
736
msgid ""
675
"      --block-size=SIZE\n"
737
"      --block-size=SIZE\n"
676
"                      start a new .xz block after every SIZE bytes of input;\n"
738
"                      start a new .xz block after every SIZE bytes of input;\n"
Lines 680-686 Link Here
680
"                      aloita uusi .xz-lohko aina KOKO syötetavun jälkeen; käytä\n"
742
"                      aloita uusi .xz-lohko aina KOKO syötetavun jälkeen; käytä\n"
681
"                      tätä säikeistetyn tiivistyksen lohkokoon asettamiseen"
743
"                      tätä säikeistetyn tiivistyksen lohkokoon asettamiseen"
682
744
683
#: src/xz/message.c:1162
745
#: src/xz/message.c:1033
684
msgid ""
746
msgid ""
685
"      --block-list=SIZES\n"
747
"      --block-list=SIZES\n"
686
"                      start a new .xz block after the given comma-separated\n"
748
"                      start a new .xz block after the given comma-separated\n"
Lines 691-697 Link Here
691
"                      käsitelty pilkuilla erotellut tavumäärät"
753
"                      käsitelty pilkuilla erotellut tavumäärät"
692
754
693
# FIXME: tarvitaan kiva suomenkielinen termi block-verbille tässä merkityksessä
755
# FIXME: tarvitaan kiva suomenkielinen termi block-verbille tässä merkityksessä
694
#: src/xz/message.c:1166
756
#: src/xz/message.c:1037
695
msgid ""
757
msgid ""
696
"      --flush-timeout=TIMEOUT\n"
758
"      --flush-timeout=TIMEOUT\n"
697
"                      when compressing, if more than TIMEOUT milliseconds has\n"
759
"                      when compressing, if more than TIMEOUT milliseconds has\n"
Lines 703-725 Link Here
703
"                      edellisestä huuhtomisesta ja syötteen lukemisen\n"
765
"                      edellisestä huuhtomisesta ja syötteen lukemisen\n"
704
"                      jatkaminen pysähtyisi, kaikki odottava data huuhdellaan"
766
"                      jatkaminen pysähtyisi, kaikki odottava data huuhdellaan"
705
767
706
#: src/xz/message.c:1172
768
#: src/xz/message.c:1043
707
#, no-c-format
769
#, no-c-format
708
msgid ""
770
msgid ""
709
"      --memlimit-compress=LIMIT\n"
771
"      --memlimit-compress=LIMIT\n"
710
"      --memlimit-decompress=LIMIT\n"
772
"      --memlimit-decompress=LIMIT\n"
773
"      --memlimit-mt-decompress=LIMIT\n"
711
"  -M, --memlimit=LIMIT\n"
774
"  -M, --memlimit=LIMIT\n"
712
"                      set memory usage limit for compression, decompression,\n"
775
"                      set memory usage limit for compression, decompression,\n"
713
"                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
776
"                      threaded decompression, or all of these; LIMIT is in\n"
777
"                      bytes, % of RAM, or 0 for defaults"
714
msgstr ""
778
msgstr ""
715
"      --memlimit-compress=RAJA\n"
779
"      --memlimit-compress=RAJA\n"
716
"      --memlimit-decompress=RAJA\n"
780
"      --memlimit-decompress=RAJA\n"
717
"  -M, --memlimit=RAJA\n"
781
"  -M, --memlimit=RAJA\n"
718
"                      aseta muistinkäytön raja tiivistykselle, purkamiselle\n"
782
"                      aseta muistinkäytön raja tiivistykselle, purkamiselle,\n"
719
"                      tai molemmille; RAJA on tavuja, %-osuus RAM-muistista\n"
783
"                      säikeistetylle purkamisella tai näille kaikille; RAJA\n"
720
"                      tai 0 oletusarvojen käyttämiseksi"
784
"                      on tavuja, %-osuus RAMista tai 0 oletusarvoille"
721
785
722
#: src/xz/message.c:1179
786
#: src/xz/message.c:1052
723
msgid ""
787
msgid ""
724
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
788
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
725
"                      give an error instead of adjusting the settings downwards"
789
"                      give an error instead of adjusting the settings downwards"
Lines 727-733 Link Here
727
"      --no-adjust     jos tiivistysasetukset ylittävät muistinkäytön rajan,\n"
791
"      --no-adjust     jos tiivistysasetukset ylittävät muistinkäytön rajan,\n"
728
"                      anna virhe äläkä pudota asetuksia alaspäin"
792
"                      anna virhe äläkä pudota asetuksia alaspäin"
729
793
730
#: src/xz/message.c:1185
794
#: src/xz/message.c:1058
731
msgid ""
795
msgid ""
732
"\n"
796
"\n"
733
" Custom filter chain for compression (alternative for using presets):"
797
" Custom filter chain for compression (alternative for using presets):"
Lines 735-741 Link Here
735
"\n"
799
"\n"
736
" Mukautettu suodinketju tiivistykselle (vaihtoehto esiasetuksille):"
800
" Mukautettu suodinketju tiivistykselle (vaihtoehto esiasetuksille):"
737
801
738
#: src/xz/message.c:1194
802
#: src/xz/message.c:1067
739
msgid ""
803
msgid ""
740
"\n"
804
"\n"
741
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
805
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
Lines 765-793 Link Here
765
"                                   bt4; bt4)\n"
829
"                                   bt4; bt4)\n"
766
"                        depth=LUKU enimmäishakusyvyys; 0=automaattinen (oletus)"
830
"                        depth=LUKU enimmäishakusyvyys; 0=automaattinen (oletus)"
767
831
768
#: src/xz/message.c:1209
832
#: src/xz/message.c:1082
769
msgid ""
833
msgid ""
770
"\n"
834
"\n"
771
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
835
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
836
"  --arm[=OPTS]        ARM BCJ filter\n"
837
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter\n"
838
"  --arm64[=OPTS]      ARM64 BCJ filter\n"
772
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
839
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
773
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
840
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
774
"  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
775
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
776
"  --sparc[=OPTS]      SPARC BCJ filter\n"
841
"  --sparc[=OPTS]      SPARC BCJ filter\n"
777
"                      Valid OPTS for all BCJ filters:\n"
842
"                      Valid OPTS for all BCJ filters:\n"
778
"                        start=NUM  start offset for conversions (default=0)"
843
"                        start=NUM  start offset for conversions (default=0)"
779
msgstr ""
844
msgstr ""
780
"\n"
845
"\n"
781
"  --x86[=ASET]        x86:n BCJ-suodin (32- ja 64-bittiset)\n"
846
"  --x86[=ASET]        x86:n BCJ-suodin (32- ja 64-bittiset)\n"
847
"  --arm[=ASET]        ARMin BCJ-suodin\n"
848
"  --armthumb[=ASET]   ARM-Thumbin BCJ-suodin\n"
849
"  --arm64[=ASET]      ARM64:n BCJ-suodin\n"
782
"  --powerpc[=ASET]    PowerPC:n BCJ-suodin (vain big endian)\n"
850
"  --powerpc[=ASET]    PowerPC:n BCJ-suodin (vain big endian)\n"
783
"  --ia64[=ASET]       IA-64:n (Itanium) BCJ-suodin\n"
851
"  --ia64[=ASET]       IA-64:n (Itanium) BCJ-suodin\n"
784
"  --arm[=ASET]        ARMin BCJ-suodin (vain little endian)\n"
785
"  --armthumb[=ASET]   ARM-Thumbin BCJ-suodin (vain little endian)\n"
786
"  --sparc[=ASET]      SPARCin BCJ-suodin\n"
852
"  --sparc[=ASET]      SPARCin BCJ-suodin\n"
787
"                      Kelvolliset ASETukset kaikille BCJ-suotimille:\n"
853
"                      Kelvolliset ASETukset kaikille BCJ-suotimille:\n"
788
"                        start=LUKU muunnoksien aloitussiirtymä (oletus=0)"
854
"                        start=LUKU muunnoksien aloitussiirtymä (oletus=0)"
789
855
790
#: src/xz/message.c:1221
856
#: src/xz/message.c:1095
791
msgid ""
857
msgid ""
792
"\n"
858
"\n"
793
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
859
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
Lines 799-805 Link Here
799
"                        dist=LUKU  toisistaan vähennettävien tavujen\n"
865
"                        dist=LUKU  toisistaan vähennettävien tavujen\n"
800
"                                   välinen etäisyys (1–256; 1)"
866
"                                   välinen etäisyys (1–256; 1)"
801
867
802
#: src/xz/message.c:1229
868
#: src/xz/message.c:1103
803
msgid ""
869
msgid ""
804
"\n"
870
"\n"
805
" Other options:\n"
871
" Other options:\n"
Lines 807-813 Link Here
807
"\n"
873
"\n"
808
" Muut valitsimet:\n"
874
" Muut valitsimet:\n"
809
875
810
#: src/xz/message.c:1232
876
#: src/xz/message.c:1106
811
msgid ""
877
msgid ""
812
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
878
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
813
"  -v, --verbose       be verbose; specify twice for even more verbose"
879
"  -v, --verbose       be verbose; specify twice for even more verbose"
Lines 815-829 Link Here
815
"  -q, --quiet         vaienna varoitukset; kahdesti antamalla myös virheet\n"
881
"  -q, --quiet         vaienna varoitukset; kahdesti antamalla myös virheet\n"
816
"  -v, --verbose       ole lavea; kahdesti antamalla vieläkin laveampi"
882
"  -v, --verbose       ole lavea; kahdesti antamalla vieläkin laveampi"
817
883
818
#: src/xz/message.c:1237
884
#: src/xz/message.c:1111
819
msgid "  -Q, --no-warn       make warnings not affect the exit status"
885
msgid "  -Q, --no-warn       make warnings not affect the exit status"
820
msgstr "  -Q, --no-warn       älkööt varoitukset vaikuttako paluuarvoon"
886
msgstr "  -Q, --no-warn       älkööt varoitukset vaikuttako paluuarvoon"
821
887
822
#: src/xz/message.c:1239
888
#: src/xz/message.c:1113
823
msgid "      --robot         use machine-parsable messages (useful for scripts)"
889
msgid "      --robot         use machine-parsable messages (useful for scripts)"
824
msgstr "      --robot         käytä koneluettavia viestejä (sopii skripteihin)"
890
msgstr "      --robot         käytä koneluettavia viestejä (sopii skripteihin)"
825
891
826
#: src/xz/message.c:1242
892
#: src/xz/message.c:1116
827
msgid ""
893
msgid ""
828
"      --info-memory   display the total amount of RAM and the currently active\n"
894
"      --info-memory   display the total amount of RAM and the currently active\n"
829
"                      memory usage limits, and exit"
895
"                      memory usage limits, and exit"
Lines 831-837 Link Here
831
"      --info-memory   näytä RAM-muistin kokonaismäärä ja parhaillaan\n"
897
"      --info-memory   näytä RAM-muistin kokonaismäärä ja parhaillaan\n"
832
"                      vallitsevat muistinkäytön rajat, ja poistu"
898
"                      vallitsevat muistinkäytön rajat, ja poistu"
833
899
834
#: src/xz/message.c:1245
900
#: src/xz/message.c:1119
835
msgid ""
901
msgid ""
836
"  -h, --help          display the short help (lists only the basic options)\n"
902
"  -h, --help          display the short help (lists only the basic options)\n"
837
"  -H, --long-help     display this long help and exit"
903
"  -H, --long-help     display this long help and exit"
Lines 839-845 Link Here
839
"  -h, --help          näytä lyhyt ohje (kertoo vain perusvalitsimet)\n"
905
"  -h, --help          näytä lyhyt ohje (kertoo vain perusvalitsimet)\n"
840
"  -H, --long-help     näytä tämä pitkä ohje ja poistu"
906
"  -H, --long-help     näytä tämä pitkä ohje ja poistu"
841
907
842
#: src/xz/message.c:1249
908
#: src/xz/message.c:1123
843
msgid ""
909
msgid ""
844
"  -h, --help          display this short help and exit\n"
910
"  -h, --help          display this short help and exit\n"
845
"  -H, --long-help     display the long help (lists also the advanced options)"
911
"  -H, --long-help     display the long help (lists also the advanced options)"
Lines 847-857 Link Here
847
"  -h, --help          näytä tämä lyhyt ohje ja poistu\n"
913
"  -h, --help          näytä tämä lyhyt ohje ja poistu\n"
848
"  -H, --long-help     näytä pitkä ohje (kertoo myös lisävalitsimet)"
914
"  -H, --long-help     näytä pitkä ohje (kertoo myös lisävalitsimet)"
849
915
850
#: src/xz/message.c:1254
916
#: src/xz/message.c:1128
851
msgid "  -V, --version       display the version number and exit"
917
msgid "  -V, --version       display the version number and exit"
852
msgstr "  -V, --version       näytä versionumero ja poistu"
918
msgstr "  -V, --version       näytä versionumero ja poistu"
853
919
854
#: src/xz/message.c:1256
920
#: src/xz/message.c:1130
855
msgid ""
921
msgid ""
856
"\n"
922
"\n"
857
"With no FILE, or when FILE is -, read standard input.\n"
923
"With no FILE, or when FILE is -, read standard input.\n"
Lines 863-879 Link Here
863
#. for this package. Please add _another line_ saying
929
#. for this package. Please add _another line_ saying
864
#. "Report translation bugs to <...>\n" with the email or WWW
930
#. "Report translation bugs to <...>\n" with the email or WWW
865
#. address for translation bugs. Thanks.
931
#. address for translation bugs. Thanks.
866
#: src/xz/message.c:1262
932
#: src/xz/message.c:1136
867
#, c-format
933
#, c-format
868
msgid "Report bugs to <%s> (in English or Finnish).\n"
934
msgid "Report bugs to <%s> (in English or Finnish).\n"
869
msgstr "Ilmoita ohjelmistovioista (suomeksi) osoitteeseen <%s>.\n"
935
msgstr "Ilmoita ohjelmistovioista (suomeksi) osoitteeseen <%s>.\n"
870
936
871
#: src/xz/message.c:1264
937
#: src/xz/message.c:1138
872
#, c-format
938
#, c-format
873
msgid "%s home page: <%s>\n"
939
msgid "%s home page: <%s>\n"
874
msgstr "%s -kotisivu: <%s>\n"
940
msgstr "%s -kotisivu: <%s>\n"
875
941
876
#: src/xz/message.c:1268
942
#: src/xz/message.c:1142
877
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
943
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
878
msgstr "TÄMÄ ON KEHITYSVERSIO, JOTA EI OLE TARKOITETTU TUOTANTOKÄYTTÖÖN."
944
msgstr "TÄMÄ ON KEHITYSVERSIO, JOTA EI OLE TARKOITETTU TUOTANTOKÄYTTÖÖN."
879
945
Lines 901-927 Link Here
901
msgid "The sum of lc and lp must not exceed 4"
967
msgid "The sum of lc and lp must not exceed 4"
902
msgstr "lc:n ja lp:n summa ei saa olla yli 4"
968
msgstr "lc:n ja lp:n summa ei saa olla yli 4"
903
969
904
#: src/xz/options.c:359
970
#: src/xz/suffix.c:160
905
#, c-format
971
#, c-format
906
msgid "The selected match finder requires at least nice=%<PRIu32>"
907
msgstr "Valittu täsmäävyydenetsin vaatii vähintään nice-arvon=%<PRIu32>"
908
909
#: src/xz/suffix.c:133 src/xz/suffix.c:258
910
#, c-format
911
msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
912
msgstr "%s: --format=raw vaatii, että --suffix=.PÄÄTE on annettu, ellei kirjoiteta vakiotulosteeseen"
913
914
#: src/xz/suffix.c:164
915
#, c-format
916
msgid "%s: Filename has an unknown suffix, skipping"
972
msgid "%s: Filename has an unknown suffix, skipping"
917
msgstr "%s: Tiedostonimen pääte on tuntematon, ohitetaan"
973
msgstr "%s: Tiedostonimen pääte on tuntematon, ohitetaan"
918
974
919
#: src/xz/suffix.c:185
975
#: src/xz/suffix.c:181
920
#, c-format
976
#, c-format
921
msgid "%s: File already has `%s' suffix, skipping"
977
msgid "%s: File already has `%s' suffix, skipping"
922
msgstr "%s: Tiedostolla on jo ”%s”-pääte, ohitetaan"
978
msgstr "%s: Tiedostolla on jo ”%s”-pääte, ohitetaan"
923
979
924
#: src/xz/suffix.c:393
980
#: src/xz/suffix.c:388
925
#, c-format
981
#, c-format
926
msgid "%s: Invalid filename suffix"
982
msgid "%s: Invalid filename suffix"
927
msgstr "%s: Virheellinen tiedostonimen pääte"
983
msgstr "%s: Virheellinen tiedostonimen pääte"
Lines 945-959 Link Here
945
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
1001
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
946
msgstr "Valitsimen ”%s” arvon on oltava välillä [%<PRIu64>, %<PRIu64>]"
1002
msgstr "Valitsimen ”%s” arvon on oltava välillä [%<PRIu64>, %<PRIu64>]"
947
1003
948
#: src/xz/util.c:267
1004
#: src/xz/util.c:269
949
msgid "Empty filename, skipping"
950
msgstr "Tyhjä tiedostonimi, ohitetaan"
951
952
#: src/xz/util.c:281
953
msgid "Compressed data cannot be read from a terminal"
1005
msgid "Compressed data cannot be read from a terminal"
954
msgstr "Tiivistettyä dataa ei voi lukea päätteestä"
1006
msgstr "Tiivistettyä dataa ei voi lukea päätteestä"
955
1007
956
#: src/xz/util.c:294
1008
#: src/xz/util.c:282
957
msgid "Compressed data cannot be written to a terminal"
1009
msgid "Compressed data cannot be written to a terminal"
958
msgstr "Tiivistettyä dataa ei voi kirjoittaa päätteeseen"
1010
msgstr "Tiivistettyä dataa ei voi kirjoittaa päätteeseen"
959
1011
Lines 965-972 Link Here
965
msgid "Unknown error"
1017
msgid "Unknown error"
966
msgstr "Tuntematon virhe"
1018
msgstr "Tuntematon virhe"
967
1019
1020
#, c-format
1021
#~ msgid "The selected match finder requires at least nice=%<PRIu32>"
1022
#~ msgstr "Valittu täsmäävyydenetsin vaatii vähintään nice-arvon=%<PRIu32>"
1023
968
#~ msgid "Sandbox is disabled due to incompatible command line arguments"
1024
#~ msgid "Sandbox is disabled due to incompatible command line arguments"
969
#~ msgstr "Hiekkalaatikko on poistettu käytöstä yhteensopimattomien komentoriviargumenttien vuoksi"
1025
#~ msgstr "Hiekkalaatikko on poistettu käytöstä yhteensopimattomien komentoriviargumenttien vuoksi"
970
1026
971
#~ msgid "Sandbox was successfully enabled"
1027
#~ msgid "Sandbox was successfully enabled"
972
#~ msgstr "Hiekkalaatikko otettiin onnistuneesti käyttöön"
1028
#~ msgstr "Hiekkalaatikko otettiin onnistuneesti käyttöön"
1029
1030
#~ msgid "Memory usage limit for compression:    "
1031
#~ msgstr "Muistinkäytön raja tiivistykselle:     "
1032
1033
#~ msgid "  Streams:            %s\n"
1034
#~ msgstr "  Virrat:             %s\n"
1035
1036
#~ msgid "  Blocks:             %s\n"
1037
#~ msgstr "  Lohkot:             %s\n"
1038
1039
#~ msgid "  Ratio:              %s\n"
1040
#~ msgstr "  Suhde:              %s\n"
1041
1042
#~ msgid "  Check:              %s\n"
1043
#~ msgstr "  Tarkistus:          %s\n"
1044
1045
#~ msgid ""
1046
#~ "  Streams:\n"
1047
#~ "    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
1048
#~ msgstr ""
1049
#~ "  Virrat:\n"
1050
#~ "     Virta    Lohkot      TiivSiirr.    Tv:tönSiirr.        TiivKoko      Tv:tönKoko  Suhde  Tark.       Tasaus"
1051
1052
#~ msgid ""
1053
#~ "  Blocks:\n"
1054
#~ "    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
1055
#~ msgstr ""
1056
#~ "  Lohkot:\n"
1057
#~ "     Virta     Lohko      TiivSiirr.    Tv:tönSiirr.        Yht.Koko      Tv:tönKoko  Suhde  Tark."
1058
1059
#~ msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
1060
#~ msgstr "      Tark.arvo%*s Otsake  Liput        TiivKoko  Muist.käyt. Suotimet"
(-)xz-5.2.5/po/fr.po (-246 / +384 lines)
Lines 6-13 Link Here
6
msgid ""
6
msgid ""
7
msgstr ""
7
msgstr ""
8
"Project-Id-Version: xz-5.2.4\n"
8
"Project-Id-Version: xz-5.2.4\n"
9
"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
9
"Report-Msgid-Bugs-To: xz@tukaani.org\n"
10
"POT-Creation-Date: 2020-03-17 16:29+0200\n"
10
"POT-Creation-Date: 2023-05-04 22:32+0800\n"
11
"PO-Revision-Date: 2019-05-12 05:46+0200\n"
11
"PO-Revision-Date: 2019-05-12 05:46+0200\n"
12
"Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
12
"Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
13
"Language-Team: French <traduc@traduc.org>\n"
13
"Language-Team: French <traduc@traduc.org>\n"
Lines 18-116 Link Here
18
"X-Bugs: Report translation errors to the Language-Team address.\n"
18
"X-Bugs: Report translation errors to the Language-Team address.\n"
19
"Plural-Forms: nplurals=2; plural=(n==1) ? 0 : 1;\n"
19
"Plural-Forms: nplurals=2; plural=(n==1) ? 0 : 1;\n"
20
20
21
#: src/xz/args.c:63
21
#: src/xz/args.c:77
22
#, c-format
22
#, c-format
23
msgid "%s: Invalid argument to --block-list"
23
msgid "%s: Invalid argument to --block-list"
24
msgstr "%s : argument de l'option --block-list invalide"
24
msgstr "%s : argument de l'option --block-list invalide"
25
25
26
#: src/xz/args.c:73
26
#: src/xz/args.c:87
27
#, c-format
27
#, c-format
28
msgid "%s: Too many arguments to --block-list"
28
msgid "%s: Too many arguments to --block-list"
29
msgstr "%s : trop d'arguments pour l'option --block-list"
29
msgstr "%s : trop d'arguments pour l'option --block-list"
30
30
31
#: src/xz/args.c:102
31
#: src/xz/args.c:116
32
msgid "0 can only be used as the last element in --block-list"
32
msgid "0 can only be used as the last element in --block-list"
33
msgstr "0 peut seulement être utilisé en dernier élément de --block-list"
33
msgstr "0 peut seulement être utilisé en dernier élément de --block-list"
34
34
35
#: src/xz/args.c:406
35
#: src/xz/args.c:451
36
#, c-format
36
#, c-format
37
msgid "%s: Unknown file format type"
37
msgid "%s: Unknown file format type"
38
msgstr "%s : Format de fichier inconnu"
38
msgstr "%s : Format de fichier inconnu"
39
39
40
#: src/xz/args.c:429 src/xz/args.c:437
40
#: src/xz/args.c:474 src/xz/args.c:482
41
#, c-format
41
#, c-format
42
msgid "%s: Unsupported integrity check type"
42
msgid "%s: Unsupported integrity check type"
43
msgstr "%s : Type de vérification d'intégrité inconnu"
43
msgstr "%s : Type de vérification d'intégrité inconnu"
44
44
45
#: src/xz/args.c:473
45
#: src/xz/args.c:518
46
msgid "Only one file can be specified with `--files' or `--files0'."
46
msgid "Only one file can be specified with `--files' or `--files0'."
47
msgstr "Un seul fichier peut être spécifié avec `--files' ou `--files0'."
47
msgstr "Un seul fichier peut être spécifié avec `--files' ou `--files0'."
48
48
49
#: src/xz/args.c:541
49
#: src/xz/args.c:586
50
#, c-format
50
#, c-format
51
msgid "The environment variable %s contains too many arguments"
51
msgid "The environment variable %s contains too many arguments"
52
msgstr "La variable d'environnement %s contient trop d'arguments"
52
msgstr "La variable d'environnement %s contient trop d'arguments"
53
53
54
#: src/xz/args.c:643
54
#: src/xz/args.c:688
55
msgid "Compression support was disabled at build time"
55
msgid "Compression support was disabled at build time"
56
msgstr "Le support de la compression à était désactivé lors de la compilaton"
56
msgstr "Le support de la compression à était désactivé lors de la compilaton"
57
57
58
#: src/xz/args.c:650
58
#: src/xz/args.c:695
59
msgid "Decompression support was disabled at build time"
59
msgid "Decompression support was disabled at build time"
60
msgstr "Le support de la décompression a été désactivé lors de la compilation"
60
msgstr "Le support de la décompression a été désactivé lors de la compilation"
61
61
62
#: src/xz/coder.c:110
62
#: src/xz/args.c:701
63
msgid "Compression of lzip files (.lz) is not supported"
64
msgstr ""
65
66
#: src/xz/args.c:732
67
#, fuzzy
68
#| msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
69
msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout"
70
msgstr "%s : Avec --format=raw, --suffix=.SUF est nécessaire sauf lors de l'écriture vers stdout"
71
72
#: src/xz/coder.c:115
63
msgid "Maximum number of filters is four"
73
msgid "Maximum number of filters is four"
64
msgstr "Le nombre maximal de filtres est quatre"
74
msgstr "Le nombre maximal de filtres est quatre"
65
75
66
#: src/xz/coder.c:129
76
#: src/xz/coder.c:134
67
msgid "Memory usage limit is too low for the given filter setup."
77
msgid "Memory usage limit is too low for the given filter setup."
68
msgstr "La limite d'utilisation mémoire est trop basse pour la configuration de filtres donnée."
78
msgstr "La limite d'utilisation mémoire est trop basse pour la configuration de filtres donnée."
69
79
70
#: src/xz/coder.c:159
80
#: src/xz/coder.c:169
71
msgid "Using a preset in raw mode is discouraged."
81
msgid "Using a preset in raw mode is discouraged."
72
msgstr "Utiliser un préréglage en mode `raw' est déconseillé."
82
msgstr "Utiliser un préréglage en mode `raw' est déconseillé."
73
83
74
#: src/xz/coder.c:161
84
#: src/xz/coder.c:171
75
msgid "The exact options of the presets may vary between software versions."
85
msgid "The exact options of the presets may vary between software versions."
76
msgstr "Le détail des préréglages peut varier entre différentes versions du logiciel."
86
msgstr "Le détail des préréglages peut varier entre différentes versions du logiciel."
77
87
78
#: src/xz/coder.c:184
88
#: src/xz/coder.c:194
79
msgid "The .lzma format supports only the LZMA1 filter"
89
msgid "The .lzma format supports only the LZMA1 filter"
80
msgstr "Le format .lzma ne prend en charge que le filtre LZMA1"
90
msgstr "Le format .lzma ne prend en charge que le filtre LZMA1"
81
91
82
#: src/xz/coder.c:192
92
#: src/xz/coder.c:202
83
msgid "LZMA1 cannot be used with the .xz format"
93
msgid "LZMA1 cannot be used with the .xz format"
84
msgstr "Le filtre LZMA1 ne peut être utilisé avec le format .xz"
94
msgstr "Le filtre LZMA1 ne peut être utilisé avec le format .xz"
85
95
86
#: src/xz/coder.c:209
96
#: src/xz/coder.c:219
87
msgid "The filter chain is incompatible with --flush-timeout"
97
msgid "The filter chain is incompatible with --flush-timeout"
88
msgstr "La Chaine de filtre est incompatible avec --flush-timeout"
98
msgstr "La Chaine de filtre est incompatible avec --flush-timeout"
89
99
90
#: src/xz/coder.c:215
100
#: src/xz/coder.c:225
91
msgid "Switching to single-threaded mode due to --flush-timeout"
101
msgid "Switching to single-threaded mode due to --flush-timeout"
92
msgstr "Bascule en mode mono-processus à cause de --flush-timeout"
102
msgstr "Bascule en mode mono-processus à cause de --flush-timeout"
93
103
94
#: src/xz/coder.c:235
104
#: src/xz/coder.c:249
95
#, c-format
105
#, c-format
96
msgid "Using up to %<PRIu32> threads."
106
msgid "Using up to %<PRIu32> threads."
97
msgstr "Jusqu'à %<PRIu32> threads seront utilisés."
107
msgstr "Jusqu'à %<PRIu32> threads seront utilisés."
98
108
99
#: src/xz/coder.c:251
109
#: src/xz/coder.c:265
100
msgid "Unsupported filter chain or filter options"
110
msgid "Unsupported filter chain or filter options"
101
msgstr "Enchaînement ou options de filtres non pris en charge"
111
msgstr "Enchaînement ou options de filtres non pris en charge"
102
112
103
#: src/xz/coder.c:263
113
#: src/xz/coder.c:277
104
#, c-format
114
#, c-format
105
msgid "Decompression will need %s MiB of memory."
115
msgid "Decompression will need %s MiB of memory."
106
msgstr "La décompression nécessitera %s MiB de mémoire."
116
msgstr "La décompression nécessitera %s MiB de mémoire."
107
117
108
#: src/xz/coder.c:300
118
#: src/xz/coder.c:309
119
#, fuzzy, c-format
120
#| msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
121
msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
122
msgstr "Nombre de threads réduit de %s à %s pour ne pas dépasser la limite d'utilisation mémoire de %s MiB"
123
124
#: src/xz/coder.c:329
109
#, c-format
125
#, c-format
110
msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
126
msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway."
127
msgstr ""
128
129
#: src/xz/coder.c:356
130
#, fuzzy, c-format
131
#| msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
132
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
111
msgstr "Nombre de threads réduit de %s à %s pour ne pas dépasser la limite d'utilisation mémoire de %s MiB"
133
msgstr "Nombre de threads réduit de %s à %s pour ne pas dépasser la limite d'utilisation mémoire de %s MiB"
112
134
113
#: src/xz/coder.c:354
135
#: src/xz/coder.c:411
114
#, c-format
136
#, c-format
115
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
137
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
116
msgstr "Taille du dictionnaire LZMA%c réduite de %s MiB à %s MiB pour ne pas dépasser la limite d'utilisation mémoire de %s MiB"
138
msgstr "Taille du dictionnaire LZMA%c réduite de %s MiB à %s MiB pour ne pas dépasser la limite d'utilisation mémoire de %s MiB"
Lines 120-130 Link Here
120
msgid "Error creating a pipe: %s"
142
msgid "Error creating a pipe: %s"
121
msgstr "Impossible de créer un tube anonyme (pipe) : %s"
143
msgstr "Impossible de créer un tube anonyme (pipe) : %s"
122
144
123
#: src/xz/file_io.c:224
145
#: src/xz/file_io.c:252
124
msgid "Failed to enable the sandbox"
146
msgid "Failed to enable the sandbox"
125
msgstr "Echec de l'activation de la sandboxe"
147
msgstr "Echec de l'activation de la sandboxe"
126
148
127
#: src/xz/file_io.c:266
149
#: src/xz/file_io.c:294
128
#, c-format
150
#, c-format
129
msgid "%s: poll() failed: %s"
151
msgid "%s: poll() failed: %s"
130
msgstr "%s : L'appel à la fonction poll() a échoué : %s"
152
msgstr "%s : L'appel à la fonction poll() a échoué : %s"
Lines 139-165 Link Here
139
#. it is possible that the user has put a new file in place
161
#. it is possible that the user has put a new file in place
140
#. of the original file, and in that case it obviously
162
#. of the original file, and in that case it obviously
141
#. shouldn't be removed.
163
#. shouldn't be removed.
142
#: src/xz/file_io.c:333
164
#: src/xz/file_io.c:361
143
#, c-format
165
#, c-format
144
msgid "%s: File seems to have been moved, not removing"
166
msgid "%s: File seems to have been moved, not removing"
145
msgstr "%s : Le fichier a apparemment été déplacé, suppression annulée"
167
msgstr "%s : Le fichier a apparemment été déplacé, suppression annulée"
146
168
147
#: src/xz/file_io.c:340 src/xz/file_io.c:882
169
#: src/xz/file_io.c:368 src/xz/file_io.c:924
148
#, c-format
170
#, c-format
149
msgid "%s: Cannot remove: %s"
171
msgid "%s: Cannot remove: %s"
150
msgstr "%s : Impossible de supprimer : %s"
172
msgstr "%s : Impossible de supprimer : %s"
151
173
152
#: src/xz/file_io.c:366
174
#: src/xz/file_io.c:394
153
#, c-format
175
#, c-format
154
msgid "%s: Cannot set the file owner: %s"
176
msgid "%s: Cannot set the file owner: %s"
155
msgstr "%s : Impossible de modifier le propriétaire du fichier : %s"
177
msgstr "%s : Impossible de modifier le propriétaire du fichier : %s"
156
178
157
#: src/xz/file_io.c:372
179
#: src/xz/file_io.c:407
158
#, c-format
180
#, c-format
159
msgid "%s: Cannot set the file group: %s"
181
msgid "%s: Cannot set the file group: %s"
160
msgstr "%s : Impossible de modifier le groupe propriétaire du fichier : %s"
182
msgstr "%s : Impossible de modifier le groupe propriétaire du fichier : %s"
161
183
162
#: src/xz/file_io.c:391
184
#: src/xz/file_io.c:426
163
#, c-format
185
#, c-format
164
msgid "%s: Cannot set the file permissions: %s"
186
msgid "%s: Cannot set the file permissions: %s"
165
msgstr "%s : Impossible de modifier les permissions du fichier : %s"
187
msgstr "%s : Impossible de modifier les permissions du fichier : %s"
Lines 172-343 Link Here
172
# - make it more difficult to look up in search engines; it might happen one in
194
# - make it more difficult to look up in search engines; it might happen one in
173
# a million times, if we dilute the error message in 20 languages, it will be
195
# a million times, if we dilute the error message in 20 languages, it will be
174
# almost impossible to find an explanation and support for the error.
196
# almost impossible to find an explanation and support for the error.
175
#: src/xz/file_io.c:517
197
#: src/xz/file_io.c:552
176
#, c-format
198
#, c-format
177
msgid "Error getting the file status flags from standard input: %s"
199
msgid "Error getting the file status flags from standard input: %s"
178
msgstr "Echec de la lecture du drapeau d'état du fichier depuis la sortie standard : %s"
200
msgstr "Echec de la lecture du drapeau d'état du fichier depuis la sortie standard : %s"
179
201
180
#: src/xz/file_io.c:574 src/xz/file_io.c:636
202
#: src/xz/file_io.c:610 src/xz/file_io.c:672
181
#, c-format
203
#, c-format
182
msgid "%s: Is a symbolic link, skipping"
204
msgid "%s: Is a symbolic link, skipping"
183
msgstr "%s est un lien symbolique : ignoré"
205
msgstr "%s est un lien symbolique : ignoré"
184
206
185
#: src/xz/file_io.c:665
207
#: src/xz/file_io.c:701
186
#, c-format
208
#, c-format
187
msgid "%s: Is a directory, skipping"
209
msgid "%s: Is a directory, skipping"
188
msgstr "%s est un répertoire : ignoré"
210
msgstr "%s est un répertoire : ignoré"
189
211
190
#: src/xz/file_io.c:671
212
#: src/xz/file_io.c:707
191
#, c-format
213
#, c-format
192
msgid "%s: Not a regular file, skipping"
214
msgid "%s: Not a regular file, skipping"
193
msgstr "%s n'est pas un fichier régulier : ignoré"
215
msgstr "%s n'est pas un fichier régulier : ignoré"
194
216
195
#: src/xz/file_io.c:688
217
#: src/xz/file_io.c:724
196
#, c-format
218
#, c-format
197
msgid "%s: File has setuid or setgid bit set, skipping"
219
msgid "%s: File has setuid or setgid bit set, skipping"
198
msgstr "%s : Le fichier possède les bits `setuid' ou `setgid' : ignoré"
220
msgstr "%s : Le fichier possède les bits `setuid' ou `setgid' : ignoré"
199
221
200
#: src/xz/file_io.c:695
222
#: src/xz/file_io.c:731
201
#, c-format
223
#, c-format
202
msgid "%s: File has sticky bit set, skipping"
224
msgid "%s: File has sticky bit set, skipping"
203
msgstr "%s : Le fichier possède le bit `sticky' : ignoré"
225
msgstr "%s : Le fichier possède le bit `sticky' : ignoré"
204
226
205
#: src/xz/file_io.c:702
227
#: src/xz/file_io.c:738
206
#, c-format
228
#, c-format
207
msgid "%s: Input file has more than one hard link, skipping"
229
msgid "%s: Input file has more than one hard link, skipping"
208
msgstr "%s : Le fichier d'entrée a plus d'un lien matériel : ignoré"
230
msgstr "%s : Le fichier d'entrée a plus d'un lien matériel : ignoré"
209
231
232
#: src/xz/file_io.c:780
233
msgid "Empty filename, skipping"
234
msgstr "Nom de fichier vide, ignoré"
235
210
# See note from translator above titled "file status flags".
236
# See note from translator above titled "file status flags".
211
#: src/xz/file_io.c:792
237
#: src/xz/file_io.c:834
212
#, c-format
238
#, c-format
213
msgid "Error restoring the status flags to standard input: %s"
239
msgid "Error restoring the status flags to standard input: %s"
214
msgstr "Erreur de restauration du drapeau d'état de l'entrée standard : %s"
240
msgstr "Erreur de restauration du drapeau d'état de l'entrée standard : %s"
215
241
216
# See note from translator above titled "file status flags".
242
# See note from translator above titled "file status flags".
217
#: src/xz/file_io.c:840
243
#: src/xz/file_io.c:882
218
#, c-format
244
#, c-format
219
msgid "Error getting the file status flags from standard output: %s"
245
msgid "Error getting the file status flags from standard output: %s"
220
msgstr "Erreur de lecture du drapeau d'état du fichier depuis la sortie standard : %s"
246
msgstr "Erreur de lecture du drapeau d'état du fichier depuis la sortie standard : %s"
221
247
222
#: src/xz/file_io.c:1018
248
#: src/xz/file_io.c:1060
223
#, c-format
249
#, c-format
224
msgid "Error restoring the O_APPEND flag to standard output: %s"
250
msgid "Error restoring the O_APPEND flag to standard output: %s"
225
msgstr "Impossible de rétablir le drapeau O_APPEND sur la sortie standard : %s"
251
msgstr "Impossible de rétablir le drapeau O_APPEND sur la sortie standard : %s"
226
252
227
#: src/xz/file_io.c:1030
253
#: src/xz/file_io.c:1072
228
#, c-format
254
#, c-format
229
msgid "%s: Closing the file failed: %s"
255
msgid "%s: Closing the file failed: %s"
230
msgstr "%s : Impossible de fermer le fichier : %s"
256
msgstr "%s : Impossible de fermer le fichier : %s"
231
257
232
#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
258
#: src/xz/file_io.c:1108 src/xz/file_io.c:1371
233
#, c-format
259
#, c-format
234
msgid "%s: Seeking failed when trying to create a sparse file: %s"
260
msgid "%s: Seeking failed when trying to create a sparse file: %s"
235
msgstr "%s : Impossible de se déplacer dans le fichier pour créer un 'sparse file' : %s"
261
msgstr "%s : Impossible de se déplacer dans le fichier pour créer un 'sparse file' : %s"
236
262
237
#: src/xz/file_io.c:1167
263
#: src/xz/file_io.c:1209
238
#, c-format
264
#, c-format
239
msgid "%s: Read error: %s"
265
msgid "%s: Read error: %s"
240
msgstr "%s : Erreur d'écriture : %s"
266
msgstr "%s : Erreur d'écriture : %s"
241
267
242
#: src/xz/file_io.c:1191
268
#: src/xz/file_io.c:1239
243
#, c-format
269
#, c-format
244
msgid "%s: Error seeking the file: %s"
270
msgid "%s: Error seeking the file: %s"
245
msgstr "%s : Impossible de se déplacer dans le fichier : %s"
271
msgstr "%s : Impossible de se déplacer dans le fichier : %s"
246
272
247
#: src/xz/file_io.c:1201
273
#: src/xz/file_io.c:1263
248
#, c-format
274
#, c-format
249
msgid "%s: Unexpected end of file"
275
msgid "%s: Unexpected end of file"
250
msgstr "%s : Fin de fichier inattendue"
276
msgstr "%s : Fin de fichier inattendue"
251
277
252
#: src/xz/file_io.c:1260
278
#: src/xz/file_io.c:1322
253
#, c-format
279
#, c-format
254
msgid "%s: Write error: %s"
280
msgid "%s: Write error: %s"
255
msgstr "%s : Erreur d'écriture : %s"
281
msgstr "%s : Erreur d'écriture : %s"
256
282
257
#: src/xz/hardware.c:137
283
#: src/xz/hardware.c:238
258
msgid "Disabled"
284
msgid "Disabled"
259
msgstr "Désactivé"
285
msgstr "Désactivé"
260
286
261
#. TRANSLATORS: Test with "xz --info-memory" to see if
287
#: src/xz/hardware.c:269
262
#. the alignment looks nice.
288
#, fuzzy
263
#: src/xz/hardware.c:156
289
#| msgid "Total amount of physical memory (RAM): "
264
msgid "Total amount of physical memory (RAM): "
290
msgid "Amount of physical memory (RAM):"
265
msgstr "Quantité totale de mémoire physique (RAM) :  "
291
msgstr "Quantité totale de mémoire physique (RAM) :  "
266
292
267
#: src/xz/hardware.c:158
293
#: src/xz/hardware.c:270
268
msgid "Memory usage limit for compression:    "
294
msgid "Number of processor threads:"
269
msgstr "Limite d'utilisation pour la compression :   "
295
msgstr ""
270
296
271
#: src/xz/hardware.c:160
297
#: src/xz/hardware.c:271
272
msgid "Memory usage limit for decompression:  "
298
msgid "Compression:"
299
msgstr ""
300
301
#: src/xz/hardware.c:272
302
msgid "Decompression:"
303
msgstr ""
304
305
#: src/xz/hardware.c:273
306
#, fuzzy
307
#| msgid "Memory usage limit for decompression:  "
308
msgid "Multi-threaded decompression:"
273
msgstr "Limite d'utilisation pour la décompression : "
309
msgstr "Limite d'utilisation pour la décompression : "
274
310
311
#: src/xz/hardware.c:274
312
msgid "Default for -T0:"
313
msgstr ""
314
315
#: src/xz/hardware.c:292
316
msgid "Hardware information:"
317
msgstr ""
318
319
#: src/xz/hardware.c:299
320
#, fuzzy
321
#| msgid "Memory usage limit reached"
322
msgid "Memory usage limits:"
323
msgstr "Limite d'utilisation mémoire atteinte"
324
325
#: src/xz/list.c:68
326
msgid "Streams:"
327
msgstr ""
328
329
#: src/xz/list.c:69
330
msgid "Blocks:"
331
msgstr ""
332
333
#: src/xz/list.c:70
334
#, fuzzy
335
#| msgid "  Compressed size:    %s\n"
336
msgid "Compressed size:"
337
msgstr "  Taille données avec compression : %s\n"
338
339
#: src/xz/list.c:71
340
#, fuzzy
341
#| msgid "  Uncompressed size:  %s\n"
342
msgid "Uncompressed size:"
343
msgstr "  Taille données sans compression : %s\n"
344
345
#: src/xz/list.c:72
346
msgid "Ratio:"
347
msgstr ""
348
349
#: src/xz/list.c:73
350
msgid "Check:"
351
msgstr ""
352
353
#: src/xz/list.c:74
354
#, fuzzy
355
#| msgid "  Stream padding:     %s\n"
356
msgid "Stream Padding:"
357
msgstr "  Octets de rembourrage du flux :   %s\n"
358
359
#: src/xz/list.c:75
360
#, fuzzy
361
#| msgid "  Memory needed:      %s MiB\n"
362
msgid "Memory needed:"
363
msgstr "  Mémoire nécessaire :              %s MiB\n"
364
365
#: src/xz/list.c:76
366
#, fuzzy
367
#| msgid "  Sizes in headers:   %s\n"
368
msgid "Sizes in headers:"
369
msgstr "  Tailles stockées dans l'en-tête : %s\n"
370
371
#: src/xz/list.c:79
372
#, fuzzy
373
#| msgid "  Number of files:    %s\n"
374
msgid "Number of files:"
375
msgstr "  Nombre de fichiers : %s\n"
376
377
#: src/xz/list.c:122
378
msgid "Stream"
379
msgstr ""
380
381
#: src/xz/list.c:123
382
msgid "Block"
383
msgstr ""
384
385
#: src/xz/list.c:124
386
msgid "Blocks"
387
msgstr ""
388
389
#: src/xz/list.c:125
390
msgid "CompOffset"
391
msgstr ""
392
393
#: src/xz/list.c:126
394
msgid "UncompOffset"
395
msgstr ""
396
397
#: src/xz/list.c:127
398
msgid "CompSize"
399
msgstr ""
400
401
#: src/xz/list.c:128
402
msgid "UncompSize"
403
msgstr ""
404
405
#: src/xz/list.c:129
406
#, fuzzy
407
#| msgid "Totals:"
408
msgid "TotalSize"
409
msgstr "Totaux :"
410
411
#: src/xz/list.c:130
412
msgid "Ratio"
413
msgstr ""
414
415
#: src/xz/list.c:131
416
msgid "Check"
417
msgstr ""
418
419
#: src/xz/list.c:132
420
msgid "CheckVal"
421
msgstr ""
422
423
#: src/xz/list.c:133
424
msgid "Padding"
425
msgstr ""
426
427
#: src/xz/list.c:134
428
msgid "Header"
429
msgstr ""
430
431
#: src/xz/list.c:135
432
msgid "Flags"
433
msgstr ""
434
435
#: src/xz/list.c:136
436
msgid "MemUsage"
437
msgstr ""
438
439
#: src/xz/list.c:137
440
msgid "Filters"
441
msgstr ""
442
275
#. TRANSLATORS: Indicates that there is no integrity check.
443
#. TRANSLATORS: Indicates that there is no integrity check.
276
#. This string is used in tables, so the width must not
444
#. This string is used in tables. In older xz version this
277
#. exceed ten columns with a fixed-width font.
445
#. string was limited to ten columns in a fixed-width font, but
278
#: src/xz/list.c:65
446
#. nowadays there is no strict length restriction anymore.
447
#: src/xz/list.c:169
279
msgid "None"
448
msgid "None"
280
msgstr "Aucune"
449
msgstr "Aucune"
281
450
282
#. TRANSLATORS: Indicates that integrity check name is not known,
451
#. TRANSLATORS: Indicates that integrity check name is not known,
283
#. but the Check ID is known (here 2). This and other "Unknown-N"
452
#. but the Check ID is known (here 2). In older xz version these
284
#. strings are used in tables, so the width must not exceed ten
453
#. strings were limited to ten columns in a fixed-width font, but
285
#. columns with a fixed-width font. It's OK to omit the dash if
454
#. nowadays there is no strict length restriction anymore.
286
#. you need space for one extra letter, but don't use spaces.
455
#: src/xz/list.c:175
287
#: src/xz/list.c:72
288
msgid "Unknown-2"
456
msgid "Unknown-2"
289
msgstr "Inconnue-2"
457
msgstr "Inconnue-2"
290
458
291
#: src/xz/list.c:73
459
#: src/xz/list.c:176
292
msgid "Unknown-3"
460
msgid "Unknown-3"
293
msgstr "Inconnue-3"
461
msgstr "Inconnue-3"
294
462
295
#: src/xz/list.c:75
463
#: src/xz/list.c:178
296
msgid "Unknown-5"
464
msgid "Unknown-5"
297
msgstr "Inconnue-5"
465
msgstr "Inconnue-5"
298
466
299
#: src/xz/list.c:76
467
#: src/xz/list.c:179
300
msgid "Unknown-6"
468
msgid "Unknown-6"
301
msgstr "Inconnue-6"
469
msgstr "Inconnue-6"
302
470
303
#: src/xz/list.c:77
471
#: src/xz/list.c:180
304
msgid "Unknown-7"
472
msgid "Unknown-7"
305
msgstr "Inconnue-7"
473
msgstr "Inconnue-7"
306
474
307
#: src/xz/list.c:78
475
#: src/xz/list.c:181
308
msgid "Unknown-8"
476
msgid "Unknown-8"
309
msgstr "Inconnue-8"
477
msgstr "Inconnue-8"
310
478
311
#: src/xz/list.c:79
479
#: src/xz/list.c:182
312
msgid "Unknown-9"
480
msgid "Unknown-9"
313
msgstr "Inconnue-9"
481
msgstr "Inconnue-9"
314
482
315
#: src/xz/list.c:81
483
#: src/xz/list.c:184
316
msgid "Unknown-11"
484
msgid "Unknown-11"
317
msgstr "Inconnue-11"
485
msgstr "Inconnue-11"
318
486
319
#: src/xz/list.c:82
487
#: src/xz/list.c:185
320
msgid "Unknown-12"
488
msgid "Unknown-12"
321
msgstr "Inconnue-12"
489
msgstr "Inconnue-12"
322
490
323
#: src/xz/list.c:83
491
#: src/xz/list.c:186
324
msgid "Unknown-13"
492
msgid "Unknown-13"
325
msgstr "Inconnue-13"
493
msgstr "Inconnue-13"
326
494
327
#: src/xz/list.c:84
495
#: src/xz/list.c:187
328
msgid "Unknown-14"
496
msgid "Unknown-14"
329
msgstr "Inconnue-14"
497
msgstr "Inconnue-14"
330
498
331
#: src/xz/list.c:85
499
#: src/xz/list.c:188
332
msgid "Unknown-15"
500
msgid "Unknown-15"
333
msgstr "Inconnue-15"
501
msgstr "Inconnue-15"
334
502
335
#: src/xz/list.c:153
503
#: src/xz/list.c:351
336
#, c-format
504
#, c-format
337
msgid "%s: File is empty"
505
msgid "%s: File is empty"
338
msgstr "%s : Le fichier est vide"
506
msgstr "%s : Le fichier est vide"
339
507
340
#: src/xz/list.c:158
508
#: src/xz/list.c:356
341
#, c-format
509
#, c-format
342
msgid "%s: Too small to be a valid .xz file"
510
msgid "%s: Too small to be a valid .xz file"
343
msgstr "%s : Trop petit pour être un fichier xz valide."
511
msgstr "%s : Trop petit pour être un fichier xz valide."
Lines 346-470 Link Here
346
#. to Ratio, the columns are right aligned. Check and Filename
514
#. to Ratio, the columns are right aligned. Check and Filename
347
#. are left aligned. If you need longer words, it's OK to
515
#. are left aligned. If you need longer words, it's OK to
348
#. use two lines here. Test with "xz -l foo.xz".
516
#. use two lines here. Test with "xz -l foo.xz".
349
#: src/xz/list.c:677
517
#: src/xz/list.c:730
350
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
518
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
351
msgstr "Flux    Blocs    Compressé  Décompressé  Ratio  Vérif.  Nom de fichier"
519
msgstr "Flux    Blocs    Compressé  Décompressé  Ratio  Vérif.  Nom de fichier"
352
520
353
#: src/xz/list.c:717
521
#: src/xz/list.c:1025 src/xz/list.c:1203
354
#, c-format
355
msgid "  Streams:            %s\n"
356
msgstr "  Flux :                            %s\n"
357
358
#: src/xz/list.c:719
359
#, c-format
360
msgid "  Blocks:             %s\n"
361
msgstr "  Blocs :                           %s\n"
362
363
#: src/xz/list.c:721
364
#, c-format
365
msgid "  Compressed size:    %s\n"
366
msgstr "  Taille données avec compression : %s\n"
367
368
#: src/xz/list.c:724
369
#, c-format
370
msgid "  Uncompressed size:  %s\n"
371
msgstr "  Taille données sans compression : %s\n"
372
373
#: src/xz/list.c:727
374
#, c-format
375
msgid "  Ratio:              %s\n"
376
msgstr "  Ratio :                           %s\n"
377
378
#: src/xz/list.c:729
379
#, c-format
380
msgid "  Check:              %s\n"
381
msgstr "  Vérification :                    %s\n"
382
383
#: src/xz/list.c:730
384
#, c-format
385
msgid "  Stream padding:     %s\n"
386
msgstr "  Octets de rembourrage du flux :   %s\n"
387
388
#. TRANSLATORS: The second line is column headings. All except
389
#. Check are right aligned; Check is left aligned. Test with
390
#. "xz -lv foo.xz".
391
#: src/xz/list.c:758
392
msgid ""
393
"  Streams:\n"
394
"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
395
msgstr ""
396
"  Flux :\n"
397
"      Flux     Blocs    PositionComp  PositionDécomp      TailleComp    TailleDécomp  Ratio  Vérif.    Bourrage"
398
399
#. TRANSLATORS: The second line is column headings. All
400
#. except Check are right aligned; Check is left aligned.
401
#: src/xz/list.c:813
402
#, c-format
403
msgid ""
404
"  Blocks:\n"
405
"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
406
msgstr ""
407
"  Blocs :\n"
408
"      Flux      Bloc    PositionComp  PositionDécomp       TailleTot    TailleDécomp  Ratio  Vérif."
409
410
#. TRANSLATORS: These are additional column headings
411
#. for the most verbose listing mode. CheckVal
412
#. (Check value), Flags, and Filters are left aligned.
413
#. Header (Block Header Size), CompSize, and MemUsage
414
#. are right aligned. %*s is replaced with 0-120
415
#. spaces to make the CheckVal column wide enough.
416
#. Test with "xz -lvv foo.xz".
417
#: src/xz/list.c:825
418
#, c-format
419
msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
420
msgstr "     ValVérif %*sEn-tête  Drapeaux   TailleComp     UtilMém  Filtres"
421
422
#: src/xz/list.c:903 src/xz/list.c:1078
423
#, c-format
424
msgid "  Memory needed:      %s MiB\n"
425
msgstr "  Mémoire nécessaire :              %s MiB\n"
426
427
#: src/xz/list.c:905 src/xz/list.c:1080
428
#, c-format
429
msgid "  Sizes in headers:   %s\n"
430
msgstr "  Tailles stockées dans l'en-tête : %s\n"
431
432
#: src/xz/list.c:906 src/xz/list.c:1081
433
msgid "Yes"
522
msgid "Yes"
434
msgstr "Oui"
523
msgstr "Oui"
435
524
436
#: src/xz/list.c:906 src/xz/list.c:1081
525
#: src/xz/list.c:1025 src/xz/list.c:1203
437
msgid "No"
526
msgid "No"
438
msgstr "Non"
527
msgstr "Non"
439
528
440
#: src/xz/list.c:907 src/xz/list.c:1082
529
#: src/xz/list.c:1027 src/xz/list.c:1205
441
#, c-format
530
#, c-format
442
msgid "  Minimum XZ Utils version: %s\n"
531
msgid "  Minimum XZ Utils version: %s\n"
443
msgstr "  Version minimale de XZ Utils : %s\n"
532
msgstr "  Version minimale de XZ Utils : %s\n"
444
533
445
#. TRANSLATORS: %s is an integer. Only the plural form of this
534
#. TRANSLATORS: %s is an integer. Only the plural form of this
446
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
535
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
447
#: src/xz/list.c:1057
536
#: src/xz/list.c:1178
448
#, c-format
537
#, c-format
449
msgid "%s file\n"
538
msgid "%s file\n"
450
msgid_plural "%s files\n"
539
msgid_plural "%s files\n"
451
msgstr[0] "%s fichier\n"
540
msgstr[0] "%s fichier\n"
452
msgstr[1] "%s fichiers\n"
541
msgstr[1] "%s fichiers\n"
453
542
454
#: src/xz/list.c:1070
543
#: src/xz/list.c:1191
455
msgid "Totals:"
544
msgid "Totals:"
456
msgstr "Totaux :"
545
msgstr "Totaux :"
457
546
458
#: src/xz/list.c:1071
547
#: src/xz/list.c:1269
459
#, c-format
460
msgid "  Number of files:    %s\n"
461
msgstr "  Nombre de fichiers : %s\n"
462
463
#: src/xz/list.c:1146
464
msgid "--list works only on .xz files (--format=xz or --format=auto)"
548
msgid "--list works only on .xz files (--format=xz or --format=auto)"
465
msgstr "--list ne marche que sur les fichiers .xz (--format=xz ou --format=auto)"
549
msgstr "--list ne marche que sur les fichiers .xz (--format=xz ou --format=auto)"
466
550
467
#: src/xz/list.c:1152
551
#: src/xz/list.c:1275
468
msgid "--list does not support reading from standard input"
552
msgid "--list does not support reading from standard input"
469
msgstr "--list est incompatible avec la lecture sur l'entrée standard"
553
msgstr "--list est incompatible avec la lecture sur l'entrée standard"
470
554
Lines 483-493 Link Here
483
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
567
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
484
msgstr "%s : Caractère NULL détecté lors de la lecture des noms de fichiers ; peut-être pensiez-vous à `--files0' plutot qu'a `--files' ?"
568
msgstr "%s : Caractère NULL détecté lors de la lecture des noms de fichiers ; peut-être pensiez-vous à `--files0' plutot qu'a `--files' ?"
485
569
486
#: src/xz/main.c:174
570
#: src/xz/main.c:188
487
msgid "Compression and decompression with --robot are not supported yet."
571
msgid "Compression and decompression with --robot are not supported yet."
488
msgstr "La compression et la décompression ne marchent pas encore avec --robot."
572
msgstr "La compression et la décompression ne marchent pas encore avec --robot."
489
573
490
#: src/xz/main.c:252
574
#: src/xz/main.c:266
491
msgid "Cannot read data from standard input when reading filenames from standard input"
575
msgid "Cannot read data from standard input when reading filenames from standard input"
492
msgstr "Impossible de lire à la fois les données et les noms de fichiers depuis l'entrée standard"
576
msgstr "Impossible de lire à la fois les données et les noms de fichiers depuis l'entrée standard"
493
577
Lines 495-562 Link Here
495
#. of the line in messages. Usually it becomes "xz: ".
579
#. of the line in messages. Usually it becomes "xz: ".
496
#. This is a translatable string because French needs
580
#. This is a translatable string because French needs
497
#. a space before a colon.
581
#. a space before a colon.
498
#: src/xz/message.c:728
582
#: src/xz/message.c:725
499
#, c-format
583
#, c-format
500
msgid "%s: "
584
msgid "%s: "
501
msgstr "%s : "
585
msgstr "%s : "
502
586
503
#: src/xz/message.c:791 src/xz/message.c:841
587
#: src/xz/message.c:797 src/xz/message.c:856
504
msgid "Internal error (bug)"
588
msgid "Internal error (bug)"
505
msgstr "Erreur interne (bug)"
589
msgstr "Erreur interne (bug)"
506
590
507
#: src/xz/message.c:798
591
#: src/xz/message.c:804
508
msgid "Cannot establish signal handlers"
592
msgid "Cannot establish signal handlers"
509
msgstr "Impossible d'installer le gestionnaire de signaux"
593
msgstr "Impossible d'installer le gestionnaire de signaux"
510
594
511
#: src/xz/message.c:807
595
#: src/xz/message.c:813
512
msgid "No integrity check; not verifying file integrity"
596
msgid "No integrity check; not verifying file integrity"
513
msgstr "Pas de données de vérification d'intégrité ; vérification non effectuée"
597
msgstr "Pas de données de vérification d'intégrité ; vérification non effectuée"
514
598
515
#: src/xz/message.c:810
599
#: src/xz/message.c:816
516
msgid "Unsupported type of integrity check; not verifying file integrity"
600
msgid "Unsupported type of integrity check; not verifying file integrity"
517
msgstr "Méthode de vérification d'intégrité non prise en charge ; vérification non effectuée"
601
msgstr "Méthode de vérification d'intégrité non prise en charge ; vérification non effectuée"
518
602
519
#: src/xz/message.c:817
603
#: src/xz/message.c:823
520
msgid "Memory usage limit reached"
604
msgid "Memory usage limit reached"
521
msgstr "Limite d'utilisation mémoire atteinte"
605
msgstr "Limite d'utilisation mémoire atteinte"
522
606
523
#: src/xz/message.c:820
607
#: src/xz/message.c:826
524
msgid "File format not recognized"
608
msgid "File format not recognized"
525
msgstr "Format de fichier inconnu"
609
msgstr "Format de fichier inconnu"
526
610
527
#: src/xz/message.c:823
611
#: src/xz/message.c:829
528
msgid "Unsupported options"
612
msgid "Unsupported options"
529
msgstr "Options non prises en charge"
613
msgstr "Options non prises en charge"
530
614
531
#: src/xz/message.c:826
615
#: src/xz/message.c:832
532
msgid "Compressed data is corrupt"
616
msgid "Compressed data is corrupt"
533
msgstr "Les données compressées sont corrompues"
617
msgstr "Les données compressées sont corrompues"
534
618
535
#: src/xz/message.c:829
619
#: src/xz/message.c:835
536
msgid "Unexpected end of input"
620
msgid "Unexpected end of input"
537
msgstr "Fin des données inattendue "
621
msgstr "Fin des données inattendue "
538
622
539
#: src/xz/message.c:862
623
#: src/xz/message.c:877
540
#, c-format
624
#, c-format
541
msgid "%s MiB of memory is required. The limiter is disabled."
625
msgid "%s MiB of memory is required. The limiter is disabled."
542
msgstr "%s MiB de mémoire sont nécessaires. La limite est désactivée."
626
msgstr "%s MiB de mémoire sont nécessaires. La limite est désactivée."
543
627
544
#: src/xz/message.c:890
628
#: src/xz/message.c:905
545
#, c-format
629
#, c-format
546
msgid "%s MiB of memory is required. The limit is %s."
630
msgid "%s MiB of memory is required. The limit is %s."
547
msgstr "%s MiB de mémoire sont nécessaires, la limite étant %s."
631
msgstr "%s MiB de mémoire sont nécessaires, la limite étant %s."
548
632
549
#: src/xz/message.c:1057
633
#: src/xz/message.c:924
550
#, c-format
634
#, c-format
551
msgid "%s: Filter chain: %s\n"
635
msgid "%s: Filter chain: %s\n"
552
msgstr "%s : Enchaînement de filtres : %s\n"
636
msgstr "%s : Enchaînement de filtres : %s\n"
553
637
554
#: src/xz/message.c:1067
638
#: src/xz/message.c:935
555
#, c-format
639
#, c-format
556
msgid "Try `%s --help' for more information."
640
msgid "Try `%s --help' for more information."
557
msgstr "Éxécutez `%s --help' pour obtenir davantage d'informations."
641
msgstr "Éxécutez `%s --help' pour obtenir davantage d'informations."
558
642
559
#: src/xz/message.c:1093
643
#: src/xz/message.c:961
560
#, c-format
644
#, c-format
561
msgid ""
645
msgid ""
562
"Usage: %s [OPTION]... [FILE]...\n"
646
"Usage: %s [OPTION]... [FILE]...\n"
Lines 567-583 Link Here
567
"Compresse ou decompresse FICHIER(s) au format .xz.\n"
651
"Compresse ou decompresse FICHIER(s) au format .xz.\n"
568
"\n"
652
"\n"
569
653
570
#: src/xz/message.c:1100
654
#: src/xz/message.c:968
571
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
655
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
572
msgstr ""
656
msgstr ""
573
"Les arguments obligatoires pour les options longues le sont aussi pour les\n"
657
"Les arguments obligatoires pour les options longues le sont aussi pour les\n"
574
"options courtes.\n"
658
"options courtes.\n"
575
659
576
#: src/xz/message.c:1104
660
#: src/xz/message.c:972
577
msgid " Operation mode:\n"
661
msgid " Operation mode:\n"
578
msgstr " Mode d'opération :\n"
662
msgstr " Mode d'opération :\n"
579
663
580
#: src/xz/message.c:1107
664
#: src/xz/message.c:975
581
msgid ""
665
msgid ""
582
"  -z, --compress      force compression\n"
666
"  -z, --compress      force compression\n"
583
"  -d, --decompress    force decompression\n"
667
"  -d, --decompress    force decompression\n"
Lines 589-595 Link Here
589
"  -t, --test          tester l'intégrité du fichier compressé\n"
673
"  -t, --test          tester l'intégrité du fichier compressé\n"
590
"  -l, --list          lister les informations sur les fichiers .xz"
674
"  -l, --list          lister les informations sur les fichiers .xz"
591
675
592
#: src/xz/message.c:1113
676
#: src/xz/message.c:981
593
msgid ""
677
msgid ""
594
"\n"
678
"\n"
595
" Operation modifiers:\n"
679
" Operation modifiers:\n"
Lines 597-603 Link Here
597
"\n"
681
"\n"
598
" Modificateurs :\n"
682
" Modificateurs :\n"
599
683
600
#: src/xz/message.c:1116
684
#: src/xz/message.c:984
601
msgid ""
685
msgid ""
602
"  -k, --keep          keep (don't delete) input files\n"
686
"  -k, --keep          keep (don't delete) input files\n"
603
"  -f, --force         force overwrite of output file and (de)compress links\n"
687
"  -f, --force         force overwrite of output file and (de)compress links\n"
Lines 609-615 Link Here
609
"  -c, --stdout        écrire sur la sortie standard et ne pas supprimer les\n"
693
"  -c, --stdout        écrire sur la sortie standard et ne pas supprimer les\n"
610
"                      fichiers d'entrée"
694
"                      fichiers d'entrée"
611
695
612
#: src/xz/message.c:1122
696
#: src/xz/message.c:993
613
msgid ""
697
msgid ""
614
"      --single-stream decompress only the first stream, and silently\n"
698
"      --single-stream decompress only the first stream, and silently\n"
615
"                      ignore possible remaining input data"
699
"                      ignore possible remaining input data"
Lines 617-623 Link Here
617
"      --single-stream décompresser uniquement le premier flux et ignorer\n"
701
"      --single-stream décompresser uniquement le premier flux et ignorer\n"
618
"                      silencieusement les données éventuellement restantes"
702
"                      silencieusement les données éventuellement restantes"
619
703
620
#: src/xz/message.c:1125
704
#: src/xz/message.c:996
621
msgid ""
705
msgid ""
622
"      --no-sparse     do not create sparse files when decompressing\n"
706
"      --no-sparse     do not create sparse files when decompressing\n"
623
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
707
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
Lines 633-639 Link Here
633
"                      et doivent être suivis d'un caractère retour à la ligne\n"
717
"                      et doivent être suivis d'un caractère retour à la ligne\n"
634
"      --files0[=FILE] comme --files mais avec un caractère null comme séparateur"
718
"      --files0[=FILE] comme --files mais avec un caractère null comme séparateur"
635
719
636
#: src/xz/message.c:1134
720
#: src/xz/message.c:1005
637
msgid ""
721
msgid ""
638
"\n"
722
"\n"
639
" Basic file format and compression options:\n"
723
" Basic file format and compression options:\n"
Lines 641-650 Link Here
641
"\n"
725
"\n"
642
" Options basiques de format de fichier et de compression :\n"
726
" Options basiques de format de fichier et de compression :\n"
643
727
644
#: src/xz/message.c:1136
728
#: src/xz/message.c:1007
729
#, fuzzy
730
#| msgid ""
731
#| "  -F, --format=FMT    file format to encode or decode; possible values are\n"
732
#| "                      `auto' (default), `xz', `lzma', and `raw'\n"
733
#| "  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
734
#| "                      `crc32', `crc64' (default), or `sha256'"
645
msgid ""
735
msgid ""
646
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
736
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
647
"                      `auto' (default), `xz', `lzma', and `raw'\n"
737
"                      `auto' (default), `xz', `lzma', `lzip', and `raw'\n"
648
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
738
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
649
"                      `crc32', `crc64' (default), or `sha256'"
739
"                      `crc32', `crc64' (default), or `sha256'"
650
msgstr ""
740
msgstr ""
Lines 653-665 Link Here
653
"  -C, --check=CHECK   type de vérification d'intégrité : `none' (à utiliser avec\n"
743
"  -C, --check=CHECK   type de vérification d'intégrité : `none' (à utiliser avec\n"
654
"                      précaution), `crc32', `crc64' (par défaut) ou `sha256'"
744
"                      précaution), `crc32', `crc64' (par défaut) ou `sha256'"
655
745
656
#: src/xz/message.c:1141
746
#: src/xz/message.c:1012
657
msgid "      --ignore-check  don't verify the integrity check when decompressing"
747
msgid "      --ignore-check  don't verify the integrity check when decompressing"
658
msgstr ""
748
msgstr ""
659
"      --ignore-check  ne pas vérifier l'intégrité des données lors de\n"
749
"      --ignore-check  ne pas vérifier l'intégrité des données lors de\n"
660
"                      la décompression"
750
"                      la décompression"
661
751
662
#: src/xz/message.c:1145
752
#: src/xz/message.c:1016
663
msgid ""
753
msgid ""
664
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
754
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
665
"                      decompressor memory usage into account before using 7-9!"
755
"                      decompressor memory usage into account before using 7-9!"
Lines 668-674 Link Here
668
"                      l'utilisation mémoire du compresseur *et* du décompresseur\n"
758
"                      l'utilisation mémoire du compresseur *et* du décompresseur\n"
669
"                      avant d'utiliser 7, 8 ou 9 !"
759
"                      avant d'utiliser 7, 8 ou 9 !"
670
760
671
#: src/xz/message.c:1149
761
#: src/xz/message.c:1020
672
msgid ""
762
msgid ""
673
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
763
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
674
"                      does not affect decompressor memory requirements"
764
"                      does not affect decompressor memory requirements"
Lines 677-683 Link Here
677
"                      de temps processeur ;\n"
767
"                      de temps processeur ;\n"
678
"                      n'affecte pas les besoins mémoire du décompresseur"
768
"                      n'affecte pas les besoins mémoire du décompresseur"
679
769
680
#: src/xz/message.c:1153
770
#: src/xz/message.c:1024
681
msgid ""
771
msgid ""
682
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
772
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
683
"                      to use as many threads as there are processor cores"
773
"                      to use as many threads as there are processor cores"
Lines 686-692 Link Here
686
"                      valeur 0 est spéciale et équivaut au nombre de processeurs\n"
776
"                      valeur 0 est spéciale et équivaut au nombre de processeurs\n"
687
"                      de la machine"
777
"                      de la machine"
688
778
689
#: src/xz/message.c:1158
779
#: src/xz/message.c:1029
690
msgid ""
780
msgid ""
691
"      --block-size=SIZE\n"
781
"      --block-size=SIZE\n"
692
"                      start a new .xz block after every SIZE bytes of input;\n"
782
"                      start a new .xz block after every SIZE bytes of input;\n"
Lines 696-702 Link Here
696
"                      débuter un bloc XZ après chaque TAILLE octets de données\n"
786
"                      débuter un bloc XZ après chaque TAILLE octets de données\n"
697
"                      d'entrée ; ce réglage sert pour la compression paralléle"
787
"                      d'entrée ; ce réglage sert pour la compression paralléle"
698
788
699
#: src/xz/message.c:1162
789
#: src/xz/message.c:1033
700
msgid ""
790
msgid ""
701
"      --block-list=SIZES\n"
791
"      --block-list=SIZES\n"
702
"                      start a new .xz block after the given comma-separated\n"
792
"                      start a new .xz block after the given comma-separated\n"
Lines 706-712 Link Here
706
"                      débuter des blocs XZ après les TAILLES octets de données\n"
796
"                      débuter des blocs XZ après les TAILLES octets de données\n"
707
"                      spécifiées avec des virgules pour séparateur"
797
"                      spécifiées avec des virgules pour séparateur"
708
798
709
#: src/xz/message.c:1166
799
#: src/xz/message.c:1037
710
msgid ""
800
msgid ""
711
"      --flush-timeout=TIMEOUT\n"
801
"      --flush-timeout=TIMEOUT\n"
712
"                      when compressing, if more than TIMEOUT milliseconds has\n"
802
"                      when compressing, if more than TIMEOUT milliseconds has\n"
Lines 718-731 Link Here
718
"                      depuis le dernier flush et que la lecture est bloquée,\n"
808
"                      depuis le dernier flush et que la lecture est bloquée,\n"
719
"                      toutes les données en attente snt écrites"
809
"                      toutes les données en attente snt écrites"
720
810
721
#: src/xz/message.c:1172
811
#: src/xz/message.c:1043
722
#, no-c-format
812
#, fuzzy, no-c-format
813
#| msgid ""
814
#| "      --memlimit-compress=LIMIT\n"
815
#| "      --memlimit-decompress=LIMIT\n"
816
#| "  -M, --memlimit=LIMIT\n"
817
#| "                      set memory usage limit for compression, decompression,\n"
818
#| "                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
723
msgid ""
819
msgid ""
724
"      --memlimit-compress=LIMIT\n"
820
"      --memlimit-compress=LIMIT\n"
725
"      --memlimit-decompress=LIMIT\n"
821
"      --memlimit-decompress=LIMIT\n"
822
"      --memlimit-mt-decompress=LIMIT\n"
726
"  -M, --memlimit=LIMIT\n"
823
"  -M, --memlimit=LIMIT\n"
727
"                      set memory usage limit for compression, decompression,\n"
824
"                      set memory usage limit for compression, decompression,\n"
728
"                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
825
"                      threaded decompression, or all of these; LIMIT is in\n"
826
"                      bytes, % of RAM, or 0 for defaults"
729
msgstr ""
827
msgstr ""
730
"      --memlimit-compress=LIMIT\n"
828
"      --memlimit-compress=LIMIT\n"
731
"      --memlimit-decompress=LIMIT\n"
829
"      --memlimit-decompress=LIMIT\n"
Lines 734-740 Link Here
734
"                      décompression ou les deux ; LIMIT est en octets,\n"
832
"                      décompression ou les deux ; LIMIT est en octets,\n"
735
"                      pourcentage de RAM, ou 0 pour la valeur par défaut"
833
"                      pourcentage de RAM, ou 0 pour la valeur par défaut"
736
834
737
#: src/xz/message.c:1179
835
#: src/xz/message.c:1052
738
msgid ""
836
msgid ""
739
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
837
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
740
"                      give an error instead of adjusting the settings downwards"
838
"                      give an error instead of adjusting the settings downwards"
Lines 743-749 Link Here
743
"                      d'utilisation mémoire, renvoyer une erreur plutôt que de\n"
841
"                      d'utilisation mémoire, renvoyer une erreur plutôt que de\n"
744
"                      diminuer les réglages"
842
"                      diminuer les réglages"
745
843
746
#: src/xz/message.c:1185
844
#: src/xz/message.c:1058
747
msgid ""
845
msgid ""
748
"\n"
846
"\n"
749
" Custom filter chain for compression (alternative for using presets):"
847
" Custom filter chain for compression (alternative for using presets):"
Lines 751-757 Link Here
751
"\n"
849
"\n"
752
" Chaîne de filtres de compression personnalisée (en lieu des préréglages) :"
850
" Chaîne de filtres de compression personnalisée (en lieu des préréglages) :"
753
851
754
#: src/xz/message.c:1194
852
#: src/xz/message.c:1067
755
msgid ""
853
msgid ""
756
"\n"
854
"\n"
757
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
855
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
Lines 780-793 Link Here
780
"                        depth=NUM  profondeur de recherche maximale ;\n"
878
"                        depth=NUM  profondeur de recherche maximale ;\n"
781
"                                      0=automatique (par défaut)"
879
"                                      0=automatique (par défaut)"
782
880
783
#: src/xz/message.c:1209
881
#: src/xz/message.c:1082
882
#, fuzzy
883
#| msgid ""
884
#| "\n"
885
#| "  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
886
#| "  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
887
#| "  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
888
#| "  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
889
#| "  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
890
#| "  --sparc[=OPTS]      SPARC BCJ filter\n"
891
#| "                      Valid OPTS for all BCJ filters:\n"
892
#| "                        start=NUM  start offset for conversions (default=0)"
784
msgid ""
893
msgid ""
785
"\n"
894
"\n"
786
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
895
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
896
"  --arm[=OPTS]        ARM BCJ filter\n"
897
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter\n"
898
"  --arm64[=OPTS]      ARM64 BCJ filter\n"
787
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
899
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
788
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
900
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
789
"  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
790
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
791
"  --sparc[=OPTS]      SPARC BCJ filter\n"
901
"  --sparc[=OPTS]      SPARC BCJ filter\n"
792
"                      Valid OPTS for all BCJ filters:\n"
902
"                      Valid OPTS for all BCJ filters:\n"
793
"                        start=NUM  start offset for conversions (default=0)"
903
"                        start=NUM  start offset for conversions (default=0)"
Lines 802-808 Link Here
802
"                      OPTS valides pour tous les filtres BCJ :\n"
912
"                      OPTS valides pour tous les filtres BCJ :\n"
803
"                        start=NUM  position de début de la conversion (défaut=0)"
913
"                        start=NUM  position de début de la conversion (défaut=0)"
804
914
805
#: src/xz/message.c:1221
915
#: src/xz/message.c:1095
806
msgid ""
916
msgid ""
807
"\n"
917
"\n"
808
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
918
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
Lines 814-820 Link Here
814
"                        dist=NUM   distance entre les octets soustraits les\n"
924
"                        dist=NUM   distance entre les octets soustraits les\n"
815
"                                   uns aux autres (1-256 ; 1)"
925
"                                   uns aux autres (1-256 ; 1)"
816
926
817
#: src/xz/message.c:1229
927
#: src/xz/message.c:1103
818
msgid ""
928
msgid ""
819
"\n"
929
"\n"
820
" Other options:\n"
930
" Other options:\n"
Lines 822-828 Link Here
822
"\n"
932
"\n"
823
" Autres options :\n"
933
" Autres options :\n"
824
934
825
#: src/xz/message.c:1232
935
#: src/xz/message.c:1106
826
msgid ""
936
msgid ""
827
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
937
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
828
"  -v, --verbose       be verbose; specify twice for even more verbose"
938
"  -v, --verbose       be verbose; specify twice for even more verbose"
Lines 831-847 Link Here
831
"                      aussi masquer les erreurs\n"
941
"                      aussi masquer les erreurs\n"
832
"  -v, --verbose       être bavard ; spécifier deux fois pour l'être davantage"
942
"  -v, --verbose       être bavard ; spécifier deux fois pour l'être davantage"
833
943
834
#: src/xz/message.c:1237
944
#: src/xz/message.c:1111
835
msgid "  -Q, --no-warn       make warnings not affect the exit status"
945
msgid "  -Q, --no-warn       make warnings not affect the exit status"
836
msgstr "  -Q, --no-warn       les avertissements ne modifient pas le code de sortie"
946
msgstr "  -Q, --no-warn       les avertissements ne modifient pas le code de sortie"
837
947
838
#: src/xz/message.c:1239
948
#: src/xz/message.c:1113
839
msgid "      --robot         use machine-parsable messages (useful for scripts)"
949
msgid "      --robot         use machine-parsable messages (useful for scripts)"
840
msgstr ""
950
msgstr ""
841
"      --robot         utiliser des messages lisibles par un programme\n"
951
"      --robot         utiliser des messages lisibles par un programme\n"
842
"                      (utile pour les scripts)"
952
"                      (utile pour les scripts)"
843
953
844
#: src/xz/message.c:1242
954
#: src/xz/message.c:1116
845
msgid ""
955
msgid ""
846
"      --info-memory   display the total amount of RAM and the currently active\n"
956
"      --info-memory   display the total amount of RAM and the currently active\n"
847
"                      memory usage limits, and exit"
957
"                      memory usage limits, and exit"
Lines 849-855 Link Here
849
"      --info-memory   afficher la quantité totale de RAM ainsi que la limite\n"
959
"      --info-memory   afficher la quantité totale de RAM ainsi que la limite\n"
850
"                      actuelle d'utilisation mémoire puis quitter"
960
"                      actuelle d'utilisation mémoire puis quitter"
851
961
852
#: src/xz/message.c:1245
962
#: src/xz/message.c:1119
853
msgid ""
963
msgid ""
854
"  -h, --help          display the short help (lists only the basic options)\n"
964
"  -h, --help          display the short help (lists only the basic options)\n"
855
"  -H, --long-help     display this long help and exit"
965
"  -H, --long-help     display this long help and exit"
Lines 857-863 Link Here
857
"  -h, --help          afficher l'aide courte (ne liste que les options de base)\n"
967
"  -h, --help          afficher l'aide courte (ne liste que les options de base)\n"
858
"  -H, --long-help     afficher l'aide longue (ceci) puis quitter"
968
"  -H, --long-help     afficher l'aide longue (ceci) puis quitter"
859
969
860
#: src/xz/message.c:1249
970
#: src/xz/message.c:1123
861
msgid ""
971
msgid ""
862
"  -h, --help          display this short help and exit\n"
972
"  -h, --help          display this short help and exit\n"
863
"  -H, --long-help     display the long help (lists also the advanced options)"
973
"  -H, --long-help     display the long help (lists also the advanced options)"
Lines 865-875 Link Here
865
"  -h, --help          afficher l'aide courte (ceci) puis quitter\n"
975
"  -h, --help          afficher l'aide courte (ceci) puis quitter\n"
866
"  -H, --long-help     afficher l'aide longue (liste aussi les options avancées)"
976
"  -H, --long-help     afficher l'aide longue (liste aussi les options avancées)"
867
977
868
#: src/xz/message.c:1254
978
#: src/xz/message.c:1128
869
msgid "  -V, --version       display the version number and exit"
979
msgid "  -V, --version       display the version number and exit"
870
msgstr "  -V, --version       afficher le numéro de version puis quitter"
980
msgstr "  -V, --version       afficher le numéro de version puis quitter"
871
981
872
#: src/xz/message.c:1256
982
#: src/xz/message.c:1130
873
msgid ""
983
msgid ""
874
"\n"
984
"\n"
875
"With no FILE, or when FILE is -, read standard input.\n"
985
"With no FILE, or when FILE is -, read standard input.\n"
Lines 881-899 Link Here
881
#. for this package. Please add _another line_ saying
991
#. for this package. Please add _another line_ saying
882
#. "Report translation bugs to <...>\n" with the email or WWW
992
#. "Report translation bugs to <...>\n" with the email or WWW
883
#. address for translation bugs. Thanks.
993
#. address for translation bugs. Thanks.
884
#: src/xz/message.c:1262
994
#: src/xz/message.c:1136
885
#, c-format
995
#, c-format
886
msgid "Report bugs to <%s> (in English or Finnish).\n"
996
msgid "Report bugs to <%s> (in English or Finnish).\n"
887
msgstr ""
997
msgstr ""
888
"Signaler les bogues à <%s> (en anglais ou en finnois).\n"
998
"Signaler les bogues à <%s> (en anglais ou en finnois).\n"
889
"Signaler les bogues de traduction à <lkppo@free.fr>.\n"
999
"Signaler les bogues de traduction à <lkppo@free.fr>.\n"
890
1000
891
#: src/xz/message.c:1264
1001
#: src/xz/message.c:1138
892
#, c-format
1002
#, c-format
893
msgid "%s home page: <%s>\n"
1003
msgid "%s home page: <%s>\n"
894
msgstr "Page du projet %s : <%s>\n"
1004
msgstr "Page du projet %s : <%s>\n"
895
1005
896
#: src/xz/message.c:1268
1006
#: src/xz/message.c:1142
897
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
1007
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
898
msgstr "CECI EST UNE VERSION DE DEVELOPPEMENT QUI NE DOIT PAS ÊTRE UTILISEE EN PRODUCTION."
1008
msgstr "CECI EST UNE VERSION DE DEVELOPPEMENT QUI NE DOIT PAS ÊTRE UTILISEE EN PRODUCTION."
899
1009
Lines 921-947 Link Here
921
msgid "The sum of lc and lp must not exceed 4"
1031
msgid "The sum of lc and lp must not exceed 4"
922
msgstr "La somme de lc et lp ne doit pas dépasser 4"
1032
msgstr "La somme de lc et lp ne doit pas dépasser 4"
923
1033
924
#: src/xz/options.c:359
1034
#: src/xz/suffix.c:160
925
#, c-format
1035
#, c-format
926
msgid "The selected match finder requires at least nice=%<PRIu32>"
927
msgstr "Le `match finder' choisi nécessite au moins nice=%<PRIu32>"
928
929
#: src/xz/suffix.c:133 src/xz/suffix.c:258
930
#, c-format
931
msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
932
msgstr "%s : Avec --format=raw, --suffix=.SUF est nécessaire sauf lors de l'écriture vers stdout"
933
934
#: src/xz/suffix.c:164
935
#, c-format
936
msgid "%s: Filename has an unknown suffix, skipping"
1036
msgid "%s: Filename has an unknown suffix, skipping"
937
msgstr "%s : Le fichier a un suffixe inconnu, ignoré"
1037
msgstr "%s : Le fichier a un suffixe inconnu, ignoré"
938
1038
939
#: src/xz/suffix.c:185
1039
#: src/xz/suffix.c:181
940
#, c-format
1040
#, c-format
941
msgid "%s: File already has `%s' suffix, skipping"
1041
msgid "%s: File already has `%s' suffix, skipping"
942
msgstr "%s : Le fichier a déjà le suffixe '%s', ignoré"
1042
msgstr "%s : Le fichier a déjà le suffixe '%s', ignoré"
943
1043
944
#: src/xz/suffix.c:393
1044
#: src/xz/suffix.c:388
945
#, c-format
1045
#, c-format
946
msgid "%s: Invalid filename suffix"
1046
msgid "%s: Invalid filename suffix"
947
msgstr "%s: Suffixe de nom de fichier invalide"
1047
msgstr "%s: Suffixe de nom de fichier invalide"
Lines 965-979 Link Here
965
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
1065
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
966
msgstr "La valeur de l'option '%s' doit être inclue entre %<PRIu64> et %<PRIu64>"
1066
msgstr "La valeur de l'option '%s' doit être inclue entre %<PRIu64> et %<PRIu64>"
967
1067
968
#: src/xz/util.c:267
1068
#: src/xz/util.c:269
969
msgid "Empty filename, skipping"
970
msgstr "Nom de fichier vide, ignoré"
971
972
#: src/xz/util.c:281
973
msgid "Compressed data cannot be read from a terminal"
1069
msgid "Compressed data cannot be read from a terminal"
974
msgstr "Les données compressées ne peuvent pas être lues depuis un terminal"
1070
msgstr "Les données compressées ne peuvent pas être lues depuis un terminal"
975
1071
976
#: src/xz/util.c:294
1072
#: src/xz/util.c:282
977
msgid "Compressed data cannot be written to a terminal"
1073
msgid "Compressed data cannot be written to a terminal"
978
msgstr "Les données compressées ne peuvent pas être écrites dans un terminal"
1074
msgstr "Les données compressées ne peuvent pas être écrites dans un terminal"
979
1075
Lines 990-995 Link Here
990
1086
991
#~ msgid "Sandbox was successfully enabled"
1087
#~ msgid "Sandbox was successfully enabled"
992
#~ msgstr "La sandboxe a été activée avec succès"
1088
#~ msgstr "La sandboxe a été activée avec succès"
1089
1090
#~ msgid "Memory usage limit for compression:    "
1091
#~ msgstr "Limite d'utilisation pour la compression :   "
1092
1093
#, c-format
1094
#~ msgid "  Streams:            %s\n"
1095
#~ msgstr "  Flux :                            %s\n"
1096
1097
#, c-format
1098
#~ msgid "  Blocks:             %s\n"
1099
#~ msgstr "  Blocs :                           %s\n"
1100
1101
#, c-format
1102
#~ msgid "  Ratio:              %s\n"
1103
#~ msgstr "  Ratio :                           %s\n"
1104
1105
#, c-format
1106
#~ msgid "  Check:              %s\n"
1107
#~ msgstr "  Vérification :                    %s\n"
1108
1109
#~ msgid ""
1110
#~ "  Streams:\n"
1111
#~ "    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
1112
#~ msgstr ""
1113
#~ "  Flux :\n"
1114
#~ "      Flux     Blocs    PositionComp  PositionDécomp      TailleComp    TailleDécomp  Ratio  Vérif.    Bourrage"
1115
1116
#, c-format
1117
#~ msgid ""
1118
#~ "  Blocks:\n"
1119
#~ "    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
1120
#~ msgstr ""
1121
#~ "  Blocs :\n"
1122
#~ "      Flux      Bloc    PositionComp  PositionDécomp       TailleTot    TailleDécomp  Ratio  Vérif."
1123
1124
#, c-format
1125
#~ msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
1126
#~ msgstr "     ValVérif %*sEn-tête  Drapeaux   TailleComp     UtilMém  Filtres"
1127
1128
#, c-format
1129
#~ msgid "The selected match finder requires at least nice=%<PRIu32>"
1130
#~ msgstr "Le `match finder' choisi nécessite au moins nice=%<PRIu32>"
993
1131
994
#~ msgid "Error setting O_NONBLOCK on standard input: %s"
1132
#~ msgid "Error setting O_NONBLOCK on standard input: %s"
995
#~ msgstr "Impossible d'établir le drapeau O_NONBLOCK sur la sortie standard : %s"
1133
#~ msgstr "Impossible d'établir le drapeau O_NONBLOCK sur la sortie standard : %s"
(-)xz-5.2.5/po/hu.po (-264 / +355 lines)
Lines 1-117 Link Here
1
# Hungarian translation for xz.
1
# Hungarian translation for xz.
2
# This file is put in the public domain.
2
# This file is put in the public domain.
3
#
3
#
4
# Meskó Balázs <mesko.balazs@fsf.hu>, 2019.
4
# Meskó Balázs <mesko.balazs@fsf.hu>, 2019, 2022.
5
msgid ""
5
msgid ""
6
msgstr ""
6
msgstr ""
7
"Project-Id-Version: xz 5.2.4\n"
7
"Project-Id-Version: xz 5.4.0-pre1\n"
8
"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
8
"Report-Msgid-Bugs-To: xz@tukaani.org\n"
9
"POT-Creation-Date: 2020-03-17 16:29+0200\n"
9
"POT-Creation-Date: 2023-05-04 22:32+0800\n"
10
"PO-Revision-Date: 2019-11-18 09:57+0100\n"
10
"PO-Revision-Date: 2022-11-10 12:13+0100\n"
11
"Last-Translator: Meskó Balázs <mesko.balazs@fsf.hu>\n"
11
"Last-Translator: Meskó Balázs <mesko.balazs@fsf.hu>\n"
12
"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
12
"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
13
"Language: hu\n"
13
"Language: hu\n"
14
"MIME-Version: 1.0\n"
14
"MIME-Version: 1.0\n"
15
"Content-Type: text/plain; charset=UTF-8\n"
15
"Content-Type: text/plain; charset=UTF-8\n"
16
"Content-Transfer-Encoding: 8bit\n"
16
"Content-Transfer-Encoding: 8bit\n"
17
"plural-forms: nplurals=2; plural=(n != 1);\n"
17
"X-Bugs: Report translation errors to the Language-Team address.\n"
18
"X-Bugs: Report translation errors to the Language-Team address.\n"
18
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
"X-Generator: Poedit 3.1.1\n"
19
"X-Generator: Lokalize 19.08.2\n"
20
20
21
#: src/xz/args.c:63
21
#: src/xz/args.c:77
22
#, c-format
22
#, c-format
23
msgid "%s: Invalid argument to --block-list"
23
msgid "%s: Invalid argument to --block-list"
24
msgstr "%s: Érvénytelen argumentum a --block-list kapcsolóhoz"
24
msgstr "%s: Érvénytelen argumentum a --block-list kapcsolóhoz"
25
25
26
#: src/xz/args.c:73
26
#: src/xz/args.c:87
27
#, c-format
27
#, c-format
28
msgid "%s: Too many arguments to --block-list"
28
msgid "%s: Too many arguments to --block-list"
29
msgstr "%s: Túl sok argumentum a --block-list kapcsolóhoz"
29
msgstr "%s: Túl sok argumentum a --block-list kapcsolóhoz"
30
30
31
#: src/xz/args.c:102
31
#: src/xz/args.c:116
32
msgid "0 can only be used as the last element in --block-list"
32
msgid "0 can only be used as the last element in --block-list"
33
msgstr "A 0 csak utolsó elemként használható a --block-list kapcsolónál"
33
msgstr "A 0 csak utolsó elemként használható a --block-list kapcsolónál"
34
34
35
#: src/xz/args.c:406
35
#: src/xz/args.c:451
36
#, c-format
36
#, c-format
37
msgid "%s: Unknown file format type"
37
msgid "%s: Unknown file format type"
38
msgstr "%s: Ismeretlen fájlformátumtípus"
38
msgstr "%s: Ismeretlen fájlformátumtípus"
39
39
40
#: src/xz/args.c:429 src/xz/args.c:437
40
#: src/xz/args.c:474 src/xz/args.c:482
41
#, c-format
41
#, c-format
42
msgid "%s: Unsupported integrity check type"
42
msgid "%s: Unsupported integrity check type"
43
msgstr "%s: Nem támogatott integritás-ellenőrzési típus"
43
msgstr "%s: Nem támogatott integritás-ellenőrzési típus"
44
44
45
#: src/xz/args.c:473
45
#: src/xz/args.c:518
46
msgid "Only one file can be specified with `--files' or `--files0'."
46
msgid "Only one file can be specified with `--files' or `--files0'."
47
msgstr "Csak egy fájl adható meg a „--files” vagy „--files0” kapcsolóknál."
47
msgstr "Csak egy fájl adható meg a „--files” vagy „--files0” kapcsolóknál."
48
48
49
#: src/xz/args.c:541
49
#: src/xz/args.c:586
50
#, c-format
50
#, c-format
51
msgid "The environment variable %s contains too many arguments"
51
msgid "The environment variable %s contains too many arguments"
52
msgstr "A(z) %s környezeti változó túl sok argumentumot tartalmaz"
52
msgstr "A(z) %s környezeti változó túl sok argumentumot tartalmaz"
53
53
54
#: src/xz/args.c:643
54
#: src/xz/args.c:688
55
msgid "Compression support was disabled at build time"
55
msgid "Compression support was disabled at build time"
56
msgstr "A tömörítési támogatás ki lett kapcsolva fordítási időben"
56
msgstr "A tömörítési támogatás ki lett kapcsolva fordítási időben"
57
57
58
#: src/xz/args.c:650
58
#: src/xz/args.c:695
59
msgid "Decompression support was disabled at build time"
59
msgid "Decompression support was disabled at build time"
60
msgstr "A kibontási támogatás ki lett kapcsolva fordítási időben"
60
msgstr "A kibontási támogatás ki lett kapcsolva fordítási időben"
61
61
62
#: src/xz/coder.c:110
62
#: src/xz/args.c:701
63
msgid "Compression of lzip files (.lz) is not supported"
64
msgstr "Az lzip-fájlok (.lz) tömörítése nem támogatott"
65
66
#: src/xz/args.c:732
67
#, fuzzy
68
#| msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
69
msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout"
70
msgstr "%s: --format=raw esetén, --suffix=.SUF szükséges, hacsak nem a szabványosra kimenetre ír"
71
72
#: src/xz/coder.c:115
63
msgid "Maximum number of filters is four"
73
msgid "Maximum number of filters is four"
64
msgstr "A szűrők legnagyobb száma négy"
74
msgstr "A szűrők legnagyobb száma négy"
65
75
66
#: src/xz/coder.c:129
76
#: src/xz/coder.c:134
67
msgid "Memory usage limit is too low for the given filter setup."
77
msgid "Memory usage limit is too low for the given filter setup."
68
msgstr "A memóriahasználat túl alacsony a megadott szűrőbeállításokhoz."
78
msgstr "A memóriahasználat túl alacsony a megadott szűrőbeállításokhoz."
69
79
70
#: src/xz/coder.c:159
80
#: src/xz/coder.c:169
71
msgid "Using a preset in raw mode is discouraged."
81
msgid "Using a preset in raw mode is discouraged."
72
msgstr "Az előbeállítások használata nyers módban nem javasolt."
82
msgstr "Az előbeállítások használata nyers módban nem javasolt."
73
83
74
#: src/xz/coder.c:161
84
#: src/xz/coder.c:171
75
msgid "The exact options of the presets may vary between software versions."
85
msgid "The exact options of the presets may vary between software versions."
76
msgstr "Az előbeállítások pontos beállításai különbözhetnek a szoftververziók között."
86
msgstr "Az előbeállítások pontos beállításai különbözhetnek a szoftververziók között."
77
87
78
#: src/xz/coder.c:184
88
#: src/xz/coder.c:194
79
msgid "The .lzma format supports only the LZMA1 filter"
89
msgid "The .lzma format supports only the LZMA1 filter"
80
msgstr "Az .lzma formátum csak az LZMA1 szűrőt támogatja"
90
msgstr "Az .lzma formátum csak az LZMA1 szűrőt támogatja"
81
91
82
#: src/xz/coder.c:192
92
#: src/xz/coder.c:202
83
msgid "LZMA1 cannot be used with the .xz format"
93
msgid "LZMA1 cannot be used with the .xz format"
84
msgstr "Az LZMA1 nem használható az .xz formátummal"
94
msgstr "Az LZMA1 nem használható az .xz formátummal"
85
95
86
#: src/xz/coder.c:209
96
#: src/xz/coder.c:219
87
msgid "The filter chain is incompatible with --flush-timeout"
97
msgid "The filter chain is incompatible with --flush-timeout"
88
msgstr "A szűrőlánc nem kompatibilis a --flush-timeout kapcsolóval"
98
msgstr "A szűrőlánc nem kompatibilis a --flush-timeout kapcsolóval"
89
99
90
#: src/xz/coder.c:215
100
#: src/xz/coder.c:225
91
msgid "Switching to single-threaded mode due to --flush-timeout"
101
msgid "Switching to single-threaded mode due to --flush-timeout"
92
msgstr "Egyszálú módra váltás a --flush-timeout kapcsoló miatt"
102
msgstr "Egyszálú módra váltás a --flush-timeout kapcsoló miatt"
93
103
94
#: src/xz/coder.c:235
104
#: src/xz/coder.c:249
95
#, c-format
105
#, c-format
96
msgid "Using up to %<PRIu32> threads."
106
msgid "Using up to %<PRIu32> threads."
97
msgstr "Legfeljebb %<PRIu32> szál használata."
107
msgstr "Legfeljebb %<PRIu32> szál használata."
98
108
99
#: src/xz/coder.c:251
109
#: src/xz/coder.c:265
100
msgid "Unsupported filter chain or filter options"
110
msgid "Unsupported filter chain or filter options"
101
msgstr "Nem támogatott szűrőlánc vagy szűrőkapcsolók"
111
msgstr "Nem támogatott szűrőlánc vagy szűrőkapcsolók"
102
112
103
#: src/xz/coder.c:263
113
#: src/xz/coder.c:277
104
#, c-format
114
#, c-format
105
msgid "Decompression will need %s MiB of memory."
115
msgid "Decompression will need %s MiB of memory."
106
msgstr "A kibontáshoz %s MiB memória szükséges."
116
msgstr "A kibontáshoz %s MiB memória szükséges."
107
117
108
#: src/xz/coder.c:300
118
#: src/xz/coder.c:309
109
#, c-format
119
#, c-format
110
msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
120
msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
111
msgstr "A szálak számának módosítása erről: %s, erre: %s, hogy ne lépje túl a(z) %s MiB-os korlátot"
121
msgstr "A szálak számának csökkentése erről: %s, erre: %s, hogy ne lépje túl a(z) %s MiB-os korlátot"
112
122
113
#: src/xz/coder.c:354
123
#: src/xz/coder.c:329
114
#, c-format
124
#, c-format
125
msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway."
126
msgstr "A szálak számának csökkentése erről: %s, egyre. A(z) %s MiB-os automatikus memóriahasználati korlát így is túl lett lépve. %s MiB memória szükséges. Ennek ellenére folytatás mindenképpen."
127
128
#: src/xz/coder.c:356
129
#, c-format
130
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
131
msgstr "Egyszálú módra váltás, hogy ne lépje túl a(z) %s MiB-os memóriahasználati korlátot"
132
133
#: src/xz/coder.c:411
134
#, c-format
115
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
135
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
116
msgstr "Az LZMA%c szótár méretének módosítása erről: %s MiB, erre: %s MiB, hogy ne lépje túl a(z) %s MiB-os korlátot"
136
msgstr "Az LZMA%c szótár méretének módosítása erről: %s MiB, erre: %s MiB, hogy ne lépje túl a(z) %s MiB-os korlátot"
117
137
Lines 120-130 Link Here
120
msgid "Error creating a pipe: %s"
140
msgid "Error creating a pipe: %s"
121
msgstr "Hiba a csővezeték létrehozásakor: %s"
141
msgstr "Hiba a csővezeték létrehozásakor: %s"
122
142
123
#: src/xz/file_io.c:224
143
#: src/xz/file_io.c:252
124
msgid "Failed to enable the sandbox"
144
msgid "Failed to enable the sandbox"
125
msgstr "A homokozó engedélyezése sikertelen"
145
msgstr "A homokozó engedélyezése sikertelen"
126
146
127
#: src/xz/file_io.c:266
147
#: src/xz/file_io.c:294
128
#, c-format
148
#, c-format
129
msgid "%s: poll() failed: %s"
149
msgid "%s: poll() failed: %s"
130
msgstr "%s: poll() sikertelen: %s"
150
msgstr "%s: poll() sikertelen: %s"
Lines 139-333 Link Here
139
#. it is possible that the user has put a new file in place
159
#. it is possible that the user has put a new file in place
140
#. of the original file, and in that case it obviously
160
#. of the original file, and in that case it obviously
141
#. shouldn't be removed.
161
#. shouldn't be removed.
142
#: src/xz/file_io.c:333
162
#: src/xz/file_io.c:361
143
#, c-format
163
#, c-format
144
msgid "%s: File seems to have been moved, not removing"
164
msgid "%s: File seems to have been moved, not removing"
145
msgstr "%s: Úgy tűnik, hogy a fájl át lett helyezve, nincs eltávolítás"
165
msgstr "%s: Úgy tűnik, hogy a fájl át lett helyezve, nincs eltávolítás"
146
166
147
#: src/xz/file_io.c:340 src/xz/file_io.c:882
167
#: src/xz/file_io.c:368 src/xz/file_io.c:924
148
#, c-format
168
#, c-format
149
msgid "%s: Cannot remove: %s"
169
msgid "%s: Cannot remove: %s"
150
msgstr "%s: Nem távolítható el: %s"
170
msgstr "%s: Nem távolítható el: %s"
151
171
152
#: src/xz/file_io.c:366
172
#: src/xz/file_io.c:394
153
#, c-format
173
#, c-format
154
msgid "%s: Cannot set the file owner: %s"
174
msgid "%s: Cannot set the file owner: %s"
155
msgstr "%s: A fájl tulajdonosa nem adható meg: %s"
175
msgstr "%s: A fájl tulajdonosa nem adható meg: %s"
156
176
157
#: src/xz/file_io.c:372
177
#: src/xz/file_io.c:407
158
#, c-format
178
#, c-format
159
msgid "%s: Cannot set the file group: %s"
179
msgid "%s: Cannot set the file group: %s"
160
msgstr "%s: A fájl csoportja nem adható meg: %s"
180
msgstr "%s: A fájl csoportja nem adható meg: %s"
161
181
162
#: src/xz/file_io.c:391
182
#: src/xz/file_io.c:426
163
#, c-format
183
#, c-format
164
msgid "%s: Cannot set the file permissions: %s"
184
msgid "%s: Cannot set the file permissions: %s"
165
msgstr "%s: A fájl jogosultságai nem adhatók meg: %s"
185
msgstr "%s: A fájl jogosultságai nem adhatók meg: %s"
166
186
167
#: src/xz/file_io.c:517
187
#: src/xz/file_io.c:552
168
#, c-format
188
#, c-format
169
msgid "Error getting the file status flags from standard input: %s"
189
msgid "Error getting the file status flags from standard input: %s"
170
msgstr "Hiba a fájl állapotjelzőinek lekérdezésekor a szabványos bemenetről: %s"
190
msgstr "Hiba a fájl állapotjelzőinek lekérdezésekor a szabványos bemenetről: %s"
171
191
172
#: src/xz/file_io.c:574 src/xz/file_io.c:636
192
#: src/xz/file_io.c:610 src/xz/file_io.c:672
173
#, c-format
193
#, c-format
174
msgid "%s: Is a symbolic link, skipping"
194
msgid "%s: Is a symbolic link, skipping"
175
msgstr "%s: Szimbolikus link, kihagyás"
195
msgstr "%s: Szimbolikus link, kihagyás"
176
196
177
#: src/xz/file_io.c:665
197
#: src/xz/file_io.c:701
178
#, c-format
198
#, c-format
179
msgid "%s: Is a directory, skipping"
199
msgid "%s: Is a directory, skipping"
180
msgstr "%s: Könyvtár, kihagyás"
200
msgstr "%s: Könyvtár, kihagyás"
181
201
182
#: src/xz/file_io.c:671
202
#: src/xz/file_io.c:707
183
#, c-format
203
#, c-format
184
msgid "%s: Not a regular file, skipping"
204
msgid "%s: Not a regular file, skipping"
185
msgstr "%s: Nem szabályos fájl, kihagyás"
205
msgstr "%s: Nem szabályos fájl, kihagyás"
186
206
187
#: src/xz/file_io.c:688
207
#: src/xz/file_io.c:724
188
#, c-format
208
#, c-format
189
msgid "%s: File has setuid or setgid bit set, skipping"
209
msgid "%s: File has setuid or setgid bit set, skipping"
190
msgstr "%s: A fájlon setuid vagy setgid bit van beállítva, kihagyás"
210
msgstr "%s: A fájlon setuid vagy setgid bit van beállítva, kihagyás"
191
211
192
#: src/xz/file_io.c:695
212
#: src/xz/file_io.c:731
193
#, c-format
213
#, c-format
194
msgid "%s: File has sticky bit set, skipping"
214
msgid "%s: File has sticky bit set, skipping"
195
msgstr "%s: A fájlon sticky bit van beállítva, kihagyás"
215
msgstr "%s: A fájlon sticky bit van beállítva, kihagyás"
196
216
197
#: src/xz/file_io.c:702
217
#: src/xz/file_io.c:738
198
#, c-format
218
#, c-format
199
msgid "%s: Input file has more than one hard link, skipping"
219
msgid "%s: Input file has more than one hard link, skipping"
200
msgstr "%s: A bemeneti fájlhoz több mint egy hard link tartozik, kihagyás"
220
msgstr "%s: A bemeneti fájlhoz több mint egy hard link tartozik, kihagyás"
201
221
202
#: src/xz/file_io.c:792
222
#: src/xz/file_io.c:780
223
msgid "Empty filename, skipping"
224
msgstr "Üres fájlnév, kihagyás"
225
226
#: src/xz/file_io.c:834
203
#, c-format
227
#, c-format
204
msgid "Error restoring the status flags to standard input: %s"
228
msgid "Error restoring the status flags to standard input: %s"
205
msgstr "Hiba a fájl állapotjelzőinek visszaállításakor a szabványos bemenetre: %s"
229
msgstr "Hiba a fájl állapotjelzőinek visszaállításakor a szabványos bemenetre: %s"
206
230
207
#: src/xz/file_io.c:840
231
#: src/xz/file_io.c:882
208
#, c-format
232
#, c-format
209
msgid "Error getting the file status flags from standard output: %s"
233
msgid "Error getting the file status flags from standard output: %s"
210
msgstr "Hiba a fájl állapotjelzőinek lekérdezésekor a szabványos kimenetről: %s"
234
msgstr "Hiba a fájl állapotjelzőinek lekérdezésekor a szabványos kimenetről: %s"
211
235
212
#: src/xz/file_io.c:1018
236
#: src/xz/file_io.c:1060
213
#, c-format
237
#, c-format
214
msgid "Error restoring the O_APPEND flag to standard output: %s"
238
msgid "Error restoring the O_APPEND flag to standard output: %s"
215
msgstr "Hiba az O_APPEND visszaállításakor a szabványos kimenetre: %s"
239
msgstr "Hiba az O_APPEND visszaállításakor a szabványos kimenetre: %s"
216
240
217
#: src/xz/file_io.c:1030
241
#: src/xz/file_io.c:1072
218
#, c-format
242
#, c-format
219
msgid "%s: Closing the file failed: %s"
243
msgid "%s: Closing the file failed: %s"
220
msgstr "%s: A fájl lezárása sikertelen: %s"
244
msgstr "%s: A fájl lezárása sikertelen: %s"
221
245
222
#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
246
#: src/xz/file_io.c:1108 src/xz/file_io.c:1371
223
#, c-format
247
#, c-format
224
msgid "%s: Seeking failed when trying to create a sparse file: %s"
248
msgid "%s: Seeking failed when trying to create a sparse file: %s"
225
msgstr "%s: A pozícionálás sikertelen a ritka fájl létrehozásának kísérletekor: %s"
249
msgstr "%s: A pozícionálás sikertelen a ritka fájl létrehozásának kísérletekor: %s"
226
250
227
#: src/xz/file_io.c:1167
251
#: src/xz/file_io.c:1209
228
#, c-format
252
#, c-format
229
msgid "%s: Read error: %s"
253
msgid "%s: Read error: %s"
230
msgstr "%s: Olvasási hiba: %s"
254
msgstr "%s: Olvasási hiba: %s"
231
255
232
#: src/xz/file_io.c:1191
256
#: src/xz/file_io.c:1239
233
#, c-format
257
#, c-format
234
msgid "%s: Error seeking the file: %s"
258
msgid "%s: Error seeking the file: %s"
235
msgstr "%s: Hiba a fájlban pozícionáláskor: %s"
259
msgstr "%s: Hiba a fájlban pozícionáláskor: %s"
236
260
237
#: src/xz/file_io.c:1201
261
#: src/xz/file_io.c:1263
238
#, c-format
262
#, c-format
239
msgid "%s: Unexpected end of file"
263
msgid "%s: Unexpected end of file"
240
msgstr "%s: Váratlan fájlvég"
264
msgstr "%s: Váratlan fájlvég"
241
265
242
#: src/xz/file_io.c:1260
266
#: src/xz/file_io.c:1322
243
#, c-format
267
#, c-format
244
msgid "%s: Write error: %s"
268
msgid "%s: Write error: %s"
245
msgstr "%s: Írási hiba: %s"
269
msgstr "%s: Írási hiba: %s"
246
270
247
#: src/xz/hardware.c:137
271
#: src/xz/hardware.c:238
248
msgid "Disabled"
272
msgid "Disabled"
249
msgstr "Letiltva"
273
msgstr "Letiltva"
250
274
251
#. TRANSLATORS: Test with "xz --info-memory" to see if
275
#: src/xz/hardware.c:269
252
#. the alignment looks nice.
276
msgid "Amount of physical memory (RAM):"
253
#: src/xz/hardware.c:156
277
msgstr "Fizikai memória (RAM) mennyisége:"
254
msgid "Total amount of physical memory (RAM): "
255
msgstr "Az összes fizikai memória (RAM):        "
256
278
257
#: src/xz/hardware.c:158
279
#: src/xz/hardware.c:270
258
msgid "Memory usage limit for compression:    "
280
msgid "Number of processor threads:"
259
msgstr "Memóriahasználat korlátja tömörítéskor: "
281
msgstr "Processzorszálak száma:"
260
282
261
#: src/xz/hardware.c:160
283
#: src/xz/hardware.c:271
262
msgid "Memory usage limit for decompression:  "
284
msgid "Compression:"
263
msgstr "Memóriahasználat korlátja kibontáskor:  "
285
msgstr "Tömörítés:"
264
286
287
#: src/xz/hardware.c:272
288
msgid "Decompression:"
289
msgstr "Kibontás:"
290
291
#: src/xz/hardware.c:273
292
msgid "Multi-threaded decompression:"
293
msgstr "Többszálás kibontás:"
294
295
#: src/xz/hardware.c:274
296
msgid "Default for -T0:"
297
msgstr "A -T0 alapértelmezése:"
298
299
#: src/xz/hardware.c:292
300
msgid "Hardware information:"
301
msgstr "Hardverjellemzők:"
302
303
#: src/xz/hardware.c:299
304
msgid "Memory usage limits:"
305
msgstr "Memóriahasználat korlátja:"
306
307
#: src/xz/list.c:68
308
msgid "Streams:"
309
msgstr "Adatfolyamok:"
310
311
#: src/xz/list.c:69
312
msgid "Blocks:"
313
msgstr "Blokkok:"
314
315
#: src/xz/list.c:70
316
msgid "Compressed size:"
317
msgstr "Tömörített méret:"
318
319
#: src/xz/list.c:71
320
msgid "Uncompressed size:"
321
msgstr "Kibontott méret:"
322
323
#: src/xz/list.c:72
324
msgid "Ratio:"
325
msgstr "Arány:"
326
327
#: src/xz/list.c:73
328
msgid "Check:"
329
msgstr "Ellenőrzés:"
330
331
#: src/xz/list.c:74
332
msgid "Stream Padding:"
333
msgstr "Adatfolyam kerete:"
334
335
#: src/xz/list.c:75
336
msgid "Memory needed:"
337
msgstr "Szükséges memória:"
338
339
#: src/xz/list.c:76
340
msgid "Sizes in headers:"
341
msgstr "Méretek a fejlécekben:"
342
343
#: src/xz/list.c:79
344
msgid "Number of files:"
345
msgstr "Fájlok száma:"
346
347
#: src/xz/list.c:122
348
msgid "Stream"
349
msgstr "Adatfolyam"
350
351
#: src/xz/list.c:123
352
msgid "Block"
353
msgstr "Blokk"
354
355
#: src/xz/list.c:124
356
msgid "Blocks"
357
msgstr "Blokkok"
358
359
#: src/xz/list.c:125
360
msgid "CompOffset"
361
msgstr "Tömörített eltolás"
362
363
#: src/xz/list.c:126
364
msgid "UncompOffset"
365
msgstr "Kibontott eltolás"
366
367
#: src/xz/list.c:127
368
msgid "CompSize"
369
msgstr "Tömörített méret"
370
371
#: src/xz/list.c:128
372
msgid "UncompSize"
373
msgstr "Kibontott méret"
374
375
#: src/xz/list.c:129
376
msgid "TotalSize"
377
msgstr "Teljes méret"
378
379
#: src/xz/list.c:130
380
msgid "Ratio"
381
msgstr "Arány"
382
383
#: src/xz/list.c:131
384
msgid "Check"
385
msgstr "Ellenőrzés"
386
387
#: src/xz/list.c:132
388
msgid "CheckVal"
389
msgstr "Ellenőrzőérték"
390
391
#: src/xz/list.c:133
392
msgid "Padding"
393
msgstr "Keret"
394
395
#: src/xz/list.c:134
396
msgid "Header"
397
msgstr "Fejléc"
398
399
#: src/xz/list.c:135
400
msgid "Flags"
401
msgstr "Jelzők"
402
403
#: src/xz/list.c:136
404
msgid "MemUsage"
405
msgstr "Memóriahasználat"
406
407
#: src/xz/list.c:137
408
msgid "Filters"
409
msgstr "Szűrők"
410
265
#. TRANSLATORS: Indicates that there is no integrity check.
411
#. TRANSLATORS: Indicates that there is no integrity check.
266
#. This string is used in tables, so the width must not
412
#. This string is used in tables. In older xz version this
267
#. exceed ten columns with a fixed-width font.
413
#. string was limited to ten columns in a fixed-width font, but
268
#: src/xz/list.c:65
414
#. nowadays there is no strict length restriction anymore.
415
#: src/xz/list.c:169
269
msgid "None"
416
msgid "None"
270
msgstr "Nincs"
417
msgstr "Nincs"
271
418
272
#. TRANSLATORS: Indicates that integrity check name is not known,
419
#. TRANSLATORS: Indicates that integrity check name is not known,
273
#. but the Check ID is known (here 2). This and other "Unknown-N"
420
#. but the Check ID is known (here 2). In older xz version these
274
#. strings are used in tables, so the width must not exceed ten
421
#. strings were limited to ten columns in a fixed-width font, but
275
#. columns with a fixed-width font. It's OK to omit the dash if
422
#. nowadays there is no strict length restriction anymore.
276
#. you need space for one extra letter, but don't use spaces.
423
#: src/xz/list.c:175
277
#: src/xz/list.c:72
278
msgid "Unknown-2"
424
msgid "Unknown-2"
279
msgstr "Névtelen-2"
425
msgstr "Névtelen-2"
280
426
281
#: src/xz/list.c:73
427
#: src/xz/list.c:176
282
msgid "Unknown-3"
428
msgid "Unknown-3"
283
msgstr "Névtelen-3"
429
msgstr "Névtelen-3"
284
430
285
#: src/xz/list.c:75
431
#: src/xz/list.c:178
286
msgid "Unknown-5"
432
msgid "Unknown-5"
287
msgstr "Névtelen-5"
433
msgstr "Névtelen-5"
288
434
289
#: src/xz/list.c:76
435
#: src/xz/list.c:179
290
msgid "Unknown-6"
436
msgid "Unknown-6"
291
msgstr "Névtelen-6"
437
msgstr "Névtelen-6"
292
438
293
#: src/xz/list.c:77
439
#: src/xz/list.c:180
294
msgid "Unknown-7"
440
msgid "Unknown-7"
295
msgstr "Névtelen-7"
441
msgstr "Névtelen-7"
296
442
297
#: src/xz/list.c:78
443
#: src/xz/list.c:181
298
msgid "Unknown-8"
444
msgid "Unknown-8"
299
msgstr "Névtelen-8"
445
msgstr "Névtelen-8"
300
446
301
#: src/xz/list.c:79
447
#: src/xz/list.c:182
302
msgid "Unknown-9"
448
msgid "Unknown-9"
303
msgstr "Névtelen-9"
449
msgstr "Névtelen-9"
304
450
305
#: src/xz/list.c:81
451
#: src/xz/list.c:184
306
msgid "Unknown-11"
452
msgid "Unknown-11"
307
msgstr "Névtelen-11"
453
msgstr "Névtelen-11"
308
454
309
#: src/xz/list.c:82
455
#: src/xz/list.c:185
310
msgid "Unknown-12"
456
msgid "Unknown-12"
311
msgstr "Névtelen-12"
457
msgstr "Névtelen-12"
312
458
313
#: src/xz/list.c:83
459
#: src/xz/list.c:186
314
msgid "Unknown-13"
460
msgid "Unknown-13"
315
msgstr "Névtelen-13"
461
msgstr "Névtelen-13"
316
462
317
#: src/xz/list.c:84
463
#: src/xz/list.c:187
318
msgid "Unknown-14"
464
msgid "Unknown-14"
319
msgstr "Névtelen-14"
465
msgstr "Névtelen-14"
320
466
321
#: src/xz/list.c:85
467
#: src/xz/list.c:188
322
msgid "Unknown-15"
468
msgid "Unknown-15"
323
msgstr "Névtelen-15"
469
msgstr "Névtelen-15"
324
470
325
#: src/xz/list.c:153
471
#: src/xz/list.c:351
326
#, c-format
472
#, c-format
327
msgid "%s: File is empty"
473
msgid "%s: File is empty"
328
msgstr "%s: A fájl üres"
474
msgstr "%s: A fájl üres"
329
475
330
#: src/xz/list.c:158
476
#: src/xz/list.c:356
331
#, c-format
477
#, c-format
332
msgid "%s: Too small to be a valid .xz file"
478
msgid "%s: Too small to be a valid .xz file"
333
msgstr "%s: Túl kicsi, hogy érvényes .xz fájl legyen"
479
msgstr "%s: Túl kicsi, hogy érvényes .xz fájl legyen"
Lines 336-460 Link Here
336
#. to Ratio, the columns are right aligned. Check and Filename
482
#. to Ratio, the columns are right aligned. Check and Filename
337
#. are left aligned. If you need longer words, it's OK to
483
#. are left aligned. If you need longer words, it's OK to
338
#. use two lines here. Test with "xz -l foo.xz".
484
#. use two lines here. Test with "xz -l foo.xz".
339
#: src/xz/list.c:677
485
#: src/xz/list.c:730
340
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
486
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
341
msgstr "Folyam  Blokkok  Tömörített Kibontott  Arány  Ellenőrzés  Fájlnév"
487
msgstr "Folyam  Blokkok  Tömörített Kibontott  Arány  Ellenőrzés  Fájlnév"
342
488
343
#: src/xz/list.c:717
489
#: src/xz/list.c:1025 src/xz/list.c:1203
344
#, c-format
345
msgid "  Streams:            %s\n"
346
msgstr "  Adatfolyamok:       %s\n"
347
348
#: src/xz/list.c:719
349
#, c-format
350
msgid "  Blocks:             %s\n"
351
msgstr "  Blokkok:            %s\n"
352
353
#: src/xz/list.c:721
354
#, c-format
355
msgid "  Compressed size:    %s\n"
356
msgstr "  Tömörített méret:   %s\n"
357
358
#: src/xz/list.c:724
359
#, c-format
360
msgid "  Uncompressed size:  %s\n"
361
msgstr "  Kibontott méret:    %s\n"
362
363
#: src/xz/list.c:727
364
#, c-format
365
msgid "  Ratio:              %s\n"
366
msgstr "  Arány:              %s\n"
367
368
#: src/xz/list.c:729
369
#, c-format
370
msgid "  Check:              %s\n"
371
msgstr "  Ellenőrzés:         %s\n"
372
373
#: src/xz/list.c:730
374
#, c-format
375
msgid "  Stream padding:     %s\n"
376
msgstr "  Adatfolyam kerete:  %s\n"
377
378
#. TRANSLATORS: The second line is column headings. All except
379
#. Check are right aligned; Check is left aligned. Test with
380
#. "xz -lv foo.xz".
381
#: src/xz/list.c:758
382
msgid ""
383
"  Streams:\n"
384
"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
385
msgstr ""
386
"  Adatfolyamok:\n"
387
"    Folyam   Blokkok      TömEltolás      KibEltolás        TömMéret        KibMéret  Arány  Ellenőrzés   Keret"
388
389
#. TRANSLATORS: The second line is column headings. All
390
#. except Check are right aligned; Check is left aligned.
391
#: src/xz/list.c:813
392
#, c-format
393
msgid ""
394
"  Blocks:\n"
395
"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
396
msgstr ""
397
"  Blokkok:\n"
398
"    Folyam   Blokkok      TömEltolás      KibEltolás        TömMéret        KibMéret  Arány  Ellenőrzés"
399
400
#. TRANSLATORS: These are additional column headings
401
#. for the most verbose listing mode. CheckVal
402
#. (Check value), Flags, and Filters are left aligned.
403
#. Header (Block Header Size), CompSize, and MemUsage
404
#. are right aligned. %*s is replaced with 0-120
405
#. spaces to make the CheckVal column wide enough.
406
#. Test with "xz -lvv foo.xz".
407
#: src/xz/list.c:825
408
#, c-format
409
msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
410
msgstr " ÉrtékEll %*s Fejléc  Jelzők       TömMéret  MemHasználat  Szűrők"
411
412
#: src/xz/list.c:903 src/xz/list.c:1078
413
#, c-format
414
msgid "  Memory needed:      %s MiB\n"
415
msgstr "  Szükséges memória:      %s MiB\n"
416
417
#: src/xz/list.c:905 src/xz/list.c:1080
418
#, c-format
419
msgid "  Sizes in headers:   %s\n"
420
msgstr "  Méretek a fejlécekben:  %s\n"
421
422
#: src/xz/list.c:906 src/xz/list.c:1081
423
msgid "Yes"
490
msgid "Yes"
424
msgstr "Igen"
491
msgstr "Igen"
425
492
426
#: src/xz/list.c:906 src/xz/list.c:1081
493
#: src/xz/list.c:1025 src/xz/list.c:1203
427
msgid "No"
494
msgid "No"
428
msgstr "Nem"
495
msgstr "Nem"
429
496
430
#: src/xz/list.c:907 src/xz/list.c:1082
497
#: src/xz/list.c:1027 src/xz/list.c:1205
431
#, c-format
498
#, c-format
432
msgid "  Minimum XZ Utils version: %s\n"
499
msgid "  Minimum XZ Utils version: %s\n"
433
msgstr "  Legkisebb XZ Utils verzió: %s\n"
500
msgstr "  Legkisebb XZ Utils verzió: %s\n"
434
501
435
#. TRANSLATORS: %s is an integer. Only the plural form of this
502
#. TRANSLATORS: %s is an integer. Only the plural form of this
436
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
503
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
437
#: src/xz/list.c:1057
504
#: src/xz/list.c:1178
438
#, c-format
505
#, c-format
439
msgid "%s file\n"
506
msgid "%s file\n"
440
msgid_plural "%s files\n"
507
msgid_plural "%s files\n"
441
msgstr[0] "%s fájl\n"
508
msgstr[0] "%s fájl\n"
442
msgstr[1] "%s fájl\n"
509
msgstr[1] "%s fájl\n"
443
510
444
#: src/xz/list.c:1070
511
#: src/xz/list.c:1191
445
msgid "Totals:"
512
msgid "Totals:"
446
msgstr "Összesen:"
513
msgstr "Összesen:"
447
514
448
#: src/xz/list.c:1071
515
#: src/xz/list.c:1269
449
#, c-format
450
msgid "  Number of files:    %s\n"
451
msgstr "  Fájlok száma:       %s\n"
452
453
#: src/xz/list.c:1146
454
msgid "--list works only on .xz files (--format=xz or --format=auto)"
516
msgid "--list works only on .xz files (--format=xz or --format=auto)"
455
msgstr "A --list csak .xz fájlokkal működik (--format=xz vagy --format=auto)"
517
msgstr "A --list csak .xz fájlokkal működik (--format=xz vagy --format=auto)"
456
518
457
#: src/xz/list.c:1152
519
#: src/xz/list.c:1275
458
msgid "--list does not support reading from standard input"
520
msgid "--list does not support reading from standard input"
459
msgstr "A --list nem támogatja a szabványos bemenetről beolvasást"
521
msgstr "A --list nem támogatja a szabványos bemenetről beolvasást"
460
522
Lines 473-483 Link Here
473
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
535
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
474
msgstr "%s: Null karakter található a fájlnevek olvasásakor; talán a „--files0” kapcsolóra gondolt a „--files” helyett?"
536
msgstr "%s: Null karakter található a fájlnevek olvasásakor; talán a „--files0” kapcsolóra gondolt a „--files” helyett?"
475
537
476
#: src/xz/main.c:174
538
#: src/xz/main.c:188
477
msgid "Compression and decompression with --robot are not supported yet."
539
msgid "Compression and decompression with --robot are not supported yet."
478
msgstr "A tömörítés és kibontás még nem támogatott a --robot kapcsolóval."
540
msgstr "A tömörítés és kibontás még nem támogatott a --robot kapcsolóval."
479
541
480
#: src/xz/main.c:252
542
#: src/xz/main.c:266
481
msgid "Cannot read data from standard input when reading filenames from standard input"
543
msgid "Cannot read data from standard input when reading filenames from standard input"
482
msgstr "Az adatok nem olvashatók be a szabványos bemenetről a fájlnevek olvasásakor"
544
msgstr "Az adatok nem olvashatók be a szabványos bemenetről a fájlnevek olvasásakor"
483
545
Lines 485-552 Link Here
485
#. of the line in messages. Usually it becomes "xz: ".
547
#. of the line in messages. Usually it becomes "xz: ".
486
#. This is a translatable string because French needs
548
#. This is a translatable string because French needs
487
#. a space before a colon.
549
#. a space before a colon.
488
#: src/xz/message.c:728
550
#: src/xz/message.c:725
489
#, c-format
551
#, c-format
490
msgid "%s: "
552
msgid "%s: "
491
msgstr "%s: "
553
msgstr "%s: "
492
554
493
#: src/xz/message.c:791 src/xz/message.c:841
555
#: src/xz/message.c:797 src/xz/message.c:856
494
msgid "Internal error (bug)"
556
msgid "Internal error (bug)"
495
msgstr "Belső hiba (bug)"
557
msgstr "Belső hiba (bug)"
496
558
497
#: src/xz/message.c:798
559
#: src/xz/message.c:804
498
msgid "Cannot establish signal handlers"
560
msgid "Cannot establish signal handlers"
499
msgstr "A szignálkezelők nem hozhatók létre"
561
msgstr "A szignálkezelők nem hozhatók létre"
500
562
501
#: src/xz/message.c:807
563
#: src/xz/message.c:813
502
msgid "No integrity check; not verifying file integrity"
564
msgid "No integrity check; not verifying file integrity"
503
msgstr "Nincs integritás-ellenőrzés; a fájl épsége nem lesz ellenőrizve"
565
msgstr "Nincs integritás-ellenőrzés; a fájl épsége nem lesz ellenőrizve"
504
566
505
#: src/xz/message.c:810
567
#: src/xz/message.c:816
506
msgid "Unsupported type of integrity check; not verifying file integrity"
568
msgid "Unsupported type of integrity check; not verifying file integrity"
507
msgstr "Nem támogatott integritás-ellenőrzési típus; a fájl épsége nem lesz ellenőrizve"
569
msgstr "Nem támogatott integritás-ellenőrzési típus; a fájl épsége nem lesz ellenőrizve"
508
570
509
#: src/xz/message.c:817
571
#: src/xz/message.c:823
510
msgid "Memory usage limit reached"
572
msgid "Memory usage limit reached"
511
msgstr "Memóriahasználat korlátja elérve"
573
msgstr "Memóriahasználat korlátja elérve"
512
574
513
#: src/xz/message.c:820
575
#: src/xz/message.c:826
514
msgid "File format not recognized"
576
msgid "File format not recognized"
515
msgstr "A fájlformátum nem felismert"
577
msgstr "A fájlformátum nem felismert"
516
578
517
#: src/xz/message.c:823
579
#: src/xz/message.c:829
518
msgid "Unsupported options"
580
msgid "Unsupported options"
519
msgstr "Nem támogatott kapcsolók"
581
msgstr "Nem támogatott kapcsolók"
520
582
521
#: src/xz/message.c:826
583
#: src/xz/message.c:832
522
msgid "Compressed data is corrupt"
584
msgid "Compressed data is corrupt"
523
msgstr "A tömörített adatok megsérültek"
585
msgstr "A tömörített adatok megsérültek"
524
586
525
#: src/xz/message.c:829
587
#: src/xz/message.c:835
526
msgid "Unexpected end of input"
588
msgid "Unexpected end of input"
527
msgstr "A bemenet váratlanul véget ért"
589
msgstr "A bemenet váratlanul véget ért"
528
590
529
#: src/xz/message.c:862
591
#: src/xz/message.c:877
530
#, c-format
592
#, c-format
531
msgid "%s MiB of memory is required. The limiter is disabled."
593
msgid "%s MiB of memory is required. The limiter is disabled."
532
msgstr "%s MiB memória szükséges. A korlátozás letiltva."
594
msgstr "%s MiB memória szükséges. A korlátozás letiltva."
533
595
534
#: src/xz/message.c:890
596
#: src/xz/message.c:905
535
#, c-format
597
#, c-format
536
msgid "%s MiB of memory is required. The limit is %s."
598
msgid "%s MiB of memory is required. The limit is %s."
537
msgstr "%s MiB memória szükséges. A korlát %s."
599
msgstr "%s MiB memória szükséges. A korlát %s."
538
600
539
#: src/xz/message.c:1057
601
#: src/xz/message.c:924
540
#, c-format
602
#, c-format
541
msgid "%s: Filter chain: %s\n"
603
msgid "%s: Filter chain: %s\n"
542
msgstr "%s: Szűrőlánc: %s\n"
604
msgstr "%s: Szűrőlánc: %s\n"
543
605
544
#: src/xz/message.c:1067
606
#: src/xz/message.c:935
545
#, c-format
607
#, c-format
546
msgid "Try `%s --help' for more information."
608
msgid "Try `%s --help' for more information."
547
msgstr "További információkért adja ki a következő parancsot: „%s --help”."
609
msgstr "További információkért adja ki a következő parancsot: „%s --help”."
548
610
549
#: src/xz/message.c:1093
611
#: src/xz/message.c:961
550
#, c-format
612
#, c-format
551
msgid ""
613
msgid ""
552
"Usage: %s [OPTION]... [FILE]...\n"
614
"Usage: %s [OPTION]... [FILE]...\n"
Lines 557-571 Link Here
557
".xz formátumú FÁJLok tömörítése vagy kibontása.\n"
619
".xz formátumú FÁJLok tömörítése vagy kibontása.\n"
558
"\n"
620
"\n"
559
621
560
#: src/xz/message.c:1100
622
#: src/xz/message.c:968
561
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
623
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
562
msgstr "A hosszú kapcsolók kötelező argumentumai a rövid kapcsolók esetén is kötelezők.\n"
624
msgstr "A hosszú kapcsolók kötelező argumentumai a rövid kapcsolók esetén is kötelezők.\n"
563
625
564
#: src/xz/message.c:1104
626
#: src/xz/message.c:972
565
msgid " Operation mode:\n"
627
msgid " Operation mode:\n"
566
msgstr " Működési mód:\n"
628
msgstr " Működési mód:\n"
567
629
568
#: src/xz/message.c:1107
630
#: src/xz/message.c:975
569
msgid ""
631
msgid ""
570
"  -z, --compress      force compression\n"
632
"  -z, --compress      force compression\n"
571
"  -d, --decompress    force decompression\n"
633
"  -d, --decompress    force decompression\n"
Lines 577-583 Link Here
577
"  -t, --test          tömörített fájl épségének tesztelése\n"
639
"  -t, --test          tömörített fájl épségének tesztelése\n"
578
"  -l, --list          információk kiírása az .xz fájlokról"
640
"  -l, --list          információk kiírása az .xz fájlokról"
579
641
580
#: src/xz/message.c:1113
642
#: src/xz/message.c:981
581
msgid ""
643
msgid ""
582
"\n"
644
"\n"
583
" Operation modifiers:\n"
645
" Operation modifiers:\n"
Lines 585-591 Link Here
585
"\n"
647
"\n"
586
" Műveleti módosítók:\n"
648
" Műveleti módosítók:\n"
587
649
588
#: src/xz/message.c:1116
650
#: src/xz/message.c:984
589
msgid ""
651
msgid ""
590
"  -k, --keep          keep (don't delete) input files\n"
652
"  -k, --keep          keep (don't delete) input files\n"
591
"  -f, --force         force overwrite of output file and (de)compress links\n"
653
"  -f, --force         force overwrite of output file and (de)compress links\n"
Lines 597-603 Link Here
597
"  -c, --stdout        írás a szabványos kimenetre írás, és nem törli a\n"
659
"  -c, --stdout        írás a szabványos kimenetre írás, és nem törli a\n"
598
"                      bemeneti fájlokat"
660
"                      bemeneti fájlokat"
599
661
600
#: src/xz/message.c:1122
662
#: src/xz/message.c:993
601
msgid ""
663
msgid ""
602
"      --single-stream decompress only the first stream, and silently\n"
664
"      --single-stream decompress only the first stream, and silently\n"
603
"                      ignore possible remaining input data"
665
"                      ignore possible remaining input data"
Lines 605-611 Link Here
605
"      --single-stream csak az első adatfolyam kibontása, és a\n"
667
"      --single-stream csak az első adatfolyam kibontása, és a\n"
606
"                      lehetséges hátralévő bemeneti adatok mellőzése"
668
"                      lehetséges hátralévő bemeneti adatok mellőzése"
607
669
608
#: src/xz/message.c:1125
670
#: src/xz/message.c:996
609
msgid ""
671
msgid ""
610
"      --no-sparse     do not create sparse files when decompressing\n"
672
"      --no-sparse     do not create sparse files when decompressing\n"
611
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
673
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
Lines 616-628 Link Here
616
msgstr ""
678
msgstr ""
617
"      --no-sparse     ne hozzon létre ritka fájlokat kibontáskor\n"
679
"      --no-sparse     ne hozzon létre ritka fájlokat kibontáskor\n"
618
"  -S, --suffix=.SUF   a „.SUF” utótag használata a tömörített fájlokon\n"
680
"  -S, --suffix=.SUF   a „.SUF” utótag használata a tömörített fájlokon\n"
619
"      --files[=FÁJL]  fájlnevek beolvasása a FÁJLból; ha a FÁJL nincs megadva,\n"
681
"      --files[=FÁJL]  fájlnevek beolvasása a FÁJLból; ha a FÁJL nincs\n"
620
"                      akkor a fájlnevek a szabványos bemenetről lesznek\n"
682
"                      megadva, akkor a fájlnevek a szabványos bemenetről\n"
621
"                      beolvasva; a fájlneveket újsor karakterrel kell zárni\n"
683
"                      lesznek beolvasva; a fájlneveket újsor karakterrel\n"
622
"      --files0[=FÁJL] mint a --files, de a null karakter használata\n"
684
"                      kell zárni\n"
623
"                      elválasztóként"
685
"      --files0[=FÁJL] mint a --files, de a null karaktert használja\n"
686
"                      használja elválasztóként"
624
687
625
#: src/xz/message.c:1134
688
#: src/xz/message.c:1005
626
msgid ""
689
msgid ""
627
"\n"
690
"\n"
628
" Basic file format and compression options:\n"
691
" Basic file format and compression options:\n"
Lines 630-653 Link Here
630
"\n"
693
"\n"
631
" Alapvető fájlformátum és tömörítési beállítások:\n"
694
" Alapvető fájlformátum és tömörítési beállítások:\n"
632
695
633
#: src/xz/message.c:1136
696
#: src/xz/message.c:1007
634
msgid ""
697
msgid ""
635
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
698
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
636
"                      `auto' (default), `xz', `lzma', and `raw'\n"
699
"                      `auto' (default), `xz', `lzma', `lzip', and `raw'\n"
637
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
700
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
638
"                      `crc32', `crc64' (default), or `sha256'"
701
"                      `crc32', `crc64' (default), or `sha256'"
639
msgstr ""
702
msgstr ""
640
"  -F, --format=FMT    a kódoláshoz vagy dekódoláshoz használt fájlformátum;\n"
703
"  -F, --format=FMT    a kódoláshoz vagy dekódoláshoz használt fájlformátum;\n"
641
"                      lehetséges értékek „auto” (alapértelmezett), „xz”,\n"
704
"                      lehetséges értékek „auto” (alapértelmezett), „xz”,\n"
642
"                      „lzma” és „raw”\n"
705
"                      „lzma”, „lzip” és „raw”\n"
643
"  -C, --check=ELL     integritás-ellenőrzés típusa: „none” (óvatosan használja),\n"
706
"  -C, --check=ELL     integritás-ellenőrzés típusa: „none” (óvatosan használja),\n"
644
"                      „crc32”, „crc64” (alapértelmezett) vagy „sha256”"
707
"                      „crc32”, „crc64” (alapértelmezett) vagy „sha256”"
645
708
646
#: src/xz/message.c:1141
709
#: src/xz/message.c:1012
647
msgid "      --ignore-check  don't verify the integrity check when decompressing"
710
msgid "      --ignore-check  don't verify the integrity check when decompressing"
648
msgstr "      --ignore-check  kibontáskor ne ellenőrizze az épséget"
711
msgstr "      --ignore-check  kibontáskor ne ellenőrizze az épséget"
649
712
650
#: src/xz/message.c:1145
713
#: src/xz/message.c:1016
651
msgid ""
714
msgid ""
652
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
715
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
653
"                      decompressor memory usage into account before using 7-9!"
716
"                      decompressor memory usage into account before using 7-9!"
Lines 656-662 Link Here
656
"                      a 7-9 használata előtt vegye figyelembe a tömörítő\n"
719
"                      a 7-9 használata előtt vegye figyelembe a tömörítő\n"
657
"                      *és* kibontó memóriahasználatát!"
720
"                      *és* kibontó memóriahasználatát!"
658
721
659
#: src/xz/message.c:1149
722
#: src/xz/message.c:1020
660
msgid ""
723
msgid ""
661
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
724
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
662
"                      does not affect decompressor memory requirements"
725
"                      does not affect decompressor memory requirements"
Lines 664-670 Link Here
664
"  -e, --extreme       a tömörítési arány javítási kísérlete több CPU-idő\n"
727
"  -e, --extreme       a tömörítési arány javítási kísérlete több CPU-idő\n"
665
"                      használatával; nincs hatással a kibontó memóriaigényére"
728
"                      használatával; nincs hatással a kibontó memóriaigényére"
666
729
667
#: src/xz/message.c:1153
730
#: src/xz/message.c:1024
668
msgid ""
731
msgid ""
669
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
732
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
670
"                      to use as many threads as there are processor cores"
733
"                      to use as many threads as there are processor cores"
Lines 673-679 Link Here
673
"                      állítsa 0-ra, hogy annyi szálat használjon, amennyi\n"
736
"                      állítsa 0-ra, hogy annyi szálat használjon, amennyi\n"
674
"                      processzormag áll rendelkezésre"
737
"                      processzormag áll rendelkezésre"
675
738
676
#: src/xz/message.c:1158
739
#: src/xz/message.c:1029
677
msgid ""
740
msgid ""
678
"      --block-size=SIZE\n"
741
"      --block-size=SIZE\n"
679
"                      start a new .xz block after every SIZE bytes of input;\n"
742
"                      start a new .xz block after every SIZE bytes of input;\n"
Lines 683-689 Link Here
683
"                      új .xz blokk indítása minden MÉRETnyi bájt bemenet után;\n"
746
"                      új .xz blokk indítása minden MÉRETnyi bájt bemenet után;\n"
684
"                      a többszálas tömörítés blokkméretének megadásához"
747
"                      a többszálas tömörítés blokkméretének megadásához"
685
748
686
#: src/xz/message.c:1162
749
#: src/xz/message.c:1033
687
msgid ""
750
msgid ""
688
"      --block-list=SIZES\n"
751
"      --block-list=SIZES\n"
689
"                      start a new .xz block after the given comma-separated\n"
752
"                      start a new .xz block after the given comma-separated\n"
Lines 693-699 Link Here
693
"                      új .xz blokk indítása a vesszőkkel felsorolva megadott\n"
756
"                      új .xz blokk indítása a vesszőkkel felsorolva megadott\n"
694
"                      méretű tömörítetlen adatszakaszok után"
757
"                      méretű tömörítetlen adatszakaszok után"
695
758
696
#: src/xz/message.c:1166
759
#: src/xz/message.c:1037
697
msgid ""
760
msgid ""
698
"      --flush-timeout=TIMEOUT\n"
761
"      --flush-timeout=TIMEOUT\n"
699
"                      when compressing, if more than TIMEOUT milliseconds has\n"
762
"                      when compressing, if more than TIMEOUT milliseconds has\n"
Lines 705-727 Link Here
705
"                      telt el az előző kiírástól, és a bemenetolvasás\n"
768
"                      telt el az előző kiírástól, és a bemenetolvasás\n"
706
"                      blokkolna, akkor minden adat ki lesz írva"
769
"                      blokkolna, akkor minden adat ki lesz írva"
707
770
708
#: src/xz/message.c:1172
771
#: src/xz/message.c:1043
709
#, no-c-format
772
#, no-c-format
710
msgid ""
773
msgid ""
711
"      --memlimit-compress=LIMIT\n"
774
"      --memlimit-compress=LIMIT\n"
712
"      --memlimit-decompress=LIMIT\n"
775
"      --memlimit-decompress=LIMIT\n"
776
"      --memlimit-mt-decompress=LIMIT\n"
713
"  -M, --memlimit=LIMIT\n"
777
"  -M, --memlimit=LIMIT\n"
714
"                      set memory usage limit for compression, decompression,\n"
778
"                      set memory usage limit for compression, decompression,\n"
715
"                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
779
"                      threaded decompression, or all of these; LIMIT is in\n"
780
"                      bytes, % of RAM, or 0 for defaults"
716
msgstr ""
781
msgstr ""
717
"      --memlimit-compress=KORLÁT\n"
782
"      --memlimit-compress=KORLÁT\n"
718
"      --memlimit-decompress=KORLÁT\n"
783
"      --memlimit-decompress=KORLÁT\n"
784
"      --memlimit-mt-decompress=KORLÁT\n"
719
"  -M, --memlimit=KORLÁT\n"
785
"  -M, --memlimit=KORLÁT\n"
720
"                      a memóriahasználati korlát megadása tömörítéshez,\n"
786
"                      a memóriahasználati korlát megadása tömörítéshez,\n"
721
"                      kibontáshoz vagy mindkettőhöz; a KORLÁT bájtokban van\n"
787
"                      kibontáshoz, többszálú kibontású vagy mindháromhoz; a\n"
722
"                      megadva, a RAM %-ában, vagy 0 az alapértelmezéshez"
788
"                      KORLÁT bájtokban van megadva, a RAM %-ában, vagy 0 az\n"
789
"                      alapértelmezéshez"
723
790
724
#: src/xz/message.c:1179
791
#: src/xz/message.c:1052
725
msgid ""
792
msgid ""
726
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
793
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
727
"                      give an error instead of adjusting the settings downwards"
794
"                      give an error instead of adjusting the settings downwards"
Lines 730-736 Link Here
730
"                      korlátot, akkor hibát fog adni a beállítások lefelé\n"
797
"                      korlátot, akkor hibát fog adni a beállítások lefelé\n"
731
"                      állítása helyett"
798
"                      állítása helyett"
732
799
733
#: src/xz/message.c:1185
800
#: src/xz/message.c:1058
734
msgid ""
801
msgid ""
735
"\n"
802
"\n"
736
" Custom filter chain for compression (alternative for using presets):"
803
" Custom filter chain for compression (alternative for using presets):"
Lines 738-744 Link Here
738
"\n"
805
"\n"
739
" Egyéni szűrőlánc a tömörítéshez (alternatíva az előbeállításokra):"
806
" Egyéni szűrőlánc a tömörítéshez (alternatíva az előbeállításokra):"
740
807
741
#: src/xz/message.c:1194
808
#: src/xz/message.c:1067
742
msgid ""
809
msgid ""
743
"\n"
810
"\n"
744
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
811
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
Lines 768-797 Link Here
768
"                        depth=SZÁM legnagyobb keresési mélység; 0=automatikus\n"
835
"                        depth=SZÁM legnagyobb keresési mélység; 0=automatikus\n"
769
"                                   (alapértelmezett)"
836
"                                   (alapértelmezett)"
770
837
771
#: src/xz/message.c:1209
838
#: src/xz/message.c:1082
772
msgid ""
839
msgid ""
773
"\n"
840
"\n"
774
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
841
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
842
"  --arm[=OPTS]        ARM BCJ filter\n"
843
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter\n"
844
"  --arm64[=OPTS]      ARM64 BCJ filter\n"
775
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
845
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
776
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
846
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
777
"  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
778
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
779
"  --sparc[=OPTS]      SPARC BCJ filter\n"
847
"  --sparc[=OPTS]      SPARC BCJ filter\n"
780
"                      Valid OPTS for all BCJ filters:\n"
848
"                      Valid OPTS for all BCJ filters:\n"
781
"                        start=NUM  start offset for conversions (default=0)"
849
"                        start=NUM  start offset for conversions (default=0)"
782
msgstr ""
850
msgstr ""
783
"\n"
851
"\n"
784
"  --x86[=KAPCS]       x86 BCJ szűrő (32 bites és 64 bites)\n"
852
"  --x86[=KAPCS]       x86 BCJ szűrő (32 bites és 64 bites)\n"
853
"  --arm[=KAPCS]       ARM BCJ szűrő\n"
854
"  --armthumb[=KAPCS]  ARM-Thumb BCJ szűrő\n"
855
"  --arm64[=KAPCS]     ARM64 BCJ szűrő\n"
785
"  --powerpc[=KAPCS]   PowerPC BCJ szűrő (csak big endian esetén)\n"
856
"  --powerpc[=KAPCS]   PowerPC BCJ szűrő (csak big endian esetén)\n"
786
"  --ia64[=KAPCS]      IA-64 (Itanium) BCJ szűrő\n"
857
"  --ia64[=KAPCS]      IA-64 (Itanium) BCJ szűrő\n"
787
"  --arm[=KAPCS]       ARM BCJ szűrő (csak little endian esetén)\n"
788
"  --armthumb[=KAPCS]  ARM-Thumb BCJ szűrő (csak little endian esetén)\n"
789
"  --sparc[=KAPCS]     SPARC BCJ szűrő\n"
858
"  --sparc[=KAPCS]     SPARC BCJ szűrő\n"
790
"                      Érvényes KAPCS az összes BCJ szűrőhöz:\n"
859
"                      Érvényes KAPCS az összes BCJ szűrőhöz:\n"
791
"                        start=SZÁM kezdési eltolás az átalakításokhoz\n"
860
"                        start=SZÁM kezdési eltolás az átalakításokhoz\n"
792
"                                   (alapértelmezett=0)"
861
"                        (alapértelmezett=0)"
793
862
794
#: src/xz/message.c:1221
863
#: src/xz/message.c:1095
795
msgid ""
864
msgid ""
796
"\n"
865
"\n"
797
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
866
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
Lines 804-810 Link Here
804
"                        dist=SZÁM  az egymásból kivont bájtok közti\n"
873
"                        dist=SZÁM  az egymásból kivont bájtok közti\n"
805
"                                   távolság (1-256; 1)"
874
"                                   távolság (1-256; 1)"
806
875
807
#: src/xz/message.c:1229
876
#: src/xz/message.c:1103
808
msgid ""
877
msgid ""
809
"\n"
878
"\n"
810
" Other options:\n"
879
" Other options:\n"
Lines 812-818 Link Here
812
"\n"
881
"\n"
813
" Egyéb kapcsolók:\n"
882
" Egyéb kapcsolók:\n"
814
883
815
#: src/xz/message.c:1232
884
#: src/xz/message.c:1106
816
msgid ""
885
msgid ""
817
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
886
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
818
"  -v, --verbose       be verbose; specify twice for even more verbose"
887
"  -v, --verbose       be verbose; specify twice for even more verbose"
Lines 822-840 Link Here
822
"  -v, --verbose       legyen bőbeszédű; adja meg kétszer, hogy még bőbeszédűbb\n"
891
"  -v, --verbose       legyen bőbeszédű; adja meg kétszer, hogy még bőbeszédűbb\n"
823
"                      legyen"
892
"                      legyen"
824
893
825
#: src/xz/message.c:1237
894
#: src/xz/message.c:1111
826
msgid "  -Q, --no-warn       make warnings not affect the exit status"
895
msgid "  -Q, --no-warn       make warnings not affect the exit status"
827
msgstr ""
896
msgstr ""
828
"  -Q, --no-warn       a figyelmeztetések nem befolyásolják a kilépési\n"
897
"  -Q, --no-warn       a figyelmeztetések nem befolyásolják a kilépési\n"
829
"                      állapotkódot"
898
"                      állapotkódot"
830
899
831
#: src/xz/message.c:1239
900
#: src/xz/message.c:1113
832
msgid "      --robot         use machine-parsable messages (useful for scripts)"
901
msgid "      --robot         use machine-parsable messages (useful for scripts)"
833
msgstr ""
902
msgstr ""
834
"      --robot         géppel értelmezhető üzenetek használata\n"
903
"      --robot         géppel értelmezhető üzenetek használata\n"
835
"                      (parancsfájlok esetén hasznos)"
904
"                      (parancsfájlok esetén hasznos)"
836
905
837
#: src/xz/message.c:1242
906
#: src/xz/message.c:1116
838
msgid ""
907
msgid ""
839
"      --info-memory   display the total amount of RAM and the currently active\n"
908
"      --info-memory   display the total amount of RAM and the currently active\n"
840
"                      memory usage limits, and exit"
909
"                      memory usage limits, and exit"
Lines 842-848 Link Here
842
"      --info-memory   az összes RAM mennyiségének és a jelenlegi\n"
911
"      --info-memory   az összes RAM mennyiségének és a jelenlegi\n"
843
"                      memóriahasználati korlátok megjelenítése, és kilépés"
912
"                      memóriahasználati korlátok megjelenítése, és kilépés"
844
913
845
#: src/xz/message.c:1245
914
#: src/xz/message.c:1119
846
msgid ""
915
msgid ""
847
"  -h, --help          display the short help (lists only the basic options)\n"
916
"  -h, --help          display the short help (lists only the basic options)\n"
848
"  -H, --long-help     display this long help and exit"
917
"  -H, --long-help     display this long help and exit"
Lines 850-856 Link Here
850
"  -h, --help          a rövid súgó megjelenítése (csak az alapvető kapcsolók)\n"
919
"  -h, --help          a rövid súgó megjelenítése (csak az alapvető kapcsolók)\n"
851
"  -H, --long-help     ezen hosszú súgó megjelenítése, és kilépés"
920
"  -H, --long-help     ezen hosszú súgó megjelenítése, és kilépés"
852
921
853
#: src/xz/message.c:1249
922
#: src/xz/message.c:1123
854
msgid ""
923
msgid ""
855
"  -h, --help          display this short help and exit\n"
924
"  -h, --help          display this short help and exit\n"
856
"  -H, --long-help     display the long help (lists also the advanced options)"
925
"  -H, --long-help     display the long help (lists also the advanced options)"
Lines 858-868 Link Here
858
"  -h, --help          ezen rövid súgó megjelenítése, és kilépés\n"
927
"  -h, --help          ezen rövid súgó megjelenítése, és kilépés\n"
859
"  -H, --long-help     a hosszú súgó megjelenítése (speciális kapcsolókhoz)"
928
"  -H, --long-help     a hosszú súgó megjelenítése (speciális kapcsolókhoz)"
860
929
861
#: src/xz/message.c:1254
930
#: src/xz/message.c:1128
862
msgid "  -V, --version       display the version number and exit"
931
msgid "  -V, --version       display the version number and exit"
863
msgstr "  -V, --version       a verziószám kiírása és kilépés"
932
msgstr "  -V, --version       a verziószám kiírása és kilépés"
864
933
865
#: src/xz/message.c:1256
934
#: src/xz/message.c:1130
866
msgid ""
935
msgid ""
867
"\n"
936
"\n"
868
"With no FILE, or when FILE is -, read standard input.\n"
937
"With no FILE, or when FILE is -, read standard input.\n"
Lines 874-890 Link Here
874
#. for this package. Please add _another line_ saying
943
#. for this package. Please add _another line_ saying
875
#. "Report translation bugs to <...>\n" with the email or WWW
944
#. "Report translation bugs to <...>\n" with the email or WWW
876
#. address for translation bugs. Thanks.
945
#. address for translation bugs. Thanks.
877
#: src/xz/message.c:1262
946
#: src/xz/message.c:1136
878
#, c-format
947
#, c-format
879
msgid "Report bugs to <%s> (in English or Finnish).\n"
948
msgid "Report bugs to <%s> (in English or Finnish).\n"
880
msgstr "Ide jelentse a hibákat: <%s> (angolul vagy finnül).\n"
949
msgstr "Ide jelentse a hibákat: <%s> (angolul vagy finnül).\n"
881
950
882
#: src/xz/message.c:1264
951
#: src/xz/message.c:1138
883
#, c-format
952
#, c-format
884
msgid "%s home page: <%s>\n"
953
msgid "%s home page: <%s>\n"
885
msgstr "%s honlap: <%s>\n"
954
msgstr "%s honlap: <%s>\n"
886
955
887
#: src/xz/message.c:1268
956
#: src/xz/message.c:1142
888
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
957
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
889
msgstr "EZ EGY FEJLESZTŐI VÁLTOZAT, NEM ÉLES HASZNÁLATRA SZÁNT."
958
msgstr "EZ EGY FEJLESZTŐI VÁLTOZAT, NEM ÉLES HASZNÁLATRA SZÁNT."
890
959
Lines 912-938 Link Here
912
msgid "The sum of lc and lp must not exceed 4"
981
msgid "The sum of lc and lp must not exceed 4"
913
msgstr "Az lc és lp összege nem haladhatja meg a 4-et"
982
msgstr "Az lc és lp összege nem haladhatja meg a 4-et"
914
983
915
#: src/xz/options.c:359
984
#: src/xz/suffix.c:160
916
#, c-format
985
#, c-format
917
msgid "The selected match finder requires at least nice=%<PRIu32>"
918
msgstr "A kiválasztott egyezéskeresőhöz legalább nice=%<PRIu32> szükséges"
919
920
#: src/xz/suffix.c:133 src/xz/suffix.c:258
921
#, c-format
922
msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
923
msgstr "%s: --format=raw esetén, --suffix=.SUF szükséges, hacsak nem a szabványosra kimenetre ír"
924
925
#: src/xz/suffix.c:164
926
#, c-format
927
msgid "%s: Filename has an unknown suffix, skipping"
986
msgid "%s: Filename has an unknown suffix, skipping"
928
msgstr "%s: A fájlnév utótagja ismeretlen, kihagyás"
987
msgstr "%s: A fájlnév utótagja ismeretlen, kihagyás"
929
988
930
#: src/xz/suffix.c:185
989
#: src/xz/suffix.c:181
931
#, c-format
990
#, c-format
932
msgid "%s: File already has `%s' suffix, skipping"
991
msgid "%s: File already has `%s' suffix, skipping"
933
msgstr "%s: A(z) „%s” fájlnak már van utótagja, kihagyás"
992
msgstr "%s: A(z) „%s” fájlnak már van utótagja, kihagyás"
934
993
935
#: src/xz/suffix.c:393
994
#: src/xz/suffix.c:388
936
#, c-format
995
#, c-format
937
msgid "%s: Invalid filename suffix"
996
msgid "%s: Invalid filename suffix"
938
msgstr "%s: Érvénytelen fájlnév utótag"
997
msgstr "%s: Érvénytelen fájlnév utótag"
Lines 956-970 Link Here
956
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
1015
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
957
msgstr "A(z) „%s” kapcsoló értékének a(z) [%<PRIu64>, %<PRIu64>] tartományban kell lennie"
1016
msgstr "A(z) „%s” kapcsoló értékének a(z) [%<PRIu64>, %<PRIu64>] tartományban kell lennie"
958
1017
959
#: src/xz/util.c:267
1018
#: src/xz/util.c:269
960
msgid "Empty filename, skipping"
961
msgstr "Üres fájlnév, kihagyás"
962
963
#: src/xz/util.c:281
964
msgid "Compressed data cannot be read from a terminal"
1019
msgid "Compressed data cannot be read from a terminal"
965
msgstr "A tömörített adatokat nem lehet beolvasni a terminálból"
1020
msgstr "A tömörített adatokat nem lehet beolvasni a terminálból"
966
1021
967
#: src/xz/util.c:294
1022
#: src/xz/util.c:282
968
msgid "Compressed data cannot be written to a terminal"
1023
msgid "Compressed data cannot be written to a terminal"
969
msgstr "A tömörített adatokat nem lehet kiírni a terminálba"
1024
msgstr "A tömörített adatokat nem lehet kiírni a terminálba"
970
1025
Lines 976-983 Link Here
976
msgid "Unknown error"
1031
msgid "Unknown error"
977
msgstr "Ismeretlen hiba"
1032
msgstr "Ismeretlen hiba"
978
1033
1034
#, c-format
1035
#~ msgid "The selected match finder requires at least nice=%<PRIu32>"
1036
#~ msgstr "A kiválasztott egyezéskeresőhöz legalább nice=%<PRIu32> szükséges"
1037
979
#~ msgid "Sandbox is disabled due to incompatible command line arguments"
1038
#~ msgid "Sandbox is disabled due to incompatible command line arguments"
980
#~ msgstr "A homokozó ki lett kapcsolva a nem kompatibilis parancssori argumentumok miatt"
1039
#~ msgstr "A homokozó ki lett kapcsolva a nem kompatibilis parancssori argumentumok miatt"
981
1040
982
#~ msgid "Sandbox was successfully enabled"
1041
#~ msgid "Sandbox was successfully enabled"
983
#~ msgstr "A homokozó sikeresen engedélyezve"
1042
#~ msgstr "A homokozó sikeresen engedélyezve"
1043
1044
#~ msgid "Memory usage limit for compression:    "
1045
#~ msgstr "Memóriahasználat korlátja tömörítéskor: "
1046
1047
#~ msgid "  Streams:            %s\n"
1048
#~ msgstr "  Adatfolyamok:       %s\n"
1049
1050
#~ msgid "  Blocks:             %s\n"
1051
#~ msgstr "  Blokkok:            %s\n"
1052
1053
#~ msgid "  Ratio:              %s\n"
1054
#~ msgstr "  Arány:              %s\n"
1055
1056
#~ msgid "  Check:              %s\n"
1057
#~ msgstr "  Ellenőrzés:         %s\n"
1058
1059
#~ msgid ""
1060
#~ "  Streams:\n"
1061
#~ "    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
1062
#~ msgstr ""
1063
#~ "  Adatfolyamok:\n"
1064
#~ "    Folyam    Blokkok      TömEltolás    KibEltolás        TömMéret      KibMéret  Arány  Ellenőrzés      Keret"
1065
1066
#~ msgid ""
1067
#~ "  Blocks:\n"
1068
#~ "    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
1069
#~ msgstr ""
1070
#~ "  Blokkok:\n"
1071
#~ "    Folyam    Blokkok      TömEltolás    KibEltolás        TömMéret      KibMéret  Arány  Ellenőrzés"
1072
1073
#~ msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
1074
#~ msgstr "      ÉrtékEll %*s Fejléc  Jelzők        TömMéret    MemHasználat  Szűrők"
(-)xz-5.2.5/po/it.po (-246 / +384 lines)
Lines 7-14 Link Here
7
msgid ""
7
msgid ""
8
msgstr ""
8
msgstr ""
9
"Project-Id-Version: xz 5.2.4\n"
9
"Project-Id-Version: xz 5.2.4\n"
10
"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
10
"Report-Msgid-Bugs-To: xz@tukaani.org\n"
11
"POT-Creation-Date: 2020-03-17 16:29+0200\n"
11
"POT-Creation-Date: 2023-05-04 22:32+0800\n"
12
"PO-Revision-Date: 2019-03-04 14:21+0100\n"
12
"PO-Revision-Date: 2019-03-04 14:21+0100\n"
13
"Last-Translator: Milo Casagrande <milo@milo.name>\n"
13
"Last-Translator: Milo Casagrande <milo@milo.name>\n"
14
"Language-Team: Italian <tp@lists.linux.it>\n"
14
"Language-Team: Italian <tp@lists.linux.it>\n"
Lines 21-119 Link Here
21
"X-Generator: Poedit 2.2.1\n"
21
"X-Generator: Poedit 2.2.1\n"
22
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
22
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
23
23
24
#: src/xz/args.c:63
24
#: src/xz/args.c:77
25
#, c-format
25
#, c-format
26
msgid "%s: Invalid argument to --block-list"
26
msgid "%s: Invalid argument to --block-list"
27
msgstr "%s: argomento non valido per --block-list"
27
msgstr "%s: argomento non valido per --block-list"
28
28
29
#: src/xz/args.c:73
29
#: src/xz/args.c:87
30
#, c-format
30
#, c-format
31
msgid "%s: Too many arguments to --block-list"
31
msgid "%s: Too many arguments to --block-list"
32
msgstr "%s: troppi argomenti per --block-list"
32
msgstr "%s: troppi argomenti per --block-list"
33
33
34
#: src/xz/args.c:102
34
#: src/xz/args.c:116
35
msgid "0 can only be used as the last element in --block-list"
35
msgid "0 can only be used as the last element in --block-list"
36
msgstr "0 può essere usato solo come ultimo elemento in --block-list"
36
msgstr "0 può essere usato solo come ultimo elemento in --block-list"
37
37
38
#: src/xz/args.c:406
38
#: src/xz/args.c:451
39
#, c-format
39
#, c-format
40
msgid "%s: Unknown file format type"
40
msgid "%s: Unknown file format type"
41
msgstr "%s: tipo di formato del file sconosciuto"
41
msgstr "%s: tipo di formato del file sconosciuto"
42
42
43
#: src/xz/args.c:429 src/xz/args.c:437
43
#: src/xz/args.c:474 src/xz/args.c:482
44
#, c-format
44
#, c-format
45
msgid "%s: Unsupported integrity check type"
45
msgid "%s: Unsupported integrity check type"
46
msgstr "%s: tipo di controllo integrità non supportato"
46
msgstr "%s: tipo di controllo integrità non supportato"
47
47
48
#: src/xz/args.c:473
48
#: src/xz/args.c:518
49
msgid "Only one file can be specified with `--files' or `--files0'."
49
msgid "Only one file can be specified with `--files' or `--files0'."
50
msgstr "Solo un file può essere specificato con \"--files\" o \"--files0\"."
50
msgstr "Solo un file può essere specificato con \"--files\" o \"--files0\"."
51
51
52
#: src/xz/args.c:541
52
#: src/xz/args.c:586
53
#, c-format
53
#, c-format
54
msgid "The environment variable %s contains too many arguments"
54
msgid "The environment variable %s contains too many arguments"
55
msgstr "La variabile d'ambiente %s contiene troppi argomenti"
55
msgstr "La variabile d'ambiente %s contiene troppi argomenti"
56
56
57
#: src/xz/args.c:643
57
#: src/xz/args.c:688
58
msgid "Compression support was disabled at build time"
58
msgid "Compression support was disabled at build time"
59
msgstr "Il supporto alla compressione è stato disabilitato in fase di compilazione"
59
msgstr "Il supporto alla compressione è stato disabilitato in fase di compilazione"
60
60
61
#: src/xz/args.c:650
61
#: src/xz/args.c:695
62
msgid "Decompression support was disabled at build time"
62
msgid "Decompression support was disabled at build time"
63
msgstr "Il supporto alla decompressione è stato disabilitato in fase di compilazione"
63
msgstr "Il supporto alla decompressione è stato disabilitato in fase di compilazione"
64
64
65
#: src/xz/coder.c:110
65
#: src/xz/args.c:701
66
msgid "Compression of lzip files (.lz) is not supported"
67
msgstr ""
68
69
#: src/xz/args.c:732
70
#, fuzzy
71
#| msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
72
msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout"
73
msgstr "%s: con --format=raw, --suffix=.SUF è richiesto a meno che non si scriva sullo stdout"
74
75
#: src/xz/coder.c:115
66
msgid "Maximum number of filters is four"
76
msgid "Maximum number of filters is four"
67
msgstr "Il numero massimo di filtri è quattro"
77
msgstr "Il numero massimo di filtri è quattro"
68
78
69
#: src/xz/coder.c:129
79
#: src/xz/coder.c:134
70
msgid "Memory usage limit is too low for the given filter setup."
80
msgid "Memory usage limit is too low for the given filter setup."
71
msgstr "Il limite dell'uso della memoria è troppo basso per l'impostazione del filtro dato."
81
msgstr "Il limite dell'uso della memoria è troppo basso per l'impostazione del filtro dato."
72
82
73
#: src/xz/coder.c:159
83
#: src/xz/coder.c:169
74
msgid "Using a preset in raw mode is discouraged."
84
msgid "Using a preset in raw mode is discouraged."
75
msgstr "Non è consigliato usare un preset nella modalità raw."
85
msgstr "Non è consigliato usare un preset nella modalità raw."
76
86
77
#: src/xz/coder.c:161
87
#: src/xz/coder.c:171
78
msgid "The exact options of the presets may vary between software versions."
88
msgid "The exact options of the presets may vary between software versions."
79
msgstr "Le opzioni esatte per i preset possono variare tra le versioni del software."
89
msgstr "Le opzioni esatte per i preset possono variare tra le versioni del software."
80
90
81
#: src/xz/coder.c:184
91
#: src/xz/coder.c:194
82
msgid "The .lzma format supports only the LZMA1 filter"
92
msgid "The .lzma format supports only the LZMA1 filter"
83
msgstr "Il formato .lzma supporta solo il filtro LZMA1"
93
msgstr "Il formato .lzma supporta solo il filtro LZMA1"
84
94
85
#: src/xz/coder.c:192
95
#: src/xz/coder.c:202
86
msgid "LZMA1 cannot be used with the .xz format"
96
msgid "LZMA1 cannot be used with the .xz format"
87
msgstr "LZMA1 non può essere usato con il formato .xz"
97
msgstr "LZMA1 non può essere usato con il formato .xz"
88
98
89
#: src/xz/coder.c:209
99
#: src/xz/coder.c:219
90
msgid "The filter chain is incompatible with --flush-timeout"
100
msgid "The filter chain is incompatible with --flush-timeout"
91
msgstr "La catena di filtri non è compatibile con --flush-timeout"
101
msgstr "La catena di filtri non è compatibile con --flush-timeout"
92
102
93
#: src/xz/coder.c:215
103
#: src/xz/coder.c:225
94
msgid "Switching to single-threaded mode due to --flush-timeout"
104
msgid "Switching to single-threaded mode due to --flush-timeout"
95
msgstr "Passaggio a modalità singolo thread poiché viene usato --flush-timeout"
105
msgstr "Passaggio a modalità singolo thread poiché viene usato --flush-timeout"
96
106
97
#: src/xz/coder.c:235
107
#: src/xz/coder.c:249
98
#, c-format
108
#, c-format
99
msgid "Using up to %<PRIu32> threads."
109
msgid "Using up to %<PRIu32> threads."
100
msgstr "Vengono usati circa %<PRIu32> thread."
110
msgstr "Vengono usati circa %<PRIu32> thread."
101
111
102
#: src/xz/coder.c:251
112
#: src/xz/coder.c:265
103
msgid "Unsupported filter chain or filter options"
113
msgid "Unsupported filter chain or filter options"
104
msgstr "Catena di filtri od opzioni del filtro non supportata"
114
msgstr "Catena di filtri od opzioni del filtro non supportata"
105
115
106
#: src/xz/coder.c:263
116
#: src/xz/coder.c:277
107
#, c-format
117
#, c-format
108
msgid "Decompression will need %s MiB of memory."
118
msgid "Decompression will need %s MiB of memory."
109
msgstr "L'estrazione necessita di %s MiB di memoria."
119
msgstr "L'estrazione necessita di %s MiB di memoria."
110
120
111
#: src/xz/coder.c:300
121
#: src/xz/coder.c:309
122
#, fuzzy, c-format
123
#| msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
124
msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
125
msgstr "Regolato il numero di thread da %s a %s per non eccedere il limite di utilizzo della memoria di %s MiB"
126
127
#: src/xz/coder.c:329
112
#, c-format
128
#, c-format
113
msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
129
msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway."
130
msgstr ""
131
132
#: src/xz/coder.c:356
133
#, fuzzy, c-format
134
#| msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
135
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
114
msgstr "Regolato il numero di thread da %s a %s per non eccedere il limite di utilizzo della memoria di %s MiB"
136
msgstr "Regolato il numero di thread da %s a %s per non eccedere il limite di utilizzo della memoria di %s MiB"
115
137
116
#: src/xz/coder.c:354
138
#: src/xz/coder.c:411
117
#, c-format
139
#, c-format
118
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
140
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
119
msgstr "Regolata la dimensione del dizionario LZMA%c da %s MiB a %s MiB per non superare il limite dell'uso della memoria di %s MiB"
141
msgstr "Regolata la dimensione del dizionario LZMA%c da %s MiB a %s MiB per non superare il limite dell'uso della memoria di %s MiB"
Lines 123-133 Link Here
123
msgid "Error creating a pipe: %s"
145
msgid "Error creating a pipe: %s"
124
msgstr "Errore nel creare una pipe: %s"
146
msgstr "Errore nel creare una pipe: %s"
125
147
126
#: src/xz/file_io.c:224
148
#: src/xz/file_io.c:252
127
msgid "Failed to enable the sandbox"
149
msgid "Failed to enable the sandbox"
128
msgstr "Abilitazione modalità sandbox non riuscita"
150
msgstr "Abilitazione modalità sandbox non riuscita"
129
151
130
#: src/xz/file_io.c:266
152
#: src/xz/file_io.c:294
131
#, c-format
153
#, c-format
132
msgid "%s: poll() failed: %s"
154
msgid "%s: poll() failed: %s"
133
msgstr "%s: poll() non riuscita: %s"
155
msgstr "%s: poll() non riuscita: %s"
Lines 142-336 Link Here
142
#. it is possible that the user has put a new file in place
164
#. it is possible that the user has put a new file in place
143
#. of the original file, and in that case it obviously
165
#. of the original file, and in that case it obviously
144
#. shouldn't be removed.
166
#. shouldn't be removed.
145
#: src/xz/file_io.c:333
167
#: src/xz/file_io.c:361
146
#, c-format
168
#, c-format
147
msgid "%s: File seems to have been moved, not removing"
169
msgid "%s: File seems to have been moved, not removing"
148
msgstr "%s: sembra che il file sia stato spostato, non viene rimosso"
170
msgstr "%s: sembra che il file sia stato spostato, non viene rimosso"
149
171
150
#: src/xz/file_io.c:340 src/xz/file_io.c:882
172
#: src/xz/file_io.c:368 src/xz/file_io.c:924
151
#, c-format
173
#, c-format
152
msgid "%s: Cannot remove: %s"
174
msgid "%s: Cannot remove: %s"
153
msgstr "%s: impossibile rimuovere: %s"
175
msgstr "%s: impossibile rimuovere: %s"
154
176
155
#: src/xz/file_io.c:366
177
#: src/xz/file_io.c:394
156
#, c-format
178
#, c-format
157
msgid "%s: Cannot set the file owner: %s"
179
msgid "%s: Cannot set the file owner: %s"
158
msgstr "%s: impossibile impostare il proprietario del file: %s"
180
msgstr "%s: impossibile impostare il proprietario del file: %s"
159
181
160
#: src/xz/file_io.c:372
182
#: src/xz/file_io.c:407
161
#, c-format
183
#, c-format
162
msgid "%s: Cannot set the file group: %s"
184
msgid "%s: Cannot set the file group: %s"
163
msgstr "%s: impossibile impostare il gruppo del file: %s"
185
msgstr "%s: impossibile impostare il gruppo del file: %s"
164
186
165
#: src/xz/file_io.c:391
187
#: src/xz/file_io.c:426
166
#, c-format
188
#, c-format
167
msgid "%s: Cannot set the file permissions: %s"
189
msgid "%s: Cannot set the file permissions: %s"
168
msgstr "%s: impossibile impostare i permessi del file: %s"
190
msgstr "%s: impossibile impostare i permessi del file: %s"
169
191
170
#: src/xz/file_io.c:517
192
#: src/xz/file_io.c:552
171
#, c-format
193
#, c-format
172
msgid "Error getting the file status flags from standard input: %s"
194
msgid "Error getting the file status flags from standard input: %s"
173
msgstr "Errore nel recuperare le flag di stato del file dallo standard input: %s"
195
msgstr "Errore nel recuperare le flag di stato del file dallo standard input: %s"
174
196
175
#: src/xz/file_io.c:574 src/xz/file_io.c:636
197
#: src/xz/file_io.c:610 src/xz/file_io.c:672
176
#, c-format
198
#, c-format
177
msgid "%s: Is a symbolic link, skipping"
199
msgid "%s: Is a symbolic link, skipping"
178
msgstr "%s: è un collegamento simbolico, viene saltato"
200
msgstr "%s: è un collegamento simbolico, viene saltato"
179
201
180
#: src/xz/file_io.c:665
202
#: src/xz/file_io.c:701
181
#, c-format
203
#, c-format
182
msgid "%s: Is a directory, skipping"
204
msgid "%s: Is a directory, skipping"
183
msgstr "%s: è una directory, viene saltata"
205
msgstr "%s: è una directory, viene saltata"
184
206
185
#: src/xz/file_io.c:671
207
#: src/xz/file_io.c:707
186
#, c-format
208
#, c-format
187
msgid "%s: Not a regular file, skipping"
209
msgid "%s: Not a regular file, skipping"
188
msgstr "%s: non è un file regolare, viene saltato"
210
msgstr "%s: non è un file regolare, viene saltato"
189
211
190
#: src/xz/file_io.c:688
212
#: src/xz/file_io.c:724
191
#, c-format
213
#, c-format
192
msgid "%s: File has setuid or setgid bit set, skipping"
214
msgid "%s: File has setuid or setgid bit set, skipping"
193
msgstr "%s: il file ha il bit setuid o setgid impostato, viene saltato"
215
msgstr "%s: il file ha il bit setuid o setgid impostato, viene saltato"
194
216
195
#: src/xz/file_io.c:695
217
#: src/xz/file_io.c:731
196
#, c-format
218
#, c-format
197
msgid "%s: File has sticky bit set, skipping"
219
msgid "%s: File has sticky bit set, skipping"
198
msgstr "%s: il file ha lo sticky bit impostato, viene saltato"
220
msgstr "%s: il file ha lo sticky bit impostato, viene saltato"
199
221
200
#: src/xz/file_io.c:702
222
#: src/xz/file_io.c:738
201
#, c-format
223
#, c-format
202
msgid "%s: Input file has more than one hard link, skipping"
224
msgid "%s: Input file has more than one hard link, skipping"
203
msgstr "%s: il file di input ha più di un collegamento fisico, viene saltato"
225
msgstr "%s: il file di input ha più di un collegamento fisico, viene saltato"
204
226
205
#: src/xz/file_io.c:792
227
#: src/xz/file_io.c:780
228
msgid "Empty filename, skipping"
229
msgstr "Nome file vuoto, viene saltato"
230
231
#: src/xz/file_io.c:834
206
#, c-format
232
#, c-format
207
msgid "Error restoring the status flags to standard input: %s"
233
msgid "Error restoring the status flags to standard input: %s"
208
msgstr "Errore nel ripristinare le flag di stato sullo standard input: %s"
234
msgstr "Errore nel ripristinare le flag di stato sullo standard input: %s"
209
235
210
#: src/xz/file_io.c:840
236
#: src/xz/file_io.c:882
211
#, c-format
237
#, c-format
212
msgid "Error getting the file status flags from standard output: %s"
238
msgid "Error getting the file status flags from standard output: %s"
213
msgstr "Errore nel recuperare le flag di stato del file dallo standard output: %s"
239
msgstr "Errore nel recuperare le flag di stato del file dallo standard output: %s"
214
240
215
#: src/xz/file_io.c:1018
241
#: src/xz/file_io.c:1060
216
#, c-format
242
#, c-format
217
msgid "Error restoring the O_APPEND flag to standard output: %s"
243
msgid "Error restoring the O_APPEND flag to standard output: %s"
218
msgstr "Errore nel ripristinare la flag O_APPEND sullo standard output: %s"
244
msgstr "Errore nel ripristinare la flag O_APPEND sullo standard output: %s"
219
245
220
#: src/xz/file_io.c:1030
246
#: src/xz/file_io.c:1072
221
#, c-format
247
#, c-format
222
msgid "%s: Closing the file failed: %s"
248
msgid "%s: Closing the file failed: %s"
223
msgstr "%s: chiusura del file non riuscita: %s"
249
msgstr "%s: chiusura del file non riuscita: %s"
224
250
225
#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
251
#: src/xz/file_io.c:1108 src/xz/file_io.c:1371
226
#, c-format
252
#, c-format
227
msgid "%s: Seeking failed when trying to create a sparse file: %s"
253
msgid "%s: Seeking failed when trying to create a sparse file: %s"
228
msgstr "%s: posizionamento non riuscito nel tentativo di creare un file sparso: %s"
254
msgstr "%s: posizionamento non riuscito nel tentativo di creare un file sparso: %s"
229
255
230
#: src/xz/file_io.c:1167
256
#: src/xz/file_io.c:1209
231
#, c-format
257
#, c-format
232
msgid "%s: Read error: %s"
258
msgid "%s: Read error: %s"
233
msgstr "%s: errore di lettura: %s"
259
msgstr "%s: errore di lettura: %s"
234
260
235
#: src/xz/file_io.c:1191
261
#: src/xz/file_io.c:1239
236
#, c-format
262
#, c-format
237
msgid "%s: Error seeking the file: %s"
263
msgid "%s: Error seeking the file: %s"
238
msgstr "%s: errore nel cercare il file: %s"
264
msgstr "%s: errore nel cercare il file: %s"
239
265
240
#: src/xz/file_io.c:1201
266
#: src/xz/file_io.c:1263
241
#, c-format
267
#, c-format
242
msgid "%s: Unexpected end of file"
268
msgid "%s: Unexpected end of file"
243
msgstr "%s: fine del file inaspettata"
269
msgstr "%s: fine del file inaspettata"
244
270
245
#: src/xz/file_io.c:1260
271
#: src/xz/file_io.c:1322
246
#, c-format
272
#, c-format
247
msgid "%s: Write error: %s"
273
msgid "%s: Write error: %s"
248
msgstr "%s: errore di scrittura: %s"
274
msgstr "%s: errore di scrittura: %s"
249
275
250
#: src/xz/hardware.c:137
276
#: src/xz/hardware.c:238
251
msgid "Disabled"
277
msgid "Disabled"
252
msgstr "Disabilitato"
278
msgstr "Disabilitato"
253
279
254
#. TRANSLATORS: Test with "xz --info-memory" to see if
280
#: src/xz/hardware.c:269
255
#. the alignment looks nice.
281
#, fuzzy
256
#: src/xz/hardware.c:156
282
#| msgid "Total amount of physical memory (RAM): "
257
msgid "Total amount of physical memory (RAM): "
283
msgid "Amount of physical memory (RAM):"
258
msgstr "Quantità totale di memoria fisica (RAM):     "
284
msgstr "Quantità totale di memoria fisica (RAM):     "
259
285
260
#: src/xz/hardware.c:158
286
#: src/xz/hardware.c:270
261
msgid "Memory usage limit for compression:    "
287
msgid "Number of processor threads:"
262
msgstr "Limite utilizzo memoria per la compressione: "
288
msgstr ""
263
289
264
#: src/xz/hardware.c:160
290
#: src/xz/hardware.c:271
265
msgid "Memory usage limit for decompression:  "
291
msgid "Compression:"
292
msgstr ""
293
294
#: src/xz/hardware.c:272
295
msgid "Decompression:"
296
msgstr ""
297
298
#: src/xz/hardware.c:273
299
#, fuzzy
300
#| msgid "Memory usage limit for decompression:  "
301
msgid "Multi-threaded decompression:"
266
msgstr "Limite utilizzo memoria per l'estrazione:    "
302
msgstr "Limite utilizzo memoria per l'estrazione:    "
267
303
304
#: src/xz/hardware.c:274
305
msgid "Default for -T0:"
306
msgstr ""
307
308
#: src/xz/hardware.c:292
309
msgid "Hardware information:"
310
msgstr ""
311
312
#: src/xz/hardware.c:299
313
#, fuzzy
314
#| msgid "Memory usage limit reached"
315
msgid "Memory usage limits:"
316
msgstr "Limite di utilizzo della memoria raggiunto"
317
318
#: src/xz/list.c:68
319
msgid "Streams:"
320
msgstr ""
321
322
#: src/xz/list.c:69
323
msgid "Blocks:"
324
msgstr ""
325
326
#: src/xz/list.c:70
327
#, fuzzy
328
#| msgid "  Compressed size:    %s\n"
329
msgid "Compressed size:"
330
msgstr "  Dim. compresso:       %s\n"
331
332
#: src/xz/list.c:71
333
#, fuzzy
334
#| msgid "  Uncompressed size:  %s\n"
335
msgid "Uncompressed size:"
336
msgstr "  Dim. estratto:        %s\n"
337
338
#: src/xz/list.c:72
339
msgid "Ratio:"
340
msgstr ""
341
342
#: src/xz/list.c:73
343
msgid "Check:"
344
msgstr ""
345
346
#: src/xz/list.c:74
347
#, fuzzy
348
#| msgid "  Stream padding:     %s\n"
349
msgid "Stream Padding:"
350
msgstr "  Padding dello stream: %s\n"
351
352
#: src/xz/list.c:75
353
#, fuzzy
354
#| msgid "  Memory needed:      %s MiB\n"
355
msgid "Memory needed:"
356
msgstr "  Memoria necessaria:   %s MiB\n"
357
358
#: src/xz/list.c:76
359
#, fuzzy
360
#| msgid "  Sizes in headers:   %s\n"
361
msgid "Sizes in headers:"
362
msgstr "  Dim. negli header:    %s\n"
363
364
#: src/xz/list.c:79
365
#, fuzzy
366
#| msgid "  Number of files:    %s\n"
367
msgid "Number of files:"
368
msgstr "  Numero di file:       %s\n"
369
370
#: src/xz/list.c:122
371
msgid "Stream"
372
msgstr ""
373
374
#: src/xz/list.c:123
375
msgid "Block"
376
msgstr ""
377
378
#: src/xz/list.c:124
379
msgid "Blocks"
380
msgstr ""
381
382
#: src/xz/list.c:125
383
msgid "CompOffset"
384
msgstr ""
385
386
#: src/xz/list.c:126
387
msgid "UncompOffset"
388
msgstr ""
389
390
#: src/xz/list.c:127
391
msgid "CompSize"
392
msgstr ""
393
394
#: src/xz/list.c:128
395
msgid "UncompSize"
396
msgstr ""
397
398
#: src/xz/list.c:129
399
#, fuzzy
400
#| msgid "Totals:"
401
msgid "TotalSize"
402
msgstr "Totali:"
403
404
#: src/xz/list.c:130
405
msgid "Ratio"
406
msgstr ""
407
408
#: src/xz/list.c:131
409
msgid "Check"
410
msgstr ""
411
412
#: src/xz/list.c:132
413
msgid "CheckVal"
414
msgstr ""
415
416
#: src/xz/list.c:133
417
msgid "Padding"
418
msgstr ""
419
420
#: src/xz/list.c:134
421
msgid "Header"
422
msgstr ""
423
424
#: src/xz/list.c:135
425
msgid "Flags"
426
msgstr ""
427
428
#: src/xz/list.c:136
429
msgid "MemUsage"
430
msgstr ""
431
432
#: src/xz/list.c:137
433
msgid "Filters"
434
msgstr ""
435
268
#. TRANSLATORS: Indicates that there is no integrity check.
436
#. TRANSLATORS: Indicates that there is no integrity check.
269
#. This string is used in tables, so the width must not
437
#. This string is used in tables. In older xz version this
270
#. exceed ten columns with a fixed-width font.
438
#. string was limited to ten columns in a fixed-width font, but
271
#: src/xz/list.c:65
439
#. nowadays there is no strict length restriction anymore.
440
#: src/xz/list.c:169
272
msgid "None"
441
msgid "None"
273
msgstr "Nessuno"
442
msgstr "Nessuno"
274
443
275
#. TRANSLATORS: Indicates that integrity check name is not known,
444
#. TRANSLATORS: Indicates that integrity check name is not known,
276
#. but the Check ID is known (here 2). This and other "Unknown-N"
445
#. but the Check ID is known (here 2). In older xz version these
277
#. strings are used in tables, so the width must not exceed ten
446
#. strings were limited to ten columns in a fixed-width font, but
278
#. columns with a fixed-width font. It's OK to omit the dash if
447
#. nowadays there is no strict length restriction anymore.
279
#. you need space for one extra letter, but don't use spaces.
448
#: src/xz/list.c:175
280
#: src/xz/list.c:72
281
msgid "Unknown-2"
449
msgid "Unknown-2"
282
msgstr "Sconosc2"
450
msgstr "Sconosc2"
283
451
284
#: src/xz/list.c:73
452
#: src/xz/list.c:176
285
msgid "Unknown-3"
453
msgid "Unknown-3"
286
msgstr "Sconosc3"
454
msgstr "Sconosc3"
287
455
288
#: src/xz/list.c:75
456
#: src/xz/list.c:178
289
msgid "Unknown-5"
457
msgid "Unknown-5"
290
msgstr "Sconosc5"
458
msgstr "Sconosc5"
291
459
292
#: src/xz/list.c:76
460
#: src/xz/list.c:179
293
msgid "Unknown-6"
461
msgid "Unknown-6"
294
msgstr "Sconosc6"
462
msgstr "Sconosc6"
295
463
296
#: src/xz/list.c:77
464
#: src/xz/list.c:180
297
msgid "Unknown-7"
465
msgid "Unknown-7"
298
msgstr "Sconosc7"
466
msgstr "Sconosc7"
299
467
300
#: src/xz/list.c:78
468
#: src/xz/list.c:181
301
msgid "Unknown-8"
469
msgid "Unknown-8"
302
msgstr "Sconosc8"
470
msgstr "Sconosc8"
303
471
304
#: src/xz/list.c:79
472
#: src/xz/list.c:182
305
msgid "Unknown-9"
473
msgid "Unknown-9"
306
msgstr "Sconosc9"
474
msgstr "Sconosc9"
307
475
308
#: src/xz/list.c:81
476
#: src/xz/list.c:184
309
msgid "Unknown-11"
477
msgid "Unknown-11"
310
msgstr "Sconosc11"
478
msgstr "Sconosc11"
311
479
312
#: src/xz/list.c:82
480
#: src/xz/list.c:185
313
msgid "Unknown-12"
481
msgid "Unknown-12"
314
msgstr "Sconosc12"
482
msgstr "Sconosc12"
315
483
316
#: src/xz/list.c:83
484
#: src/xz/list.c:186
317
msgid "Unknown-13"
485
msgid "Unknown-13"
318
msgstr "Sconosc13"
486
msgstr "Sconosc13"
319
487
320
#: src/xz/list.c:84
488
#: src/xz/list.c:187
321
msgid "Unknown-14"
489
msgid "Unknown-14"
322
msgstr "Sconosc14"
490
msgstr "Sconosc14"
323
491
324
#: src/xz/list.c:85
492
#: src/xz/list.c:188
325
msgid "Unknown-15"
493
msgid "Unknown-15"
326
msgstr "Sconosc15"
494
msgstr "Sconosc15"
327
495
328
#: src/xz/list.c:153
496
#: src/xz/list.c:351
329
#, c-format
497
#, c-format
330
msgid "%s: File is empty"
498
msgid "%s: File is empty"
331
msgstr "%s: il file è vuoto"
499
msgstr "%s: il file è vuoto"
332
500
333
#: src/xz/list.c:158
501
#: src/xz/list.c:356
334
#, c-format
502
#, c-format
335
msgid "%s: Too small to be a valid .xz file"
503
msgid "%s: Too small to be a valid .xz file"
336
msgstr "%s: troppo piccolo per essere un file .xz valido"
504
msgstr "%s: troppo piccolo per essere un file .xz valido"
Lines 339-463 Link Here
339
#. to Ratio, the columns are right aligned. Check and Filename
507
#. to Ratio, the columns are right aligned. Check and Filename
340
#. are left aligned. If you need longer words, it's OK to
508
#. are left aligned. If you need longer words, it's OK to
341
#. use two lines here. Test with "xz -l foo.xz".
509
#. use two lines here. Test with "xz -l foo.xz".
342
#: src/xz/list.c:677
510
#: src/xz/list.c:730
343
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
511
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
344
msgstr " Strm  Blocc.    Compresso     Estratto  Rapp.  Contr   Nome file"
512
msgstr " Strm  Blocc.    Compresso     Estratto  Rapp.  Contr   Nome file"
345
513
346
#: src/xz/list.c:717
514
#: src/xz/list.c:1025 src/xz/list.c:1203
347
#, c-format
348
msgid "  Streams:            %s\n"
349
msgstr "  Stream:               %s\n"
350
351
#: src/xz/list.c:719
352
#, c-format
353
msgid "  Blocks:             %s\n"
354
msgstr "  Blocchi:              %s\n"
355
356
#: src/xz/list.c:721
357
#, c-format
358
msgid "  Compressed size:    %s\n"
359
msgstr "  Dim. compresso:       %s\n"
360
361
#: src/xz/list.c:724
362
#, c-format
363
msgid "  Uncompressed size:  %s\n"
364
msgstr "  Dim. estratto:        %s\n"
365
366
#: src/xz/list.c:727
367
#, c-format
368
msgid "  Ratio:              %s\n"
369
msgstr "  Rapporto:             %s\n"
370
371
#: src/xz/list.c:729
372
#, c-format
373
msgid "  Check:              %s\n"
374
msgstr "  Controllo:            %s\n"
375
376
#: src/xz/list.c:730
377
#, c-format
378
msgid "  Stream padding:     %s\n"
379
msgstr "  Padding dello stream: %s\n"
380
381
#. TRANSLATORS: The second line is column headings. All except
382
#. Check are right aligned; Check is left aligned. Test with
383
#. "xz -lv foo.xz".
384
#: src/xz/list.c:758
385
msgid ""
386
"  Streams:\n"
387
"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
388
msgstr ""
389
"Stream:\n"
390
"    Stream    Blocc.    Offset comp.    Offset estr.      Dim. comp.   Dim. estratto  Rapp.  Contr      Padding"
391
392
#. TRANSLATORS: The second line is column headings. All
393
#. except Check are right aligned; Check is left aligned.
394
#: src/xz/list.c:813
395
#, c-format
396
msgid ""
397
"  Blocks:\n"
398
"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
399
msgstr ""
400
"  Blocchi:\n"
401
"    Stream    Blocc.    Offset comp. Offset estratto       Dim. tot.   Dim. estratto  Rapp.  Contr"
402
403
#. TRANSLATORS: These are additional column headings
404
#. for the most verbose listing mode. CheckVal
405
#. (Check value), Flags, and Filters are left aligned.
406
#. Header (Block Header Size), CompSize, and MemUsage
407
#. are right aligned. %*s is replaced with 0-120
408
#. spaces to make the CheckVal column wide enough.
409
#. Test with "xz -lvv foo.xz".
410
#: src/xz/list.c:825
411
#, c-format
412
msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
413
msgstr "      Val.cont %*s Header  Flag       Dim.compr.    Uso mem.  Filtri"
414
415
#: src/xz/list.c:903 src/xz/list.c:1078
416
#, c-format
417
msgid "  Memory needed:      %s MiB\n"
418
msgstr "  Memoria necessaria:   %s MiB\n"
419
420
#: src/xz/list.c:905 src/xz/list.c:1080
421
#, c-format
422
msgid "  Sizes in headers:   %s\n"
423
msgstr "  Dim. negli header:    %s\n"
424
425
#: src/xz/list.c:906 src/xz/list.c:1081
426
msgid "Yes"
515
msgid "Yes"
427
msgstr "Sì"
516
msgstr "Sì"
428
517
429
#: src/xz/list.c:906 src/xz/list.c:1081
518
#: src/xz/list.c:1025 src/xz/list.c:1203
430
msgid "No"
519
msgid "No"
431
msgstr "No"
520
msgstr "No"
432
521
433
#: src/xz/list.c:907 src/xz/list.c:1082
522
#: src/xz/list.c:1027 src/xz/list.c:1205
434
#, c-format
523
#, c-format
435
msgid "  Minimum XZ Utils version: %s\n"
524
msgid "  Minimum XZ Utils version: %s\n"
436
msgstr "  Versione \"XZ Utils\" minima: %s\n"
525
msgstr "  Versione \"XZ Utils\" minima: %s\n"
437
526
438
#. TRANSLATORS: %s is an integer. Only the plural form of this
527
#. TRANSLATORS: %s is an integer. Only the plural form of this
439
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
528
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
440
#: src/xz/list.c:1057
529
#: src/xz/list.c:1178
441
#, c-format
530
#, c-format
442
msgid "%s file\n"
531
msgid "%s file\n"
443
msgid_plural "%s files\n"
532
msgid_plural "%s files\n"
444
msgstr[0] "%s file\n"
533
msgstr[0] "%s file\n"
445
msgstr[1] "%s file\n"
534
msgstr[1] "%s file\n"
446
535
447
#: src/xz/list.c:1070
536
#: src/xz/list.c:1191
448
msgid "Totals:"
537
msgid "Totals:"
449
msgstr "Totali:"
538
msgstr "Totali:"
450
539
451
#: src/xz/list.c:1071
540
#: src/xz/list.c:1269
452
#, c-format
453
msgid "  Number of files:    %s\n"
454
msgstr "  Numero di file:       %s\n"
455
456
#: src/xz/list.c:1146
457
msgid "--list works only on .xz files (--format=xz or --format=auto)"
541
msgid "--list works only on .xz files (--format=xz or --format=auto)"
458
msgstr "--list funziona solamente con file .xz (--format=xz o --format=auto)"
542
msgstr "--list funziona solamente con file .xz (--format=xz o --format=auto)"
459
543
460
#: src/xz/list.c:1152
544
#: src/xz/list.c:1275
461
msgid "--list does not support reading from standard input"
545
msgid "--list does not support reading from standard input"
462
msgstr "--list non è in grado di leggere dallo standard input"
546
msgstr "--list non è in grado di leggere dallo standard input"
463
547
Lines 476-486 Link Here
476
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
560
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
477
msgstr "%s: nessun carattere trovato durante la lettura dei nomi dei file; forse si intendeva usare \"--files0\" invece di \"--files\"?"
561
msgstr "%s: nessun carattere trovato durante la lettura dei nomi dei file; forse si intendeva usare \"--files0\" invece di \"--files\"?"
478
562
479
#: src/xz/main.c:174
563
#: src/xz/main.c:188
480
msgid "Compression and decompression with --robot are not supported yet."
564
msgid "Compression and decompression with --robot are not supported yet."
481
msgstr "La compressione e l'estrazione con --robot non sono ancora supportate."
565
msgstr "La compressione e l'estrazione con --robot non sono ancora supportate."
482
566
483
#: src/xz/main.c:252
567
#: src/xz/main.c:266
484
msgid "Cannot read data from standard input when reading filenames from standard input"
568
msgid "Cannot read data from standard input when reading filenames from standard input"
485
msgstr "Impossibile leggere i dati dallo standard input durante la lettura dei nomi dei file dallo standard input"
569
msgstr "Impossibile leggere i dati dallo standard input durante la lettura dei nomi dei file dallo standard input"
486
570
Lines 488-555 Link Here
488
#. of the line in messages. Usually it becomes "xz: ".
572
#. of the line in messages. Usually it becomes "xz: ".
489
#. This is a translatable string because French needs
573
#. This is a translatable string because French needs
490
#. a space before a colon.
574
#. a space before a colon.
491
#: src/xz/message.c:728
575
#: src/xz/message.c:725
492
#, c-format
576
#, c-format
493
msgid "%s: "
577
msgid "%s: "
494
msgstr "%s: "
578
msgstr "%s: "
495
579
496
#: src/xz/message.c:791 src/xz/message.c:841
580
#: src/xz/message.c:797 src/xz/message.c:856
497
msgid "Internal error (bug)"
581
msgid "Internal error (bug)"
498
msgstr "Errore interno (bug)"
582
msgstr "Errore interno (bug)"
499
583
500
#: src/xz/message.c:798
584
#: src/xz/message.c:804
501
msgid "Cannot establish signal handlers"
585
msgid "Cannot establish signal handlers"
502
msgstr "Impossibile stabilire i gestori dei segnali"
586
msgstr "Impossibile stabilire i gestori dei segnali"
503
587
504
#: src/xz/message.c:807
588
#: src/xz/message.c:813
505
msgid "No integrity check; not verifying file integrity"
589
msgid "No integrity check; not verifying file integrity"
506
msgstr "Nessun controllo d'integrità; l'integrità del file non viene verificata"
590
msgstr "Nessun controllo d'integrità; l'integrità del file non viene verificata"
507
591
508
#: src/xz/message.c:810
592
#: src/xz/message.c:816
509
msgid "Unsupported type of integrity check; not verifying file integrity"
593
msgid "Unsupported type of integrity check; not verifying file integrity"
510
msgstr "Tipo di controllo di integrità non supportato; l'integrità del file non viene verificata"
594
msgstr "Tipo di controllo di integrità non supportato; l'integrità del file non viene verificata"
511
595
512
#: src/xz/message.c:817
596
#: src/xz/message.c:823
513
msgid "Memory usage limit reached"
597
msgid "Memory usage limit reached"
514
msgstr "Limite di utilizzo della memoria raggiunto"
598
msgstr "Limite di utilizzo della memoria raggiunto"
515
599
516
#: src/xz/message.c:820
600
#: src/xz/message.c:826
517
msgid "File format not recognized"
601
msgid "File format not recognized"
518
msgstr "Formato di file non riconosciuto"
602
msgstr "Formato di file non riconosciuto"
519
603
520
#: src/xz/message.c:823
604
#: src/xz/message.c:829
521
msgid "Unsupported options"
605
msgid "Unsupported options"
522
msgstr "Opzioni non supportate"
606
msgstr "Opzioni non supportate"
523
607
524
#: src/xz/message.c:826
608
#: src/xz/message.c:832
525
msgid "Compressed data is corrupt"
609
msgid "Compressed data is corrupt"
526
msgstr "I dati compressi sono danneggiati"
610
msgstr "I dati compressi sono danneggiati"
527
611
528
#: src/xz/message.c:829
612
#: src/xz/message.c:835
529
msgid "Unexpected end of input"
613
msgid "Unexpected end of input"
530
msgstr "Fine dell'input non attesa"
614
msgstr "Fine dell'input non attesa"
531
615
532
#: src/xz/message.c:862
616
#: src/xz/message.c:877
533
#, c-format
617
#, c-format
534
msgid "%s MiB of memory is required. The limiter is disabled."
618
msgid "%s MiB of memory is required. The limiter is disabled."
535
msgstr "%s MiB di memoria sono richiesti. Il limite è disabilitato."
619
msgstr "%s MiB di memoria sono richiesti. Il limite è disabilitato."
536
620
537
#: src/xz/message.c:890
621
#: src/xz/message.c:905
538
#, c-format
622
#, c-format
539
msgid "%s MiB of memory is required. The limit is %s."
623
msgid "%s MiB of memory is required. The limit is %s."
540
msgstr "%s MiB di memoria sono richiesti. Il limite è %s."
624
msgstr "%s MiB di memoria sono richiesti. Il limite è %s."
541
625
542
#: src/xz/message.c:1057
626
#: src/xz/message.c:924
543
#, c-format
627
#, c-format
544
msgid "%s: Filter chain: %s\n"
628
msgid "%s: Filter chain: %s\n"
545
msgstr "%s: catena di filtri: %s\n"
629
msgstr "%s: catena di filtri: %s\n"
546
630
547
#: src/xz/message.c:1067
631
#: src/xz/message.c:935
548
#, c-format
632
#, c-format
549
msgid "Try `%s --help' for more information."
633
msgid "Try `%s --help' for more information."
550
msgstr "Provare \"%s --help\" per maggiori informazioni."
634
msgstr "Provare \"%s --help\" per maggiori informazioni."
551
635
552
#: src/xz/message.c:1093
636
#: src/xz/message.c:961
553
#, c-format
637
#, c-format
554
msgid ""
638
msgid ""
555
"Usage: %s [OPTION]... [FILE]...\n"
639
"Usage: %s [OPTION]... [FILE]...\n"
Lines 560-574 Link Here
560
"Comprime o estrae i FILE nel formato .xz.\n"
644
"Comprime o estrae i FILE nel formato .xz.\n"
561
"\n"
645
"\n"
562
646
563
#: src/xz/message.c:1100
647
#: src/xz/message.c:968
564
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
648
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
565
msgstr "Gli argomenti obbligatori per le opzioni lunghe lo sono anche per quelle brevi.\n"
649
msgstr "Gli argomenti obbligatori per le opzioni lunghe lo sono anche per quelle brevi.\n"
566
650
567
#: src/xz/message.c:1104
651
#: src/xz/message.c:972
568
msgid " Operation mode:\n"
652
msgid " Operation mode:\n"
569
msgstr " Modalità di operazione:\n"
653
msgstr " Modalità di operazione:\n"
570
654
571
#: src/xz/message.c:1107
655
#: src/xz/message.c:975
572
msgid ""
656
msgid ""
573
"  -z, --compress      force compression\n"
657
"  -z, --compress      force compression\n"
574
"  -d, --decompress    force decompression\n"
658
"  -d, --decompress    force decompression\n"
Lines 580-586 Link Here
580
"  -t, --test          Verifica l'integrità dei file compressi\n"
664
"  -t, --test          Verifica l'integrità dei file compressi\n"
581
"  -l, --list          Elenca informazioni sui file .xz"
665
"  -l, --list          Elenca informazioni sui file .xz"
582
666
583
#: src/xz/message.c:1113
667
#: src/xz/message.c:981
584
msgid ""
668
msgid ""
585
"\n"
669
"\n"
586
" Operation modifiers:\n"
670
" Operation modifiers:\n"
Lines 588-594 Link Here
588
"\n"
672
"\n"
589
" Modificatori di operazioni:\n"
673
" Modificatori di operazioni:\n"
590
674
591
#: src/xz/message.c:1116
675
#: src/xz/message.c:984
592
msgid ""
676
msgid ""
593
"  -k, --keep          keep (don't delete) input files\n"
677
"  -k, --keep          keep (don't delete) input files\n"
594
"  -f, --force         force overwrite of output file and (de)compress links\n"
678
"  -f, --force         force overwrite of output file and (de)compress links\n"
Lines 599-605 Link Here
599
"                      collegamenti\n"
683
"                      collegamenti\n"
600
"  -c, --stdout        Scrive sullo standard output e non elimina i file di input"
684
"  -c, --stdout        Scrive sullo standard output e non elimina i file di input"
601
685
602
#: src/xz/message.c:1122
686
#: src/xz/message.c:993
603
msgid ""
687
msgid ""
604
"      --single-stream decompress only the first stream, and silently\n"
688
"      --single-stream decompress only the first stream, and silently\n"
605
"                      ignore possible remaining input data"
689
"                      ignore possible remaining input data"
Lines 607-613 Link Here
607
"      --single-stream Decomprime solamente il primo stream e ignora\n"
691
"      --single-stream Decomprime solamente il primo stream e ignora\n"
608
"                      silenziosamente i restanti dati di input"
692
"                      silenziosamente i restanti dati di input"
609
693
610
#: src/xz/message.c:1125
694
#: src/xz/message.c:996
611
msgid ""
695
msgid ""
612
"      --no-sparse     do not create sparse files when decompressing\n"
696
"      --no-sparse     do not create sparse files when decompressing\n"
613
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
697
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
Lines 624-630 Link Here
624
"                      di newline\n"
708
"                      di newline\n"
625
"      --files0=[FILE] Come --files ma usa il carattere null come terminatore"
709
"      --files0=[FILE] Come --files ma usa il carattere null come terminatore"
626
710
627
#: src/xz/message.c:1134
711
#: src/xz/message.c:1005
628
msgid ""
712
msgid ""
629
"\n"
713
"\n"
630
" Basic file format and compression options:\n"
714
" Basic file format and compression options:\n"
Lines 632-641 Link Here
632
"\n"
716
"\n"
633
" Formato file di base e opzioni di compressione:\n"
717
" Formato file di base e opzioni di compressione:\n"
634
718
635
#: src/xz/message.c:1136
719
#: src/xz/message.c:1007
720
#, fuzzy
721
#| msgid ""
722
#| "  -F, --format=FMT    file format to encode or decode; possible values are\n"
723
#| "                      `auto' (default), `xz', `lzma', and `raw'\n"
724
#| "  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
725
#| "                      `crc32', `crc64' (default), or `sha256'"
636
msgid ""
726
msgid ""
637
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
727
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
638
"                      `auto' (default), `xz', `lzma', and `raw'\n"
728
"                      `auto' (default), `xz', `lzma', `lzip', and `raw'\n"
639
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
729
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
640
"                      `crc32', `crc64' (default), or `sha256'"
730
"                      `crc32', `crc64' (default), or `sha256'"
641
msgstr ""
731
msgstr ""
Lines 644-654 Link Here
644
"  -C, --check=CHECK   Tipo di verifica integrità: \"none\" (usare con attenzione),\n"
734
"  -C, --check=CHECK   Tipo di verifica integrità: \"none\" (usare con attenzione),\n"
645
"                      \"crc32\", \"crc64\" (predefinito) o \"sha256\""
735
"                      \"crc32\", \"crc64\" (predefinito) o \"sha256\""
646
736
647
#: src/xz/message.c:1141
737
#: src/xz/message.c:1012
648
msgid "      --ignore-check  don't verify the integrity check when decompressing"
738
msgid "      --ignore-check  don't verify the integrity check when decompressing"
649
msgstr "      --ignore-check  Non verifica il codice di integrità quando decomprime"
739
msgstr "      --ignore-check  Non verifica il codice di integrità quando decomprime"
650
740
651
#: src/xz/message.c:1145
741
#: src/xz/message.c:1016
652
msgid ""
742
msgid ""
653
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
743
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
654
"                      decompressor memory usage into account before using 7-9!"
744
"                      decompressor memory usage into account before using 7-9!"
Lines 657-663 Link Here
657
"                      l'utilizzo di memoria per comprimere ed estrarre prima\n"
747
"                      l'utilizzo di memoria per comprimere ed estrarre prima\n"
658
"                      di usare 7-9"
748
"                      di usare 7-9"
659
749
660
#: src/xz/message.c:1149
750
#: src/xz/message.c:1020
661
msgid ""
751
msgid ""
662
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
752
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
663
"                      does not affect decompressor memory requirements"
753
"                      does not affect decompressor memory requirements"
Lines 666-672 Link Here
666
"                      utilizzando più tempo di CPU; non cambia i requisiti di\n"
756
"                      utilizzando più tempo di CPU; non cambia i requisiti di\n"
667
"                      memoria in fase di estrazione"
757
"                      memoria in fase di estrazione"
668
758
669
#: src/xz/message.c:1153
759
#: src/xz/message.c:1024
670
msgid ""
760
msgid ""
671
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
761
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
672
"                      to use as many threads as there are processor cores"
762
"                      to use as many threads as there are processor cores"
Lines 675-681 Link Here
675
"                      impostare a 0 per usare tanti thread quanti core la CPU\n"
765
"                      impostare a 0 per usare tanti thread quanti core la CPU\n"
676
"                      ha a disposizione"
766
"                      ha a disposizione"
677
767
678
#: src/xz/message.c:1158
768
#: src/xz/message.c:1029
679
msgid ""
769
msgid ""
680
"      --block-size=SIZE\n"
770
"      --block-size=SIZE\n"
681
"                      start a new .xz block after every SIZE bytes of input;\n"
771
"                      start a new .xz block after every SIZE bytes of input;\n"
Lines 686-692 Link Here
686
"                      usare per impostare la dimensione del blocco durante la\n"
776
"                      usare per impostare la dimensione del blocco durante la\n"
687
"                      compressione con thread"
777
"                      compressione con thread"
688
778
689
#: src/xz/message.c:1162
779
#: src/xz/message.c:1033
690
msgid ""
780
msgid ""
691
"      --block-list=SIZES\n"
781
"      --block-list=SIZES\n"
692
"                      start a new .xz block after the given comma-separated\n"
782
"                      start a new .xz block after the given comma-separated\n"
Lines 696-702 Link Here
696
"                      Avvia un nuovo blocco .xz dopo gli intervalli, sperati\n"
786
"                      Avvia un nuovo blocco .xz dopo gli intervalli, sperati\n"
697
"                      da virgole, di dati non compressi"
787
"                      da virgole, di dati non compressi"
698
788
699
#: src/xz/message.c:1166
789
#: src/xz/message.c:1037
700
msgid ""
790
msgid ""
701
"      --flush-timeout=TIMEOUT\n"
791
"      --flush-timeout=TIMEOUT\n"
702
"                      when compressing, if more than TIMEOUT milliseconds has\n"
792
"                      when compressing, if more than TIMEOUT milliseconds has\n"
Lines 709-722 Link Here
709
"                      ulteriore input risulterebbe bloccata, viene eseguito il\n"
799
"                      ulteriore input risulterebbe bloccata, viene eseguito il\n"
710
"                      flush di tutti i dati pendenti"
800
"                      flush di tutti i dati pendenti"
711
801
712
#: src/xz/message.c:1172
802
#: src/xz/message.c:1043
713
#, no-c-format
803
#, fuzzy, no-c-format
804
#| msgid ""
805
#| "      --memlimit-compress=LIMIT\n"
806
#| "      --memlimit-decompress=LIMIT\n"
807
#| "  -M, --memlimit=LIMIT\n"
808
#| "                      set memory usage limit for compression, decompression,\n"
809
#| "                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
714
msgid ""
810
msgid ""
715
"      --memlimit-compress=LIMIT\n"
811
"      --memlimit-compress=LIMIT\n"
716
"      --memlimit-decompress=LIMIT\n"
812
"      --memlimit-decompress=LIMIT\n"
813
"      --memlimit-mt-decompress=LIMIT\n"
717
"  -M, --memlimit=LIMIT\n"
814
"  -M, --memlimit=LIMIT\n"
718
"                      set memory usage limit for compression, decompression,\n"
815
"                      set memory usage limit for compression, decompression,\n"
719
"                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
816
"                      threaded decompression, or all of these; LIMIT is in\n"
817
"                      bytes, % of RAM, or 0 for defaults"
720
msgstr ""
818
msgstr ""
721
"      --memlimit-compress=LIMIT\n"
819
"      --memlimit-compress=LIMIT\n"
722
"      --memlimit-decompress=LIMIT\n"
820
"      --memlimit-decompress=LIMIT\n"
Lines 725-731 Link Here
725
"                      compressione, l'estrazione o entrambe; LIMIT è in byte,\n"
823
"                      compressione, l'estrazione o entrambe; LIMIT è in byte,\n"
726
"                      % della memoria RAM oppure 0 per il valore predefinito"
824
"                      % della memoria RAM oppure 0 per il valore predefinito"
727
825
728
#: src/xz/message.c:1179
826
#: src/xz/message.c:1052
729
msgid ""
827
msgid ""
730
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
828
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
731
"                      give an error instead of adjusting the settings downwards"
829
"                      give an error instead of adjusting the settings downwards"
Lines 734-740 Link Here
734
"                      utilizzo della memoria, lancia un errore invece di\n"
832
"                      utilizzo della memoria, lancia un errore invece di\n"
735
"                      utilizzare valori più piccoli"
833
"                      utilizzare valori più piccoli"
736
834
737
#: src/xz/message.c:1185
835
#: src/xz/message.c:1058
738
msgid ""
836
msgid ""
739
"\n"
837
"\n"
740
" Custom filter chain for compression (alternative for using presets):"
838
" Custom filter chain for compression (alternative for using presets):"
Lines 743-749 Link Here
743
" Catena di filtri personalizzati per la compressione (alternative per\n"
841
" Catena di filtri personalizzati per la compressione (alternative per\n"
744
" l'utilizzo di preset):"
842
" l'utilizzo di preset):"
745
843
746
#: src/xz/message.c:1194
844
#: src/xz/message.c:1067
747
msgid ""
845
msgid ""
748
"\n"
846
"\n"
749
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
847
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
Lines 776-789 Link Here
776
"                        depth=NUM  Profondità massima di ricerca; 0=automatica\n"
874
"                        depth=NUM  Profondità massima di ricerca; 0=automatica\n"
777
"                                   (predefinito)"
875
"                                   (predefinito)"
778
876
779
#: src/xz/message.c:1209
877
#: src/xz/message.c:1082
878
#, fuzzy
879
#| msgid ""
880
#| "\n"
881
#| "  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
882
#| "  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
883
#| "  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
884
#| "  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
885
#| "  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
886
#| "  --sparc[=OPTS]      SPARC BCJ filter\n"
887
#| "                      Valid OPTS for all BCJ filters:\n"
888
#| "                        start=NUM  start offset for conversions (default=0)"
780
msgid ""
889
msgid ""
781
"\n"
890
"\n"
782
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
891
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
892
"  --arm[=OPTS]        ARM BCJ filter\n"
893
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter\n"
894
"  --arm64[=OPTS]      ARM64 BCJ filter\n"
783
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
895
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
784
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
896
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
785
"  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
786
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
787
"  --sparc[=OPTS]      SPARC BCJ filter\n"
897
"  --sparc[=OPTS]      SPARC BCJ filter\n"
788
"                      Valid OPTS for all BCJ filters:\n"
898
"                      Valid OPTS for all BCJ filters:\n"
789
"                        start=NUM  start offset for conversions (default=0)"
899
"                        start=NUM  start offset for conversions (default=0)"
Lines 799-805 Link Here
799
"                      start=NUM Offset iniziale per le conversioni\n"
909
"                      start=NUM Offset iniziale per le conversioni\n"
800
"                                (predefinito=0)"
910
"                                (predefinito=0)"
801
911
802
#: src/xz/message.c:1221
912
#: src/xz/message.c:1095
803
msgid ""
913
msgid ""
804
"\n"
914
"\n"
805
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
915
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
Lines 811-817 Link Here
811
"                      dist=NUM   Distanza tra byte sottratti\n"
921
"                      dist=NUM   Distanza tra byte sottratti\n"
812
"                                 gli uni dagli altri (1-256; 1)"
922
"                                 gli uni dagli altri (1-256; 1)"
813
923
814
#: src/xz/message.c:1229
924
#: src/xz/message.c:1103
815
msgid ""
925
msgid ""
816
"\n"
926
"\n"
817
" Other options:\n"
927
" Other options:\n"
Lines 819-825 Link Here
819
"\n"
929
"\n"
820
" Altre opzioni:\n"
930
" Altre opzioni:\n"
821
931
822
#: src/xz/message.c:1232
932
#: src/xz/message.c:1106
823
msgid ""
933
msgid ""
824
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
934
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
825
"  -v, --verbose       be verbose; specify twice for even more verbose"
935
"  -v, --verbose       be verbose; specify twice for even more verbose"
Lines 829-843 Link Here
829
"  -v, --verbose       Output prolisso; specificare due volte per output ancora\n"
939
"  -v, --verbose       Output prolisso; specificare due volte per output ancora\n"
830
"                      più prolisso"
940
"                      più prolisso"
831
941
832
#: src/xz/message.c:1237
942
#: src/xz/message.c:1111
833
msgid "  -Q, --no-warn       make warnings not affect the exit status"
943
msgid "  -Q, --no-warn       make warnings not affect the exit status"
834
msgstr "  -Q, --no-warn       Gli avvisi non influenzano lo stato d'uscita"
944
msgstr "  -Q, --no-warn       Gli avvisi non influenzano lo stato d'uscita"
835
945
836
#: src/xz/message.c:1239
946
#: src/xz/message.c:1113
837
msgid "      --robot         use machine-parsable messages (useful for scripts)"
947
msgid "      --robot         use machine-parsable messages (useful for scripts)"
838
msgstr "      --robot         Usa messaggi analizzabili (utile per gli script)"
948
msgstr "      --robot         Usa messaggi analizzabili (utile per gli script)"
839
949
840
#: src/xz/message.c:1242
950
#: src/xz/message.c:1116
841
msgid ""
951
msgid ""
842
"      --info-memory   display the total amount of RAM and the currently active\n"
952
"      --info-memory   display the total amount of RAM and the currently active\n"
843
"                      memory usage limits, and exit"
953
"                      memory usage limits, and exit"
Lines 845-851 Link Here
845
"      --info-memory   Visualizza la quantità totale di RAM, il limite attuale\n"
955
"      --info-memory   Visualizza la quantità totale di RAM, il limite attuale\n"
846
"                      attivo di utilizzo della memore ed esce"
956
"                      attivo di utilizzo della memore ed esce"
847
957
848
#: src/xz/message.c:1245
958
#: src/xz/message.c:1119
849
msgid ""
959
msgid ""
850
"  -h, --help          display the short help (lists only the basic options)\n"
960
"  -h, --help          display the short help (lists only the basic options)\n"
851
"  -H, --long-help     display this long help and exit"
961
"  -H, --long-help     display this long help and exit"
Lines 853-859 Link Here
853
"  -h, --help          Stampa l'aiuto breve (elenca solo le opzioni di base)\n"
963
"  -h, --help          Stampa l'aiuto breve (elenca solo le opzioni di base)\n"
854
"  -H, --long-help     Stampa questo lungo aiuto ed esce"
964
"  -H, --long-help     Stampa questo lungo aiuto ed esce"
855
965
856
#: src/xz/message.c:1249
966
#: src/xz/message.c:1123
857
msgid ""
967
msgid ""
858
"  -h, --help          display this short help and exit\n"
968
"  -h, --help          display this short help and exit\n"
859
"  -H, --long-help     display the long help (lists also the advanced options)"
969
"  -H, --long-help     display the long help (lists also the advanced options)"
Lines 861-871 Link Here
861
"  -h, --help          Stampa questo breve aiuto ed esce\n"
971
"  -h, --help          Stampa questo breve aiuto ed esce\n"
862
"  -H, --long-help     Stampa l'aiuto lungo (elenca anche le opzioni avanzate)"
972
"  -H, --long-help     Stampa l'aiuto lungo (elenca anche le opzioni avanzate)"
863
973
864
#: src/xz/message.c:1254
974
#: src/xz/message.c:1128
865
msgid "  -V, --version       display the version number and exit"
975
msgid "  -V, --version       display the version number and exit"
866
msgstr "  -V, --version       Stampa il numero della versione ed esce"
976
msgstr "  -V, --version       Stampa il numero della versione ed esce"
867
977
868
#: src/xz/message.c:1256
978
#: src/xz/message.c:1130
869
msgid ""
979
msgid ""
870
"\n"
980
"\n"
871
"With no FILE, or when FILE is -, read standard input.\n"
981
"With no FILE, or when FILE is -, read standard input.\n"
Lines 877-895 Link Here
877
#. for this package. Please add _another line_ saying
987
#. for this package. Please add _another line_ saying
878
#. "Report translation bugs to <...>\n" with the email or WWW
988
#. "Report translation bugs to <...>\n" with the email or WWW
879
#. address for translation bugs. Thanks.
989
#. address for translation bugs. Thanks.
880
#: src/xz/message.c:1262
990
#: src/xz/message.c:1136
881
#, c-format
991
#, c-format
882
msgid "Report bugs to <%s> (in English or Finnish).\n"
992
msgid "Report bugs to <%s> (in English or Finnish).\n"
883
msgstr ""
993
msgstr ""
884
"Segnalare i bug a <%s> (in inglese o finlandese).\n"
994
"Segnalare i bug a <%s> (in inglese o finlandese).\n"
885
"Segnalare i bug di traduzione a <tp@lists.linux.it>.\n"
995
"Segnalare i bug di traduzione a <tp@lists.linux.it>.\n"
886
996
887
#: src/xz/message.c:1264
997
#: src/xz/message.c:1138
888
#, c-format
998
#, c-format
889
msgid "%s home page: <%s>\n"
999
msgid "%s home page: <%s>\n"
890
msgstr "Sito web di %s: <%s>\n"
1000
msgstr "Sito web di %s: <%s>\n"
891
1001
892
#: src/xz/message.c:1268
1002
#: src/xz/message.c:1142
893
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
1003
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
894
msgstr "Questa è una versione di sviluppo non adatta per utilizzi in produzione."
1004
msgstr "Questa è una versione di sviluppo non adatta per utilizzi in produzione."
895
1005
Lines 917-943 Link Here
917
msgid "The sum of lc and lp must not exceed 4"
1027
msgid "The sum of lc and lp must not exceed 4"
918
msgstr "La somma di lc e lp non deve superare 4"
1028
msgstr "La somma di lc e lp non deve superare 4"
919
1029
920
#: src/xz/options.c:359
1030
#: src/xz/suffix.c:160
921
#, c-format
1031
#, c-format
922
msgid "The selected match finder requires at least nice=%<PRIu32>"
923
msgstr "Lo strumento per cercare corrispondenze selezionato richiede almeno nice=%<PRIu32>"
924
925
#: src/xz/suffix.c:133 src/xz/suffix.c:258
926
#, c-format
927
msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
928
msgstr "%s: con --format=raw, --suffix=.SUF è richiesto a meno che non si scriva sullo stdout"
929
930
#: src/xz/suffix.c:164
931
#, c-format
932
msgid "%s: Filename has an unknown suffix, skipping"
1032
msgid "%s: Filename has an unknown suffix, skipping"
933
msgstr "%s: il nome del file ha un suffisso sconosciuto, viene saltato"
1033
msgstr "%s: il nome del file ha un suffisso sconosciuto, viene saltato"
934
1034
935
#: src/xz/suffix.c:185
1035
#: src/xz/suffix.c:181
936
#, c-format
1036
#, c-format
937
msgid "%s: File already has `%s' suffix, skipping"
1037
msgid "%s: File already has `%s' suffix, skipping"
938
msgstr "%s: il file ha già il suffisso \"%s\", viene saltato"
1038
msgstr "%s: il file ha già il suffisso \"%s\", viene saltato"
939
1039
940
#: src/xz/suffix.c:393
1040
#: src/xz/suffix.c:388
941
#, c-format
1041
#, c-format
942
msgid "%s: Invalid filename suffix"
1042
msgid "%s: Invalid filename suffix"
943
msgstr "%s: suffisso del nome del file non valido"
1043
msgstr "%s: suffisso del nome del file non valido"
Lines 961-975 Link Here
961
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
1061
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
962
msgstr "Il valore dell'opzione \"%s\" deve essere nell'intervallo [%<PRIu64>, %<PRIu64>]"
1062
msgstr "Il valore dell'opzione \"%s\" deve essere nell'intervallo [%<PRIu64>, %<PRIu64>]"
963
1063
964
#: src/xz/util.c:267
1064
#: src/xz/util.c:269
965
msgid "Empty filename, skipping"
966
msgstr "Nome file vuoto, viene saltato"
967
968
#: src/xz/util.c:281
969
msgid "Compressed data cannot be read from a terminal"
1065
msgid "Compressed data cannot be read from a terminal"
970
msgstr "I dati compressi non possono essere letti da un terminale"
1066
msgstr "I dati compressi non possono essere letti da un terminale"
971
1067
972
#: src/xz/util.c:294
1068
#: src/xz/util.c:282
973
msgid "Compressed data cannot be written to a terminal"
1069
msgid "Compressed data cannot be written to a terminal"
974
msgstr "I dati compressi non possono essere scritti ad un terminale"
1070
msgstr "I dati compressi non possono essere scritti ad un terminale"
975
1071
Lines 986-988 Link Here
986
1082
987
#~ msgid "Sandbox was successfully enabled"
1083
#~ msgid "Sandbox was successfully enabled"
988
#~ msgstr "Sandbox abilitata con successo"
1084
#~ msgstr "Sandbox abilitata con successo"
1085
1086
#~ msgid "Memory usage limit for compression:    "
1087
#~ msgstr "Limite utilizzo memoria per la compressione: "
1088
1089
#, c-format
1090
#~ msgid "  Streams:            %s\n"
1091
#~ msgstr "  Stream:               %s\n"
1092
1093
#, c-format
1094
#~ msgid "  Blocks:             %s\n"
1095
#~ msgstr "  Blocchi:              %s\n"
1096
1097
#, c-format
1098
#~ msgid "  Ratio:              %s\n"
1099
#~ msgstr "  Rapporto:             %s\n"
1100
1101
#, c-format
1102
#~ msgid "  Check:              %s\n"
1103
#~ msgstr "  Controllo:            %s\n"
1104
1105
#~ msgid ""
1106
#~ "  Streams:\n"
1107
#~ "    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
1108
#~ msgstr ""
1109
#~ "Stream:\n"
1110
#~ "    Stream    Blocc.    Offset comp.    Offset estr.      Dim. comp.   Dim. estratto  Rapp.  Contr      Padding"
1111
1112
#, c-format
1113
#~ msgid ""
1114
#~ "  Blocks:\n"
1115
#~ "    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
1116
#~ msgstr ""
1117
#~ "  Blocchi:\n"
1118
#~ "    Stream    Blocc.    Offset comp. Offset estratto       Dim. tot.   Dim. estratto  Rapp.  Contr"
1119
1120
#, c-format
1121
#~ msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
1122
#~ msgstr "      Val.cont %*s Header  Flag       Dim.compr.    Uso mem.  Filtri"
1123
1124
#, c-format
1125
#~ msgid "The selected match finder requires at least nice=%<PRIu32>"
1126
#~ msgstr "Lo strumento per cercare corrispondenze selezionato richiede almeno nice=%<PRIu32>"
(-)xz-5.2.5/po/pl.po (-261 / +312 lines)
Lines 1-13 Link Here
1
# Polish translation for xz.
1
# Polish translation for xz.
2
# This file is put in the public domain.
2
# This file is put in the public domain.
3
# Jakub Bogusz <qboosh@pld-linux.org>, 2011-2019.
3
# Jakub Bogusz <qboosh@pld-linux.org>, 2011-2022.
4
#
4
#
5
msgid ""
5
msgid ""
6
msgstr ""
6
msgstr ""
7
"Project-Id-Version: xz 5.2.4\n"
7
"Project-Id-Version: xz 5.4.0-pre1\n"
8
"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
8
"Report-Msgid-Bugs-To: xz@tukaani.org\n"
9
"POT-Creation-Date: 2020-03-17 16:29+0200\n"
9
"POT-Creation-Date: 2023-05-04 22:32+0800\n"
10
"PO-Revision-Date: 2019-03-05 05:30+0100\n"
10
"PO-Revision-Date: 2022-11-10 18:02+0100\n"
11
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
11
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
12
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
12
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
13
"Language: pl\n"
13
"Language: pl\n"
Lines 17-116 Link Here
17
"X-Bugs: Report translation errors to the Language-Team address.\n"
17
"X-Bugs: Report translation errors to the Language-Team address.\n"
18
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19
19
20
#: src/xz/args.c:63
20
#: src/xz/args.c:77
21
#, c-format
21
#, c-format
22
msgid "%s: Invalid argument to --block-list"
22
msgid "%s: Invalid argument to --block-list"
23
msgstr "%s: Błędny argument dla --block-list"
23
msgstr "%s: Błędny argument dla --block-list"
24
24
25
#: src/xz/args.c:73
25
#: src/xz/args.c:87
26
#, c-format
26
#, c-format
27
msgid "%s: Too many arguments to --block-list"
27
msgid "%s: Too many arguments to --block-list"
28
msgstr "%s: Zbyt dużo argumentów dla --block-list"
28
msgstr "%s: Zbyt dużo argumentów dla --block-list"
29
29
30
#: src/xz/args.c:102
30
#: src/xz/args.c:116
31
msgid "0 can only be used as the last element in --block-list"
31
msgid "0 can only be used as the last element in --block-list"
32
msgstr "0 w --block-list może być użyte wyłącznie jako ostatni element"
32
msgstr "0 w --block-list może być użyte wyłącznie jako ostatni element"
33
33
34
#: src/xz/args.c:406
34
#: src/xz/args.c:451
35
#, c-format
35
#, c-format
36
msgid "%s: Unknown file format type"
36
msgid "%s: Unknown file format type"
37
msgstr "%s: Nieznany typ formatu pliku"
37
msgstr "%s: Nieznany typ formatu pliku"
38
38
39
#: src/xz/args.c:429 src/xz/args.c:437
39
#: src/xz/args.c:474 src/xz/args.c:482
40
#, c-format
40
#, c-format
41
msgid "%s: Unsupported integrity check type"
41
msgid "%s: Unsupported integrity check type"
42
msgstr "%s: Nieobsługiwany typ kontroli spójności"
42
msgstr "%s: Nieobsługiwany typ kontroli spójności"
43
43
44
#: src/xz/args.c:473
44
#: src/xz/args.c:518
45
msgid "Only one file can be specified with `--files' or `--files0'."
45
msgid "Only one file can be specified with `--files' or `--files0'."
46
msgstr "Wraz z opcją `--files' lub `--files0' można podać tylko jeden plik."
46
msgstr "Wraz z opcją `--files' lub `--files0' można podać tylko jeden plik."
47
47
48
#: src/xz/args.c:541
48
#: src/xz/args.c:586
49
#, c-format
49
#, c-format
50
msgid "The environment variable %s contains too many arguments"
50
msgid "The environment variable %s contains too many arguments"
51
msgstr "Zmienna środowiskowa %s zawiera zbyt dużo argumentów"
51
msgstr "Zmienna środowiskowa %s zawiera zbyt dużo argumentów"
52
52
53
#: src/xz/args.c:643
53
#: src/xz/args.c:688
54
msgid "Compression support was disabled at build time"
54
msgid "Compression support was disabled at build time"
55
msgstr "Obsługa kompresji została wyłączona na etapie budowania"
55
msgstr "Obsługa kompresji została wyłączona na etapie budowania"
56
56
57
#: src/xz/args.c:650
57
#: src/xz/args.c:695
58
msgid "Decompression support was disabled at build time"
58
msgid "Decompression support was disabled at build time"
59
msgstr "Obsługa dekompresji została wyłączona na etapie budowania"
59
msgstr "Obsługa dekompresji została wyłączona na etapie budowania"
60
60
61
#: src/xz/coder.c:110
61
#: src/xz/args.c:701
62
msgid "Compression of lzip files (.lz) is not supported"
63
msgstr "Kompresja plików lzip (.lz) nie jest osbługiwana"
64
65
#: src/xz/args.c:732
66
#, fuzzy
67
#| msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
68
msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout"
69
msgstr "%s: Przy --format=raw i zapisie do pliku wymagana jest opcja --suffix=.ROZ"
70
71
#: src/xz/coder.c:115
62
msgid "Maximum number of filters is four"
72
msgid "Maximum number of filters is four"
63
msgstr "Maksymalna liczba filtrów to cztery"
73
msgstr "Maksymalna liczba filtrów to cztery"
64
74
65
#: src/xz/coder.c:129
75
#: src/xz/coder.c:134
66
msgid "Memory usage limit is too low for the given filter setup."
76
msgid "Memory usage limit is too low for the given filter setup."
67
msgstr "Limit użycia pamięci jest zbyt mały dla podanej konfiguracji filtra."
77
msgstr "Limit użycia pamięci jest zbyt mały dla podanej konfiguracji filtra."
68
78
69
#: src/xz/coder.c:159
79
#: src/xz/coder.c:169
70
msgid "Using a preset in raw mode is discouraged."
80
msgid "Using a preset in raw mode is discouraged."
71
msgstr "Użycie ustawień predefiniowanych w trybie surowym jest odradzane."
81
msgstr "Użycie ustawień predefiniowanych w trybie surowym jest odradzane."
72
82
73
#: src/xz/coder.c:161
83
#: src/xz/coder.c:171
74
msgid "The exact options of the presets may vary between software versions."
84
msgid "The exact options of the presets may vary between software versions."
75
msgstr "Dokładne opcje ustawień predefiniowanych mogą różnić się między wersjami oprogramowania."
85
msgstr "Dokładne opcje ustawień predefiniowanych mogą różnić się między wersjami oprogramowania."
76
86
77
#: src/xz/coder.c:184
87
#: src/xz/coder.c:194
78
msgid "The .lzma format supports only the LZMA1 filter"
88
msgid "The .lzma format supports only the LZMA1 filter"
79
msgstr "Format .lzma obsługuje tylko filtr LZMA1"
89
msgstr "Format .lzma obsługuje tylko filtr LZMA1"
80
90
81
#: src/xz/coder.c:192
91
#: src/xz/coder.c:202
82
msgid "LZMA1 cannot be used with the .xz format"
92
msgid "LZMA1 cannot be used with the .xz format"
83
msgstr "LZMA1 nie może być używany z formatem .xz"
93
msgstr "LZMA1 nie może być używany z formatem .xz"
84
94
85
#: src/xz/coder.c:209
95
#: src/xz/coder.c:219
86
msgid "The filter chain is incompatible with --flush-timeout"
96
msgid "The filter chain is incompatible with --flush-timeout"
87
msgstr "Łańcuch filtrów jest niezgodny z --flush-timeout"
97
msgstr "Łańcuch filtrów jest niezgodny z --flush-timeout"
88
98
89
#: src/xz/coder.c:215
99
#: src/xz/coder.c:225
90
msgid "Switching to single-threaded mode due to --flush-timeout"
100
msgid "Switching to single-threaded mode due to --flush-timeout"
91
msgstr "Przełączanie w tryb jednowątkowy z powodu --flush-timeout"
101
msgstr "Przełączanie w tryb jednowątkowy z powodu --flush-timeout"
92
102
93
#: src/xz/coder.c:235
103
#: src/xz/coder.c:249
94
#, c-format
104
#, c-format
95
msgid "Using up to %<PRIu32> threads."
105
msgid "Using up to %<PRIu32> threads."
96
msgstr "Maksymalna liczba używanych wątków: %<PRIu32>."
106
msgstr "Maksymalna liczba używanych wątków: %<PRIu32>."
97
107
98
#: src/xz/coder.c:251
108
#: src/xz/coder.c:265
99
msgid "Unsupported filter chain or filter options"
109
msgid "Unsupported filter chain or filter options"
100
msgstr "Nieobsługiwany łańcuch filtrów lub opcje filtra"
110
msgstr "Nieobsługiwany łańcuch filtrów lub opcje filtra"
101
111
102
#: src/xz/coder.c:263
112
#: src/xz/coder.c:277
103
#, c-format
113
#, c-format
104
msgid "Decompression will need %s MiB of memory."
114
msgid "Decompression will need %s MiB of memory."
105
msgstr "Dekompresja będzie wymagała %s MiB pamięci."
115
msgstr "Dekompresja będzie wymagała %s MiB pamięci."
106
116
107
#: src/xz/coder.c:300
117
#: src/xz/coder.c:309
108
#, c-format
118
#, c-format
109
msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
119
msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
110
msgstr "Skorygowano liczbę wątków z %s do %s, aby nie przekroczyć limitu użycia pamięci %s MiB"
120
msgstr "Zmniejszono liczbę wątków z %s do %s, aby nie przekroczyć limitu użycia pamięci %s MiB"
111
121
112
#: src/xz/coder.c:354
122
#: src/xz/coder.c:329
113
#, c-format
123
#, c-format
124
msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway."
125
msgstr "Zmniejszono liczbę wątków z %s do jednego. Automatyczny limit użycia pamięci %s MiB jest nadal przekroczony - wymagane jest %s MiB. Kontynuacja mimo to."
126
127
#: src/xz/coder.c:356
128
#, c-format
129
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
130
msgstr "Przełączenie w tryb jednowątkowy, aby nie przekroczyć limitu użycia pamięci %s MiB"
131
132
#: src/xz/coder.c:411
133
#, c-format
114
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
134
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
115
msgstr "Skorygowano rozmiar słownika LZMA%c z %s MiB do %s MiB aby nie przekroczyć limitu użycia pamięci %s MiB"
135
msgstr "Skorygowano rozmiar słownika LZMA%c z %s MiB do %s MiB aby nie przekroczyć limitu użycia pamięci %s MiB"
116
136
Lines 119-129 Link Here
119
msgid "Error creating a pipe: %s"
139
msgid "Error creating a pipe: %s"
120
msgstr "Błąd tworzenia potoku: %s"
140
msgstr "Błąd tworzenia potoku: %s"
121
141
122
#: src/xz/file_io.c:224
142
#: src/xz/file_io.c:252
123
msgid "Failed to enable the sandbox"
143
msgid "Failed to enable the sandbox"
124
msgstr "Nie udało się włączyć piaskownicy"
144
msgstr "Nie udało się włączyć piaskownicy"
125
145
126
#: src/xz/file_io.c:266
146
#: src/xz/file_io.c:294
127
#, c-format
147
#, c-format
128
msgid "%s: poll() failed: %s"
148
msgid "%s: poll() failed: %s"
129
msgstr "%s: poll() nie powiodło się: %s"
149
msgstr "%s: poll() nie powiodło się: %s"
Lines 138-332 Link Here
138
#. it is possible that the user has put a new file in place
158
#. it is possible that the user has put a new file in place
139
#. of the original file, and in that case it obviously
159
#. of the original file, and in that case it obviously
140
#. shouldn't be removed.
160
#. shouldn't be removed.
141
#: src/xz/file_io.c:333
161
#: src/xz/file_io.c:361
142
#, c-format
162
#, c-format
143
msgid "%s: File seems to have been moved, not removing"
163
msgid "%s: File seems to have been moved, not removing"
144
msgstr "%s: Plik wygląda na przeniesiony, nie zostanie usunięty"
164
msgstr "%s: Plik wygląda na przeniesiony, nie zostanie usunięty"
145
165
146
#: src/xz/file_io.c:340 src/xz/file_io.c:882
166
#: src/xz/file_io.c:368 src/xz/file_io.c:924
147
#, c-format
167
#, c-format
148
msgid "%s: Cannot remove: %s"
168
msgid "%s: Cannot remove: %s"
149
msgstr "%s: Nie można usunąć: %s"
169
msgstr "%s: Nie można usunąć: %s"
150
170
151
#: src/xz/file_io.c:366
171
#: src/xz/file_io.c:394
152
#, c-format
172
#, c-format
153
msgid "%s: Cannot set the file owner: %s"
173
msgid "%s: Cannot set the file owner: %s"
154
msgstr "%s: Nie można ustawić właściciela pliku: %s"
174
msgstr "%s: Nie można ustawić właściciela pliku: %s"
155
175
156
#: src/xz/file_io.c:372
176
#: src/xz/file_io.c:407
157
#, c-format
177
#, c-format
158
msgid "%s: Cannot set the file group: %s"
178
msgid "%s: Cannot set the file group: %s"
159
msgstr "%s: Nie można ustawić grupy pliku: %s"
179
msgstr "%s: Nie można ustawić grupy pliku: %s"
160
180
161
#: src/xz/file_io.c:391
181
#: src/xz/file_io.c:426
162
#, c-format
182
#, c-format
163
msgid "%s: Cannot set the file permissions: %s"
183
msgid "%s: Cannot set the file permissions: %s"
164
msgstr "%s: Nie można ustawić uprawnień pliku: %s"
184
msgstr "%s: Nie można ustawić uprawnień pliku: %s"
165
185
166
#: src/xz/file_io.c:517
186
#: src/xz/file_io.c:552
167
#, c-format
187
#, c-format
168
msgid "Error getting the file status flags from standard input: %s"
188
msgid "Error getting the file status flags from standard input: %s"
169
msgstr "Błąd podczas pobierania flag stanu pliku ze standardowego wejścia: %s"
189
msgstr "Błąd podczas pobierania flag stanu pliku ze standardowego wejścia: %s"
170
190
171
#: src/xz/file_io.c:574 src/xz/file_io.c:636
191
#: src/xz/file_io.c:610 src/xz/file_io.c:672
172
#, c-format
192
#, c-format
173
msgid "%s: Is a symbolic link, skipping"
193
msgid "%s: Is a symbolic link, skipping"
174
msgstr "%s: Jest dowiązaniem symbolicznym, pominięto"
194
msgstr "%s: Jest dowiązaniem symbolicznym, pominięto"
175
195
176
#: src/xz/file_io.c:665
196
#: src/xz/file_io.c:701
177
#, c-format
197
#, c-format
178
msgid "%s: Is a directory, skipping"
198
msgid "%s: Is a directory, skipping"
179
msgstr "%s: Jest katalogiem, pominięto"
199
msgstr "%s: Jest katalogiem, pominięto"
180
200
181
#: src/xz/file_io.c:671
201
#: src/xz/file_io.c:707
182
#, c-format
202
#, c-format
183
msgid "%s: Not a regular file, skipping"
203
msgid "%s: Not a regular file, skipping"
184
msgstr "%s: Nie jest zwykłym plikiem, pominięto"
204
msgstr "%s: Nie jest zwykłym plikiem, pominięto"
185
205
186
#: src/xz/file_io.c:688
206
#: src/xz/file_io.c:724
187
#, c-format
207
#, c-format
188
msgid "%s: File has setuid or setgid bit set, skipping"
208
msgid "%s: File has setuid or setgid bit set, skipping"
189
msgstr "%s: Plik ma ustawiony bit setuid lub setgid, pominięto"
209
msgstr "%s: Plik ma ustawiony bit setuid lub setgid, pominięto"
190
210
191
#: src/xz/file_io.c:695
211
#: src/xz/file_io.c:731
192
#, c-format
212
#, c-format
193
msgid "%s: File has sticky bit set, skipping"
213
msgid "%s: File has sticky bit set, skipping"
194
msgstr "%s: Plik ma ustawiony bit sticky, pominięto"
214
msgstr "%s: Plik ma ustawiony bit sticky, pominięto"
195
215
196
#: src/xz/file_io.c:702
216
#: src/xz/file_io.c:738
197
#, c-format
217
#, c-format
198
msgid "%s: Input file has more than one hard link, skipping"
218
msgid "%s: Input file has more than one hard link, skipping"
199
msgstr "%s: Plik wejściowy ma więcej niż jedno dowiązanie zwykłe, pominięto"
219
msgstr "%s: Plik wejściowy ma więcej niż jedno dowiązanie zwykłe, pominięto"
200
220
201
#: src/xz/file_io.c:792
221
#: src/xz/file_io.c:780
222
msgid "Empty filename, skipping"
223
msgstr "Pusta nazwa pliku, pominięto"
224
225
#: src/xz/file_io.c:834
202
#, c-format
226
#, c-format
203
msgid "Error restoring the status flags to standard input: %s"
227
msgid "Error restoring the status flags to standard input: %s"
204
msgstr "Błąd podczas odtwarzania flag stanu dla standardowego wejścia: %s"
228
msgstr "Błąd podczas odtwarzania flag stanu dla standardowego wejścia: %s"
205
229
206
#: src/xz/file_io.c:840
230
#: src/xz/file_io.c:882
207
#, c-format
231
#, c-format
208
msgid "Error getting the file status flags from standard output: %s"
232
msgid "Error getting the file status flags from standard output: %s"
209
msgstr "Błąd podczas pobierania flag stanu pliku ze standardowego wyjścia: %s"
233
msgstr "Błąd podczas pobierania flag stanu pliku ze standardowego wyjścia: %s"
210
234
211
#: src/xz/file_io.c:1018
235
#: src/xz/file_io.c:1060
212
#, c-format
236
#, c-format
213
msgid "Error restoring the O_APPEND flag to standard output: %s"
237
msgid "Error restoring the O_APPEND flag to standard output: %s"
214
msgstr "Błąd podczas odtwarzania flagi O_APPEND dla standardowego wyjścia: %s"
238
msgstr "Błąd podczas odtwarzania flagi O_APPEND dla standardowego wyjścia: %s"
215
239
216
#: src/xz/file_io.c:1030
240
#: src/xz/file_io.c:1072
217
#, c-format
241
#, c-format
218
msgid "%s: Closing the file failed: %s"
242
msgid "%s: Closing the file failed: %s"
219
msgstr "%s: Zamknięcie pliku nie powiodło się: %s"
243
msgstr "%s: Zamknięcie pliku nie powiodło się: %s"
220
244
221
#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
245
#: src/xz/file_io.c:1108 src/xz/file_io.c:1371
222
#, c-format
246
#, c-format
223
msgid "%s: Seeking failed when trying to create a sparse file: %s"
247
msgid "%s: Seeking failed when trying to create a sparse file: %s"
224
msgstr "%s: Zmiana pozycji nie powiodła się podczas próby utworzenia pliku rzadkiego: %s"
248
msgstr "%s: Zmiana pozycji nie powiodła się podczas próby utworzenia pliku rzadkiego: %s"
225
249
226
#: src/xz/file_io.c:1167
250
#: src/xz/file_io.c:1209
227
#, c-format
251
#, c-format
228
msgid "%s: Read error: %s"
252
msgid "%s: Read error: %s"
229
msgstr "%s: Błąd odczytu: %s"
253
msgstr "%s: Błąd odczytu: %s"
230
254
231
#: src/xz/file_io.c:1191
255
#: src/xz/file_io.c:1239
232
#, c-format
256
#, c-format
233
msgid "%s: Error seeking the file: %s"
257
msgid "%s: Error seeking the file: %s"
234
msgstr "%s: Błąd podczas zmiany pozycji w pliku: %s"
258
msgstr "%s: Błąd podczas zmiany pozycji w pliku: %s"
235
259
236
#: src/xz/file_io.c:1201
260
#: src/xz/file_io.c:1263
237
#, c-format
261
#, c-format
238
msgid "%s: Unexpected end of file"
262
msgid "%s: Unexpected end of file"
239
msgstr "%s: Nieoczekiwany koniec pliku"
263
msgstr "%s: Nieoczekiwany koniec pliku"
240
264
241
#: src/xz/file_io.c:1260
265
#: src/xz/file_io.c:1322
242
#, c-format
266
#, c-format
243
msgid "%s: Write error: %s"
267
msgid "%s: Write error: %s"
244
msgstr "%s: Błąd zapisu: %s"
268
msgstr "%s: Błąd zapisu: %s"
245
269
246
#: src/xz/hardware.c:137
270
#: src/xz/hardware.c:238
247
msgid "Disabled"
271
msgid "Disabled"
248
msgstr "Wyłączony"
272
msgstr "Wyłączony"
249
273
250
#. TRANSLATORS: Test with "xz --info-memory" to see if
274
#: src/xz/hardware.c:269
251
#. the alignment looks nice.
275
msgid "Amount of physical memory (RAM):"
252
#: src/xz/hardware.c:156
276
msgstr "Rozmiar pamięci fizycznej (RAM):"
253
msgid "Total amount of physical memory (RAM): "
254
msgstr "Całkowita ilość pamięci fizycznej (RAM): "
255
277
256
#: src/xz/hardware.c:158
278
#: src/xz/hardware.c:270
257
msgid "Memory usage limit for compression:    "
279
msgid "Number of processor threads:"
258
msgstr "Limit użycia pamięci dla kompresji:      "
280
msgstr "Liczba wątków procesora:"
259
281
260
#: src/xz/hardware.c:160
282
#: src/xz/hardware.c:271
261
msgid "Memory usage limit for decompression:  "
283
msgid "Compression:"
262
msgstr "Limit użycia pamięci dla dekompresji:    "
284
msgstr "Kompresja:"
263
285
286
#: src/xz/hardware.c:272
287
msgid "Decompression:"
288
msgstr "Dekompresja:"
289
290
#: src/xz/hardware.c:273
291
msgid "Multi-threaded decompression:"
292
msgstr "Dekompresja wielowątkowa:"
293
294
#: src/xz/hardware.c:274
295
msgid "Default for -T0:"
296
msgstr "Domyślnie dla -T0:"
297
298
#: src/xz/hardware.c:292
299
msgid "Hardware information:"
300
msgstr "Informacje o sprzęcie:"
301
302
#: src/xz/hardware.c:299
303
msgid "Memory usage limits:"
304
msgstr "Limity użycia pamięci"
305
306
#: src/xz/list.c:68
307
msgid "Streams:"
308
msgstr "Strumienie:"
309
310
#: src/xz/list.c:69
311
msgid "Blocks:"
312
msgstr "Bloki:"
313
314
#: src/xz/list.c:70
315
msgid "Compressed size:"
316
msgstr "Rozmiar spakowany:"
317
318
#: src/xz/list.c:71
319
msgid "Uncompressed size:"
320
msgstr "Rozmiar rozpakowany:"
321
322
#: src/xz/list.c:72
323
msgid "Ratio:"
324
msgstr "Współczynnik:"
325
326
#: src/xz/list.c:73
327
msgid "Check:"
328
msgstr "Kontrola spójności:"
329
330
#: src/xz/list.c:74
331
msgid "Stream Padding:"
332
msgstr "Wyrównanie strumienia:"
333
334
#: src/xz/list.c:75
335
msgid "Memory needed:"
336
msgstr "Wymagana pamięć:"
337
338
#: src/xz/list.c:76
339
msgid "Sizes in headers:"
340
msgstr "Rozmiar w nagłówkach:"
341
342
#: src/xz/list.c:79
343
msgid "Number of files:"
344
msgstr "Liczba plików:"
345
346
#: src/xz/list.c:122
347
msgid "Stream"
348
msgstr "Strumień"
349
350
#: src/xz/list.c:123
351
msgid "Block"
352
msgstr "Blok"
353
354
#: src/xz/list.c:124
355
msgid "Blocks"
356
msgstr "Bloki"
357
358
#: src/xz/list.c:125
359
msgid "CompOffset"
360
msgstr "Offset spak."
361
362
#: src/xz/list.c:126
363
msgid "UncompOffset"
364
msgstr "Offset rozp."
365
366
#: src/xz/list.c:127
367
msgid "CompSize"
368
msgstr "Rozm.spak."
369
370
#: src/xz/list.c:128
371
msgid "UncompSize"
372
msgstr "Rozm.rozp."
373
374
#: src/xz/list.c:129
375
msgid "TotalSize"
376
msgstr "Rozm.całk."
377
378
#: src/xz/list.c:130
379
msgid "Ratio"
380
msgstr "Wsp."
381
382
#: src/xz/list.c:131
383
msgid "Check"
384
msgstr "Kontrola"
385
386
#: src/xz/list.c:132
387
msgid "CheckVal"
388
msgstr "S.kontr."
389
390
#: src/xz/list.c:133
391
msgid "Padding"
392
msgstr "Wyrównanie"
393
394
#: src/xz/list.c:134
395
msgid "Header"
396
msgstr "Nagłówek"
397
398
#: src/xz/list.c:135
399
msgid "Flags"
400
msgstr "Flagi"
401
402
#: src/xz/list.c:136
403
msgid "MemUsage"
404
msgstr "Uż.pamięci"
405
406
#: src/xz/list.c:137
407
msgid "Filters"
408
msgstr "Filtry"
409
264
#. TRANSLATORS: Indicates that there is no integrity check.
410
#. TRANSLATORS: Indicates that there is no integrity check.
265
#. This string is used in tables, so the width must not
411
#. This string is used in tables. In older xz version this
266
#. exceed ten columns with a fixed-width font.
412
#. string was limited to ten columns in a fixed-width font, but
267
#: src/xz/list.c:65
413
#. nowadays there is no strict length restriction anymore.
414
#: src/xz/list.c:169
268
msgid "None"
415
msgid "None"
269
msgstr "Brak"
416
msgstr "Brak"
270
417
271
#. TRANSLATORS: Indicates that integrity check name is not known,
418
#. TRANSLATORS: Indicates that integrity check name is not known,
272
#. but the Check ID is known (here 2). This and other "Unknown-N"
419
#. but the Check ID is known (here 2). In older xz version these
273
#. strings are used in tables, so the width must not exceed ten
420
#. strings were limited to ten columns in a fixed-width font, but
274
#. columns with a fixed-width font. It's OK to omit the dash if
421
#. nowadays there is no strict length restriction anymore.
275
#. you need space for one extra letter, but don't use spaces.
422
#: src/xz/list.c:175
276
#: src/xz/list.c:72
277
msgid "Unknown-2"
423
msgid "Unknown-2"
278
msgstr "Nieznany-2"
424
msgstr "Nieznany-2"
279
425
280
#: src/xz/list.c:73
426
#: src/xz/list.c:176
281
msgid "Unknown-3"
427
msgid "Unknown-3"
282
msgstr "Nieznany-3"
428
msgstr "Nieznany-3"
283
429
284
#: src/xz/list.c:75
430
#: src/xz/list.c:178
285
msgid "Unknown-5"
431
msgid "Unknown-5"
286
msgstr "Nieznany-5"
432
msgstr "Nieznany-5"
287
433
288
#: src/xz/list.c:76
434
#: src/xz/list.c:179
289
msgid "Unknown-6"
435
msgid "Unknown-6"
290
msgstr "Nieznany-6"
436
msgstr "Nieznany-6"
291
437
292
#: src/xz/list.c:77
438
#: src/xz/list.c:180
293
msgid "Unknown-7"
439
msgid "Unknown-7"
294
msgstr "Nieznany-7"
440
msgstr "Nieznany-7"
295
441
296
#: src/xz/list.c:78
442
#: src/xz/list.c:181
297
msgid "Unknown-8"
443
msgid "Unknown-8"
298
msgstr "Nieznany-8"
444
msgstr "Nieznany-8"
299
445
300
#: src/xz/list.c:79
446
#: src/xz/list.c:182
301
msgid "Unknown-9"
447
msgid "Unknown-9"
302
msgstr "Nieznany-9"
448
msgstr "Nieznany-9"
303
449
304
#: src/xz/list.c:81
450
#: src/xz/list.c:184
305
msgid "Unknown-11"
451
msgid "Unknown-11"
306
msgstr "Nieznany11"
452
msgstr "Nieznany11"
307
453
308
#: src/xz/list.c:82
454
#: src/xz/list.c:185
309
msgid "Unknown-12"
455
msgid "Unknown-12"
310
msgstr "Nieznany12"
456
msgstr "Nieznany12"
311
457
312
#: src/xz/list.c:83
458
#: src/xz/list.c:186
313
msgid "Unknown-13"
459
msgid "Unknown-13"
314
msgstr "Nieznany13"
460
msgstr "Nieznany13"
315
461
316
#: src/xz/list.c:84
462
#: src/xz/list.c:187
317
msgid "Unknown-14"
463
msgid "Unknown-14"
318
msgstr "Nieznany14"
464
msgstr "Nieznany14"
319
465
320
#: src/xz/list.c:85
466
#: src/xz/list.c:188
321
msgid "Unknown-15"
467
msgid "Unknown-15"
322
msgstr "Nieznany15"
468
msgstr "Nieznany15"
323
469
324
#: src/xz/list.c:153
470
#: src/xz/list.c:351
325
#, c-format
471
#, c-format
326
msgid "%s: File is empty"
472
msgid "%s: File is empty"
327
msgstr "%s: Plik jest pusty"
473
msgstr "%s: Plik jest pusty"
328
474
329
#: src/xz/list.c:158
475
#: src/xz/list.c:356
330
#, c-format
476
#, c-format
331
msgid "%s: Too small to be a valid .xz file"
477
msgid "%s: Too small to be a valid .xz file"
332
msgstr "%s: Za mały na poprawny plik .xz"
478
msgstr "%s: Za mały na poprawny plik .xz"
Lines 335-439 Link Here
335
#. to Ratio, the columns are right aligned. Check and Filename
481
#. to Ratio, the columns are right aligned. Check and Filename
336
#. are left aligned. If you need longer words, it's OK to
482
#. are left aligned. If you need longer words, it's OK to
337
#. use two lines here. Test with "xz -l foo.xz".
483
#. use two lines here. Test with "xz -l foo.xz".
338
#: src/xz/list.c:677
484
#: src/xz/list.c:730
339
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
485
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
340
msgstr "Strum.  Bloki    Spakowany  Rozpakowany  Wsp.  Kontrola Nazwa pliku"
486
msgstr "Strum.  Bloki    Spakowany  Rozpakowany  Wsp.  Kontrola Nazwa pliku"
341
487
342
#: src/xz/list.c:717
488
#: src/xz/list.c:1025 src/xz/list.c:1203
343
#, c-format
344
msgid "  Streams:            %s\n"
345
msgstr "  Strumienie:            %s\n"
346
347
#: src/xz/list.c:719
348
#, c-format
349
msgid "  Blocks:             %s\n"
350
msgstr "  Bloki:                 %s\n"
351
352
#: src/xz/list.c:721
353
#, c-format
354
msgid "  Compressed size:    %s\n"
355
msgstr "  Rozmiar spakowany:     %s\n"
356
357
#: src/xz/list.c:724
358
#, c-format
359
msgid "  Uncompressed size:  %s\n"
360
msgstr "  Rozmiar rozpakowany:   %s\n"
361
362
#: src/xz/list.c:727
363
#, c-format
364
msgid "  Ratio:              %s\n"
365
msgstr "  Współczynnik:          %s\n"
366
367
#: src/xz/list.c:729
368
#, c-format
369
msgid "  Check:              %s\n"
370
msgstr "  Kontrola spójności:    %s\n"
371
372
#: src/xz/list.c:730
373
#, c-format
374
msgid "  Stream padding:     %s\n"
375
msgstr "  Wyrównanie strumienia: %s\n"
376
377
#. TRANSLATORS: The second line is column headings. All except
378
#. Check are right aligned; Check is left aligned. Test with
379
#. "xz -lv foo.xz".
380
#: src/xz/list.c:758
381
msgid ""
382
"  Streams:\n"
383
"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
384
msgstr ""
385
"  Strumienie:\n"
386
"  Strumień     Bloki    Offset spak.    Offset rozp.        Rozm.spak.    Rozm.rozp.  Wsp.   Kontrola   Wyrównanie"
387
388
#. TRANSLATORS: The second line is column headings. All
389
#. except Check are right aligned; Check is left aligned.
390
#: src/xz/list.c:813
391
#, c-format
392
msgid ""
393
"  Blocks:\n"
394
"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
395
msgstr ""
396
"  Bloki:\n"
397
"  Strumień      Blok    Offset spak.    Offset rozp.  Rozm.całkowity      Rozm.rozp.  Wsp.   Kontrola"
398
399
#. TRANSLATORS: These are additional column headings
400
#. for the most verbose listing mode. CheckVal
401
#. (Check value), Flags, and Filters are left aligned.
402
#. Header (Block Header Size), CompSize, and MemUsage
403
#. are right aligned. %*s is replaced with 0-120
404
#. spaces to make the CheckVal column wide enough.
405
#. Test with "xz -lvv foo.xz".
406
#: src/xz/list.c:825
407
#, c-format
408
msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
409
msgstr "   S.kontr. %*sNagłówek Flagi     Rozm. spak.  Uż.pamięci  Filtry"
410
411
#: src/xz/list.c:903 src/xz/list.c:1078
412
#, c-format
413
msgid "  Memory needed:      %s MiB\n"
414
msgstr "  Wymagana pamięć:       %s MiB\n"
415
416
#: src/xz/list.c:905 src/xz/list.c:1080
417
#, c-format
418
msgid "  Sizes in headers:   %s\n"
419
msgstr "  Rozmiar w nagłówkach:  %s\n"
420
421
#: src/xz/list.c:906 src/xz/list.c:1081
422
msgid "Yes"
489
msgid "Yes"
423
msgstr "Tak"
490
msgstr "Tak"
424
491
425
#: src/xz/list.c:906 src/xz/list.c:1081
492
#: src/xz/list.c:1025 src/xz/list.c:1203
426
msgid "No"
493
msgid "No"
427
msgstr "Nie"
494
msgstr "Nie"
428
495
429
#: src/xz/list.c:907 src/xz/list.c:1082
496
#: src/xz/list.c:1027 src/xz/list.c:1205
430
#, c-format
497
#, c-format
431
msgid "  Minimum XZ Utils version: %s\n"
498
msgid "  Minimum XZ Utils version: %s\n"
432
msgstr "  Minimalna wersja XZ Utils: %s\n"
499
msgstr "  Minimalna wersja XZ Utils: %s\n"
433
500
434
#. TRANSLATORS: %s is an integer. Only the plural form of this
501
#. TRANSLATORS: %s is an integer. Only the plural form of this
435
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
502
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
436
#: src/xz/list.c:1057
503
#: src/xz/list.c:1178
437
#, c-format
504
#, c-format
438
msgid "%s file\n"
505
msgid "%s file\n"
439
msgid_plural "%s files\n"
506
msgid_plural "%s files\n"
Lines 441-460 Link Here
441
msgstr[1] "%s pliki\n"
508
msgstr[1] "%s pliki\n"
442
msgstr[2] "%s plików\n"
509
msgstr[2] "%s plików\n"
443
510
444
#: src/xz/list.c:1070
511
#: src/xz/list.c:1191
445
msgid "Totals:"
512
msgid "Totals:"
446
msgstr "Sumarycznie:"
513
msgstr "Sumarycznie:"
447
514
448
#: src/xz/list.c:1071
515
#: src/xz/list.c:1269
449
#, c-format
450
msgid "  Number of files:    %s\n"
451
msgstr "  Liczba plików:         %s\n"
452
453
#: src/xz/list.c:1146
454
msgid "--list works only on .xz files (--format=xz or --format=auto)"
516
msgid "--list works only on .xz files (--format=xz or --format=auto)"
455
msgstr "--list działa tylko z plikami .xz (--format=xz lub --format=auto)"
517
msgstr "--list działa tylko z plikami .xz (--format=xz lub --format=auto)"
456
518
457
#: src/xz/list.c:1152
519
#: src/xz/list.c:1275
458
msgid "--list does not support reading from standard input"
520
msgid "--list does not support reading from standard input"
459
msgstr "--list nie obsługuje odczytu ze standardowego wejścia"
521
msgstr "--list nie obsługuje odczytu ze standardowego wejścia"
460
522
Lines 473-483 Link Here
473
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
535
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
474
msgstr "%s: Napotkano znak NUL podczas odczytu nazw plików; może miało być `--files0' zamiast `--files'?"
536
msgstr "%s: Napotkano znak NUL podczas odczytu nazw plików; może miało być `--files0' zamiast `--files'?"
475
537
476
#: src/xz/main.c:174
538
#: src/xz/main.c:188
477
msgid "Compression and decompression with --robot are not supported yet."
539
msgid "Compression and decompression with --robot are not supported yet."
478
msgstr "Kompresja i dekompresja z opcją --robot nie jest jeszcze obsługiwana."
540
msgstr "Kompresja i dekompresja z opcją --robot nie jest jeszcze obsługiwana."
479
541
480
#: src/xz/main.c:252
542
#: src/xz/main.c:266
481
msgid "Cannot read data from standard input when reading filenames from standard input"
543
msgid "Cannot read data from standard input when reading filenames from standard input"
482
msgstr "Nie można odczytać danych ze standardowego wejścia przy czytaniu nazw plików ze standardowego wejścia"
544
msgstr "Nie można odczytać danych ze standardowego wejścia przy czytaniu nazw plików ze standardowego wejścia"
483
545
Lines 485-552 Link Here
485
#. of the line in messages. Usually it becomes "xz: ".
547
#. of the line in messages. Usually it becomes "xz: ".
486
#. This is a translatable string because French needs
548
#. This is a translatable string because French needs
487
#. a space before a colon.
549
#. a space before a colon.
488
#: src/xz/message.c:728
550
#: src/xz/message.c:725
489
#, c-format
551
#, c-format
490
msgid "%s: "
552
msgid "%s: "
491
msgstr "%s: "
553
msgstr "%s: "
492
554
493
#: src/xz/message.c:791 src/xz/message.c:841
555
#: src/xz/message.c:797 src/xz/message.c:856
494
msgid "Internal error (bug)"
556
msgid "Internal error (bug)"
495
msgstr "Błąd wewnętrzny"
557
msgstr "Błąd wewnętrzny"
496
558
497
#: src/xz/message.c:798
559
#: src/xz/message.c:804
498
msgid "Cannot establish signal handlers"
560
msgid "Cannot establish signal handlers"
499
msgstr "Nie można ustawić obsługi sygnałów"
561
msgstr "Nie można ustawić obsługi sygnałów"
500
562
501
#: src/xz/message.c:807
563
#: src/xz/message.c:813
502
msgid "No integrity check; not verifying file integrity"
564
msgid "No integrity check; not verifying file integrity"
503
msgstr "Brak kontroli spójności; poprawność plików nie będzie weryfikowana"
565
msgstr "Brak kontroli spójności; poprawność plików nie będzie weryfikowana"
504
566
505
#: src/xz/message.c:810
567
#: src/xz/message.c:816
506
msgid "Unsupported type of integrity check; not verifying file integrity"
568
msgid "Unsupported type of integrity check; not verifying file integrity"
507
msgstr "Nieobsługiwany typ kontroli spójności; poprawność plików nie będzie weryfikowana"
569
msgstr "Nieobsługiwany typ kontroli spójności; poprawność plików nie będzie weryfikowana"
508
570
509
#: src/xz/message.c:817
571
#: src/xz/message.c:823
510
msgid "Memory usage limit reached"
572
msgid "Memory usage limit reached"
511
msgstr "Osiągnięto limit użycia pamięci"
573
msgstr "Osiągnięto limit użycia pamięci"
512
574
513
#: src/xz/message.c:820
575
#: src/xz/message.c:826
514
msgid "File format not recognized"
576
msgid "File format not recognized"
515
msgstr "Nie rozpoznany format pliku"
577
msgstr "Nie rozpoznany format pliku"
516
578
517
#: src/xz/message.c:823
579
#: src/xz/message.c:829
518
msgid "Unsupported options"
580
msgid "Unsupported options"
519
msgstr "Nieobsługiwane opcje"
581
msgstr "Nieobsługiwane opcje"
520
582
521
#: src/xz/message.c:826
583
#: src/xz/message.c:832
522
msgid "Compressed data is corrupt"
584
msgid "Compressed data is corrupt"
523
msgstr "Dane skompresowane są uszkodzone"
585
msgstr "Dane skompresowane są uszkodzone"
524
586
525
#: src/xz/message.c:829
587
#: src/xz/message.c:835
526
msgid "Unexpected end of input"
588
msgid "Unexpected end of input"
527
msgstr "Nieoczekiwany koniec wejścia"
589
msgstr "Nieoczekiwany koniec wejścia"
528
590
529
#: src/xz/message.c:862
591
#: src/xz/message.c:877
530
#, c-format
592
#, c-format
531
msgid "%s MiB of memory is required. The limiter is disabled."
593
msgid "%s MiB of memory is required. The limiter is disabled."
532
msgstr "Wymagane jest %s MiB pamięci. Limit jest wyłączony."
594
msgstr "Wymagane jest %s MiB pamięci. Limit jest wyłączony."
533
595
534
#: src/xz/message.c:890
596
#: src/xz/message.c:905
535
#, c-format
597
#, c-format
536
msgid "%s MiB of memory is required. The limit is %s."
598
msgid "%s MiB of memory is required. The limit is %s."
537
msgstr "Wymagane jest %s MiB pamięci. Limit to %s."
599
msgstr "Wymagane jest %s MiB pamięci. Limit to %s."
538
600
539
#: src/xz/message.c:1057
601
#: src/xz/message.c:924
540
#, c-format
602
#, c-format
541
msgid "%s: Filter chain: %s\n"
603
msgid "%s: Filter chain: %s\n"
542
msgstr "%s: Łańcuch filtrów: %s\n"
604
msgstr "%s: Łańcuch filtrów: %s\n"
543
605
544
#: src/xz/message.c:1067
606
#: src/xz/message.c:935
545
#, c-format
607
#, c-format
546
msgid "Try `%s --help' for more information."
608
msgid "Try `%s --help' for more information."
547
msgstr "Polecenie `%s --help' pokaże więcej informacji."
609
msgstr "Polecenie `%s --help' pokaże więcej informacji."
548
610
549
#: src/xz/message.c:1093
611
#: src/xz/message.c:961
550
#, c-format
612
#, c-format
551
msgid ""
613
msgid ""
552
"Usage: %s [OPTION]... [FILE]...\n"
614
"Usage: %s [OPTION]... [FILE]...\n"
Lines 557-573 Link Here
557
"Kompresja lub dekompresja PLIKÓW w formacie .xz.\n"
619
"Kompresja lub dekompresja PLIKÓW w formacie .xz.\n"
558
"\n"
620
"\n"
559
621
560
#: src/xz/message.c:1100
622
#: src/xz/message.c:968
561
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
623
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
562
msgstr ""
624
msgstr ""
563
"Argumenty obowiązkowe dla opcji długich są obowiązkowe również dla opcji\n"
625
"Argumenty obowiązkowe dla opcji długich są obowiązkowe również dla opcji\n"
564
"krótkich.\n"
626
"krótkich.\n"
565
627
566
#: src/xz/message.c:1104
628
#: src/xz/message.c:972
567
msgid " Operation mode:\n"
629
msgid " Operation mode:\n"
568
msgstr " Tryb pracy:\n"
630
msgstr " Tryb pracy:\n"
569
631
570
#: src/xz/message.c:1107
632
#: src/xz/message.c:975
571
msgid ""
633
msgid ""
572
"  -z, --compress      force compression\n"
634
"  -z, --compress      force compression\n"
573
"  -d, --decompress    force decompression\n"
635
"  -d, --decompress    force decompression\n"
Lines 579-585 Link Here
579
"  -t, --test          sprawdzenie spójności plików skompresowanych\n"
641
"  -t, --test          sprawdzenie spójności plików skompresowanych\n"
580
"  -l, --list          wypisanie informacji o plikach .xz"
642
"  -l, --list          wypisanie informacji o plikach .xz"
581
643
582
#: src/xz/message.c:1113
644
#: src/xz/message.c:981
583
msgid ""
645
msgid ""
584
"\n"
646
"\n"
585
" Operation modifiers:\n"
647
" Operation modifiers:\n"
Lines 587-593 Link Here
587
"\n"
649
"\n"
588
" Modyfikatory operacji:\n"
650
" Modyfikatory operacji:\n"
589
651
590
#: src/xz/message.c:1116
652
#: src/xz/message.c:984
591
msgid ""
653
msgid ""
592
"  -k, --keep          keep (don't delete) input files\n"
654
"  -k, --keep          keep (don't delete) input files\n"
593
"  -f, --force         force overwrite of output file and (de)compress links\n"
655
"  -f, --force         force overwrite of output file and (de)compress links\n"
Lines 597-603 Link Here
597
"  -f, --force         nadpisywanie plików wyjściowych i (de)kompresja dowiązań\n"
659
"  -f, --force         nadpisywanie plików wyjściowych i (de)kompresja dowiązań\n"
598
"  -c, --stdout        zapis na standardowe wyjście, nieusuwanie plików wej."
660
"  -c, --stdout        zapis na standardowe wyjście, nieusuwanie plików wej."
599
661
600
#: src/xz/message.c:1122
662
#: src/xz/message.c:993
601
msgid ""
663
msgid ""
602
"      --single-stream decompress only the first stream, and silently\n"
664
"      --single-stream decompress only the first stream, and silently\n"
603
"                      ignore possible remaining input data"
665
"                      ignore possible remaining input data"
Lines 605-611 Link Here
605
"      --single-stream dekompresja tylko pierwszego strumienia, ciche\n"
667
"      --single-stream dekompresja tylko pierwszego strumienia, ciche\n"
606
"                      zignorowanie pozostałych danych wejściowych"
668
"                      zignorowanie pozostałych danych wejściowych"
607
669
608
#: src/xz/message.c:1125
670
#: src/xz/message.c:996
609
msgid ""
671
msgid ""
610
"      --no-sparse     do not create sparse files when decompressing\n"
672
"      --no-sparse     do not create sparse files when decompressing\n"
611
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
673
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
Lines 621-627 Link Here
621
"                      wejścia; muszą być zakończone znakiem nowej linii\n"
683
"                      wejścia; muszą być zakończone znakiem nowej linii\n"
622
"      --files0[=PLIK] podobnie do --files, ale znakiem kończącym musi być NUL"
684
"      --files0[=PLIK] podobnie do --files, ale znakiem kończącym musi być NUL"
623
685
624
#: src/xz/message.c:1134
686
#: src/xz/message.c:1005
625
msgid ""
687
msgid ""
626
"\n"
688
"\n"
627
" Basic file format and compression options:\n"
689
" Basic file format and compression options:\n"
Lines 629-651 Link Here
629
"\n"
691
"\n"
630
" Podstawowe opcje formatu pliku i kompresji:\n"
692
" Podstawowe opcje formatu pliku i kompresji:\n"
631
693
632
#: src/xz/message.c:1136
694
#: src/xz/message.c:1007
633
msgid ""
695
msgid ""
634
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
696
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
635
"                      `auto' (default), `xz', `lzma', and `raw'\n"
697
"                      `auto' (default), `xz', `lzma', `lzip', and `raw'\n"
636
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
698
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
637
"                      `crc32', `crc64' (default), or `sha256'"
699
"                      `crc32', `crc64' (default), or `sha256'"
638
msgstr ""
700
msgstr ""
639
"  -F, --format=FORM   format pliki do kodowania lub dekodowania; możliwe to\n"
701
"  -F, --format=FORM   format pliki do kodowania lub dekodowania; możliwe to\n"
640
"                      `auto' (domyślny), `xz', 'lzma' i `raw'\n"
702
"                      `auto' (domyślny), `xz', 'lzma', `lzip' i `raw'\n"
641
"  -C, --check=TEST    typ kontroli spójności: `none' (ostrożnie!),\n"
703
"  -C, --check=TEST    typ kontroli spójności: `none' (ostrożnie!),\n"
642
"                      `crc32', `crc64' (domyślny) lub `sha256'"
704
"                      `crc32', `crc64' (domyślny) lub `sha256'"
643
705
644
#: src/xz/message.c:1141
706
#: src/xz/message.c:1012
645
msgid "      --ignore-check  don't verify the integrity check when decompressing"
707
msgid "      --ignore-check  don't verify the integrity check when decompressing"
646
msgstr "      --ignore-check  bez kontroli sprawdzania integralności przy dekompresji"
708
msgstr "      --ignore-check  bez kontroli sprawdzania integralności przy dekompresji"
647
709
648
#: src/xz/message.c:1145
710
#: src/xz/message.c:1016
649
msgid ""
711
msgid ""
650
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
712
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
651
"                      decompressor memory usage into account before using 7-9!"
713
"                      decompressor memory usage into account before using 7-9!"
Lines 654-660 Link Here
654
"                      użyciem wartości 7-9 należy wziąć pod uwagę wykorzystanie\n"
716
"                      użyciem wartości 7-9 należy wziąć pod uwagę wykorzystanie\n"
655
"                      pamięci przy kompresji *oraz* dekompresji!"
717
"                      pamięci przy kompresji *oraz* dekompresji!"
656
718
657
#: src/xz/message.c:1149
719
#: src/xz/message.c:1020
658
msgid ""
720
msgid ""
659
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
721
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
660
"                      does not affect decompressor memory requirements"
722
"                      does not affect decompressor memory requirements"
Lines 663-669 Link Here
663
"                      ilości czasu procesora; nie wpływa na wymagania\n"
725
"                      ilości czasu procesora; nie wpływa na wymagania\n"
664
"                      pamięciowe dekompresora"
726
"                      pamięciowe dekompresora"
665
727
666
#: src/xz/message.c:1153
728
#: src/xz/message.c:1024
667
msgid ""
729
msgid ""
668
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
730
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
669
"                      to use as many threads as there are processor cores"
731
"                      to use as many threads as there are processor cores"
Lines 671-677 Link Here
671
"  -T, --threads=ILE   użycie maksymalnie ILU wątków; domyślnie 1; 0 oznacza\n"
733
"  -T, --threads=ILE   użycie maksymalnie ILU wątków; domyślnie 1; 0 oznacza\n"
672
"                      tyle, ile jest rdzeni procesorów"
734
"                      tyle, ile jest rdzeni procesorów"
673
735
674
#: src/xz/message.c:1158
736
#: src/xz/message.c:1029
675
msgid ""
737
msgid ""
676
"      --block-size=SIZE\n"
738
"      --block-size=SIZE\n"
677
"                      start a new .xz block after every SIZE bytes of input;\n"
739
"                      start a new .xz block after every SIZE bytes of input;\n"
Lines 682-688 Link Here
682
"                      opcja służy do ustawienia rozmiaru bloku dla kompresji\n"
744
"                      opcja służy do ustawienia rozmiaru bloku dla kompresji\n"
683
"                      wielowątkowej"
745
"                      wielowątkowej"
684
746
685
#: src/xz/message.c:1162
747
#: src/xz/message.c:1033
686
msgid ""
748
msgid ""
687
"      --block-list=SIZES\n"
749
"      --block-list=SIZES\n"
688
"                      start a new .xz block after the given comma-separated\n"
750
"                      start a new .xz block after the given comma-separated\n"
Lines 692-698 Link Here
692
"                      rozpoczęcie nowego bloku .xz po rozdzielonych przecinkiem\n"
754
"                      rozpoczęcie nowego bloku .xz po rozdzielonych przecinkiem\n"
693
"                      przedziałach danych nieskompresowanych"
755
"                      przedziałach danych nieskompresowanych"
694
756
695
#: src/xz/message.c:1166
757
#: src/xz/message.c:1037
696
msgid ""
758
msgid ""
697
"      --flush-timeout=TIMEOUT\n"
759
"      --flush-timeout=TIMEOUT\n"
698
"                      when compressing, if more than TIMEOUT milliseconds has\n"
760
"                      when compressing, if more than TIMEOUT milliseconds has\n"
Lines 704-726 Link Here
704
"                      ostatniegu zapisu bloku, a odczyt kolejnych danych byłby\n"
766
"                      ostatniegu zapisu bloku, a odczyt kolejnych danych byłby\n"
705
"                      blokujący, wszystkie gotowe dane są zapisywane"
767
"                      blokujący, wszystkie gotowe dane są zapisywane"
706
768
707
#: src/xz/message.c:1172
769
#: src/xz/message.c:1043
708
#, no-c-format
770
#, no-c-format
709
msgid ""
771
msgid ""
710
"      --memlimit-compress=LIMIT\n"
772
"      --memlimit-compress=LIMIT\n"
711
"      --memlimit-decompress=LIMIT\n"
773
"      --memlimit-decompress=LIMIT\n"
774
"      --memlimit-mt-decompress=LIMIT\n"
712
"  -M, --memlimit=LIMIT\n"
775
"  -M, --memlimit=LIMIT\n"
713
"                      set memory usage limit for compression, decompression,\n"
776
"                      set memory usage limit for compression, decompression,\n"
714
"                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
777
"                      threaded decompression, or all of these; LIMIT is in\n"
778
"                      bytes, % of RAM, or 0 for defaults"
715
msgstr ""
779
msgstr ""
716
"      --memlimit-compress=LIMIT\n"
780
"      --memlimit-compress=LIMIT\n"
717
"      --memlimit-decompress=LIMIT\n"
781
"      --memlimit-decompress=LIMIT\n"
782
"      --memlimit-mt-decompress=LIMIT\n"
718
"  -M, --memlimit=LIMIT\n"
783
"  -M, --memlimit=LIMIT\n"
719
"                      ustawienie limitu użycia pamięci dla kompresji,\n"
784
"                      ustawienie limitu użycia pamięci dla kompresji,\n"
720
"                      dekompresji lub obu; LIMIT jest w bajtach, % RAM lub 0\n"
785
"                      dekompresji, dekompresji wielowątkowej lub wszystkich;\n"
721
"                      dla limitów domyślnych"
786
"                      LIMIT jest w bajtach, % RAM lub 0 dla limitów domyślnych"
722
787
723
#: src/xz/message.c:1179
788
#: src/xz/message.c:1052
724
msgid ""
789
msgid ""
725
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
790
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
726
"                      give an error instead of adjusting the settings downwards"
791
"                      give an error instead of adjusting the settings downwards"
Lines 729-735 Link Here
729
"                      pamięci, zostanie zgłoszony błąd zamiast zmniejszania\n"
794
"                      pamięci, zostanie zgłoszony błąd zamiast zmniejszania\n"
730
"                      ustawień"
795
"                      ustawień"
731
796
732
#: src/xz/message.c:1185
797
#: src/xz/message.c:1058
733
msgid ""
798
msgid ""
734
"\n"
799
"\n"
735
" Custom filter chain for compression (alternative for using presets):"
800
" Custom filter chain for compression (alternative for using presets):"
Lines 737-743 Link Here
737
"\n"
802
"\n"
738
" Łańcuch własnych filtrów do kompresji (alternatywa do używania -0 .. -9):"
803
" Łańcuch własnych filtrów do kompresji (alternatywa do używania -0 .. -9):"
739
804
740
#: src/xz/message.c:1194
805
#: src/xz/message.c:1067
741
msgid ""
806
msgid ""
742
"\n"
807
"\n"
743
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
808
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
Lines 766-794 Link Here
766
"                        mf=NAZWA   dopasowywacz (hc3, hc4, bt2, bt3, bt4; bt4)\n"
831
"                        mf=NAZWA   dopasowywacz (hc3, hc4, bt2, bt3, bt4; bt4)\n"
767
"                        depth=ILE  maks. głębokość szukania; 0=auto (domyślne)"
832
"                        depth=ILE  maks. głębokość szukania; 0=auto (domyślne)"
768
833
769
#: src/xz/message.c:1209
834
#: src/xz/message.c:1082
770
msgid ""
835
msgid ""
771
"\n"
836
"\n"
772
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
837
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
838
"  --arm[=OPTS]        ARM BCJ filter\n"
839
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter\n"
840
"  --arm64[=OPTS]      ARM64 BCJ filter\n"
773
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
841
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
774
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
842
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
775
"  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
776
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
777
"  --sparc[=OPTS]      SPARC BCJ filter\n"
843
"  --sparc[=OPTS]      SPARC BCJ filter\n"
778
"                      Valid OPTS for all BCJ filters:\n"
844
"                      Valid OPTS for all BCJ filters:\n"
779
"                        start=NUM  start offset for conversions (default=0)"
845
"                        start=NUM  start offset for conversions (default=0)"
780
msgstr ""
846
msgstr ""
781
"\n"
847
"\n"
782
"  --x86[=OPCJE]       Filtr BCJ x86 (32-bitowy lub 64-bitowy)\n"
848
"  --x86[=OPCJE]       Filtr BCJ x86 (32-bitowy lub 64-bitowy)\n"
849
"  --arm[=OPCJE]       Filtr BCJ ARM\n"
850
"  --armthumb[=OPCJE]  Filtr BCJ ARM-Thumb\n"
851
"  --arm64[=OPCJE]     Filtr BCJ ARM64\n"
783
"  --powerpc[=OPCJE]   Filtr BCJ PowerPC (tylko big-endian)\n"
852
"  --powerpc[=OPCJE]   Filtr BCJ PowerPC (tylko big-endian)\n"
784
"  --ia64[=OPCJE]      Filtr BCJ IA-64 (Itanium)\n"
853
"  --ia64[=OPCJE]      Filtr BCJ IA-64 (Itanium)\n"
785
"  --arm[=OPCJE]       Filtr BCJ ARM (tylko little-endian)\n"
786
"  --armthumb[=OPCJE]  Filtr BCJ ARM-Thumb (tylko little-endian)\n"
787
"  --sparc[=OPCJE]     Filtr BCJ SPARC\n"
854
"  --sparc[=OPCJE]     Filtr BCJ SPARC\n"
788
"                      Poprawne OPCJE dla wszystkich filtrów BCJ:\n"
855
"                      Poprawne OPCJE dla wszystkich filtrów BCJ:\n"
789
"                        start=ILE  offset początku konwersji (domyślnie=0)"
856
"                        start=ILE  offset początku konwersji (domyślnie=0)"
790
857
791
#: src/xz/message.c:1221
858
#: src/xz/message.c:1095
792
msgid ""
859
msgid ""
793
"\n"
860
"\n"
794
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
861
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
Lines 800-806 Link Here
800
"                        dist=ILE   odległość między bajtami odejmowanymi od\n"
867
"                        dist=ILE   odległość między bajtami odejmowanymi od\n"
801
"                                   siebie (1-256; 1)"
868
"                                   siebie (1-256; 1)"
802
869
803
#: src/xz/message.c:1229
870
#: src/xz/message.c:1103
804
msgid ""
871
msgid ""
805
"\n"
872
"\n"
806
" Other options:\n"
873
" Other options:\n"
Lines 808-814 Link Here
808
"\n"
875
"\n"
809
" Inne opcje:\n"
876
" Inne opcje:\n"
810
877
811
#: src/xz/message.c:1232
878
#: src/xz/message.c:1106
812
msgid ""
879
msgid ""
813
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
880
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
814
"  -v, --verbose       be verbose; specify twice for even more verbose"
881
"  -v, --verbose       be verbose; specify twice for even more verbose"
Lines 816-830 Link Here
816
"  -q, --quiet         pominięcie ostrzeżeń; dwukrotne podanie pomija też błędy\n"
883
"  -q, --quiet         pominięcie ostrzeżeń; dwukrotne podanie pomija też błędy\n"
817
"  -v, --verbose       więcej informacji; dwukrotne podanie to jeszcze więcej"
884
"  -v, --verbose       więcej informacji; dwukrotne podanie to jeszcze więcej"
818
885
819
#: src/xz/message.c:1237
886
#: src/xz/message.c:1111
820
msgid "  -Q, --no-warn       make warnings not affect the exit status"
887
msgid "  -Q, --no-warn       make warnings not affect the exit status"
821
msgstr "  -Q, --no-warn       ostrzeżenia nie mają wpływu na status zakończenia"
888
msgstr "  -Q, --no-warn       ostrzeżenia nie mają wpływu na status zakończenia"
822
889
823
#: src/xz/message.c:1239
890
#: src/xz/message.c:1113
824
msgid "      --robot         use machine-parsable messages (useful for scripts)"
891
msgid "      --robot         use machine-parsable messages (useful for scripts)"
825
msgstr "      --robot         komunikaty w formacie dla maszyny (do skryptów)"
892
msgstr "      --robot         komunikaty w formacie dla maszyny (do skryptów)"
826
893
827
#: src/xz/message.c:1242
894
#: src/xz/message.c:1116
828
msgid ""
895
msgid ""
829
"      --info-memory   display the total amount of RAM and the currently active\n"
896
"      --info-memory   display the total amount of RAM and the currently active\n"
830
"                      memory usage limits, and exit"
897
"                      memory usage limits, and exit"
Lines 832-838 Link Here
832
"      --info-memory   wyświetlenie całkowitej ilości pamięci RAM oraz aktualnie\n"
899
"      --info-memory   wyświetlenie całkowitej ilości pamięci RAM oraz aktualnie\n"
833
"                      aktywnych limitów pamięci i zakończenie pracy"
900
"                      aktywnych limitów pamięci i zakończenie pracy"
834
901
835
#: src/xz/message.c:1245
902
#: src/xz/message.c:1119
836
msgid ""
903
msgid ""
837
"  -h, --help          display the short help (lists only the basic options)\n"
904
"  -h, --help          display the short help (lists only the basic options)\n"
838
"  -H, --long-help     display this long help and exit"
905
"  -H, --long-help     display this long help and exit"
Lines 840-846 Link Here
840
"  -h, --help          wyświetlenie krótkiego opisu (tylko podstawowe opcje)\n"
907
"  -h, --help          wyświetlenie krótkiego opisu (tylko podstawowe opcje)\n"
841
"  -H, --long-help     wyświetlenie tego długiego opisu i zakończenie"
908
"  -H, --long-help     wyświetlenie tego długiego opisu i zakończenie"
842
909
843
#: src/xz/message.c:1249
910
#: src/xz/message.c:1123
844
msgid ""
911
msgid ""
845
"  -h, --help          display this short help and exit\n"
912
"  -h, --help          display this short help and exit\n"
846
"  -H, --long-help     display the long help (lists also the advanced options)"
913
"  -H, --long-help     display the long help (lists also the advanced options)"
Lines 848-858 Link Here
848
"  -h, --help          wyświetlenie tego krótkiego opisu i zakończenie\n"
915
"  -h, --help          wyświetlenie tego krótkiego opisu i zakończenie\n"
849
"  -H, --long-help     wyświetlenie długiego opisu (także opcje zaawansowane)"
916
"  -H, --long-help     wyświetlenie długiego opisu (także opcje zaawansowane)"
850
917
851
#: src/xz/message.c:1254
918
#: src/xz/message.c:1128
852
msgid "  -V, --version       display the version number and exit"
919
msgid "  -V, --version       display the version number and exit"
853
msgstr "  -V, --version       wyświetlenie informacji o wersji i zakończenie"
920
msgstr "  -V, --version       wyświetlenie informacji o wersji i zakończenie"
854
921
855
#: src/xz/message.c:1256
922
#: src/xz/message.c:1130
856
msgid ""
923
msgid ""
857
"\n"
924
"\n"
858
"With no FILE, or when FILE is -, read standard input.\n"
925
"With no FILE, or when FILE is -, read standard input.\n"
Lines 864-870 Link Here
864
#. for this package. Please add _another line_ saying
931
#. for this package. Please add _another line_ saying
865
#. "Report translation bugs to <...>\n" with the email or WWW
932
#. "Report translation bugs to <...>\n" with the email or WWW
866
#. address for translation bugs. Thanks.
933
#. address for translation bugs. Thanks.
867
#: src/xz/message.c:1262
934
#: src/xz/message.c:1136
868
#, c-format
935
#, c-format
869
msgid "Report bugs to <%s> (in English or Finnish).\n"
936
msgid "Report bugs to <%s> (in English or Finnish).\n"
870
msgstr ""
937
msgstr ""
Lines 873-884 Link Here
873
"Błędy w tłumaczeniu prosimy zgłaszać na adres\n"
940
"Błędy w tłumaczeniu prosimy zgłaszać na adres\n"
874
"<translation-team-pl@lists.sourceforge.net>.\n"
941
"<translation-team-pl@lists.sourceforge.net>.\n"
875
942
876
#: src/xz/message.c:1264
943
#: src/xz/message.c:1138
877
#, c-format
944
#, c-format
878
msgid "%s home page: <%s>\n"
945
msgid "%s home page: <%s>\n"
879
msgstr "Strona domowa %s: <%s>\n"
946
msgstr "Strona domowa %s: <%s>\n"
880
947
881
#: src/xz/message.c:1268
948
#: src/xz/message.c:1142
882
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
949
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
883
msgstr "TA WERSJA JEST ROZWOJOWA, NIE PRZEZNACZONA DO UŻYTKU PRODUKCYJNEGO."
950
msgstr "TA WERSJA JEST ROZWOJOWA, NIE PRZEZNACZONA DO UŻYTKU PRODUKCYJNEGO."
884
951
Lines 906-932 Link Here
906
msgid "The sum of lc and lp must not exceed 4"
973
msgid "The sum of lc and lp must not exceed 4"
907
msgstr "Suma lc i lp nie może przekroczyć 4"
974
msgstr "Suma lc i lp nie może przekroczyć 4"
908
975
909
#: src/xz/options.c:359
976
#: src/xz/suffix.c:160
910
#, c-format
977
#, c-format
911
msgid "The selected match finder requires at least nice=%<PRIu32>"
912
msgstr "Wybrany dopasowywacz wymaga przynajmniej nice=%<PRIu32>"
913
914
#: src/xz/suffix.c:133 src/xz/suffix.c:258
915
#, c-format
916
msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
917
msgstr "%s: Przy --format=raw i zapisie do pliku wymagana jest opcja --suffix=.ROZ"
918
919
#: src/xz/suffix.c:164
920
#, c-format
921
msgid "%s: Filename has an unknown suffix, skipping"
978
msgid "%s: Filename has an unknown suffix, skipping"
922
msgstr "%s: Nazwa pliku ma nieznane rozszerzenie, pominięto"
979
msgstr "%s: Nazwa pliku ma nieznane rozszerzenie, pominięto"
923
980
924
#: src/xz/suffix.c:185
981
#: src/xz/suffix.c:181
925
#, c-format
982
#, c-format
926
msgid "%s: File already has `%s' suffix, skipping"
983
msgid "%s: File already has `%s' suffix, skipping"
927
msgstr "%s: Plik już ma rozszerzenie `%s', pominięto"
984
msgstr "%s: Plik już ma rozszerzenie `%s', pominięto"
928
985
929
#: src/xz/suffix.c:393
986
#: src/xz/suffix.c:388
930
#, c-format
987
#, c-format
931
msgid "%s: Invalid filename suffix"
988
msgid "%s: Invalid filename suffix"
932
msgstr "%s: Błędne rozszerzenie nazwy pliku"
989
msgstr "%s: Błędne rozszerzenie nazwy pliku"
Lines 950-964 Link Here
950
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
1007
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
951
msgstr "Wartość opcji `%s' musi być w przedziale [%<PRIu64>, %<PRIu64>]"
1008
msgstr "Wartość opcji `%s' musi być w przedziale [%<PRIu64>, %<PRIu64>]"
952
1009
953
#: src/xz/util.c:267
1010
#: src/xz/util.c:269
954
msgid "Empty filename, skipping"
955
msgstr "Pusta nazwa pliku, pominięto"
956
957
#: src/xz/util.c:281
958
msgid "Compressed data cannot be read from a terminal"
1011
msgid "Compressed data cannot be read from a terminal"
959
msgstr "Dane skompresowane nie mogą być czytane z terminala"
1012
msgstr "Dane skompresowane nie mogą być czytane z terminala"
960
1013
961
#: src/xz/util.c:294
1014
#: src/xz/util.c:282
962
msgid "Compressed data cannot be written to a terminal"
1015
msgid "Compressed data cannot be written to a terminal"
963
msgstr "Dane skompresowane nie mogą być zapisywane na terminal"
1016
msgstr "Dane skompresowane nie mogą być zapisywane na terminal"
964
1017
Lines 970-977 Link Here
970
msgid "Unknown error"
1023
msgid "Unknown error"
971
msgstr "Nieznany błąd"
1024
msgstr "Nieznany błąd"
972
1025
973
#~ msgid "Sandbox is disabled due to incompatible command line arguments"
1026
#, c-format
974
#~ msgstr "Piaskownica jest wyłączona ze względu na niezgodne opcje linii poleceń"
1027
#~ msgid "The selected match finder requires at least nice=%<PRIu32>"
975
1028
#~ msgstr "Wybrany dopasowywacz wymaga przynajmniej nice=%<PRIu32>"
976
#~ msgid "Sandbox was successfully enabled"
977
#~ msgstr "Piaskownica została włączona"
(-)xz-5.2.5/po/pt_BR.po (-264 / +350 lines)
Lines 1-13 Link Here
1
# Brazilian Portuguese translations for xz package
1
# Brazilian Portuguese translations for xz package
2
# Traduções em português brasileiro para o pacote xz.
2
# Traduções em português brasileiro para o pacote xz.
3
# This file is put in the public domain.
3
# This file is put in the public domain.
4
# Rafael Fontenelle <rafaelff@gnome.org>, 2019.
4
# Rafael Fontenelle <rafaelff@gnome.org>, 2019-2023.
5
#
5
msgid ""
6
msgid ""
6
msgstr ""
7
msgstr ""
7
"Project-Id-Version: xz 5.2.4\n"
8
"Project-Id-Version: xz 5.4.0-pre2\n"
8
"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
9
"Report-Msgid-Bugs-To: xz@tukaani.org\n"
9
"POT-Creation-Date: 2020-03-17 16:29+0200\n"
10
"POT-Creation-Date: 2023-05-04 22:32+0800\n"
10
"PO-Revision-Date: 2019-03-05 20:30-0200\n"
11
"PO-Revision-Date: 2023-01-12 14:40-0300\n"
11
"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
12
"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
12
"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge.net>\n"
13
"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge.net>\n"
13
"Language: pt_BR\n"
14
"Language: pt_BR\n"
Lines 15-117 Link Here
15
"Content-Type: text/plain; charset=UTF-8\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
16
"Content-Transfer-Encoding: 8bit\n"
17
"Content-Transfer-Encoding: 8bit\n"
17
"X-Bugs: Report translation errors to the Language-Team address.\n"
18
"X-Bugs: Report translation errors to the Language-Team address.\n"
18
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
19
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
19
"X-Generator: Virtaal 1.0.0-beta1\n"
20
"X-Generator: Gtranslator 42.0\n"
20
21
21
#: src/xz/args.c:63
22
#: src/xz/args.c:77
22
#, c-format
23
#, c-format
23
msgid "%s: Invalid argument to --block-list"
24
msgid "%s: Invalid argument to --block-list"
24
msgstr "%s: Argumento inválido para --block-list"
25
msgstr "%s: Argumento inválido para --block-list"
25
26
26
#: src/xz/args.c:73
27
#: src/xz/args.c:87
27
#, c-format
28
#, c-format
28
msgid "%s: Too many arguments to --block-list"
29
msgid "%s: Too many arguments to --block-list"
29
msgstr "%s: Argumentos demais para --block-list"
30
msgstr "%s: Argumentos demais para --block-list"
30
31
31
#: src/xz/args.c:102
32
#: src/xz/args.c:116
32
msgid "0 can only be used as the last element in --block-list"
33
msgid "0 can only be used as the last element in --block-list"
33
msgstr "0 só pode ser usado como o último elemento em --block-list"
34
msgstr "0 só pode ser usado como o último elemento em --block-list"
34
35
35
#: src/xz/args.c:406
36
#: src/xz/args.c:451
36
#, c-format
37
#, c-format
37
msgid "%s: Unknown file format type"
38
msgid "%s: Unknown file format type"
38
msgstr "%s: Tipo de formato de arquivo desconhecido"
39
msgstr "%s: Tipo de formato de arquivo desconhecido"
39
40
40
#: src/xz/args.c:429 src/xz/args.c:437
41
#: src/xz/args.c:474 src/xz/args.c:482
41
#, c-format
42
#, c-format
42
msgid "%s: Unsupported integrity check type"
43
msgid "%s: Unsupported integrity check type"
43
msgstr "%s: Tipo de verificação de integridade sem suporte"
44
msgstr "%s: Tipo de verificação de integridade sem suporte"
44
45
45
#: src/xz/args.c:473
46
#: src/xz/args.c:518
46
msgid "Only one file can be specified with `--files' or `--files0'."
47
msgid "Only one file can be specified with `--files' or `--files0'."
47
msgstr "Somente um arquivo pode ser especificado com \"--files\" ou \"--files0\"."
48
msgstr "Somente um arquivo pode ser especificado com \"--files\" ou \"--files0\"."
48
49
49
#: src/xz/args.c:541
50
#: src/xz/args.c:586
50
#, c-format
51
#, c-format
51
msgid "The environment variable %s contains too many arguments"
52
msgid "The environment variable %s contains too many arguments"
52
msgstr "A variável de ambiente %s contém argumentos demais"
53
msgstr "A variável de ambiente %s contém argumentos demais"
53
54
54
#: src/xz/args.c:643
55
#: src/xz/args.c:688
55
msgid "Compression support was disabled at build time"
56
msgid "Compression support was disabled at build time"
56
msgstr "Suporte a compressão foi desabilitado em tempo de compilação"
57
msgstr "Suporte a compressão foi desabilitado em tempo de compilação"
57
58
58
#: src/xz/args.c:650
59
#: src/xz/args.c:695
59
msgid "Decompression support was disabled at build time"
60
msgid "Decompression support was disabled at build time"
60
msgstr "Suporte a descompressão foi desabilitado em tempo de compilação"
61
msgstr "Suporte a descompressão foi desabilitado em tempo de compilação"
61
62
62
#: src/xz/coder.c:110
63
#: src/xz/args.c:701
64
msgid "Compression of lzip files (.lz) is not supported"
65
msgstr "A compactação de arquivos lzip (.lz) não é suportada"
66
67
#: src/xz/args.c:732
68
#, fuzzy
69
#| msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
70
msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout"
71
msgstr "%s: Com --format=raw, --suffix=.SUF é exigido, a menos que esteja escrevendo para stdout"
72
73
#: src/xz/coder.c:115
63
msgid "Maximum number of filters is four"
74
msgid "Maximum number of filters is four"
64
msgstr "O número máximo de filtros é quatro"
75
msgstr "O número máximo de filtros é quatro"
65
76
66
#: src/xz/coder.c:129
77
#: src/xz/coder.c:134
67
msgid "Memory usage limit is too low for the given filter setup."
78
msgid "Memory usage limit is too low for the given filter setup."
68
msgstr "O limite de uso de memória é baixo demais para a configuração de filtro dada."
79
msgstr "O limite de uso de memória é baixo demais para a configuração de filtro dada."
69
80
70
#: src/xz/coder.c:159
81
#: src/xz/coder.c:169
71
msgid "Using a preset in raw mode is discouraged."
82
msgid "Using a preset in raw mode is discouraged."
72
msgstr "O uso de uma predefinição em modo bruto é desencorajado."
83
msgstr "O uso de uma predefinição em modo bruto é desencorajado."
73
84
74
#: src/xz/coder.c:161
85
#: src/xz/coder.c:171
75
msgid "The exact options of the presets may vary between software versions."
86
msgid "The exact options of the presets may vary between software versions."
76
msgstr "As opções exatas de predefinições podem variar entre versões do software."
87
msgstr "As opções exatas de predefinições podem variar entre versões do software."
77
88
78
#: src/xz/coder.c:184
89
#: src/xz/coder.c:194
79
msgid "The .lzma format supports only the LZMA1 filter"
90
msgid "The .lzma format supports only the LZMA1 filter"
80
msgstr "O formato .lzma possui suporte apenas ao filtro LZMA1"
91
msgstr "O formato .lzma possui suporte apenas ao filtro LZMA1"
81
92
82
#: src/xz/coder.c:192
93
#: src/xz/coder.c:202
83
msgid "LZMA1 cannot be used with the .xz format"
94
msgid "LZMA1 cannot be used with the .xz format"
84
msgstr "LZMA1 não pode ser usado com o formato .xz"
95
msgstr "LZMA1 não pode ser usado com o formato .xz"
85
96
86
#: src/xz/coder.c:209
97
#: src/xz/coder.c:219
87
msgid "The filter chain is incompatible with --flush-timeout"
98
msgid "The filter chain is incompatible with --flush-timeout"
88
msgstr "A cadeia de filtros é incompatível com --flush-timeout"
99
msgstr "A cadeia de filtros é incompatível com --flush-timeout"
89
100
90
#: src/xz/coder.c:215
101
#: src/xz/coder.c:225
91
msgid "Switching to single-threaded mode due to --flush-timeout"
102
msgid "Switching to single-threaded mode due to --flush-timeout"
92
msgstr "Alternando para o modo de thread única por causa de --flush-timeout"
103
msgstr "Alternando para o modo de thread única por causa de --flush-timeout"
93
104
94
#: src/xz/coder.c:235
105
#: src/xz/coder.c:249
95
#, c-format
106
#, c-format
96
msgid "Using up to %<PRIu32> threads."
107
msgid "Using up to %<PRIu32> threads."
97
msgstr "Usando até %<PRIu32> threads."
108
msgstr "Usando até %<PRIu32> threads."
98
109
99
#: src/xz/coder.c:251
110
#: src/xz/coder.c:265
100
msgid "Unsupported filter chain or filter options"
111
msgid "Unsupported filter chain or filter options"
101
msgstr "Opções de filtro ou cadeia de filtros sem suporte"
112
msgstr "Opções de filtro ou cadeia de filtros sem suporte"
102
113
103
#: src/xz/coder.c:263
114
#: src/xz/coder.c:277
104
#, c-format
115
#, c-format
105
msgid "Decompression will need %s MiB of memory."
116
msgid "Decompression will need %s MiB of memory."
106
msgstr "A descompressão precisará de %s MiB de memória."
117
msgstr "A descompressão precisará de %s MiB de memória."
107
118
108
#: src/xz/coder.c:300
119
#: src/xz/coder.c:309
109
#, c-format
120
#, c-format
110
msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
121
msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
111
msgstr "Ajustado o número de threads de %s de %s para não exceder o limite de uso de memória de %s MiB"
122
msgstr "Reduzido o número de threads de %s para %s para não exceder o limite de uso de memória de %s MiB"
112
123
113
#: src/xz/coder.c:354
124
#: src/xz/coder.c:329
114
#, c-format
125
#, c-format
126
msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway."
127
msgstr "Reduzido o número de threads de %s para um. O limite de uso de memória automática de %s MiB ainda está sendo excedido. %s MiB de memória é necessário. Continuando de qualquer maneira."
128
129
#: src/xz/coder.c:356
130
#, c-format
131
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
132
msgstr "Alternando para o modo de thread única para não exceder o limite de uso de memória de %s MiB"
133
134
#: src/xz/coder.c:411
135
#, c-format
115
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
136
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
116
msgstr "Ajustado o tamanho de dicionário de LZMA%c de %s MiB para %s MiB para não exceder o limite de uso de memória de %s MiB"
137
msgstr "Ajustado o tamanho de dicionário de LZMA%c de %s MiB para %s MiB para não exceder o limite de uso de memória de %s MiB"
117
138
Lines 120-130 Link Here
120
msgid "Error creating a pipe: %s"
141
msgid "Error creating a pipe: %s"
121
msgstr "Erro ao criar um pipe: %s"
142
msgstr "Erro ao criar um pipe: %s"
122
143
123
#: src/xz/file_io.c:224
144
#: src/xz/file_io.c:252
124
msgid "Failed to enable the sandbox"
145
msgid "Failed to enable the sandbox"
125
msgstr "Falha ao habilitar o sandbox"
146
msgstr "Falha ao habilitar o sandbox"
126
147
127
#: src/xz/file_io.c:266
148
#: src/xz/file_io.c:294
128
#, c-format
149
#, c-format
129
msgid "%s: poll() failed: %s"
150
msgid "%s: poll() failed: %s"
130
msgstr "%s: poll() falhou: %s"
151
msgstr "%s: poll() falhou: %s"
Lines 139-347 Link Here
139
#. it is possible that the user has put a new file in place
160
#. it is possible that the user has put a new file in place
140
#. of the original file, and in that case it obviously
161
#. of the original file, and in that case it obviously
141
#. shouldn't be removed.
162
#. shouldn't be removed.
142
#: src/xz/file_io.c:333
163
#: src/xz/file_io.c:361
143
#, c-format
164
#, c-format
144
msgid "%s: File seems to have been moved, not removing"
165
msgid "%s: File seems to have been moved, not removing"
145
msgstr "%s: O arquivo parece ter sido movido, não será removido"
166
msgstr "%s: O arquivo parece ter sido movido, não será removido"
146
167
147
#: src/xz/file_io.c:340 src/xz/file_io.c:882
168
#: src/xz/file_io.c:368 src/xz/file_io.c:924
148
#, c-format
169
#, c-format
149
msgid "%s: Cannot remove: %s"
170
msgid "%s: Cannot remove: %s"
150
msgstr "%s: Não foi possível remover: %s"
171
msgstr "%s: Não foi possível remover: %s"
151
172
152
#: src/xz/file_io.c:366
173
#: src/xz/file_io.c:394
153
#, c-format
174
#, c-format
154
msgid "%s: Cannot set the file owner: %s"
175
msgid "%s: Cannot set the file owner: %s"
155
msgstr "%s: Não foi possível definir o dono do arquivo: %s"
176
msgstr "%s: Não foi possível definir o dono do arquivo: %s"
156
177
157
#: src/xz/file_io.c:372
178
#: src/xz/file_io.c:407
158
#, c-format
179
#, c-format
159
msgid "%s: Cannot set the file group: %s"
180
msgid "%s: Cannot set the file group: %s"
160
msgstr "%s: Não foi possível definir o grupo do arquivo: %s"
181
msgstr "%s: Não foi possível definir o grupo do arquivo: %s"
161
182
162
#: src/xz/file_io.c:391
183
#: src/xz/file_io.c:426
163
#, c-format
184
#, c-format
164
msgid "%s: Cannot set the file permissions: %s"
185
msgid "%s: Cannot set the file permissions: %s"
165
msgstr "%s: Não foi possível definir as permissões do arquivo: %s"
186
msgstr "%s: Não foi possível definir as permissões do arquivo: %s"
166
187
167
#: src/xz/file_io.c:517
188
#: src/xz/file_io.c:552
168
#, c-format
189
#, c-format
169
msgid "Error getting the file status flags from standard input: %s"
190
msgid "Error getting the file status flags from standard input: %s"
170
msgstr "Erro ao obter os sinalizadores de status da entrada padrão: %s"
191
msgstr "Erro ao obter os sinalizadores de status da entrada padrão: %s"
171
192
172
#: src/xz/file_io.c:574 src/xz/file_io.c:636
193
#: src/xz/file_io.c:610 src/xz/file_io.c:672
173
#, c-format
194
#, c-format
174
msgid "%s: Is a symbolic link, skipping"
195
msgid "%s: Is a symbolic link, skipping"
175
msgstr "%s: É um link simbólico, ignorando"
196
msgstr "%s: É um link simbólico, ignorando"
176
197
177
#: src/xz/file_io.c:665
198
#: src/xz/file_io.c:701
178
#, c-format
199
#, c-format
179
msgid "%s: Is a directory, skipping"
200
msgid "%s: Is a directory, skipping"
180
msgstr "%s: É um diretório, ignorando"
201
msgstr "%s: É um diretório, ignorando"
181
202
182
#: src/xz/file_io.c:671
203
#: src/xz/file_io.c:707
183
#, c-format
204
#, c-format
184
msgid "%s: Not a regular file, skipping"
205
msgid "%s: Not a regular file, skipping"
185
msgstr "%s: Não é um arquivo comum, ignorando"
206
msgstr "%s: Não é um arquivo comum, ignorando"
186
207
187
#: src/xz/file_io.c:688
208
#: src/xz/file_io.c:724
188
#, c-format
209
#, c-format
189
msgid "%s: File has setuid or setgid bit set, skipping"
210
msgid "%s: File has setuid or setgid bit set, skipping"
190
msgstr "%s: O arquivo possui o bit setuid ou setgid definido, ignorando"
211
msgstr "%s: O arquivo possui o bit setuid ou setgid definido, ignorando"
191
212
192
#: src/xz/file_io.c:695
213
#: src/xz/file_io.c:731
193
#, c-format
214
#, c-format
194
msgid "%s: File has sticky bit set, skipping"
215
msgid "%s: File has sticky bit set, skipping"
195
msgstr "%s: O arquivo possui o bit sticky definido, ignorando"
216
msgstr "%s: O arquivo possui o bit sticky definido, ignorando"
196
217
197
#: src/xz/file_io.c:702
218
#: src/xz/file_io.c:738
198
#, c-format
219
#, c-format
199
msgid "%s: Input file has more than one hard link, skipping"
220
msgid "%s: Input file has more than one hard link, skipping"
200
msgstr "%s: O arquivo de entrada possui mais de um link absoluto, ignorando"
221
msgstr "%s: O arquivo de entrada possui mais de um link físico, ignorando"
201
222
202
#: src/xz/file_io.c:792
223
#: src/xz/file_io.c:780
224
msgid "Empty filename, skipping"
225
msgstr "Nome de arquivo vazio, ignorando"
226
227
#: src/xz/file_io.c:834
203
#, c-format
228
#, c-format
204
msgid "Error restoring the status flags to standard input: %s"
229
msgid "Error restoring the status flags to standard input: %s"
205
msgstr "Erro ao restaurar os sinalizadores de status para entrada padrão: %s"
230
msgstr "Erro ao restaurar os sinalizadores de status para entrada padrão: %s"
206
231
207
#: src/xz/file_io.c:840
232
#: src/xz/file_io.c:882
208
#, c-format
233
#, c-format
209
msgid "Error getting the file status flags from standard output: %s"
234
msgid "Error getting the file status flags from standard output: %s"
210
msgstr "Erro ao obter os sinalizadores de status de arquivo da saída padrão: %s"
235
msgstr "Erro ao obter os sinalizadores de status de arquivo da saída padrão: %s"
211
236
212
#: src/xz/file_io.c:1018
237
#: src/xz/file_io.c:1060
213
#, c-format
238
#, c-format
214
msgid "Error restoring the O_APPEND flag to standard output: %s"
239
msgid "Error restoring the O_APPEND flag to standard output: %s"
215
msgstr "Erro ao restaurar o sinalizador O_APPEND para a saída padrão: %s"
240
msgstr "Erro ao restaurar o sinalizador O_APPEND para a saída padrão: %s"
216
241
217
#: src/xz/file_io.c:1030
242
#: src/xz/file_io.c:1072
218
#, c-format
243
#, c-format
219
msgid "%s: Closing the file failed: %s"
244
msgid "%s: Closing the file failed: %s"
220
msgstr "%s: Fechamento do arquivo falhou: %s"
245
msgstr "%s: Fechamento do arquivo falhou: %s"
221
246
222
#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
247
#: src/xz/file_io.c:1108 src/xz/file_io.c:1371
223
#, c-format
248
#, c-format
224
msgid "%s: Seeking failed when trying to create a sparse file: %s"
249
msgid "%s: Seeking failed when trying to create a sparse file: %s"
225
msgstr "%s: Busca falhou ao tentar criar um arquivo esparso: %s"
250
msgstr "%s: Busca falhou ao tentar criar um arquivo esparso: %s"
226
251
227
#: src/xz/file_io.c:1167
252
#: src/xz/file_io.c:1209
228
#, c-format
253
#, c-format
229
msgid "%s: Read error: %s"
254
msgid "%s: Read error: %s"
230
msgstr "%s: Erro de leitura: %s"
255
msgstr "%s: Erro de leitura: %s"
231
256
232
#: src/xz/file_io.c:1191
257
#: src/xz/file_io.c:1239
233
#, c-format
258
#, c-format
234
msgid "%s: Error seeking the file: %s"
259
msgid "%s: Error seeking the file: %s"
235
msgstr "%s: Erro ao buscar o arquivo: %s"
260
msgstr "%s: Erro ao buscar o arquivo: %s"
236
261
237
#: src/xz/file_io.c:1201
262
#: src/xz/file_io.c:1263
238
#, c-format
263
#, c-format
239
msgid "%s: Unexpected end of file"
264
msgid "%s: Unexpected end of file"
240
msgstr "%s: Fim de arquivo inesperado"
265
msgstr "%s: Fim de arquivo inesperado"
241
266
242
#: src/xz/file_io.c:1260
267
#: src/xz/file_io.c:1322
243
#, c-format
268
#, c-format
244
msgid "%s: Write error: %s"
269
msgid "%s: Write error: %s"
245
msgstr "%s: Erro de escrita: %s"
270
msgstr "%s: Erro de escrita: %s"
246
271
247
#: src/xz/hardware.c:137
272
#: src/xz/hardware.c:238
248
msgid "Disabled"
273
msgid "Disabled"
249
msgstr "Desabilitado"
274
msgstr "Desabilitado"
250
275
251
# Espaços adicionados para manter alinhamento com mensagens adjacentes -- Rafael
276
#: src/xz/hardware.c:269
252
#. TRANSLATORS: Test with "xz --info-memory" to see if
277
msgid "Amount of physical memory (RAM):"
253
#. the alignment looks nice.
278
msgstr "Quantidade total de memória física (RAM):"
254
#: src/xz/hardware.c:156
255
msgid "Total amount of physical memory (RAM): "
256
msgstr "Quantidade total de memória física (RAM):    "
257
279
258
# Espaços adicionados para manter alinhamento com mensagens adjacentes -- Rafael
280
#: src/xz/hardware.c:270
259
#: src/xz/hardware.c:158
281
msgid "Number of processor threads:"
260
msgid "Memory usage limit for compression:    "
282
msgstr "Número de threads de processador:"
261
msgstr "Limite de uso de memória para compressão:    "
262
283
263
# Espaços reduzidos para manter alinhamento com mensagens adjacentes -- Rafael
284
#: src/xz/hardware.c:271
264
#: src/xz/hardware.c:160
285
msgid "Compression:"
265
msgid "Memory usage limit for decompression:  "
286
msgstr "Compactação:"
266
msgstr "Limite de uso de memória para descompressão: "
267
287
288
#: src/xz/hardware.c:272
289
msgid "Decompression:"
290
msgstr "Descompactação:"
291
292
#: src/xz/hardware.c:273
293
msgid "Multi-threaded decompression:"
294
msgstr "Descompactação com várias threads:"
295
296
#: src/xz/hardware.c:274
297
msgid "Default for -T0:"
298
msgstr "Padrão para -T0:"
299
300
#: src/xz/hardware.c:292
301
msgid "Hardware information:"
302
msgstr "Informações de hardware:"
303
304
#: src/xz/hardware.c:299
305
msgid "Memory usage limits:"
306
msgstr "Memory usage limits:"
307
308
#: src/xz/list.c:68
309
msgid "Streams:"
310
msgstr "Fluxos:"
311
312
#: src/xz/list.c:69
313
msgid "Blocks:"
314
msgstr "Blocos:"
315
316
#: src/xz/list.c:70
317
msgid "Compressed size:"
318
msgstr "Tamanho compactado:"
319
320
#: src/xz/list.c:71
321
msgid "Uncompressed size:"
322
msgstr "Tamanho não compactado:"
323
324
#: src/xz/list.c:72
325
msgid "Ratio:"
326
msgstr "Proporção:"
327
328
#: src/xz/list.c:73
329
msgid "Check:"
330
msgstr "Verificação:"
331
332
#: src/xz/list.c:74
333
msgid "Stream Padding:"
334
msgstr "Ajuste do fluxo:"
335
336
#: src/xz/list.c:75
337
msgid "Memory needed:"
338
msgstr "Memória exigida:"
339
340
#: src/xz/list.c:76
341
msgid "Sizes in headers:"
342
msgstr "Tamanhos nos cabeçalhos:"
343
344
#: src/xz/list.c:79
345
msgid "Number of files:"
346
msgstr "Número de arquivos:"
347
348
#: src/xz/list.c:122
349
msgid "Stream"
350
msgstr "Fluxo"
351
352
#: src/xz/list.c:123
353
msgid "Block"
354
msgstr "Bloco"
355
356
#: src/xz/list.c:124
357
msgid "Blocks"
358
msgstr "Blocos"
359
360
#: src/xz/list.c:125
361
msgid "CompOffset"
362
msgstr "DeslocComp"
363
364
#: src/xz/list.c:126
365
msgid "UncompOffset"
366
msgstr "DeslocDescomp"
367
368
#: src/xz/list.c:127
369
msgid "CompSize"
370
msgstr "TamComp"
371
372
#: src/xz/list.c:128
373
msgid "UncompSize"
374
msgstr "TamDescomp"
375
376
#: src/xz/list.c:129
377
msgid "TotalSize"
378
msgstr "TamTotal"
379
380
#: src/xz/list.c:130
381
msgid "Ratio"
382
msgstr "Proporção"
383
384
#: src/xz/list.c:131
385
msgid "Check"
386
msgstr "Verificação"
387
388
#: src/xz/list.c:132
389
msgid "CheckVal"
390
msgstr "ValorVerific."
391
392
#: src/xz/list.c:133
393
msgid "Padding"
394
msgstr "Preench."
395
396
#: src/xz/list.c:134
397
msgid "Header"
398
msgstr "Cabeçalho"
399
400
#: src/xz/list.c:135
401
msgid "Flags"
402
msgstr "Sinalizadores"
403
404
#: src/xz/list.c:136
405
msgid "MemUsage"
406
msgstr "UsoMem"
407
408
#: src/xz/list.c:137
409
msgid "Filters"
410
msgstr "Filtros"
411
268
#. TRANSLATORS: Indicates that there is no integrity check.
412
#. TRANSLATORS: Indicates that there is no integrity check.
269
#. This string is used in tables, so the width must not
413
#. This string is used in tables. In older xz version this
270
#. exceed ten columns with a fixed-width font.
414
#. string was limited to ten columns in a fixed-width font, but
271
#: src/xz/list.c:65
415
#. nowadays there is no strict length restriction anymore.
416
#: src/xz/list.c:169
272
msgid "None"
417
msgid "None"
273
msgstr "Nenhuma"
418
msgstr "Nenhuma"
274
419
275
#. TRANSLATORS: Indicates that integrity check name is not known,
420
#. TRANSLATORS: Indicates that integrity check name is not known,
276
#. but the Check ID is known (here 2). This and other "Unknown-N"
421
#. but the Check ID is known (here 2). In older xz version these
277
#. strings are used in tables, so the width must not exceed ten
422
#. strings were limited to ten columns in a fixed-width font, but
278
#. columns with a fixed-width font. It's OK to omit the dash if
423
#. nowadays there is no strict length restriction anymore.
279
#. you need space for one extra letter, but don't use spaces.
424
#: src/xz/list.c:175
280
#: src/xz/list.c:72
281
msgid "Unknown-2"
425
msgid "Unknown-2"
282
msgstr "Incógnito2"
426
msgstr "Incógnito2"
283
427
284
# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
428
# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
285
#: src/xz/list.c:73
429
#: src/xz/list.c:176
286
msgid "Unknown-3"
430
msgid "Unknown-3"
287
msgstr "Incógnito3"
431
msgstr "Incógnito3"
288
432
289
# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
433
# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
290
#: src/xz/list.c:75
434
#: src/xz/list.c:178
291
msgid "Unknown-5"
435
msgid "Unknown-5"
292
msgstr "Incógnito5"
436
msgstr "Incógnito5"
293
437
294
# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
438
# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
295
#: src/xz/list.c:76
439
#: src/xz/list.c:179
296
msgid "Unknown-6"
440
msgid "Unknown-6"
297
msgstr "Incógnito6"
441
msgstr "Incógnito6"
298
442
299
# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
443
# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
300
#: src/xz/list.c:77
444
#: src/xz/list.c:180
301
msgid "Unknown-7"
445
msgid "Unknown-7"
302
msgstr "Incógnito7"
446
msgstr "Incógnito7"
303
447
304
# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
448
# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
305
#: src/xz/list.c:78
449
#: src/xz/list.c:181
306
msgid "Unknown-8"
450
msgid "Unknown-8"
307
msgstr "Incógnito8"
451
msgstr "Incógnito8"
308
452
309
# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
453
# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
310
#: src/xz/list.c:79
454
#: src/xz/list.c:182
311
msgid "Unknown-9"
455
msgid "Unknown-9"
312
msgstr "Incógnito9"
456
msgstr "Incógnito9"
313
457
314
# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
458
# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
315
#: src/xz/list.c:81
459
#: src/xz/list.c:184
316
msgid "Unknown-11"
460
msgid "Unknown-11"
317
msgstr "Incógnito11"
461
msgstr "Incógnito11"
318
462
319
# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
463
# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
320
#: src/xz/list.c:82
464
#: src/xz/list.c:185
321
msgid "Unknown-12"
465
msgid "Unknown-12"
322
msgstr "Incógnito12"
466
msgstr "Incógnito12"
323
467
324
# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
468
# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
325
#: src/xz/list.c:83
469
#: src/xz/list.c:186
326
msgid "Unknown-13"
470
msgid "Unknown-13"
327
msgstr "Incógnito13"
471
msgstr "Incógnito13"
328
472
329
# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
473
# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
330
#: src/xz/list.c:84
474
#: src/xz/list.c:187
331
msgid "Unknown-14"
475
msgid "Unknown-14"
332
msgstr "Incógnito14"
476
msgstr "Incógnito14"
333
477
334
# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
478
# Não exceder 10 caracteres e espaços não são permitidos -- Rafael
335
#: src/xz/list.c:85
479
#: src/xz/list.c:188
336
msgid "Unknown-15"
480
msgid "Unknown-15"
337
msgstr "Incógnito15"
481
msgstr "Incógnito15"
338
482
339
#: src/xz/list.c:153
483
#: src/xz/list.c:351
340
#, c-format
484
#, c-format
341
msgid "%s: File is empty"
485
msgid "%s: File is empty"
342
msgstr "%s: O arquivo está vazio"
486
msgstr "%s: O arquivo está vazio"
343
487
344
#: src/xz/list.c:158
488
#: src/xz/list.c:356
345
#, c-format
489
#, c-format
346
msgid "%s: Too small to be a valid .xz file"
490
msgid "%s: Too small to be a valid .xz file"
347
msgstr "%s: Pequeno demais para ser um arquivo .xz válido"
491
msgstr "%s: Pequeno demais para ser um arquivo .xz válido"
Lines 350-475 Link Here
350
#. to Ratio, the columns are right aligned. Check and Filename
494
#. to Ratio, the columns are right aligned. Check and Filename
351
#. are left aligned. If you need longer words, it's OK to
495
#. are left aligned. If you need longer words, it's OK to
352
#. use two lines here. Test with "xz -l foo.xz".
496
#. use two lines here. Test with "xz -l foo.xz".
353
#: src/xz/list.c:677
497
#: src/xz/list.c:730
354
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
498
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
355
msgstr "Fluxos Blocos   Comprimido Descomprimid  Propo  Verif   Nome de Arquivo"
499
msgstr "Fluxos Blocos   Comprimido Descomprimid  Propo  Verif   Nome de Arquivo"
356
500
357
#: src/xz/list.c:717
501
#: src/xz/list.c:1025 src/xz/list.c:1203
358
#, c-format
359
msgid "  Streams:            %s\n"
360
msgstr "  Fluxos:             %s\n"
361
362
#: src/xz/list.c:719
363
#, c-format
364
msgid "  Blocks:             %s\n"
365
msgstr "  Blocos:             %s\n"
366
367
#: src/xz/list.c:721
368
#, c-format
369
msgid "  Compressed size:    %s\n"
370
msgstr "  Tam. comprimido:    %s\n"
371
372
#: src/xz/list.c:724
373
#, c-format
374
msgid "  Uncompressed size:  %s\n"
375
msgstr "  Tam. descomprimido: %s\n"
376
377
#: src/xz/list.c:727
378
#, c-format
379
msgid "  Ratio:              %s\n"
380
msgstr "  Proporção:          %s\n"
381
382
#: src/xz/list.c:729
383
#, c-format
384
msgid "  Check:              %s\n"
385
msgstr "  Verificação:        %s\n"
386
387
#: src/xz/list.c:730
388
#, c-format
389
msgid "  Stream padding:     %s\n"
390
msgstr "  Ajuste do fluxo:    %s\n"
391
392
#. TRANSLATORS: The second line is column headings. All except
393
#. Check are right aligned; Check is left aligned. Test with
394
#. "xz -lv foo.xz".
395
#: src/xz/list.c:758
396
msgid ""
397
"  Streams:\n"
398
"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
399
msgstr ""
400
"  Fluxos:\n"
401
"    Fluxo     Blocos      DeslocComp   DeslocDescomp     TamanhoComp  TamanhoDescomp  Propo  Verif       Ajuste"
402
403
#. TRANSLATORS: The second line is column headings. All
404
#. except Check are right aligned; Check is left aligned.
405
#: src/xz/list.c:813
406
#, c-format
407
msgid ""
408
"  Blocks:\n"
409
"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
410
msgstr ""
411
"  Blocos:\n"
412
"    Fluxo      Bloco      DeslocComp   DeslocDescomp    TamanhoTotal   TamanhoDecomp  Propo  Verif"
413
414
#. TRANSLATORS: These are additional column headings
415
#. for the most verbose listing mode. CheckVal
416
#. (Check value), Flags, and Filters are left aligned.
417
#. Header (Block Header Size), CompSize, and MemUsage
418
#. are right aligned. %*s is replaced with 0-120
419
#. spaces to make the CheckVal column wide enough.
420
#. Test with "xz -lvv foo.xz".
421
#: src/xz/list.c:825
422
#, c-format
423
msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
424
msgstr "      ValVerif %*s  Cabeç  Sinaliz       TamComp      UsoMem  Filtros"
425
426
#: src/xz/list.c:903 src/xz/list.c:1078
427
#, c-format
428
msgid "  Memory needed:      %s MiB\n"
429
msgstr "  Memória exigida:    %s MiB\n"
430
431
# Espaço adicionado para promover alinhamento, vide "xz -lvv foo.xz"
432
#: src/xz/list.c:905 src/xz/list.c:1080
433
#, c-format
434
msgid "  Sizes in headers:   %s\n"
435
msgstr "  Tam. cabeçalhos:    %s\n"
436
437
#: src/xz/list.c:906 src/xz/list.c:1081
438
msgid "Yes"
502
msgid "Yes"
439
msgstr "Sim"
503
msgstr "Sim"
440
504
441
#: src/xz/list.c:906 src/xz/list.c:1081
505
#: src/xz/list.c:1025 src/xz/list.c:1203
442
msgid "No"
506
msgid "No"
443
msgstr "Não"
507
msgstr "Não"
444
508
445
#: src/xz/list.c:907 src/xz/list.c:1082
509
#: src/xz/list.c:1027 src/xz/list.c:1205
446
#, c-format
510
#, c-format
447
msgid "  Minimum XZ Utils version: %s\n"
511
msgid "  Minimum XZ Utils version: %s\n"
448
msgstr "  Versão mínima do XZ Utils: %s\n"
512
msgstr "  Versão mínima do XZ Utils: %s\n"
449
513
450
#. TRANSLATORS: %s is an integer. Only the plural form of this
514
#. TRANSLATORS: %s is an integer. Only the plural form of this
451
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
515
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
452
#: src/xz/list.c:1057
516
#: src/xz/list.c:1178
453
#, c-format
517
#, c-format
454
msgid "%s file\n"
518
msgid "%s file\n"
455
msgid_plural "%s files\n"
519
msgid_plural "%s files\n"
456
msgstr[0] "%s arquivo\n"
520
msgstr[0] "%s arquivo\n"
457
msgstr[1] "%s arquivos\n"
521
msgstr[1] "%s arquivos\n"
458
522
459
#: src/xz/list.c:1070
523
#: src/xz/list.c:1191
460
msgid "Totals:"
524
msgid "Totals:"
461
msgstr "Totais:"
525
msgstr "Totais:"
462
526
463
#: src/xz/list.c:1071
527
#: src/xz/list.c:1269
464
#, c-format
465
msgid "  Number of files:    %s\n"
466
msgstr "  Núm. de arquivos:   %s\n"
467
468
#: src/xz/list.c:1146
469
msgid "--list works only on .xz files (--format=xz or --format=auto)"
528
msgid "--list works only on .xz files (--format=xz or --format=auto)"
470
msgstr "--list funciona apenas em arquivos .xz (--format=xz ou --format=auto)"
529
msgstr "--list funciona apenas em arquivos .xz (--format=xz ou --format=auto)"
471
530
472
#: src/xz/list.c:1152
531
#: src/xz/list.c:1275
473
msgid "--list does not support reading from standard input"
532
msgid "--list does not support reading from standard input"
474
msgstr "--list não possui suporte a leitura da entrada padrão"
533
msgstr "--list não possui suporte a leitura da entrada padrão"
475
534
Lines 488-498 Link Here
488
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
547
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
489
msgstr "%s: Caractere nulo encontrado ao ler nomes de arquivos; talvez você queria usar \"--files0\" em vez de \"--files\"?"
548
msgstr "%s: Caractere nulo encontrado ao ler nomes de arquivos; talvez você queria usar \"--files0\" em vez de \"--files\"?"
490
549
491
#: src/xz/main.c:174
550
#: src/xz/main.c:188
492
msgid "Compression and decompression with --robot are not supported yet."
551
msgid "Compression and decompression with --robot are not supported yet."
493
msgstr "Ainda não há suporte a compressão e descompressão com --robot."
552
msgstr "Ainda não há suporte a compressão e descompressão com --robot."
494
553
495
#: src/xz/main.c:252
554
#: src/xz/main.c:266
496
msgid "Cannot read data from standard input when reading filenames from standard input"
555
msgid "Cannot read data from standard input when reading filenames from standard input"
497
msgstr "Não é possível ler dados da entrada padrão ao ler nomes de arquivos da entrada padrão"
556
msgstr "Não é possível ler dados da entrada padrão ao ler nomes de arquivos da entrada padrão"
498
557
Lines 500-567 Link Here
500
#. of the line in messages. Usually it becomes "xz: ".
559
#. of the line in messages. Usually it becomes "xz: ".
501
#. This is a translatable string because French needs
560
#. This is a translatable string because French needs
502
#. a space before a colon.
561
#. a space before a colon.
503
#: src/xz/message.c:728
562
#: src/xz/message.c:725
504
#, c-format
563
#, c-format
505
msgid "%s: "
564
msgid "%s: "
506
msgstr "%s: "
565
msgstr "%s: "
507
566
508
#: src/xz/message.c:791 src/xz/message.c:841
567
#: src/xz/message.c:797 src/xz/message.c:856
509
msgid "Internal error (bug)"
568
msgid "Internal error (bug)"
510
msgstr "Erro interno (bug)"
569
msgstr "Erro interno (bug)"
511
570
512
#: src/xz/message.c:798
571
#: src/xz/message.c:804
513
msgid "Cannot establish signal handlers"
572
msgid "Cannot establish signal handlers"
514
msgstr "Não foi possível estabelecer manipuladores de sinais"
573
msgstr "Não foi possível estabelecer manipuladores de sinais"
515
574
516
#: src/xz/message.c:807
575
#: src/xz/message.c:813
517
msgid "No integrity check; not verifying file integrity"
576
msgid "No integrity check; not verifying file integrity"
518
msgstr "Sem verificação de integridade; não será verificada a integridade do arquivo"
577
msgstr "Sem verificação de integridade; não será verificada a integridade do arquivo"
519
578
520
#: src/xz/message.c:810
579
#: src/xz/message.c:816
521
msgid "Unsupported type of integrity check; not verifying file integrity"
580
msgid "Unsupported type of integrity check; not verifying file integrity"
522
msgstr "Tipo de verificação de integridade sem suporte; não será verificada a integridade do arquivo"
581
msgstr "Tipo de verificação de integridade sem suporte; não será verificada a integridade do arquivo"
523
582
524
#: src/xz/message.c:817
583
#: src/xz/message.c:823
525
msgid "Memory usage limit reached"
584
msgid "Memory usage limit reached"
526
msgstr "Limite de uso de memória alcançado"
585
msgstr "Limite de uso de memória alcançado"
527
586
528
#: src/xz/message.c:820
587
#: src/xz/message.c:826
529
msgid "File format not recognized"
588
msgid "File format not recognized"
530
msgstr "Formato de arquivo não reconhecido"
589
msgstr "Formato de arquivo não reconhecido"
531
590
532
#: src/xz/message.c:823
591
#: src/xz/message.c:829
533
msgid "Unsupported options"
592
msgid "Unsupported options"
534
msgstr "Opções sem suporte"
593
msgstr "Opções sem suporte"
535
594
536
#: src/xz/message.c:826
595
#: src/xz/message.c:832
537
msgid "Compressed data is corrupt"
596
msgid "Compressed data is corrupt"
538
msgstr "Os dados comprimidos estão corrompidos"
597
msgstr "Os dados comprimidos estão corrompidos"
539
598
540
#: src/xz/message.c:829
599
#: src/xz/message.c:835
541
msgid "Unexpected end of input"
600
msgid "Unexpected end of input"
542
msgstr "Fim da entrada inesperado"
601
msgstr "Fim da entrada inesperado"
543
602
544
#: src/xz/message.c:862
603
#: src/xz/message.c:877
545
#, c-format
604
#, c-format
546
msgid "%s MiB of memory is required. The limiter is disabled."
605
msgid "%s MiB of memory is required. The limiter is disabled."
547
msgstr "%s MiB de memória é necessário. O limitador está desabilitado."
606
msgstr "%s MiB de memória é necessário. O limitador está desabilitado."
548
607
549
#: src/xz/message.c:890
608
#: src/xz/message.c:905
550
#, c-format
609
#, c-format
551
msgid "%s MiB of memory is required. The limit is %s."
610
msgid "%s MiB of memory is required. The limit is %s."
552
msgstr "%s MiB de memória é necessário. O limite é %s."
611
msgstr "%s MiB de memória é necessário. O limite é %s."
553
612
554
#: src/xz/message.c:1057
613
#: src/xz/message.c:924
555
#, c-format
614
#, c-format
556
msgid "%s: Filter chain: %s\n"
615
msgid "%s: Filter chain: %s\n"
557
msgstr "%s: Cadeia de filtros: %s\n"
616
msgstr "%s: Cadeia de filtros: %s\n"
558
617
559
#: src/xz/message.c:1067
618
#: src/xz/message.c:935
560
#, c-format
619
#, c-format
561
msgid "Try `%s --help' for more information."
620
msgid "Try `%s --help' for more information."
562
msgstr "Tente \"%s --help\" para mais informações."
621
msgstr "Tente \"%s --help\" para mais informações."
563
622
564
#: src/xz/message.c:1093
623
#: src/xz/message.c:961
565
#, c-format
624
#, c-format
566
msgid ""
625
msgid ""
567
"Usage: %s [OPTION]... [FILE]...\n"
626
"Usage: %s [OPTION]... [FILE]...\n"
Lines 572-586 Link Here
572
"Comprime e descomprime ARQUIVOs no formato .xz.\n"
631
"Comprime e descomprime ARQUIVOs no formato .xz.\n"
573
"\n"
632
"\n"
574
633
575
#: src/xz/message.c:1100
634
#: src/xz/message.c:968
576
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
635
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
577
msgstr "Argumentos obrigatórios para opções longas também o são para opções curtas.\n"
636
msgstr "Argumentos obrigatórios para opções longas também o são para opções curtas.\n"
578
637
579
#: src/xz/message.c:1104
638
#: src/xz/message.c:972
580
msgid " Operation mode:\n"
639
msgid " Operation mode:\n"
581
msgstr " Modo de operação:\n"
640
msgstr " Modo de operação:\n"
582
641
583
#: src/xz/message.c:1107
642
#: src/xz/message.c:975
584
msgid ""
643
msgid ""
585
"  -z, --compress      force compression\n"
644
"  -z, --compress      force compression\n"
586
"  -d, --decompress    force decompression\n"
645
"  -d, --decompress    force decompression\n"
Lines 592-598 Link Here
592
"  -t, --test          testa a integridade do arquivo comprimido\n"
651
"  -t, --test          testa a integridade do arquivo comprimido\n"
593
"  -l, --list          lista informações sobre arquivos .xz"
652
"  -l, --list          lista informações sobre arquivos .xz"
594
653
595
#: src/xz/message.c:1113
654
#: src/xz/message.c:981
596
msgid ""
655
msgid ""
597
"\n"
656
"\n"
598
" Operation modifiers:\n"
657
" Operation modifiers:\n"
Lines 600-606 Link Here
600
"\n"
659
"\n"
601
" Modificadores de opções:\n"
660
" Modificadores de opções:\n"
602
661
603
#: src/xz/message.c:1116
662
#: src/xz/message.c:984
604
msgid ""
663
msgid ""
605
"  -k, --keep          keep (don't delete) input files\n"
664
"  -k, --keep          keep (don't delete) input files\n"
606
"  -f, --force         force overwrite of output file and (de)compress links\n"
665
"  -f, --force         force overwrite of output file and (de)compress links\n"
Lines 612-618 Link Here
612
"  -c, --stdout        escreve a entrada padrão e não exclui os arquivos\n"
671
"  -c, --stdout        escreve a entrada padrão e não exclui os arquivos\n"
613
"                      de entrada"
672
"                      de entrada"
614
673
615
#: src/xz/message.c:1122
674
#: src/xz/message.c:993
616
msgid ""
675
msgid ""
617
"      --single-stream decompress only the first stream, and silently\n"
676
"      --single-stream decompress only the first stream, and silently\n"
618
"                      ignore possible remaining input data"
677
"                      ignore possible remaining input data"
Lines 620-626 Link Here
620
"      --single-stream descomprime apenas o primeiro fluxo, e ignora de forma\n"
679
"      --single-stream descomprime apenas o primeiro fluxo, e ignora de forma\n"
621
"                      silenciosa possíveis dados de entrada restantes"
680
"                      silenciosa possíveis dados de entrada restantes"
622
681
623
#: src/xz/message.c:1125
682
#: src/xz/message.c:996
624
msgid ""
683
msgid ""
625
"      --no-sparse     do not create sparse files when decompressing\n"
684
"      --no-sparse     do not create sparse files when decompressing\n"
626
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
685
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
Lines 640-646 Link Here
640
"                      similar a --files, mas usa o caractere nulo como\n"
699
"                      similar a --files, mas usa o caractere nulo como\n"
641
"                      terminador"
700
"                      terminador"
642
701
643
#: src/xz/message.c:1134
702
#: src/xz/message.c:1005
644
msgid ""
703
msgid ""
645
"\n"
704
"\n"
646
" Basic file format and compression options:\n"
705
" Basic file format and compression options:\n"
Lines 648-671 Link Here
648
"\n"
707
"\n"
649
" Opções básicas de formato de arquivo e compressão:\n"
708
" Opções básicas de formato de arquivo e compressão:\n"
650
709
651
#: src/xz/message.c:1136
710
#: src/xz/message.c:1007
652
msgid ""
711
msgid ""
653
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
712
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
654
"                      `auto' (default), `xz', `lzma', and `raw'\n"
713
"                      `auto' (default), `xz', `lzma', `lzip', and `raw'\n"
655
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
714
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
656
"                      `crc32', `crc64' (default), or `sha256'"
715
"                      `crc32', `crc64' (default), or `sha256'"
657
msgstr ""
716
msgstr ""
658
"  -F, --format=FMT    formato de arquivo para codificar ou decodificar;\n"
717
"  -F, --format=FMT    formato de arquivo para codificar ou decodificar;\n"
659
"                      valores possíveis são\n"
718
"                      valores possíveis são\n"
660
"                      \"auto\" (padrão), \"xz\", \"lzma\" e \"raw\"\n"
719
"                      \"auto\" (padrão), \"xz\", \"lzma\", \"lzip\" e \"raw\"\n"
661
"  -C, --check=VERIF   tipo de verificação de integridade: \"none\" (cuidado!),\n"
720
"  -C, --check=VERIF   tipo de verificação de integridade: \"none\" (cuidado!),\n"
662
"                      \"crc32\", \"crc64\" (padrão) ou \"sha256\""
721
"                      \"crc32\", \"crc64\" (padrão) ou \"sha256\""
663
722
664
#: src/xz/message.c:1141
723
#: src/xz/message.c:1012
665
msgid "      --ignore-check  don't verify the integrity check when decompressing"
724
msgid "      --ignore-check  don't verify the integrity check when decompressing"
666
msgstr "      --ignore-check  não faz a verificação de integridade ao descomprimir"
725
msgstr "      --ignore-check  não faz a verificação de integridade ao descomprimir"
667
726
668
#: src/xz/message.c:1145
727
#: src/xz/message.c:1016
669
msgid ""
728
msgid ""
670
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
729
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
671
"                      decompressor memory usage into account before using 7-9!"
730
"                      decompressor memory usage into account before using 7-9!"
Lines 674-680 Link Here
674
"                      memória do compressor *e* descompressor em conta\n"
733
"                      memória do compressor *e* descompressor em conta\n"
675
"                      antes de usar 7-9!"
734
"                      antes de usar 7-9!"
676
735
677
#: src/xz/message.c:1149
736
#: src/xz/message.c:1020
678
msgid ""
737
msgid ""
679
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
738
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
680
"                      does not affect decompressor memory requirements"
739
"                      does not affect decompressor memory requirements"
Lines 683-689 Link Here
683
"                      tempo de CPU; não afeta os requisitos de memória do\n"
742
"                      tempo de CPU; não afeta os requisitos de memória do\n"
684
"                      descompressor"
743
"                      descompressor"
685
744
686
#: src/xz/message.c:1153
745
#: src/xz/message.c:1024
687
msgid ""
746
msgid ""
688
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
747
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
689
"                      to use as many threads as there are processor cores"
748
"                      to use as many threads as there are processor cores"
Lines 692-698 Link Here
692
"                      0 para usar o máximo de threads que há de núcleos de\n"
751
"                      0 para usar o máximo de threads que há de núcleos de\n"
693
"                      processador"
752
"                      processador"
694
753
695
#: src/xz/message.c:1158
754
#: src/xz/message.c:1029
696
msgid ""
755
msgid ""
697
"      --block-size=SIZE\n"
756
"      --block-size=SIZE\n"
698
"                      start a new .xz block after every SIZE bytes of input;\n"
757
"                      start a new .xz block after every SIZE bytes of input;\n"
Lines 703-709 Link Here
703
"                      use isso para definido o tamanho de bloco para\n"
762
"                      use isso para definido o tamanho de bloco para\n"
704
"                      compressão com threads"
763
"                      compressão com threads"
705
764
706
#: src/xz/message.c:1162
765
#: src/xz/message.c:1033
707
msgid ""
766
msgid ""
708
"      --block-list=SIZES\n"
767
"      --block-list=SIZES\n"
709
"                      start a new .xz block after the given comma-separated\n"
768
"                      start a new .xz block after the given comma-separated\n"
Lines 713-719 Link Here
713
"                      inicia um novo bloco .xz após os intervalos dados,\n"
772
"                      inicia um novo bloco .xz após os intervalos dados,\n"
714
"                      separados por vírgula, de dados descomprimidos"
773
"                      separados por vírgula, de dados descomprimidos"
715
774
716
#: src/xz/message.c:1166
775
#: src/xz/message.c:1037
717
msgid ""
776
msgid ""
718
"      --flush-timeout=TIMEOUT\n"
777
"      --flush-timeout=TIMEOUT\n"
719
"                      when compressing, if more than TIMEOUT milliseconds has\n"
778
"                      when compressing, if more than TIMEOUT milliseconds has\n"
Lines 726-748 Link Here
726
"                      de mais entrada bloquearia, todos os dados pendentes\n"
785
"                      de mais entrada bloquearia, todos os dados pendentes\n"
727
"                      serão liberados"
786
"                      serão liberados"
728
787
729
#: src/xz/message.c:1172
788
#: src/xz/message.c:1043
730
#, no-c-format
789
#, no-c-format
731
msgid ""
790
msgid ""
732
"      --memlimit-compress=LIMIT\n"
791
"      --memlimit-compress=LIMIT\n"
733
"      --memlimit-decompress=LIMIT\n"
792
"      --memlimit-decompress=LIMIT\n"
793
"      --memlimit-mt-decompress=LIMIT\n"
734
"  -M, --memlimit=LIMIT\n"
794
"  -M, --memlimit=LIMIT\n"
735
"                      set memory usage limit for compression, decompression,\n"
795
"                      set memory usage limit for compression, decompression,\n"
736
"                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
796
"                      threaded decompression, or all of these; LIMIT is in\n"
797
"                      bytes, % of RAM, or 0 for defaults"
737
msgstr ""
798
msgstr ""
738
"      --memlimit-compress=LIMITE\n"
799
"      --memlimit-compress=LIMITE\n"
739
"      --memlimit-decompress=LIMITE\n"
800
"      --memlimit-decompress=LIMITE\n"
801
"      --memlimit-mt-decompress=LIMITE\n"
740
"  -M, --memlimit=LIMITE\n"
802
"  -M, --memlimit=LIMITE\n"
741
"                      define o limite de uso de memória para compressão,\n"
803
"                      define o limite de uso de memória para compressão,\n"
742
"                      descompressão ou ambos; LIMITE é em bytes, % de RAM\n"
804
"                      descompressão, compactação em threads ou todas essas;\n"
743
"                      ou 0 para padrões"
805
"                      LIMITE é em bytes, % de RAM ou 0 para padrões"
744
806
745
#: src/xz/message.c:1179
807
#: src/xz/message.c:1052
746
msgid ""
808
msgid ""
747
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
809
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
748
"                      give an error instead of adjusting the settings downwards"
810
"                      give an error instead of adjusting the settings downwards"
Lines 751-757 Link Here
751
"                      de uso de memória, fornece um erro em vez de\n"
813
"                      de uso de memória, fornece um erro em vez de\n"
752
"                      ajustar as configurações para baixo"
814
"                      ajustar as configurações para baixo"
753
815
754
#: src/xz/message.c:1185
816
#: src/xz/message.c:1058
755
msgid ""
817
msgid ""
756
"\n"
818
"\n"
757
" Custom filter chain for compression (alternative for using presets):"
819
" Custom filter chain for compression (alternative for using presets):"
Lines 759-765 Link Here
759
"\n"
821
"\n"
760
" Cadeia de filtros personalizada para compressão (alternativa à predefinição):"
822
" Cadeia de filtros personalizada para compressão (alternativa à predefinição):"
761
823
762
#: src/xz/message.c:1194
824
#: src/xz/message.c:1067
763
msgid ""
825
msgid ""
764
"\n"
826
"\n"
765
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
827
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
Lines 789-818 Link Here
789
"                        depth=NUM  máximo de profundidade de pesquisa;\n"
851
"                        depth=NUM  máximo de profundidade de pesquisa;\n"
790
"                                   0=automatic (padrão)"
852
"                                   0=automatic (padrão)"
791
853
792
#: src/xz/message.c:1209
854
#: src/xz/message.c:1082
793
msgid ""
855
msgid ""
794
"\n"
856
"\n"
795
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
857
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
858
"  --arm[=OPTS]        ARM BCJ filter\n"
859
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter\n"
860
"  --arm64[=OPTS]      ARM64 BCJ filter\n"
796
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
861
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
797
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
862
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
798
"  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
799
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
800
"  --sparc[=OPTS]      SPARC BCJ filter\n"
863
"  --sparc[=OPTS]      SPARC BCJ filter\n"
801
"                      Valid OPTS for all BCJ filters:\n"
864
"                      Valid OPTS for all BCJ filters:\n"
802
"                        start=NUM  start offset for conversions (default=0)"
865
"                        start=NUM  start offset for conversions (default=0)"
803
msgstr ""
866
msgstr ""
804
"\n"
867
"\n"
805
"  --x86[=OPÇÕES]      filtro BCJ x86 (32 bits e 64 bits)\n"
868
"  --x86[=OPÇÕES]      filtro BCJ x86 (32 bits e 64 bits)\n"
869
"  --arm[=OPÇÕES]      filtro BCJ ARM\n"
870
"  --armthumb[=OPÇÕES] filtro BCJ ARM-Thumb\n"
871
"  --arm64[=OPÇÕES]    filtro BCJ ARM64\n"
806
"  --powerpc[=OPÇÕES]  filtro BCJ PowerPC (big endian apenas)\n"
872
"  --powerpc[=OPÇÕES]  filtro BCJ PowerPC (big endian apenas)\n"
807
"  --ia64[=OPÇÕES]     filtro BCJ IA-64 (Itanium)\n"
873
"  --ia64[=OPÇÕES]     filtro BCJ IA-64 (Itanium)\n"
808
"  --arm[=OPÇÕES]      filtro BCJ ARM (little endian apenas)\n"
809
"  --armthumb[=OPÇÕES] filtro BCJ ARM-Thumb (little endian apenas)\n"
810
"  --sparc[=OPÇÕES]    filtro BCJ SPARC\n"
874
"  --sparc[=OPÇÕES]    filtro BCJ SPARC\n"
811
"                      OPÇÕES válidas para todos os filtros BCJ:\n"
875
"                      OPÇÕES válidas para todos os filtros BCJ:\n"
812
"                        start=NUM  deslocamento inicial para conversões\n"
876
"                        start=NUM  deslocamento inicial para conversões\n"
813
"                                   (default=0)"
877
"                                   (padrão=0)"
814
878
815
#: src/xz/message.c:1221
879
#: src/xz/message.c:1095
816
msgid ""
880
msgid ""
817
"\n"
881
"\n"
818
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
882
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
Lines 824-830 Link Here
824
"                        dist=NÚM   distância entre bytes sendo subtraído\n"
888
"                        dist=NÚM   distância entre bytes sendo subtraído\n"
825
"                                   de cada um (1-256; 1)"
889
"                                   de cada um (1-256; 1)"
826
890
827
#: src/xz/message.c:1229
891
#: src/xz/message.c:1103
828
msgid ""
892
msgid ""
829
"\n"
893
"\n"
830
" Other options:\n"
894
" Other options:\n"
Lines 832-838 Link Here
832
"\n"
896
"\n"
833
" Outras opções:\n"
897
" Outras opções:\n"
834
898
835
#: src/xz/message.c:1232
899
#: src/xz/message.c:1106
836
msgid ""
900
msgid ""
837
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
901
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
838
"  -v, --verbose       be verbose; specify twice for even more verbose"
902
"  -v, --verbose       be verbose; specify twice for even more verbose"
Lines 840-854 Link Here
840
"  -q, --quiet         suprime avisos, use duas vezes para suprimir erros também\n"
904
"  -q, --quiet         suprime avisos, use duas vezes para suprimir erros também\n"
841
"  -v, --verbose       ser detalhado; use duas vezes para ainda mais detalhes"
905
"  -v, --verbose       ser detalhado; use duas vezes para ainda mais detalhes"
842
906
843
#: src/xz/message.c:1237
907
#: src/xz/message.c:1111
844
msgid "  -Q, --no-warn       make warnings not affect the exit status"
908
msgid "  -Q, --no-warn       make warnings not affect the exit status"
845
msgstr "  -Q, --no-warn       faz os avisos não afetarem o status de saída"
909
msgstr "  -Q, --no-warn       faz os avisos não afetarem o status de saída"
846
910
847
#: src/xz/message.c:1239
911
#: src/xz/message.c:1113
848
msgid "      --robot         use machine-parsable messages (useful for scripts)"
912
msgid "      --robot         use machine-parsable messages (useful for scripts)"
849
msgstr "      --robot         usa mensagens analisáveis por máquina (útil p/ scripts)"
913
msgstr "      --robot         usa mensagens analisáveis por máquina (útil p/ scripts)"
850
914
851
#: src/xz/message.c:1242
915
#: src/xz/message.c:1116
852
msgid ""
916
msgid ""
853
"      --info-memory   display the total amount of RAM and the currently active\n"
917
"      --info-memory   display the total amount of RAM and the currently active\n"
854
"                      memory usage limits, and exit"
918
"                      memory usage limits, and exit"
Lines 856-862 Link Here
856
"      --info-memory   exibe a quantidade total de RAM e os limites de uso\n"
920
"      --info-memory   exibe a quantidade total de RAM e os limites de uso\n"
857
"                      de memória atualmente ativos e sai"
921
"                      de memória atualmente ativos e sai"
858
922
859
#: src/xz/message.c:1245
923
#: src/xz/message.c:1119
860
msgid ""
924
msgid ""
861
"  -h, --help          display the short help (lists only the basic options)\n"
925
"  -h, --help          display the short help (lists only the basic options)\n"
862
"  -H, --long-help     display this long help and exit"
926
"  -H, --long-help     display this long help and exit"
Lines 864-870 Link Here
864
"  -h, --help          exibe a ajuda curto (lista apenas as opções básicas)\n"
928
"  -h, --help          exibe a ajuda curto (lista apenas as opções básicas)\n"
865
"  -H, --long-help     exibe essa ajuda longa e sai"
929
"  -H, --long-help     exibe essa ajuda longa e sai"
866
930
867
#: src/xz/message.c:1249
931
#: src/xz/message.c:1123
868
msgid ""
932
msgid ""
869
"  -h, --help          display this short help and exit\n"
933
"  -h, --help          display this short help and exit\n"
870
"  -H, --long-help     display the long help (lists also the advanced options)"
934
"  -H, --long-help     display the long help (lists also the advanced options)"
Lines 872-882 Link Here
872
"  -h, --help          exibe essa ajuda curta e sai\n"
936
"  -h, --help          exibe essa ajuda curta e sai\n"
873
"  -H, --long-help     exibe a ajuda longa (lista também as opções avançadas)"
937
"  -H, --long-help     exibe a ajuda longa (lista também as opções avançadas)"
874
938
875
#: src/xz/message.c:1254
939
#: src/xz/message.c:1128
876
msgid "  -V, --version       display the version number and exit"
940
msgid "  -V, --version       display the version number and exit"
877
msgstr "  -V, --version       exibe o número de versão e sai"
941
msgstr "  -V, --version       exibe o número de versão e sai"
878
942
879
#: src/xz/message.c:1256
943
#: src/xz/message.c:1130
880
msgid ""
944
msgid ""
881
"\n"
945
"\n"
882
"With no FILE, or when FILE is -, read standard input.\n"
946
"With no FILE, or when FILE is -, read standard input.\n"
Lines 888-906 Link Here
888
#. for this package. Please add _another line_ saying
952
#. for this package. Please add _another line_ saying
889
#. "Report translation bugs to <...>\n" with the email or WWW
953
#. "Report translation bugs to <...>\n" with the email or WWW
890
#. address for translation bugs. Thanks.
954
#. address for translation bugs. Thanks.
891
#: src/xz/message.c:1262
955
#: src/xz/message.c:1136
892
#, c-format
956
#, c-format
893
msgid "Report bugs to <%s> (in English or Finnish).\n"
957
msgid "Report bugs to <%s> (in English or Finnish).\n"
894
msgstr ""
958
msgstr ""
895
"Relate erros para <%s> (em inglês ou finlandês).\n"
959
"Relate erros para <%s> (em inglês ou finlandês).\n"
896
"Relate erros de tradução para <https://translationproject.org/team/pt_BR.html>.\n"
960
"Relate erros de tradução para <https://translationproject.org/team/pt_BR.html>.\n"
897
961
898
#: src/xz/message.c:1264
962
#: src/xz/message.c:1138
899
#, c-format
963
#, c-format
900
msgid "%s home page: <%s>\n"
964
msgid "%s home page: <%s>\n"
901
msgstr "Site do %s: <%s>\n"
965
msgstr "Site do %s: <%s>\n"
902
966
903
#: src/xz/message.c:1268
967
#: src/xz/message.c:1142
904
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
968
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
905
msgstr "ESSA É UMA VERSÃO DE DESENVOLVIMENTO, NÃO DESTINADA PARA USO EM PRODUÇÃO."
969
msgstr "ESSA É UMA VERSÃO DE DESENVOLVIMENTO, NÃO DESTINADA PARA USO EM PRODUÇÃO."
906
970
Lines 928-954 Link Here
928
msgid "The sum of lc and lp must not exceed 4"
992
msgid "The sum of lc and lp must not exceed 4"
929
msgstr "A soma de lc e lp não deve exceder 4"
993
msgstr "A soma de lc e lp não deve exceder 4"
930
994
931
#: src/xz/options.c:359
995
#: src/xz/suffix.c:160
932
#, c-format
996
#, c-format
933
msgid "The selected match finder requires at least nice=%<PRIu32>"
934
msgstr "O localizador de correspondência selecionado requer pelo menos nice=%<PRIu32>"
935
936
#: src/xz/suffix.c:133 src/xz/suffix.c:258
937
#, c-format
938
msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
939
msgstr "%s: Com --format=raw, --suffix=.SUF é exigido, a menos que esteja escrevendo para stdout"
940
941
#: src/xz/suffix.c:164
942
#, c-format
943
msgid "%s: Filename has an unknown suffix, skipping"
997
msgid "%s: Filename has an unknown suffix, skipping"
944
msgstr "%s: O nome de arquivo tem um sufixo desconhecido, ignorando"
998
msgstr "%s: O nome de arquivo tem um sufixo desconhecido, ignorando"
945
999
946
#: src/xz/suffix.c:185
1000
#: src/xz/suffix.c:181
947
#, c-format
1001
#, c-format
948
msgid "%s: File already has `%s' suffix, skipping"
1002
msgid "%s: File already has `%s' suffix, skipping"
949
msgstr "%s: O arquivo já tem o sufixo \"%s\", ignorando"
1003
msgstr "%s: O arquivo já tem o sufixo \"%s\", ignorando"
950
1004
951
#: src/xz/suffix.c:393
1005
#: src/xz/suffix.c:388
952
#, c-format
1006
#, c-format
953
msgid "%s: Invalid filename suffix"
1007
msgid "%s: Invalid filename suffix"
954
msgstr "%s: Sufixo de nome de arquivo inválido"
1008
msgstr "%s: Sufixo de nome de arquivo inválido"
Lines 972-986 Link Here
972
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
1026
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
973
msgstr "O valor da opção \"%s\" deve estar no intervalo [%<PRIu64>, %<PRIu64>]"
1027
msgstr "O valor da opção \"%s\" deve estar no intervalo [%<PRIu64>, %<PRIu64>]"
974
1028
975
#: src/xz/util.c:267
1029
#: src/xz/util.c:269
976
msgid "Empty filename, skipping"
977
msgstr "Nome de arquivo vazio, ignorando"
978
979
#: src/xz/util.c:281
980
msgid "Compressed data cannot be read from a terminal"
1030
msgid "Compressed data cannot be read from a terminal"
981
msgstr "Dados comprimidos não podem ser lidos de um terminal"
1031
msgstr "Dados comprimidos não podem ser lidos de um terminal"
982
1032
983
#: src/xz/util.c:294
1033
#: src/xz/util.c:282
984
msgid "Compressed data cannot be written to a terminal"
1034
msgid "Compressed data cannot be written to a terminal"
985
msgstr "Dados comprimidos não podem ser escrito para um terminal"
1035
msgstr "Dados comprimidos não podem ser escrito para um terminal"
986
1036
Lines 997-999 Link Here
997
1047
998
#~ msgid "Sandbox was successfully enabled"
1048
#~ msgid "Sandbox was successfully enabled"
999
#~ msgstr "Sandbox foi habilitado com sucesso"
1049
#~ msgstr "Sandbox foi habilitado com sucesso"
1050
1051
# Espaços adicionados para manter alinhamento com mensagens adjacentes -- Rafael
1052
#~ msgid "Memory usage limit for compression:    "
1053
#~ msgstr "Limite de uso de memória para compressão:    "
1054
1055
#~ msgid "  Streams:            %s\n"
1056
#~ msgstr "  Fluxos:             %s\n"
1057
1058
#~ msgid "  Blocks:             %s\n"
1059
#~ msgstr "  Blocos:             %s\n"
1060
1061
#~ msgid "  Ratio:              %s\n"
1062
#~ msgstr "  Proporção:          %s\n"
1063
1064
#~ msgid "  Check:              %s\n"
1065
#~ msgstr "  Verificação:        %s\n"
1066
1067
#~ msgid ""
1068
#~ "  Streams:\n"
1069
#~ "    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
1070
#~ msgstr ""
1071
#~ "  Fluxos:\n"
1072
#~ "    Fluxo     Blocos      DeslocComp   DeslocDescomp     TamanhoComp  TamanhoDescomp  Propo  Verif       Ajuste"
1073
1074
#~ msgid ""
1075
#~ "  Blocks:\n"
1076
#~ "    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
1077
#~ msgstr ""
1078
#~ "  Blocos:\n"
1079
#~ "    Fluxo      Bloco      DeslocComp   DeslocDescomp    TamanhoTotal   TamanhoDecomp  Propo  Verif"
1080
1081
#~ msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
1082
#~ msgstr "      ValVerif %*s  Cabeç  Sinaliz       TamComp      UsoMem  Filtros"
1083
1084
#~ msgid "The selected match finder requires at least nice=%<PRIu32>"
1085
#~ msgstr "O localizador de correspondência selecionado requer pelo menos nice=%<PRIu32>"
(-)xz-5.2.5/po/vi.po (-246 / +384 lines)
Lines 6-13 Link Here
6
msgid ""
6
msgid ""
7
msgstr ""
7
msgstr ""
8
"Project-Id-Version: xz 5.1.4beta\n"
8
"Project-Id-Version: xz 5.1.4beta\n"
9
"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
9
"Report-Msgid-Bugs-To: xz@tukaani.org\n"
10
"POT-Creation-Date: 2020-03-17 16:29+0200\n"
10
"POT-Creation-Date: 2023-05-04 22:32+0800\n"
11
"PO-Revision-Date: 2014-09-25 09:06+0700\n"
11
"PO-Revision-Date: 2014-09-25 09:06+0700\n"
12
"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
12
"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
13
"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
13
"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
Lines 18-116 Link Here
18
"Plural-Forms: nplurals=1; plural=0;\n"
18
"Plural-Forms: nplurals=1; plural=0;\n"
19
"X-Poedit-Basepath: ../\n"
19
"X-Poedit-Basepath: ../\n"
20
20
21
#: src/xz/args.c:63
21
#: src/xz/args.c:77
22
#, c-format
22
#, c-format
23
msgid "%s: Invalid argument to --block-list"
23
msgid "%s: Invalid argument to --block-list"
24
msgstr "%s: Đối số cho --block-list không hợp lệ"
24
msgstr "%s: Đối số cho --block-list không hợp lệ"
25
25
26
#: src/xz/args.c:73
26
#: src/xz/args.c:87
27
#, c-format
27
#, c-format
28
msgid "%s: Too many arguments to --block-list"
28
msgid "%s: Too many arguments to --block-list"
29
msgstr "%s: Quá nhiều đối số cho --block-list"
29
msgstr "%s: Quá nhiều đối số cho --block-list"
30
30
31
#: src/xz/args.c:102
31
#: src/xz/args.c:116
32
msgid "0 can only be used as the last element in --block-list"
32
msgid "0 can only be used as the last element in --block-list"
33
msgstr "0 chỉ có thể dùng như là phần tử cuối trong --block-list"
33
msgstr "0 chỉ có thể dùng như là phần tử cuối trong --block-list"
34
34
35
#: src/xz/args.c:406
35
#: src/xz/args.c:451
36
#, c-format
36
#, c-format
37
msgid "%s: Unknown file format type"
37
msgid "%s: Unknown file format type"
38
msgstr "%s: Không hiểu kiểu định dạng tập tin"
38
msgstr "%s: Không hiểu kiểu định dạng tập tin"
39
39
40
#: src/xz/args.c:429 src/xz/args.c:437
40
#: src/xz/args.c:474 src/xz/args.c:482
41
#, c-format
41
#, c-format
42
msgid "%s: Unsupported integrity check type"
42
msgid "%s: Unsupported integrity check type"
43
msgstr "%s: Không hỗ trợ kiểu kiểm tra toàn vẹn"
43
msgstr "%s: Không hỗ trợ kiểu kiểm tra toàn vẹn"
44
44
45
#: src/xz/args.c:473
45
#: src/xz/args.c:518
46
msgid "Only one file can be specified with `--files' or `--files0'."
46
msgid "Only one file can be specified with `--files' or `--files0'."
47
msgstr "Chỉ được đưa ra một tập tin cho “--files” hay “--files0”."
47
msgstr "Chỉ được đưa ra một tập tin cho “--files” hay “--files0”."
48
48
49
#: src/xz/args.c:541
49
#: src/xz/args.c:586
50
#, c-format
50
#, c-format
51
msgid "The environment variable %s contains too many arguments"
51
msgid "The environment variable %s contains too many arguments"
52
msgstr "Biến môi trường %s chứa quá nhiều đối số"
52
msgstr "Biến môi trường %s chứa quá nhiều đối số"
53
53
54
#: src/xz/args.c:643
54
#: src/xz/args.c:688
55
msgid "Compression support was disabled at build time"
55
msgid "Compression support was disabled at build time"
56
msgstr ""
56
msgstr ""
57
57
58
#: src/xz/args.c:650
58
#: src/xz/args.c:695
59
msgid "Decompression support was disabled at build time"
59
msgid "Decompression support was disabled at build time"
60
msgstr ""
60
msgstr ""
61
61
62
#: src/xz/coder.c:110
62
#: src/xz/args.c:701
63
msgid "Compression of lzip files (.lz) is not supported"
64
msgstr ""
65
66
#: src/xz/args.c:732
67
#, fuzzy
68
#| msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
69
msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout"
70
msgstr "%s: Nếu --format=raw, --suffix=.SUF sẽ được yêu cầu trừ trường hợp ghi ra đầu ra tiêu chuẩn"
71
72
#: src/xz/coder.c:115
63
msgid "Maximum number of filters is four"
73
msgid "Maximum number of filters is four"
64
msgstr "Số lượng bộ lọc tối đa là bốn"
74
msgstr "Số lượng bộ lọc tối đa là bốn"
65
75
66
#: src/xz/coder.c:129
76
#: src/xz/coder.c:134
67
msgid "Memory usage limit is too low for the given filter setup."
77
msgid "Memory usage limit is too low for the given filter setup."
68
msgstr "Mức giới hạn dùng bộ nhớ là quá thấp cho việc cài đặt bộ lọc đã cho."
78
msgstr "Mức giới hạn dùng bộ nhớ là quá thấp cho việc cài đặt bộ lọc đã cho."
69
79
70
#: src/xz/coder.c:159
80
#: src/xz/coder.c:169
71
msgid "Using a preset in raw mode is discouraged."
81
msgid "Using a preset in raw mode is discouraged."
72
msgstr "Dùng hiện tại trong chế độ thô là ngớ ngẩn."
82
msgstr "Dùng hiện tại trong chế độ thô là ngớ ngẩn."
73
83
74
#: src/xz/coder.c:161
84
#: src/xz/coder.c:171
75
msgid "The exact options of the presets may vary between software versions."
85
msgid "The exact options of the presets may vary between software versions."
76
msgstr "Các tùy chọn trích xuất của chỉnh trước có thể biến đổi phụ thuộc vào phiên bản."
86
msgstr "Các tùy chọn trích xuất của chỉnh trước có thể biến đổi phụ thuộc vào phiên bản."
77
87
78
#: src/xz/coder.c:184
88
#: src/xz/coder.c:194
79
msgid "The .lzma format supports only the LZMA1 filter"
89
msgid "The .lzma format supports only the LZMA1 filter"
80
msgstr "Định dạng .lzma chỉ hỗ trợ bộ lọc LZMA1"
90
msgstr "Định dạng .lzma chỉ hỗ trợ bộ lọc LZMA1"
81
91
82
#: src/xz/coder.c:192
92
#: src/xz/coder.c:202
83
msgid "LZMA1 cannot be used with the .xz format"
93
msgid "LZMA1 cannot be used with the .xz format"
84
msgstr "LZMA1 không thể được dùng với định dạng .xz"
94
msgstr "LZMA1 không thể được dùng với định dạng .xz"
85
95
86
#: src/xz/coder.c:209
96
#: src/xz/coder.c:219
87
msgid "The filter chain is incompatible with --flush-timeout"
97
msgid "The filter chain is incompatible with --flush-timeout"
88
msgstr "Móc xích lọc là không tương thích với --flush-timeout"
98
msgstr "Móc xích lọc là không tương thích với --flush-timeout"
89
99
90
#: src/xz/coder.c:215
100
#: src/xz/coder.c:225
91
msgid "Switching to single-threaded mode due to --flush-timeout"
101
msgid "Switching to single-threaded mode due to --flush-timeout"
92
msgstr "Chuyển sang chế độ đơn tuyến trình bởi vì --flush-timeout"
102
msgstr "Chuyển sang chế độ đơn tuyến trình bởi vì --flush-timeout"
93
103
94
#: src/xz/coder.c:235
104
#: src/xz/coder.c:249
95
#, c-format
105
#, c-format
96
msgid "Using up to %<PRIu32> threads."
106
msgid "Using up to %<PRIu32> threads."
97
msgstr "Dùng đến %<PRIu32> tuyến trình."
107
msgstr "Dùng đến %<PRIu32> tuyến trình."
98
108
99
#: src/xz/coder.c:251
109
#: src/xz/coder.c:265
100
msgid "Unsupported filter chain or filter options"
110
msgid "Unsupported filter chain or filter options"
101
msgstr "Không hỗ trợ lọc móc xích hay tùy chọn lọc"
111
msgstr "Không hỗ trợ lọc móc xích hay tùy chọn lọc"
102
112
103
#: src/xz/coder.c:263
113
#: src/xz/coder.c:277
104
#, c-format
114
#, c-format
105
msgid "Decompression will need %s MiB of memory."
115
msgid "Decompression will need %s MiB of memory."
106
msgstr "Giải nén sẽ cần %s MiB bộ nhớ."
116
msgstr "Giải nén sẽ cần %s MiB bộ nhớ."
107
117
108
#: src/xz/coder.c:300
118
#: src/xz/coder.c:309
119
#, fuzzy, c-format
120
#| msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
121
msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
122
msgstr "Chỉnh số lượng tuyến trình từ %s thành %s để không vượt quá giới hạn tiêu dùng bộ nhớ là %s MiB"
123
124
#: src/xz/coder.c:329
109
#, c-format
125
#, c-format
110
msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
126
msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway."
127
msgstr ""
128
129
#: src/xz/coder.c:356
130
#, fuzzy, c-format
131
#| msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
132
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
111
msgstr "Chỉnh số lượng tuyến trình từ %s thành %s để không vượt quá giới hạn tiêu dùng bộ nhớ là %s MiB"
133
msgstr "Chỉnh số lượng tuyến trình từ %s thành %s để không vượt quá giới hạn tiêu dùng bộ nhớ là %s MiB"
112
134
113
#: src/xz/coder.c:354
135
#: src/xz/coder.c:411
114
#, c-format
136
#, c-format
115
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
137
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
116
msgstr "Chỉnh cỡ từ điển LZMA%c từ %s MiB thành %s MiB để không vượt quá giới hạn tiêu dùng bộ nhớ là %s MiB"
138
msgstr "Chỉnh cỡ từ điển LZMA%c từ %s MiB thành %s MiB để không vượt quá giới hạn tiêu dùng bộ nhớ là %s MiB"
Lines 120-130 Link Here
120
msgid "Error creating a pipe: %s"
142
msgid "Error creating a pipe: %s"
121
msgstr "Gặp lỗi khi tạo một ống dẫn: %s"
143
msgstr "Gặp lỗi khi tạo một ống dẫn: %s"
122
144
123
#: src/xz/file_io.c:224
145
#: src/xz/file_io.c:252
124
msgid "Failed to enable the sandbox"
146
msgid "Failed to enable the sandbox"
125
msgstr ""
147
msgstr ""
126
148
127
#: src/xz/file_io.c:266
149
#: src/xz/file_io.c:294
128
#, c-format
150
#, c-format
129
msgid "%s: poll() failed: %s"
151
msgid "%s: poll() failed: %s"
130
msgstr "%s: hàm poll() bị lỗi: %s"
152
msgstr "%s: hàm poll() bị lỗi: %s"
Lines 139-333 Link Here
139
#. it is possible that the user has put a new file in place
161
#. it is possible that the user has put a new file in place
140
#. of the original file, and in that case it obviously
162
#. of the original file, and in that case it obviously
141
#. shouldn't be removed.
163
#. shouldn't be removed.
142
#: src/xz/file_io.c:333
164
#: src/xz/file_io.c:361
143
#, c-format
165
#, c-format
144
msgid "%s: File seems to have been moved, not removing"
166
msgid "%s: File seems to have been moved, not removing"
145
msgstr "%s: Tập tin có lẽ đã bị di chuyển, không phải gỡ bỏ"
167
msgstr "%s: Tập tin có lẽ đã bị di chuyển, không phải gỡ bỏ"
146
168
147
#: src/xz/file_io.c:340 src/xz/file_io.c:882
169
#: src/xz/file_io.c:368 src/xz/file_io.c:924
148
#, c-format
170
#, c-format
149
msgid "%s: Cannot remove: %s"
171
msgid "%s: Cannot remove: %s"
150
msgstr "%s: Không thể gỡ bỏ: %s"
172
msgstr "%s: Không thể gỡ bỏ: %s"
151
173
152
#: src/xz/file_io.c:366
174
#: src/xz/file_io.c:394
153
#, c-format
175
#, c-format
154
msgid "%s: Cannot set the file owner: %s"
176
msgid "%s: Cannot set the file owner: %s"
155
msgstr "%s: Không thể đặt chủ sở hữu tập tin: %s"
177
msgstr "%s: Không thể đặt chủ sở hữu tập tin: %s"
156
178
157
#: src/xz/file_io.c:372
179
#: src/xz/file_io.c:407
158
#, c-format
180
#, c-format
159
msgid "%s: Cannot set the file group: %s"
181
msgid "%s: Cannot set the file group: %s"
160
msgstr "%s: Không thể đặt nhóm tập tin: %s"
182
msgstr "%s: Không thể đặt nhóm tập tin: %s"
161
183
162
#: src/xz/file_io.c:391
184
#: src/xz/file_io.c:426
163
#, c-format
185
#, c-format
164
msgid "%s: Cannot set the file permissions: %s"
186
msgid "%s: Cannot set the file permissions: %s"
165
msgstr "%s: Không thể đặt chế độ đọc ghi cho tập tin: %s"
187
msgstr "%s: Không thể đặt chế độ đọc ghi cho tập tin: %s"
166
188
167
#: src/xz/file_io.c:517
189
#: src/xz/file_io.c:552
168
#, c-format
190
#, c-format
169
msgid "Error getting the file status flags from standard input: %s"
191
msgid "Error getting the file status flags from standard input: %s"
170
msgstr "Gặp lỗi khi lấy các cờ trạng thái tập tin từ đầu vào tiêu chuẩn: %s"
192
msgstr "Gặp lỗi khi lấy các cờ trạng thái tập tin từ đầu vào tiêu chuẩn: %s"
171
193
172
#: src/xz/file_io.c:574 src/xz/file_io.c:636
194
#: src/xz/file_io.c:610 src/xz/file_io.c:672
173
#, c-format
195
#, c-format
174
msgid "%s: Is a symbolic link, skipping"
196
msgid "%s: Is a symbolic link, skipping"
175
msgstr "%s: Là một liên kết mềm nên bỏ qua"
197
msgstr "%s: Là một liên kết mềm nên bỏ qua"
176
198
177
#: src/xz/file_io.c:665
199
#: src/xz/file_io.c:701
178
#, c-format
200
#, c-format
179
msgid "%s: Is a directory, skipping"
201
msgid "%s: Is a directory, skipping"
180
msgstr "%s: Không phải là một thư mục nên bỏ qua"
202
msgstr "%s: Không phải là một thư mục nên bỏ qua"
181
203
182
#: src/xz/file_io.c:671
204
#: src/xz/file_io.c:707
183
#, c-format
205
#, c-format
184
msgid "%s: Not a regular file, skipping"
206
msgid "%s: Not a regular file, skipping"
185
msgstr "%s: Không phải là tập tin thường nên bỏ qua"
207
msgstr "%s: Không phải là tập tin thường nên bỏ qua"
186
208
187
#: src/xz/file_io.c:688
209
#: src/xz/file_io.c:724
188
#, c-format
210
#, c-format
189
msgid "%s: File has setuid or setgid bit set, skipping"
211
msgid "%s: File has setuid or setgid bit set, skipping"
190
msgstr "%s: Tập tin có đặt bít setuid hoặc setgid nên bỏ qua"
212
msgstr "%s: Tập tin có đặt bít setuid hoặc setgid nên bỏ qua"
191
213
192
#: src/xz/file_io.c:695
214
#: src/xz/file_io.c:731
193
#, c-format
215
#, c-format
194
msgid "%s: File has sticky bit set, skipping"
216
msgid "%s: File has sticky bit set, skipping"
195
msgstr "%s: Tập tin có bít sticky nên bỏ qua"
217
msgstr "%s: Tập tin có bít sticky nên bỏ qua"
196
218
197
#: src/xz/file_io.c:702
219
#: src/xz/file_io.c:738
198
#, c-format
220
#, c-format
199
msgid "%s: Input file has more than one hard link, skipping"
221
msgid "%s: Input file has more than one hard link, skipping"
200
msgstr "%s: Tập tin đầu vào có nhiều hơn một liên kết cứng nên bỏ qua"
222
msgstr "%s: Tập tin đầu vào có nhiều hơn một liên kết cứng nên bỏ qua"
201
223
202
#: src/xz/file_io.c:792
224
#: src/xz/file_io.c:780
225
msgid "Empty filename, skipping"
226
msgstr "Tên tập tin trống rỗng nên bỏ qua"
227
228
#: src/xz/file_io.c:834
203
#, c-format
229
#, c-format
204
msgid "Error restoring the status flags to standard input: %s"
230
msgid "Error restoring the status flags to standard input: %s"
205
msgstr "Gặp lỗi khi phục hồi các cờ trạng thái tới đầu vào tiêu chuẩn: %s"
231
msgstr "Gặp lỗi khi phục hồi các cờ trạng thái tới đầu vào tiêu chuẩn: %s"
206
232
207
#: src/xz/file_io.c:840
233
#: src/xz/file_io.c:882
208
#, c-format
234
#, c-format
209
msgid "Error getting the file status flags from standard output: %s"
235
msgid "Error getting the file status flags from standard output: %s"
210
msgstr "Gặp lỗi khi lấy các cờ trạng thái tập tin từ đầu vào tiêu chuẩn: %s"
236
msgstr "Gặp lỗi khi lấy các cờ trạng thái tập tin từ đầu vào tiêu chuẩn: %s"
211
237
212
#: src/xz/file_io.c:1018
238
#: src/xz/file_io.c:1060
213
#, c-format
239
#, c-format
214
msgid "Error restoring the O_APPEND flag to standard output: %s"
240
msgid "Error restoring the O_APPEND flag to standard output: %s"
215
msgstr "Gặp lỗi khi phục hồi cờ O_APPEND trên đầu ra tiêu chuẩn: %s"
241
msgstr "Gặp lỗi khi phục hồi cờ O_APPEND trên đầu ra tiêu chuẩn: %s"
216
242
217
#: src/xz/file_io.c:1030
243
#: src/xz/file_io.c:1072
218
#, c-format
244
#, c-format
219
msgid "%s: Closing the file failed: %s"
245
msgid "%s: Closing the file failed: %s"
220
msgstr "%s: Gặp lỗi khi đóng tập tin: %s"
246
msgstr "%s: Gặp lỗi khi đóng tập tin: %s"
221
247
222
#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
248
#: src/xz/file_io.c:1108 src/xz/file_io.c:1371
223
#, c-format
249
#, c-format
224
msgid "%s: Seeking failed when trying to create a sparse file: %s"
250
msgid "%s: Seeking failed when trying to create a sparse file: %s"
225
msgstr "%s: Gặp lỗi khi di chuyển vị trí đọc khi cố tạo một tập tin rải rác: %s"
251
msgstr "%s: Gặp lỗi khi di chuyển vị trí đọc khi cố tạo một tập tin rải rác: %s"
226
252
227
#: src/xz/file_io.c:1167
253
#: src/xz/file_io.c:1209
228
#, c-format
254
#, c-format
229
msgid "%s: Read error: %s"
255
msgid "%s: Read error: %s"
230
msgstr "%s: Lỗi đọc: %s"
256
msgstr "%s: Lỗi đọc: %s"
231
257
232
#: src/xz/file_io.c:1191
258
#: src/xz/file_io.c:1239
233
#, c-format
259
#, c-format
234
msgid "%s: Error seeking the file: %s"
260
msgid "%s: Error seeking the file: %s"
235
msgstr "%s: Gặp lỗi khi di chuyển vị trí đọc tập tin: %s"
261
msgstr "%s: Gặp lỗi khi di chuyển vị trí đọc tập tin: %s"
236
262
237
#: src/xz/file_io.c:1201
263
#: src/xz/file_io.c:1263
238
#, c-format
264
#, c-format
239
msgid "%s: Unexpected end of file"
265
msgid "%s: Unexpected end of file"
240
msgstr "%s: Kết thúc tập tin bất ngờ"
266
msgstr "%s: Kết thúc tập tin bất ngờ"
241
267
242
#: src/xz/file_io.c:1260
268
#: src/xz/file_io.c:1322
243
#, c-format
269
#, c-format
244
msgid "%s: Write error: %s"
270
msgid "%s: Write error: %s"
245
msgstr "%s: Lỗi ghi: %s"
271
msgstr "%s: Lỗi ghi: %s"
246
272
247
#: src/xz/hardware.c:137
273
#: src/xz/hardware.c:238
248
msgid "Disabled"
274
msgid "Disabled"
249
msgstr "Bị tắt"
275
msgstr "Bị tắt"
250
276
251
#. TRANSLATORS: Test with "xz --info-memory" to see if
277
#: src/xz/hardware.c:269
252
#. the alignment looks nice.
278
#, fuzzy
253
#: src/xz/hardware.c:156
279
#| msgid "Total amount of physical memory (RAM): "
254
msgid "Total amount of physical memory (RAM): "
280
msgid "Amount of physical memory (RAM):"
255
msgstr "Tổng dung lượng bộ nhớ vật lý (RAM):  "
281
msgstr "Tổng dung lượng bộ nhớ vật lý (RAM):  "
256
282
257
#: src/xz/hardware.c:158
283
#: src/xz/hardware.c:270
258
msgid "Memory usage limit for compression:    "
284
msgid "Number of processor threads:"
259
msgstr "Mức giới hạn dùng bộ nhớ cho nén:     "
285
msgstr ""
260
286
261
#: src/xz/hardware.c:160
287
#: src/xz/hardware.c:271
262
msgid "Memory usage limit for decompression:  "
288
msgid "Compression:"
289
msgstr ""
290
291
#: src/xz/hardware.c:272
292
msgid "Decompression:"
293
msgstr ""
294
295
#: src/xz/hardware.c:273
296
#, fuzzy
297
#| msgid "Memory usage limit for decompression:  "
298
msgid "Multi-threaded decompression:"
263
msgstr "Mức giới hạn dùng bộ nhớ cho giải nén:"
299
msgstr "Mức giới hạn dùng bộ nhớ cho giải nén:"
264
300
301
#: src/xz/hardware.c:274
302
msgid "Default for -T0:"
303
msgstr ""
304
305
#: src/xz/hardware.c:292
306
msgid "Hardware information:"
307
msgstr ""
308
309
#: src/xz/hardware.c:299
310
#, fuzzy
311
#| msgid "Memory usage limit reached"
312
msgid "Memory usage limits:"
313
msgstr "Đã chạm mốc giới hạn sử dụng bộ nhớ"
314
315
#: src/xz/list.c:68
316
msgid "Streams:"
317
msgstr ""
318
319
#: src/xz/list.c:69
320
msgid "Blocks:"
321
msgstr ""
322
323
#: src/xz/list.c:70
324
#, fuzzy
325
#| msgid "  Compressed size:    %s\n"
326
msgid "Compressed size:"
327
msgstr "  Cỡ khi bị nén:      %s\n"
328
329
#: src/xz/list.c:71
330
#, fuzzy
331
#| msgid "  Uncompressed size:  %s\n"
332
msgid "Uncompressed size:"
333
msgstr "  Cỡ sau giải nén:    %s\n"
334
335
#: src/xz/list.c:72
336
msgid "Ratio:"
337
msgstr ""
338
339
#: src/xz/list.c:73
340
msgid "Check:"
341
msgstr ""
342
343
#: src/xz/list.c:74
344
#, fuzzy
345
#| msgid "  Stream padding:     %s\n"
346
msgid "Stream Padding:"
347
msgstr "  Đệm luồng dữ liệu:  %s\n"
348
349
#: src/xz/list.c:75
350
#, fuzzy
351
#| msgid "  Memory needed:      %s MiB\n"
352
msgid "Memory needed:"
353
msgstr "  Bộ nhớ cần:         %s MiB\n"
354
355
#: src/xz/list.c:76
356
#, fuzzy
357
#| msgid "  Sizes in headers:   %s\n"
358
msgid "Sizes in headers:"
359
msgstr "  Kích cỡ phần đầu:   %s\n"
360
361
#: src/xz/list.c:79
362
#, fuzzy
363
#| msgid "  Number of files:    %s\n"
364
msgid "Number of files:"
365
msgstr "  Số tập tin:         %s\n"
366
367
#: src/xz/list.c:122
368
msgid "Stream"
369
msgstr ""
370
371
#: src/xz/list.c:123
372
msgid "Block"
373
msgstr ""
374
375
#: src/xz/list.c:124
376
msgid "Blocks"
377
msgstr ""
378
379
#: src/xz/list.c:125
380
msgid "CompOffset"
381
msgstr ""
382
383
#: src/xz/list.c:126
384
msgid "UncompOffset"
385
msgstr ""
386
387
#: src/xz/list.c:127
388
msgid "CompSize"
389
msgstr ""
390
391
#: src/xz/list.c:128
392
msgid "UncompSize"
393
msgstr ""
394
395
#: src/xz/list.c:129
396
#, fuzzy
397
#| msgid "Totals:"
398
msgid "TotalSize"
399
msgstr "Tổng cộng:"
400
401
#: src/xz/list.c:130
402
msgid "Ratio"
403
msgstr ""
404
405
#: src/xz/list.c:131
406
msgid "Check"
407
msgstr ""
408
409
#: src/xz/list.c:132
410
msgid "CheckVal"
411
msgstr ""
412
413
#: src/xz/list.c:133
414
msgid "Padding"
415
msgstr ""
416
417
#: src/xz/list.c:134
418
msgid "Header"
419
msgstr ""
420
421
#: src/xz/list.c:135
422
msgid "Flags"
423
msgstr ""
424
425
#: src/xz/list.c:136
426
msgid "MemUsage"
427
msgstr ""
428
429
#: src/xz/list.c:137
430
msgid "Filters"
431
msgstr ""
432
265
#. TRANSLATORS: Indicates that there is no integrity check.
433
#. TRANSLATORS: Indicates that there is no integrity check.
266
#. This string is used in tables, so the width must not
434
#. This string is used in tables. In older xz version this
267
#. exceed ten columns with a fixed-width font.
435
#. string was limited to ten columns in a fixed-width font, but
268
#: src/xz/list.c:65
436
#. nowadays there is no strict length restriction anymore.
437
#: src/xz/list.c:169
269
msgid "None"
438
msgid "None"
270
msgstr "Không"
439
msgstr "Không"
271
440
272
#. TRANSLATORS: Indicates that integrity check name is not known,
441
#. TRANSLATORS: Indicates that integrity check name is not known,
273
#. but the Check ID is known (here 2). This and other "Unknown-N"
442
#. but the Check ID is known (here 2). In older xz version these
274
#. strings are used in tables, so the width must not exceed ten
443
#. strings were limited to ten columns in a fixed-width font, but
275
#. columns with a fixed-width font. It's OK to omit the dash if
444
#. nowadays there is no strict length restriction anymore.
276
#. you need space for one extra letter, but don't use spaces.
445
#: src/xz/list.c:175
277
#: src/xz/list.c:72
278
msgid "Unknown-2"
446
msgid "Unknown-2"
279
msgstr "Chưa_biết2"
447
msgstr "Chưa_biết2"
280
448
281
#: src/xz/list.c:73
449
#: src/xz/list.c:176
282
msgid "Unknown-3"
450
msgid "Unknown-3"
283
msgstr "Chưa_biết3"
451
msgstr "Chưa_biết3"
284
452
285
#: src/xz/list.c:75
453
#: src/xz/list.c:178
286
msgid "Unknown-5"
454
msgid "Unknown-5"
287
msgstr "Chưa_biết5"
455
msgstr "Chưa_biết5"
288
456
289
#: src/xz/list.c:76
457
#: src/xz/list.c:179
290
msgid "Unknown-6"
458
msgid "Unknown-6"
291
msgstr "Chưa_biết6"
459
msgstr "Chưa_biết6"
292
460
293
#: src/xz/list.c:77
461
#: src/xz/list.c:180
294
msgid "Unknown-7"
462
msgid "Unknown-7"
295
msgstr "Chưa_biết7"
463
msgstr "Chưa_biết7"
296
464
297
#: src/xz/list.c:78
465
#: src/xz/list.c:181
298
msgid "Unknown-8"
466
msgid "Unknown-8"
299
msgstr "Chưa_biết8"
467
msgstr "Chưa_biết8"
300
468
301
#: src/xz/list.c:79
469
#: src/xz/list.c:182
302
msgid "Unknown-9"
470
msgid "Unknown-9"
303
msgstr "Chưa_biết9"
471
msgstr "Chưa_biết9"
304
472
305
#: src/xz/list.c:81
473
#: src/xz/list.c:184
306
msgid "Unknown-11"
474
msgid "Unknown-11"
307
msgstr "ChưaBiết11"
475
msgstr "ChưaBiết11"
308
476
309
#: src/xz/list.c:82
477
#: src/xz/list.c:185
310
msgid "Unknown-12"
478
msgid "Unknown-12"
311
msgstr "ChưaBiết12"
479
msgstr "ChưaBiết12"
312
480
313
#: src/xz/list.c:83
481
#: src/xz/list.c:186
314
msgid "Unknown-13"
482
msgid "Unknown-13"
315
msgstr "ChưaBiết13"
483
msgstr "ChưaBiết13"
316
484
317
#: src/xz/list.c:84
485
#: src/xz/list.c:187
318
msgid "Unknown-14"
486
msgid "Unknown-14"
319
msgstr "ChưaBiết14"
487
msgstr "ChưaBiết14"
320
488
321
#: src/xz/list.c:85
489
#: src/xz/list.c:188
322
msgid "Unknown-15"
490
msgid "Unknown-15"
323
msgstr "ChưaBiết15"
491
msgstr "ChưaBiết15"
324
492
325
#: src/xz/list.c:153
493
#: src/xz/list.c:351
326
#, c-format
494
#, c-format
327
msgid "%s: File is empty"
495
msgid "%s: File is empty"
328
msgstr "%s: Tập tin trống rỗng"
496
msgstr "%s: Tập tin trống rỗng"
329
497
330
#: src/xz/list.c:158
498
#: src/xz/list.c:356
331
#, c-format
499
#, c-format
332
msgid "%s: Too small to be a valid .xz file"
500
msgid "%s: Too small to be a valid .xz file"
333
msgstr "%s: Là quá nhỏ đối với tập tin .xz hợp lệ"
501
msgstr "%s: Là quá nhỏ đối với tập tin .xz hợp lệ"
Lines 336-459 Link Here
336
#. to Ratio, the columns are right aligned. Check and Filename
504
#. to Ratio, the columns are right aligned. Check and Filename
337
#. are left aligned. If you need longer words, it's OK to
505
#. are left aligned. If you need longer words, it's OK to
338
#. use two lines here. Test with "xz -l foo.xz".
506
#. use two lines here. Test with "xz -l foo.xz".
339
#: src/xz/list.c:677
507
#: src/xz/list.c:730
340
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
508
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
341
msgstr "Luồng    Khối          Nén     Giải nén  Tỷ lệ  Ktra    Tập tin"
509
msgstr "Luồng    Khối          Nén     Giải nén  Tỷ lệ  Ktra    Tập tin"
342
510
343
#: src/xz/list.c:717
511
#: src/xz/list.c:1025 src/xz/list.c:1203
344
#, c-format
345
msgid "  Streams:            %s\n"
346
msgstr "  Luồng dữ liệu:      %s\n"
347
348
#: src/xz/list.c:719
349
#, c-format
350
msgid "  Blocks:             %s\n"
351
msgstr "  Khối:               %s\n"
352
353
#: src/xz/list.c:721
354
#, c-format
355
msgid "  Compressed size:    %s\n"
356
msgstr "  Cỡ khi bị nén:      %s\n"
357
358
#: src/xz/list.c:724
359
#, c-format
360
msgid "  Uncompressed size:  %s\n"
361
msgstr "  Cỡ sau giải nén:    %s\n"
362
363
#: src/xz/list.c:727
364
#, c-format
365
msgid "  Ratio:              %s\n"
366
msgstr "  Tỷ lệ nén:          %s\n"
367
368
#: src/xz/list.c:729
369
#, c-format
370
msgid "  Check:              %s\n"
371
msgstr "  Kiểm tra:           %s\n"
372
373
#: src/xz/list.c:730
374
#, c-format
375
msgid "  Stream padding:     %s\n"
376
msgstr "  Đệm luồng dữ liệu:  %s\n"
377
378
#. TRANSLATORS: The second line is column headings. All except
379
#. Check are right aligned; Check is left aligned. Test with
380
#. "xz -lv foo.xz".
381
#: src/xz/list.c:758
382
msgid ""
383
"  Streams:\n"
384
"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
385
msgstr ""
386
"  Luồng dữ liệu:\n"
387
"     Luồng      Khối           BùNén       BùGiảiNén           CỡNén       CỡGiảiNén   TỷLệ  Ktra           Đệm"
388
389
#. TRANSLATORS: The second line is column headings. All
390
#. except Check are right aligned; Check is left aligned.
391
#: src/xz/list.c:813
392
#, c-format
393
msgid ""
394
"  Blocks:\n"
395
"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
396
msgstr ""
397
"  Khối:\n"
398
"     Luồng      Khối           BùNén       BùGiảiNén          CỡTổng       CỡGiảiNén   TỷLệ  Ktra"
399
400
#. TRANSLATORS: These are additional column headings
401
#. for the most verbose listing mode. CheckVal
402
#. (Check value), Flags, and Filters are left aligned.
403
#. Header (Block Header Size), CompSize, and MemUsage
404
#. are right aligned. %*s is replaced with 0-120
405
#. spaces to make the CheckVal column wide enough.
406
#. Test with "xz -lvv foo.xz".
407
#: src/xz/list.c:825
408
#, c-format
409
msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
410
msgstr "       GTrịKiểm %*s    Đầu  Cờ              CỡNén     DùngRAM  BộLọc"
411
412
#: src/xz/list.c:903 src/xz/list.c:1078
413
#, c-format
414
msgid "  Memory needed:      %s MiB\n"
415
msgstr "  Bộ nhớ cần:         %s MiB\n"
416
417
#: src/xz/list.c:905 src/xz/list.c:1080
418
#, c-format
419
msgid "  Sizes in headers:   %s\n"
420
msgstr "  Kích cỡ phần đầu:   %s\n"
421
422
#: src/xz/list.c:906 src/xz/list.c:1081
423
msgid "Yes"
512
msgid "Yes"
424
msgstr "Có"
513
msgstr "Có"
425
514
426
#: src/xz/list.c:906 src/xz/list.c:1081
515
#: src/xz/list.c:1025 src/xz/list.c:1203
427
msgid "No"
516
msgid "No"
428
msgstr "Không"
517
msgstr "Không"
429
518
430
#: src/xz/list.c:907 src/xz/list.c:1082
519
#: src/xz/list.c:1027 src/xz/list.c:1205
431
#, c-format
520
#, c-format
432
msgid "  Minimum XZ Utils version: %s\n"
521
msgid "  Minimum XZ Utils version: %s\n"
433
msgstr "  Phiên bản “XZ Utils” tối thiểu: %s\n"
522
msgstr "  Phiên bản “XZ Utils” tối thiểu: %s\n"
434
523
435
#. TRANSLATORS: %s is an integer. Only the plural form of this
524
#. TRANSLATORS: %s is an integer. Only the plural form of this
436
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
525
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
437
#: src/xz/list.c:1057
526
#: src/xz/list.c:1178
438
#, c-format
527
#, c-format
439
msgid "%s file\n"
528
msgid "%s file\n"
440
msgid_plural "%s files\n"
529
msgid_plural "%s files\n"
441
msgstr[0] "%s tập tin\n"
530
msgstr[0] "%s tập tin\n"
442
531
443
#: src/xz/list.c:1070
532
#: src/xz/list.c:1191
444
msgid "Totals:"
533
msgid "Totals:"
445
msgstr "Tổng cộng:"
534
msgstr "Tổng cộng:"
446
535
447
#: src/xz/list.c:1071
536
#: src/xz/list.c:1269
448
#, c-format
449
msgid "  Number of files:    %s\n"
450
msgstr "  Số tập tin:         %s\n"
451
452
#: src/xz/list.c:1146
453
msgid "--list works only on .xz files (--format=xz or --format=auto)"
537
msgid "--list works only on .xz files (--format=xz or --format=auto)"
454
msgstr "--list chỉ hoạt động trên các tập tin .xz (--format=xz hay --format=auto)"
538
msgstr "--list chỉ hoạt động trên các tập tin .xz (--format=xz hay --format=auto)"
455
539
456
#: src/xz/list.c:1152
540
#: src/xz/list.c:1275
457
msgid "--list does not support reading from standard input"
541
msgid "--list does not support reading from standard input"
458
msgstr "--list không hỗ trợ đọc từ đầu vào tiêu chuẩn"
542
msgstr "--list không hỗ trợ đọc từ đầu vào tiêu chuẩn"
459
543
Lines 472-482 Link Here
472
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
556
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
473
msgstr "%s: Gặp ký hiệu Null khi đọc tên tập tin; có lẽ ý bạn muốn là dùng “--files0” chứ không phải “--files'?"
557
msgstr "%s: Gặp ký hiệu Null khi đọc tên tập tin; có lẽ ý bạn muốn là dùng “--files0” chứ không phải “--files'?"
474
558
475
#: src/xz/main.c:174
559
#: src/xz/main.c:188
476
msgid "Compression and decompression with --robot are not supported yet."
560
msgid "Compression and decompression with --robot are not supported yet."
477
msgstr "Nén và giải nén với --robot vẫn chưa được hỗ trợ."
561
msgstr "Nén và giải nén với --robot vẫn chưa được hỗ trợ."
478
562
479
#: src/xz/main.c:252
563
#: src/xz/main.c:266
480
msgid "Cannot read data from standard input when reading filenames from standard input"
564
msgid "Cannot read data from standard input when reading filenames from standard input"
481
msgstr "Không thể đọc dữ liệu từ đầu vào tiêu chuẩn khi đọc tập tin từ đầu vào tiêu chuẩn"
565
msgstr "Không thể đọc dữ liệu từ đầu vào tiêu chuẩn khi đọc tập tin từ đầu vào tiêu chuẩn"
482
566
Lines 484-551 Link Here
484
#. of the line in messages. Usually it becomes "xz: ".
568
#. of the line in messages. Usually it becomes "xz: ".
485
#. This is a translatable string because French needs
569
#. This is a translatable string because French needs
486
#. a space before a colon.
570
#. a space before a colon.
487
#: src/xz/message.c:728
571
#: src/xz/message.c:725
488
#, c-format
572
#, c-format
489
msgid "%s: "
573
msgid "%s: "
490
msgstr "%s: "
574
msgstr "%s: "
491
575
492
#: src/xz/message.c:791 src/xz/message.c:841
576
#: src/xz/message.c:797 src/xz/message.c:856
493
msgid "Internal error (bug)"
577
msgid "Internal error (bug)"
494
msgstr "Lỗi nội bộ (lỗi)"
578
msgstr "Lỗi nội bộ (lỗi)"
495
579
496
#: src/xz/message.c:798
580
#: src/xz/message.c:804
497
msgid "Cannot establish signal handlers"
581
msgid "Cannot establish signal handlers"
498
msgstr "Không thể thiết lập bộ xử lý tín hiệu"
582
msgstr "Không thể thiết lập bộ xử lý tín hiệu"
499
583
500
#: src/xz/message.c:807
584
#: src/xz/message.c:813
501
msgid "No integrity check; not verifying file integrity"
585
msgid "No integrity check; not verifying file integrity"
502
msgstr "Không có kiểm tra toàn vẹn nên không thể thẩm tra tính toàn vẹn của tập tin"
586
msgstr "Không có kiểm tra toàn vẹn nên không thể thẩm tra tính toàn vẹn của tập tin"
503
587
504
#: src/xz/message.c:810
588
#: src/xz/message.c:816
505
msgid "Unsupported type of integrity check; not verifying file integrity"
589
msgid "Unsupported type of integrity check; not verifying file integrity"
506
msgstr "Kiểu kiểm tra toàn vẹn chưa được hỗ trợ; nên không thể thẩm tra tính toàn vẹn của tập tin"
590
msgstr "Kiểu kiểm tra toàn vẹn chưa được hỗ trợ; nên không thể thẩm tra tính toàn vẹn của tập tin"
507
591
508
#: src/xz/message.c:817
592
#: src/xz/message.c:823
509
msgid "Memory usage limit reached"
593
msgid "Memory usage limit reached"
510
msgstr "Đã chạm mốc giới hạn sử dụng bộ nhớ"
594
msgstr "Đã chạm mốc giới hạn sử dụng bộ nhớ"
511
595
512
#: src/xz/message.c:820
596
#: src/xz/message.c:826
513
msgid "File format not recognized"
597
msgid "File format not recognized"
514
msgstr "Không nhận ra định dạng tập tin"
598
msgstr "Không nhận ra định dạng tập tin"
515
599
516
#: src/xz/message.c:823
600
#: src/xz/message.c:829
517
msgid "Unsupported options"
601
msgid "Unsupported options"
518
msgstr "Tùy chọn không được hỗ trợ"
602
msgstr "Tùy chọn không được hỗ trợ"
519
603
520
#: src/xz/message.c:826
604
#: src/xz/message.c:832
521
msgid "Compressed data is corrupt"
605
msgid "Compressed data is corrupt"
522
msgstr "Dữ liệu đã nén bị hỏng"
606
msgstr "Dữ liệu đã nén bị hỏng"
523
607
524
#: src/xz/message.c:829
608
#: src/xz/message.c:835
525
msgid "Unexpected end of input"
609
msgid "Unexpected end of input"
526
msgstr "Gặp kết thúc đầu vào bất ngờ"
610
msgstr "Gặp kết thúc đầu vào bất ngờ"
527
611
528
#: src/xz/message.c:862
612
#: src/xz/message.c:877
529
#, c-format
613
#, c-format
530
msgid "%s MiB of memory is required. The limiter is disabled."
614
msgid "%s MiB of memory is required. The limiter is disabled."
531
msgstr "Yêu cầu cần có %s MiB bộ nhớ. Nhưng giới hạn bị tắt."
615
msgstr "Yêu cầu cần có %s MiB bộ nhớ. Nhưng giới hạn bị tắt."
532
616
533
#: src/xz/message.c:890
617
#: src/xz/message.c:905
534
#, c-format
618
#, c-format
535
msgid "%s MiB of memory is required. The limit is %s."
619
msgid "%s MiB of memory is required. The limit is %s."
536
msgstr "Yêu cầu cần có %s MiB bộ nhớ. Nhưng giới hạn là %s."
620
msgstr "Yêu cầu cần có %s MiB bộ nhớ. Nhưng giới hạn là %s."
537
621
538
#: src/xz/message.c:1057
622
#: src/xz/message.c:924
539
#, c-format
623
#, c-format
540
msgid "%s: Filter chain: %s\n"
624
msgid "%s: Filter chain: %s\n"
541
msgstr "%s: Móc xích lọc: %s\n"
625
msgstr "%s: Móc xích lọc: %s\n"
542
626
543
#: src/xz/message.c:1067
627
#: src/xz/message.c:935
544
#, c-format
628
#, c-format
545
msgid "Try `%s --help' for more information."
629
msgid "Try `%s --help' for more information."
546
msgstr "Hãy chạy lệnh “%s --help” để xem thông tin thêm."
630
msgstr "Hãy chạy lệnh “%s --help” để xem thông tin thêm."
547
631
548
#: src/xz/message.c:1093
632
#: src/xz/message.c:961
549
#, c-format
633
#, c-format
550
msgid ""
634
msgid ""
551
"Usage: %s [OPTION]... [FILE]...\n"
635
"Usage: %s [OPTION]... [FILE]...\n"
Lines 556-570 Link Here
556
"Nén hoặc giải nén các TẬP TIN có định dạng .xz.\n"
640
"Nén hoặc giải nén các TẬP TIN có định dạng .xz.\n"
557
"\n"
641
"\n"
558
642
559
#: src/xz/message.c:1100
643
#: src/xz/message.c:968
560
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
644
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
561
msgstr "Các tùy chọn dài bắt buộc phải có đối số thì với tùy chọn ngắn cũng vậy.\n"
645
msgstr "Các tùy chọn dài bắt buộc phải có đối số thì với tùy chọn ngắn cũng vậy.\n"
562
646
563
#: src/xz/message.c:1104
647
#: src/xz/message.c:972
564
msgid " Operation mode:\n"
648
msgid " Operation mode:\n"
565
msgstr " Chế độ thao tác:\n"
649
msgstr " Chế độ thao tác:\n"
566
650
567
#: src/xz/message.c:1107
651
#: src/xz/message.c:975
568
msgid ""
652
msgid ""
569
"  -z, --compress      force compression\n"
653
"  -z, --compress      force compression\n"
570
"  -d, --decompress    force decompression\n"
654
"  -d, --decompress    force decompression\n"
Lines 576-582 Link Here
576
"  -t, --test          kiểm tra tính toàn vẹn của tập tin nén\n"
660
"  -t, --test          kiểm tra tính toàn vẹn của tập tin nén\n"
577
"  -l, --list          liệt kê các thông tin về tập tin .xz"
661
"  -l, --list          liệt kê các thông tin về tập tin .xz"
578
662
579
#: src/xz/message.c:1113
663
#: src/xz/message.c:981
580
msgid ""
664
msgid ""
581
"\n"
665
"\n"
582
" Operation modifiers:\n"
666
" Operation modifiers:\n"
Lines 584-590 Link Here
584
"\n"
668
"\n"
585
" Bộ chỉnh sửa thao tác:\n"
669
" Bộ chỉnh sửa thao tác:\n"
586
670
587
#: src/xz/message.c:1116
671
#: src/xz/message.c:984
588
msgid ""
672
msgid ""
589
"  -k, --keep          keep (don't delete) input files\n"
673
"  -k, --keep          keep (don't delete) input files\n"
590
"  -f, --force         force overwrite of output file and (de)compress links\n"
674
"  -f, --force         force overwrite of output file and (de)compress links\n"
Lines 594-600 Link Here
594
"  -f, --force         buộc ghi đè tập tin đầu ra và (giải) nén các liên kết\n"
678
"  -f, --force         buộc ghi đè tập tin đầu ra và (giải) nén các liên kết\n"
595
"  -c, --stdout        ghi ra đầu ra tiêu chuẩn và không xóa tập tin đầu vào"
679
"  -c, --stdout        ghi ra đầu ra tiêu chuẩn và không xóa tập tin đầu vào"
596
680
597
#: src/xz/message.c:1122
681
#: src/xz/message.c:993
598
msgid ""
682
msgid ""
599
"      --single-stream decompress only the first stream, and silently\n"
683
"      --single-stream decompress only the first stream, and silently\n"
600
"                      ignore possible remaining input data"
684
"                      ignore possible remaining input data"
Lines 602-608 Link Here
602
"      --single-stream chỉ giải nén luồng dữ liệu đầu, và bỏ qua\n"
686
"      --single-stream chỉ giải nén luồng dữ liệu đầu, và bỏ qua\n"
603
"                      dữ liệu đầu vào còn lại có thể"
687
"                      dữ liệu đầu vào còn lại có thể"
604
688
605
#: src/xz/message.c:1125
689
#: src/xz/message.c:996
606
msgid ""
690
msgid ""
607
"      --no-sparse     do not create sparse files when decompressing\n"
691
"      --no-sparse     do not create sparse files when decompressing\n"
608
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
692
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
Lines 618-624 Link Here
618
"                      chuẩn; chúng phải được kết thúc bằng ký tự dòng mới\n"
702
"                      chuẩn; chúng phải được kết thúc bằng ký tự dòng mới\n"
619
"      --files0[=TẬP-TIN] giống --files nhưng ký tự kết thúc là null"
703
"      --files0[=TẬP-TIN] giống --files nhưng ký tự kết thúc là null"
620
704
621
#: src/xz/message.c:1134
705
#: src/xz/message.c:1005
622
msgid ""
706
msgid ""
623
"\n"
707
"\n"
624
" Basic file format and compression options:\n"
708
" Basic file format and compression options:\n"
Lines 626-635 Link Here
626
"\n"
710
"\n"
627
" Các tùy chọn về định dạng và nén cơ bản:\n"
711
" Các tùy chọn về định dạng và nén cơ bản:\n"
628
712
629
#: src/xz/message.c:1136
713
#: src/xz/message.c:1007
714
#, fuzzy
715
#| msgid ""
716
#| "  -F, --format=FMT    file format to encode or decode; possible values are\n"
717
#| "                      `auto' (default), `xz', `lzma', and `raw'\n"
718
#| "  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
719
#| "                      `crc32', `crc64' (default), or `sha256'"
630
msgid ""
720
msgid ""
631
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
721
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
632
"                      `auto' (default), `xz', `lzma', and `raw'\n"
722
"                      `auto' (default), `xz', `lzma', `lzip', and `raw'\n"
633
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
723
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
634
"                      `crc32', `crc64' (default), or `sha256'"
724
"                      `crc32', `crc64' (default), or `sha256'"
635
msgstr ""
725
msgstr ""
Lines 638-648 Link Here
638
"  -C, --check=KIỂM    kiểu kiểm tra toàn vẹn: “none” (thận trọng khi dùng),\n"
728
"  -C, --check=KIỂM    kiểu kiểm tra toàn vẹn: “none” (thận trọng khi dùng),\n"
639
"                      “crc32”, “crc64” (mặc định), hay “sha256”"
729
"                      “crc32”, “crc64” (mặc định), hay “sha256”"
640
730
641
#: src/xz/message.c:1141
731
#: src/xz/message.c:1012
642
msgid "      --ignore-check  don't verify the integrity check when decompressing"
732
msgid "      --ignore-check  don't verify the integrity check when decompressing"
643
msgstr "      --ignore-check  không thẩm tra tính toàn vẹn khi giải nén"
733
msgstr "      --ignore-check  không thẩm tra tính toàn vẹn khi giải nén"
644
734
645
#: src/xz/message.c:1145
735
#: src/xz/message.c:1016
646
msgid ""
736
msgid ""
647
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
737
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
648
"                      decompressor memory usage into account before using 7-9!"
738
"                      decompressor memory usage into account before using 7-9!"
Lines 650-656 Link Here
650
"  -0 ... -9           đặt mức nén; mặc định là 6; tiêu dùng nhiều bộ nhớ khi nén\n"
740
"  -0 ... -9           đặt mức nén; mặc định là 6; tiêu dùng nhiều bộ nhớ khi nén\n"
651
"                      và giải nén, nên tính toán trước khi dùng 7-9!"
741
"                      và giải nén, nên tính toán trước khi dùng 7-9!"
652
742
653
#: src/xz/message.c:1149
743
#: src/xz/message.c:1020
654
msgid ""
744
msgid ""
655
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
745
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
656
"                      does not affect decompressor memory requirements"
746
"                      does not affect decompressor memory requirements"
Lines 658-664 Link Here
658
"  -e, --extreme       cố gắng nâng cao mức nén bằng cách dùng nhiều CPU hơn;\n"
748
"  -e, --extreme       cố gắng nâng cao mức nén bằng cách dùng nhiều CPU hơn;\n"
659
"                      nhưng không yêu cần nhiều bộ nhớ khi giải nén"
749
"                      nhưng không yêu cần nhiều bộ nhớ khi giải nén"
660
750
661
#: src/xz/message.c:1153
751
#: src/xz/message.c:1024
662
msgid ""
752
msgid ""
663
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
753
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
664
"                      to use as many threads as there are processor cores"
754
"                      to use as many threads as there are processor cores"
Lines 666-672 Link Here
666
"  -T, --threads=SỐ    dùng tối đa là SỐ tuyến trình; mặc định là 1; đặt\n"
756
"  -T, --threads=SỐ    dùng tối đa là SỐ tuyến trình; mặc định là 1; đặt\n"
667
"                      thành 0 để dùng số lượng bằng số lõi vi xử lý"
757
"                      thành 0 để dùng số lượng bằng số lõi vi xử lý"
668
758
669
#: src/xz/message.c:1158
759
#: src/xz/message.c:1029
670
msgid ""
760
msgid ""
671
"      --block-size=SIZE\n"
761
"      --block-size=SIZE\n"
672
"                      start a new .xz block after every SIZE bytes of input;\n"
762
"                      start a new .xz block after every SIZE bytes of input;\n"
Lines 676-682 Link Here
676
"                      bắt đầu một khối .xz mới sau mỗi CỠ byte của đầu vào;\n"
766
"                      bắt đầu một khối .xz mới sau mỗi CỠ byte của đầu vào;\n"
677
"                      dùng tùy chọn này để đặt cỡ khối cho nén tuyến trình"
767
"                      dùng tùy chọn này để đặt cỡ khối cho nén tuyến trình"
678
768
679
#: src/xz/message.c:1162
769
#: src/xz/message.c:1033
680
msgid ""
770
msgid ""
681
"      --block-list=SIZES\n"
771
"      --block-list=SIZES\n"
682
"                      start a new .xz block after the given comma-separated\n"
772
"                      start a new .xz block after the given comma-separated\n"
Lines 686-692 Link Here
686
"                      bắt đầu một khối .xz mới sau một danh sách ngăn\n"
776
"                      bắt đầu một khối .xz mới sau một danh sách ngăn\n"
687
"                      cách bằng dấu phẩy nhịp dữ của dữ liệu chưa nén"
777
"                      cách bằng dấu phẩy nhịp dữ của dữ liệu chưa nén"
688
778
689
#: src/xz/message.c:1166
779
#: src/xz/message.c:1037
690
msgid ""
780
msgid ""
691
"      --flush-timeout=TIMEOUT\n"
781
"      --flush-timeout=TIMEOUT\n"
692
"                      when compressing, if more than TIMEOUT milliseconds has\n"
782
"                      when compressing, if more than TIMEOUT milliseconds has\n"
Lines 698-711 Link Here
698
"                      kể từ lần đẩy dữ liệu lên đĩa trước đó và đang đọc thêm\n"
788
"                      kể từ lần đẩy dữ liệu lên đĩa trước đó và đang đọc thêm\n"
699
"                      khối nữa, mọi dữ liệu đang chờ sẽ được ghi lên đĩa"
789
"                      khối nữa, mọi dữ liệu đang chờ sẽ được ghi lên đĩa"
700
790
701
#: src/xz/message.c:1172
791
#: src/xz/message.c:1043
702
#, no-c-format
792
#, fuzzy, no-c-format
793
#| msgid ""
794
#| "      --memlimit-compress=LIMIT\n"
795
#| "      --memlimit-decompress=LIMIT\n"
796
#| "  -M, --memlimit=LIMIT\n"
797
#| "                      set memory usage limit for compression, decompression,\n"
798
#| "                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
703
msgid ""
799
msgid ""
704
"      --memlimit-compress=LIMIT\n"
800
"      --memlimit-compress=LIMIT\n"
705
"      --memlimit-decompress=LIMIT\n"
801
"      --memlimit-decompress=LIMIT\n"
802
"      --memlimit-mt-decompress=LIMIT\n"
706
"  -M, --memlimit=LIMIT\n"
803
"  -M, --memlimit=LIMIT\n"
707
"                      set memory usage limit for compression, decompression,\n"
804
"                      set memory usage limit for compression, decompression,\n"
708
"                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
805
"                      threaded decompression, or all of these; LIMIT is in\n"
806
"                      bytes, % of RAM, or 0 for defaults"
709
msgstr ""
807
msgstr ""
710
"      --memlimit-compress=GIỚI_HẠN\n"
808
"      --memlimit-compress=GIỚI_HẠN\n"
711
"      --memlimit-decompress=GIỚI_HẠN\n"
809
"      --memlimit-decompress=GIỚI_HẠN\n"
Lines 714-720 Link Here
714
"                      hoặc cả hai; GIỚI_HẠN có đơn vị là byte, % của RAM,\n"
812
"                      hoặc cả hai; GIỚI_HẠN có đơn vị là byte, % của RAM,\n"
715
"                      hay 0 cho mặc định"
813
"                      hay 0 cho mặc định"
716
814
717
#: src/xz/message.c:1179
815
#: src/xz/message.c:1052
718
msgid ""
816
msgid ""
719
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
817
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
720
"                      give an error instead of adjusting the settings downwards"
818
"                      give an error instead of adjusting the settings downwards"
Lines 722-728 Link Here
722
"      --no-adjust     nếu các cài đặt nén vượt quá giới hạn dùng bộ nhớ,\n"
820
"      --no-adjust     nếu các cài đặt nén vượt quá giới hạn dùng bộ nhớ,\n"
723
"                      đưa ra một lỗi thay vì sửa đổi các cài đặt xuống"
821
"                      đưa ra một lỗi thay vì sửa đổi các cài đặt xuống"
724
822
725
#: src/xz/message.c:1185
823
#: src/xz/message.c:1058
726
msgid ""
824
msgid ""
727
"\n"
825
"\n"
728
" Custom filter chain for compression (alternative for using presets):"
826
" Custom filter chain for compression (alternative for using presets):"
Lines 730-736 Link Here
730
"\n"
828
"\n"
731
" Móc xích lọc tùy chỉnh cho nén (thay cho việc dùng chỉnh trước):"
829
" Móc xích lọc tùy chỉnh cho nén (thay cho việc dùng chỉnh trước):"
732
830
733
#: src/xz/message.c:1194
831
#: src/xz/message.c:1067
734
msgid ""
832
msgid ""
735
"\n"
833
"\n"
736
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
834
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
Lines 758-771 Link Here
758
"                        mf=TÊN     bộ tìm khớp (hc3, hc4, bt2, bt3, bt4; bt4)\n"
856
"                        mf=TÊN     bộ tìm khớp (hc3, hc4, bt2, bt3, bt4; bt4)\n"
759
"                        depth=SỐ   mức sâu tìm kiếm tối đa; 0=tự động (mặc định)"
857
"                        depth=SỐ   mức sâu tìm kiếm tối đa; 0=tự động (mặc định)"
760
858
761
#: src/xz/message.c:1209
859
#: src/xz/message.c:1082
860
#, fuzzy
861
#| msgid ""
862
#| "\n"
863
#| "  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
864
#| "  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
865
#| "  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
866
#| "  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
867
#| "  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
868
#| "  --sparc[=OPTS]      SPARC BCJ filter\n"
869
#| "                      Valid OPTS for all BCJ filters:\n"
870
#| "                        start=NUM  start offset for conversions (default=0)"
762
msgid ""
871
msgid ""
763
"\n"
872
"\n"
764
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
873
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
874
"  --arm[=OPTS]        ARM BCJ filter\n"
875
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter\n"
876
"  --arm64[=OPTS]      ARM64 BCJ filter\n"
765
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
877
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
766
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
878
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
767
"  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
768
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
769
"  --sparc[=OPTS]      SPARC BCJ filter\n"
879
"  --sparc[=OPTS]      SPARC BCJ filter\n"
770
"                      Valid OPTS for all BCJ filters:\n"
880
"                      Valid OPTS for all BCJ filters:\n"
771
"                        start=NUM  start offset for conversions (default=0)"
881
"                        start=NUM  start offset for conversions (default=0)"
Lines 780-786 Link Here
780
"                      các tùy chọn hợp lệ cho mọi bộ lọc BCJ:\n"
890
"                      các tùy chọn hợp lệ cho mọi bộ lọc BCJ:\n"
781
"                        start=SỐ khoảng bù khởi đầu cho chuyển đổi (mặc định=0)"
891
"                        start=SỐ khoảng bù khởi đầu cho chuyển đổi (mặc định=0)"
782
892
783
#: src/xz/message.c:1221
893
#: src/xz/message.c:1095
784
msgid ""
894
msgid ""
785
"\n"
895
"\n"
786
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
896
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
Lines 793-799 Link Here
793
"                        dist=SỐ    khoảng cách giữa các byte được trừ từ\n"
903
"                        dist=SỐ    khoảng cách giữa các byte được trừ từ\n"
794
"                                   những cái khác (1-256; 1)"
904
"                                   những cái khác (1-256; 1)"
795
905
796
#: src/xz/message.c:1229
906
#: src/xz/message.c:1103
797
msgid ""
907
msgid ""
798
"\n"
908
"\n"
799
" Other options:\n"
909
" Other options:\n"
Lines 801-807 Link Here
801
"\n"
911
"\n"
802
" Tùy chọn khác:\n"
912
" Tùy chọn khác:\n"
803
913
804
#: src/xz/message.c:1232
914
#: src/xz/message.c:1106
805
msgid ""
915
msgid ""
806
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
916
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
807
"  -v, --verbose       be verbose; specify twice for even more verbose"
917
"  -v, --verbose       be verbose; specify twice for even more verbose"
Lines 810-826 Link Here
810
"                      chỉ định hai lần nến bạn muốn chặn cả báo lỗi\n"
920
"                      chỉ định hai lần nến bạn muốn chặn cả báo lỗi\n"
811
"  -v, --verbose       thông báo chi tiết; dùng hai lần nếu muốn chi tiết hơn"
921
"  -v, --verbose       thông báo chi tiết; dùng hai lần nếu muốn chi tiết hơn"
812
922
813
#: src/xz/message.c:1237
923
#: src/xz/message.c:1111
814
msgid "  -Q, --no-warn       make warnings not affect the exit status"
924
msgid "  -Q, --no-warn       make warnings not affect the exit status"
815
msgstr "  -Q, --no-warn       làm cho các cảnh báo không ảnh hưởng đến trạng thái thoát"
925
msgstr "  -Q, --no-warn       làm cho các cảnh báo không ảnh hưởng đến trạng thái thoát"
816
926
817
#: src/xz/message.c:1239
927
#: src/xz/message.c:1113
818
msgid "      --robot         use machine-parsable messages (useful for scripts)"
928
msgid "      --robot         use machine-parsable messages (useful for scripts)"
819
msgstr ""
929
msgstr ""
820
"      --robot         dùng các thông điệp máy có thể phân tích\n"
930
"      --robot         dùng các thông điệp máy có thể phân tích\n"
821
"                      (hữu dụng với scripts)"
931
"                      (hữu dụng với scripts)"
822
932
823
#: src/xz/message.c:1242
933
#: src/xz/message.c:1116
824
msgid ""
934
msgid ""
825
"      --info-memory   display the total amount of RAM and the currently active\n"
935
"      --info-memory   display the total amount of RAM and the currently active\n"
826
"                      memory usage limits, and exit"
936
"                      memory usage limits, and exit"
Lines 828-834 Link Here
828
"      --info-memory   hiển thị tổng lượng RAM và mức giới hạn tiêu dùng\n"
938
"      --info-memory   hiển thị tổng lượng RAM và mức giới hạn tiêu dùng\n"
829
"                      bộ nhớ hiện tại, rồi thoát"
939
"                      bộ nhớ hiện tại, rồi thoát"
830
940
831
#: src/xz/message.c:1245
941
#: src/xz/message.c:1119
832
msgid ""
942
msgid ""
833
"  -h, --help          display the short help (lists only the basic options)\n"
943
"  -h, --help          display the short help (lists only the basic options)\n"
834
"  -H, --long-help     display this long help and exit"
944
"  -H, --long-help     display this long help and exit"
Lines 837-843 Link Here
837
"                      (chỉ liệt kê các tùy chọn cơ bản)\n"
947
"                      (chỉ liệt kê các tùy chọn cơ bản)\n"
838
"  -H, --long-help     hiển thị trợ giúp đầy đủ rồi thoát"
948
"  -H, --long-help     hiển thị trợ giúp đầy đủ rồi thoát"
839
949
840
#: src/xz/message.c:1249
950
#: src/xz/message.c:1123
841
msgid ""
951
msgid ""
842
"  -h, --help          display this short help and exit\n"
952
"  -h, --help          display this short help and exit\n"
843
"  -H, --long-help     display the long help (lists also the advanced options)"
953
"  -H, --long-help     display the long help (lists also the advanced options)"
Lines 846-856 Link Here
846
"  -H, --long-help     hiển thị trợ giúp đầy đủ\n"
956
"  -H, --long-help     hiển thị trợ giúp đầy đủ\n"
847
"                      (liệt kê cả những tùy chọn cấp cao)"
957
"                      (liệt kê cả những tùy chọn cấp cao)"
848
958
849
#: src/xz/message.c:1254
959
#: src/xz/message.c:1128
850
msgid "  -V, --version       display the version number and exit"
960
msgid "  -V, --version       display the version number and exit"
851
msgstr "  -V, --version       hiển thị số phiên bản và thoát"
961
msgstr "  -V, --version       hiển thị số phiên bản và thoát"
852
962
853
#: src/xz/message.c:1256
963
#: src/xz/message.c:1130
854
msgid ""
964
msgid ""
855
"\n"
965
"\n"
856
"With no FILE, or when FILE is -, read standard input.\n"
966
"With no FILE, or when FILE is -, read standard input.\n"
Lines 862-880 Link Here
862
#. for this package. Please add _another line_ saying
972
#. for this package. Please add _another line_ saying
863
#. "Report translation bugs to <...>\n" with the email or WWW
973
#. "Report translation bugs to <...>\n" with the email or WWW
864
#. address for translation bugs. Thanks.
974
#. address for translation bugs. Thanks.
865
#: src/xz/message.c:1262
975
#: src/xz/message.c:1136
866
#, c-format
976
#, c-format
867
msgid "Report bugs to <%s> (in English or Finnish).\n"
977
msgid "Report bugs to <%s> (in English or Finnish).\n"
868
msgstr ""
978
msgstr ""
869
"Hãy báo cáo lỗi cho <%s> (bằng tiếng Anh hoặc Phần Lan).\n"
979
"Hãy báo cáo lỗi cho <%s> (bằng tiếng Anh hoặc Phần Lan).\n"
870
"Thông báo lỗi dịch cho: <http://translationproject.org/team/vi.html>.\n"
980
"Thông báo lỗi dịch cho: <http://translationproject.org/team/vi.html>.\n"
871
981
872
#: src/xz/message.c:1264
982
#: src/xz/message.c:1138
873
#, c-format
983
#, c-format
874
msgid "%s home page: <%s>\n"
984
msgid "%s home page: <%s>\n"
875
msgstr "Trang chủ %s: <%s>.\n"
985
msgstr "Trang chủ %s: <%s>.\n"
876
986
877
#: src/xz/message.c:1268
987
#: src/xz/message.c:1142
878
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
988
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
879
msgstr "ĐÂY LÀ PHIÊN BẢN PHÁT TRIỂN VÀ NÓ KHÔNG PHÙ HỢP VỚI MỤC ĐÍCH SẢN XUẤT."
989
msgstr "ĐÂY LÀ PHIÊN BẢN PHÁT TRIỂN VÀ NÓ KHÔNG PHÙ HỢP VỚI MỤC ĐÍCH SẢN XUẤT."
880
990
Lines 902-928 Link Here
902
msgid "The sum of lc and lp must not exceed 4"
1012
msgid "The sum of lc and lp must not exceed 4"
903
msgstr "Tổng số lượng lc và lp không được vượt quá 4"
1013
msgstr "Tổng số lượng lc và lp không được vượt quá 4"
904
1014
905
#: src/xz/options.c:359
1015
#: src/xz/suffix.c:160
906
#, c-format
1016
#, c-format
907
msgid "The selected match finder requires at least nice=%<PRIu32>"
908
msgstr "Bộ tìm khớp đã chọn yêu cầu mức “tốt” ít nhất là nice=%<PRIu32>"
909
910
#: src/xz/suffix.c:133 src/xz/suffix.c:258
911
#, c-format
912
msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
913
msgstr "%s: Nếu --format=raw, --suffix=.SUF sẽ được yêu cầu trừ trường hợp ghi ra đầu ra tiêu chuẩn"
914
915
#: src/xz/suffix.c:164
916
#, c-format
917
msgid "%s: Filename has an unknown suffix, skipping"
1017
msgid "%s: Filename has an unknown suffix, skipping"
918
msgstr "%s: Tên tập tin có phần hậu tố chưa biết nên bỏ qua"
1018
msgstr "%s: Tên tập tin có phần hậu tố chưa biết nên bỏ qua"
919
1019
920
#: src/xz/suffix.c:185
1020
#: src/xz/suffix.c:181
921
#, c-format
1021
#, c-format
922
msgid "%s: File already has `%s' suffix, skipping"
1022
msgid "%s: File already has `%s' suffix, skipping"
923
msgstr "%s: Tập tin đã sẵn có hậu tố “%s” nên bỏ qua"
1023
msgstr "%s: Tập tin đã sẵn có hậu tố “%s” nên bỏ qua"
924
1024
925
#: src/xz/suffix.c:393
1025
#: src/xz/suffix.c:388
926
#, c-format
1026
#, c-format
927
msgid "%s: Invalid filename suffix"
1027
msgid "%s: Invalid filename suffix"
928
msgstr "%s: Hậu tố tên tập tin không hợp lệ"
1028
msgstr "%s: Hậu tố tên tập tin không hợp lệ"
Lines 946-960 Link Here
946
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
1046
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
947
msgstr "Giá trị cuả tùy chọn “%s” phải nằm trong vùng [%<PRIu64>, %<PRIu64>]"
1047
msgstr "Giá trị cuả tùy chọn “%s” phải nằm trong vùng [%<PRIu64>, %<PRIu64>]"
948
1048
949
#: src/xz/util.c:267
1049
#: src/xz/util.c:269
950
msgid "Empty filename, skipping"
951
msgstr "Tên tập tin trống rỗng nên bỏ qua"
952
953
#: src/xz/util.c:281
954
msgid "Compressed data cannot be read from a terminal"
1050
msgid "Compressed data cannot be read from a terminal"
955
msgstr "Dữ liệu đã nén không thể đọc từ thiết bị cuối"
1051
msgstr "Dữ liệu đã nén không thể đọc từ thiết bị cuối"
956
1052
957
#: src/xz/util.c:294
1053
#: src/xz/util.c:282
958
msgid "Compressed data cannot be written to a terminal"
1054
msgid "Compressed data cannot be written to a terminal"
959
msgstr "Dữ liệu đã nén không thể ghi ra thiết bị cuối"
1055
msgstr "Dữ liệu đã nén không thể ghi ra thiết bị cuối"
960
1056
Lines 965-970 Link Here
965
#: src/common/tuklib_exit.c:43
1061
#: src/common/tuklib_exit.c:43
966
msgid "Unknown error"
1062
msgid "Unknown error"
967
msgstr "Lỗi chưa biết"
1063
msgstr "Lỗi chưa biết"
1064
1065
#~ msgid "Memory usage limit for compression:    "
1066
#~ msgstr "Mức giới hạn dùng bộ nhớ cho nén:     "
1067
1068
#, c-format
1069
#~ msgid "  Streams:            %s\n"
1070
#~ msgstr "  Luồng dữ liệu:      %s\n"
1071
1072
#, c-format
1073
#~ msgid "  Blocks:             %s\n"
1074
#~ msgstr "  Khối:               %s\n"
1075
1076
#, c-format
1077
#~ msgid "  Ratio:              %s\n"
1078
#~ msgstr "  Tỷ lệ nén:          %s\n"
1079
1080
#, c-format
1081
#~ msgid "  Check:              %s\n"
1082
#~ msgstr "  Kiểm tra:           %s\n"
1083
1084
#~ msgid ""
1085
#~ "  Streams:\n"
1086
#~ "    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
1087
#~ msgstr ""
1088
#~ "  Luồng dữ liệu:\n"
1089
#~ "     Luồng      Khối           BùNén       BùGiảiNén           CỡNén       CỡGiảiNén   TỷLệ  Ktra           Đệm"
1090
1091
#, c-format
1092
#~ msgid ""
1093
#~ "  Blocks:\n"
1094
#~ "    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
1095
#~ msgstr ""
1096
#~ "  Khối:\n"
1097
#~ "     Luồng      Khối           BùNén       BùGiảiNén          CỡTổng       CỡGiảiNén   TỷLệ  Ktra"
1098
1099
#, c-format
1100
#~ msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
1101
#~ msgstr "       GTrịKiểm %*s    Đầu  Cờ              CỡNén     DùngRAM  BộLọc"
1102
1103
#, c-format
1104
#~ msgid "The selected match finder requires at least nice=%<PRIu32>"
1105
#~ msgstr "Bộ tìm khớp đã chọn yêu cầu mức “tốt” ít nhất là nice=%<PRIu32>"
968
1106
969
#~ msgid "Error setting O_NONBLOCK on standard input: %s"
1107
#~ msgid "Error setting O_NONBLOCK on standard input: %s"
970
#~ msgstr "Lỗi cài đặt O_NONBLOCK trên đầu vào tiêu chuẩn: %s"
1108
#~ msgstr "Lỗi cài đặt O_NONBLOCK trên đầu vào tiêu chuẩn: %s"
(-)xz-5.2.5/po/xz.pot (-235 / +288 lines)
Lines 5-13 Link Here
5
#, fuzzy
5
#, fuzzy
6
msgid ""
6
msgid ""
7
msgstr ""
7
msgstr ""
8
"Project-Id-Version: xz 5.2.5\n"
8
"Project-Id-Version: xz 5.4.3\n"
9
"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
9
"Report-Msgid-Bugs-To: xz@tukaani.org\n"
10
"POT-Creation-Date: 2020-03-17 16:29+0200\n"
10
"POT-Creation-Date: 2023-05-04 22:32+0800\n"
11
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
11
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
"Language-Team: LANGUAGE <LL@li.org>\n"
13
"Language-Team: LANGUAGE <LL@li.org>\n"
Lines 17-116 Link Here
17
"Content-Transfer-Encoding: 8bit\n"
17
"Content-Transfer-Encoding: 8bit\n"
18
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
18
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
19
19
20
#: src/xz/args.c:63
20
#: src/xz/args.c:77
21
#, c-format
21
#, c-format
22
msgid "%s: Invalid argument to --block-list"
22
msgid "%s: Invalid argument to --block-list"
23
msgstr ""
23
msgstr ""
24
24
25
#: src/xz/args.c:73
25
#: src/xz/args.c:87
26
#, c-format
26
#, c-format
27
msgid "%s: Too many arguments to --block-list"
27
msgid "%s: Too many arguments to --block-list"
28
msgstr ""
28
msgstr ""
29
29
30
#: src/xz/args.c:102
30
#: src/xz/args.c:116
31
msgid "0 can only be used as the last element in --block-list"
31
msgid "0 can only be used as the last element in --block-list"
32
msgstr ""
32
msgstr ""
33
33
34
#: src/xz/args.c:406
34
#: src/xz/args.c:451
35
#, c-format
35
#, c-format
36
msgid "%s: Unknown file format type"
36
msgid "%s: Unknown file format type"
37
msgstr ""
37
msgstr ""
38
38
39
#: src/xz/args.c:429 src/xz/args.c:437
39
#: src/xz/args.c:474 src/xz/args.c:482
40
#, c-format
40
#, c-format
41
msgid "%s: Unsupported integrity check type"
41
msgid "%s: Unsupported integrity check type"
42
msgstr ""
42
msgstr ""
43
43
44
#: src/xz/args.c:473
44
#: src/xz/args.c:518
45
msgid "Only one file can be specified with `--files' or `--files0'."
45
msgid "Only one file can be specified with `--files' or `--files0'."
46
msgstr ""
46
msgstr ""
47
47
48
#: src/xz/args.c:541
48
#: src/xz/args.c:586
49
#, c-format
49
#, c-format
50
msgid "The environment variable %s contains too many arguments"
50
msgid "The environment variable %s contains too many arguments"
51
msgstr ""
51
msgstr ""
52
52
53
#: src/xz/args.c:643
53
#: src/xz/args.c:688
54
msgid "Compression support was disabled at build time"
54
msgid "Compression support was disabled at build time"
55
msgstr ""
55
msgstr ""
56
56
57
#: src/xz/args.c:650
57
#: src/xz/args.c:695
58
msgid "Decompression support was disabled at build time"
58
msgid "Decompression support was disabled at build time"
59
msgstr ""
59
msgstr ""
60
60
61
#: src/xz/coder.c:110
61
#: src/xz/args.c:701
62
msgid "Compression of lzip files (.lz) is not supported"
63
msgstr ""
64
65
#: src/xz/args.c:732
66
msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout"
67
msgstr ""
68
69
#: src/xz/coder.c:115
62
msgid "Maximum number of filters is four"
70
msgid "Maximum number of filters is four"
63
msgstr ""
71
msgstr ""
64
72
65
#: src/xz/coder.c:129
73
#: src/xz/coder.c:134
66
msgid "Memory usage limit is too low for the given filter setup."
74
msgid "Memory usage limit is too low for the given filter setup."
67
msgstr ""
75
msgstr ""
68
76
69
#: src/xz/coder.c:159
77
#: src/xz/coder.c:169
70
msgid "Using a preset in raw mode is discouraged."
78
msgid "Using a preset in raw mode is discouraged."
71
msgstr ""
79
msgstr ""
72
80
73
#: src/xz/coder.c:161
81
#: src/xz/coder.c:171
74
msgid "The exact options of the presets may vary between software versions."
82
msgid "The exact options of the presets may vary between software versions."
75
msgstr ""
83
msgstr ""
76
84
77
#: src/xz/coder.c:184
85
#: src/xz/coder.c:194
78
msgid "The .lzma format supports only the LZMA1 filter"
86
msgid "The .lzma format supports only the LZMA1 filter"
79
msgstr ""
87
msgstr ""
80
88
81
#: src/xz/coder.c:192
89
#: src/xz/coder.c:202
82
msgid "LZMA1 cannot be used with the .xz format"
90
msgid "LZMA1 cannot be used with the .xz format"
83
msgstr ""
91
msgstr ""
84
92
85
#: src/xz/coder.c:209
93
#: src/xz/coder.c:219
86
msgid "The filter chain is incompatible with --flush-timeout"
94
msgid "The filter chain is incompatible with --flush-timeout"
87
msgstr ""
95
msgstr ""
88
96
89
#: src/xz/coder.c:215
97
#: src/xz/coder.c:225
90
msgid "Switching to single-threaded mode due to --flush-timeout"
98
msgid "Switching to single-threaded mode due to --flush-timeout"
91
msgstr ""
99
msgstr ""
92
100
93
#: src/xz/coder.c:235
101
#: src/xz/coder.c:249
94
#, c-format
102
#, c-format
95
msgid "Using up to %<PRIu32> threads."
103
msgid "Using up to %<PRIu32> threads."
96
msgstr ""
104
msgstr ""
97
105
98
#: src/xz/coder.c:251
106
#: src/xz/coder.c:265
99
msgid "Unsupported filter chain or filter options"
107
msgid "Unsupported filter chain or filter options"
100
msgstr ""
108
msgstr ""
101
109
102
#: src/xz/coder.c:263
110
#: src/xz/coder.c:277
103
#, c-format
111
#, c-format
104
msgid "Decompression will need %s MiB of memory."
112
msgid "Decompression will need %s MiB of memory."
105
msgstr ""
113
msgstr ""
106
114
107
#: src/xz/coder.c:300
115
#: src/xz/coder.c:309
108
#, c-format
116
#, c-format
109
msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
117
msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
110
msgstr ""
118
msgstr ""
111
119
112
#: src/xz/coder.c:354
120
#: src/xz/coder.c:329
113
#, c-format
121
#, c-format
122
msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway."
123
msgstr ""
124
125
#: src/xz/coder.c:356
126
#, c-format
127
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
128
msgstr ""
129
130
#: src/xz/coder.c:411
131
#, c-format
114
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
132
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
115
msgstr ""
133
msgstr ""
116
134
Lines 119-129 Link Here
119
msgid "Error creating a pipe: %s"
137
msgid "Error creating a pipe: %s"
120
msgstr ""
138
msgstr ""
121
139
122
#: src/xz/file_io.c:224
140
#: src/xz/file_io.c:252
123
msgid "Failed to enable the sandbox"
141
msgid "Failed to enable the sandbox"
124
msgstr ""
142
msgstr ""
125
143
126
#: src/xz/file_io.c:266
144
#: src/xz/file_io.c:294
127
#, c-format
145
#, c-format
128
msgid "%s: poll() failed: %s"
146
msgid "%s: poll() failed: %s"
129
msgstr ""
147
msgstr ""
Lines 138-455 Link Here
138
#. it is possible that the user has put a new file in place
156
#. it is possible that the user has put a new file in place
139
#. of the original file, and in that case it obviously
157
#. of the original file, and in that case it obviously
140
#. shouldn't be removed.
158
#. shouldn't be removed.
141
#: src/xz/file_io.c:333
159
#: src/xz/file_io.c:361
142
#, c-format
160
#, c-format
143
msgid "%s: File seems to have been moved, not removing"
161
msgid "%s: File seems to have been moved, not removing"
144
msgstr ""
162
msgstr ""
145
163
146
#: src/xz/file_io.c:340 src/xz/file_io.c:882
164
#: src/xz/file_io.c:368 src/xz/file_io.c:924
147
#, c-format
165
#, c-format
148
msgid "%s: Cannot remove: %s"
166
msgid "%s: Cannot remove: %s"
149
msgstr ""
167
msgstr ""
150
168
151
#: src/xz/file_io.c:366
169
#: src/xz/file_io.c:394
152
#, c-format
170
#, c-format
153
msgid "%s: Cannot set the file owner: %s"
171
msgid "%s: Cannot set the file owner: %s"
154
msgstr ""
172
msgstr ""
155
173
156
#: src/xz/file_io.c:372
174
#: src/xz/file_io.c:407
157
#, c-format
175
#, c-format
158
msgid "%s: Cannot set the file group: %s"
176
msgid "%s: Cannot set the file group: %s"
159
msgstr ""
177
msgstr ""
160
178
161
#: src/xz/file_io.c:391
179
#: src/xz/file_io.c:426
162
#, c-format
180
#, c-format
163
msgid "%s: Cannot set the file permissions: %s"
181
msgid "%s: Cannot set the file permissions: %s"
164
msgstr ""
182
msgstr ""
165
183
166
#: src/xz/file_io.c:517
184
#: src/xz/file_io.c:552
167
#, c-format
185
#, c-format
168
msgid "Error getting the file status flags from standard input: %s"
186
msgid "Error getting the file status flags from standard input: %s"
169
msgstr ""
187
msgstr ""
170
188
171
#: src/xz/file_io.c:574 src/xz/file_io.c:636
189
#: src/xz/file_io.c:610 src/xz/file_io.c:672
172
#, c-format
190
#, c-format
173
msgid "%s: Is a symbolic link, skipping"
191
msgid "%s: Is a symbolic link, skipping"
174
msgstr ""
192
msgstr ""
175
193
176
#: src/xz/file_io.c:665
194
#: src/xz/file_io.c:701
177
#, c-format
195
#, c-format
178
msgid "%s: Is a directory, skipping"
196
msgid "%s: Is a directory, skipping"
179
msgstr ""
197
msgstr ""
180
198
181
#: src/xz/file_io.c:671
199
#: src/xz/file_io.c:707
182
#, c-format
200
#, c-format
183
msgid "%s: Not a regular file, skipping"
201
msgid "%s: Not a regular file, skipping"
184
msgstr ""
202
msgstr ""
185
203
186
#: src/xz/file_io.c:688
204
#: src/xz/file_io.c:724
187
#, c-format
205
#, c-format
188
msgid "%s: File has setuid or setgid bit set, skipping"
206
msgid "%s: File has setuid or setgid bit set, skipping"
189
msgstr ""
207
msgstr ""
190
208
191
#: src/xz/file_io.c:695
209
#: src/xz/file_io.c:731
192
#, c-format
210
#, c-format
193
msgid "%s: File has sticky bit set, skipping"
211
msgid "%s: File has sticky bit set, skipping"
194
msgstr ""
212
msgstr ""
195
213
196
#: src/xz/file_io.c:702
214
#: src/xz/file_io.c:738
197
#, c-format
215
#, c-format
198
msgid "%s: Input file has more than one hard link, skipping"
216
msgid "%s: Input file has more than one hard link, skipping"
199
msgstr ""
217
msgstr ""
200
218
201
#: src/xz/file_io.c:792
219
#: src/xz/file_io.c:780
220
msgid "Empty filename, skipping"
221
msgstr ""
222
223
#: src/xz/file_io.c:834
202
#, c-format
224
#, c-format
203
msgid "Error restoring the status flags to standard input: %s"
225
msgid "Error restoring the status flags to standard input: %s"
204
msgstr ""
226
msgstr ""
205
227
206
#: src/xz/file_io.c:840
228
#: src/xz/file_io.c:882
207
#, c-format
229
#, c-format
208
msgid "Error getting the file status flags from standard output: %s"
230
msgid "Error getting the file status flags from standard output: %s"
209
msgstr ""
231
msgstr ""
210
232
211
#: src/xz/file_io.c:1018
233
#: src/xz/file_io.c:1060
212
#, c-format
234
#, c-format
213
msgid "Error restoring the O_APPEND flag to standard output: %s"
235
msgid "Error restoring the O_APPEND flag to standard output: %s"
214
msgstr ""
236
msgstr ""
215
237
216
#: src/xz/file_io.c:1030
238
#: src/xz/file_io.c:1072
217
#, c-format
239
#, c-format
218
msgid "%s: Closing the file failed: %s"
240
msgid "%s: Closing the file failed: %s"
219
msgstr ""
241
msgstr ""
220
242
221
#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
243
#: src/xz/file_io.c:1108 src/xz/file_io.c:1371
222
#, c-format
244
#, c-format
223
msgid "%s: Seeking failed when trying to create a sparse file: %s"
245
msgid "%s: Seeking failed when trying to create a sparse file: %s"
224
msgstr ""
246
msgstr ""
225
247
226
#: src/xz/file_io.c:1167
248
#: src/xz/file_io.c:1209
227
#, c-format
249
#, c-format
228
msgid "%s: Read error: %s"
250
msgid "%s: Read error: %s"
229
msgstr ""
251
msgstr ""
230
252
231
#: src/xz/file_io.c:1191
253
#: src/xz/file_io.c:1239
232
#, c-format
254
#, c-format
233
msgid "%s: Error seeking the file: %s"
255
msgid "%s: Error seeking the file: %s"
234
msgstr ""
256
msgstr ""
235
257
236
#: src/xz/file_io.c:1201
258
#: src/xz/file_io.c:1263
237
#, c-format
259
#, c-format
238
msgid "%s: Unexpected end of file"
260
msgid "%s: Unexpected end of file"
239
msgstr ""
261
msgstr ""
240
262
241
#: src/xz/file_io.c:1260
263
#: src/xz/file_io.c:1322
242
#, c-format
264
#, c-format
243
msgid "%s: Write error: %s"
265
msgid "%s: Write error: %s"
244
msgstr ""
266
msgstr ""
245
267
246
#: src/xz/hardware.c:137
268
#: src/xz/hardware.c:238
247
msgid "Disabled"
269
msgid "Disabled"
248
msgstr ""
270
msgstr ""
249
271
250
#. TRANSLATORS: Test with "xz --info-memory" to see if
272
#: src/xz/hardware.c:269
251
#. the alignment looks nice.
273
msgid "Amount of physical memory (RAM):"
252
#: src/xz/hardware.c:156
253
msgid "Total amount of physical memory (RAM): "
254
msgstr ""
274
msgstr ""
255
275
256
#: src/xz/hardware.c:158
276
#: src/xz/hardware.c:270
257
msgid "Memory usage limit for compression:    "
277
msgid "Number of processor threads:"
258
msgstr ""
278
msgstr ""
259
279
260
#: src/xz/hardware.c:160
280
#: src/xz/hardware.c:271
261
msgid "Memory usage limit for decompression:  "
281
msgid "Compression:"
262
msgstr ""
282
msgstr ""
263
283
264
#. TRANSLATORS: Indicates that there is no integrity check.
284
#: src/xz/hardware.c:272
265
#. This string is used in tables, so the width must not
285
msgid "Decompression:"
266
#. exceed ten columns with a fixed-width font.
267
#: src/xz/list.c:65
268
msgid "None"
269
msgstr ""
286
msgstr ""
270
287
271
#. TRANSLATORS: Indicates that integrity check name is not known,
288
#: src/xz/hardware.c:273
272
#. but the Check ID is known (here 2). This and other "Unknown-N"
289
msgid "Multi-threaded decompression:"
273
#. strings are used in tables, so the width must not exceed ten
290
msgstr ""
274
#. columns with a fixed-width font. It's OK to omit the dash if
291
275
#. you need space for one extra letter, but don't use spaces.
292
#: src/xz/hardware.c:274
293
msgid "Default for -T0:"
294
msgstr ""
295
296
#: src/xz/hardware.c:292
297
msgid "Hardware information:"
298
msgstr ""
299
300
#: src/xz/hardware.c:299
301
msgid "Memory usage limits:"
302
msgstr ""
303
304
#: src/xz/list.c:68
305
msgid "Streams:"
306
msgstr ""
307
308
#: src/xz/list.c:69
309
msgid "Blocks:"
310
msgstr ""
311
312
#: src/xz/list.c:70
313
msgid "Compressed size:"
314
msgstr ""
315
316
#: src/xz/list.c:71
317
msgid "Uncompressed size:"
318
msgstr ""
319
276
#: src/xz/list.c:72
320
#: src/xz/list.c:72
277
msgid "Unknown-2"
321
msgid "Ratio:"
278
msgstr ""
322
msgstr ""
279
323
280
#: src/xz/list.c:73
324
#: src/xz/list.c:73
281
msgid "Unknown-3"
325
msgid "Check:"
282
msgstr ""
326
msgstr ""
283
327
328
#: src/xz/list.c:74
329
msgid "Stream Padding:"
330
msgstr ""
331
284
#: src/xz/list.c:75
332
#: src/xz/list.c:75
285
msgid "Unknown-5"
333
msgid "Memory needed:"
286
msgstr ""
334
msgstr ""
287
335
288
#: src/xz/list.c:76
336
#: src/xz/list.c:76
289
msgid "Unknown-6"
337
msgid "Sizes in headers:"
290
msgstr ""
338
msgstr ""
291
339
292
#: src/xz/list.c:77
340
#: src/xz/list.c:79
293
msgid "Unknown-7"
341
msgid "Number of files:"
294
msgstr ""
342
msgstr ""
295
343
296
#: src/xz/list.c:78
344
#: src/xz/list.c:122
297
msgid "Unknown-8"
345
msgid "Stream"
298
msgstr ""
346
msgstr ""
299
347
300
#: src/xz/list.c:79
348
#: src/xz/list.c:123
301
msgid "Unknown-9"
349
msgid "Block"
302
msgstr ""
350
msgstr ""
303
351
304
#: src/xz/list.c:81
352
#: src/xz/list.c:124
305
msgid "Unknown-11"
353
msgid "Blocks"
306
msgstr ""
354
msgstr ""
307
355
308
#: src/xz/list.c:82
356
#: src/xz/list.c:125
309
msgid "Unknown-12"
357
msgid "CompOffset"
310
msgstr ""
358
msgstr ""
311
359
312
#: src/xz/list.c:83
360
#: src/xz/list.c:126
313
msgid "Unknown-13"
361
msgid "UncompOffset"
314
msgstr ""
362
msgstr ""
315
363
316
#: src/xz/list.c:84
364
#: src/xz/list.c:127
317
msgid "Unknown-14"
365
msgid "CompSize"
318
msgstr ""
366
msgstr ""
319
367
320
#: src/xz/list.c:85
368
#: src/xz/list.c:128
321
msgid "Unknown-15"
369
msgid "UncompSize"
322
msgstr ""
370
msgstr ""
323
371
324
#: src/xz/list.c:153
372
#: src/xz/list.c:129
325
#, c-format
373
msgid "TotalSize"
326
msgid "%s: File is empty"
327
msgstr ""
374
msgstr ""
328
375
329
#: src/xz/list.c:158
376
#: src/xz/list.c:130
330
#, c-format
377
msgid "Ratio"
331
msgid "%s: Too small to be a valid .xz file"
332
msgstr ""
378
msgstr ""
333
379
334
#. TRANSLATORS: These are column headings. From Strms (Streams)
380
#: src/xz/list.c:131
335
#. to Ratio, the columns are right aligned. Check and Filename
381
msgid "Check"
336
#. are left aligned. If you need longer words, it's OK to
337
#. use two lines here. Test with "xz -l foo.xz".
338
#: src/xz/list.c:677
339
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
340
msgstr ""
382
msgstr ""
341
383
342
#: src/xz/list.c:717
384
#: src/xz/list.c:132
343
#, c-format
385
msgid "CheckVal"
344
msgid "  Streams:            %s\n"
345
msgstr ""
386
msgstr ""
346
387
347
#: src/xz/list.c:719
388
#: src/xz/list.c:133
348
#, c-format
389
msgid "Padding"
349
msgid "  Blocks:             %s\n"
350
msgstr ""
390
msgstr ""
351
391
352
#: src/xz/list.c:721
392
#: src/xz/list.c:134
353
#, c-format
393
msgid "Header"
354
msgid "  Compressed size:    %s\n"
355
msgstr ""
394
msgstr ""
356
395
357
#: src/xz/list.c:724
396
#: src/xz/list.c:135
358
#, c-format
397
msgid "Flags"
359
msgid "  Uncompressed size:  %s\n"
360
msgstr ""
398
msgstr ""
361
399
362
#: src/xz/list.c:727
400
#: src/xz/list.c:136
363
#, c-format
401
msgid "MemUsage"
364
msgid "  Ratio:              %s\n"
365
msgstr ""
402
msgstr ""
366
403
367
#: src/xz/list.c:729
404
#: src/xz/list.c:137
368
#, c-format
405
msgid "Filters"
369
msgid "  Check:              %s\n"
370
msgstr ""
406
msgstr ""
371
407
372
#: src/xz/list.c:730
408
#. TRANSLATORS: Indicates that there is no integrity check.
373
#, c-format
409
#. This string is used in tables. In older xz version this
374
msgid "  Stream padding:     %s\n"
410
#. string was limited to ten columns in a fixed-width font, but
411
#. nowadays there is no strict length restriction anymore.
412
#: src/xz/list.c:169
413
msgid "None"
375
msgstr ""
414
msgstr ""
376
415
377
#. TRANSLATORS: The second line is column headings. All except
416
#. TRANSLATORS: Indicates that integrity check name is not known,
378
#. Check are right aligned; Check is left aligned. Test with
417
#. but the Check ID is known (here 2). In older xz version these
379
#. "xz -lv foo.xz".
418
#. strings were limited to ten columns in a fixed-width font, but
380
#: src/xz/list.c:758
419
#. nowadays there is no strict length restriction anymore.
381
msgid ""
420
#: src/xz/list.c:175
382
"  Streams:\n"
421
msgid "Unknown-2"
383
"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
384
msgstr ""
422
msgstr ""
385
423
386
#. TRANSLATORS: The second line is column headings. All
424
#: src/xz/list.c:176
387
#. except Check are right aligned; Check is left aligned.
425
msgid "Unknown-3"
388
#: src/xz/list.c:813
389
#, c-format
390
msgid ""
391
"  Blocks:\n"
392
"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
393
msgstr ""
426
msgstr ""
394
427
395
#. TRANSLATORS: These are additional column headings
428
#: src/xz/list.c:178
396
#. for the most verbose listing mode. CheckVal
429
msgid "Unknown-5"
397
#. (Check value), Flags, and Filters are left aligned.
398
#. Header (Block Header Size), CompSize, and MemUsage
399
#. are right aligned. %*s is replaced with 0-120
400
#. spaces to make the CheckVal column wide enough.
401
#. Test with "xz -lvv foo.xz".
402
#: src/xz/list.c:825
403
#, c-format
404
msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
405
msgstr ""
430
msgstr ""
406
431
407
#: src/xz/list.c:903 src/xz/list.c:1078
432
#: src/xz/list.c:179
433
msgid "Unknown-6"
434
msgstr ""
435
436
#: src/xz/list.c:180
437
msgid "Unknown-7"
438
msgstr ""
439
440
#: src/xz/list.c:181
441
msgid "Unknown-8"
442
msgstr ""
443
444
#: src/xz/list.c:182
445
msgid "Unknown-9"
446
msgstr ""
447
448
#: src/xz/list.c:184
449
msgid "Unknown-11"
450
msgstr ""
451
452
#: src/xz/list.c:185
453
msgid "Unknown-12"
454
msgstr ""
455
456
#: src/xz/list.c:186
457
msgid "Unknown-13"
458
msgstr ""
459
460
#: src/xz/list.c:187
461
msgid "Unknown-14"
462
msgstr ""
463
464
#: src/xz/list.c:188
465
msgid "Unknown-15"
466
msgstr ""
467
468
#: src/xz/list.c:351
408
#, c-format
469
#, c-format
409
msgid "  Memory needed:      %s MiB\n"
470
msgid "%s: File is empty"
410
msgstr ""
471
msgstr ""
411
472
412
#: src/xz/list.c:905 src/xz/list.c:1080
473
#: src/xz/list.c:356
413
#, c-format
474
#, c-format
414
msgid "  Sizes in headers:   %s\n"
475
msgid "%s: Too small to be a valid .xz file"
415
msgstr ""
476
msgstr ""
416
477
417
#: src/xz/list.c:906 src/xz/list.c:1081
478
#. TRANSLATORS: These are column headings. From Strms (Streams)
479
#. to Ratio, the columns are right aligned. Check and Filename
480
#. are left aligned. If you need longer words, it's OK to
481
#. use two lines here. Test with "xz -l foo.xz".
482
#: src/xz/list.c:730
483
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
484
msgstr ""
485
486
#: src/xz/list.c:1025 src/xz/list.c:1203
418
msgid "Yes"
487
msgid "Yes"
419
msgstr ""
488
msgstr ""
420
489
421
#: src/xz/list.c:906 src/xz/list.c:1081
490
#: src/xz/list.c:1025 src/xz/list.c:1203
422
msgid "No"
491
msgid "No"
423
msgstr ""
492
msgstr ""
424
493
425
#: src/xz/list.c:907 src/xz/list.c:1082
494
#: src/xz/list.c:1027 src/xz/list.c:1205
426
#, c-format
495
#, c-format
427
msgid "  Minimum XZ Utils version: %s\n"
496
msgid "  Minimum XZ Utils version: %s\n"
428
msgstr ""
497
msgstr ""
429
498
430
#. TRANSLATORS: %s is an integer. Only the plural form of this
499
#. TRANSLATORS: %s is an integer. Only the plural form of this
431
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
500
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
432
#: src/xz/list.c:1057
501
#: src/xz/list.c:1178
433
#, c-format
502
#, c-format
434
msgid "%s file\n"
503
msgid "%s file\n"
435
msgid_plural "%s files\n"
504
msgid_plural "%s files\n"
436
msgstr[0] ""
505
msgstr[0] ""
437
msgstr[1] ""
506
msgstr[1] ""
438
507
439
#: src/xz/list.c:1070
508
#: src/xz/list.c:1191
440
msgid "Totals:"
509
msgid "Totals:"
441
msgstr ""
510
msgstr ""
442
511
443
#: src/xz/list.c:1071
512
#: src/xz/list.c:1269
444
#, c-format
445
msgid "  Number of files:    %s\n"
446
msgstr ""
447
448
#: src/xz/list.c:1146
449
msgid "--list works only on .xz files (--format=xz or --format=auto)"
513
msgid "--list works only on .xz files (--format=xz or --format=auto)"
450
msgstr ""
514
msgstr ""
451
515
452
#: src/xz/list.c:1152
516
#: src/xz/list.c:1275
453
msgid "--list does not support reading from standard input"
517
msgid "--list does not support reading from standard input"
454
msgstr ""
518
msgstr ""
455
519
Lines 468-478 Link Here
468
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
532
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
469
msgstr ""
533
msgstr ""
470
534
471
#: src/xz/main.c:174
535
#: src/xz/main.c:188
472
msgid "Compression and decompression with --robot are not supported yet."
536
msgid "Compression and decompression with --robot are not supported yet."
473
msgstr ""
537
msgstr ""
474
538
475
#: src/xz/main.c:252
539
#: src/xz/main.c:266
476
msgid "Cannot read data from standard input when reading filenames from standard input"
540
msgid "Cannot read data from standard input when reading filenames from standard input"
477
msgstr ""
541
msgstr ""
478
542
Lines 480-547 Link Here
480
#. of the line in messages. Usually it becomes "xz: ".
544
#. of the line in messages. Usually it becomes "xz: ".
481
#. This is a translatable string because French needs
545
#. This is a translatable string because French needs
482
#. a space before a colon.
546
#. a space before a colon.
483
#: src/xz/message.c:728
547
#: src/xz/message.c:725
484
#, c-format
548
#, c-format
485
msgid "%s: "
549
msgid "%s: "
486
msgstr ""
550
msgstr ""
487
551
488
#: src/xz/message.c:791 src/xz/message.c:841
552
#: src/xz/message.c:797 src/xz/message.c:856
489
msgid "Internal error (bug)"
553
msgid "Internal error (bug)"
490
msgstr ""
554
msgstr ""
491
555
492
#: src/xz/message.c:798
556
#: src/xz/message.c:804
493
msgid "Cannot establish signal handlers"
557
msgid "Cannot establish signal handlers"
494
msgstr ""
558
msgstr ""
495
559
496
#: src/xz/message.c:807
560
#: src/xz/message.c:813
497
msgid "No integrity check; not verifying file integrity"
561
msgid "No integrity check; not verifying file integrity"
498
msgstr ""
562
msgstr ""
499
563
500
#: src/xz/message.c:810
564
#: src/xz/message.c:816
501
msgid "Unsupported type of integrity check; not verifying file integrity"
565
msgid "Unsupported type of integrity check; not verifying file integrity"
502
msgstr ""
566
msgstr ""
503
567
504
#: src/xz/message.c:817
568
#: src/xz/message.c:823
505
msgid "Memory usage limit reached"
569
msgid "Memory usage limit reached"
506
msgstr ""
570
msgstr ""
507
571
508
#: src/xz/message.c:820
572
#: src/xz/message.c:826
509
msgid "File format not recognized"
573
msgid "File format not recognized"
510
msgstr ""
574
msgstr ""
511
575
512
#: src/xz/message.c:823
576
#: src/xz/message.c:829
513
msgid "Unsupported options"
577
msgid "Unsupported options"
514
msgstr ""
578
msgstr ""
515
579
516
#: src/xz/message.c:826
580
#: src/xz/message.c:832
517
msgid "Compressed data is corrupt"
581
msgid "Compressed data is corrupt"
518
msgstr ""
582
msgstr ""
519
583
520
#: src/xz/message.c:829
584
#: src/xz/message.c:835
521
msgid "Unexpected end of input"
585
msgid "Unexpected end of input"
522
msgstr ""
586
msgstr ""
523
587
524
#: src/xz/message.c:862
588
#: src/xz/message.c:877
525
#, c-format
589
#, c-format
526
msgid "%s MiB of memory is required. The limiter is disabled."
590
msgid "%s MiB of memory is required. The limiter is disabled."
527
msgstr ""
591
msgstr ""
528
592
529
#: src/xz/message.c:890
593
#: src/xz/message.c:905
530
#, c-format
594
#, c-format
531
msgid "%s MiB of memory is required. The limit is %s."
595
msgid "%s MiB of memory is required. The limit is %s."
532
msgstr ""
596
msgstr ""
533
597
534
#: src/xz/message.c:1057
598
#: src/xz/message.c:924
535
#, c-format
599
#, c-format
536
msgid "%s: Filter chain: %s\n"
600
msgid "%s: Filter chain: %s\n"
537
msgstr ""
601
msgstr ""
538
602
539
#: src/xz/message.c:1067
603
#: src/xz/message.c:935
540
#, c-format
604
#, c-format
541
msgid "Try `%s --help' for more information."
605
msgid "Try `%s --help' for more information."
542
msgstr ""
606
msgstr ""
543
607
544
#: src/xz/message.c:1093
608
#: src/xz/message.c:961
545
#, c-format
609
#, c-format
546
msgid ""
610
msgid ""
547
"Usage: %s [OPTION]... [FILE]...\n"
611
"Usage: %s [OPTION]... [FILE]...\n"
Lines 549-563 Link Here
549
"\n"
613
"\n"
550
msgstr ""
614
msgstr ""
551
615
552
#: src/xz/message.c:1100
616
#: src/xz/message.c:968
553
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
617
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
554
msgstr ""
618
msgstr ""
555
619
556
#: src/xz/message.c:1104
620
#: src/xz/message.c:972
557
msgid " Operation mode:\n"
621
msgid " Operation mode:\n"
558
msgstr ""
622
msgstr ""
559
623
560
#: src/xz/message.c:1107
624
#: src/xz/message.c:975
561
msgid ""
625
msgid ""
562
"  -z, --compress      force compression\n"
626
"  -z, --compress      force compression\n"
563
"  -d, --decompress    force decompression\n"
627
"  -d, --decompress    force decompression\n"
Lines 565-590 Link Here
565
"  -l, --list          list information about .xz files"
629
"  -l, --list          list information about .xz files"
566
msgstr ""
630
msgstr ""
567
631
568
#: src/xz/message.c:1113
632
#: src/xz/message.c:981
569
msgid ""
633
msgid ""
570
"\n"
634
"\n"
571
" Operation modifiers:\n"
635
" Operation modifiers:\n"
572
msgstr ""
636
msgstr ""
573
637
574
#: src/xz/message.c:1116
638
#: src/xz/message.c:984
575
msgid ""
639
msgid ""
576
"  -k, --keep          keep (don't delete) input files\n"
640
"  -k, --keep          keep (don't delete) input files\n"
577
"  -f, --force         force overwrite of output file and (de)compress links\n"
641
"  -f, --force         force overwrite of output file and (de)compress links\n"
578
"  -c, --stdout        write to standard output and don't delete input files"
642
"  -c, --stdout        write to standard output and don't delete input files"
579
msgstr ""
643
msgstr ""
580
644
581
#: src/xz/message.c:1122
645
#: src/xz/message.c:993
582
msgid ""
646
msgid ""
583
"      --single-stream decompress only the first stream, and silently\n"
647
"      --single-stream decompress only the first stream, and silently\n"
584
"                      ignore possible remaining input data"
648
"                      ignore possible remaining input data"
585
msgstr ""
649
msgstr ""
586
650
587
#: src/xz/message.c:1125
651
#: src/xz/message.c:996
588
msgid ""
652
msgid ""
589
"      --no-sparse     do not create sparse files when decompressing\n"
653
"      --no-sparse     do not create sparse files when decompressing\n"
590
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
654
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
Lines 594-650 Link Here
594
"      --files0[=FILE] like --files but use the null character as terminator"
658
"      --files0[=FILE] like --files but use the null character as terminator"
595
msgstr ""
659
msgstr ""
596
660
597
#: src/xz/message.c:1134
661
#: src/xz/message.c:1005
598
msgid ""
662
msgid ""
599
"\n"
663
"\n"
600
" Basic file format and compression options:\n"
664
" Basic file format and compression options:\n"
601
msgstr ""
665
msgstr ""
602
666
603
#: src/xz/message.c:1136
667
#: src/xz/message.c:1007
604
msgid ""
668
msgid ""
605
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
669
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
606
"                      `auto' (default), `xz', `lzma', and `raw'\n"
670
"                      `auto' (default), `xz', `lzma', `lzip', and `raw'\n"
607
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
671
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
608
"                      `crc32', `crc64' (default), or `sha256'"
672
"                      `crc32', `crc64' (default), or `sha256'"
609
msgstr ""
673
msgstr ""
610
674
611
#: src/xz/message.c:1141
675
#: src/xz/message.c:1012
612
msgid "      --ignore-check  don't verify the integrity check when decompressing"
676
msgid "      --ignore-check  don't verify the integrity check when decompressing"
613
msgstr ""
677
msgstr ""
614
678
615
#: src/xz/message.c:1145
679
#: src/xz/message.c:1016
616
msgid ""
680
msgid ""
617
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
681
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
618
"                      decompressor memory usage into account before using 7-9!"
682
"                      decompressor memory usage into account before using 7-9!"
619
msgstr ""
683
msgstr ""
620
684
621
#: src/xz/message.c:1149
685
#: src/xz/message.c:1020
622
msgid ""
686
msgid ""
623
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
687
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
624
"                      does not affect decompressor memory requirements"
688
"                      does not affect decompressor memory requirements"
625
msgstr ""
689
msgstr ""
626
690
627
#: src/xz/message.c:1153
691
#: src/xz/message.c:1024
628
msgid ""
692
msgid ""
629
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
693
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
630
"                      to use as many threads as there are processor cores"
694
"                      to use as many threads as there are processor cores"
631
msgstr ""
695
msgstr ""
632
696
633
#: src/xz/message.c:1158
697
#: src/xz/message.c:1029
634
msgid ""
698
msgid ""
635
"      --block-size=SIZE\n"
699
"      --block-size=SIZE\n"
636
"                      start a new .xz block after every SIZE bytes of input;\n"
700
"                      start a new .xz block after every SIZE bytes of input;\n"
637
"                      use this to set the block size for threaded compression"
701
"                      use this to set the block size for threaded compression"
638
msgstr ""
702
msgstr ""
639
703
640
#: src/xz/message.c:1162
704
#: src/xz/message.c:1033
641
msgid ""
705
msgid ""
642
"      --block-list=SIZES\n"
706
"      --block-list=SIZES\n"
643
"                      start a new .xz block after the given comma-separated\n"
707
"                      start a new .xz block after the given comma-separated\n"
644
"                      intervals of uncompressed data"
708
"                      intervals of uncompressed data"
645
msgstr ""
709
msgstr ""
646
710
647
#: src/xz/message.c:1166
711
#: src/xz/message.c:1037
648
msgid ""
712
msgid ""
649
"      --flush-timeout=TIMEOUT\n"
713
"      --flush-timeout=TIMEOUT\n"
650
"                      when compressing, if more than TIMEOUT milliseconds has\n"
714
"                      when compressing, if more than TIMEOUT milliseconds has\n"
Lines 652-680 Link Here
652
"                      would block, all pending data is flushed out"
716
"                      would block, all pending data is flushed out"
653
msgstr ""
717
msgstr ""
654
718
655
#: src/xz/message.c:1172
719
#: src/xz/message.c:1043
656
#, no-c-format
720
#, no-c-format
657
msgid ""
721
msgid ""
658
"      --memlimit-compress=LIMIT\n"
722
"      --memlimit-compress=LIMIT\n"
659
"      --memlimit-decompress=LIMIT\n"
723
"      --memlimit-decompress=LIMIT\n"
724
"      --memlimit-mt-decompress=LIMIT\n"
660
"  -M, --memlimit=LIMIT\n"
725
"  -M, --memlimit=LIMIT\n"
661
"                      set memory usage limit for compression, decompression,\n"
726
"                      set memory usage limit for compression, decompression,\n"
662
"                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
727
"                      threaded decompression, or all of these; LIMIT is in\n"
728
"                      bytes, % of RAM, or 0 for defaults"
663
msgstr ""
729
msgstr ""
664
730
665
#: src/xz/message.c:1179
731
#: src/xz/message.c:1052
666
msgid ""
732
msgid ""
667
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
733
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
668
"                      give an error instead of adjusting the settings downwards"
734
"                      give an error instead of adjusting the settings downwards"
669
msgstr ""
735
msgstr ""
670
736
671
#: src/xz/message.c:1185
737
#: src/xz/message.c:1058
672
msgid ""
738
msgid ""
673
"\n"
739
"\n"
674
" Custom filter chain for compression (alternative for using presets):"
740
" Custom filter chain for compression (alternative for using presets):"
675
msgstr ""
741
msgstr ""
676
742
677
#: src/xz/message.c:1194
743
#: src/xz/message.c:1067
678
msgid ""
744
msgid ""
679
"\n"
745
"\n"
680
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
746
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
Lines 690-709 Link Here
690
"                        depth=NUM  maximum search depth; 0=automatic (default)"
756
"                        depth=NUM  maximum search depth; 0=automatic (default)"
691
msgstr ""
757
msgstr ""
692
758
693
#: src/xz/message.c:1209
759
#: src/xz/message.c:1082
694
msgid ""
760
msgid ""
695
"\n"
761
"\n"
696
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
762
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
763
"  --arm[=OPTS]        ARM BCJ filter\n"
764
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter\n"
765
"  --arm64[=OPTS]      ARM64 BCJ filter\n"
697
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
766
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
698
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
767
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
699
"  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
700
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
701
"  --sparc[=OPTS]      SPARC BCJ filter\n"
768
"  --sparc[=OPTS]      SPARC BCJ filter\n"
702
"                      Valid OPTS for all BCJ filters:\n"
769
"                      Valid OPTS for all BCJ filters:\n"
703
"                        start=NUM  start offset for conversions (default=0)"
770
"                        start=NUM  start offset for conversions (default=0)"
704
msgstr ""
771
msgstr ""
705
772
706
#: src/xz/message.c:1221
773
#: src/xz/message.c:1095
707
msgid ""
774
msgid ""
708
"\n"
775
"\n"
709
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
776
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
Lines 711-759 Link Here
711
"                                   from each other (1-256; 1)"
778
"                                   from each other (1-256; 1)"
712
msgstr ""
779
msgstr ""
713
780
714
#: src/xz/message.c:1229
781
#: src/xz/message.c:1103
715
msgid ""
782
msgid ""
716
"\n"
783
"\n"
717
" Other options:\n"
784
" Other options:\n"
718
msgstr ""
785
msgstr ""
719
786
720
#: src/xz/message.c:1232
787
#: src/xz/message.c:1106
721
msgid ""
788
msgid ""
722
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
789
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
723
"  -v, --verbose       be verbose; specify twice for even more verbose"
790
"  -v, --verbose       be verbose; specify twice for even more verbose"
724
msgstr ""
791
msgstr ""
725
792
726
#: src/xz/message.c:1237
793
#: src/xz/message.c:1111
727
msgid "  -Q, --no-warn       make warnings not affect the exit status"
794
msgid "  -Q, --no-warn       make warnings not affect the exit status"
728
msgstr ""
795
msgstr ""
729
796
730
#: src/xz/message.c:1239
797
#: src/xz/message.c:1113
731
msgid "      --robot         use machine-parsable messages (useful for scripts)"
798
msgid "      --robot         use machine-parsable messages (useful for scripts)"
732
msgstr ""
799
msgstr ""
733
800
734
#: src/xz/message.c:1242
801
#: src/xz/message.c:1116
735
msgid ""
802
msgid ""
736
"      --info-memory   display the total amount of RAM and the currently active\n"
803
"      --info-memory   display the total amount of RAM and the currently active\n"
737
"                      memory usage limits, and exit"
804
"                      memory usage limits, and exit"
738
msgstr ""
805
msgstr ""
739
806
740
#: src/xz/message.c:1245
807
#: src/xz/message.c:1119
741
msgid ""
808
msgid ""
742
"  -h, --help          display the short help (lists only the basic options)\n"
809
"  -h, --help          display the short help (lists only the basic options)\n"
743
"  -H, --long-help     display this long help and exit"
810
"  -H, --long-help     display this long help and exit"
744
msgstr ""
811
msgstr ""
745
812
746
#: src/xz/message.c:1249
813
#: src/xz/message.c:1123
747
msgid ""
814
msgid ""
748
"  -h, --help          display this short help and exit\n"
815
"  -h, --help          display this short help and exit\n"
749
"  -H, --long-help     display the long help (lists also the advanced options)"
816
"  -H, --long-help     display the long help (lists also the advanced options)"
750
msgstr ""
817
msgstr ""
751
818
752
#: src/xz/message.c:1254
819
#: src/xz/message.c:1128
753
msgid "  -V, --version       display the version number and exit"
820
msgid "  -V, --version       display the version number and exit"
754
msgstr ""
821
msgstr ""
755
822
756
#: src/xz/message.c:1256
823
#: src/xz/message.c:1130
757
msgid ""
824
msgid ""
758
"\n"
825
"\n"
759
"With no FILE, or when FILE is -, read standard input.\n"
826
"With no FILE, or when FILE is -, read standard input.\n"
Lines 763-779 Link Here
763
#. for this package. Please add _another line_ saying
830
#. for this package. Please add _another line_ saying
764
#. "Report translation bugs to <...>\n" with the email or WWW
831
#. "Report translation bugs to <...>\n" with the email or WWW
765
#. address for translation bugs. Thanks.
832
#. address for translation bugs. Thanks.
766
#: src/xz/message.c:1262
833
#: src/xz/message.c:1136
767
#, c-format
834
#, c-format
768
msgid "Report bugs to <%s> (in English or Finnish).\n"
835
msgid "Report bugs to <%s> (in English or Finnish).\n"
769
msgstr ""
836
msgstr ""
770
837
771
#: src/xz/message.c:1264
838
#: src/xz/message.c:1138
772
#, c-format
839
#, c-format
773
msgid "%s home page: <%s>\n"
840
msgid "%s home page: <%s>\n"
774
msgstr ""
841
msgstr ""
775
842
776
#: src/xz/message.c:1268
843
#: src/xz/message.c:1142
777
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
844
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
778
msgstr ""
845
msgstr ""
779
846
Lines 801-827 Link Here
801
msgid "The sum of lc and lp must not exceed 4"
868
msgid "The sum of lc and lp must not exceed 4"
802
msgstr ""
869
msgstr ""
803
870
804
#: src/xz/options.c:359
871
#: src/xz/suffix.c:160
805
#, c-format
872
#, c-format
806
msgid "The selected match finder requires at least nice=%<PRIu32>"
807
msgstr ""
808
809
#: src/xz/suffix.c:133 src/xz/suffix.c:258
810
#, c-format
811
msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
812
msgstr ""
813
814
#: src/xz/suffix.c:164
815
#, c-format
816
msgid "%s: Filename has an unknown suffix, skipping"
873
msgid "%s: Filename has an unknown suffix, skipping"
817
msgstr ""
874
msgstr ""
818
875
819
#: src/xz/suffix.c:185
876
#: src/xz/suffix.c:181
820
#, c-format
877
#, c-format
821
msgid "%s: File already has `%s' suffix, skipping"
878
msgid "%s: File already has `%s' suffix, skipping"
822
msgstr ""
879
msgstr ""
823
880
824
#: src/xz/suffix.c:393
881
#: src/xz/suffix.c:388
825
#, c-format
882
#, c-format
826
msgid "%s: Invalid filename suffix"
883
msgid "%s: Invalid filename suffix"
827
msgstr ""
884
msgstr ""
Lines 845-859 Link Here
845
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
902
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
846
msgstr ""
903
msgstr ""
847
904
848
#: src/xz/util.c:267
905
#: src/xz/util.c:269
849
msgid "Empty filename, skipping"
850
msgstr ""
851
852
#: src/xz/util.c:281
853
msgid "Compressed data cannot be read from a terminal"
906
msgid "Compressed data cannot be read from a terminal"
854
msgstr ""
907
msgstr ""
855
908
856
#: src/xz/util.c:294
909
#: src/xz/util.c:282
857
msgid "Compressed data cannot be written to a terminal"
910
msgid "Compressed data cannot be written to a terminal"
858
msgstr ""
911
msgstr ""
859
912
(-)xz-5.2.5/po/zh_CN.po (-257 / +347 lines)
Lines 1-118 Link Here
1
# Chinese translations for xz package
1
# Chinese translations for xz package
2
# xz 软件包的简体中文翻译。
2
# xz 软件包的简体中文翻译。
3
# This file is put in the public domain.
3
# This file is put in the public domain.
4
# Boyuan Yang <073plan@gmail.com>, 2019.
4
# Boyuan Yang <073plan@gmail.com>, 2019, 2022.
5
#
5
#
6
msgid ""
6
msgid ""
7
msgstr ""
7
msgstr ""
8
"Project-Id-Version: xz 5.2.4\n"
8
"Project-Id-Version: xz 5.4.0-pre1\n"
9
"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
9
"Report-Msgid-Bugs-To: xz@tukaani.org\n"
10
"POT-Creation-Date: 2020-03-17 16:29+0200\n"
10
"POT-Creation-Date: 2023-05-04 22:32+0800\n"
11
"PO-Revision-Date: 2019-03-20 15:25-0400\n"
11
"PO-Revision-Date: 2022-11-30 13:31-0500\n"
12
"Last-Translator: Boyuan Yang <073plan@gmail.com>\n"
12
"Last-Translator: Boyuan Yang <073plan@gmail.com>\n"
13
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
13
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
14
"Language: zh_CN\n"
14
"Language: zh_CN\n"
15
"MIME-Version: 1.0\n"
15
"MIME-Version: 1.0\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
17
"Content-Transfer-Encoding: 8bit\n"
17
"Content-Transfer-Encoding: 8bit\n"
18
"X-Bugs: Report translation errors to the Language-Team address.\n"
19
"Plural-Forms: nplurals=1; plural=0;\n"
18
"Plural-Forms: nplurals=1; plural=0;\n"
20
"X-Generator: Poedit 2.2.1\n"
19
"X-Bugs: Report translation errors to the Language-Team address.\n"
20
"X-Generator: Poedit 3.2\n"
21
21
22
#: src/xz/args.c:63
22
#: src/xz/args.c:77
23
#, c-format
23
#, c-format
24
msgid "%s: Invalid argument to --block-list"
24
msgid "%s: Invalid argument to --block-list"
25
msgstr "%s:--block-list 的无效参数"
25
msgstr "%s:--block-list 的无效参数"
26
26
27
#: src/xz/args.c:73
27
#: src/xz/args.c:87
28
#, c-format
28
#, c-format
29
msgid "%s: Too many arguments to --block-list"
29
msgid "%s: Too many arguments to --block-list"
30
msgstr "%s:--block-list 得到过多参数"
30
msgstr "%s:--block-list 得到过多参数"
31
31
32
#: src/xz/args.c:102
32
#: src/xz/args.c:116
33
msgid "0 can only be used as the last element in --block-list"
33
msgid "0 can only be used as the last element in --block-list"
34
msgstr "0 仅可用于 --block-list 的最后一个元素"
34
msgstr "0 仅可用于 --block-list 的最后一个元素"
35
35
36
#: src/xz/args.c:406
36
#: src/xz/args.c:451
37
#, c-format
37
#, c-format
38
msgid "%s: Unknown file format type"
38
msgid "%s: Unknown file format type"
39
msgstr "%s:位置文件格式类型"
39
msgstr "%s:位置文件格式类型"
40
40
41
#: src/xz/args.c:429 src/xz/args.c:437
41
#: src/xz/args.c:474 src/xz/args.c:482
42
#, c-format
42
#, c-format
43
msgid "%s: Unsupported integrity check type"
43
msgid "%s: Unsupported integrity check type"
44
msgstr "%s:不支持的完整性检查类型"
44
msgstr "%s:不支持的完整性检查类型"
45
45
46
#: src/xz/args.c:473
46
#: src/xz/args.c:518
47
msgid "Only one file can be specified with `--files' or `--files0'."
47
msgid "Only one file can be specified with `--files' or `--files0'."
48
msgstr "仅可使用“--files”或“--files0”指定一个文件。"
48
msgstr "仅可使用“--files”或“--files0”指定一个文件。"
49
49
50
#: src/xz/args.c:541
50
#: src/xz/args.c:586
51
#, c-format
51
#, c-format
52
msgid "The environment variable %s contains too many arguments"
52
msgid "The environment variable %s contains too many arguments"
53
msgstr "环境变量 %s 包含过多参数"
53
msgstr "环境变量 %s 包含过多参数"
54
54
55
#: src/xz/args.c:643
55
#: src/xz/args.c:688
56
msgid "Compression support was disabled at build time"
56
msgid "Compression support was disabled at build time"
57
msgstr "压缩支持已在构建时禁用"
57
msgstr "压缩支持已在构建时禁用"
58
58
59
#: src/xz/args.c:650
59
#: src/xz/args.c:695
60
msgid "Decompression support was disabled at build time"
60
msgid "Decompression support was disabled at build time"
61
msgstr "解压支持已在构建时禁用"
61
msgstr "解压支持已在构建时禁用"
62
62
63
#: src/xz/coder.c:110
63
#: src/xz/args.c:701
64
msgid "Compression of lzip files (.lz) is not supported"
65
msgstr "不支持对 lzip 文件 (.lz) 的压缩"
66
67
#: src/xz/args.c:732
68
#, fuzzy
69
#| msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
70
msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout"
71
msgstr "%s:在启用 --format-raw 选项时,必须指定 --suffix=.SUF 获知写入至标准输出"
72
73
#: src/xz/coder.c:115
64
msgid "Maximum number of filters is four"
74
msgid "Maximum number of filters is four"
65
msgstr "过滤器最多数量为四"
75
msgstr "过滤器最多数量为四"
66
76
67
#: src/xz/coder.c:129
77
#: src/xz/coder.c:134
68
msgid "Memory usage limit is too low for the given filter setup."
78
msgid "Memory usage limit is too low for the given filter setup."
69
msgstr "内存用量限制对指定过滤器设置过低。"
79
msgstr "内存用量限制对指定过滤器设置过低。"
70
80
71
#: src/xz/coder.c:159
81
#: src/xz/coder.c:169
72
msgid "Using a preset in raw mode is discouraged."
82
msgid "Using a preset in raw mode is discouraged."
73
msgstr "不推荐在 raw 模式使用预设等级。"
83
msgstr "不推荐在 raw 模式使用预设等级。"
74
84
75
#: src/xz/coder.c:161
85
#: src/xz/coder.c:171
76
msgid "The exact options of the presets may vary between software versions."
86
msgid "The exact options of the presets may vary between software versions."
77
msgstr "各个预设等级所使用的准确选项列表在不同软件版本之间可能不同。"
87
msgstr "各个预设等级所使用的准确选项列表在不同软件版本之间可能不同。"
78
88
79
#: src/xz/coder.c:184
89
#: src/xz/coder.c:194
80
msgid "The .lzma format supports only the LZMA1 filter"
90
msgid "The .lzma format supports only the LZMA1 filter"
81
msgstr ".lzma 格式只支持 LZMA1 过滤器"
91
msgstr ".lzma 格式只支持 LZMA1 过滤器"
82
92
83
#: src/xz/coder.c:192
93
#: src/xz/coder.c:202
84
msgid "LZMA1 cannot be used with the .xz format"
94
msgid "LZMA1 cannot be used with the .xz format"
85
msgstr "LZMA1 无法用于 .xz 格式"
95
msgstr "LZMA1 无法用于 .xz 格式"
86
96
87
#: src/xz/coder.c:209
97
#: src/xz/coder.c:219
88
msgid "The filter chain is incompatible with --flush-timeout"
98
msgid "The filter chain is incompatible with --flush-timeout"
89
msgstr "过滤器链和 --flush-timeout 不兼容"
99
msgstr "过滤器链和 --flush-timeout 不兼容"
90
100
91
#: src/xz/coder.c:215
101
#: src/xz/coder.c:225
92
msgid "Switching to single-threaded mode due to --flush-timeout"
102
msgid "Switching to single-threaded mode due to --flush-timeout"
93
msgstr "因 --flush-timeout 而切换至单线程模式"
103
msgstr "因 --flush-timeout 而切换至单线程模式"
94
104
95
#: src/xz/coder.c:235
105
#: src/xz/coder.c:249
96
#, c-format
106
#, c-format
97
msgid "Using up to %<PRIu32> threads."
107
msgid "Using up to %<PRIu32> threads."
98
msgstr "使用最多 %<PRIu32> 个线程。"
108
msgstr "使用最多 %<PRIu32> 个线程。"
99
109
100
#: src/xz/coder.c:251
110
#: src/xz/coder.c:265
101
msgid "Unsupported filter chain or filter options"
111
msgid "Unsupported filter chain or filter options"
102
msgstr "不支持的过滤器链或过滤器选项"
112
msgstr "不支持的过滤器链或过滤器选项"
103
113
104
#: src/xz/coder.c:263
114
#: src/xz/coder.c:277
105
#, c-format
115
#, c-format
106
msgid "Decompression will need %s MiB of memory."
116
msgid "Decompression will need %s MiB of memory."
107
msgstr "解压缩需要 %s MiB 的内存。"
117
msgstr "解压缩需要 %s MiB 的内存。"
108
118
109
#: src/xz/coder.c:300
119
#: src/xz/coder.c:309
110
#, c-format
120
#, c-format
111
msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
121
msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
112
msgstr "已将所使用的线程数从 %s 调整为 %s,以不超出 %s MiB 的内存用量限制"
122
msgstr "已将所使用的线程数从 %s 减小为 %s,以不超出 %s MiB 的内存用量限制"
113
123
114
#: src/xz/coder.c:354
124
#: src/xz/coder.c:329
115
#, c-format
125
#, c-format
126
msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway."
127
msgstr "已将所使用的线程数从 %s 减小为 1。这仍然超出了自动的内存使用限制 %s MiB。需要 %s MiB 的内存。继续操作。"
128
129
#: src/xz/coder.c:356
130
#, c-format
131
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
132
msgstr "正在切换到单线程模式以不超出 %s MiB 的内存用量限制"
133
134
#: src/xz/coder.c:411
135
#, c-format
116
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
136
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
117
msgstr "已调整 LZMA%c 字典大小(从 %s MiB 调整为 %s MiB),以不超出 %s MiB 的内存用量限制"
137
msgstr "已调整 LZMA%c 字典大小(从 %s MiB 调整为 %s MiB),以不超出 %s MiB 的内存用量限制"
118
138
Lines 121-131 Link Here
121
msgid "Error creating a pipe: %s"
141
msgid "Error creating a pipe: %s"
122
msgstr "创建管道时出错:%s"
142
msgstr "创建管道时出错:%s"
123
143
124
#: src/xz/file_io.c:224
144
#: src/xz/file_io.c:252
125
msgid "Failed to enable the sandbox"
145
msgid "Failed to enable the sandbox"
126
msgstr "沙盒启用失败"
146
msgstr "沙盒启用失败"
127
147
128
#: src/xz/file_io.c:266
148
#: src/xz/file_io.c:294
129
#, c-format
149
#, c-format
130
msgid "%s: poll() failed: %s"
150
msgid "%s: poll() failed: %s"
131
msgstr "%s:poll() 失败:%s"
151
msgstr "%s:poll() 失败:%s"
Lines 140-334 Link Here
140
#. it is possible that the user has put a new file in place
160
#. it is possible that the user has put a new file in place
141
#. of the original file, and in that case it obviously
161
#. of the original file, and in that case it obviously
142
#. shouldn't be removed.
162
#. shouldn't be removed.
143
#: src/xz/file_io.c:333
163
#: src/xz/file_io.c:361
144
#, c-format
164
#, c-format
145
msgid "%s: File seems to have been moved, not removing"
165
msgid "%s: File seems to have been moved, not removing"
146
msgstr "%s:文件似乎已移动,不再进行删除操作"
166
msgstr "%s:文件似乎已移动,不再进行删除操作"
147
167
148
#: src/xz/file_io.c:340 src/xz/file_io.c:882
168
#: src/xz/file_io.c:368 src/xz/file_io.c:924
149
#, c-format
169
#, c-format
150
msgid "%s: Cannot remove: %s"
170
msgid "%s: Cannot remove: %s"
151
msgstr "%s:无法删除:%s"
171
msgstr "%s:无法删除:%s"
152
172
153
#: src/xz/file_io.c:366
173
#: src/xz/file_io.c:394
154
#, c-format
174
#, c-format
155
msgid "%s: Cannot set the file owner: %s"
175
msgid "%s: Cannot set the file owner: %s"
156
msgstr "%s:无法设置文件所有者:%s"
176
msgstr "%s:无法设置文件所有者:%s"
157
177
158
#: src/xz/file_io.c:372
178
#: src/xz/file_io.c:407
159
#, c-format
179
#, c-format
160
msgid "%s: Cannot set the file group: %s"
180
msgid "%s: Cannot set the file group: %s"
161
msgstr "%s:无法设置文件所有组:%s"
181
msgstr "%s:无法设置文件所有组:%s"
162
182
163
#: src/xz/file_io.c:391
183
#: src/xz/file_io.c:426
164
#, c-format
184
#, c-format
165
msgid "%s: Cannot set the file permissions: %s"
185
msgid "%s: Cannot set the file permissions: %s"
166
msgstr "%s:无法设置文件权限:%s"
186
msgstr "%s:无法设置文件权限:%s"
167
187
168
#: src/xz/file_io.c:517
188
#: src/xz/file_io.c:552
169
#, c-format
189
#, c-format
170
msgid "Error getting the file status flags from standard input: %s"
190
msgid "Error getting the file status flags from standard input: %s"
171
msgstr "从标准输入获取文件状态标志出错:%s"
191
msgstr "从标准输入获取文件状态标志出错:%s"
172
192
173
#: src/xz/file_io.c:574 src/xz/file_io.c:636
193
#: src/xz/file_io.c:610 src/xz/file_io.c:672
174
#, c-format
194
#, c-format
175
msgid "%s: Is a symbolic link, skipping"
195
msgid "%s: Is a symbolic link, skipping"
176
msgstr "%s:是符号链接,跳过"
196
msgstr "%s:是符号链接,跳过"
177
197
178
#: src/xz/file_io.c:665
198
#: src/xz/file_io.c:701
179
#, c-format
199
#, c-format
180
msgid "%s: Is a directory, skipping"
200
msgid "%s: Is a directory, skipping"
181
msgstr "%s:是目录,跳过"
201
msgstr "%s:是目录,跳过"
182
202
183
#: src/xz/file_io.c:671
203
#: src/xz/file_io.c:707
184
#, c-format
204
#, c-format
185
msgid "%s: Not a regular file, skipping"
205
msgid "%s: Not a regular file, skipping"
186
msgstr "%s:不是标准文件,跳过"
206
msgstr "%s:不是标准文件,跳过"
187
207
188
#: src/xz/file_io.c:688
208
#: src/xz/file_io.c:724
189
#, c-format
209
#, c-format
190
msgid "%s: File has setuid or setgid bit set, skipping"
210
msgid "%s: File has setuid or setgid bit set, skipping"
191
msgstr "%s:文件有设置用户ID或设置组ID标识,跳过"
211
msgstr "%s:文件有设置用户ID或设置组ID标识,跳过"
192
212
193
#: src/xz/file_io.c:695
213
#: src/xz/file_io.c:731
194
#, c-format
214
#, c-format
195
msgid "%s: File has sticky bit set, skipping"
215
msgid "%s: File has sticky bit set, skipping"
196
msgstr "%s:文件有粘滞位标识,跳过"
216
msgstr "%s:文件有粘滞位标识,跳过"
197
217
198
#: src/xz/file_io.c:702
218
#: src/xz/file_io.c:738
199
#, c-format
219
#, c-format
200
msgid "%s: Input file has more than one hard link, skipping"
220
msgid "%s: Input file has more than one hard link, skipping"
201
msgstr "%s:输入文件有多于一个硬链接,跳过"
221
msgstr "%s:输入文件有多于一个硬链接,跳过"
202
222
203
#: src/xz/file_io.c:792
223
#: src/xz/file_io.c:780
224
msgid "Empty filename, skipping"
225
msgstr "空文件名,跳过"
226
227
#: src/xz/file_io.c:834
204
#, c-format
228
#, c-format
205
msgid "Error restoring the status flags to standard input: %s"
229
msgid "Error restoring the status flags to standard input: %s"
206
msgstr "回复标准输入的状态标志时出错:%s"
230
msgstr "回复标准输入的状态标志时出错:%s"
207
231
208
#: src/xz/file_io.c:840
232
#: src/xz/file_io.c:882
209
#, c-format
233
#, c-format
210
msgid "Error getting the file status flags from standard output: %s"
234
msgid "Error getting the file status flags from standard output: %s"
211
msgstr "获取标准输出的文件状态标志时出错:%s"
235
msgstr "获取标准输出的文件状态标志时出错:%s"
212
236
213
#: src/xz/file_io.c:1018
237
#: src/xz/file_io.c:1060
214
#, c-format
238
#, c-format
215
msgid "Error restoring the O_APPEND flag to standard output: %s"
239
msgid "Error restoring the O_APPEND flag to standard output: %s"
216
msgstr "恢复标准输出的 O_APPEND 标志时出错:%s"
240
msgstr "恢复标准输出的 O_APPEND 标志时出错:%s"
217
241
218
#: src/xz/file_io.c:1030
242
#: src/xz/file_io.c:1072
219
#, c-format
243
#, c-format
220
msgid "%s: Closing the file failed: %s"
244
msgid "%s: Closing the file failed: %s"
221
msgstr "%s:关闭文件失败:%s"
245
msgstr "%s:关闭文件失败:%s"
222
246
223
#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
247
#: src/xz/file_io.c:1108 src/xz/file_io.c:1371
224
#, c-format
248
#, c-format
225
msgid "%s: Seeking failed when trying to create a sparse file: %s"
249
msgid "%s: Seeking failed when trying to create a sparse file: %s"
226
msgstr "%s:尝试创建稀疏文件时 seek 失败:%s"
250
msgstr "%s:尝试创建稀疏文件时 seek 失败:%s"
227
251
228
#: src/xz/file_io.c:1167
252
#: src/xz/file_io.c:1209
229
#, c-format
253
#, c-format
230
msgid "%s: Read error: %s"
254
msgid "%s: Read error: %s"
231
msgstr "%s:读取错误:%s"
255
msgstr "%s:读取错误:%s"
232
256
233
#: src/xz/file_io.c:1191
257
#: src/xz/file_io.c:1239
234
#, c-format
258
#, c-format
235
msgid "%s: Error seeking the file: %s"
259
msgid "%s: Error seeking the file: %s"
236
msgstr "%s:seek 文件时出错:%s"
260
msgstr "%s:seek 文件时出错:%s"
237
261
238
#: src/xz/file_io.c:1201
262
#: src/xz/file_io.c:1263
239
#, c-format
263
#, c-format
240
msgid "%s: Unexpected end of file"
264
msgid "%s: Unexpected end of file"
241
msgstr "%s:未预期的文件结束"
265
msgstr "%s:未预期的文件结束"
242
266
243
#: src/xz/file_io.c:1260
267
#: src/xz/file_io.c:1322
244
#, c-format
268
#, c-format
245
msgid "%s: Write error: %s"
269
msgid "%s: Write error: %s"
246
msgstr "%s:写入错误:%s"
270
msgstr "%s:写入错误:%s"
247
271
248
#: src/xz/hardware.c:137
272
#: src/xz/hardware.c:238
249
msgid "Disabled"
273
msgid "Disabled"
250
msgstr "已禁用"
274
msgstr "已禁用"
251
275
252
#. TRANSLATORS: Test with "xz --info-memory" to see if
276
#: src/xz/hardware.c:269
253
#. the alignment looks nice.
277
msgid "Amount of physical memory (RAM):"
254
#: src/xz/hardware.c:156
278
msgstr "物理内存(RAM)用量:"
255
msgid "Total amount of physical memory (RAM): "
256
msgstr "物理内存(RAM)总量:      "
257
279
258
#: src/xz/hardware.c:158
280
#: src/xz/hardware.c:270
259
msgid "Memory usage limit for compression:    "
281
msgid "Number of processor threads:"
260
msgstr "用于压缩的内存用量限制:   "
282
msgstr "处理器线程数:"
261
283
262
#: src/xz/hardware.c:160
284
#: src/xz/hardware.c:271
263
msgid "Memory usage limit for decompression:  "
285
msgid "Compression:"
264
msgstr "用于解压缩的内存用量限制: "
286
msgstr "压缩:"
265
287
288
#: src/xz/hardware.c:272
289
msgid "Decompression:"
290
msgstr "解压缩:"
291
292
#: src/xz/hardware.c:273
293
msgid "Multi-threaded decompression:"
294
msgstr "多线程解压缩:"
295
296
#: src/xz/hardware.c:274
297
msgid "Default for -T0:"
298
msgstr "-T0 的默认值:"
299
300
#: src/xz/hardware.c:292
301
msgid "Hardware information:"
302
msgstr "硬件信息:"
303
304
#: src/xz/hardware.c:299
305
msgid "Memory usage limits:"
306
msgstr "内存使用限制:"
307
308
#: src/xz/list.c:68
309
msgid "Streams:"
310
msgstr "流:"
311
312
#: src/xz/list.c:69
313
msgid "Blocks:"
314
msgstr "块:"
315
316
#: src/xz/list.c:70
317
msgid "Compressed size:"
318
msgstr "压缩后大小:"
319
320
#: src/xz/list.c:71
321
msgid "Uncompressed size:"
322
msgstr "解压缩大小:"
323
324
#: src/xz/list.c:72
325
msgid "Ratio:"
326
msgstr "比例:"
327
328
#: src/xz/list.c:73
329
msgid "Check:"
330
msgstr "校验:"
331
332
#: src/xz/list.c:74
333
msgid "Stream Padding:"
334
msgstr "流填充大小:"
335
336
#: src/xz/list.c:75
337
msgid "Memory needed:"
338
msgstr "所需内存:"
339
340
#: src/xz/list.c:76
341
msgid "Sizes in headers:"
342
msgstr "头部存放大小:"
343
344
#: src/xz/list.c:79
345
msgid "Number of files:"
346
msgstr "文件数量:"
347
348
#: src/xz/list.c:122
349
msgid "Stream"
350
msgstr "流"
351
352
#: src/xz/list.c:123
353
msgid "Block"
354
msgstr "块"
355
356
#: src/xz/list.c:124
357
msgid "Blocks"
358
msgstr "块"
359
360
#: src/xz/list.c:125
361
msgid "CompOffset"
362
msgstr "压缩偏移量"
363
364
#: src/xz/list.c:126
365
msgid "UncompOffset"
366
msgstr "解压偏移量"
367
368
#: src/xz/list.c:127
369
msgid "CompSize"
370
msgstr "压缩后大小"
371
372
#: src/xz/list.c:128
373
msgid "UncompSize"
374
msgstr "解压缩大小"
375
376
#: src/xz/list.c:129
377
msgid "TotalSize"
378
msgstr "总大小"
379
380
#: src/xz/list.c:130
381
msgid "Ratio"
382
msgstr "比例"
383
384
#: src/xz/list.c:131
385
msgid "Check"
386
msgstr "校验"
387
388
#: src/xz/list.c:132
389
msgid "CheckVal"
390
msgstr "校验值"
391
392
#: src/xz/list.c:133
393
msgid "Padding"
394
msgstr "填充"
395
396
#: src/xz/list.c:134
397
msgid "Header"
398
msgstr "头部"
399
400
#: src/xz/list.c:135
401
msgid "Flags"
402
msgstr "标志"
403
404
#: src/xz/list.c:136
405
msgid "MemUsage"
406
msgstr "内存用量"
407
408
#: src/xz/list.c:137
409
msgid "Filters"
410
msgstr "过滤器"
411
266
#. TRANSLATORS: Indicates that there is no integrity check.
412
#. TRANSLATORS: Indicates that there is no integrity check.
267
#. This string is used in tables, so the width must not
413
#. This string is used in tables. In older xz version this
268
#. exceed ten columns with a fixed-width font.
414
#. string was limited to ten columns in a fixed-width font, but
269
#: src/xz/list.c:65
415
#. nowadays there is no strict length restriction anymore.
416
#: src/xz/list.c:169
270
msgid "None"
417
msgid "None"
271
msgstr "无"
418
msgstr "无"
272
419
273
#. TRANSLATORS: Indicates that integrity check name is not known,
420
#. TRANSLATORS: Indicates that integrity check name is not known,
274
#. but the Check ID is known (here 2). This and other "Unknown-N"
421
#. but the Check ID is known (here 2). In older xz version these
275
#. strings are used in tables, so the width must not exceed ten
422
#. strings were limited to ten columns in a fixed-width font, but
276
#. columns with a fixed-width font. It's OK to omit the dash if
423
#. nowadays there is no strict length restriction anymore.
277
#. you need space for one extra letter, but don't use spaces.
424
#: src/xz/list.c:175
278
#: src/xz/list.c:72
279
msgid "Unknown-2"
425
msgid "Unknown-2"
280
msgstr "未知-2"
426
msgstr "未知-2"
281
427
282
#: src/xz/list.c:73
428
#: src/xz/list.c:176
283
msgid "Unknown-3"
429
msgid "Unknown-3"
284
msgstr "未知-3"
430
msgstr "未知-3"
285
431
286
#: src/xz/list.c:75
432
#: src/xz/list.c:178
287
msgid "Unknown-5"
433
msgid "Unknown-5"
288
msgstr "未知-5"
434
msgstr "未知-5"
289
435
290
#: src/xz/list.c:76
436
#: src/xz/list.c:179
291
msgid "Unknown-6"
437
msgid "Unknown-6"
292
msgstr "未知-6"
438
msgstr "未知-6"
293
439
294
#: src/xz/list.c:77
440
#: src/xz/list.c:180
295
msgid "Unknown-7"
441
msgid "Unknown-7"
296
msgstr "未知-7"
442
msgstr "未知-7"
297
443
298
#: src/xz/list.c:78
444
#: src/xz/list.c:181
299
msgid "Unknown-8"
445
msgid "Unknown-8"
300
msgstr "未知-8"
446
msgstr "未知-8"
301
447
302
#: src/xz/list.c:79
448
#: src/xz/list.c:182
303
msgid "Unknown-9"
449
msgid "Unknown-9"
304
msgstr "未知-9"
450
msgstr "未知-9"
305
451
306
#: src/xz/list.c:81
452
#: src/xz/list.c:184
307
msgid "Unknown-11"
453
msgid "Unknown-11"
308
msgstr "未知-11"
454
msgstr "未知-11"
309
455
310
#: src/xz/list.c:82
456
#: src/xz/list.c:185
311
msgid "Unknown-12"
457
msgid "Unknown-12"
312
msgstr "未知-12"
458
msgstr "未知-12"
313
459
314
#: src/xz/list.c:83
460
#: src/xz/list.c:186
315
msgid "Unknown-13"
461
msgid "Unknown-13"
316
msgstr "未知-13"
462
msgstr "未知-13"
317
463
318
#: src/xz/list.c:84
464
#: src/xz/list.c:187
319
msgid "Unknown-14"
465
msgid "Unknown-14"
320
msgstr "未知-14"
466
msgstr "未知-14"
321
467
322
#: src/xz/list.c:85
468
#: src/xz/list.c:188
323
msgid "Unknown-15"
469
msgid "Unknown-15"
324
msgstr "未知-15"
470
msgstr "未知-15"
325
471
326
#: src/xz/list.c:153
472
#: src/xz/list.c:351
327
#, c-format
473
#, c-format
328
msgid "%s: File is empty"
474
msgid "%s: File is empty"
329
msgstr "%s:文件为空"
475
msgstr "%s:文件为空"
330
476
331
#: src/xz/list.c:158
477
#: src/xz/list.c:356
332
#, c-format
478
#, c-format
333
msgid "%s: Too small to be a valid .xz file"
479
msgid "%s: Too small to be a valid .xz file"
334
msgstr "%s:过小而不是有效的 .xz 文件"
480
msgstr "%s:过小而不是有效的 .xz 文件"
Lines 337-460 Link Here
337
#. to Ratio, the columns are right aligned. Check and Filename
483
#. to Ratio, the columns are right aligned. Check and Filename
338
#. are left aligned. If you need longer words, it's OK to
484
#. are left aligned. If you need longer words, it's OK to
339
#. use two lines here. Test with "xz -l foo.xz".
485
#. use two lines here. Test with "xz -l foo.xz".
340
#: src/xz/list.c:677
486
#: src/xz/list.c:730
341
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
487
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
342
msgstr "   流      块     压缩大小     解压大小   比例  校验    文件名"
488
msgstr "   流      块     压缩大小     解压大小   比例  校验    文件名"
343
489
344
#: src/xz/list.c:717
490
#: src/xz/list.c:1025 src/xz/list.c:1203
345
#, c-format
346
msgid "  Streams:            %s\n"
347
msgstr "  流:                %s\n"
348
349
#: src/xz/list.c:719
350
#, c-format
351
msgid "  Blocks:             %s\n"
352
msgstr "  块:                %s\n"
353
354
#: src/xz/list.c:721
355
#, c-format
356
msgid "  Compressed size:    %s\n"
357
msgstr "  压缩后大小:        %s\n"
358
359
#: src/xz/list.c:724
360
#, c-format
361
msgid "  Uncompressed size:  %s\n"
362
msgstr "  解压缩大小:        %s\n"
363
364
#: src/xz/list.c:727
365
#, c-format
366
msgid "  Ratio:              %s\n"
367
msgstr "  压缩比:            %s\n"
368
369
#: src/xz/list.c:729
370
#, c-format
371
msgid "  Check:              %s\n"
372
msgstr "  校验方式:          %s\n"
373
374
#: src/xz/list.c:730
375
#, c-format
376
msgid "  Stream padding:     %s\n"
377
msgstr "  流填充大小:        %s\n"
378
379
#. TRANSLATORS: The second line is column headings. All except
380
#. Check are right aligned; Check is left aligned. Test with
381
#. "xz -lv foo.xz".
382
#: src/xz/list.c:758
383
msgid ""
384
"  Streams:\n"
385
"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
386
msgstr ""
387
"  流:\n"
388
"        流        块      压缩偏移量      解压偏移量        压缩大小        解压大小   比例  校验          填充"
389
390
#. TRANSLATORS: The second line is column headings. All
391
#. except Check are right aligned; Check is left aligned.
392
#: src/xz/list.c:813
393
#, c-format
394
msgid ""
395
"  Blocks:\n"
396
"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
397
msgstr ""
398
"  块:\n"
399
"        流        块      压缩偏移量      解压偏移量        总计大小        解压大小   比例  校验"
400
401
#. TRANSLATORS: These are additional column headings
402
#. for the most verbose listing mode. CheckVal
403
#. (Check value), Flags, and Filters are left aligned.
404
#. Header (Block Header Size), CompSize, and MemUsage
405
#. are right aligned. %*s is replaced with 0-120
406
#. spaces to make the CheckVal column wide enough.
407
#. Test with "xz -lvv foo.xz".
408
#: src/xz/list.c:825
409
#, c-format
410
msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
411
msgstr "       CheckVal %*s   头部  标记         压缩大小    内存使用  过滤器"
412
413
#: src/xz/list.c:903 src/xz/list.c:1078
414
#, c-format
415
msgid "  Memory needed:      %s MiB\n"
416
msgstr "  所需内存:          %s MiB\n"
417
418
#: src/xz/list.c:905 src/xz/list.c:1080
419
#, c-format
420
msgid "  Sizes in headers:   %s\n"
421
msgstr "  头部存放大小:      %s\n"
422
423
#: src/xz/list.c:906 src/xz/list.c:1081
424
msgid "Yes"
491
msgid "Yes"
425
msgstr "是"
492
msgstr "是"
426
493
427
#: src/xz/list.c:906 src/xz/list.c:1081
494
#: src/xz/list.c:1025 src/xz/list.c:1203
428
msgid "No"
495
msgid "No"
429
msgstr "否"
496
msgstr "否"
430
497
431
#: src/xz/list.c:907 src/xz/list.c:1082
498
#: src/xz/list.c:1027 src/xz/list.c:1205
432
#, c-format
499
#, c-format
433
msgid "  Minimum XZ Utils version: %s\n"
500
msgid "  Minimum XZ Utils version: %s\n"
434
msgstr "  最低 XZ Utils 版本:%s\n"
501
msgstr "  最低 XZ Utils 版本:%s\n"
435
502
436
#. TRANSLATORS: %s is an integer. Only the plural form of this
503
#. TRANSLATORS: %s is an integer. Only the plural form of this
437
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
504
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
438
#: src/xz/list.c:1057
505
#: src/xz/list.c:1178
439
#, c-format
506
#, c-format
440
msgid "%s file\n"
507
msgid "%s file\n"
441
msgid_plural "%s files\n"
508
msgid_plural "%s files\n"
442
msgstr[0] "%s 文件\n"
509
msgstr[0] "%s 文件\n"
443
510
444
#: src/xz/list.c:1070
511
#: src/xz/list.c:1191
445
msgid "Totals:"
512
msgid "Totals:"
446
msgstr "总计:"
513
msgstr "总计:"
447
514
448
#: src/xz/list.c:1071
515
#: src/xz/list.c:1269
449
#, c-format
450
msgid "  Number of files:    %s\n"
451
msgstr "  文件数量:          %s\n"
452
453
#: src/xz/list.c:1146
454
msgid "--list works only on .xz files (--format=xz or --format=auto)"
516
msgid "--list works only on .xz files (--format=xz or --format=auto)"
455
msgstr "--list 仅适用于 .xz 文件(--format=xz 或 --format=auto)"
517
msgstr "--list 仅适用于 .xz 文件(--format=xz 或 --format=auto)"
456
518
457
#: src/xz/list.c:1152
519
#: src/xz/list.c:1275
458
msgid "--list does not support reading from standard input"
520
msgid "--list does not support reading from standard input"
459
msgstr "--list 不支持从标准输入读取"
521
msgstr "--list 不支持从标准输入读取"
460
522
Lines 473-483 Link Here
473
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
535
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
474
msgstr "%s:读取文件名列表时获得了空字符;您可能想要使用“--files0”而非“--files”?"
536
msgstr "%s:读取文件名列表时获得了空字符;您可能想要使用“--files0”而非“--files”?"
475
537
476
#: src/xz/main.c:174
538
#: src/xz/main.c:188
477
msgid "Compression and decompression with --robot are not supported yet."
539
msgid "Compression and decompression with --robot are not supported yet."
478
msgstr "尚不支持带 --robot 的压缩和解压缩。"
540
msgstr "尚不支持带 --robot 的压缩和解压缩。"
479
541
480
#: src/xz/main.c:252
542
#: src/xz/main.c:266
481
msgid "Cannot read data from standard input when reading filenames from standard input"
543
msgid "Cannot read data from standard input when reading filenames from standard input"
482
msgstr "无法同时从标准输入读取数据和文件名列表"
544
msgstr "无法同时从标准输入读取数据和文件名列表"
483
545
Lines 485-552 Link Here
485
#. of the line in messages. Usually it becomes "xz: ".
547
#. of the line in messages. Usually it becomes "xz: ".
486
#. This is a translatable string because French needs
548
#. This is a translatable string because French needs
487
#. a space before a colon.
549
#. a space before a colon.
488
#: src/xz/message.c:728
550
#: src/xz/message.c:725
489
#, c-format
551
#, c-format
490
msgid "%s: "
552
msgid "%s: "
491
msgstr "%s:"
553
msgstr "%s:"
492
554
493
#: src/xz/message.c:791 src/xz/message.c:841
555
#: src/xz/message.c:797 src/xz/message.c:856
494
msgid "Internal error (bug)"
556
msgid "Internal error (bug)"
495
msgstr "内部错误(bug)"
557
msgstr "内部错误(bug)"
496
558
497
#: src/xz/message.c:798
559
#: src/xz/message.c:804
498
msgid "Cannot establish signal handlers"
560
msgid "Cannot establish signal handlers"
499
msgstr "无法建立信号处理器"
561
msgstr "无法建立信号处理器"
500
562
501
#: src/xz/message.c:807
563
#: src/xz/message.c:813
502
msgid "No integrity check; not verifying file integrity"
564
msgid "No integrity check; not verifying file integrity"
503
msgstr "无完整性检查;将不验证文件完整性"
565
msgstr "无完整性检查;将不验证文件完整性"
504
566
505
#: src/xz/message.c:810
567
#: src/xz/message.c:816
506
msgid "Unsupported type of integrity check; not verifying file integrity"
568
msgid "Unsupported type of integrity check; not verifying file integrity"
507
msgstr "不支持的完整性检查类型;将不验证文件完整性"
569
msgstr "不支持的完整性检查类型;将不验证文件完整性"
508
570
509
#: src/xz/message.c:817
571
#: src/xz/message.c:823
510
msgid "Memory usage limit reached"
572
msgid "Memory usage limit reached"
511
msgstr "达到内存使用限制"
573
msgstr "达到内存使用限制"
512
574
513
#: src/xz/message.c:820
575
#: src/xz/message.c:826
514
msgid "File format not recognized"
576
msgid "File format not recognized"
515
msgstr "无法识别文件格式"
577
msgstr "无法识别文件格式"
516
578
517
#: src/xz/message.c:823
579
#: src/xz/message.c:829
518
msgid "Unsupported options"
580
msgid "Unsupported options"
519
msgstr "不支持的选项"
581
msgstr "不支持的选项"
520
582
521
#: src/xz/message.c:826
583
#: src/xz/message.c:832
522
msgid "Compressed data is corrupt"
584
msgid "Compressed data is corrupt"
523
msgstr "压缩数据已损坏"
585
msgstr "压缩数据已损坏"
524
586
525
#: src/xz/message.c:829
587
#: src/xz/message.c:835
526
msgid "Unexpected end of input"
588
msgid "Unexpected end of input"
527
msgstr "输入意外结束"
589
msgstr "输入意外结束"
528
590
529
#: src/xz/message.c:862
591
#: src/xz/message.c:877
530
#, c-format
592
#, c-format
531
msgid "%s MiB of memory is required. The limiter is disabled."
593
msgid "%s MiB of memory is required. The limiter is disabled."
532
msgstr "需要 %s MiB 的内存空间。限制已禁用。"
594
msgstr "需要 %s MiB 的内存空间。限制已禁用。"
533
595
534
#: src/xz/message.c:890
596
#: src/xz/message.c:905
535
#, c-format
597
#, c-format
536
msgid "%s MiB of memory is required. The limit is %s."
598
msgid "%s MiB of memory is required. The limit is %s."
537
msgstr "需要 %s MiB 的内存空间。限制为 %s。"
599
msgstr "需要 %s MiB 的内存空间。限制为 %s。"
538
600
539
#: src/xz/message.c:1057
601
#: src/xz/message.c:924
540
#, c-format
602
#, c-format
541
msgid "%s: Filter chain: %s\n"
603
msgid "%s: Filter chain: %s\n"
542
msgstr "%s:过滤器链:%s\n"
604
msgstr "%s:过滤器链:%s\n"
543
605
544
#: src/xz/message.c:1067
606
#: src/xz/message.c:935
545
#, c-format
607
#, c-format
546
msgid "Try `%s --help' for more information."
608
msgid "Try `%s --help' for more information."
547
msgstr "请尝试执行“%s --help”来获取更多信息。"
609
msgstr "请尝试执行“%s --help”来获取更多信息。"
548
610
549
#: src/xz/message.c:1093
611
#: src/xz/message.c:961
550
#, c-format
612
#, c-format
551
msgid ""
613
msgid ""
552
"Usage: %s [OPTION]... [FILE]...\n"
614
"Usage: %s [OPTION]... [FILE]...\n"
Lines 557-571 Link Here
557
"使用 .xz 格式压缩或解压缩文件。\n"
619
"使用 .xz 格式压缩或解压缩文件。\n"
558
"\n"
620
"\n"
559
621
560
#: src/xz/message.c:1100
622
#: src/xz/message.c:968
561
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
623
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
562
msgstr "必选参数对长短选项同时适用。\n"
624
msgstr "必选参数对长短选项同时适用。\n"
563
625
564
#: src/xz/message.c:1104
626
#: src/xz/message.c:972
565
msgid " Operation mode:\n"
627
msgid " Operation mode:\n"
566
msgstr " 操作模式:\n"
628
msgstr " 操作模式:\n"
567
629
568
#: src/xz/message.c:1107
630
#: src/xz/message.c:975
569
msgid ""
631
msgid ""
570
"  -z, --compress      force compression\n"
632
"  -z, --compress      force compression\n"
571
"  -d, --decompress    force decompression\n"
633
"  -d, --decompress    force decompression\n"
Lines 577-583 Link Here
577
"  -t, --test          测试压缩文件完整性\n"
639
"  -t, --test          测试压缩文件完整性\n"
578
"  -l, --list          列出 .xz 文件的信息"
640
"  -l, --list          列出 .xz 文件的信息"
579
641
580
#: src/xz/message.c:1113
642
#: src/xz/message.c:981
581
msgid ""
643
msgid ""
582
"\n"
644
"\n"
583
" Operation modifiers:\n"
645
" Operation modifiers:\n"
Lines 585-591 Link Here
585
"\n"
647
"\n"
586
" 操作修饰符:\n"
648
" 操作修饰符:\n"
587
649
588
#: src/xz/message.c:1116
650
#: src/xz/message.c:984
589
msgid ""
651
msgid ""
590
"  -k, --keep          keep (don't delete) input files\n"
652
"  -k, --keep          keep (don't delete) input files\n"
591
"  -f, --force         force overwrite of output file and (de)compress links\n"
653
"  -f, --force         force overwrite of output file and (de)compress links\n"
Lines 595-607 Link Here
595
"  -f, --force         强制覆写输出文件和(解)压缩链接\n"
657
"  -f, --force         强制覆写输出文件和(解)压缩链接\n"
596
"  -c, --stdout        向标准输出写入,同时不要删除输入文件"
658
"  -c, --stdout        向标准输出写入,同时不要删除输入文件"
597
659
598
#: src/xz/message.c:1122
660
#: src/xz/message.c:993
599
msgid ""
661
msgid ""
600
"      --single-stream decompress only the first stream, and silently\n"
662
"      --single-stream decompress only the first stream, and silently\n"
601
"                      ignore possible remaining input data"
663
"                      ignore possible remaining input data"
602
msgstr "      --single-stream 仅解压缩第一个流,忽略其后可能继续出现的输入数据"
664
msgstr "      --single-stream 仅解压缩第一个流,忽略其后可能继续出现的输入数据"
603
665
604
#: src/xz/message.c:1125
666
#: src/xz/message.c:996
605
msgid ""
667
msgid ""
606
"      --no-sparse     do not create sparse files when decompressing\n"
668
"      --no-sparse     do not create sparse files when decompressing\n"
607
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
669
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
Lines 616-622 Link Here
616
"                      将从标准输入读取文件名列表;文件名必须使用换行符分隔\n"
678
"                      将从标准输入读取文件名列表;文件名必须使用换行符分隔\n"
617
"      --files0[=文件] 类似 --files,但使用空字符进行分隔"
679
"      --files0[=文件] 类似 --files,但使用空字符进行分隔"
618
680
619
#: src/xz/message.c:1134
681
#: src/xz/message.c:1005
620
msgid ""
682
msgid ""
621
"\n"
683
"\n"
622
" Basic file format and compression options:\n"
684
" Basic file format and compression options:\n"
Lines 624-646 Link Here
624
"\n"
686
"\n"
625
" 基本文件格式和压缩选项:\n"
687
" 基本文件格式和压缩选项:\n"
626
688
627
#: src/xz/message.c:1136
689
#: src/xz/message.c:1007
628
msgid ""
690
msgid ""
629
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
691
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
630
"                      `auto' (default), `xz', `lzma', and `raw'\n"
692
"                      `auto' (default), `xz', `lzma', `lzip', and `raw'\n"
631
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
693
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
632
"                      `crc32', `crc64' (default), or `sha256'"
694
"                      `crc32', `crc64' (default), or `sha256'"
633
msgstr ""
695
msgstr ""
634
"  -F, --format=格式   要编码或解码的文件格式;可能的值包括\n"
696
"  -F, --format=格式   要编码或解码的文件格式;可能的值包括\n"
635
"                      “auto”(默认)、“xz”、“lzma”和“raw”\n"
697
"                      “auto”(默认)、“xz”、“lzma”、\n"
698
"                      “lzip”和“raw”\n"
636
"  -C, --check=类型    完整性检查类型:“none”(请谨慎使用)、\n"
699
"  -C, --check=类型    完整性检查类型:“none”(请谨慎使用)、\n"
637
"                      “crc32”、“crc64”(默认)或“sha256”"
700
"                      “crc32”、“crc64”(默认)或“sha256”"
638
701
639
#: src/xz/message.c:1141
702
#: src/xz/message.c:1012
640
msgid "      --ignore-check  don't verify the integrity check when decompressing"
703
msgid "      --ignore-check  don't verify the integrity check when decompressing"
641
msgstr "      --ignore-check  解压缩时不要进行完整性检查验证"
704
msgstr "      --ignore-check  解压缩时不要进行完整性检查验证"
642
705
643
#: src/xz/message.c:1145
706
#: src/xz/message.c:1016
644
msgid ""
707
msgid ""
645
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
708
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
646
"                      decompressor memory usage into account before using 7-9!"
709
"                      decompressor memory usage into account before using 7-9!"
Lines 648-654 Link Here
648
"  -0 ... -9           压缩预设等级;默认为 6;使用 7-9 的等级之前,请先考虑\n"
711
"  -0 ... -9           压缩预设等级;默认为 6;使用 7-9 的等级之前,请先考虑\n"
649
"                      压缩和解压缩所需的内存用量!(会占用大量内存空间)"
712
"                      压缩和解压缩所需的内存用量!(会占用大量内存空间)"
650
713
651
#: src/xz/message.c:1149
714
#: src/xz/message.c:1020
652
msgid ""
715
msgid ""
653
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
716
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
654
"                      does not affect decompressor memory requirements"
717
"                      does not affect decompressor memory requirements"
Lines 656-662 Link Here
656
"  -e, --extreme       尝试使用更多 CPU 时间来改进压缩比率;\n"
719
"  -e, --extreme       尝试使用更多 CPU 时间来改进压缩比率;\n"
657
"                      不会影响解压缩的内存需求量"
720
"                      不会影响解压缩的内存需求量"
658
721
659
#: src/xz/message.c:1153
722
#: src/xz/message.c:1024
660
msgid ""
723
msgid ""
661
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
724
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
662
"                      to use as many threads as there are processor cores"
725
"                      to use as many threads as there are processor cores"
Lines 664-670 Link Here
664
"  -T, --threads=数量  使用最多指定数量的线程;默认值为 1;设置为 0\n"
727
"  -T, --threads=数量  使用最多指定数量的线程;默认值为 1;设置为 0\n"
665
"                      可以使用与处理器内核数量相同的线程数"
728
"                      可以使用与处理器内核数量相同的线程数"
666
729
667
#: src/xz/message.c:1158
730
#: src/xz/message.c:1029
668
msgid ""
731
msgid ""
669
"      --block-size=SIZE\n"
732
"      --block-size=SIZE\n"
670
"                      start a new .xz block after every SIZE bytes of input;\n"
733
"                      start a new .xz block after every SIZE bytes of input;\n"
Lines 674-680 Link Here
674
"                      输入每读取指定块大小的数据后即开始一个新的 .xz 块;\n"
737
"                      输入每读取指定块大小的数据后即开始一个新的 .xz 块;\n"
675
"                      使用该选项可以设置多线程压缩中的块大小"
738
"                      使用该选项可以设置多线程压缩中的块大小"
676
739
677
#: src/xz/message.c:1162
740
#: src/xz/message.c:1033
678
msgid ""
741
msgid ""
679
"      --block-list=SIZES\n"
742
"      --block-list=SIZES\n"
680
"                      start a new .xz block after the given comma-separated\n"
743
"                      start a new .xz block after the given comma-separated\n"
Lines 684-690 Link Here
684
"                      在所给出的未压缩数据间隔大小的数据之后开始一个新的\n"
747
"                      在所给出的未压缩数据间隔大小的数据之后开始一个新的\n"
685
"                      .xz 块(使用逗号分隔)"
748
"                      .xz 块(使用逗号分隔)"
686
749
687
#: src/xz/message.c:1166
750
#: src/xz/message.c:1037
688
msgid ""
751
msgid ""
689
"      --flush-timeout=TIMEOUT\n"
752
"      --flush-timeout=TIMEOUT\n"
690
"                      when compressing, if more than TIMEOUT milliseconds has\n"
753
"                      when compressing, if more than TIMEOUT milliseconds has\n"
Lines 695-723 Link Here
695
"                      进行压缩时,如果从上次刷洗输出之后经过了指定的超时时间\n"
758
"                      进行压缩时,如果从上次刷洗输出之后经过了指定的超时时间\n"
696
"                      且读取更多数据会被阻塞,则刷洗输出所有缓冲数据"
759
"                      且读取更多数据会被阻塞,则刷洗输出所有缓冲数据"
697
760
698
#: src/xz/message.c:1172
761
#: src/xz/message.c:1043
699
#, no-c-format
762
#, no-c-format
700
msgid ""
763
msgid ""
701
"      --memlimit-compress=LIMIT\n"
764
"      --memlimit-compress=LIMIT\n"
702
"      --memlimit-decompress=LIMIT\n"
765
"      --memlimit-decompress=LIMIT\n"
766
"      --memlimit-mt-decompress=LIMIT\n"
703
"  -M, --memlimit=LIMIT\n"
767
"  -M, --memlimit=LIMIT\n"
704
"                      set memory usage limit for compression, decompression,\n"
768
"                      set memory usage limit for compression, decompression,\n"
705
"                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
769
"                      threaded decompression, or all of these; LIMIT is in\n"
770
"                      bytes, % of RAM, or 0 for defaults"
706
msgstr ""
771
msgstr ""
707
"      --memlimit-compress=限制用量\n"
772
"      --memlimit-compress=限制用量\n"
708
"      --memlimit-decompress=限制用量\n"
773
"      --memlimit-decompress=限制用量\n"
774
"      --memlimit-mt-decompress=限制用量\n"
709
"  -M, --memlimit=限制用量\n"
775
"  -M, --memlimit=限制用量\n"
710
"                      设置压缩、解压缩或者两者共同的内存用量限制;\n"
776
"                      设置压缩、解压缩、多线程解压缩或者共同的内存用量限制;\n"
711
"                      所指定限制量单位为字节,或以百分号 % 结尾表示内存比例,\n"
777
"                      所指定限制量单位为字节,或以百分号 % 结尾表示内存比例,\n"
712
"                      或者指定 0 取软件默认值"
778
"                      或者指定 0 取软件默认值"
713
779
714
#: src/xz/message.c:1179
780
#: src/xz/message.c:1052
715
msgid ""
781
msgid ""
716
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
782
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
717
"                      give an error instead of adjusting the settings downwards"
783
"                      give an error instead of adjusting the settings downwards"
718
msgstr "      --no-adjust     如果压缩设置超出内存用量限制,不调整设置而直接报错"
784
msgstr "      --no-adjust     如果压缩设置超出内存用量限制,不调整设置而直接报错"
719
785
720
#: src/xz/message.c:1185
786
#: src/xz/message.c:1058
721
msgid ""
787
msgid ""
722
"\n"
788
"\n"
723
" Custom filter chain for compression (alternative for using presets):"
789
" Custom filter chain for compression (alternative for using presets):"
Lines 725-731 Link Here
725
"\n"
791
"\n"
726
" 用于压缩的自定义过滤器链(不使用预设等级时的备选用法):"
792
" 用于压缩的自定义过滤器链(不使用预设等级时的备选用法):"
727
793
728
#: src/xz/message.c:1194
794
#: src/xz/message.c:1067
729
msgid ""
795
msgid ""
730
"\n"
796
"\n"
731
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
797
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
Lines 754-782 Link Here
754
"                                   (hc3, hc4, bt2, bt3, bt4; bt4)\n"
820
"                                   (hc3, hc4, bt2, bt3, bt4; bt4)\n"
755
"                        depth=数字 最大搜索深度; 0=自动(默认)"
821
"                        depth=数字 最大搜索深度; 0=自动(默认)"
756
822
757
#: src/xz/message.c:1209
823
#: src/xz/message.c:1082
758
msgid ""
824
msgid ""
759
"\n"
825
"\n"
760
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
826
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
827
"  --arm[=OPTS]        ARM BCJ filter\n"
828
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter\n"
829
"  --arm64[=OPTS]      ARM64 BCJ filter\n"
761
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
830
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
762
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
831
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
763
"  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
764
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
765
"  --sparc[=OPTS]      SPARC BCJ filter\n"
832
"  --sparc[=OPTS]      SPARC BCJ filter\n"
766
"                      Valid OPTS for all BCJ filters:\n"
833
"                      Valid OPTS for all BCJ filters:\n"
767
"                        start=NUM  start offset for conversions (default=0)"
834
"                        start=NUM  start offset for conversions (default=0)"
768
msgstr ""
835
msgstr ""
769
"\n"
836
"\n"
770
"  --x86[=选项]        x86 BCJ 过滤器(32 位和 64 位)\n"
837
"  --x86[=选项]        x86 BCJ 过滤器(32 位和 64 位)\n"
838
"  --arm[=选项]        ARM BCJ 过滤器\n"
839
"  --armthumb[=选项]   ARM-Thumb BCJ 过滤器\n"
840
"  --arm64[=选项]      ARM64 BCJ 过滤器\n"
771
"  --powerpc[=选项]    PowerPC BCJ 过滤器(仅大端序)\n"
841
"  --powerpc[=选项]    PowerPC BCJ 过滤器(仅大端序)\n"
772
"  --ia64[=选项]       IA-64 (Itanium,安腾) BCJ 过滤器\n"
842
"  --ia64[=选项]       IA-64 (Itanium,安腾) BCJ 过滤器\n"
773
"  --arm[=选项]        ARM BCJ 过滤器(仅小端序)\n"
774
"  --armthumb[=选项]   ARM-Thumb BCJ 过滤器(仅小端序)\n"
775
"  --sparc[=选项]      SPARC BCJ 过滤器\n"
843
"  --sparc[=选项]      SPARC BCJ 过滤器\n"
776
"                      所有过滤器可用选项:\n"
844
"                      所有过滤器可用选项:\n"
777
"                        start=数字  转换的起始偏移量(默认=0)"
845
"                        start=数字  转换的起始偏移量(默认=0)"
778
846
779
#: src/xz/message.c:1221
847
#: src/xz/message.c:1095
780
msgid ""
848
msgid ""
781
"\n"
849
"\n"
782
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
850
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
Lines 787-793 Link Here
787
"  --delta[=选项]      增量过滤器;有效选项(有效值;默认值):\n"
855
"  --delta[=选项]      增量过滤器;有效选项(有效值;默认值):\n"
788
"                        dist=NUM   相减的字节之间的距离 (1-256; 1)"
856
"                        dist=NUM   相减的字节之间的距离 (1-256; 1)"
789
857
790
#: src/xz/message.c:1229
858
#: src/xz/message.c:1103
791
msgid ""
859
msgid ""
792
"\n"
860
"\n"
793
" Other options:\n"
861
" Other options:\n"
Lines 795-801 Link Here
795
"\n"
863
"\n"
796
" 其它选项:\n"
864
" 其它选项:\n"
797
865
798
#: src/xz/message.c:1232
866
#: src/xz/message.c:1106
799
msgid ""
867
msgid ""
800
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
868
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
801
"  -v, --verbose       be verbose; specify twice for even more verbose"
869
"  -v, --verbose       be verbose; specify twice for even more verbose"
Lines 803-823 Link Here
803
"  -q, --quiet         不显示警告信息;指定两次可不显示错误信息\n"
871
"  -q, --quiet         不显示警告信息;指定两次可不显示错误信息\n"
804
"  -v, --verbose       输出详细信息;指定两次可以输出更详细的信息"
872
"  -v, --verbose       输出详细信息;指定两次可以输出更详细的信息"
805
873
806
#: src/xz/message.c:1237
874
#: src/xz/message.c:1111
807
msgid "  -Q, --no-warn       make warnings not affect the exit status"
875
msgid "  -Q, --no-warn       make warnings not affect the exit status"
808
msgstr "  -Q, --no-warn       使得警告信息不影响程序退出返回值"
876
msgstr "  -Q, --no-warn       使得警告信息不影响程序退出返回值"
809
877
810
#: src/xz/message.c:1239
878
#: src/xz/message.c:1113
811
msgid "      --robot         use machine-parsable messages (useful for scripts)"
879
msgid "      --robot         use machine-parsable messages (useful for scripts)"
812
msgstr "      --robot         使用机器可解析的信息(对于脚本有用)"
880
msgstr "      --robot         使用机器可解析的信息(对于脚本有用)"
813
881
814
#: src/xz/message.c:1242
882
#: src/xz/message.c:1116
815
msgid ""
883
msgid ""
816
"      --info-memory   display the total amount of RAM and the currently active\n"
884
"      --info-memory   display the total amount of RAM and the currently active\n"
817
"                      memory usage limits, and exit"
885
"                      memory usage limits, and exit"
818
msgstr "      --info-memory   显示 RAM 总量和当前配置的内存用量限制,然后退出"
886
msgstr "      --info-memory   显示 RAM 总量和当前配置的内存用量限制,然后退出"
819
887
820
#: src/xz/message.c:1245
888
#: src/xz/message.c:1119
821
msgid ""
889
msgid ""
822
"  -h, --help          display the short help (lists only the basic options)\n"
890
"  -h, --help          display the short help (lists only the basic options)\n"
823
"  -H, --long-help     display this long help and exit"
891
"  -H, --long-help     display this long help and exit"
Lines 825-831 Link Here
825
"  -h, --help          显示短帮助信息(仅列出基本选项)\n"
893
"  -h, --help          显示短帮助信息(仅列出基本选项)\n"
826
"  -H, --long-help     显示本长帮助信息"
894
"  -H, --long-help     显示本长帮助信息"
827
895
828
#: src/xz/message.c:1249
896
#: src/xz/message.c:1123
829
msgid ""
897
msgid ""
830
"  -h, --help          display this short help and exit\n"
898
"  -h, --help          display this short help and exit\n"
831
"  -H, --long-help     display the long help (lists also the advanced options)"
899
"  -H, --long-help     display the long help (lists also the advanced options)"
Lines 833-843 Link Here
833
"  -h, --help          显示本短帮助信息并退出\n"
901
"  -h, --help          显示本短帮助信息并退出\n"
834
"  -H, --long-help     显示长帮助信息(同时列出高级选项)"
902
"  -H, --long-help     显示长帮助信息(同时列出高级选项)"
835
903
836
#: src/xz/message.c:1254
904
#: src/xz/message.c:1128
837
msgid "  -V, --version       display the version number and exit"
905
msgid "  -V, --version       display the version number and exit"
838
msgstr "  -V, --version       显示软件版本号并退出"
906
msgstr "  -V, --version       显示软件版本号并退出"
839
907
840
#: src/xz/message.c:1256
908
#: src/xz/message.c:1130
841
msgid ""
909
msgid ""
842
"\n"
910
"\n"
843
"With no FILE, or when FILE is -, read standard input.\n"
911
"With no FILE, or when FILE is -, read standard input.\n"
Lines 849-855 Link Here
849
#. for this package. Please add _another line_ saying
917
#. for this package. Please add _another line_ saying
850
#. "Report translation bugs to <...>\n" with the email or WWW
918
#. "Report translation bugs to <...>\n" with the email or WWW
851
#. address for translation bugs. Thanks.
919
#. address for translation bugs. Thanks.
852
#: src/xz/message.c:1262
920
#: src/xz/message.c:1136
853
#, c-format
921
#, c-format
854
msgid "Report bugs to <%s> (in English or Finnish).\n"
922
msgid "Report bugs to <%s> (in English or Finnish).\n"
855
msgstr ""
923
msgstr ""
Lines 857-868 Link Here
857
"请使用中文向 TP 简体中文翻译团队 <i18n-zh@googlegroups.com>\n"
925
"请使用中文向 TP 简体中文翻译团队 <i18n-zh@googlegroups.com>\n"
858
"报告软件的简体中文翻译错误。\n"
926
"报告软件的简体中文翻译错误。\n"
859
927
860
#: src/xz/message.c:1264
928
#: src/xz/message.c:1138
861
#, c-format
929
#, c-format
862
msgid "%s home page: <%s>\n"
930
msgid "%s home page: <%s>\n"
863
msgstr "%s 主页:<%s>\n"
931
msgstr "%s 主页:<%s>\n"
864
932
865
#: src/xz/message.c:1268
933
#: src/xz/message.c:1142
866
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
934
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
867
msgstr "这是开发版本,不适用于生产环境使用。"
935
msgstr "这是开发版本,不适用于生产环境使用。"
868
936
Lines 890-916 Link Here
890
msgid "The sum of lc and lp must not exceed 4"
958
msgid "The sum of lc and lp must not exceed 4"
891
msgstr "lc 和 lp 的和必须不大于 4"
959
msgstr "lc 和 lp 的和必须不大于 4"
892
960
893
#: src/xz/options.c:359
961
#: src/xz/suffix.c:160
894
#, c-format
962
#, c-format
895
msgid "The selected match finder requires at least nice=%<PRIu32>"
896
msgstr "所选中的匹配搜索器(match finder)至少需要 nice=%<PRIu32>"
897
898
#: src/xz/suffix.c:133 src/xz/suffix.c:258
899
#, c-format
900
msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
901
msgstr "%s:在启用 --format-raw 选项时,必须指定 --suffix=.SUF 获知写入至标准输出"
902
903
#: src/xz/suffix.c:164
904
#, c-format
905
msgid "%s: Filename has an unknown suffix, skipping"
963
msgid "%s: Filename has an unknown suffix, skipping"
906
msgstr "%s:文件名有未知后缀,跳过"
964
msgstr "%s:文件名有未知后缀,跳过"
907
965
908
#: src/xz/suffix.c:185
966
#: src/xz/suffix.c:181
909
#, c-format
967
#, c-format
910
msgid "%s: File already has `%s' suffix, skipping"
968
msgid "%s: File already has `%s' suffix, skipping"
911
msgstr "%s:文件已有“%s”后缀名,跳过"
969
msgstr "%s:文件已有“%s”后缀名,跳过"
912
970
913
#: src/xz/suffix.c:393
971
#: src/xz/suffix.c:388
914
#, c-format
972
#, c-format
915
msgid "%s: Invalid filename suffix"
973
msgid "%s: Invalid filename suffix"
916
msgstr "%s:无效的文件名后缀"
974
msgstr "%s:无效的文件名后缀"
Lines 934-948 Link Here
934
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
992
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
935
msgstr "选项“%s”的值必须位于 [%<PRIu64>, %<PRIu64>] 范围内"
993
msgstr "选项“%s”的值必须位于 [%<PRIu64>, %<PRIu64>] 范围内"
936
994
937
#: src/xz/util.c:267
995
#: src/xz/util.c:269
938
msgid "Empty filename, skipping"
939
msgstr "空文件名,跳过"
940
941
#: src/xz/util.c:281
942
msgid "Compressed data cannot be read from a terminal"
996
msgid "Compressed data cannot be read from a terminal"
943
msgstr "压缩数据不能从终端读取"
997
msgstr "压缩数据不能从终端读取"
944
998
945
#: src/xz/util.c:294
999
#: src/xz/util.c:282
946
msgid "Compressed data cannot be written to a terminal"
1000
msgid "Compressed data cannot be written to a terminal"
947
msgstr "压缩数据不能向终端写入"
1001
msgstr "压缩数据不能向终端写入"
948
1002
Lines 954-961 Link Here
954
msgid "Unknown error"
1008
msgid "Unknown error"
955
msgstr "未知错误"
1009
msgstr "未知错误"
956
1010
1011
#, c-format
1012
#~ msgid "The selected match finder requires at least nice=%<PRIu32>"
1013
#~ msgstr "所选中的匹配搜索器(match finder)至少需要 nice=%<PRIu32>"
1014
957
#~ msgid "Sandbox is disabled due to incompatible command line arguments"
1015
#~ msgid "Sandbox is disabled due to incompatible command line arguments"
958
#~ msgstr "沙盒已因不兼容的命令行参数而禁用"
1016
#~ msgstr "沙盒已因不兼容的命令行参数而禁用"
959
1017
960
#~ msgid "Sandbox was successfully enabled"
1018
#~ msgid "Sandbox was successfully enabled"
961
#~ msgstr "已成功启用沙盒"
1019
#~ msgstr "已成功启用沙盒"
1020
1021
#~ msgid "Memory usage limit for compression:    "
1022
#~ msgstr "用于压缩的内存用量限制:  "
1023
1024
#~ msgid "  Streams:            %s\n"
1025
#~ msgstr "  流:                %s\n"
1026
1027
#~ msgid "  Blocks:             %s\n"
1028
#~ msgstr "  块:                %s\n"
1029
1030
#~ msgid "  Ratio:              %s\n"
1031
#~ msgstr "  压缩比:            %s\n"
1032
1033
#~ msgid "  Check:              %s\n"
1034
#~ msgstr "  校验方式:          %s\n"
1035
1036
#~ msgid ""
1037
#~ "  Streams:\n"
1038
#~ "    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
1039
#~ msgstr ""
1040
#~ "  流:\n"
1041
#~ "       流         块      压缩偏移量      解压偏移量        压缩大小        解压大小   比例   校验         填充"
1042
1043
#~ msgid ""
1044
#~ "  Blocks:\n"
1045
#~ "    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
1046
#~ msgstr ""
1047
#~ "  块:\n"
1048
#~ "        流        块      压缩偏移量      解压偏移量        总计大小        解压大小   比例   校验"
1049
1050
#~ msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
1051
#~ msgstr "      CheckVal %*s   头部   标记        压缩大小    内存使用   过滤器"
(-)xz-5.2.5/po/zh_TW.po (-249 / +387 lines)
Lines 5-12 Link Here
5
msgid ""
5
msgid ""
6
msgstr ""
6
msgstr ""
7
"Project-Id-Version: xz 5.2.4\n"
7
"Project-Id-Version: xz 5.2.4\n"
8
"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
8
"Report-Msgid-Bugs-To: xz@tukaani.org\n"
9
"POT-Creation-Date: 2020-03-17 16:29+0200\n"
9
"POT-Creation-Date: 2023-05-04 22:32+0800\n"
10
"PO-Revision-Date: 2019-04-23 22:00+0800\n"
10
"PO-Revision-Date: 2019-04-23 22:00+0800\n"
11
"Last-Translator: pan93412 <pan93412@gmail.com>\n"
11
"Last-Translator: pan93412 <pan93412@gmail.com>\n"
12
"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
12
"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
Lines 19-117 Link Here
19
"X-Generator: Poedit 2.2.1\n"
19
"X-Generator: Poedit 2.2.1\n"
20
"X-Poedit-SourceCharset: UTF-8\n"
20
"X-Poedit-SourceCharset: UTF-8\n"
21
21
22
#: src/xz/args.c:63
22
#: src/xz/args.c:77
23
#, c-format
23
#, c-format
24
msgid "%s: Invalid argument to --block-list"
24
msgid "%s: Invalid argument to --block-list"
25
msgstr "%s:傳入 --block-list 的參數無效"
25
msgstr "%s:傳入 --block-list 的參數無效"
26
26
27
#: src/xz/args.c:73
27
#: src/xz/args.c:87
28
#, c-format
28
#, c-format
29
msgid "%s: Too many arguments to --block-list"
29
msgid "%s: Too many arguments to --block-list"
30
msgstr "%s:傳入 --block-list 的參數過多"
30
msgstr "%s:傳入 --block-list 的參數過多"
31
31
32
#: src/xz/args.c:102
32
#: src/xz/args.c:116
33
msgid "0 can only be used as the last element in --block-list"
33
msgid "0 can only be used as the last element in --block-list"
34
msgstr "0 只能作為 --block-list 的最後一個元素"
34
msgstr "0 只能作為 --block-list 的最後一個元素"
35
35
36
#: src/xz/args.c:406
36
#: src/xz/args.c:451
37
#, c-format
37
#, c-format
38
msgid "%s: Unknown file format type"
38
msgid "%s: Unknown file format type"
39
msgstr "%s:未知檔案格式類型"
39
msgstr "%s:未知檔案格式類型"
40
40
41
#: src/xz/args.c:429 src/xz/args.c:437
41
#: src/xz/args.c:474 src/xz/args.c:482
42
#, c-format
42
#, c-format
43
msgid "%s: Unsupported integrity check type"
43
msgid "%s: Unsupported integrity check type"
44
msgstr "%s:不支援的完整性檢查類型"
44
msgstr "%s:不支援的完整性檢查類型"
45
45
46
#: src/xz/args.c:473
46
#: src/xz/args.c:518
47
msgid "Only one file can be specified with `--files' or `--files0'."
47
msgid "Only one file can be specified with `--files' or `--files0'."
48
msgstr "「--files」或「--files0」只能指定一個檔案。"
48
msgstr "「--files」或「--files0」只能指定一個檔案。"
49
49
50
#: src/xz/args.c:541
50
#: src/xz/args.c:586
51
#, c-format
51
#, c-format
52
msgid "The environment variable %s contains too many arguments"
52
msgid "The environment variable %s contains too many arguments"
53
msgstr "%s 環境變數包含過多參數"
53
msgstr "%s 環境變數包含過多參數"
54
54
55
#: src/xz/args.c:643
55
#: src/xz/args.c:688
56
msgid "Compression support was disabled at build time"
56
msgid "Compression support was disabled at build time"
57
msgstr "已在編譯時停用壓縮支援"
57
msgstr "已在編譯時停用壓縮支援"
58
58
59
#: src/xz/args.c:650
59
#: src/xz/args.c:695
60
msgid "Decompression support was disabled at build time"
60
msgid "Decompression support was disabled at build time"
61
msgstr "已在編譯時停用解壓縮支援"
61
msgstr "已在編譯時停用解壓縮支援"
62
62
63
#: src/xz/coder.c:110
63
#: src/xz/args.c:701
64
msgid "Compression of lzip files (.lz) is not supported"
65
msgstr ""
66
67
#: src/xz/args.c:732
68
#, fuzzy
69
#| msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
70
msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout"
71
msgstr "%s:搭配 --format=raw 時,除非寫入標準輸出,否則需要 --suffix=.SUF"
72
73
#: src/xz/coder.c:115
64
msgid "Maximum number of filters is four"
74
msgid "Maximum number of filters is four"
65
msgstr "最多只能指定 4 個篩選器"
75
msgstr "最多只能指定 4 個篩選器"
66
76
67
#: src/xz/coder.c:129
77
#: src/xz/coder.c:134
68
msgid "Memory usage limit is too low for the given filter setup."
78
msgid "Memory usage limit is too low for the given filter setup."
69
msgstr "記憶體用量限制過低,不足以設定指定的篩選器。"
79
msgstr "記憶體用量限制過低,不足以設定指定的篩選器。"
70
80
71
#: src/xz/coder.c:159
81
#: src/xz/coder.c:169
72
msgid "Using a preset in raw mode is discouraged."
82
msgid "Using a preset in raw mode is discouraged."
73
msgstr "不建議在 Raw 模式使用設定檔。"
83
msgstr "不建議在 Raw 模式使用設定檔。"
74
84
75
#: src/xz/coder.c:161
85
#: src/xz/coder.c:171
76
msgid "The exact options of the presets may vary between software versions."
86
msgid "The exact options of the presets may vary between software versions."
77
msgstr "設定檔的選項可能因軟體版本而有異。"
87
msgstr "設定檔的選項可能因軟體版本而有異。"
78
88
79
#: src/xz/coder.c:184
89
#: src/xz/coder.c:194
80
msgid "The .lzma format supports only the LZMA1 filter"
90
msgid "The .lzma format supports only the LZMA1 filter"
81
msgstr ".lzma 格式僅支援 LZMA1 篩選器"
91
msgstr ".lzma 格式僅支援 LZMA1 篩選器"
82
92
83
#: src/xz/coder.c:192
93
#: src/xz/coder.c:202
84
msgid "LZMA1 cannot be used with the .xz format"
94
msgid "LZMA1 cannot be used with the .xz format"
85
msgstr "LZMA1 不能與 .xz 格式一同使用"
95
msgstr "LZMA1 不能與 .xz 格式一同使用"
86
96
87
#: src/xz/coder.c:209
97
#: src/xz/coder.c:219
88
msgid "The filter chain is incompatible with --flush-timeout"
98
msgid "The filter chain is incompatible with --flush-timeout"
89
msgstr "篩選鏈不相容 --flush-timeout"
99
msgstr "篩選鏈不相容 --flush-timeout"
90
100
91
#: src/xz/coder.c:215
101
#: src/xz/coder.c:225
92
msgid "Switching to single-threaded mode due to --flush-timeout"
102
msgid "Switching to single-threaded mode due to --flush-timeout"
93
msgstr "因指定 --flush-timeout,因此切換到單執行緒模式"
103
msgstr "因指定 --flush-timeout,因此切換到單執行緒模式"
94
104
95
#: src/xz/coder.c:235
105
#: src/xz/coder.c:249
96
#, c-format
106
#, c-format
97
msgid "Using up to %<PRIu32> threads."
107
msgid "Using up to %<PRIu32> threads."
98
msgstr "使用最多 %<PRIu32> 個執行緒。"
108
msgstr "使用最多 %<PRIu32> 個執行緒。"
99
109
100
#: src/xz/coder.c:251
110
#: src/xz/coder.c:265
101
msgid "Unsupported filter chain or filter options"
111
msgid "Unsupported filter chain or filter options"
102
msgstr "不支援的篩選鏈或篩選器選項"
112
msgstr "不支援的篩選鏈或篩選器選項"
103
113
104
#: src/xz/coder.c:263
114
#: src/xz/coder.c:277
105
#, c-format
115
#, c-format
106
msgid "Decompression will need %s MiB of memory."
116
msgid "Decompression will need %s MiB of memory."
107
msgstr "解壓縮將需要 %s MiB 的記憶體。"
117
msgstr "解壓縮將需要 %s MiB 的記憶體。"
108
118
109
#: src/xz/coder.c:300
119
#: src/xz/coder.c:309
120
#, fuzzy, c-format
121
#| msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
122
msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
123
msgstr "已將 %s 個執行緒調整至 %s,以不超過記憶體用量的 %s MiB 限制"
124
125
#: src/xz/coder.c:329
110
#, c-format
126
#, c-format
111
msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
127
msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway."
128
msgstr ""
129
130
#: src/xz/coder.c:356
131
#, fuzzy, c-format
132
#| msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
133
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
112
msgstr "已將 %s 個執行緒調整至 %s,以不超過記憶體用量的 %s MiB 限制"
134
msgstr "已將 %s 個執行緒調整至 %s,以不超過記憶體用量的 %s MiB 限制"
113
135
114
#: src/xz/coder.c:354
136
#: src/xz/coder.c:411
115
#, c-format
137
#, c-format
116
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
138
msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
117
msgstr "已將 LZMA%c 的字典大小從 %s MiB 調整至 %s MiB,以不超過記憶體用量的 %s MiB 限制"
139
msgstr "已將 LZMA%c 的字典大小從 %s MiB 調整至 %s MiB,以不超過記憶體用量的 %s MiB 限制"
Lines 121-131 Link Here
121
msgid "Error creating a pipe: %s"
143
msgid "Error creating a pipe: %s"
122
msgstr "建立管線時發生錯誤:%s"
144
msgstr "建立管線時發生錯誤:%s"
123
145
124
#: src/xz/file_io.c:224
146
#: src/xz/file_io.c:252
125
msgid "Failed to enable the sandbox"
147
msgid "Failed to enable the sandbox"
126
msgstr "無法啟用沙盒"
148
msgstr "無法啟用沙盒"
127
149
128
#: src/xz/file_io.c:266
150
#: src/xz/file_io.c:294
129
#, c-format
151
#, c-format
130
msgid "%s: poll() failed: %s"
152
msgid "%s: poll() failed: %s"
131
msgstr "%s:poll() 失敗:%s"
153
msgstr "%s:poll() 失敗:%s"
Lines 140-334 Link Here
140
#. it is possible that the user has put a new file in place
162
#. it is possible that the user has put a new file in place
141
#. of the original file, and in that case it obviously
163
#. of the original file, and in that case it obviously
142
#. shouldn't be removed.
164
#. shouldn't be removed.
143
#: src/xz/file_io.c:333
165
#: src/xz/file_io.c:361
144
#, c-format
166
#, c-format
145
msgid "%s: File seems to have been moved, not removing"
167
msgid "%s: File seems to have been moved, not removing"
146
msgstr "%s:檔案似乎已經遷移,不移除"
168
msgstr "%s:檔案似乎已經遷移,不移除"
147
169
148
#: src/xz/file_io.c:340 src/xz/file_io.c:882
170
#: src/xz/file_io.c:368 src/xz/file_io.c:924
149
#, c-format
171
#, c-format
150
msgid "%s: Cannot remove: %s"
172
msgid "%s: Cannot remove: %s"
151
msgstr "%s:無法移除:%s"
173
msgstr "%s:無法移除:%s"
152
174
153
#: src/xz/file_io.c:366
175
#: src/xz/file_io.c:394
154
#, c-format
176
#, c-format
155
msgid "%s: Cannot set the file owner: %s"
177
msgid "%s: Cannot set the file owner: %s"
156
msgstr "%s:無法設定檔案所有者:%s"
178
msgstr "%s:無法設定檔案所有者:%s"
157
179
158
#: src/xz/file_io.c:372
180
#: src/xz/file_io.c:407
159
#, c-format
181
#, c-format
160
msgid "%s: Cannot set the file group: %s"
182
msgid "%s: Cannot set the file group: %s"
161
msgstr "%s:無法設定檔案群組:%s"
183
msgstr "%s:無法設定檔案群組:%s"
162
184
163
#: src/xz/file_io.c:391
185
#: src/xz/file_io.c:426
164
#, c-format
186
#, c-format
165
msgid "%s: Cannot set the file permissions: %s"
187
msgid "%s: Cannot set the file permissions: %s"
166
msgstr "%s:無法設定檔案權限:%s"
188
msgstr "%s:無法設定檔案權限:%s"
167
189
168
#: src/xz/file_io.c:517
190
#: src/xz/file_io.c:552
169
#, c-format
191
#, c-format
170
msgid "Error getting the file status flags from standard input: %s"
192
msgid "Error getting the file status flags from standard input: %s"
171
msgstr "從標準輸入取得檔案狀態旗標時發生錯誤:%s"
193
msgstr "從標準輸入取得檔案狀態旗標時發生錯誤:%s"
172
194
173
#: src/xz/file_io.c:574 src/xz/file_io.c:636
195
#: src/xz/file_io.c:610 src/xz/file_io.c:672
174
#, c-format
196
#, c-format
175
msgid "%s: Is a symbolic link, skipping"
197
msgid "%s: Is a symbolic link, skipping"
176
msgstr "%s:是個符號連結,跳過"
198
msgstr "%s:是個符號連結,跳過"
177
199
178
#: src/xz/file_io.c:665
200
#: src/xz/file_io.c:701
179
#, c-format
201
#, c-format
180
msgid "%s: Is a directory, skipping"
202
msgid "%s: Is a directory, skipping"
181
msgstr "%s:是個目錄,跳過"
203
msgstr "%s:是個目錄,跳過"
182
204
183
#: src/xz/file_io.c:671
205
#: src/xz/file_io.c:707
184
#, c-format
206
#, c-format
185
msgid "%s: Not a regular file, skipping"
207
msgid "%s: Not a regular file, skipping"
186
msgstr "%s:不是一般檔案,跳過"
208
msgstr "%s:不是一般檔案,跳過"
187
209
188
#: src/xz/file_io.c:688
210
#: src/xz/file_io.c:724
189
#, c-format
211
#, c-format
190
msgid "%s: File has setuid or setgid bit set, skipping"
212
msgid "%s: File has setuid or setgid bit set, skipping"
191
msgstr "%s:檔案已設定 setuid 或 setgid 位元,跳過"
213
msgstr "%s:檔案已設定 setuid 或 setgid 位元,跳過"
192
214
193
#: src/xz/file_io.c:695
215
#: src/xz/file_io.c:731
194
#, c-format
216
#, c-format
195
msgid "%s: File has sticky bit set, skipping"
217
msgid "%s: File has sticky bit set, skipping"
196
msgstr "%s:檔案已設定黏性位元(sticky bit),跳過"
218
msgstr "%s:檔案已設定黏性位元(sticky bit),跳過"
197
219
198
#: src/xz/file_io.c:702
220
#: src/xz/file_io.c:738
199
#, c-format
221
#, c-format
200
msgid "%s: Input file has more than one hard link, skipping"
222
msgid "%s: Input file has more than one hard link, skipping"
201
msgstr "%s:輸入檔有超過一個實際連結 (hard link),跳過"
223
msgstr "%s:輸入檔有超過一個實際連結 (hard link),跳過"
202
224
203
#: src/xz/file_io.c:792
225
#: src/xz/file_io.c:780
226
msgid "Empty filename, skipping"
227
msgstr "空檔名,跳過"
228
229
#: src/xz/file_io.c:834
204
#, c-format
230
#, c-format
205
msgid "Error restoring the status flags to standard input: %s"
231
msgid "Error restoring the status flags to standard input: %s"
206
msgstr "將狀態旗標還原到標準輸入時發生錯誤:%s"
232
msgstr "將狀態旗標還原到標準輸入時發生錯誤:%s"
207
233
208
#: src/xz/file_io.c:840
234
#: src/xz/file_io.c:882
209
#, c-format
235
#, c-format
210
msgid "Error getting the file status flags from standard output: %s"
236
msgid "Error getting the file status flags from standard output: %s"
211
msgstr "從標準輸出取得檔案狀態旗標時發生錯誤:%s"
237
msgstr "從標準輸出取得檔案狀態旗標時發生錯誤:%s"
212
238
213
#: src/xz/file_io.c:1018
239
#: src/xz/file_io.c:1060
214
#, c-format
240
#, c-format
215
msgid "Error restoring the O_APPEND flag to standard output: %s"
241
msgid "Error restoring the O_APPEND flag to standard output: %s"
216
msgstr "將 O_APPEND 旗標還原到標準輸出時發生錯誤:%s"
242
msgstr "將 O_APPEND 旗標還原到標準輸出時發生錯誤:%s"
217
243
218
#: src/xz/file_io.c:1030
244
#: src/xz/file_io.c:1072
219
#, c-format
245
#, c-format
220
msgid "%s: Closing the file failed: %s"
246
msgid "%s: Closing the file failed: %s"
221
msgstr "%s:關閉檔案失敗:%s"
247
msgstr "%s:關閉檔案失敗:%s"
222
248
223
#: src/xz/file_io.c:1066 src/xz/file_io.c:1309
249
#: src/xz/file_io.c:1108 src/xz/file_io.c:1371
224
#, c-format
250
#, c-format
225
msgid "%s: Seeking failed when trying to create a sparse file: %s"
251
msgid "%s: Seeking failed when trying to create a sparse file: %s"
226
msgstr "%s:嘗試建立疏鬆檔案時發生搜尋失敗:%s"
252
msgstr "%s:嘗試建立疏鬆檔案時發生搜尋失敗:%s"
227
253
228
#: src/xz/file_io.c:1167
254
#: src/xz/file_io.c:1209
229
#, c-format
255
#, c-format
230
msgid "%s: Read error: %s"
256
msgid "%s: Read error: %s"
231
msgstr "%s:讀取時發生錯誤:%s"
257
msgstr "%s:讀取時發生錯誤:%s"
232
258
233
#: src/xz/file_io.c:1191
259
#: src/xz/file_io.c:1239
234
#, c-format
260
#, c-format
235
msgid "%s: Error seeking the file: %s"
261
msgid "%s: Error seeking the file: %s"
236
msgstr "%s:搜尋檔案時發生錯誤:%s"
262
msgstr "%s:搜尋檔案時發生錯誤:%s"
237
263
238
#: src/xz/file_io.c:1201
264
#: src/xz/file_io.c:1263
239
#, c-format
265
#, c-format
240
msgid "%s: Unexpected end of file"
266
msgid "%s: Unexpected end of file"
241
msgstr "%s:非期望的檔案結尾"
267
msgstr "%s:非期望的檔案結尾"
242
268
243
#: src/xz/file_io.c:1260
269
#: src/xz/file_io.c:1322
244
#, c-format
270
#, c-format
245
msgid "%s: Write error: %s"
271
msgid "%s: Write error: %s"
246
msgstr "%s:寫入時發生錯誤:%s"
272
msgstr "%s:寫入時發生錯誤:%s"
247
273
248
#: src/xz/hardware.c:137
274
#: src/xz/hardware.c:238
249
msgid "Disabled"
275
msgid "Disabled"
250
msgstr "已停用"
276
msgstr "已停用"
251
277
252
#. TRANSLATORS: Test with "xz --info-memory" to see if
278
#: src/xz/hardware.c:269
253
#. the alignment looks nice.
279
#, fuzzy
254
#: src/xz/hardware.c:156
280
#| msgid "Total amount of physical memory (RAM): "
255
msgid "Total amount of physical memory (RAM): "
281
msgid "Amount of physical memory (RAM):"
256
msgstr "實體記憶體 (RAM) 總量:"
282
msgstr "實體記憶體 (RAM) 總量:"
257
283
258
#: src/xz/hardware.c:158
284
#: src/xz/hardware.c:270
259
msgid "Memory usage limit for compression:    "
285
msgid "Number of processor threads:"
260
msgstr "壓縮記憶體限制:       "
286
msgstr ""
261
287
262
#: src/xz/hardware.c:160
288
#: src/xz/hardware.c:271
263
msgid "Memory usage limit for decompression:  "
289
msgid "Compression:"
290
msgstr ""
291
292
#: src/xz/hardware.c:272
293
msgid "Decompression:"
294
msgstr ""
295
296
#: src/xz/hardware.c:273
297
#, fuzzy
298
#| msgid "Memory usage limit for decompression:  "
299
msgid "Multi-threaded decompression:"
264
msgstr "解壓縮記憶體限制:     "
300
msgstr "解壓縮記憶體限制:     "
265
301
302
#: src/xz/hardware.c:274
303
msgid "Default for -T0:"
304
msgstr ""
305
306
#: src/xz/hardware.c:292
307
msgid "Hardware information:"
308
msgstr ""
309
310
#: src/xz/hardware.c:299
311
#, fuzzy
312
#| msgid "Memory usage limit reached"
313
msgid "Memory usage limits:"
314
msgstr "達到記憶體用量上限"
315
316
#: src/xz/list.c:68
317
msgid "Streams:"
318
msgstr ""
319
320
#: src/xz/list.c:69
321
msgid "Blocks:"
322
msgstr ""
323
324
#: src/xz/list.c:70
325
#, fuzzy
326
#| msgid "  Compressed size:    %s\n"
327
msgid "Compressed size:"
328
msgstr "  壓縮大小:       %s\n"
329
330
#: src/xz/list.c:71
331
#, fuzzy
332
#| msgid "  Uncompressed size:  %s\n"
333
msgid "Uncompressed size:"
334
msgstr "  未壓縮大小:      %s\n"
335
336
#: src/xz/list.c:72
337
msgid "Ratio:"
338
msgstr ""
339
340
#: src/xz/list.c:73
341
msgid "Check:"
342
msgstr ""
343
344
#: src/xz/list.c:74
345
#, fuzzy
346
#| msgid "  Stream padding:     %s\n"
347
msgid "Stream Padding:"
348
msgstr "  串流填充:       %s\n"
349
350
#: src/xz/list.c:75
351
#, fuzzy
352
#| msgid "  Memory needed:      %s MiB\n"
353
msgid "Memory needed:"
354
msgstr "  所需記憶體量:     %s MiB\n"
355
356
#: src/xz/list.c:76
357
#, fuzzy
358
#| msgid "  Sizes in headers:   %s\n"
359
msgid "Sizes in headers:"
360
msgstr "  檔頭中標示大小:    %s\n"
361
362
#: src/xz/list.c:79
363
#, fuzzy
364
#| msgid "  Number of files:    %s\n"
365
msgid "Number of files:"
366
msgstr "  檔案數:        %s\n"
367
368
#: src/xz/list.c:122
369
msgid "Stream"
370
msgstr ""
371
372
#: src/xz/list.c:123
373
msgid "Block"
374
msgstr ""
375
376
#: src/xz/list.c:124
377
msgid "Blocks"
378
msgstr ""
379
380
#: src/xz/list.c:125
381
msgid "CompOffset"
382
msgstr ""
383
384
#: src/xz/list.c:126
385
msgid "UncompOffset"
386
msgstr ""
387
388
#: src/xz/list.c:127
389
msgid "CompSize"
390
msgstr ""
391
392
#: src/xz/list.c:128
393
msgid "UncompSize"
394
msgstr ""
395
396
#: src/xz/list.c:129
397
#, fuzzy
398
#| msgid "Totals:"
399
msgid "TotalSize"
400
msgstr "總計:"
401
402
#: src/xz/list.c:130
403
msgid "Ratio"
404
msgstr ""
405
406
#: src/xz/list.c:131
407
msgid "Check"
408
msgstr ""
409
410
#: src/xz/list.c:132
411
msgid "CheckVal"
412
msgstr ""
413
414
#: src/xz/list.c:133
415
msgid "Padding"
416
msgstr ""
417
418
#: src/xz/list.c:134
419
msgid "Header"
420
msgstr ""
421
422
#: src/xz/list.c:135
423
msgid "Flags"
424
msgstr ""
425
426
#: src/xz/list.c:136
427
msgid "MemUsage"
428
msgstr ""
429
430
#: src/xz/list.c:137
431
msgid "Filters"
432
msgstr ""
433
266
#. TRANSLATORS: Indicates that there is no integrity check.
434
#. TRANSLATORS: Indicates that there is no integrity check.
267
#. This string is used in tables, so the width must not
435
#. This string is used in tables. In older xz version this
268
#. exceed ten columns with a fixed-width font.
436
#. string was limited to ten columns in a fixed-width font, but
269
#: src/xz/list.c:65
437
#. nowadays there is no strict length restriction anymore.
438
#: src/xz/list.c:169
270
msgid "None"
439
msgid "None"
271
msgstr "無"
440
msgstr "無"
272
441
273
#. TRANSLATORS: Indicates that integrity check name is not known,
442
#. TRANSLATORS: Indicates that integrity check name is not known,
274
#. but the Check ID is known (here 2). This and other "Unknown-N"
443
#. but the Check ID is known (here 2). In older xz version these
275
#. strings are used in tables, so the width must not exceed ten
444
#. strings were limited to ten columns in a fixed-width font, but
276
#. columns with a fixed-width font. It's OK to omit the dash if
445
#. nowadays there is no strict length restriction anymore.
277
#. you need space for one extra letter, but don't use spaces.
446
#: src/xz/list.c:175
278
#: src/xz/list.c:72
279
msgid "Unknown-2"
447
msgid "Unknown-2"
280
msgstr "未知-2"
448
msgstr "未知-2"
281
449
282
#: src/xz/list.c:73
450
#: src/xz/list.c:176
283
msgid "Unknown-3"
451
msgid "Unknown-3"
284
msgstr "未知-3"
452
msgstr "未知-3"
285
453
286
#: src/xz/list.c:75
454
#: src/xz/list.c:178
287
msgid "Unknown-5"
455
msgid "Unknown-5"
288
msgstr "未知-5"
456
msgstr "未知-5"
289
457
290
#: src/xz/list.c:76
458
#: src/xz/list.c:179
291
msgid "Unknown-6"
459
msgid "Unknown-6"
292
msgstr "未知-6"
460
msgstr "未知-6"
293
461
294
#: src/xz/list.c:77
462
#: src/xz/list.c:180
295
msgid "Unknown-7"
463
msgid "Unknown-7"
296
msgstr "未知-7"
464
msgstr "未知-7"
297
465
298
#: src/xz/list.c:78
466
#: src/xz/list.c:181
299
msgid "Unknown-8"
467
msgid "Unknown-8"
300
msgstr "未知-8"
468
msgstr "未知-8"
301
469
302
#: src/xz/list.c:79
470
#: src/xz/list.c:182
303
msgid "Unknown-9"
471
msgid "Unknown-9"
304
msgstr "未知-9"
472
msgstr "未知-9"
305
473
306
#: src/xz/list.c:81
474
#: src/xz/list.c:184
307
msgid "Unknown-11"
475
msgid "Unknown-11"
308
msgstr "未知-11"
476
msgstr "未知-11"
309
477
310
#: src/xz/list.c:82
478
#: src/xz/list.c:185
311
msgid "Unknown-12"
479
msgid "Unknown-12"
312
msgstr "未知-12"
480
msgstr "未知-12"
313
481
314
#: src/xz/list.c:83
482
#: src/xz/list.c:186
315
msgid "Unknown-13"
483
msgid "Unknown-13"
316
msgstr "未知-13"
484
msgstr "未知-13"
317
485
318
#: src/xz/list.c:84
486
#: src/xz/list.c:187
319
msgid "Unknown-14"
487
msgid "Unknown-14"
320
msgstr "未知-14"
488
msgstr "未知-14"
321
489
322
#: src/xz/list.c:85
490
#: src/xz/list.c:188
323
msgid "Unknown-15"
491
msgid "Unknown-15"
324
msgstr "未知-15"
492
msgstr "未知-15"
325
493
326
#: src/xz/list.c:153
494
#: src/xz/list.c:351
327
#, c-format
495
#, c-format
328
msgid "%s: File is empty"
496
msgid "%s: File is empty"
329
msgstr "%s:檔案是空的"
497
msgstr "%s:檔案是空的"
330
498
331
#: src/xz/list.c:158
499
#: src/xz/list.c:356
332
#, c-format
500
#, c-format
333
msgid "%s: Too small to be a valid .xz file"
501
msgid "%s: Too small to be a valid .xz file"
334
msgstr "%s:因過小而不認為是個有效 .xz 檔"
502
msgstr "%s:因過小而不認為是個有效 .xz 檔"
Lines 337-463 Link Here
337
#. to Ratio, the columns are right aligned. Check and Filename
505
#. to Ratio, the columns are right aligned. Check and Filename
338
#. are left aligned. If you need longer words, it's OK to
506
#. are left aligned. If you need longer words, it's OK to
339
#. use two lines here. Test with "xz -l foo.xz".
507
#. use two lines here. Test with "xz -l foo.xz".
340
#: src/xz/list.c:677
508
#: src/xz/list.c:730
341
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
509
msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
342
msgstr " 串流  區塊    已壓縮    未壓縮  比例 檢驗碼 檔名"
510
msgstr " 串流  區塊    已壓縮    未壓縮  比例 檢驗碼 檔名"
343
511
344
#: src/xz/list.c:717
512
#: src/xz/list.c:1025 src/xz/list.c:1203
345
#, c-format
346
msgid "  Streams:            %s\n"
347
msgstr "  串流:         %s\n"
348
349
#: src/xz/list.c:719
350
#, c-format
351
msgid "  Blocks:             %s\n"
352
msgstr "  區塊:         %s\n"
353
354
#: src/xz/list.c:721
355
#, c-format
356
msgid "  Compressed size:    %s\n"
357
msgstr "  壓縮大小:       %s\n"
358
359
#: src/xz/list.c:724
360
#, c-format
361
msgid "  Uncompressed size:  %s\n"
362
msgstr "  未壓縮大小:      %s\n"
363
364
#: src/xz/list.c:727
365
#, c-format
366
msgid "  Ratio:              %s\n"
367
msgstr "  壓縮比:        %s\n"
368
369
#: src/xz/list.c:729
370
#, c-format
371
msgid "  Check:              %s\n"
372
msgstr "  檢驗碼:        %s\n"
373
374
#: src/xz/list.c:730
375
#, c-format
376
msgid "  Stream padding:     %s\n"
377
msgstr "  串流填充:       %s\n"
378
379
# 下方的文字因排版有一些障礙,因此暫時不理他。
380
#. TRANSLATORS: The second line is column headings. All except
381
#. Check are right aligned; Check is left aligned. Test with
382
#. "xz -lv foo.xz".
383
#: src/xz/list.c:758
384
msgid ""
385
"  Streams:\n"
386
"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
387
msgstr ""
388
"  串流:\n"
389
"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
390
391
# 下方的文字因排版有一些障礙,因此暫時不理他。
392
#. TRANSLATORS: The second line is column headings. All
393
#. except Check are right aligned; Check is left aligned.
394
#: src/xz/list.c:813
395
#, c-format
396
msgid ""
397
"  Blocks:\n"
398
"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
399
msgstr ""
400
"  區塊:\n"
401
"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
402
403
# 下方的文字因排版有一些障礙,因此暫時不理他。
404
#. TRANSLATORS: These are additional column headings
405
#. for the most verbose listing mode. CheckVal
406
#. (Check value), Flags, and Filters are left aligned.
407
#. Header (Block Header Size), CompSize, and MemUsage
408
#. are right aligned. %*s is replaced with 0-120
409
#. spaces to make the CheckVal column wide enough.
410
#. Test with "xz -lvv foo.xz".
411
#: src/xz/list.c:825
412
#, c-format
413
msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
414
msgstr "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
415
416
#: src/xz/list.c:903 src/xz/list.c:1078
417
#, c-format
418
msgid "  Memory needed:      %s MiB\n"
419
msgstr "  所需記憶體量:     %s MiB\n"
420
421
#: src/xz/list.c:905 src/xz/list.c:1080
422
#, c-format
423
msgid "  Sizes in headers:   %s\n"
424
msgstr "  檔頭中標示大小:    %s\n"
425
426
#: src/xz/list.c:906 src/xz/list.c:1081
427
msgid "Yes"
513
msgid "Yes"
428
msgstr "是"
514
msgstr "是"
429
515
430
#: src/xz/list.c:906 src/xz/list.c:1081
516
#: src/xz/list.c:1025 src/xz/list.c:1203
431
msgid "No"
517
msgid "No"
432
msgstr "否"
518
msgstr "否"
433
519
434
#: src/xz/list.c:907 src/xz/list.c:1082
520
#: src/xz/list.c:1027 src/xz/list.c:1205
435
#, c-format
521
#, c-format
436
msgid "  Minimum XZ Utils version: %s\n"
522
msgid "  Minimum XZ Utils version: %s\n"
437
msgstr "  最小 XZ 工具程式版本: %s\n"
523
msgstr "  最小 XZ 工具程式版本: %s\n"
438
524
439
#. TRANSLATORS: %s is an integer. Only the plural form of this
525
#. TRANSLATORS: %s is an integer. Only the plural form of this
440
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
526
#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
441
#: src/xz/list.c:1057
527
#: src/xz/list.c:1178
442
#, c-format
528
#, c-format
443
msgid "%s file\n"
529
msgid "%s file\n"
444
msgid_plural "%s files\n"
530
msgid_plural "%s files\n"
445
msgstr[0] "%s 個檔案\n"
531
msgstr[0] "%s 個檔案\n"
446
532
447
#: src/xz/list.c:1070
533
#: src/xz/list.c:1191
448
msgid "Totals:"
534
msgid "Totals:"
449
msgstr "總計:"
535
msgstr "總計:"
450
536
451
#: src/xz/list.c:1071
537
#: src/xz/list.c:1269
452
#, c-format
453
msgid "  Number of files:    %s\n"
454
msgstr "  檔案數:        %s\n"
455
456
#: src/xz/list.c:1146
457
msgid "--list works only on .xz files (--format=xz or --format=auto)"
538
msgid "--list works only on .xz files (--format=xz or --format=auto)"
458
msgstr "--list 只能在 .xz 檔使用(--format=xz 或 --format=auto)"
539
msgstr "--list 只能在 .xz 檔使用(--format=xz 或 --format=auto)"
459
540
460
#: src/xz/list.c:1152
541
#: src/xz/list.c:1275
461
msgid "--list does not support reading from standard input"
542
msgid "--list does not support reading from standard input"
462
msgstr "--list 不支援從標準輸入讀取"
543
msgstr "--list 不支援從標準輸入讀取"
463
544
Lines 476-486 Link Here
476
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
557
msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
477
msgstr "%s:讀取檔名時發現空字元;或許您想使用「--files0」而非「--files」?"
558
msgstr "%s:讀取檔名時發現空字元;或許您想使用「--files0」而非「--files」?"
478
559
479
#: src/xz/main.c:174
560
#: src/xz/main.c:188
480
msgid "Compression and decompression with --robot are not supported yet."
561
msgid "Compression and decompression with --robot are not supported yet."
481
msgstr "尚未支援搭配 --robot 壓縮和解壓縮。"
562
msgstr "尚未支援搭配 --robot 壓縮和解壓縮。"
482
563
483
#: src/xz/main.c:252
564
#: src/xz/main.c:266
484
msgid "Cannot read data from standard input when reading filenames from standard input"
565
msgid "Cannot read data from standard input when reading filenames from standard input"
485
msgstr "從標準輸入讀取檔名時,無法從標準輸入讀取資料"
566
msgstr "從標準輸入讀取檔名時,無法從標準輸入讀取資料"
486
567
Lines 488-555 Link Here
488
#. of the line in messages. Usually it becomes "xz: ".
569
#. of the line in messages. Usually it becomes "xz: ".
489
#. This is a translatable string because French needs
570
#. This is a translatable string because French needs
490
#. a space before a colon.
571
#. a space before a colon.
491
#: src/xz/message.c:728
572
#: src/xz/message.c:725
492
#, c-format
573
#, c-format
493
msgid "%s: "
574
msgid "%s: "
494
msgstr "%s:"
575
msgstr "%s:"
495
576
496
#: src/xz/message.c:791 src/xz/message.c:841
577
#: src/xz/message.c:797 src/xz/message.c:856
497
msgid "Internal error (bug)"
578
msgid "Internal error (bug)"
498
msgstr "內部錯誤(臭蟲)"
579
msgstr "內部錯誤(臭蟲)"
499
580
500
#: src/xz/message.c:798
581
#: src/xz/message.c:804
501
msgid "Cannot establish signal handlers"
582
msgid "Cannot establish signal handlers"
502
msgstr "無法確立信號處理器"
583
msgstr "無法確立信號處理器"
503
584
504
#: src/xz/message.c:807
585
#: src/xz/message.c:813
505
msgid "No integrity check; not verifying file integrity"
586
msgid "No integrity check; not verifying file integrity"
506
msgstr "沒有完整性檢查;不驗證檔案完整性"
587
msgstr "沒有完整性檢查;不驗證檔案完整性"
507
588
508
#: src/xz/message.c:810
589
#: src/xz/message.c:816
509
msgid "Unsupported type of integrity check; not verifying file integrity"
590
msgid "Unsupported type of integrity check; not verifying file integrity"
510
msgstr "未知完整性檢查類型;不驗證檔案完整性"
591
msgstr "未知完整性檢查類型;不驗證檔案完整性"
511
592
512
#: src/xz/message.c:817
593
#: src/xz/message.c:823
513
msgid "Memory usage limit reached"
594
msgid "Memory usage limit reached"
514
msgstr "達到記憶體用量上限"
595
msgstr "達到記憶體用量上限"
515
596
516
#: src/xz/message.c:820
597
#: src/xz/message.c:826
517
msgid "File format not recognized"
598
msgid "File format not recognized"
518
msgstr "無法識別檔案格式"
599
msgstr "無法識別檔案格式"
519
600
520
#: src/xz/message.c:823
601
#: src/xz/message.c:829
521
msgid "Unsupported options"
602
msgid "Unsupported options"
522
msgstr "不支援的選項"
603
msgstr "不支援的選項"
523
604
524
#: src/xz/message.c:826
605
#: src/xz/message.c:832
525
msgid "Compressed data is corrupt"
606
msgid "Compressed data is corrupt"
526
msgstr "壓縮資料是損壞的"
607
msgstr "壓縮資料是損壞的"
527
608
528
#: src/xz/message.c:829
609
#: src/xz/message.c:835
529
msgid "Unexpected end of input"
610
msgid "Unexpected end of input"
530
msgstr "遇到非預期輸入結尾"
611
msgstr "遇到非預期輸入結尾"
531
612
532
#: src/xz/message.c:862
613
#: src/xz/message.c:877
533
#, c-format
614
#, c-format
534
msgid "%s MiB of memory is required. The limiter is disabled."
615
msgid "%s MiB of memory is required. The limiter is disabled."
535
msgstr "需要 %s MiB 的記憶體。已停用記憶體限制器。"
616
msgstr "需要 %s MiB 的記憶體。已停用記憶體限制器。"
536
617
537
#: src/xz/message.c:890
618
#: src/xz/message.c:905
538
#, c-format
619
#, c-format
539
msgid "%s MiB of memory is required. The limit is %s."
620
msgid "%s MiB of memory is required. The limit is %s."
540
msgstr "需要 %s MiB 的記憶體。記憶體限制為 %s。"
621
msgstr "需要 %s MiB 的記憶體。記憶體限制為 %s。"
541
622
542
#: src/xz/message.c:1057
623
#: src/xz/message.c:924
543
#, c-format
624
#, c-format
544
msgid "%s: Filter chain: %s\n"
625
msgid "%s: Filter chain: %s\n"
545
msgstr "%s:篩選鏈:%s\n"
626
msgstr "%s:篩選鏈:%s\n"
546
627
547
#: src/xz/message.c:1067
628
#: src/xz/message.c:935
548
#, c-format
629
#, c-format
549
msgid "Try `%s --help' for more information."
630
msgid "Try `%s --help' for more information."
550
msgstr "嘗試「%s --help」取得更多資訊。"
631
msgstr "嘗試「%s --help」取得更多資訊。"
551
632
552
#: src/xz/message.c:1093
633
#: src/xz/message.c:961
553
#, c-format
634
#, c-format
554
msgid ""
635
msgid ""
555
"Usage: %s [OPTION]... [FILE]...\n"
636
"Usage: %s [OPTION]... [FILE]...\n"
Lines 560-574 Link Here
560
"用 .xz 格式壓縮,或解壓縮 .xz 格式中的 <檔案>。\n"
641
"用 .xz 格式壓縮,或解壓縮 .xz 格式中的 <檔案>。\n"
561
"\n"
642
"\n"
562
643
563
#: src/xz/message.c:1100
644
#: src/xz/message.c:968
564
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
645
msgid "Mandatory arguments to long options are mandatory for short options too.\n"
565
msgstr "長選項的必填參數,對短選項也是必填。\n"
646
msgstr "長選項的必填參數,對短選項也是必填。\n"
566
647
567
#: src/xz/message.c:1104
648
#: src/xz/message.c:972
568
msgid " Operation mode:\n"
649
msgid " Operation mode:\n"
569
msgstr " 操作模式:\n"
650
msgstr " 操作模式:\n"
570
651
571
#: src/xz/message.c:1107
652
#: src/xz/message.c:975
572
msgid ""
653
msgid ""
573
"  -z, --compress      force compression\n"
654
"  -z, --compress      force compression\n"
574
"  -d, --decompress    force decompression\n"
655
"  -d, --decompress    force decompression\n"
Lines 580-586 Link Here
580
"  -t, --test          測試壓縮檔完整性\n"
661
"  -t, --test          測試壓縮檔完整性\n"
581
"  -l, --list          列出 .xz 檔的資訊"
662
"  -l, --list          列出 .xz 檔的資訊"
582
663
583
#: src/xz/message.c:1113
664
#: src/xz/message.c:981
584
msgid ""
665
msgid ""
585
"\n"
666
"\n"
586
" Operation modifiers:\n"
667
" Operation modifiers:\n"
Lines 588-594 Link Here
588
"\n"
669
"\n"
589
" 操作修飾詞:\n"
670
" 操作修飾詞:\n"
590
671
591
#: src/xz/message.c:1116
672
#: src/xz/message.c:984
592
msgid ""
673
msgid ""
593
"  -k, --keep          keep (don't delete) input files\n"
674
"  -k, --keep          keep (don't delete) input files\n"
594
"  -f, --force         force overwrite of output file and (de)compress links\n"
675
"  -f, --force         force overwrite of output file and (de)compress links\n"
Lines 598-604 Link Here
598
"  -f, --force         強制覆寫輸出檔並(解)壓縮連結\n"
679
"  -f, --force         強制覆寫輸出檔並(解)壓縮連結\n"
599
"  -c, --stdout        寫入標準輸出並不刪除輸入檔"
680
"  -c, --stdout        寫入標準輸出並不刪除輸入檔"
600
681
601
#: src/xz/message.c:1122
682
#: src/xz/message.c:993
602
msgid ""
683
msgid ""
603
"      --single-stream decompress only the first stream, and silently\n"
684
"      --single-stream decompress only the first stream, and silently\n"
604
"                      ignore possible remaining input data"
685
"                      ignore possible remaining input data"
Lines 606-612 Link Here
606
"      --single-stream 僅解壓縮第一個串流,再\n"
687
"      --single-stream 僅解壓縮第一個串流,再\n"
607
"                      安靜地忽略可能剩餘的輸入檔"
688
"                      安靜地忽略可能剩餘的輸入檔"
608
689
609
#: src/xz/message.c:1125
690
#: src/xz/message.c:996
610
msgid ""
691
msgid ""
611
"      --no-sparse     do not create sparse files when decompressing\n"
692
"      --no-sparse     do not create sparse files when decompressing\n"
612
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
693
"  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
Lines 621-627 Link Here
621
"                      則從標準輸入讀取檔名;檔名必須以換行字元作為結尾\n"
702
"                      則從標準輸入讀取檔名;檔名必須以換行字元作為結尾\n"
622
"      --files0[=檔案] 類似 --files 但是以 null 空字元作結尾"
703
"      --files0[=檔案] 類似 --files 但是以 null 空字元作結尾"
623
704
624
#: src/xz/message.c:1134
705
#: src/xz/message.c:1005
625
msgid ""
706
msgid ""
626
"\n"
707
"\n"
627
" Basic file format and compression options:\n"
708
" Basic file format and compression options:\n"
Lines 629-638 Link Here
629
"\n"
710
"\n"
630
" 基本檔案格式與壓縮選項:\n"
711
" 基本檔案格式與壓縮選項:\n"
631
712
632
#: src/xz/message.c:1136
713
#: src/xz/message.c:1007
714
#, fuzzy
715
#| msgid ""
716
#| "  -F, --format=FMT    file format to encode or decode; possible values are\n"
717
#| "                      `auto' (default), `xz', `lzma', and `raw'\n"
718
#| "  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
719
#| "                      `crc32', `crc64' (default), or `sha256'"
633
msgid ""
720
msgid ""
634
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
721
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
635
"                      `auto' (default), `xz', `lzma', and `raw'\n"
722
"                      `auto' (default), `xz', `lzma', `lzip', and `raw'\n"
636
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
723
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
637
"                      `crc32', `crc64' (default), or `sha256'"
724
"                      `crc32', `crc64' (default), or `sha256'"
638
msgstr ""
725
msgstr ""
Lines 641-651 Link Here
641
"  -C, --check=檢查碼   完整性檢查類型:「none」(請小心使用)、「crc32」、\n"
728
"  -C, --check=檢查碼   完整性檢查類型:「none」(請小心使用)、「crc32」、\n"
642
"                      「crc64」(預設值)或「sha256」"
729
"                      「crc64」(預設值)或「sha256」"
643
730
644
#: src/xz/message.c:1141
731
#: src/xz/message.c:1012
645
msgid "      --ignore-check  don't verify the integrity check when decompressing"
732
msgid "      --ignore-check  don't verify the integrity check when decompressing"
646
msgstr "      --ignore-check  不在解壓縮時驗證完整性"
733
msgstr "      --ignore-check  不在解壓縮時驗證完整性"
647
734
648
#: src/xz/message.c:1145
735
#: src/xz/message.c:1016
649
msgid ""
736
msgid ""
650
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
737
"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
651
"                      decompressor memory usage into account before using 7-9!"
738
"                      decompressor memory usage into account before using 7-9!"
Lines 653-659 Link Here
653
"  -0 ... -9           壓縮設定檔;預設值為 6;使用 7-9 前請考慮\n"
740
"  -0 ... -9           壓縮設定檔;預設值為 6;使用 7-9 前請考慮\n"
654
"                      壓縮和解壓縮所使用的記憶體!"
741
"                      壓縮和解壓縮所使用的記憶體!"
655
742
656
#: src/xz/message.c:1149
743
#: src/xz/message.c:1020
657
msgid ""
744
msgid ""
658
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
745
"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
659
"                      does not affect decompressor memory requirements"
746
"                      does not affect decompressor memory requirements"
Lines 661-667 Link Here
661
"  -e, --extreme       使用更多 CPU 時間以嘗試改善壓縮比;\n"
748
"  -e, --extreme       使用更多 CPU 時間以嘗試改善壓縮比;\n"
662
"                      不影響解壓縮器的記憶體需求"
749
"                      不影響解壓縮器的記憶體需求"
663
750
664
#: src/xz/message.c:1153
751
#: src/xz/message.c:1024
665
msgid ""
752
msgid ""
666
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
753
"  -T, --threads=NUM   use at most NUM threads; the default is 1; set to 0\n"
667
"                      to use as many threads as there are processor cores"
754
"                      to use as many threads as there are processor cores"
Lines 669-675 Link Here
669
"  -T, --threads=NUM   使用最多 NUM 個執行緒;預設為 1;設成 0 則使用所有的\n"
756
"  -T, --threads=NUM   使用最多 NUM 個執行緒;預設為 1;設成 0 則使用所有的\n"
670
"                      處理機核心"
757
"                      處理機核心"
671
758
672
#: src/xz/message.c:1158
759
#: src/xz/message.c:1029
673
msgid ""
760
msgid ""
674
"      --block-size=SIZE\n"
761
"      --block-size=SIZE\n"
675
"                      start a new .xz block after every SIZE bytes of input;\n"
762
"                      start a new .xz block after every SIZE bytes of input;\n"
Lines 679-692 Link Here
679
"                      輸入每 <大小> 位元組後,開始一個新 .xz 區塊;\n"
766
"                      輸入每 <大小> 位元組後,開始一個新 .xz 區塊;\n"
680
"                      使用此功能以設定多執行緒壓縮的區塊大小"
767
"                      使用此功能以設定多執行緒壓縮的區塊大小"
681
768
682
#: src/xz/message.c:1162
769
#: src/xz/message.c:1033
683
msgid ""
770
msgid ""
684
"      --block-list=SIZES\n"
771
"      --block-list=SIZES\n"
685
"                      start a new .xz block after the given comma-separated\n"
772
"                      start a new .xz block after the given comma-separated\n"
686
"                      intervals of uncompressed data"
773
"                      intervals of uncompressed data"
687
msgstr ""
774
msgstr ""
688
775
689
#: src/xz/message.c:1166
776
#: src/xz/message.c:1037
690
msgid ""
777
msgid ""
691
"      --flush-timeout=TIMEOUT\n"
778
"      --flush-timeout=TIMEOUT\n"
692
"                      when compressing, if more than TIMEOUT milliseconds has\n"
779
"                      when compressing, if more than TIMEOUT milliseconds has\n"
Lines 694-707 Link Here
694
"                      would block, all pending data is flushed out"
781
"                      would block, all pending data is flushed out"
695
msgstr ""
782
msgstr ""
696
783
697
#: src/xz/message.c:1172
784
#: src/xz/message.c:1043
698
#, no-c-format
785
#, fuzzy, no-c-format
786
#| msgid ""
787
#| "      --memlimit-compress=LIMIT\n"
788
#| "      --memlimit-decompress=LIMIT\n"
789
#| "  -M, --memlimit=LIMIT\n"
790
#| "                      set memory usage limit for compression, decompression,\n"
791
#| "                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
699
msgid ""
792
msgid ""
700
"      --memlimit-compress=LIMIT\n"
793
"      --memlimit-compress=LIMIT\n"
701
"      --memlimit-decompress=LIMIT\n"
794
"      --memlimit-decompress=LIMIT\n"
795
"      --memlimit-mt-decompress=LIMIT\n"
702
"  -M, --memlimit=LIMIT\n"
796
"  -M, --memlimit=LIMIT\n"
703
"                      set memory usage limit for compression, decompression,\n"
797
"                      set memory usage limit for compression, decompression,\n"
704
"                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
798
"                      threaded decompression, or all of these; LIMIT is in\n"
799
"                      bytes, % of RAM, or 0 for defaults"
705
msgstr ""
800
msgstr ""
706
"      --memlimit-compress=限制\n"
801
"      --memlimit-compress=限制\n"
707
"      --memlimit-decompress=限制\n"
802
"      --memlimit-decompress=限制\n"
Lines 709-715 Link Here
709
"                      限制壓縮、解壓縮或兩者的記憶體用量上限;\n"
804
"                      限制壓縮、解壓縮或兩者的記憶體用量上限;\n"
710
"                      <限制> 可以是位元組、記憶體百分比 (%)、或 0(預設值)"
805
"                      <限制> 可以是位元組、記憶體百分比 (%)、或 0(預設值)"
711
806
712
#: src/xz/message.c:1179
807
#: src/xz/message.c:1052
713
msgid ""
808
msgid ""
714
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
809
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
715
"                      give an error instead of adjusting the settings downwards"
810
"                      give an error instead of adjusting the settings downwards"
Lines 717-723 Link Here
717
"      --no-adjust     若壓縮設定超過記憶體用量上限,請給出\n"
812
"      --no-adjust     若壓縮設定超過記憶體用量上限,請給出\n"
718
"                      錯誤而非下調設定"
813
"                      錯誤而非下調設定"
719
814
720
#: src/xz/message.c:1185
815
#: src/xz/message.c:1058
721
msgid ""
816
msgid ""
722
"\n"
817
"\n"
723
" Custom filter chain for compression (alternative for using presets):"
818
" Custom filter chain for compression (alternative for using presets):"
Lines 725-731 Link Here
725
"\n"
820
"\n"
726
" 自訂壓縮篩選鏈(使用設定檔時選用):"
821
" 自訂壓縮篩選鏈(使用設定檔時選用):"
727
822
728
#: src/xz/message.c:1194
823
#: src/xz/message.c:1067
729
msgid ""
824
msgid ""
730
"\n"
825
"\n"
731
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
826
"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
Lines 753-766 Link Here
753
"                        mf=名稱    尋找符合搜尋器 (hc3, hc4, bt2, bt3, bt4; bt4)\n"
848
"                        mf=名稱    尋找符合搜尋器 (hc3, hc4, bt2, bt3, bt4; bt4)\n"
754
"                        depth=NUM  最大搜尋深度;0=自動(預設)"
849
"                        depth=NUM  最大搜尋深度;0=自動(預設)"
755
850
756
#: src/xz/message.c:1209
851
#: src/xz/message.c:1082
852
#, fuzzy
853
#| msgid ""
854
#| "\n"
855
#| "  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
856
#| "  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
857
#| "  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
858
#| "  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
859
#| "  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
860
#| "  --sparc[=OPTS]      SPARC BCJ filter\n"
861
#| "                      Valid OPTS for all BCJ filters:\n"
862
#| "                        start=NUM  start offset for conversions (default=0)"
757
msgid ""
863
msgid ""
758
"\n"
864
"\n"
759
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
865
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
866
"  --arm[=OPTS]        ARM BCJ filter\n"
867
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter\n"
868
"  --arm64[=OPTS]      ARM64 BCJ filter\n"
760
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
869
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
761
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
870
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
762
"  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
763
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
764
"  --sparc[=OPTS]      SPARC BCJ filter\n"
871
"  --sparc[=OPTS]      SPARC BCJ filter\n"
765
"                      Valid OPTS for all BCJ filters:\n"
872
"                      Valid OPTS for all BCJ filters:\n"
766
"                        start=NUM  start offset for conversions (default=0)"
873
"                        start=NUM  start offset for conversions (default=0)"
Lines 775-781 Link Here
775
"                      所有 BCJ 篩選器可用的 OPTS:\n"
882
"                      所有 BCJ 篩選器可用的 OPTS:\n"
776
"                        start=NUM  轉換起始位移(預設值=0)"
883
"                        start=NUM  轉換起始位移(預設值=0)"
777
884
778
#: src/xz/message.c:1221
885
#: src/xz/message.c:1095
779
msgid ""
886
msgid ""
780
"\n"
887
"\n"
781
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
888
"  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
Lines 783-789 Link Here
783
"                                   from each other (1-256; 1)"
890
"                                   from each other (1-256; 1)"
784
msgstr ""
891
msgstr ""
785
892
786
#: src/xz/message.c:1229
893
#: src/xz/message.c:1103
787
msgid ""
894
msgid ""
788
"\n"
895
"\n"
789
" Other options:\n"
896
" Other options:\n"
Lines 791-797 Link Here
791
"\n"
898
"\n"
792
" 其他選項:\n"
899
" 其他選項:\n"
793
900
794
#: src/xz/message.c:1232
901
#: src/xz/message.c:1106
795
msgid ""
902
msgid ""
796
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
903
"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
797
"  -v, --verbose       be verbose; specify twice for even more verbose"
904
"  -v, --verbose       be verbose; specify twice for even more verbose"
Lines 799-819 Link Here
799
"  -q, --quiet         隱藏警告訊息;指定兩次也一併隱藏錯誤訊息\n"
906
"  -q, --quiet         隱藏警告訊息;指定兩次也一併隱藏錯誤訊息\n"
800
"  -v, --verbose       輸出較詳細內容;指定兩次更詳細輸出"
907
"  -v, --verbose       輸出較詳細內容;指定兩次更詳細輸出"
801
908
802
#: src/xz/message.c:1237
909
#: src/xz/message.c:1111
803
msgid "  -Q, --no-warn       make warnings not affect the exit status"
910
msgid "  -Q, --no-warn       make warnings not affect the exit status"
804
msgstr "  -Q, --no-warn       即使有警告,退出狀態碼仍不變"
911
msgstr "  -Q, --no-warn       即使有警告,退出狀態碼仍不變"
805
912
806
#: src/xz/message.c:1239
913
#: src/xz/message.c:1113
807
msgid "      --robot         use machine-parsable messages (useful for scripts)"
914
msgid "      --robot         use machine-parsable messages (useful for scripts)"
808
msgstr "      --robot         使用機器可解析訊息(適合用於指令稿)"
915
msgstr "      --robot         使用機器可解析訊息(適合用於指令稿)"
809
916
810
#: src/xz/message.c:1242
917
#: src/xz/message.c:1116
811
msgid ""
918
msgid ""
812
"      --info-memory   display the total amount of RAM and the currently active\n"
919
"      --info-memory   display the total amount of RAM and the currently active\n"
813
"                      memory usage limits, and exit"
920
"                      memory usage limits, and exit"
814
msgstr "      --info-memory   顯示記憶體總量和使用中的記憶體用量限制後退出"
921
msgstr "      --info-memory   顯示記憶體總量和使用中的記憶體用量限制後退出"
815
922
816
#: src/xz/message.c:1245
923
#: src/xz/message.c:1119
817
msgid ""
924
msgid ""
818
"  -h, --help          display the short help (lists only the basic options)\n"
925
"  -h, --help          display the short help (lists only the basic options)\n"
819
"  -H, --long-help     display this long help and exit"
926
"  -H, --long-help     display this long help and exit"
Lines 821-827 Link Here
821
"  -h, --help          顯示較短說明(僅列出基本選項)\n"
928
"  -h, --help          顯示較短說明(僅列出基本選項)\n"
822
"  -H, --long-help     顯示較長說明後退出"
929
"  -H, --long-help     顯示較長說明後退出"
823
930
824
#: src/xz/message.c:1249
931
#: src/xz/message.c:1123
825
msgid ""
932
msgid ""
826
"  -h, --help          display this short help and exit\n"
933
"  -h, --help          display this short help and exit\n"
827
"  -H, --long-help     display the long help (lists also the advanced options)"
934
"  -H, --long-help     display the long help (lists also the advanced options)"
Lines 829-839 Link Here
829
"  -h, --help          顯示較短說明後退出\n"
936
"  -h, --help          顯示較短說明後退出\n"
830
"  -H, --long-help     顯示較長說明(也列出進階選項)"
937
"  -H, --long-help     顯示較長說明(也列出進階選項)"
831
938
832
#: src/xz/message.c:1254
939
#: src/xz/message.c:1128
833
msgid "  -V, --version       display the version number and exit"
940
msgid "  -V, --version       display the version number and exit"
834
msgstr "  -V, --version       顯示版本號碼後退出"
941
msgstr "  -V, --version       顯示版本號碼後退出"
835
942
836
#: src/xz/message.c:1256
943
#: src/xz/message.c:1130
837
msgid ""
944
msgid ""
838
"\n"
945
"\n"
839
"With no FILE, or when FILE is -, read standard input.\n"
946
"With no FILE, or when FILE is -, read standard input.\n"
Lines 845-861 Link Here
845
#. for this package. Please add _another line_ saying
952
#. for this package. Please add _another line_ saying
846
#. "Report translation bugs to <...>\n" with the email or WWW
953
#. "Report translation bugs to <...>\n" with the email or WWW
847
#. address for translation bugs. Thanks.
954
#. address for translation bugs. Thanks.
848
#: src/xz/message.c:1262
955
#: src/xz/message.c:1136
849
#, c-format
956
#, c-format
850
msgid "Report bugs to <%s> (in English or Finnish).\n"
957
msgid "Report bugs to <%s> (in English or Finnish).\n"
851
msgstr "請回報臭蟲至 <%s>(使用英文或芬蘭語)。\n"
958
msgstr "請回報臭蟲至 <%s>(使用英文或芬蘭語)。\n"
852
959
853
#: src/xz/message.c:1264
960
#: src/xz/message.c:1138
854
#, c-format
961
#, c-format
855
msgid "%s home page: <%s>\n"
962
msgid "%s home page: <%s>\n"
856
msgstr "%s 首頁:<%s>\n"
963
msgstr "%s 首頁:<%s>\n"
857
964
858
#: src/xz/message.c:1268
965
#: src/xz/message.c:1142
859
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
966
msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE."
860
msgstr "此為開發版本,不打算在生產環境使用。"
967
msgstr "此為開發版本,不打算在生產環境使用。"
861
968
Lines 883-909 Link Here
883
msgid "The sum of lc and lp must not exceed 4"
990
msgid "The sum of lc and lp must not exceed 4"
884
msgstr "lc 和 lp 的總和不能超過 4"
991
msgstr "lc 和 lp 的總和不能超過 4"
885
992
886
#: src/xz/options.c:359
993
#: src/xz/suffix.c:160
887
#, c-format
994
#, c-format
888
msgid "The selected match finder requires at least nice=%<PRIu32>"
889
msgstr "選取的符合搜尋工具需要至少 nice=%<PRIu32>"
890
891
#: src/xz/suffix.c:133 src/xz/suffix.c:258
892
#, c-format
893
msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
894
msgstr "%s:搭配 --format=raw 時,除非寫入標準輸出,否則需要 --suffix=.SUF"
895
896
#: src/xz/suffix.c:164
897
#, c-format
898
msgid "%s: Filename has an unknown suffix, skipping"
995
msgid "%s: Filename has an unknown suffix, skipping"
899
msgstr "%s:檔名有未知後綴,跳過"
996
msgstr "%s:檔名有未知後綴,跳過"
900
997
901
#: src/xz/suffix.c:185
998
#: src/xz/suffix.c:181
902
#, c-format
999
#, c-format
903
msgid "%s: File already has `%s' suffix, skipping"
1000
msgid "%s: File already has `%s' suffix, skipping"
904
msgstr "%s:檔案已有「%s」後綴,跳過"
1001
msgstr "%s:檔案已有「%s」後綴,跳過"
905
1002
906
#: src/xz/suffix.c:393
1003
#: src/xz/suffix.c:388
907
#, c-format
1004
#, c-format
908
msgid "%s: Invalid filename suffix"
1005
msgid "%s: Invalid filename suffix"
909
msgstr "%s:檔名後綴無效"
1006
msgstr "%s:檔名後綴無效"
Lines 927-941 Link Here
927
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
1024
msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
928
msgstr "選項「%s」的數值必須在 [%<PRIu64>, %<PRIu64>] 範圍內"
1025
msgstr "選項「%s」的數值必須在 [%<PRIu64>, %<PRIu64>] 範圍內"
929
1026
930
#: src/xz/util.c:267
1027
#: src/xz/util.c:269
931
msgid "Empty filename, skipping"
932
msgstr "空檔名,跳過"
933
934
#: src/xz/util.c:281
935
msgid "Compressed data cannot be read from a terminal"
1028
msgid "Compressed data cannot be read from a terminal"
936
msgstr "不能從終端機讀入已壓縮資料"
1029
msgstr "不能從終端機讀入已壓縮資料"
937
1030
938
#: src/xz/util.c:294
1031
#: src/xz/util.c:282
939
msgid "Compressed data cannot be written to a terminal"
1032
msgid "Compressed data cannot be written to a terminal"
940
msgstr "不能將已壓縮資料寫入終端機"
1033
msgstr "不能將已壓縮資料寫入終端機"
941
1034
Lines 952-954 Link Here
952
1045
953
#~ msgid "Sandbox was successfully enabled"
1046
#~ msgid "Sandbox was successfully enabled"
954
#~ msgstr "已成功啟用沙盒"
1047
#~ msgstr "已成功啟用沙盒"
1048
1049
#~ msgid "Memory usage limit for compression:    "
1050
#~ msgstr "壓縮記憶體限制:       "
1051
1052
#, c-format
1053
#~ msgid "  Streams:            %s\n"
1054
#~ msgstr "  串流:         %s\n"
1055
1056
#, c-format
1057
#~ msgid "  Blocks:             %s\n"
1058
#~ msgstr "  區塊:         %s\n"
1059
1060
#, c-format
1061
#~ msgid "  Ratio:              %s\n"
1062
#~ msgstr "  壓縮比:        %s\n"
1063
1064
#, c-format
1065
#~ msgid "  Check:              %s\n"
1066
#~ msgstr "  檢驗碼:        %s\n"
1067
1068
# 下方的文字因排版有一些障礙,因此暫時不理他。
1069
#~ msgid ""
1070
#~ "  Streams:\n"
1071
#~ "    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
1072
#~ msgstr ""
1073
#~ "  串流:\n"
1074
#~ "    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
1075
1076
# 下方的文字因排版有一些障礙,因此暫時不理他。
1077
#, c-format
1078
#~ msgid ""
1079
#~ "  Blocks:\n"
1080
#~ "    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
1081
#~ msgstr ""
1082
#~ "  區塊:\n"
1083
#~ "    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
1084
1085
# 下方的文字因排版有一些障礙,因此暫時不理他。
1086
#, c-format
1087
#~ msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
1088
#~ msgstr "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
1089
1090
#, c-format
1091
#~ msgid "The selected match finder requires at least nice=%<PRIu32>"
1092
#~ msgstr "選取的符合搜尋工具需要至少 nice=%<PRIu32>"
(-)xz-5.2.5/po4a/de.po (-960 / +1328 lines)
Lines 1-13 Link Here
1
# XZ Utils man pages German translation
1
# XZ Utils man pages German translation
2
# This file is put in the public domain.
2
# This file is put in the public domain.
3
#
3
#
4
# Mario Blättermann <mario.blaettermann@gmail.com>, 2015, 2019-2020.
4
# Mario Blättermann <mario.blaettermann@gmail.com>, 2015, 2019-2020, 2022.
5
msgid ""
5
msgid ""
6
msgstr ""
6
msgstr ""
7
"Project-Id-Version: xz 5.2.5\n"
7
"Project-Id-Version: xz-man 5.4.0-pre2\n"
8
"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
8
"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
9
"POT-Creation-Date: 2020-03-17 16:29+0200\n"
9
"POT-Creation-Date: 2023-05-04 22:27+0800\n"
10
"PO-Revision-Date: 2020-02-14 18:40+0100\n"
10
"PO-Revision-Date: 2022-12-07 20:17+0100\n"
11
"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
11
"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
12
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
12
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
13
"Language: de\n"
13
"Language: de\n"
Lines 16-22 Link Here
16
"Content-Transfer-Encoding: 8bit\n"
16
"Content-Transfer-Encoding: 8bit\n"
17
"X-Bugs: Report translation errors to the Language-Team address.\n"
17
"X-Bugs: Report translation errors to the Language-Team address.\n"
18
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
18
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
"X-Generator: Lokalize 19.12.2\n"
19
"X-Generator: Lokalize 22.08.3\n"
20
20
21
#. type: TH
21
#. type: TH
22
#: ../src/xz/xz.1:8
22
#: ../src/xz/xz.1:8
Lines 27-34 Link Here
27
#. type: TH
27
#. type: TH
28
#: ../src/xz/xz.1:8
28
#: ../src/xz/xz.1:8
29
#, no-wrap
29
#, no-wrap
30
msgid "2020-02-01"
30
msgid "2022-12-01"
31
msgstr "1. Februar 2020"
31
msgstr "1. Dezember 2022"
32
32
33
#. type: TH
33
#. type: TH
34
#: ../src/xz/xz.1:8 ../src/xzdec/xzdec.1:7 ../src/lzmainfo/lzmainfo.1:7
34
#: ../src/xz/xz.1:8 ../src/xzdec/xzdec.1:7 ../src/lzmainfo/lzmainfo.1:7
Lines 128-148 Link Here
128
msgstr "BESCHREIBUNG"
128
msgstr "BESCHREIBUNG"
129
129
130
#. type: Plain text
130
#. type: Plain text
131
#: ../src/xz/xz.1:65
131
#: ../src/xz/xz.1:70
132
msgid ""
132
msgid ""
133
"B<xz> is a general-purpose data compression tool with command line syntax "
133
"B<xz> is a general-purpose data compression tool with command line syntax "
134
"similar to B<gzip>(1)  and B<bzip2>(1).  The native file format is the B<."
134
"similar to B<gzip>(1)  and B<bzip2>(1).  The native file format is the B<."
135
"xz> format, but the legacy B<.lzma> format used by LZMA Utils and raw "
135
"xz> format, but the legacy B<.lzma> format used by LZMA Utils and raw "
136
"compressed streams with no container format headers are also supported."
136
"compressed streams with no container format headers are also supported.  In "
137
"addition, decompression of the B<.lz> format used by B<lzip> is supported."
137
msgstr ""
138
msgstr ""
138
"B<xz> ist ein Allzweckwerkzeug zur Datenkompression, dessen "
139
"B<xz> ist ein Allzweckwerkzeug zur Datenkompression, dessen "
139
"Befehlszeilensyntax denen von B<gzip>(1) und B<bzip2>(1) ähnelt. Das native "
140
"Befehlszeilensyntax denen von B<gzip>(1) und B<bzip2>(1) ähnelt. Das native "
140
"Dateiformat ist das B<.xz>-Format, aber das veraltete, von den LZMA-"
141
"Dateiformat ist das B<.xz>-Format, aber das veraltete, von den LZMA-"
141
"Dienstprogrammen verwendete Format sowie komprimierte Rohdatenströme ohne "
142
"Dienstprogrammen verwendete Format sowie komprimierte Rohdatenströme ohne "
142
"Containerformat-Header werden ebenfalls unterstützt."
143
"Containerformat-Header werden ebenfalls unterstützt. Außerdem wird die "
144
"Dekompression des von B<lzip> verwendeten B<.lz>-Formats unterstützt."
143
145
144
#. type: Plain text
146
#. type: Plain text
145
#: ../src/xz/xz.1:87
147
#: ../src/xz/xz.1:92
146
msgid ""
148
msgid ""
147
"B<xz> compresses or decompresses each I<file> according to the selected "
149
"B<xz> compresses or decompresses each I<file> according to the selected "
148
"operation mode.  If no I<files> are given or I<file> is B<->, B<xz> reads "
150
"operation mode.  If no I<files> are given or I<file> is B<->, B<xz> reads "
Lines 161-167 Link Here
161
"diese ein Terminal ist."
163
"diese ein Terminal ist."
162
164
163
#. type: Plain text
165
#. type: Plain text
164
#: ../src/xz/xz.1:97
166
#: ../src/xz/xz.1:102
165
msgid ""
167
msgid ""
166
"Unless B<--stdout> is specified, I<files> other than B<-> are written to a "
168
"Unless B<--stdout> is specified, I<files> other than B<-> are written to a "
167
"new file whose name is derived from the source I<file> name:"
169
"new file whose name is derived from the source I<file> name:"
Lines 171-190 Link Here
171
"(außer wenn B<--stdout> angegeben ist):"
173
"(außer wenn B<--stdout> angegeben ist):"
172
174
173
#. type: IP
175
#. type: IP
174
#: ../src/xz/xz.1:97 ../src/xz/xz.1:103 ../src/xz/xz.1:127 ../src/xz/xz.1:132
176
#: ../src/xz/xz.1:102 ../src/xz/xz.1:108 ../src/xz/xz.1:133 ../src/xz/xz.1:138
175
#: ../src/xz/xz.1:135 ../src/xz/xz.1:138 ../src/xz/xz.1:154 ../src/xz/xz.1:395
177
#: ../src/xz/xz.1:141 ../src/xz/xz.1:144 ../src/xz/xz.1:160 ../src/xz/xz.1:421
176
#: ../src/xz/xz.1:398 ../src/xz/xz.1:405 ../src/xz/xz.1:621 ../src/xz/xz.1:623
178
#: ../src/xz/xz.1:424 ../src/xz/xz.1:431 ../src/xz/xz.1:676 ../src/xz/xz.1:678
177
#: ../src/xz/xz.1:722 ../src/xz/xz.1:733 ../src/xz/xz.1:742 ../src/xz/xz.1:750
179
#: ../src/xz/xz.1:777 ../src/xz/xz.1:788 ../src/xz/xz.1:797 ../src/xz/xz.1:805
178
#: ../src/xz/xz.1:965 ../src/xz/xz.1:974 ../src/xz/xz.1:986 ../src/xz/xz.1:1552
180
#: ../src/xz/xz.1:1033 ../src/xz/xz.1:1042 ../src/xz/xz.1:1054
179
#: ../src/xz/xz.1:1558 ../src/xz/xz.1:1674 ../src/xz/xz.1:1678
181
#: ../src/xz/xz.1:1729 ../src/xz/xz.1:1735 ../src/xz/xz.1:1853
180
#: ../src/xz/xz.1:1681 ../src/xz/xz.1:1684 ../src/xz/xz.1:1688
182
#: ../src/xz/xz.1:1857 ../src/xz/xz.1:1860 ../src/xz/xz.1:1863
181
#: ../src/xz/xz.1:1695 ../src/xz/xz.1:1697
183
#: ../src/xz/xz.1:1867 ../src/xz/xz.1:1874 ../src/xz/xz.1:1876
182
#, no-wrap
184
#, no-wrap
183
msgid "\\(bu"
185
msgid "\\(bu"
184
msgstr "\\(bu"
186
msgstr "\\(bu"
185
187
186
#. type: Plain text
188
#. type: Plain text
187
#: ../src/xz/xz.1:103
189
#: ../src/xz/xz.1:108
188
msgid ""
190
msgid ""
189
"When compressing, the suffix of the target file format (B<.xz> or B<.lzma>)  "
191
"When compressing, the suffix of the target file format (B<.xz> or B<.lzma>)  "
190
"is appended to the source filename to get the target filename."
192
"is appended to the source filename to get the target filename."
Lines 194-211 Link Here
194
"Zieldatei gebildet."
196
"Zieldatei gebildet."
195
197
196
#. type: Plain text
198
#. type: Plain text
197
#: ../src/xz/xz.1:117
199
#: ../src/xz/xz.1:123
198
msgid ""
200
msgid ""
199
"When decompressing, the B<.xz> or B<.lzma> suffix is removed from the "
201
"When decompressing, the B<.xz>, B<.lzma>, or B<.lz> suffix is removed from "
200
"filename to get the target filename.  B<xz> also recognizes the suffixes B<."
202
"the filename to get the target filename.  B<xz> also recognizes the suffixes "
201
"txz> and B<.tlz>, and replaces them with the B<.tar> suffix."
203
"B<.txz> and B<.tlz>, and replaces them with the B<.tar> suffix."
202
msgstr ""
204
msgstr ""
203
"Bei der Dekompression wird das Suffix B<.xz> oder B<.lzma> vom Dateinamen "
205
"Bei der Dekompression wird das Suffix B<.xz>, B<.lzma> oder B<.lz> vom "
204
"entfernt und so der Name der Zieldatei gebildet. Außerdem erkennt B<xz> die "
206
"Dateinamen entfernt und so der Name der Zieldatei gebildet. Außerdem erkennt "
205
"Suffixe B<.txz> und B<.tlz> und ersetzt diese durch B<.tar>."
207
"B<xz> die Suffixe B<.txz> und B<.tlz> und ersetzt diese durch B<.tar>."
206
208
207
#. type: Plain text
209
#. type: Plain text
208
#: ../src/xz/xz.1:121
210
#: ../src/xz/xz.1:127
209
msgid ""
211
msgid ""
210
"If the target file already exists, an error is displayed and the I<file> is "
212
"If the target file already exists, an error is displayed and the I<file> is "
211
"skipped."
213
"skipped."
Lines 214-220 Link Here
214
"die I<Datei> übersprungen."
216
"die I<Datei> übersprungen."
215
217
216
#. type: Plain text
218
#. type: Plain text
217
#: ../src/xz/xz.1:127
219
#: ../src/xz/xz.1:133
218
msgid ""
220
msgid ""
219
"Unless writing to standard output, B<xz> will display a warning and skip the "
221
"Unless writing to standard output, B<xz> will display a warning and skip the "
220
"I<file> if any of the following applies:"
222
"I<file> if any of the following applies:"
Lines 223-229 Link Here
223
"überspringt die I<Datei>, wenn eine der folgenden Bedingungen zutreffend ist:"
225
"überspringt die I<Datei>, wenn eine der folgenden Bedingungen zutreffend ist:"
224
226
225
#. type: Plain text
227
#. type: Plain text
226
#: ../src/xz/xz.1:132
228
#: ../src/xz/xz.1:138
227
msgid ""
229
msgid ""
228
"I<File> is not a regular file.  Symbolic links are not followed, and thus "
230
"I<File> is not a regular file.  Symbolic links are not followed, and thus "
229
"they are not considered to be regular files."
231
"they are not considered to be regular files."
Lines 232-249 Link Here
232
"gefolgt und daher nicht zu den regulären Dateien gezählt."
234
"gefolgt und daher nicht zu den regulären Dateien gezählt."
233
235
234
#. type: Plain text
236
#. type: Plain text
235
#: ../src/xz/xz.1:135
237
#: ../src/xz/xz.1:141
236
msgid "I<File> has more than one hard link."
238
msgid "I<File> has more than one hard link."
237
msgstr "Die I<Datei> hat mehr als eine harte Verknüpfung."
239
msgstr "Die I<Datei> hat mehr als eine harte Verknüpfung."
238
240
239
#. type: Plain text
241
#. type: Plain text
240
#: ../src/xz/xz.1:138
242
#: ../src/xz/xz.1:144
241
msgid "I<File> has setuid, setgid, or sticky bit set."
243
msgid "I<File> has setuid, setgid, or sticky bit set."
242
msgstr ""
244
msgstr ""
243
"Für die I<Datei> ist das »setuid«-, »setgid«- oder »sticky«-Bit gesetzt."
245
"Für die I<Datei> ist das »setuid«-, »setgid«- oder »sticky«-Bit gesetzt."
244
246
245
#. type: Plain text
247
#. type: Plain text
246
#: ../src/xz/xz.1:154
248
#: ../src/xz/xz.1:160
247
msgid ""
249
msgid ""
248
"The operation mode is set to compress and the I<file> already has a suffix "
250
"The operation mode is set to compress and the I<file> already has a suffix "
249
"of the target file format (B<.xz> or B<.txz> when compressing to the B<.xz> "
251
"of the target file format (B<.xz> or B<.txz> when compressing to the B<.xz> "
Lines 255-272 Link Here
255
"lzma>-Format)."
257
"lzma>-Format)."
256
258
257
#. type: Plain text
259
#. type: Plain text
258
#: ../src/xz/xz.1:163
260
#: ../src/xz/xz.1:170
259
msgid ""
261
msgid ""
260
"The operation mode is set to decompress and the I<file> doesn't have a "
262
"The operation mode is set to decompress and the I<file> doesn't have a "
261
"suffix of any of the supported file formats (B<.xz>, B<.txz>, B<.lzma>, or "
263
"suffix of any of the supported file formats (B<.xz>, B<.txz>, B<.lzma>, B<."
262
"B<.tlz>)."
264
"tlz>, or B<.lz>)."
263
msgstr ""
265
msgstr ""
264
"Der Aktionsmodus wird auf Dekompression gesetzt und die I<Datei> hat nicht "
266
"Der Aktionsmodus wird auf Dekompression gesetzt und die I<Datei> hat nicht "
265
"das Suffix eines der unterstützten Zieldateiformate (B<.xz>, B<.txz>, B<."
267
"das Suffix eines der unterstützten Zieldateiformate (B<.xz>, B<.txz>, B<."
266
"lzma> oder B<.tlz>)."
268
"lzma>, B<.tlz> oder B<.lz>)."
267
269
268
#. type: Plain text
270
#. type: Plain text
269
#: ../src/xz/xz.1:178
271
#: ../src/xz/xz.1:185
270
msgid ""
272
msgid ""
271
"After successfully compressing or decompressing the I<file>, B<xz> copies "
273
"After successfully compressing or decompressing the I<file>, B<xz> copies "
272
"the owner, group, permissions, access time, and modification time from the "
274
"the owner, group, permissions, access time, and modification time from the "
Lines 286-304 Link Here
286
"unterstützt."
288
"unterstützt."
287
289
288
#. type: Plain text
290
#. type: Plain text
289
#: ../src/xz/xz.1:187
291
#: ../src/xz/xz.1:195
290
msgid ""
292
msgid ""
291
"Once the target file has been successfully closed, the source I<file> is "
293
"Once the target file has been successfully closed, the source I<file> is "
292
"removed unless B<--keep> was specified.  The source I<file> is never removed "
294
"removed unless B<--keep> was specified.  The source I<file> is never removed "
293
"if the output is written to standard output."
295
"if the output is written to standard output or if an error occurs."
294
msgstr ""
296
msgstr ""
295
"Sobald die Zieldatei erfolgreich geschlossen wurde, wird die Ursprungs-"
297
"Sobald die Zieldatei erfolgreich geschlossen wurde, wird die Ursprungs-"
296
"I<Datei> entfernt. Dies wird durch die Option B<--keep> verhindert. Die "
298
"I<Datei> entfernt. Dies wird durch die Option B<--keep> verhindert. Die "
297
"Ursprungs-I<Datei> wird niemals entfernt, wenn die Ausgabe in die "
299
"Ursprungs-I<Datei> wird niemals entfernt, wenn die Ausgabe in die "
298
"Standardausgabe geschrieben wird."
300
"Standardausgabe geschrieben wird oder falls ein Fehler auftritt."
299
301
300
#. type: Plain text
302
#. type: Plain text
301
#: ../src/xz/xz.1:199
303
#: ../src/xz/xz.1:207
302
msgid ""
304
msgid ""
303
"Sending B<SIGINFO> or B<SIGUSR1> to the B<xz> process makes it print "
305
"Sending B<SIGINFO> or B<SIGUSR1> to the B<xz> process makes it print "
304
"progress information to standard error.  This has only limited use since "
306
"progress information to standard error.  This has only limited use since "
Lines 312-324 Link Here
312
"automatisch aktualisierter Fortschrittsanzeiger angezeigt."
314
"automatisch aktualisierter Fortschrittsanzeiger angezeigt."
313
315
314
#. type: SS
316
#. type: SS
315
#: ../src/xz/xz.1:200
317
#: ../src/xz/xz.1:208
316
#, no-wrap
318
#, no-wrap
317
msgid "Memory usage"
319
msgid "Memory usage"
318
msgstr "Speicherbedarf"
320
msgstr "Speicherbedarf"
319
321
320
#. type: Plain text
322
#. type: Plain text
321
#: ../src/xz/xz.1:216
323
#: ../src/xz/xz.1:224
322
msgid ""
324
msgid ""
323
"The memory usage of B<xz> varies from a few hundred kilobytes to several "
325
"The memory usage of B<xz> varies from a few hundred kilobytes to several "
324
"gigabytes depending on the compression settings.  The settings used when "
326
"gigabytes depending on the compression settings.  The settings used when "
Lines 330-336 Link Here
330
"gigabytes of memory to decompress."
332
"gigabytes of memory to decompress."
331
msgstr ""
333
msgstr ""
332
"In Abhängigkeit von den gewählten Kompressionseinstellungen bewegt sich der "
334
"In Abhängigkeit von den gewählten Kompressionseinstellungen bewegt sich der "
333
"Speicherverbrauch zwischen wenigen hundert Kilobyte und mehrere Gigabyte. "
335
"Speicherverbrauch zwischen wenigen hundert Kilobyte und mehreren Gigabyte. "
334
"Die Einstellungen bei der Kompression einer Datei bestimmen dabei den "
336
"Die Einstellungen bei der Kompression einer Datei bestimmen dabei den "
335
"Speicherbedarf bei der Dekompression. Die Dekompression benötigt "
337
"Speicherbedarf bei der Dekompression. Die Dekompression benötigt "
336
"üblicherweise zwischen 5\\ % und 20\\ % des Speichers, der bei der "
338
"üblicherweise zwischen 5\\ % und 20\\ % des Speichers, der bei der "
Lines 341-354 Link Here
341
343
342
# cripple → lahmlegen...? War mir hier zu sehr Straßenslang.
344
# cripple → lahmlegen...? War mir hier zu sehr Straßenslang.
343
#. type: Plain text
345
#. type: Plain text
344
#: ../src/xz/xz.1:228
346
#: ../src/xz/xz.1:236
345
msgid ""
347
msgid ""
346
"Especially users of older systems may find the possibility of very large "
348
"Especially users of older systems may find the possibility of very large "
347
"memory usage annoying.  To prevent uncomfortable surprises, B<xz> has a "
349
"memory usage annoying.  To prevent uncomfortable surprises, B<xz> has a "
348
"built-in memory usage limiter, which is disabled by default.  While some "
350
"built-in memory usage limiter, which is disabled by default.  While some "
349
"operating systems provide ways to limit the memory usage of processes, "
351
"operating systems provide ways to limit the memory usage of processes, "
350
"relying on it wasn't deemed to be flexible enough (e.g. using B<ulimit>(1)  "
352
"relying on it wasn't deemed to be flexible enough (for example, using "
351
"to limit virtual memory tends to cripple B<mmap>(2))."
353
"B<ulimit>(1)  to limit virtual memory tends to cripple B<mmap>(2))."
352
msgstr ""
354
msgstr ""
353
"Insbesondere für Benutzer älterer Systeme wird eventuell ein sehr großer "
355
"Insbesondere für Benutzer älterer Systeme wird eventuell ein sehr großer "
354
"Speicherbedarf ärgerlich sein. Um unangenehme Überraschungen zu vermeiden, "
356
"Speicherbedarf ärgerlich sein. Um unangenehme Überraschungen zu vermeiden, "
Lines 360-370 Link Here
360
"beeinträchtigen)."
362
"beeinträchtigen)."
361
363
362
#. type: Plain text
364
#. type: Plain text
363
#: ../src/xz/xz.1:248
365
#: ../src/xz/xz.1:258
364
msgid ""
366
msgid ""
365
"The memory usage limiter can be enabled with the command line option B<--"
367
"The memory usage limiter can be enabled with the command line option B<--"
366
"memlimit=>I<limit>.  Often it is more convenient to enable the limiter by "
368
"memlimit=>I<limit>.  Often it is more convenient to enable the limiter by "
367
"default by setting the environment variable B<XZ_DEFAULTS>, e.g.\\& "
369
"default by setting the environment variable B<XZ_DEFAULTS>, for example, "
368
"B<XZ_DEFAULTS=--memlimit=150MiB>.  It is possible to set the limits "
370
"B<XZ_DEFAULTS=--memlimit=150MiB>.  It is possible to set the limits "
369
"separately for compression and decompression by using B<--memlimit-"
371
"separately for compression and decompression by using B<--memlimit-"
370
"compress=>I<limit> and B<--memlimit-decompress=>I<limit>.  Using these two "
372
"compress=>I<limit> and B<--memlimit-decompress=>I<limit>.  Using these two "
Lines 386-392 Link Here
386
"in der Befehlszeile eingeben."
388
"in der Befehlszeile eingeben."
387
389
388
#. type: Plain text
390
#. type: Plain text
389
#: ../src/xz/xz.1:265
391
#: ../src/xz/xz.1:277
390
msgid ""
392
msgid ""
391
"If the specified memory usage limit is exceeded when decompressing, B<xz> "
393
"If the specified memory usage limit is exceeded when decompressing, B<xz> "
392
"will display an error and decompressing the file will fail.  If the limit is "
394
"will display an error and decompressing the file will fail.  If the limit is "
Lines 394-402 Link Here
394
"the limit is no longer exceeded (except when using B<--format=raw> or B<--no-"
396
"the limit is no longer exceeded (except when using B<--format=raw> or B<--no-"
395
"adjust>).  This way the operation won't fail unless the limit is very "
397
"adjust>).  This way the operation won't fail unless the limit is very "
396
"small.  The scaling of the settings is done in steps that don't match the "
398
"small.  The scaling of the settings is done in steps that don't match the "
397
"compression level presets, e.g. if the limit is only slightly less than the "
399
"compression level presets, for example, if the limit is only slightly less "
398
"amount required for B<xz -9>, the settings will be scaled down only a "
400
"than the amount required for B<xz -9>, the settings will be scaled down only "
399
"little, not all the way down to B<xz -8>."
401
"a little, not all the way down to B<xz -8>."
400
msgstr ""
402
msgstr ""
401
"Wenn die angegebene Speicherbegrenzung bei der Dekompression überschritten "
403
"Wenn die angegebene Speicherbegrenzung bei der Dekompression überschritten "
402
"wird, schlägt der Vorgang fehl und B<xz> zeigt eine Fehlermeldung an. Wird "
404
"wird, schlägt der Vorgang fehl und B<xz> zeigt eine Fehlermeldung an. Wird "
Lines 411-423 Link Here
411
"nicht vollständig herunter zu den Werten für B<xz -8>"
413
"nicht vollständig herunter zu den Werten für B<xz -8>"
412
414
413
#. type: SS
415
#. type: SS
414
#: ../src/xz/xz.1:266
416
#: ../src/xz/xz.1:278
415
#, no-wrap
417
#, no-wrap
416
msgid "Concatenation and padding with .xz files"
418
msgid "Concatenation and padding with .xz files"
417
msgstr "Verkettung und Auffüllung von .xz-Dateien"
419
msgstr "Verkettung und Auffüllung von .xz-Dateien"
418
420
419
#. type: Plain text
421
#. type: Plain text
420
#: ../src/xz/xz.1:274
422
#: ../src/xz/xz.1:286
421
msgid ""
423
msgid ""
422
"It is possible to concatenate B<.xz> files as is.  B<xz> will decompress "
424
"It is possible to concatenate B<.xz> files as is.  B<xz> will decompress "
423
"such files as if they were a single B<.xz> file."
425
"such files as if they were a single B<.xz> file."
Lines 426-437 Link Here
426
"von B<xz> genauso dekomprimiert wie eine einzelne B<.xz>-Datei."
428
"von B<xz> genauso dekomprimiert wie eine einzelne B<.xz>-Datei."
427
429
428
#. type: Plain text
430
#. type: Plain text
429
#: ../src/xz/xz.1:283
431
#: ../src/xz/xz.1:295
430
msgid ""
432
msgid ""
431
"It is possible to insert padding between the concatenated parts or after the "
433
"It is possible to insert padding between the concatenated parts or after the "
432
"last part.  The padding must consist of null bytes and the size of the "
434
"last part.  The padding must consist of null bytes and the size of the "
433
"padding must be a multiple of four bytes.  This can be useful e.g. if the B<."
435
"padding must be a multiple of four bytes.  This can be useful, for example, "
434
"xz> file is stored on a medium that measures file sizes in 512-byte blocks."
436
"if the B<.xz> file is stored on a medium that measures file sizes in 512-"
437
"byte blocks."
435
msgstr ""
438
msgstr ""
436
"Es ist weiterhin möglich, eine Auffüllung zwischen den verketteten Teilen "
439
"Es ist weiterhin möglich, eine Auffüllung zwischen den verketteten Teilen "
437
"oder nach dem letzten Teil einzufügen. Die Auffüllung muss aus Null-Bytes "
440
"oder nach dem letzten Teil einzufügen. Die Auffüllung muss aus Null-Bytes "
Lines 441-447 Link Here
441
"Blöcken speichert."
444
"Blöcken speichert."
442
445
443
#. type: Plain text
446
#. type: Plain text
444
#: ../src/xz/xz.1:287
447
#: ../src/xz/xz.1:299
445
msgid ""
448
msgid ""
446
"Concatenation and padding are not allowed with B<.lzma> files or raw streams."
449
"Concatenation and padding are not allowed with B<.lzma> files or raw streams."
447
msgstr ""
450
msgstr ""
Lines 449-467 Link Here
449
"nicht erlaubt."
452
"nicht erlaubt."
450
453
451
#. type: SH
454
#. type: SH
452
#: ../src/xz/xz.1:288 ../src/xzdec/xzdec.1:61
455
#: ../src/xz/xz.1:300 ../src/xzdec/xzdec.1:61
453
#, no-wrap
456
#, no-wrap
454
msgid "OPTIONS"
457
msgid "OPTIONS"
455
msgstr "OPTIONEN"
458
msgstr "OPTIONEN"
456
459
457
#. type: SS
460
#. type: SS
458
#: ../src/xz/xz.1:290
461
#: ../src/xz/xz.1:302
459
#, no-wrap
462
#, no-wrap
460
msgid "Integer suffixes and special values"
463
msgid "Integer suffixes and special values"
461
msgstr "Ganzzahlige Suffixe und spezielle Werte"
464
msgstr "Ganzzahlige Suffixe und spezielle Werte"
462
465
463
#. type: Plain text
466
#. type: Plain text
464
#: ../src/xz/xz.1:294
467
#: ../src/xz/xz.1:306
465
msgid ""
468
msgid ""
466
"In most places where an integer argument is expected, an optional suffix is "
469
"In most places where an integer argument is expected, an optional suffix is "
467
"supported to easily indicate large integers.  There must be no space between "
470
"supported to easily indicate large integers.  There must be no space between "
Lines 472-484 Link Here
472
"Ganzzahl und dem Suffix dürfen sich keine Leerzeichen befinden."
475
"Ganzzahl und dem Suffix dürfen sich keine Leerzeichen befinden."
473
476
474
#. type: TP
477
#. type: TP
475
#: ../src/xz/xz.1:294
478
#: ../src/xz/xz.1:306
476
#, no-wrap
479
#, no-wrap
477
msgid "B<KiB>"
480
msgid "B<KiB>"
478
msgstr "B<KiB>"
481
msgstr "B<KiB>"
479
482
480
#. type: Plain text
483
#. type: Plain text
481
#: ../src/xz/xz.1:305
484
#: ../src/xz/xz.1:317
482
msgid ""
485
msgid ""
483
"Multiply the integer by 1,024 (2^10).  B<Ki>, B<k>, B<kB>, B<K>, and B<KB> "
486
"Multiply the integer by 1,024 (2^10).  B<Ki>, B<k>, B<kB>, B<K>, and B<KB> "
484
"are accepted as synonyms for B<KiB>."
487
"are accepted as synonyms for B<KiB>."
Lines 487-499 Link Here
487
"B<KB> werden als Synonyme für B<KiB> akzeptiert."
490
"B<KB> werden als Synonyme für B<KiB> akzeptiert."
488
491
489
#. type: TP
492
#. type: TP
490
#: ../src/xz/xz.1:305
493
#: ../src/xz/xz.1:317
491
#, no-wrap
494
#, no-wrap
492
msgid "B<MiB>"
495
msgid "B<MiB>"
493
msgstr "B<MiB>"
496
msgstr "B<MiB>"
494
497
495
#. type: Plain text
498
#. type: Plain text
496
#: ../src/xz/xz.1:315
499
#: ../src/xz/xz.1:327
497
msgid ""
500
msgid ""
498
"Multiply the integer by 1,048,576 (2^20).  B<Mi>, B<m>, B<M>, and B<MB> are "
501
"Multiply the integer by 1,048,576 (2^20).  B<Mi>, B<m>, B<M>, and B<MB> are "
499
"accepted as synonyms for B<MiB>."
502
"accepted as synonyms for B<MiB>."
Lines 502-514 Link Here
502
"werden als Synonyme für B<MiB> akzeptiert."
505
"werden als Synonyme für B<MiB> akzeptiert."
503
506
504
#. type: TP
507
#. type: TP
505
#: ../src/xz/xz.1:315
508
#: ../src/xz/xz.1:327
506
#, no-wrap
509
#, no-wrap
507
msgid "B<GiB>"
510
msgid "B<GiB>"
508
msgstr "B<GiB>"
511
msgstr "B<GiB>"
509
512
510
#. type: Plain text
513
#. type: Plain text
511
#: ../src/xz/xz.1:325
514
#: ../src/xz/xz.1:337
512
msgid ""
515
msgid ""
513
"Multiply the integer by 1,073,741,824 (2^30).  B<Gi>, B<g>, B<G>, and B<GB> "
516
"Multiply the integer by 1,073,741,824 (2^30).  B<Gi>, B<g>, B<G>, and B<GB> "
514
"are accepted as synonyms for B<GiB>."
517
"are accepted as synonyms for B<GiB>."
Lines 517-523 Link Here
517
"B<GB> werden als Synonyme für B<GiB> akzeptiert."
520
"B<GB> werden als Synonyme für B<GiB> akzeptiert."
518
521
519
#. type: Plain text
522
#. type: Plain text
520
#: ../src/xz/xz.1:330
523
#: ../src/xz/xz.1:342
521
msgid ""
524
msgid ""
522
"The special value B<max> can be used to indicate the maximum integer value "
525
"The special value B<max> can be used to indicate the maximum integer value "
523
"supported by the option."
526
"supported by the option."
Lines 526-538 Link Here
526
"jeweiligen Option akzeptierten maximalen Ganzzahlwert anzugeben."
529
"jeweiligen Option akzeptierten maximalen Ganzzahlwert anzugeben."
527
530
528
#. type: SS
531
#. type: SS
529
#: ../src/xz/xz.1:331
532
#: ../src/xz/xz.1:343
530
#, no-wrap
533
#, no-wrap
531
msgid "Operation mode"
534
msgid "Operation mode"
532
msgstr "Aktionsmodus"
535
msgstr "Aktionsmodus"
533
536
534
#. type: Plain text
537
#. type: Plain text
535
#: ../src/xz/xz.1:334
538
#: ../src/xz/xz.1:346
536
msgid ""
539
msgid ""
537
"If multiple operation mode options are given, the last one takes effect."
540
"If multiple operation mode options are given, the last one takes effect."
538
msgstr ""
541
msgstr ""
Lines 540-552 Link Here
540
"verwendet."
543
"verwendet."
541
544
542
#. type: TP
545
#. type: TP
543
#: ../src/xz/xz.1:334
546
#: ../src/xz/xz.1:346
544
#, no-wrap
547
#, no-wrap
545
msgid "B<-z>, B<--compress>"
548
msgid "B<-z>, B<--compress>"
546
msgstr "B<-z>, B<--compress>"
549
msgstr "B<-z>, B<--compress>"
547
550
548
#. type: Plain text
551
#. type: Plain text
549
#: ../src/xz/xz.1:343
552
#: ../src/xz/xz.1:355
550
msgid ""
553
msgid ""
551
"Compress.  This is the default operation mode when no operation mode option "
554
"Compress.  This is the default operation mode when no operation mode option "
552
"is specified and no other operation mode is implied from the command name "
555
"is specified and no other operation mode is implied from the command name "
Lines 557-580 Link Here
557
"werden kann (der Befehl B<unxz> impliziert zum Beispiel B<--decompress>)."
560
"werden kann (der Befehl B<unxz> impliziert zum Beispiel B<--decompress>)."
558
561
559
#. type: TP
562
#. type: TP
560
#: ../src/xz/xz.1:343 ../src/xzdec/xzdec.1:62
563
#: ../src/xz/xz.1:355 ../src/xzdec/xzdec.1:62
561
#, no-wrap
564
#, no-wrap
562
msgid "B<-d>, B<--decompress>, B<--uncompress>"
565
msgid "B<-d>, B<--decompress>, B<--uncompress>"
563
msgstr "B<-d>, B<--decompress>, B<--uncompress>"
566
msgstr "B<-d>, B<--decompress>, B<--uncompress>"
564
567
565
#. type: Plain text
568
#. type: Plain text
566
#: ../src/xz/xz.1:346
569
#: ../src/xz/xz.1:358
567
msgid "Decompress."
570
msgid "Decompress."
568
msgstr "dekomprimpiert."
571
msgstr "dekomprimpiert."
569
572
570
#. type: TP
573
#. type: TP
571
#: ../src/xz/xz.1:346
574
#: ../src/xz/xz.1:358
572
#, no-wrap
575
#, no-wrap
573
msgid "B<-t>, B<--test>"
576
msgid "B<-t>, B<--test>"
574
msgstr "B<-t>, B<--test>"
577
msgstr "B<-t>, B<--test>"
575
578
576
#. type: Plain text
579
#. type: Plain text
577
#: ../src/xz/xz.1:355
580
#: ../src/xz/xz.1:367
578
msgid ""
581
msgid ""
579
"Test the integrity of compressed I<files>.  This option is equivalent to B<--"
582
"Test the integrity of compressed I<files>.  This option is equivalent to B<--"
580
"decompress --stdout> except that the decompressed data is discarded instead "
583
"decompress --stdout> except that the decompressed data is discarded instead "
Lines 586-598 Link Here
586
"werden keine Dateien erstellt oder entfernt."
589
"werden keine Dateien erstellt oder entfernt."
587
590
588
#. type: TP
591
#. type: TP
589
#: ../src/xz/xz.1:355
592
#: ../src/xz/xz.1:367
590
#, no-wrap
593
#, no-wrap
591
msgid "B<-l>, B<--list>"
594
msgid "B<-l>, B<--list>"
592
msgstr "B<-l>, B<--list>"
595
msgstr "B<-l>, B<--list>"
593
596
594
#. type: Plain text
597
#. type: Plain text
595
#: ../src/xz/xz.1:364
598
#: ../src/xz/xz.1:376
596
msgid ""
599
msgid ""
597
"Print information about compressed I<files>.  No uncompressed output is "
600
"Print information about compressed I<files>.  No uncompressed output is "
598
"produced, and no files are created or removed.  In list mode, the program "
601
"produced, and no files are created or removed.  In list mode, the program "
Lines 605-618 Link Here
605
"Standardeingabe oder anderen nicht durchsuchbaren Quellen lesen."
608
"Standardeingabe oder anderen nicht durchsuchbaren Quellen lesen."
606
609
607
#. type: Plain text
610
#. type: Plain text
608
#: ../src/xz/xz.1:379
611
#: ../src/xz/xz.1:391
609
msgid ""
612
msgid ""
610
"The default listing shows basic information about I<files>, one file per "
613
"The default listing shows basic information about I<files>, one file per "
611
"line.  To get more detailed information, use also the B<--verbose> option.  "
614
"line.  To get more detailed information, use also the B<--verbose> option.  "
612
"For even more information, use B<--verbose> twice, but note that this may be "
615
"For even more information, use B<--verbose> twice, but note that this may be "
613
"slow, because getting all the extra information requires many seeks.  The "
616
"slow, because getting all the extra information requires many seeks.  The "
614
"width of verbose output exceeds 80 characters, so piping the output to e.g."
617
"width of verbose output exceeds 80 characters, so piping the output to, for "
615
"\\& B<less\\ -S> may be convenient if the terminal isn't wide enough."
618
"example, B<less\\ -S> may be convenient if the terminal isn't wide enough."
616
msgstr ""
619
msgstr ""
617
"Die Liste zeigt in der Standardeinstellung grundlegende Informationen zu den "
620
"Die Liste zeigt in der Standardeinstellung grundlegende Informationen zu den "
618
"I<Dateien> an, zeilenweise pro Datei. Detailliertere Informationen erhalten "
621
"I<Dateien> an, zeilenweise pro Datei. Detailliertere Informationen erhalten "
Lines 625-631 Link Here
625
"Terminal nicht breit genug ist."
628
"Terminal nicht breit genug ist."
626
629
627
#. type: Plain text
630
#. type: Plain text
628
#: ../src/xz/xz.1:386
631
#: ../src/xz/xz.1:398
629
msgid ""
632
msgid ""
630
"The exact output may vary between B<xz> versions and different locales.  For "
633
"The exact output may vary between B<xz> versions and different locales.  For "
631
"machine-readable output, B<--robot --list> should be used."
634
"machine-readable output, B<--robot --list> should be used."
Lines 635-669 Link Here
635
"Ausgabe gewünscht ist, dann sollten Sie B<--robot --list> verwenden."
638
"Ausgabe gewünscht ist, dann sollten Sie B<--robot --list> verwenden."
636
639
637
#. type: SS
640
#. type: SS
638
#: ../src/xz/xz.1:387
641
#: ../src/xz/xz.1:399
639
#, no-wrap
642
#, no-wrap
640
msgid "Operation modifiers"
643
msgid "Operation modifiers"
641
msgstr "Aktionsattribute"
644
msgstr "Aktionsattribute"
642
645
643
#. type: TP
646
#. type: TP
644
#: ../src/xz/xz.1:388 ../src/xzdec/xzdec.1:69
647
#: ../src/xz/xz.1:400 ../src/xzdec/xzdec.1:69
645
#, no-wrap
648
#, no-wrap
646
msgid "B<-k>, B<--keep>"
649
msgid "B<-k>, B<--keep>"
647
msgstr "B<-k>, B<--keep>"
650
msgstr "B<-k>, B<--keep>"
648
651
649
#. type: Plain text
652
#. type: Plain text
650
#: ../src/xz/xz.1:391
653
#: ../src/xz/xz.1:403
651
msgid "Don't delete the input files."
654
msgid "Don't delete the input files."
652
msgstr "verhindert das Löschen der Eingabedateien."
655
msgstr "verhindert das Löschen der Eingabedateien."
653
656
657
#. type: Plain text
658
#: ../src/xz/xz.1:417
659
msgid ""
660
"Since B<xz> 5.2.6, this option also makes B<xz> compress or decompress even "
661
"if the input is a symbolic link to a regular file, has more than one hard "
662
"link, or has the setuid, setgid, or sticky bit set.  The setuid, setgid, and "
663
"sticky bits are not copied to the target file.  In earlier versions this was "
664
"only done with B<--force>."
665
msgstr ""
666
"Seit der B<xz>-Version 5.2.6 wird die Kompression oder Dekompression auch "
667
"dann ausgeführt, wenn die Eingabe ein symbolischer Link zu einer regulären "
668
"Datei ist, mehr als einen harten Link hat oder das »setuid«-, »setgid«- oder "
669
"»sticky«-Bit gesetzt ist. Die genannten Bits werden nicht in die Zieldatei "
670
"kopiert. In früheren Versionen geschah dies nur mit B<--force>."
671
654
#. type: TP
672
#. type: TP
655
#: ../src/xz/xz.1:391
673
#: ../src/xz/xz.1:417
656
#, no-wrap
674
#, no-wrap
657
msgid "B<-f>, B<--force>"
675
msgid "B<-f>, B<--force>"
658
msgstr "B<-f>, B<--force>"
676
msgstr "B<-f>, B<--force>"
659
677
660
#. type: Plain text
678
#. type: Plain text
661
#: ../src/xz/xz.1:394
679
#: ../src/xz/xz.1:420
662
msgid "This option has several effects:"
680
msgid "This option has several effects:"
663
msgstr "Diese Option hat verschiedene Auswirkungen:"
681
msgstr "Diese Option hat verschiedene Auswirkungen:"
664
682
665
#. type: Plain text
683
#. type: Plain text
666
#: ../src/xz/xz.1:398
684
#: ../src/xz/xz.1:424
667
msgid ""
685
msgid ""
668
"If the target file already exists, delete it before compressing or "
686
"If the target file already exists, delete it before compressing or "
669
"decompressing."
687
"decompressing."
Lines 672-678 Link Here
672
"Dekompression gelöscht."
690
"Dekompression gelöscht."
673
691
674
#. type: Plain text
692
#. type: Plain text
675
#: ../src/xz/xz.1:405
693
#: ../src/xz/xz.1:431
676
msgid ""
694
msgid ""
677
"Compress or decompress even if the input is a symbolic link to a regular "
695
"Compress or decompress even if the input is a symbolic link to a regular "
678
"file, has more than one hard link, or has the setuid, setgid, or sticky bit "
696
"file, has more than one hard link, or has the setuid, setgid, or sticky bit "
Lines 684-690 Link Here
684
"Die genannten Bits werden nicht in die Zieldatei kopiert."
702
"Die genannten Bits werden nicht in die Zieldatei kopiert."
685
703
686
#. type: Plain text
704
#. type: Plain text
687
#: ../src/xz/xz.1:430
705
#: ../src/xz/xz.1:456
688
msgid ""
706
msgid ""
689
"When used with B<--decompress> B<--stdout> and B<xz> cannot recognize the "
707
"When used with B<--decompress> B<--stdout> and B<xz> cannot recognize the "
690
"type of the source file, copy the source file as is to standard output.  "
708
"type of the source file, copy the source file as is to standard output.  "
Lines 705-717 Link Here
705
"können Sie B<xz> anweisen, nur ein einzelnes Dateiformat zu dekomprimieren."
723
"können Sie B<xz> anweisen, nur ein einzelnes Dateiformat zu dekomprimieren."
706
724
707
#. type: TP
725
#. type: TP
708
#: ../src/xz/xz.1:431 ../src/xzdec/xzdec.1:76
726
#: ../src/xz/xz.1:457 ../src/xzdec/xzdec.1:76
709
#, no-wrap
727
#, no-wrap
710
msgid "B<-c>, B<--stdout>, B<--to-stdout>"
728
msgid "B<-c>, B<--stdout>, B<--to-stdout>"
711
msgstr "B<-c>, B<--stdout>, B<--to-stdout>"
729
msgstr "B<-c>, B<--stdout>, B<--to-stdout>"
712
730
713
#. type: Plain text
731
#. type: Plain text
714
#: ../src/xz/xz.1:437
732
#: ../src/xz/xz.1:463
715
msgid ""
733
msgid ""
716
"Write the compressed or decompressed data to standard output instead of a "
734
"Write the compressed or decompressed data to standard output instead of a "
717
"file.  This implies B<--keep>."
735
"file.  This implies B<--keep>."
Lines 720-732 Link Here
720
"anstatt in eine Datei. Dies impliziert B<--keep>."
738
"anstatt in eine Datei. Dies impliziert B<--keep>."
721
739
722
#. type: TP
740
#. type: TP
723
#: ../src/xz/xz.1:437
741
#: ../src/xz/xz.1:463
724
#, no-wrap
742
#, no-wrap
725
msgid "B<--single-stream>"
743
msgid "B<--single-stream>"
726
msgstr "B<--single-stream>"
744
msgstr "B<--single-stream>"
727
745
728
#. type: Plain text
746
#. type: Plain text
729
#: ../src/xz/xz.1:446
747
#: ../src/xz/xz.1:472
730
msgid ""
748
msgid ""
731
"Decompress only the first B<.xz> stream, and silently ignore possible "
749
"Decompress only the first B<.xz> stream, and silently ignore possible "
732
"remaining input data following the stream.  Normally such trailing garbage "
750
"remaining input data following the stream.  Normally such trailing garbage "
Lines 738-744 Link Here
738
"Fehlermeldung ausgibt."
756
"Fehlermeldung ausgibt."
739
757
740
#. type: Plain text
758
#. type: Plain text
741
#: ../src/xz/xz.1:455
759
#: ../src/xz/xz.1:481
742
msgid ""
760
msgid ""
743
"B<xz> never decompresses more than one stream from B<.lzma> files or raw "
761
"B<xz> never decompresses more than one stream from B<.lzma> files or raw "
744
"streams, but this option still makes B<xz> ignore the possible trailing data "
762
"streams, but this option still makes B<xz> ignore the possible trailing data "
Lines 750-756 Link Here
750
"ignoriert."
768
"ignoriert."
751
769
752
#. type: Plain text
770
#. type: Plain text
753
#: ../src/xz/xz.1:460
771
#: ../src/xz/xz.1:486
754
msgid ""
772
msgid ""
755
"This option has no effect if the operation mode is not B<--decompress> or "
773
"This option has no effect if the operation mode is not B<--decompress> or "
756
"B<--test>."
774
"B<--test>."
Lines 759-771 Link Here
759
"oder B<--test> ist."
777
"oder B<--test> ist."
760
778
761
#. type: TP
779
#. type: TP
762
#: ../src/xz/xz.1:460
780
#: ../src/xz/xz.1:486
763
#, no-wrap
781
#, no-wrap
764
msgid "B<--no-sparse>"
782
msgid "B<--no-sparse>"
765
msgstr "B<--no-sparse>"
783
msgstr "B<--no-sparse>"
766
784
767
#. type: Plain text
785
#. type: Plain text
768
#: ../src/xz/xz.1:472
786
#: ../src/xz/xz.1:498
769
msgid ""
787
msgid ""
770
"Disable creation of sparse files.  By default, if decompressing into a "
788
"Disable creation of sparse files.  By default, if decompressing into a "
771
"regular file, B<xz> tries to make the file sparse if the decompressed data "
789
"regular file, B<xz> tries to make the file sparse if the decompressed data "
Lines 785-797 Link Here
785
"durch Verringerung der Ein-/Ausgaben der Platte."
803
"durch Verringerung der Ein-/Ausgaben der Platte."
786
804
787
#. type: TP
805
#. type: TP
788
#: ../src/xz/xz.1:472
806
#: ../src/xz/xz.1:498
789
#, no-wrap
807
#, no-wrap
790
msgid "B<-S> I<.suf>, B<--suffix=>I<.suf>"
808
msgid "B<-S> I<.suf>, B<--suffix=>I<.suf>"
791
msgstr "B<-S> I<.suf>, B<--suffix=>I<.suf>"
809
msgstr "B<-S> I<.suf>, B<--suffix=>I<.suf>"
792
810
793
#. type: Plain text
811
#. type: Plain text
794
#: ../src/xz/xz.1:484
812
#: ../src/xz/xz.1:510
795
msgid ""
813
msgid ""
796
"When compressing, use I<.suf> as the suffix for the target file instead of "
814
"When compressing, use I<.suf> as the suffix for the target file instead of "
797
"B<.xz> or B<.lzma>.  If not writing to standard output and the source file "
815
"B<.xz> or B<.lzma>.  If not writing to standard output and the source file "
Lines 804-823 Link Here
804
"angezeigt und die Datei übersprungen."
822
"angezeigt und die Datei übersprungen."
805
823
806
#. type: Plain text
824
#. type: Plain text
807
#: ../src/xz/xz.1:497
825
#: ../src/xz/xz.1:524
808
msgid ""
826
msgid ""
809
"When decompressing, recognize files with the suffix I<.suf> in addition to "
827
"When decompressing, recognize files with the suffix I<.suf> in addition to "
810
"files with the B<.xz>, B<.txz>, B<.lzma>, or B<.tlz> suffix.  If the source "
828
"files with the B<.xz>, B<.txz>, B<.lzma>, B<.tlz>, or B<.lz> suffix.  If the "
811
"file has the suffix I<.suf>, the suffix is removed to get the target "
829
"source file has the suffix I<.suf>, the suffix is removed to get the target "
812
"filename."
830
"filename."
813
msgstr ""
831
msgstr ""
814
"berücksichtigt bei der Dekompression zusätzlich zu Dateien mit den Suffixen "
832
"berücksichtigt bei der Dekompression zusätzlich zu Dateien mit den Suffixen "
815
"B<.xz>, B<.txz>, B<.lzma> oder B<.tlz> auch jene mit dem Suffix I<.suf>. "
833
"B<.xz>, B<.txz>, B<.lzma>, B<.tlz> oder B<.lz> auch jene mit dem Suffix I<."
816
"Falls die Quelldatei das Suffix I<.suf> hat, wird dieses entfernt und so der "
834
"suf>. Falls die Quelldatei das Suffix I<.suf> hat, wird dieses entfernt und "
817
"Name der Zieldatei abgeleitet."
835
"so der Name der Zieldatei abgeleitet."
818
836
819
#. type: Plain text
837
#. type: Plain text
820
#: ../src/xz/xz.1:503
838
#: ../src/xz/xz.1:530
821
msgid ""
839
msgid ""
822
"When compressing or decompressing raw streams (B<--format=raw>), the suffix "
840
"When compressing or decompressing raw streams (B<--format=raw>), the suffix "
823
"must always be specified unless writing to standard output, because there is "
841
"must always be specified unless writing to standard output, because there is "
Lines 829-841 Link Here
829
"vorgegebenes Suffix für Rohdatenströme gibt."
847
"vorgegebenes Suffix für Rohdatenströme gibt."
830
848
831
#. type: TP
849
#. type: TP
832
#: ../src/xz/xz.1:503
850
#: ../src/xz/xz.1:530
833
#, no-wrap
851
#, no-wrap
834
msgid "B<--files>[B<=>I<file>]"
852
msgid "B<--files>[B<=>I<file>]"
835
msgstr "B<--files>[B<=>I<Datei>]"
853
msgstr "B<--files>[B<=>I<Datei>]"
836
854
837
#. type: Plain text
855
#. type: Plain text
838
#: ../src/xz/xz.1:517
856
#: ../src/xz/xz.1:544
839
msgid ""
857
msgid ""
840
"Read the filenames to process from I<file>; if I<file> is omitted, filenames "
858
"Read the filenames to process from I<file>; if I<file> is omitted, filenames "
841
"are read from standard input.  Filenames must be terminated with the newline "
859
"are read from standard input.  Filenames must be terminated with the newline "
Lines 851-863 Link Here
851
"angegeben sind, werden diese vor den Dateinamen aus der I<Datei> verarbeitet."
869
"angegeben sind, werden diese vor den Dateinamen aus der I<Datei> verarbeitet."
852
870
853
#. type: TP
871
#. type: TP
854
#: ../src/xz/xz.1:517
872
#: ../src/xz/xz.1:544
855
#, no-wrap
873
#, no-wrap
856
msgid "B<--files0>[B<=>I<file>]"
874
msgid "B<--files0>[B<=>I<file>]"
857
msgstr "B<--files0>[B<=>I<Datei>]"
875
msgstr "B<--files0>[B<=>I<Datei>]"
858
876
859
#. type: Plain text
877
#. type: Plain text
860
#: ../src/xz/xz.1:521
878
#: ../src/xz/xz.1:548
861
msgid ""
879
msgid ""
862
"This is identical to B<--files>[B<=>I<file>] except that each filename must "
880
"This is identical to B<--files>[B<=>I<file>] except that each filename must "
863
"be terminated with the null character."
881
"be terminated with the null character."
Lines 866-896 Link Here
866
"Dateiname mit einem Null-Zeichen abgeschlossen werden muss."
884
"Dateiname mit einem Null-Zeichen abgeschlossen werden muss."
867
885
868
#. type: SS
886
#. type: SS
869
#: ../src/xz/xz.1:522
887
#: ../src/xz/xz.1:549
870
#, no-wrap
888
#, no-wrap
871
msgid "Basic file format and compression options"
889
msgid "Basic file format and compression options"
872
msgstr "Grundlegende Dateiformat- und Kompressionsoptionen"
890
msgstr "Grundlegende Dateiformat- und Kompressionsoptionen"
873
891
874
#. type: TP
892
#. type: TP
875
#: ../src/xz/xz.1:523
893
#: ../src/xz/xz.1:550
876
#, no-wrap
894
#, no-wrap
877
msgid "B<-F> I<format>, B<--format=>I<format>"
895
msgid "B<-F> I<format>, B<--format=>I<format>"
878
msgstr "B<-F> I<Format>, B<--format=>I<Format>"
896
msgstr "B<-F> I<Format>, B<--format=>I<Format>"
879
897
880
#. type: Plain text
898
#. type: Plain text
881
#: ../src/xz/xz.1:528
899
#: ../src/xz/xz.1:555
882
msgid "Specify the file I<format> to compress or decompress:"
900
msgid "Specify the file I<format> to compress or decompress:"
883
msgstr ""
901
msgstr ""
884
"gibt das I<Format> der zu komprimierenden oder dekomprimierenden Datei an:"
902
"gibt das I<Format> der zu komprimierenden oder dekomprimierenden Datei an:"
885
903
886
#. type: TP
904
#. type: TP
887
#: ../src/xz/xz.1:529
905
#: ../src/xz/xz.1:556
888
#, no-wrap
906
#, no-wrap
889
msgid "B<auto>"
907
msgid "B<auto>"
890
msgstr "B<auto>"
908
msgstr "B<auto>"
891
909
892
#. type: Plain text
910
#. type: Plain text
893
#: ../src/xz/xz.1:541
911
#: ../src/xz/xz.1:568
894
msgid ""
912
msgid ""
895
"This is the default.  When compressing, B<auto> is equivalent to B<xz>.  "
913
"This is the default.  When compressing, B<auto> is equivalent to B<xz>.  "
896
"When decompressing, the format of the input file is automatically detected.  "
914
"When decompressing, the format of the input file is automatically detected.  "
Lines 903-915 Link Here
903
"format=raw> erzeugt werden, nicht automatisch erkannt werden können."
921
"format=raw> erzeugt werden, nicht automatisch erkannt werden können."
904
922
905
#. type: TP
923
#. type: TP
906
#: ../src/xz/xz.1:541
924
#: ../src/xz/xz.1:568
907
#, no-wrap
925
#, no-wrap
908
msgid "B<xz>"
926
msgid "B<xz>"
909
msgstr "B<xz>"
927
msgstr "B<xz>"
910
928
911
#. type: Plain text
929
#. type: Plain text
912
#: ../src/xz/xz.1:548
930
#: ../src/xz/xz.1:575
913
msgid ""
931
msgid ""
914
"Compress to the B<.xz> file format, or accept only B<.xz> files when "
932
"Compress to the B<.xz> file format, or accept only B<.xz> files when "
915
"decompressing."
933
"decompressing."
Lines 918-930 Link Here
918
"Dateien bei der Dekompression."
936
"Dateien bei der Dekompression."
919
937
920
#. type: TP
938
#. type: TP
921
#: ../src/xz/xz.1:548
939
#: ../src/xz/xz.1:575
922
#, no-wrap
940
#, no-wrap
923
msgid "B<lzma>, B<alone>"
941
msgid "B<lzma>, B<alone>"
924
msgstr "B<lzma>, B<alone>"
942
msgstr "B<lzma>, B<alone>"
925
943
926
#. type: Plain text
944
#. type: Plain text
927
#: ../src/xz/xz.1:558
945
#: ../src/xz/xz.1:585
928
msgid ""
946
msgid ""
929
"Compress to the legacy B<.lzma> file format, or accept only B<.lzma> files "
947
"Compress to the legacy B<.lzma> file format, or accept only B<.lzma> files "
930
"when decompressing.  The alternative name B<alone> is provided for backwards "
948
"when decompressing.  The alternative name B<alone> is provided for backwards "
Lines 935-947 Link Here
935
"B<alone> dient der Abwärtskompatibilität zu den LZMA-Dienstprogrammen."
953
"B<alone> dient der Abwärtskompatibilität zu den LZMA-Dienstprogrammen."
936
954
937
#. type: TP
955
#. type: TP
938
#: ../src/xz/xz.1:558
956
#: ../src/xz/xz.1:585
939
#, no-wrap
957
#, no-wrap
958
msgid "B<lzip>"
959
msgstr "B<lzip>"
960
961
#. type: Plain text
962
#: ../src/xz/xz.1:591
963
msgid ""
964
"Accept only B<.lz> files when decompressing.  Compression is not supported."
965
msgstr ""
966
"Akzeptiert nur B<.lz>-Dateien bei der Dekompression. Kompression wird nicht "
967
"unterstützt."
968
969
#. type: Plain text
970
#: ../src/xz/xz.1:604
971
msgid ""
972
"The B<.lz> format version 0 and the unextended version 1 are supported.  "
973
"Version 0 files were produced by B<lzip> 1.3 and older.  Such files aren't "
974
"common but may be found from file archives as a few source packages were "
975
"released in this format.  People might have old personal files in this "
976
"format too.  Decompression support for the format version 0 was removed in "
977
"B<lzip> 1.18."
978
msgstr ""
979
"Das B<.lz>-Format wird in Version 0 und der unerweiterten Version 1 "
980
"unterstützt. Dateien der Version 0 wurden B<lzip> 1.3 und älter erstellt. "
981
"Solche Dateien sind nicht sehr weit verbreitet, können aber in Dateiarchiven "
982
"gefunden werden, da einige Quellpakete in diesem Format veröffentlicht "
983
"wurden. Es ist auch möglich, dass Benutzer alte persönliche Dateien in "
984
"diesem Format haben. Die Dekompressionsunterstützung für das Format der "
985
"Version 0 wurde mit der Version 1.18 aus B<lzip> entfernt."
986
987
#. type: Plain text
988
#: ../src/xz/xz.1:613
989
msgid ""
990
"B<lzip> 1.4 and later create files in the format version 1.  The sync flush "
991
"marker extension to the format version 1 was added in B<lzip> 1.6.  This "
992
"extension is rarely used and isn't supported by B<xz> (diagnosed as corrupt "
993
"input)."
994
msgstr ""
995
"B<lzip>-Versionen ab 1.4 erstellen Dateien im Format der Version 0. Die "
996
"Erweiterung »Sync Flush Marker« zur Formatversion 1 wurde in B<lzip> 1.6 "
997
"hinzugefügt. Diese Erweiterung wird sehr selten verwendet und wird von B<xz> "
998
"nicht unterstützt (die Eingabe wird als beschädigt erkannt)."
999
1000
#. type: TP
1001
#: ../src/xz/xz.1:613
1002
#, no-wrap
940
msgid "B<raw>"
1003
msgid "B<raw>"
941
msgstr "B<raw>"
1004
msgstr "B<raw>"
942
1005
943
#. type: Plain text
1006
#. type: Plain text
944
#: ../src/xz/xz.1:566
1007
#: ../src/xz/xz.1:621
945
msgid ""
1008
msgid ""
946
"Compress or uncompress a raw stream (no headers).  This is meant for "
1009
"Compress or uncompress a raw stream (no headers).  This is meant for "
947
"advanced users only.  To decode raw streams, you need use B<--format=raw> "
1010
"advanced users only.  To decode raw streams, you need use B<--format=raw> "
Lines 955-967 Link Here
955
"Container-Headern gespeichert worden wäre."
1018
"Container-Headern gespeichert worden wäre."
956
1019
957
#. type: TP
1020
#. type: TP
958
#: ../src/xz/xz.1:567
1021
#: ../src/xz/xz.1:622
959
#, no-wrap
1022
#, no-wrap
960
msgid "B<-C> I<check>, B<--check=>I<check>"
1023
msgid "B<-C> I<check>, B<--check=>I<check>"
961
msgstr "B<-C> I<Prüfung>, B<--check=>I<Prüfung>"
1024
msgstr "B<-C> I<Prüfung>, B<--check=>I<Prüfung>"
962
1025
963
#. type: Plain text
1026
#. type: Plain text
964
#: ../src/xz/xz.1:582
1027
#: ../src/xz/xz.1:637
965
msgid ""
1028
msgid ""
966
"Specify the type of the integrity check.  The check is calculated from the "
1029
"Specify the type of the integrity check.  The check is calculated from the "
967
"uncompressed data and stored in the B<.xz> file.  This option has an effect "
1030
"uncompressed data and stored in the B<.xz> file.  This option has an effect "
Lines 977-994 Link Here
977
"dekomprimiert wird."
1040
"dekomprimiert wird."
978
1041
979
#. type: Plain text
1042
#. type: Plain text
980
#: ../src/xz/xz.1:586
1043
#: ../src/xz/xz.1:641
981
msgid "Supported I<check> types:"
1044
msgid "Supported I<check> types:"
982
msgstr "Folgende Typen von I<Prüfungen> werden unterstützt:"
1045
msgstr "Folgende Typen von I<Prüfungen> werden unterstützt:"
983
1046
984
#. type: TP
1047
#. type: TP
985
#: ../src/xz/xz.1:587
1048
#: ../src/xz/xz.1:642
986
#, no-wrap
1049
#, no-wrap
987
msgid "B<none>"
1050
msgid "B<none>"
988
msgstr "B<none>"
1051
msgstr "B<none>"
989
1052
990
#. type: Plain text
1053
#. type: Plain text
991
#: ../src/xz/xz.1:593
1054
#: ../src/xz/xz.1:648
992
msgid ""
1055
msgid ""
993
"Don't calculate an integrity check at all.  This is usually a bad idea.  "
1056
"Don't calculate an integrity check at all.  This is usually a bad idea.  "
994
"This can be useful when integrity of the data is verified by other means "
1057
"This can be useful when integrity of the data is verified by other means "
Lines 999-1023 Link Here
999
"Weise sichergestellt werden kann."
1062
"Weise sichergestellt werden kann."
1000
1063
1001
#. type: TP
1064
#. type: TP
1002
#: ../src/xz/xz.1:593
1065
#: ../src/xz/xz.1:648
1003
#, no-wrap
1066
#, no-wrap
1004
msgid "B<crc32>"
1067
msgid "B<crc32>"
1005
msgstr "B<crc32>"
1068
msgstr "B<crc32>"
1006
1069
1007
#. type: Plain text
1070
#. type: Plain text
1008
#: ../src/xz/xz.1:596
1071
#: ../src/xz/xz.1:651
1009
msgid "Calculate CRC32 using the polynomial from IEEE-802.3 (Ethernet)."
1072
msgid "Calculate CRC32 using the polynomial from IEEE-802.3 (Ethernet)."
1010
msgstr ""
1073
msgstr ""
1011
"berechnet die CRC32-Prüfsumme anhand des Polynoms aus IEEE-802.3 (Ethernet)."
1074
"berechnet die CRC32-Prüfsumme anhand des Polynoms aus IEEE-802.3 (Ethernet)."
1012
1075
1013
#. type: TP
1076
#. type: TP
1014
#: ../src/xz/xz.1:596
1077
#: ../src/xz/xz.1:651
1015
#, no-wrap
1078
#, no-wrap
1016
msgid "B<crc64>"
1079
msgid "B<crc64>"
1017
msgstr "B<crc64>"
1080
msgstr "B<crc64>"
1018
1081
1019
#. type: Plain text
1082
#. type: Plain text
1020
#: ../src/xz/xz.1:601
1083
#: ../src/xz/xz.1:656
1021
msgid ""
1084
msgid ""
1022
"Calculate CRC64 using the polynomial from ECMA-182.  This is the default, "
1085
"Calculate CRC64 using the polynomial from ECMA-182.  This is the default, "
1023
"since it is slightly better than CRC32 at detecting damaged files and the "
1086
"since it is slightly better than CRC32 at detecting damaged files and the "
Lines 1028-1047 Link Here
1028
"werden und die Geschwindigkeitsdifferenz unerheblich ist."
1091
"werden und die Geschwindigkeitsdifferenz unerheblich ist."
1029
1092
1030
#. type: TP
1093
#. type: TP
1031
#: ../src/xz/xz.1:601
1094
#: ../src/xz/xz.1:656
1032
#, no-wrap
1095
#, no-wrap
1033
msgid "B<sha256>"
1096
msgid "B<sha256>"
1034
msgstr "B<sha256>"
1097
msgstr "B<sha256>"
1035
1098
1036
#. type: Plain text
1099
#. type: Plain text
1037
#: ../src/xz/xz.1:605
1100
#: ../src/xz/xz.1:660
1038
msgid "Calculate SHA-256.  This is somewhat slower than CRC32 and CRC64."
1101
msgid "Calculate SHA-256.  This is somewhat slower than CRC32 and CRC64."
1039
msgstr ""
1102
msgstr ""
1040
"berechnet die SHA-256-Prüfsumme. Dies ist etwas langsamer als CRC32 und "
1103
"berechnet die SHA-256-Prüfsumme. Dies ist etwas langsamer als CRC32 und "
1041
"CRC64."
1104
"CRC64."
1042
1105
1043
#. type: Plain text
1106
#. type: Plain text
1044
#: ../src/xz/xz.1:611
1107
#: ../src/xz/xz.1:666
1045
msgid ""
1108
msgid ""
1046
"Integrity of the B<.xz> headers is always verified with CRC32.  It is not "
1109
"Integrity of the B<.xz> headers is always verified with CRC32.  It is not "
1047
"possible to change or disable it."
1110
"possible to change or disable it."
Lines 1050-1062 Link Here
1050
"möglich, dies zu ändern oder zu deaktivieren."
1113
"möglich, dies zu ändern oder zu deaktivieren."
1051
1114
1052
#. type: TP
1115
#. type: TP
1053
#: ../src/xz/xz.1:611
1116
#: ../src/xz/xz.1:666
1054
#, no-wrap
1117
#, no-wrap
1055
msgid "B<--ignore-check>"
1118
msgid "B<--ignore-check>"
1056
msgstr "B<--ignore-check>"
1119
msgstr "B<--ignore-check>"
1057
1120
1058
#. type: Plain text
1121
#. type: Plain text
1059
#: ../src/xz/xz.1:617
1122
#: ../src/xz/xz.1:672
1060
msgid ""
1123
msgid ""
1061
"Don't verify the integrity check of the compressed data when decompressing.  "
1124
"Don't verify the integrity check of the compressed data when decompressing.  "
1062
"The CRC32 values in the B<.xz> headers will still be verified normally."
1125
"The CRC32 values in the B<.xz> headers will still be verified normally."
Lines 1066-1072 Link Here
1066
"normal verifiziert."
1129
"normal verifiziert."
1067
1130
1068
#. type: Plain text
1131
#. type: Plain text
1069
#: ../src/xz/xz.1:620
1132
#: ../src/xz/xz.1:675
1070
msgid ""
1133
msgid ""
1071
"B<Do not use this option unless you know what you are doing.> Possible "
1134
"B<Do not use this option unless you know what you are doing.> Possible "
1072
"reasons to use this option:"
1135
"reasons to use this option:"
Lines 1075-1087 Link Here
1075
"Gründe, diese Option zu verwenden:"
1138
"Gründe, diese Option zu verwenden:"
1076
1139
1077
#. type: Plain text
1140
#. type: Plain text
1078
#: ../src/xz/xz.1:623
1141
#: ../src/xz/xz.1:678
1079
msgid "Trying to recover data from a corrupt .xz file."
1142
msgid "Trying to recover data from a corrupt .xz file."
1080
msgstr "Versuchen, Daten aus einer beschädigten .xz-Datei wiederherzustellen."
1143
msgstr "Versuchen, Daten aus einer beschädigten .xz-Datei wiederherzustellen."
1081
1144
1082
# Irgendwie ist mir »extrem gut komprimiert« hier zu diffus. Was soll »gut« hier bedeuten? Besonders stark, besonders clever, was auch immer...
1145
# Irgendwie ist mir »extrem gut komprimiert« hier zu diffus. Was soll »gut« hier bedeuten? Besonders stark, besonders clever, was auch immer...
1083
#. type: Plain text
1146
#. type: Plain text
1084
#: ../src/xz/xz.1:629
1147
#: ../src/xz/xz.1:684
1085
msgid ""
1148
msgid ""
1086
"Speeding up decompression.  This matters mostly with SHA-256 or with files "
1149
"Speeding up decompression.  This matters mostly with SHA-256 or with files "
1087
"that have compressed extremely well.  It's recommended to not use this "
1150
"that have compressed extremely well.  It's recommended to not use this "
Lines 1094-1106 Link Here
1094
"denn, die Integrität der Datei wird extern auf andere Weise überprüft."
1157
"denn, die Integrität der Datei wird extern auf andere Weise überprüft."
1095
1158
1096
#. type: TP
1159
#. type: TP
1097
#: ../src/xz/xz.1:630
1160
#: ../src/xz/xz.1:685
1098
#, no-wrap
1161
#, no-wrap
1099
msgid "B<-0> ... B<-9>"
1162
msgid "B<-0> ... B<-9>"
1100
msgstr "B<-0> … B<-9>"
1163
msgstr "B<-0> … B<-9>"
1101
1164
1102
#. type: Plain text
1165
#. type: Plain text
1103
#: ../src/xz/xz.1:639
1166
#: ../src/xz/xz.1:694
1104
msgid ""
1167
msgid ""
1105
"Select a compression preset level.  The default is B<-6>.  If multiple "
1168
"Select a compression preset level.  The default is B<-6>.  If multiple "
1106
"preset levels are specified, the last one takes effect.  If a custom filter "
1169
"preset levels are specified, the last one takes effect.  If a custom filter "
Lines 1113-1119 Link Here
1113
"angegeben wurde, wird diese durch die Festlegung der Voreinstellung geleert."
1176
"angegeben wurde, wird diese durch die Festlegung der Voreinstellung geleert."
1114
1177
1115
#. type: Plain text
1178
#. type: Plain text
1116
#: ../src/xz/xz.1:654
1179
#: ../src/xz/xz.1:709
1117
msgid ""
1180
msgid ""
1118
"The differences between the presets are more significant than with "
1181
"The differences between the presets are more significant than with "
1119
"B<gzip>(1)  and B<bzip2>(1).  The selected compression settings determine "
1182
"B<gzip>(1)  and B<bzip2>(1).  The selected compression settings determine "
Lines 1131-1143 Link Here
1131
"B<bzip2>(1) gehandhabt wird."
1194
"B<bzip2>(1) gehandhabt wird."
1132
1195
1133
#. type: TP
1196
#. type: TP
1134
#: ../src/xz/xz.1:655
1197
#: ../src/xz/xz.1:710
1135
#, no-wrap
1198
#, no-wrap
1136
msgid "B<-0> ... B<-3>"
1199
msgid "B<-0> ... B<-3>"
1137
msgstr "B<-0> … B<-3>"
1200
msgstr "B<-0> … B<-3>"
1138
1201
1139
#. type: Plain text
1202
#. type: Plain text
1140
#: ../src/xz/xz.1:667
1203
#: ../src/xz/xz.1:722
1141
msgid ""
1204
msgid ""
1142
"These are somewhat fast presets.  B<-0> is sometimes faster than B<gzip -9> "
1205
"These are somewhat fast presets.  B<-0> is sometimes faster than B<gzip -9> "
1143
"while compressing much better.  The higher ones often have speed comparable "
1206
"while compressing much better.  The higher ones often have speed comparable "
Lines 1152-1186 Link Here
1152
"komprimierenden Daten abhängig ist."
1215
"komprimierenden Daten abhängig ist."
1153
1216
1154
#. type: TP
1217
#. type: TP
1155
#: ../src/xz/xz.1:667
1218
#: ../src/xz/xz.1:722
1156
#, no-wrap
1219
#, no-wrap
1157
msgid "B<-4> ... B<-6>"
1220
msgid "B<-4> ... B<-6>"
1158
msgstr "B<-4> … B<-6>"
1221
msgstr "B<-4> … B<-6>"
1159
1222
1160
#. type: Plain text
1223
#. type: Plain text
1161
#: ../src/xz/xz.1:681
1224
#: ../src/xz/xz.1:736
1162
msgid ""
1225
msgid ""
1163
"Good to very good compression while keeping decompressor memory usage "
1226
"Good to very good compression while keeping decompressor memory usage "
1164
"reasonable even for old systems.  B<-6> is the default, which is usually a "
1227
"reasonable even for old systems.  B<-6> is the default, which is usually a "
1165
"good choice e.g. for distributing files that need to be decompressible even "
1228
"good choice for distributing files that need to be decompressible even on "
1166
"on systems with only 16\\ MiB RAM.  (B<-5e> or B<-6e> may be worth "
1229
"systems with only 16\\ MiB RAM.  (B<-5e> or B<-6e> may be worth considering "
1167
"considering too.  See B<--extreme>.)"
1230
"too.  See B<--extreme>.)"
1168
msgstr ""
1231
msgstr ""
1169
"Gute bis sehr gute Kompression, wobei der Speicherbedarf für die "
1232
"Gute bis sehr gute Kompression, wobei der Speicherbedarf für die "
1170
"Dekompression selbst auf alten Systemen akzeptabel ist. B<-6> ist die "
1233
"Dekompression selbst auf alten Systemen akzeptabel ist. B<-6> ist die "
1171
"Voreinstellung, welche üblicherweise eine gute Wahl ist, zum Beispiel für "
1234
"Voreinstellung, welche üblicherweise eine gute Wahl für die Verteilung von "
1172
"die Verteilung von Dateien, die selbst noch auf Systemen mit nur 16\\ MiB "
1235
"Dateien ist, die selbst noch auf Systemen mit nur 16\\ MiB Arbeitsspeicher "
1173
"Arbeitsspeicher dekomprimiert werden müssen (B<-5e> oder B<-6e> sind "
1236
"dekomprimiert werden müssen (B<-5e> oder B<-6e> sind ebenfalls eine "
1174
"ebenfalls eine Überlegung wert. Siehe B<--extreme>)."
1237
"Überlegung wert. Siehe B<--extreme>)."
1175
1238
1176
#. type: TP
1239
#. type: TP
1177
#: ../src/xz/xz.1:681
1240
#: ../src/xz/xz.1:736
1178
#, no-wrap
1241
#, no-wrap
1179
msgid "B<-7 ... -9>"
1242
msgid "B<-7 ... -9>"
1180
msgstr "B<-7 … -9>"
1243
msgstr "B<-7 … -9>"
1181
1244
1182
#. type: Plain text
1245
#. type: Plain text
1183
#: ../src/xz/xz.1:688
1246
#: ../src/xz/xz.1:743
1184
msgid ""
1247
msgid ""
1185
"These are like B<-6> but with higher compressor and decompressor memory "
1248
"These are like B<-6> but with higher compressor and decompressor memory "
1186
"requirements.  These are useful only when compressing files bigger than 8\\ "
1249
"requirements.  These are useful only when compressing files bigger than 8\\ "
Lines 1191-1197 Link Here
1191
"sollen, die größer als 8\\ MiB, 16\\ MiB beziehungsweise 32\\ MiB sind."
1254
"sollen, die größer als 8\\ MiB, 16\\ MiB beziehungsweise 32\\ MiB sind."
1192
1255
1193
#. type: Plain text
1256
#. type: Plain text
1194
#: ../src/xz/xz.1:696
1257
#: ../src/xz/xz.1:751
1195
msgid ""
1258
msgid ""
1196
"On the same hardware, the decompression speed is approximately a constant "
1259
"On the same hardware, the decompression speed is approximately a constant "
1197
"number of bytes of compressed data per second.  In other words, the better "
1260
"number of bytes of compressed data per second.  In other words, the better "
Lines 1206-1487 Link Here
1206
"ausgegebenen unkomprimierten Daten stark variieren kann."
1269
"ausgegebenen unkomprimierten Daten stark variieren kann."
1207
1270
1208
#. type: Plain text
1271
#. type: Plain text
1209
#: ../src/xz/xz.1:698
1272
#: ../src/xz/xz.1:753
1210
msgid "The following table summarises the features of the presets:"
1273
msgid "The following table summarises the features of the presets:"
1211
msgstr ""
1274
msgstr ""
1212
"Die folgende Tabelle fasst die Eigenschaften der Voreinstellungen zusammen:"
1275
"Die folgende Tabelle fasst die Eigenschaften der Voreinstellungen zusammen:"
1213
1276
1214
#. type: tbl table
1277
#. type: tbl table
1215
#: ../src/xz/xz.1:705 ../src/xz/xz.1:786 ../src/xz/xz.1:2623
1278
#: ../src/xz/xz.1:760 ../src/xz/xz.1:841 ../src/xz/xz.1:2839
1216
#, no-wrap
1279
#, no-wrap
1217
msgid "Preset"
1280
msgid "Preset"
1218
msgstr "Voreinstellung"
1281
msgstr "Voreinst."
1219
1282
1220
#. type: tbl table
1283
#. type: tbl table
1221
#: ../src/xz/xz.1:705 ../src/xz/xz.1:786
1284
#: ../src/xz/xz.1:760 ../src/xz/xz.1:841
1222
#, no-wrap
1285
#, no-wrap
1223
msgid "DictSize"
1286
msgid "DictSize"
1224
msgstr "DictGröße"
1287
msgstr "Wörtb.Gr"
1225
1288
1226
#. type: tbl table
1289
#. type: tbl table
1227
#: ../src/xz/xz.1:705 ../src/xz/xz.1:786 ../src/xz/xz.1:2623
1290
#: ../src/xz/xz.1:760 ../src/xz/xz.1:841 ../src/xz/xz.1:2839
1228
#, no-wrap
1291
#, no-wrap
1229
msgid "CompCPU"
1292
msgid "CompCPU"
1230
msgstr "KompCPU"
1293
msgstr "KomprCPU"
1231
1294
1232
#. type: tbl table
1295
#. type: tbl table
1233
#: ../src/xz/xz.1:705 ../src/xz/xz.1:786
1296
#: ../src/xz/xz.1:760 ../src/xz/xz.1:841
1234
#, no-wrap
1297
#, no-wrap
1235
msgid "CompMem"
1298
msgid "CompMem"
1236
msgstr "KompSpeicher"
1299
msgstr "KompSpeich"
1237
1300
1238
#. type: tbl table
1301
#. type: tbl table
1239
#: ../src/xz/xz.1:705 ../src/xz/xz.1:786
1302
#: ../src/xz/xz.1:760 ../src/xz/xz.1:841
1240
#, no-wrap
1303
#, no-wrap
1241
msgid "DecMem"
1304
msgid "DecMem"
1242
msgstr "DekSpeicher"
1305
msgstr "DekompSpeich"
1243
1306
1244
#. type: tbl table
1307
#. type: tbl table
1245
#: ../src/xz/xz.1:706 ../src/xz/xz.1:2234 ../src/xz/xz.1:2259
1308
#: ../src/xz/xz.1:761 ../src/xz/xz.1:2450 ../src/xz/xz.1:2475
1246
#: ../src/xz/xz.1:2624
1309
#: ../src/xz/xz.1:2840
1247
#, no-wrap
1310
#, no-wrap
1248
msgid "-0"
1311
msgid "-0"
1249
msgstr "-0"
1312
msgstr "-0"
1250
1313
1251
#. type: tbl table
1314
#. type: tbl table
1252
#: ../src/xz/xz.1:706 ../src/xz/xz.1:787 ../src/xz/xz.1:2234
1315
#: ../src/xz/xz.1:761 ../src/xz/xz.1:842 ../src/xz/xz.1:2450
1253
#, no-wrap
1316
#, no-wrap
1254
msgid "256 KiB"
1317
msgid "256 KiB"
1255
msgstr "256 KiB"
1318
msgstr "256 KiB"
1256
1319
1257
#. type: tbl table
1320
#. type: TP
1258
#: ../src/xz/xz.1:706 ../src/xz/xz.1:2624
1321
#: ../src/xz/xz.1:761 ../src/xz/xz.1:2840 ../src/scripts/xzgrep.1:82
1259
#, no-wrap
1322
#, no-wrap
1260
msgid "0"
1323
msgid "0"
1261
msgstr "0"
1324
msgstr "0"
1262
1325
1263
#. type: tbl table
1326
#. type: tbl table
1264
#: ../src/xz/xz.1:706 ../src/xz/xz.1:708 ../src/xz/xz.1:789 ../src/xz/xz.1:2259
1327
#: ../src/xz/xz.1:761 ../src/xz/xz.1:763 ../src/xz/xz.1:844 ../src/xz/xz.1:2475
1265
#, no-wrap
1328
#, no-wrap
1266
msgid "3 MiB"
1329
msgid "3 MiB"
1267
msgstr "3 MiB"
1330
msgstr "3 MiB"
1268
1331
1269
#. type: tbl table
1332
#. type: tbl table
1270
#: ../src/xz/xz.1:706 ../src/xz/xz.1:707 ../src/xz/xz.1:787 ../src/xz/xz.1:788
1333
#: ../src/xz/xz.1:761 ../src/xz/xz.1:762 ../src/xz/xz.1:842 ../src/xz/xz.1:843
1271
#: ../src/xz/xz.1:2235 ../src/xz/xz.1:2236 ../src/xz/xz.1:2238
1334
#: ../src/xz/xz.1:2451 ../src/xz/xz.1:2452 ../src/xz/xz.1:2454
1272
#, no-wrap
1335
#, no-wrap
1273
msgid "1 MiB"
1336
msgid "1 MiB"
1274
msgstr "1 MiB"
1337
msgstr "1 MiB"
1275
1338
1276
#. type: tbl table
1339
#. type: tbl table
1277
#: ../src/xz/xz.1:707 ../src/xz/xz.1:2235 ../src/xz/xz.1:2260
1340
#: ../src/xz/xz.1:762 ../src/xz/xz.1:2451 ../src/xz/xz.1:2476
1278
#: ../src/xz/xz.1:2625
1341
#: ../src/xz/xz.1:2841
1279
#, no-wrap
1342
#, no-wrap
1280
msgid "-1"
1343
msgid "-1"
1281
msgstr "-1"
1344
msgstr "-1"
1282
1345
1283
#. type: tbl table
1346
#. type: TP
1284
#: ../src/xz/xz.1:707 ../src/xz/xz.1:1582 ../src/xz/xz.1:2625
1347
#: ../src/xz/xz.1:762 ../src/xz/xz.1:1758 ../src/xz/xz.1:2841
1348
#: ../src/scripts/xzgrep.1:86
1285
#, no-wrap
1349
#, no-wrap
1286
msgid "1"
1350
msgid "1"
1287
msgstr "1"
1351
msgstr "1"
1288
1352
1289
#. type: tbl table
1353
#. type: tbl table
1290
#: ../src/xz/xz.1:707 ../src/xz/xz.1:711 ../src/xz/xz.1:712 ../src/xz/xz.1:792
1354
#: ../src/xz/xz.1:762 ../src/xz/xz.1:766 ../src/xz/xz.1:767 ../src/xz/xz.1:847
1291
#: ../src/xz/xz.1:793 ../src/xz/xz.1:2260
1355
#: ../src/xz/xz.1:848 ../src/xz/xz.1:2476
1292
#, no-wrap
1356
#, no-wrap
1293
msgid "9 MiB"
1357
msgid "9 MiB"
1294
msgstr "9 MiB"
1358
msgstr "9 MiB"
1295
1359
1296
#. type: tbl table
1360
#. type: tbl table
1297
#: ../src/xz/xz.1:707 ../src/xz/xz.1:708 ../src/xz/xz.1:788 ../src/xz/xz.1:789
1361
#: ../src/xz/xz.1:762 ../src/xz/xz.1:763 ../src/xz/xz.1:843 ../src/xz/xz.1:844
1298
#: ../src/xz/xz.1:2236 ../src/xz/xz.1:2239 ../src/xz/xz.1:2260
1362
#: ../src/xz/xz.1:2452 ../src/xz/xz.1:2455 ../src/xz/xz.1:2476
1299
#, no-wrap
1363
#, no-wrap
1300
msgid "2 MiB"
1364
msgid "2 MiB"
1301
msgstr "2 MiB"
1365
msgstr "2 MiB"
1302
1366
1303
#. type: tbl table
1367
#. type: tbl table
1304
#: ../src/xz/xz.1:708 ../src/xz/xz.1:2236 ../src/xz/xz.1:2261
1368
#: ../src/xz/xz.1:763 ../src/xz/xz.1:2452 ../src/xz/xz.1:2477
1305
#: ../src/xz/xz.1:2626
1369
#: ../src/xz/xz.1:2842
1306
#, no-wrap
1370
#, no-wrap
1307
msgid "-2"
1371
msgid "-2"
1308
msgstr "-2"
1372
msgstr "-2"
1309
1373
1310
#. type: tbl table
1374
#. type: tbl table
1311
#: ../src/xz/xz.1:708 ../src/xz/xz.1:1585 ../src/xz/xz.1:2626
1375
#: ../src/xz/xz.1:763 ../src/xz/xz.1:1760 ../src/xz/xz.1:2842
1312
#, no-wrap
1376
#, no-wrap
1313
msgid "2"
1377
msgid "2"
1314
msgstr "2"
1378
msgstr "2"
1315
1379
1316
#. type: tbl table
1380
#. type: tbl table
1317
#: ../src/xz/xz.1:708 ../src/xz/xz.1:713 ../src/xz/xz.1:794 ../src/xz/xz.1:2261
1381
#: ../src/xz/xz.1:763 ../src/xz/xz.1:768 ../src/xz/xz.1:849 ../src/xz/xz.1:2477
1318
#, no-wrap
1382
#, no-wrap
1319
msgid "17 MiB"
1383
msgid "17 MiB"
1320
msgstr "17 MiB"
1384
msgstr "17 MiB"
1321
1385
1322
#. type: tbl table
1386
#. type: tbl table
1323
#: ../src/xz/xz.1:709 ../src/xz/xz.1:2237 ../src/xz/xz.1:2262
1387
#: ../src/xz/xz.1:764 ../src/xz/xz.1:2453 ../src/xz/xz.1:2478
1324
#: ../src/xz/xz.1:2627
1388
#: ../src/xz/xz.1:2843
1325
#, no-wrap
1389
#, no-wrap
1326
msgid "-3"
1390
msgid "-3"
1327
msgstr "-3"
1391
msgstr "-3"
1328
1392
1329
#. type: tbl table
1393
#. type: tbl table
1330
#: ../src/xz/xz.1:709 ../src/xz/xz.1:710 ../src/xz/xz.1:787 ../src/xz/xz.1:790
1394
#: ../src/xz/xz.1:764 ../src/xz/xz.1:765 ../src/xz/xz.1:842 ../src/xz/xz.1:845
1331
#: ../src/xz/xz.1:791 ../src/xz/xz.1:2237 ../src/xz/xz.1:2238
1395
#: ../src/xz/xz.1:846 ../src/xz/xz.1:2453 ../src/xz/xz.1:2454
1332
#: ../src/xz/xz.1:2240
1396
#: ../src/xz/xz.1:2456
1333
#, no-wrap
1397
#, no-wrap
1334
msgid "4 MiB"
1398
msgid "4 MiB"
1335
msgstr "4 MiB"
1399
msgstr "4 MiB"
1336
1400
1337
#. type: tbl table
1401
#. type: tbl table
1338
#: ../src/xz/xz.1:709 ../src/xz/xz.1:2627
1402
#: ../src/xz/xz.1:764 ../src/xz/xz.1:2843
1339
#, no-wrap
1403
#, no-wrap
1340
msgid "3"
1404
msgid "3"
1341
msgstr "3"
1405
msgstr "3"
1342
1406
1343
#. type: tbl table
1407
#. type: tbl table
1344
#: ../src/xz/xz.1:709 ../src/xz/xz.1:714 ../src/xz/xz.1:795 ../src/xz/xz.1:2242
1408
#: ../src/xz/xz.1:764 ../src/xz/xz.1:769 ../src/xz/xz.1:850 ../src/xz/xz.1:2458
1345
#: ../src/xz/xz.1:2243 ../src/xz/xz.1:2262
1409
#: ../src/xz/xz.1:2459 ../src/xz/xz.1:2478
1346
#, no-wrap
1410
#, no-wrap
1347
msgid "32 MiB"
1411
msgid "32 MiB"
1348
msgstr "32 MiB"
1412
msgstr "32 MiB"
1349
1413
1350
#. type: tbl table
1414
#. type: tbl table
1351
#: ../src/xz/xz.1:709 ../src/xz/xz.1:710 ../src/xz/xz.1:790 ../src/xz/xz.1:791
1415
#: ../src/xz/xz.1:764 ../src/xz/xz.1:765 ../src/xz/xz.1:845 ../src/xz/xz.1:846
1352
#, no-wrap
1416
#, no-wrap
1353
msgid "5 MiB"
1417
msgid "5 MiB"
1354
msgstr "5 MiB"
1418
msgstr "5 MiB"
1355
1419
1356
#. type: tbl table
1420
#. type: tbl table
1357
#: ../src/xz/xz.1:710 ../src/xz/xz.1:2238 ../src/xz/xz.1:2263
1421
#: ../src/xz/xz.1:765 ../src/xz/xz.1:2454 ../src/xz/xz.1:2479
1358
#: ../src/xz/xz.1:2628
1422
#: ../src/xz/xz.1:2844
1359
#, no-wrap
1423
#, no-wrap
1360
msgid "-4"
1424
msgid "-4"
1361
msgstr "-4"
1425
msgstr "-4"
1362
1426
1363
#. type: tbl table
1427
#. type: tbl table
1364
#: ../src/xz/xz.1:710 ../src/xz/xz.1:1583 ../src/xz/xz.1:1584
1428
#: ../src/xz/xz.1:765 ../src/xz/xz.1:1759 ../src/xz/xz.1:1761
1365
#: ../src/xz/xz.1:1587 ../src/xz/xz.1:2628
1429
#: ../src/xz/xz.1:1762 ../src/xz/xz.1:1764 ../src/xz/xz.1:2844
1366
#, no-wrap
1430
#, no-wrap
1367
msgid "4"
1431
msgid "4"
1368
msgstr "4"
1432
msgstr "4"
1369
1433
1370
#. type: tbl table
1434
#. type: tbl table
1371
#: ../src/xz/xz.1:710 ../src/xz/xz.1:790 ../src/xz/xz.1:791 ../src/xz/xz.1:2263
1435
#: ../src/xz/xz.1:765 ../src/xz/xz.1:845 ../src/xz/xz.1:846 ../src/xz/xz.1:2479
1372
#, no-wrap
1436
#, no-wrap
1373
msgid "48 MiB"
1437
msgid "48 MiB"
1374
msgstr "48 MiB"
1438
msgstr "48 MiB"
1375
1439
1376
#. type: tbl table
1440
#. type: tbl table
1377
#: ../src/xz/xz.1:711 ../src/xz/xz.1:2239 ../src/xz/xz.1:2264
1441
#: ../src/xz/xz.1:766 ../src/xz/xz.1:2455 ../src/xz/xz.1:2480
1378
#: ../src/xz/xz.1:2629
1442
#: ../src/xz/xz.1:2845
1379
#, no-wrap
1443
#, no-wrap
1380
msgid "-5"
1444
msgid "-5"
1381
msgstr "-5"
1445
msgstr "-5"
1382
1446
1383
#. type: tbl table
1447
#. type: tbl table
1384
#: ../src/xz/xz.1:711 ../src/xz/xz.1:712 ../src/xz/xz.1:792 ../src/xz/xz.1:793
1448
#: ../src/xz/xz.1:766 ../src/xz/xz.1:767 ../src/xz/xz.1:847 ../src/xz/xz.1:848
1385
#: ../src/xz/xz.1:2239 ../src/xz/xz.1:2240 ../src/xz/xz.1:2241
1449
#: ../src/xz/xz.1:2455 ../src/xz/xz.1:2456 ../src/xz/xz.1:2457
1386
#, no-wrap
1450
#, no-wrap
1387
msgid "8 MiB"
1451
msgid "8 MiB"
1388
msgstr "8 MiB"
1452
msgstr "8 MiB"
1389
1453
1390
#. type: tbl table
1454
#. type: tbl table
1391
#: ../src/xz/xz.1:711 ../src/xz/xz.1:2629
1455
#: ../src/xz/xz.1:766 ../src/xz/xz.1:2845
1392
#, no-wrap
1456
#, no-wrap
1393
msgid "5"
1457
msgid "5"
1394
msgstr "5"
1458
msgstr "5"
1395
1459
1396
#. type: tbl table
1460
#. type: tbl table
1397
#: ../src/xz/xz.1:711 ../src/xz/xz.1:712 ../src/xz/xz.1:792 ../src/xz/xz.1:793
1461
#: ../src/xz/xz.1:766 ../src/xz/xz.1:767 ../src/xz/xz.1:847 ../src/xz/xz.1:848
1398
#: ../src/xz/xz.1:2264 ../src/xz/xz.1:2265
1462
#: ../src/xz/xz.1:2480 ../src/xz/xz.1:2481
1399
#, no-wrap
1463
#, no-wrap
1400
msgid "94 MiB"
1464
msgid "94 MiB"
1401
msgstr "94 MiB"
1465
msgstr "94 MiB"
1402
1466
1403
#. type: tbl table
1467
#. type: tbl table
1404
#: ../src/xz/xz.1:712 ../src/xz/xz.1:2240 ../src/xz/xz.1:2265
1468
#: ../src/xz/xz.1:767 ../src/xz/xz.1:2456 ../src/xz/xz.1:2481
1405
#: ../src/xz/xz.1:2630
1469
#: ../src/xz/xz.1:2846
1406
#, no-wrap
1470
#, no-wrap
1407
msgid "-6"
1471
msgid "-6"
1408
msgstr "-6"
1472
msgstr "-6"
1409
1473
1410
#. type: tbl table
1474
#. type: tbl table
1411
#: ../src/xz/xz.1:712 ../src/xz/xz.1:713 ../src/xz/xz.1:714 ../src/xz/xz.1:715
1475
#: ../src/xz/xz.1:767 ../src/xz/xz.1:768 ../src/xz/xz.1:769 ../src/xz/xz.1:770
1412
#: ../src/xz/xz.1:2630
1476
#: ../src/xz/xz.1:2846
1413
#, no-wrap
1477
#, no-wrap
1414
msgid "6"
1478
msgid "6"
1415
msgstr "6"
1479
msgstr "6"
1416
1480
1417
#. type: tbl table
1481
#. type: tbl table
1418
#: ../src/xz/xz.1:713 ../src/xz/xz.1:2241 ../src/xz/xz.1:2266
1482
#: ../src/xz/xz.1:768 ../src/xz/xz.1:2457 ../src/xz/xz.1:2482
1419
#, no-wrap
1483
#, no-wrap
1420
msgid "-7"
1484
msgid "-7"
1421
msgstr "-7"
1485
msgstr "-7"
1422
1486
1423
#. type: tbl table
1487
#. type: tbl table
1424
#: ../src/xz/xz.1:713 ../src/xz/xz.1:794 ../src/xz/xz.1:2241
1488
#: ../src/xz/xz.1:768 ../src/xz/xz.1:849 ../src/xz/xz.1:2457
1425
#: ../src/xz/xz.1:2242 ../src/xz/xz.1:2263
1489
#: ../src/xz/xz.1:2458 ../src/xz/xz.1:2479
1426
#, no-wrap
1490
#, no-wrap
1427
msgid "16 MiB"
1491
msgid "16 MiB"
1428
msgstr "16 MiB"
1492
msgstr "16 MiB"
1429
1493
1430
#. type: tbl table
1494
#. type: tbl table
1431
#: ../src/xz/xz.1:713 ../src/xz/xz.1:794 ../src/xz/xz.1:2266
1495
#: ../src/xz/xz.1:768 ../src/xz/xz.1:849 ../src/xz/xz.1:2482
1432
#, no-wrap
1496
#, no-wrap
1433
msgid "186 MiB"
1497
msgid "186 MiB"
1434
msgstr "186 MiB"
1498
msgstr "186 MiB"
1435
1499
1436
#. type: tbl table
1500
#. type: tbl table
1437
#: ../src/xz/xz.1:714 ../src/xz/xz.1:2242 ../src/xz/xz.1:2267
1501
#: ../src/xz/xz.1:769 ../src/xz/xz.1:2458 ../src/xz/xz.1:2483
1438
#, no-wrap
1502
#, no-wrap
1439
msgid "-8"
1503
msgid "-8"
1440
msgstr "-8"
1504
msgstr "-8"
1441
1505
1442
#. type: tbl table
1506
#. type: tbl table
1443
#: ../src/xz/xz.1:714 ../src/xz/xz.1:795 ../src/xz/xz.1:2267
1507
#: ../src/xz/xz.1:769 ../src/xz/xz.1:850 ../src/xz/xz.1:2483
1444
#, no-wrap
1508
#, no-wrap
1445
msgid "370 MiB"
1509
msgid "370 MiB"
1446
msgstr "370 MiB"
1510
msgstr "370 MiB"
1447
1511
1448
#. type: tbl table
1512
#. type: tbl table
1449
#: ../src/xz/xz.1:714 ../src/xz/xz.1:795
1513
#: ../src/xz/xz.1:769 ../src/xz/xz.1:850
1450
#, no-wrap
1514
#, no-wrap
1451
msgid "33 MiB"
1515
msgid "33 MiB"
1452
msgstr "33 MiB"
1516
msgstr "33 MiB"
1453
1517
1454
#. type: tbl table
1518
#. type: tbl table
1455
#: ../src/xz/xz.1:715 ../src/xz/xz.1:2243 ../src/xz/xz.1:2268
1519
#: ../src/xz/xz.1:770 ../src/xz/xz.1:2459 ../src/xz/xz.1:2484
1456
#, no-wrap
1520
#, no-wrap
1457
msgid "-9"
1521
msgid "-9"
1458
msgstr "-9"
1522
msgstr "-9"
1459
1523
1460
#. type: tbl table
1524
#. type: tbl table
1461
#: ../src/xz/xz.1:715 ../src/xz/xz.1:796 ../src/xz/xz.1:2243
1525
#: ../src/xz/xz.1:770 ../src/xz/xz.1:851 ../src/xz/xz.1:2459
1462
#, no-wrap
1526
#, no-wrap
1463
msgid "64 MiB"
1527
msgid "64 MiB"
1464
msgstr "64 MiB"
1528
msgstr "64 MiB"
1465
1529
1466
#. type: tbl table
1530
#. type: tbl table
1467
#: ../src/xz/xz.1:715 ../src/xz/xz.1:796 ../src/xz/xz.1:2268
1531
#: ../src/xz/xz.1:770 ../src/xz/xz.1:851 ../src/xz/xz.1:2484
1468
#, no-wrap
1532
#, no-wrap
1469
msgid "674 MiB"
1533
msgid "674 MiB"
1470
msgstr "674 MiB"
1534
msgstr "674 MiB"
1471
1535
1472
#. type: tbl table
1536
#. type: tbl table
1473
#: ../src/xz/xz.1:715 ../src/xz/xz.1:796
1537
#: ../src/xz/xz.1:770 ../src/xz/xz.1:851
1474
#, no-wrap
1538
#, no-wrap
1475
msgid "65 MiB"
1539
msgid "65 MiB"
1476
msgstr "65 MiB"
1540
msgstr "65 MiB"
1477
1541
1478
#. type: Plain text
1542
#. type: Plain text
1479
#: ../src/xz/xz.1:721
1543
#: ../src/xz/xz.1:776
1480
msgid "Column descriptions:"
1544
msgid "Column descriptions:"
1481
msgstr "Spaltenbeschreibungen:"
1545
msgstr "Spaltenbeschreibungen:"
1482
1546
1483
#. type: Plain text
1547
#. type: Plain text
1484
#: ../src/xz/xz.1:733
1548
#: ../src/xz/xz.1:788
1485
msgid ""
1549
msgid ""
1486
"DictSize is the LZMA2 dictionary size.  It is waste of memory to use a "
1550
"DictSize is the LZMA2 dictionary size.  It is waste of memory to use a "
1487
"dictionary bigger than the size of the uncompressed file.  This is why it is "
1551
"dictionary bigger than the size of the uncompressed file.  This is why it is "
Lines 1489-1503 Link Here
1489
"for them.  At B<-6> and lower, the amount of memory wasted is usually low "
1553
"for them.  At B<-6> and lower, the amount of memory wasted is usually low "
1490
"enough to not matter."
1554
"enough to not matter."
1491
msgstr ""
1555
msgstr ""
1492
"DictGröße ist die Größe des LZMA2-Wörterbuchs. Es ist Speicherverschwendung, "
1556
"Wörtb.Größe ist die Größe des LZMA2-Wörterbuchs. Es ist "
1493
"ein Wörterbuch zu verwenden, das größer als die unkomprimierte Datei ist. "
1557
"Speicherverschwendung, ein Wörterbuch zu verwenden, das größer als die "
1494
"Daher ist es besser, die Voreinstellungen B<-7> … B<-9> zu vermeiden, falls "
1558
"unkomprimierte Datei ist. Daher ist es besser, die Voreinstellungen B<-7> … "
1495
"es keinen wirklichen Bedarf dafür gibt. Mit B<-6> und weniger wird "
1559
"B<-9> zu vermeiden, falls es keinen wirklichen Bedarf dafür gibt. Mit B<-6> "
1496
"üblicherweise so wenig Speicher verschwendet, dass dies nicht ins Gewicht "
1560
"und weniger wird üblicherweise so wenig Speicher verschwendet, dass dies "
1497
"fällt."
1561
"nicht ins Gewicht fällt."
1498
1562
1499
#. type: Plain text
1563
#. type: Plain text
1500
#: ../src/xz/xz.1:742
1564
#: ../src/xz/xz.1:797
1501
msgid ""
1565
msgid ""
1502
"CompCPU is a simplified representation of the LZMA2 settings that affect "
1566
"CompCPU is a simplified representation of the LZMA2 settings that affect "
1503
"compression speed.  The dictionary size affects speed too, so while CompCPU "
1567
"compression speed.  The dictionary size affects speed too, so while CompCPU "
Lines 1505-1532 Link Here
1505
"little slower.  To get even slower and thus possibly better compression, see "
1569
"little slower.  To get even slower and thus possibly better compression, see "
1506
"B<--extreme>."
1570
"B<--extreme>."
1507
msgstr ""
1571
msgstr ""
1508
"KompCPU ist eine vereinfachte Repräsentation der LZMA2-Einstellungen, welche "
1572
"KomprCPU ist eine vereinfachte Repräsentation der LZMA2-Einstellungen, "
1509
"die Kompressionsgeschwindigkeit beeinflussen. Die Wörterbuchgröße wirkt sich "
1573
"welche die Kompressionsgeschwindigkeit beeinflussen. Die Wörterbuchgröße "
1510
"ebenfalls auf die Geschwindigkeit aus. Während KompCPU für die Stufen B<-6> "
1574
"wirkt sich ebenfalls auf die Geschwindigkeit aus. Während KompCPU für die "
1511
"bis B<-9> gleich ist, tendieren höhere Stufen dazu, etwas langsamer zu sein. "
1575
"Stufen B<-6> bis B<-9> gleich ist, tendieren höhere Stufen dazu, etwas "
1512
"Um eine noch langsamere, aber möglicherweise bessere Kompression zu "
1576
"langsamer zu sein. Um eine noch langsamere, aber möglicherweise bessere "
1513
"erhalten, siehe B<--extreme>."
1577
"Kompression zu erhalten, siehe B<--extreme>."
1514
1578
1515
#. type: Plain text
1579
#. type: Plain text
1516
#: ../src/xz/xz.1:750
1580
#: ../src/xz/xz.1:805
1517
msgid ""
1581
msgid ""
1518
"CompMem contains the compressor memory requirements in the single-threaded "
1582
"CompMem contains the compressor memory requirements in the single-threaded "
1519
"mode.  It may vary slightly between B<xz> versions.  Memory requirements of "
1583
"mode.  It may vary slightly between B<xz> versions.  Memory requirements of "
1520
"some of the future multithreaded modes may be dramatically higher than that "
1584
"some of the future multithreaded modes may be dramatically higher than that "
1521
"of the single-threaded mode."
1585
"of the single-threaded mode."
1522
msgstr ""
1586
msgstr ""
1523
"KompSpeicher enthält den Speicherbedarf des Kompressors im Einzel-Thread-"
1587
"KompSpeich enthält den Speicherbedarf des Kompressors im Einzel-Thread-"
1524
"Modus. Dieser kann zwischen den B<xz>-Versionen leicht variieren. Der "
1588
"Modus. Dieser kann zwischen den B<xz>-Versionen leicht variieren. Der "
1525
"Speicherbedarf einiger der zukünftigen Multithread-Modi kann dramatisch "
1589
"Speicherbedarf einiger der zukünftigen Multithread-Modi kann dramatisch "
1526
"höher sein als im Einzel-Thread-Modus."
1590
"höher sein als im Einzel-Thread-Modus."
1527
1591
1528
#. type: Plain text
1592
#. type: Plain text
1529
#: ../src/xz/xz.1:757
1593
#: ../src/xz/xz.1:812
1530
msgid ""
1594
msgid ""
1531
"DecMem contains the decompressor memory requirements.  That is, the "
1595
"DecMem contains the decompressor memory requirements.  That is, the "
1532
"compression settings determine the memory requirements of the decompressor.  "
1596
"compression settings determine the memory requirements of the decompressor.  "
Lines 1534-1553 Link Here
1534
"dictionary size, but the values in the table have been rounded up to the "
1598
"dictionary size, but the values in the table have been rounded up to the "
1535
"next full MiB."
1599
"next full MiB."
1536
msgstr ""
1600
msgstr ""
1537
"DekSpeicher enthält den Speicherbedarf für die Dekompression. Das bedeutet, "
1601
"DekompSpeich enthält den Speicherbedarf für die Dekompression. Das bedeutet, "
1538
"dass die Kompressionseinstellungen den Speicherbedarf bei der Dekompression "
1602
"dass die Kompressionseinstellungen den Speicherbedarf bei der Dekompression "
1539
"bestimmen. Der exakte Speicherbedarf bei der Dekompression ist geringfügig "
1603
"bestimmen. Der exakte Speicherbedarf bei der Dekompression ist geringfügig "
1540
"größer als die Größe des LZMA2-Wörterbuchs, aber die Werte in der Tabelle "
1604
"größer als die Größe des LZMA2-Wörterbuchs, aber die Werte in der Tabelle "
1541
"wurden auf ganze MiB aufgerundet."
1605
"wurden auf ganze MiB aufgerundet."
1542
1606
1543
#. type: TP
1607
#. type: TP
1544
#: ../src/xz/xz.1:758
1608
#: ../src/xz/xz.1:813
1545
#, no-wrap
1609
#, no-wrap
1546
msgid "B<-e>, B<--extreme>"
1610
msgid "B<-e>, B<--extreme>"
1547
msgstr "B<-e>, B<--extreme>"
1611
msgstr "B<-e>, B<--extreme>"
1548
1612
1549
#. type: Plain text
1613
#. type: Plain text
1550
#: ../src/xz/xz.1:767
1614
#: ../src/xz/xz.1:822
1551
msgid ""
1615
msgid ""
1552
"Use a slower variant of the selected compression preset level (B<-0> ... "
1616
"Use a slower variant of the selected compression preset level (B<-0> ... "
1553
"B<-9>)  to hopefully get a little bit better compression ratio, but with bad "
1617
"B<-9>)  to hopefully get a little bit better compression ratio, but with bad "
Lines 1560-1569 Link Here
1560
"Kompressionsverhältnis zu erreichen, das aber in ungünstigen Fällen auch "
1624
"Kompressionsverhältnis zu erreichen, das aber in ungünstigen Fällen auch "
1561
"schlechter werden kann. Der Speicherverbrauch bei der Dekompression wird "
1625
"schlechter werden kann. Der Speicherverbrauch bei der Dekompression wird "
1562
"dabei nicht beeinflusst, aber der Speicherverbrauch der Kompression steigt "
1626
"dabei nicht beeinflusst, aber der Speicherverbrauch der Kompression steigt "
1563
"in der Voreinstellungsstufen B<-0> bis B<-3> geringfügig an."
1627
"in den Voreinstellungsstufen B<-0> bis B<-3> geringfügig an."
1564
1628
1565
#. type: Plain text
1629
#. type: Plain text
1566
#: ../src/xz/xz.1:779
1630
#: ../src/xz/xz.1:834
1567
msgid ""
1631
msgid ""
1568
"Since there are two presets with dictionary sizes 4\\ MiB and 8\\ MiB, the "
1632
"Since there are two presets with dictionary sizes 4\\ MiB and 8\\ MiB, the "
1569
"presets B<-3e> and B<-5e> use slightly faster settings (lower CompCPU) than "
1633
"presets B<-3e> and B<-5e> use slightly faster settings (lower CompCPU) than "
Lines 1575-1667 Link Here
1575
"diese Weise sind zwei Voreinstellungen nie identisch."
1639
"diese Weise sind zwei Voreinstellungen nie identisch."
1576
1640
1577
#. type: tbl table
1641
#. type: tbl table
1578
#: ../src/xz/xz.1:787
1642
#: ../src/xz/xz.1:842
1579
#, no-wrap
1643
#, no-wrap
1580
msgid "-0e"
1644
msgid "-0e"
1581
msgstr "-0e"
1645
msgstr "-0e"
1582
1646
1583
#. type: tbl table
1647
#. type: tbl table
1584
#: ../src/xz/xz.1:787 ../src/xz/xz.1:788 ../src/xz/xz.1:789 ../src/xz/xz.1:791
1648
#: ../src/xz/xz.1:842 ../src/xz/xz.1:843 ../src/xz/xz.1:844 ../src/xz/xz.1:846
1585
#: ../src/xz/xz.1:793 ../src/xz/xz.1:794 ../src/xz/xz.1:795 ../src/xz/xz.1:796
1649
#: ../src/xz/xz.1:848 ../src/xz/xz.1:849 ../src/xz/xz.1:850 ../src/xz/xz.1:851
1586
#: ../src/xz/xz.1:2632
1650
#: ../src/xz/xz.1:2848
1587
#, no-wrap
1651
#, no-wrap
1588
msgid "8"
1652
msgid "8"
1589
msgstr "8"
1653
msgstr "8"
1590
1654
1591
#. type: tbl table
1655
#. type: tbl table
1592
#: ../src/xz/xz.1:788
1656
#: ../src/xz/xz.1:843
1593
#, no-wrap
1657
#, no-wrap
1594
msgid "-1e"
1658
msgid "-1e"
1595
msgstr "-1e"
1659
msgstr "-1e"
1596
1660
1597
#. type: tbl table
1661
#. type: tbl table
1598
#: ../src/xz/xz.1:788
1662
#: ../src/xz/xz.1:843
1599
#, no-wrap
1663
#, no-wrap
1600
msgid "13 MiB"
1664
msgid "13 MiB"
1601
msgstr "13 MiB"
1665
msgstr "13 MiB"
1602
1666
1603
#. type: tbl table
1667
#. type: tbl table
1604
#: ../src/xz/xz.1:789
1668
#: ../src/xz/xz.1:844
1605
#, no-wrap
1669
#, no-wrap
1606
msgid "-2e"
1670
msgid "-2e"
1607
msgstr "-2e"
1671
msgstr "-2e"
1608
1672
1609
#. type: tbl table
1673
#. type: tbl table
1610
#: ../src/xz/xz.1:789
1674
#: ../src/xz/xz.1:844
1611
#, no-wrap
1675
#, no-wrap
1612
msgid "25 MiB"
1676
msgid "25 MiB"
1613
msgstr "25 MiB"
1677
msgstr "25 MiB"
1614
1678
1615
#. type: tbl table
1679
#. type: tbl table
1616
#: ../src/xz/xz.1:790
1680
#: ../src/xz/xz.1:845
1617
#, no-wrap
1681
#, no-wrap
1618
msgid "-3e"
1682
msgid "-3e"
1619
msgstr "-3e"
1683
msgstr "-3e"
1620
1684
1621
#. type: tbl table
1685
#. type: tbl table
1622
#: ../src/xz/xz.1:790 ../src/xz/xz.1:792 ../src/xz/xz.1:2631
1686
#: ../src/xz/xz.1:845 ../src/xz/xz.1:847 ../src/xz/xz.1:2847
1623
#, no-wrap
1687
#, no-wrap
1624
msgid "7"
1688
msgid "7"
1625
msgstr "7"
1689
msgstr "7"
1626
1690
1627
#. type: tbl table
1691
#. type: tbl table
1628
#: ../src/xz/xz.1:791
1692
#: ../src/xz/xz.1:846
1629
#, no-wrap
1693
#, no-wrap
1630
msgid "-4e"
1694
msgid "-4e"
1631
msgstr "-4e"
1695
msgstr "-4e"
1632
1696
1633
#. type: tbl table
1697
#. type: tbl table
1634
#: ../src/xz/xz.1:792 ../src/xz/xz.1:2631
1698
#: ../src/xz/xz.1:847 ../src/xz/xz.1:2847
1635
#, no-wrap
1699
#, no-wrap
1636
msgid "-5e"
1700
msgid "-5e"
1637
msgstr "-5e"
1701
msgstr "-5e"
1638
1702
1639
#. type: tbl table
1703
#. type: tbl table
1640
#: ../src/xz/xz.1:793 ../src/xz/xz.1:2632
1704
#: ../src/xz/xz.1:848 ../src/xz/xz.1:2848
1641
#, no-wrap
1705
#, no-wrap
1642
msgid "-6e"
1706
msgid "-6e"
1643
msgstr "-6e"
1707
msgstr "-6e"
1644
1708
1645
#. type: tbl table
1709
#. type: tbl table
1646
#: ../src/xz/xz.1:794
1710
#: ../src/xz/xz.1:849
1647
#, no-wrap
1711
#, no-wrap
1648
msgid "-7e"
1712
msgid "-7e"
1649
msgstr "-7e"
1713
msgstr "-7e"
1650
1714
1651
#. type: tbl table
1715
#. type: tbl table
1652
#: ../src/xz/xz.1:795
1716
#: ../src/xz/xz.1:850
1653
#, no-wrap
1717
#, no-wrap
1654
msgid "-8e"
1718
msgid "-8e"
1655
msgstr "-8e"
1719
msgstr "-8e"
1656
1720
1657
#. type: tbl table
1721
#. type: tbl table
1658
#: ../src/xz/xz.1:796
1722
#: ../src/xz/xz.1:851
1659
#, no-wrap
1723
#, no-wrap
1660
msgid "-9e"
1724
msgid "-9e"
1661
msgstr "-9e"
1725
msgstr "-9e"
1662
1726
1663
#. type: Plain text
1727
#. type: Plain text
1664
#: ../src/xz/xz.1:808
1728
#: ../src/xz/xz.1:863
1665
msgid ""
1729
msgid ""
1666
"For example, there are a total of four presets that use 8\\ MiB dictionary, "
1730
"For example, there are a total of four presets that use 8\\ MiB dictionary, "
1667
"whose order from the fastest to the slowest is B<-5>, B<-6>, B<-5e>, and "
1731
"whose order from the fastest to the slowest is B<-5>, B<-6>, B<-5e>, and "
Lines 1672-1690 Link Here
1672
"B<-5>, B<-6>, B<-5e> und B<-6e> ist."
1736
"B<-5>, B<-6>, B<-5e> und B<-6e> ist."
1673
1737
1674
#. type: TP
1738
#. type: TP
1675
#: ../src/xz/xz.1:808
1739
#: ../src/xz/xz.1:863
1676
#, no-wrap
1740
#, no-wrap
1677
msgid "B<--fast>"
1741
msgid "B<--fast>"
1678
msgstr "B<--fast>"
1742
msgstr "B<--fast>"
1679
1743
1680
#. type: TP
1744
#. type: TP
1681
#: ../src/xz/xz.1:811
1745
#: ../src/xz/xz.1:866
1682
#, no-wrap
1746
#, no-wrap
1683
msgid "B<--best>"
1747
msgid "B<--best>"
1684
msgstr "B<--best>"
1748
msgstr "B<--best>"
1685
1749
1686
#. type: Plain text
1750
#. type: Plain text
1687
#: ../src/xz/xz.1:822
1751
#: ../src/xz/xz.1:877
1688
msgid ""
1752
msgid ""
1689
"These are somewhat misleading aliases for B<-0> and B<-9>, respectively.  "
1753
"These are somewhat misleading aliases for B<-0> and B<-9>, respectively.  "
1690
"These are provided only for backwards compatibility with LZMA Utils.  Avoid "
1754
"These are provided only for backwards compatibility with LZMA Utils.  Avoid "
Lines 1695-1708 Link Here
1695
"bereitgestellt. Sie sollten diese Optionen besser nicht verwenden."
1759
"bereitgestellt. Sie sollten diese Optionen besser nicht verwenden."
1696
1760
1697
#. type: TP
1761
#. type: TP
1698
#: ../src/xz/xz.1:822
1762
#: ../src/xz/xz.1:877
1699
#, no-wrap
1763
#, no-wrap
1700
msgid "B<--block-size=>I<size>"
1764
msgid "B<--block-size=>I<size>"
1701
msgstr "B<--block-size=>I<Größe>"
1765
msgstr "B<--block-size=>I<Größe>"
1702
1766
1703
# CHECK multi-threading and makes limited random-access
1767
# CHECK multi-threading and makes limited random-access
1704
#. type: Plain text
1768
#. type: Plain text
1705
#: ../src/xz/xz.1:835
1769
#: ../src/xz/xz.1:890
1706
msgid ""
1770
msgid ""
1707
"When compressing to the B<.xz> format, split the input data into blocks of "
1771
"When compressing to the B<.xz> format, split the input data into blocks of "
1708
"I<size> bytes.  The blocks are compressed independently from each other, "
1772
"I<size> bytes.  The blocks are compressed independently from each other, "
Lines 1719-1734 Link Here
1719
"sie kann auch im Einzel-Thread-Modus angewendet werden."
1783
"sie kann auch im Einzel-Thread-Modus angewendet werden."
1720
1784
1721
#. type: Plain text
1785
#. type: Plain text
1722
#: ../src/xz/xz.1:853
1786
#: ../src/xz/xz.1:908
1723
msgid ""
1787
msgid ""
1724
"In multi-threaded mode about three times I<size> bytes will be allocated in "
1788
"In multi-threaded mode about three times I<size> bytes will be allocated in "
1725
"each thread for buffering input and output.  The default I<size> is three "
1789
"each thread for buffering input and output.  The default I<size> is three "
1726
"times the LZMA2 dictionary size or 1 MiB, whichever is more.  Typically a "
1790
"times the LZMA2 dictionary size or 1 MiB, whichever is more.  Typically a "
1727
"good value is 2-4 times the size of the LZMA2 dictionary or at least 1 MiB.  "
1791
"good value is 2\\(en4 times the size of the LZMA2 dictionary or at least 1 "
1728
"Using I<size> less than the LZMA2 dictionary size is waste of RAM because "
1792
"MiB.  Using I<size> less than the LZMA2 dictionary size is waste of RAM "
1729
"then the LZMA2 dictionary buffer will never get fully used.  The sizes of "
1793
"because then the LZMA2 dictionary buffer will never get fully used.  The "
1730
"the blocks are stored in the block headers, which a future version of B<xz> "
1794
"sizes of the blocks are stored in the block headers, which a future version "
1731
"will use for multi-threaded decompression."
1795
"of B<xz> will use for multi-threaded decompression."
1732
msgstr ""
1796
msgstr ""
1733
"Im Multi-Thread-Modus wird etwa die dreifache I<Größe> in jedem Thread zur "
1797
"Im Multi-Thread-Modus wird etwa die dreifache I<Größe> in jedem Thread zur "
1734
"Pufferung der Ein- und Ausgabe belegt. Die vorgegebene I<Größe> ist das "
1798
"Pufferung der Ein- und Ausgabe belegt. Die vorgegebene I<Größe> ist das "
Lines 1741-1747 Link Here
1741
"Version von B<xz> für eine Multi-Thread-Dekompression genutzt wird."
1805
"Version von B<xz> für eine Multi-Thread-Dekompression genutzt wird."
1742
1806
1743
#. type: Plain text
1807
#. type: Plain text
1744
#: ../src/xz/xz.1:862
1808
#: ../src/xz/xz.1:917
1745
msgid ""
1809
msgid ""
1746
"In single-threaded mode no block splitting is done by default.  Setting this "
1810
"In single-threaded mode no block splitting is done by default.  Setting this "
1747
"option doesn't affect memory usage.  No size information is stored in block "
1811
"option doesn't affect memory usage.  No size information is stored in block "
Lines 1759-1771 Link Here
1759
"die Dateien im Multi-Thread-Modus zu dekomprimieren."
1823
"die Dateien im Multi-Thread-Modus zu dekomprimieren."
1760
1824
1761
#. type: TP
1825
#. type: TP
1762
#: ../src/xz/xz.1:862
1826
#: ../src/xz/xz.1:917
1763
#, no-wrap
1827
#, no-wrap
1764
msgid "B<--block-list=>I<sizes>"
1828
msgid "B<--block-list=>I<sizes>"
1765
msgstr "B<--block-list=>I<Größen>"
1829
msgstr "B<--block-list=>I<Größen>"
1766
1830
1767
#. type: Plain text
1831
#. type: Plain text
1768
#: ../src/xz/xz.1:868
1832
#: ../src/xz/xz.1:923
1769
msgid ""
1833
msgid ""
1770
"When compressing to the B<.xz> format, start a new block after the given "
1834
"When compressing to the B<.xz> format, start a new block after the given "
1771
"intervals of uncompressed data."
1835
"intervals of uncompressed data."
Lines 1774-1780 Link Here
1774
"Intervallen unkomprimierter Daten einen neuen Block."
1838
"Intervallen unkomprimierter Daten einen neuen Block."
1775
1839
1776
#. type: Plain text
1840
#. type: Plain text
1777
#: ../src/xz/xz.1:874
1841
#: ../src/xz/xz.1:929
1778
msgid ""
1842
msgid ""
1779
"The uncompressed I<sizes> of the blocks are specified as a comma-separated "
1843
"The uncompressed I<sizes> of the blocks are specified as a comma-separated "
1780
"list.  Omitting a size (two or more consecutive commas) is a shorthand to "
1844
"list.  Omitting a size (two or more consecutive commas) is a shorthand to "
Lines 1786-1792 Link Here
1786
"Blocks zu verwenden."
1850
"Blocks zu verwenden."
1787
1851
1788
#. type: Plain text
1852
#. type: Plain text
1789
#: ../src/xz/xz.1:884
1853
#: ../src/xz/xz.1:939
1790
msgid ""
1854
msgid ""
1791
"If the input file is bigger than the sum of I<sizes>, the last value in "
1855
"If the input file is bigger than the sum of I<sizes>, the last value in "
1792
"I<sizes> is repeated until the end of the file.  A special value of B<0> may "
1856
"I<sizes> is repeated until the end of the file.  A special value of B<0> may "
Lines 1800-1806 Link Here
1800
1864
1801
# FIXME encoder → compressor
1865
# FIXME encoder → compressor
1802
#. type: Plain text
1866
#. type: Plain text
1803
#: ../src/xz/xz.1:899
1867
#: ../src/xz/xz.1:954
1804
msgid ""
1868
msgid ""
1805
"If one specifies I<sizes> that exceed the encoder's block size (either the "
1869
"If one specifies I<sizes> that exceed the encoder's block size (either the "
1806
"default value in threaded mode or the value specified with B<--block-"
1870
"default value in threaded mode or the value specified with B<--block-"
Lines 1819-1825 Link Here
1819
"ist, erhalten Sie 11 Blöcke: 5, 10, 8, 10, 2, 10, 10, 4, 10, 10 und 1 MiB."
1883
"ist, erhalten Sie 11 Blöcke: 5, 10, 8, 10, 2, 10, 10, 4, 10, 10 und 1 MiB."
1820
1884
1821
#. type: Plain text
1885
#. type: Plain text
1822
#: ../src/xz/xz.1:905
1886
#: ../src/xz/xz.1:960
1823
msgid ""
1887
msgid ""
1824
"In multi-threaded mode the sizes of the blocks are stored in the block "
1888
"In multi-threaded mode the sizes of the blocks are stored in the block "
1825
"headers.  This isn't done in single-threaded mode, so the encoded output "
1889
"headers.  This isn't done in single-threaded mode, so the encoded output "
Lines 1830-1842 Link Here
1830
"kodierte Ausgabe zu der im Multi-Thread-Modus nicht identisch sein."
1894
"kodierte Ausgabe zu der im Multi-Thread-Modus nicht identisch sein."
1831
1895
1832
#. type: TP
1896
#. type: TP
1833
#: ../src/xz/xz.1:905
1897
#: ../src/xz/xz.1:960
1834
#, no-wrap
1898
#, no-wrap
1835
msgid "B<--flush-timeout=>I<timeout>"
1899
msgid "B<--flush-timeout=>I<timeout>"
1836
msgstr "B<--flush-timeout=>I<Zeit>"
1900
msgstr "B<--flush-timeout=>I<Zeit>"
1837
1901
1838
#. type: Plain text
1902
#. type: Plain text
1839
#: ../src/xz/xz.1:922
1903
#: ../src/xz/xz.1:977
1840
msgid ""
1904
msgid ""
1841
"When compressing, if more than I<timeout> milliseconds (a positive integer) "
1905
"When compressing, if more than I<timeout> milliseconds (a positive integer) "
1842
"has passed since the previous flush and reading more input would block, all "
1906
"has passed since the previous flush and reading more input would block, all "
Lines 1856-1862 Link Here
1856
"ein besseres Kompressionsverhältnis bewirken."
1920
"ein besseres Kompressionsverhältnis bewirken."
1857
1921
1858
#. type: Plain text
1922
#. type: Plain text
1859
#: ../src/xz/xz.1:930
1923
#: ../src/xz/xz.1:985
1860
msgid ""
1924
msgid ""
1861
"This feature is disabled by default.  If this option is specified more than "
1925
"This feature is disabled by default.  If this option is specified more than "
1862
"once, the last one takes effect.  The special I<timeout> value of B<0> can "
1926
"once, the last one takes effect.  The special I<timeout> value of B<0> can "
Lines 1868-1881 Link Here
1868
"Funktionsmerkmal explizit zu deaktivieren."
1932
"Funktionsmerkmal explizit zu deaktivieren."
1869
1933
1870
#. type: Plain text
1934
#. type: Plain text
1871
#: ../src/xz/xz.1:932
1935
#: ../src/xz/xz.1:987
1872
msgid "This feature is not available on non-POSIX systems."
1936
msgid "This feature is not available on non-POSIX systems."
1873
msgstr ""
1937
msgstr ""
1874
"Dieses Funktionsmerkmal ist außerhalb von POSIX-Systemen nicht verfügbar."
1938
"Dieses Funktionsmerkmal ist außerhalb von POSIX-Systemen nicht verfügbar."
1875
1939
1876
#.  FIXME
1940
#.  FIXME
1877
#. type: Plain text
1941
#. type: Plain text
1878
#: ../src/xz/xz.1:940
1942
#: ../src/xz/xz.1:995
1879
msgid ""
1943
msgid ""
1880
"B<This feature is still experimental.> Currently B<xz> is unsuitable for "
1944
"B<This feature is still experimental.> Currently B<xz> is unsuitable for "
1881
"decompressing the stream in real time due to how B<xz> does buffering."
1945
"decompressing the stream in real time due to how B<xz> does buffering."
Lines 1885-1897 Link Here
1885
"ungeeignet."
1949
"ungeeignet."
1886
1950
1887
#. type: TP
1951
#. type: TP
1888
#: ../src/xz/xz.1:940
1952
#: ../src/xz/xz.1:995
1889
#, no-wrap
1953
#, no-wrap
1890
msgid "B<--memlimit-compress=>I<limit>"
1954
msgid "B<--memlimit-compress=>I<limit>"
1891
msgstr "B<--memlimit-compress=>I<Grenze>"
1955
msgstr "B<--memlimit-compress=>I<Grenze>"
1892
1956
1893
#. type: Plain text
1957
#. type: Plain text
1894
#: ../src/xz/xz.1:945
1958
#: ../src/xz/xz.1:1000
1895
msgid ""
1959
msgid ""
1896
"Set a memory usage limit for compression.  If this option is specified "
1960
"Set a memory usage limit for compression.  If this option is specified "
1897
"multiple times, the last one takes effect."
1961
"multiple times, the last one takes effect."
Lines 1900-1930 Link Here
1900
"diese Option mehrmals angegeben wird, ist die zuletzt angegebene wirksam."
1964
"diese Option mehrmals angegeben wird, ist die zuletzt angegebene wirksam."
1901
1965
1902
#. type: Plain text
1966
#. type: Plain text
1903
#: ../src/xz/xz.1:960
1967
#: ../src/xz/xz.1:1013
1904
msgid ""
1968
msgid ""
1905
"If the compression settings exceed the I<limit>, B<xz> will adjust the "
1969
"If the compression settings exceed the I<limit>, B<xz> will attempt to "
1906
"settings downwards so that the limit is no longer exceeded and display a "
1970
"adjust the settings downwards so that the limit is no longer exceeded and "
1907
"notice that automatic adjustment was done.  Such adjustments are not made "
1971
"display a notice that automatic adjustment was done.  The adjustments are "
1908
"when compressing with B<--format=raw> or if B<--no-adjust> has been "
1972
"done in this order: reducing the number of threads, switching to single-"
1909
"specified.  In those cases, an error is displayed and B<xz> will exit with "
1973
"threaded mode if even one thread in multi-threaded mode exceeds the "
1910
"exit status 1."
1974
"I<limit>, and finally reducing the LZMA2 dictionary size."
1911
msgstr ""
1975
msgstr ""
1912
"Falls die Kompressionseinstellungen die I<Grenze> überschreiten, passt B<xz> "
1976
"Falls die Kompressionseinstellungen die I<Grenze> überschreiten, versucht "
1913
"die Einstellungen nach unten an, so dass die Grenze nicht mehr überschritten "
1977
"B<xz>, die Einstellungen nach unten anzupassen, so dass die Grenze nicht "
1914
"wird und zeigt einen Hinweis an, dass eine automatische Anpassung "
1978
"mehr überschritten wird und zeigt einen Hinweis an, dass eine automatische "
1915
"vorgenommen wurde. Solche Anpassungen erfolgen nicht, wenn mit B<--"
1979
"Anpassung vorgenommen wurde. Die Anpassungen werden in folgender Reihenfolge "
1916
"format=raw> komprimiert wird oder wenn B<--no-adjust> angegeben wurde. In "
1980
"angewendet: Reduzierung der Anzahl der Threads, Wechsel in den Einzelthread-"
1917
"diesen Fällen wird eine Fehlermeldung mit dem Exit-Status 1 ausgegeben und "
1981
"Modus, falls sogar ein einziger Thread im Multithread-Modus die I<Grenze> "
1918
"B<xz> mit dem Exit-Status 1 beendet."
1982
"überschreitet, und schlussendlich die Reduzierung der Größe des LZMA2-"
1983
"Wörterbuchs."
1919
1984
1920
#. type: Plain text
1985
#. type: Plain text
1921
#: ../src/xz/xz.1:964
1986
#: ../src/xz/xz.1:1021
1987
msgid ""
1988
"When compressing with B<--format=raw> or if B<--no-adjust> has been "
1989
"specified, only the number of threads may be reduced since it can be done "
1990
"without affecting the compressed output."
1991
msgstr ""
1992
"Beim Komprimieren mit B<--format=raw> oder falls B<--no-adjust> angegeben "
1993
"wurde, wird nur die Anzahl der Threads reduziert, da nur so die komprimierte "
1994
"Ausgabe nicht beeinflusst wird."
1995
1996
#. type: Plain text
1997
#: ../src/xz/xz.1:1028
1998
msgid ""
1999
"If the I<limit> cannot be met even with the adjustments described above, an "
2000
"error is displayed and B<xz> will exit with exit status 1."
2001
msgstr ""
2002
"Falls die I<Grenze> nicht anhand der vorstehend beschriebenen Anpassungen "
2003
"gesetzt werden kann, wird ein Fehler angezeigt und B<xz> wird mit dem Exit-"
2004
"Status 1 beendet."
2005
2006
#. type: Plain text
2007
#: ../src/xz/xz.1:1032
1922
msgid "The I<limit> can be specified in multiple ways:"
2008
msgid "The I<limit> can be specified in multiple ways:"
1923
msgstr "Die I<Grenze> kann auf verschiedene Arten angegeben werden:"
2009
msgstr "Die I<Grenze> kann auf verschiedene Arten angegeben werden:"
1924
2010
1925
# FIXME integer suffix
2011
# FIXME integer suffix
1926
#. type: Plain text
2012
#. type: Plain text
1927
#: ../src/xz/xz.1:974
2013
#: ../src/xz/xz.1:1042
1928
msgid ""
2014
msgid ""
1929
"The I<limit> can be an absolute value in bytes.  Using an integer suffix "
2015
"The I<limit> can be an absolute value in bytes.  Using an integer suffix "
1930
"like B<MiB> can be useful.  Example: B<--memlimit-compress=80MiB>"
2016
"like B<MiB> can be useful.  Example: B<--memlimit-compress=80MiB>"
Lines 1933-1939 Link Here
1933
"kann dabei hilfreich sein. Beispiel: B<--memlimit-compress=80MiB>."
2019
"kann dabei hilfreich sein. Beispiel: B<--memlimit-compress=80MiB>."
1934
2020
1935
#. type: Plain text
2021
#. type: Plain text
1936
#: ../src/xz/xz.1:986
2022
#: ../src/xz/xz.1:1054
1937
msgid ""
2023
msgid ""
1938
"The I<limit> can be specified as a percentage of total physical memory "
2024
"The I<limit> can be specified as a percentage of total physical memory "
1939
"(RAM).  This can be useful especially when setting the B<XZ_DEFAULTS> "
2025
"(RAM).  This can be useful especially when setting the B<XZ_DEFAULTS> "
Lines 1949-2000 Link Here
1949
"compress=70%>"
2035
"compress=70%>"
1950
2036
1951
#. type: Plain text
2037
#. type: Plain text
1952
#: ../src/xz/xz.1:1006
2038
#: ../src/xz/xz.1:1064
1953
msgid ""
2039
msgid ""
1954
"The I<limit> can be reset back to its default value by setting it to B<0>.  "
2040
"The I<limit> can be reset back to its default value by setting it to B<0>.  "
1955
"This is currently equivalent to setting the I<limit> to B<max> (no memory "
2041
"This is currently equivalent to setting the I<limit> to B<max> (no memory "
1956
"usage limit).  Once multithreading support has been implemented, there may "
2042
"usage limit)."
1957
"be a difference between B<0> and B<max> for the multithreaded case, so it is "
1958
"recommended to use B<0> instead of B<max> until the details have been "
1959
"decided."
1960
msgstr ""
2043
msgstr ""
1961
"Mit B<0> kann die I<Grenze> auf den Standardwert zurückgesetzt werden. Dies "
2044
"Mit B<0> kann die I<Grenze> auf den Standardwert zurückgesetzt werden. Dies "
1962
"ist gegenwärtig gleichbedeutend mit dem Setzen der I<Grenze> auf B<max> "
2045
"ist gegenwärtig gleichbedeutend mit dem Setzen der I<Grenze> auf B<max> "
1963
"(keine Speicherbegrenzung). Sobald die Unterstützung für Multi-Threading "
2046
"(keine Speicherbegrenzung)."
1964
"implementiert wurde, kann es im Multi-Thread-Fall einen Unterschied zwischen "
1965
"B<0> und B<max> geben, daher wird empfohlen, B<0> anstelle von B<max> zu "
1966
"verwenden, bis die Einzelheiten hierzu geklärt sind."
1967
2047
1968
#. type: Plain text
2048
#. type: Plain text
1969
#: ../src/xz/xz.1:1026
2049
#: ../src/xz/xz.1:1088
1970
msgid ""
2050
msgid ""
1971
"For 32-bit B<xz> there is a special case: if the I<limit> would be over "
2051
"For 32-bit B<xz> there is a special case: if the I<limit> would be over "
1972
"B<4020\\ MiB>, the I<limit> is set to B<4020\\ MiB>.  (The values B<0> and "
2052
"B<4020\\ MiB>, the I<limit> is set to B<4020\\ MiB>.  On MIPS32 B<2000\\ "
1973
"B<max> aren't affected by this.  A similar feature doesn't exist for "
2053
"MiB> is used instead.  (The values B<0> and B<max> aren't affected by this.  "
1974
"decompression.)  This can be helpful when a 32-bit executable has access to "
2054
"A similar feature doesn't exist for decompression.)  This can be helpful "
1975
"4\\ GiB address space while hopefully doing no harm in other situations."
2055
"when a 32-bit executable has access to 4\\ GiB address space (2 GiB on "
2056
"MIPS32)  while hopefully doing no harm in other situations."
1976
msgstr ""
2057
msgstr ""
1977
"Für die 32-Bit-Version von B<xz> gibt es einen Spezialfall: Falls die Grenze "
2058
"Für die 32-Bit-Version von B<xz> gibt es einen Spezialfall: Falls die Grenze "
1978
"über B<4020\\ MiB> liegt, wird die I<Grenze> auf B<4020\\ MiB> gesetzt (die "
2059
"über B<4020\\ MiB> liegt, wird die I<Grenze> auf B<4020\\ MiB> gesetzt. Auf "
1979
"Werte B<0> und B<max> werden hiervon nicht beeinflusst; für die "
2060
"MIPS32 wird stattdessen B<2000\\ MB> verwendet (die Werte B<0> und B<max> "
1980
"Dekompression gibt es keine vergleichbare Funktion). Dies kann hilfreich "
2061
"werden hiervon nicht beeinflusst; für die Dekompression gibt es keine "
1981
"sein, wenn ein 32-Bit-Executable auf einen 4\\ GiB großen Adressraum "
2062
"vergleichbare Funktion). Dies kann hilfreich sein, wenn ein 32-Bit-"
1982
"zugreifen kann, wobei wir hoffen wollen, dass es in anderen Situationen "
2063
"Executable auf einen 4\\ GiB großen Adressraum (2 GiB auf MIPS32) zugreifen "
1983
"keine negativen Effekte hat."
2064
"kann, wobei wir hoffen wollen, dass es in anderen Situationen keine "
2065
"negativen Effekte hat."
1984
2066
1985
#. type: Plain text
2067
#. type: Plain text
1986
#: ../src/xz/xz.1:1029
2068
#: ../src/xz/xz.1:1091
1987
msgid "See also the section B<Memory usage>."
2069
msgid "See also the section B<Memory usage>."
1988
msgstr "Siehe auch den Abschnitt B<Speicherbedarf>."
2070
msgstr "Siehe auch den Abschnitt B<Speicherbedarf>."
1989
2071
1990
#. type: TP
2072
#. type: TP
1991
#: ../src/xz/xz.1:1029
2073
#: ../src/xz/xz.1:1091
1992
#, no-wrap
2074
#, no-wrap
1993
msgid "B<--memlimit-decompress=>I<limit>"
2075
msgid "B<--memlimit-decompress=>I<limit>"
1994
msgstr "B<--memlimit-decompress=>I<Grenze>"
2076
msgstr "B<--memlimit-decompress=>I<Grenze>"
1995
2077
1996
#. type: Plain text
2078
#. type: Plain text
1997
#: ../src/xz/xz.1:1043
2079
#: ../src/xz/xz.1:1105
1998
msgid ""
2080
msgid ""
1999
"Set a memory usage limit for decompression.  This also affects the B<--list> "
2081
"Set a memory usage limit for decompression.  This also affects the B<--list> "
2000
"mode.  If the operation is not possible without exceeding the I<limit>, "
2082
"mode.  If the operation is not possible without exceeding the I<limit>, "
Lines 2008-2072 Link Here
2008
"zu möglichen Wegen, die I<Grenze> anzugeben."
2090
"zu möglichen Wegen, die I<Grenze> anzugeben."
2009
2091
2010
#. type: TP
2092
#. type: TP
2011
#: ../src/xz/xz.1:1043
2093
#: ../src/xz/xz.1:1105
2012
#, no-wrap
2094
#, no-wrap
2095
msgid "B<--memlimit-mt-decompress=>I<limit>"
2096
msgstr "B<--memlimit-mt-decompress=>I<Grenze>"
2097
2098
#. type: Plain text
2099
#: ../src/xz/xz.1:1127
2100
msgid ""
2101
"Set a memory usage limit for multi-threaded decompression.  This can only "
2102
"affect the number of threads; this will never make B<xz> refuse to "
2103
"decompress a file.  If I<limit> is too low to allow any multi-threading, the "
2104
"I<limit> is ignored and B<xz> will continue in single-threaded mode.  Note "
2105
"that if also B<--memlimit-decompress> is used, it will always apply to both "
2106
"single-threaded and multi-threaded modes, and so the effective I<limit> for "
2107
"multi-threading will never be higher than the limit set with B<--memlimit-"
2108
"decompress>."
2109
msgstr ""
2110
"legt eine Begrenzung des Speicherverbrauchs für Multithread-Dekompression "
2111
"fest. Dies beeinflusst lediglich die Anzahl der Threads; B<xz> wird dadurch "
2112
"niemals die Dekompression einer Datei verweigern. Falls die I<Grenze> für "
2113
"jegliches Multithreading zu niedrig ist, wird sie ignoriert und B<xz> setzt "
2114
"im Einzelthread-modus fort. Beachten Sie auch, dass bei der Verwendung von "
2115
"B<--memlimit-decompress> dies stets sowohl auf den Einzelthread-als auch auf "
2116
"den Multithread-Modus angewendet wird und so die effektive I<Grenze> für den "
2117
"Multithread-Modus niemals höher sein wird als die mit B<--memlimit-"
2118
"decompress> gesetzte Grenze."
2119
2120
#. type: Plain text
2121
#: ../src/xz/xz.1:1134
2122
msgid ""
2123
"In contrast to the other memory usage limit options, B<--memlimit-mt-"
2124
"decompress=>I<limit> has a system-specific default I<limit>.  B<xz --info-"
2125
"memory> can be used to see the current value."
2126
msgstr ""
2127
"Im Gegensatz zu anderen Optionen zur Begrenzung des Speicherverbrauchs hat "
2128
"B<--memlimit-mt-decompress=>I<Grenze> eine systemspezifisch vorgegebene "
2129
"I<Grenze>. Mit B<xz --info-memory> können Sie deren aktuellen Wert anzeigen "
2130
"lassen."
2131
2132
#. type: Plain text
2133
#: ../src/xz/xz.1:1150
2134
msgid ""
2135
"This option and its default value exist because without any limit the "
2136
"threaded decompressor could end up allocating an insane amount of memory "
2137
"with some input files.  If the default I<limit> is too low on your system, "
2138
"feel free to increase the I<limit> but never set it to a value larger than "
2139
"the amount of usable RAM as with appropriate input files B<xz> will attempt "
2140
"to use that amount of memory even with a low number of threads.  Running out "
2141
"of memory or swapping will not improve decompression performance."
2142
msgstr ""
2143
"Diese Option und ihr Standardwert existieren, weil die unbegrenzte "
2144
"threadbezogene Dekompression bei einigen Eingabedateien zu unglaublich "
2145
"großem Speicherverbrauch führen würde. Falls die vorgegebene I<Grenze> auf "
2146
"Ihrem System zu niedrig ist, können Sie die I<Grenze> durchaus erhöhen, aber "
2147
"setzen Sie sie niemals auf einen Wert größer als die Menge des nutzbaren "
2148
"Speichers, da B<xz> bei entsprechenden Eingabedateien versuchen wird, diese "
2149
"Menge an Speicher auch bei einer geringen Anzahl von Threads zu verwnden. "
2150
"Speichermangel oder Auslagerung verbessern die Dekomprimierungsleistung "
2151
"nicht."
2152
2153
#. type: Plain text
2154
#: ../src/xz/xz.1:1162
2155
msgid ""
2156
"See B<--memlimit-compress=>I<limit> for possible ways to specify the "
2157
"I<limit>.  Setting I<limit> to B<0> resets the I<limit> to the default "
2158
"system-specific value."
2159
msgstr ""
2160
"Siehe B<--memlimit-compress=>I<Grenze> für mögliche Wege zur Angabe der "
2161
"I<Grenze>.  Sezen der I<Grenze> auf B<0> setzt die I<Grenze> auf den "
2162
"vorgegebenen systemspezifischen Wert zurück."
2163
2164
#. type: TP
2165
#: ../src/xz/xz.1:1163
2166
#, no-wrap
2013
msgid "B<-M> I<limit>, B<--memlimit=>I<limit>, B<--memory=>I<limit>"
2167
msgid "B<-M> I<limit>, B<--memlimit=>I<limit>, B<--memory=>I<limit>"
2014
msgstr "B<-M> I<Grenze>, B<--memlimit=>I<Grenze>, B<--memory=>I<Grenze>"
2168
msgstr "B<-M> I<Grenze>, B<--memlimit=>I<Grenze>, B<--memory=>I<Grenze>"
2015
2169
2016
#. type: Plain text
2170
#. type: Plain text
2017
#: ../src/xz/xz.1:1047
2171
#: ../src/xz/xz.1:1169
2018
msgid ""
2172
msgid ""
2019
"This is equivalent to specifying B<--memlimit-compress=>I<limit >B<--"
2173
"This is equivalent to specifying B<--memlimit-compress=>I<limit> B<--"
2020
"memlimit-decompress=>I<limit>."
2174
"memlimit-decompress=>I<limit> B<--memlimit-mt-decompress=>I<limit>."
2021
msgstr ""
2175
msgstr ""
2022
"Dies ist gleichbedeutend mit B<--memlimit-compress=>I<Grenze >B<--memlimit-"
2176
"Dies ist gleichbedeutend mit B<--memlimit-compress=>I<Grenze> B<--memlimit-"
2023
"decompress=>I<Grenze>."
2177
"decompress=>I<Grenze> B<--memlimit-mt-decompress=>I<Grenze>."
2024
2178
2025
#. type: TP
2179
#. type: TP
2026
#: ../src/xz/xz.1:1047
2180
#: ../src/xz/xz.1:1169
2027
#, no-wrap
2181
#, no-wrap
2028
msgid "B<--no-adjust>"
2182
msgid "B<--no-adjust>"
2029
msgstr "B<--no-adjust>"
2183
msgstr "B<--no-adjust>"
2030
2184
2031
#. type: Plain text
2185
#. type: Plain text
2032
#: ../src/xz/xz.1:1055
2186
#: ../src/xz/xz.1:1179
2033
msgid ""
2187
msgid ""
2034
"Display an error and exit if the compression settings exceed the memory "
2188
"Display an error and exit if the memory usage limit cannot be met without "
2035
"usage limit.  The default is to adjust the settings downwards so that the "
2189
"adjusting settings that affect the compressed output.  That is, this "
2036
"memory usage limit is not exceeded.  Automatic adjusting is always disabled "
2190
"prevents B<xz> from switching the encoder from multi-threaded mode to single-"
2037
"when creating raw streams (B<--format=raw>)."
2191
"threaded mode and from reducing the LZMA2 dictionary size.  Even when this "
2192
"option is used the number of threads may be reduced to meet the memory usage "
2193
"limit as that won't affect the compressed output."
2038
msgstr ""
2194
msgstr ""
2039
"zeigt einen Fehler an und bricht die Ausführung ab, falls die "
2195
"zeigt einen Fehler an und beendet, falls die Grenze der Speichernutzung "
2040
"Kompressionseinstellungen die Begrenzung der Speichernutzung überschreiten. "
2196
"nicht ohne Änderung der Einstellungen, welche die komprimierte Ausgabe "
2041
"Standardmäßig werden die Einstellungen nach unten korrigiert, so dass diese "
2197
"beeinflussen, berücksichtigt werden kann. Das bedeutet, dass B<xz> daran "
2042
"Grenze nicht überschritten wird. Bei der Erzeugung von Rohdatenströmen (B<--"
2198
"gehindert wird, den Encoder vom Multithread-Modus in den Einzelthread-Modus "
2043
"format=raw>) ist die automatische Korrektur stets deaktiviert."
2199
"zu versetzen und die Größe des LZMA2-Wörterbuchs zu reduzieren. Allerdings "
2200
"kann bei Verwendung dieser Option dennoch die Anzahl der Threads reduziert "
2201
"werden, um die Grenze der Speichernutzung zu halten, sofern dies die "
2202
"komprimierte Ausgabe nicht beeinflusst."
2044
2203
2204
#. type: Plain text
2205
#: ../src/xz/xz.1:1182
2206
msgid ""
2207
"Automatic adjusting is always disabled when creating raw streams (B<--"
2208
"format=raw>)."
2209
msgstr ""
2210
"Die automatische Anpassung ist beim Erzeugen von Rohdatenströmen (B<--"
2211
"format=raw>) immer deaktiviert."
2212
2045
#. type: TP
2213
#. type: TP
2046
#: ../src/xz/xz.1:1055
2214
#: ../src/xz/xz.1:1182
2047
#, no-wrap
2215
#, no-wrap
2048
msgid "B<-T> I<threads>, B<--threads=>I<threads>"
2216
msgid "B<-T> I<threads>, B<--threads=>I<threads>"
2049
msgstr "B<-T> I<Threads>, B<--threads=>I<Threads>"
2217
msgstr "B<-T> I<Threads>, B<--threads=>I<Threads>"
2050
2218
2051
#. type: Plain text
2219
#. type: Plain text
2052
#: ../src/xz/xz.1:1070
2220
#: ../src/xz/xz.1:1197
2053
msgid ""
2221
msgid ""
2054
"Specify the number of worker threads to use.  Setting I<threads> to a "
2222
"Specify the number of worker threads to use.  Setting I<threads> to a "
2055
"special value B<0> makes B<xz> use as many threads as there are CPU cores on "
2223
"special value B<0> makes B<xz> use up to as many threads as the processor(s) "
2056
"the system.  The actual number of threads can be less than I<threads> if the "
2224
"on the system support.  The actual number of threads can be fewer than "
2057
"input file is not big enough for threading with the given settings or if "
2225
"I<threads> if the input file is not big enough for threading with the given "
2058
"using more threads would exceed the memory usage limit."
2226
"settings or if using more threads would exceed the memory usage limit."
2059
msgstr ""
2227
msgstr ""
2060
"gibt die Anzahl der zu verwendenden Arbeits-Threads an. Wenn Sie I<Threads> "
2228
"gibt die Anzahl der zu verwendenden Arbeits-Threads an. Wenn Sie I<Threads> "
2061
"auf einen speziellen Wert B<0> setzen, verwendet B<xz> so viele Threads, wie "
2229
"auf einen speziellen Wert B<0> setzen, verwendet B<xz> maximal so viele "
2062
"Prozessorkerne im System verfügbar sind. Die tatsächliche Anzahl kann "
2230
"Threads, wie der/die Prozessor(en) im System untestützen. Die tatsächliche "
2063
"geringer sein als die angegebenen I<Threads>, wenn die Eingabedatei nicht "
2231
"Anzahl kann geringer sein als die angegebenen I<Threads>, wenn die "
2064
"groß genug für Threading mit den gegebenen Einstellungen ist oder wenn mehr "
2232
"Eingabedatei nicht groß genug für Threading mit den gegebenen Einstellungen "
2065
"Threads die Speicherbegrenzung übersteigen würden."
2233
"ist oder wenn mehr Threads die Speicherbegrenzung übersteigen würden."
2066
2234
2067
#. type: Plain text
2235
#. type: Plain text
2068
#: ../src/xz/xz.1:1077
2236
#: ../src/xz/xz.1:1216
2069
msgid ""
2237
msgid ""
2238
"The single-threaded and multi-threaded compressors produce different "
2239
"output.  Single-threaded compressor will give the smallest file size but "
2240
"only the output from the multi-threaded compressor can be decompressed using "
2241
"multiple threads.  Setting I<threads> to B<1> will use the single-threaded "
2242
"mode.  Setting I<threads> to any other value, including B<0>, will use the "
2243
"multi-threaded compressor even if the system supports only one hardware "
2244
"thread.  (B<xz> 5.2.x used single-threaded mode in this situation.)"
2245
msgstr ""
2246
"Die Multithread- bzw. Einzelthread-Kompressoren erzeugen unterschiedliche "
2247
"Ausgaben. Der Einzelthread-Kompressor erzeugt die geringste Dateigröße, aber "
2248
"nur die Ausgabe des Multithread-Kompressors kann mit mehreren Threads wieder "
2249
"dekomprimiert werden. Das Setzen der Anzahl der I<Threads> auf B<1> wird den "
2250
"Einzelthread-Modus verwenden.  Das Setzen der Anzahl der I<Threads> auf "
2251
"einen anderen Wert einschließlich B<0> verwendet den Multithread-Kompressor, "
2252
"und zwar sogar dann, wenn das System nur einen einzigen Hardware-Thread "
2253
"unterstützt (B<xz> 5.2.x verwendete in diesem Fall noch den Einzelthread-"
2254
"Modus)."
2255
2256
#. type: Plain text
2257
#: ../src/xz/xz.1:1235
2258
msgid ""
2259
"To use multi-threaded mode with only one thread, set I<threads> to B<+1>.  "
2260
"The B<+> prefix has no effect with values other than B<1>.  A memory usage "
2261
"limit can still make B<xz> switch to single-threaded mode unless B<--no-"
2262
"adjust> is used.  Support for the B<+> prefix was added in B<xz> 5.4.0."
2263
msgstr ""
2264
"Um den Multithread-Modus mit nur einem einzigen Thread zu verwenden, setzen "
2265
"Sie die Anzahl der I<Threads> auf B<+1>. Das Präfix B<+> hat mit Werten "
2266
"verschieden von B<1> keinen Effekt. Eine Begrenzung des Speicherverbrauchs "
2267
"kann B<xz> dennoch veranlassen, den Einzelthread-Modus zu verwenden, außer "
2268
"wenn B<--no-adjust> verwendet wird. Die Unterstützung für das Präfix B<+> "
2269
"wurde in B<xz> 5.4.0 hinzugefügt."
2270
2271
#. type: Plain text
2272
#: ../src/xz/xz.1:1250
2273
msgid ""
2274
"If an automatic number of threads has been requested and no memory usage "
2275
"limit has been specified, then a system-specific default soft limit will be "
2276
"used to possibly limit the number of threads.  It is a soft limit in sense "
2277
"that it is ignored if the number of threads becomes one, thus a soft limit "
2278
"will never stop B<xz> from compressing or decompressing.  This default soft "
2279
"limit will not make B<xz> switch from multi-threaded mode to single-threaded "
2280
"mode.  The active limits can be seen with B<xz --info-memory>."
2281
msgstr ""
2282
"Falls das automatische Setzen der Anzahl der Threads angefordert und keine "
2283
"Speicherbegrenzung angegeben wurde, dann wird eine systemspezifisch "
2284
"vorgegebene weiche Grenze verwendet, um eventuell die Anzahl der Threads zu "
2285
"begrenzen. Es ist eine weiche Grenze im Sinne davon, dass sie ignoriert "
2286
"wird, falls die Anzahl der Threads 1 ist; daher wird eine weiche Grenze "
2287
"B<xz> niemals an der Kompression oder Dekompression hindern. Diese "
2288
"vorgegebene weiche Grenze veranlasst B<xz> nicht, vom Multithread-Modus in "
2289
"den Einzelthread-Modus zu wechseln. Die aktiven Grenzen können Sie mit dem "
2290
"Befehl B<xz --info-memory> anzeigen lassen."
2291
2292
#. type: Plain text
2293
#: ../src/xz/xz.1:1257
2294
msgid ""
2070
"Currently the only threading method is to split the input into blocks and "
2295
"Currently the only threading method is to split the input into blocks and "
2071
"compress them independently from each other.  The default block size depends "
2296
"compress them independently from each other.  The default block size depends "
2072
"on the compression level and can be overridden with the B<--block-"
2297
"on the compression level and can be overridden with the B<--block-"
Lines 2078-2110 Link Here
2078
"size=>I<Größe> außer Kraft gesetzt werden."
2303
"size=>I<Größe> außer Kraft gesetzt werden."
2079
2304
2080
#. type: Plain text
2305
#. type: Plain text
2081
#: ../src/xz/xz.1:1085
2306
#: ../src/xz/xz.1:1265
2082
msgid ""
2307
msgid ""
2083
"Threaded decompression hasn't been implemented yet.  It will only work on "
2308
"Threaded decompression only works on files that contain multiple blocks with "
2084
"files that contain multiple blocks with size information in block headers.  "
2309
"size information in block headers.  All large enough files compressed in "
2085
"All files compressed in multi-threaded mode meet this condition, but files "
2310
"multi-threaded mode meet this condition, but files compressed in single-"
2086
"compressed in single-threaded mode don't even if B<--block-size=>I<size> is "
2311
"threaded mode don't even if B<--block-size=>I<size> has been used."
2087
"used."
2088
msgstr ""
2312
msgstr ""
2089
"Eine thread-basierte Dekompression wurde bislang noch nicht implementiert. "
2313
"Eine thread-basierte Dekompression wird nur bei Dateien funktionieren, die "
2090
"Sie wird nur bei Dateien funktionieren, die mehrere Blöcke mit "
2314
"mehrere Blöcke mit Größeninformationen in deren Headern enthalten. Alle im "
2091
"Größeninformationen in deren Headern enthalten. Alle im Multi-Thread-Modus "
2315
"Multi-Thread-Modus komprimierten Dateien, die groß genug sind, erfüllen "
2092
"komprimierten Dateien erfüllen diese Bedingung, im Einzel-Thread-Modus "
2316
"diese Bedingung, im Einzel-Thread-Modus komprimierte Dateien dagegen nicht, "
2093
"komprimierte Dateien dagegen nicht, selbst wenn B<--block-size=>I<Größe> "
2317
"selbst wenn B<--block-size=>I<Größe> verwendet wurde."
2094
"verwendet wird."
2095
2318
2096
#. type: SS
2319
#. type: SS
2097
#: ../src/xz/xz.1:1086 ../src/xz/xz.1:2603
2320
#: ../src/xz/xz.1:1266 ../src/xz/xz.1:2819
2098
#, no-wrap
2321
#, no-wrap
2099
msgid "Custom compressor filter chains"
2322
msgid "Custom compressor filter chains"
2100
msgstr "Benutzerdefinierte Filterketten für die Kompression"
2323
msgstr "Benutzerdefinierte Filterketten für die Kompression"
2101
2324
2102
#. type: Plain text
2325
#. type: Plain text
2103
#: ../src/xz/xz.1:1097
2326
#: ../src/xz/xz.1:1282
2104
msgid ""
2327
msgid ""
2105
"A custom filter chain allows specifying the compression settings in detail "
2328
"A custom filter chain allows specifying the compression settings in detail "
2106
"instead of relying on the settings associated to the presets.  When a custom "
2329
"instead of relying on the settings associated to the presets.  When a custom "
2107
"filter chain is specified, preset options (B<-0> ... B<-9> and B<--"
2330
"filter chain is specified, preset options (B<-0> \\&...\\& B<-9> and B<--"
2108
"extreme>)  earlier on the command line are forgotten.  If a preset option is "
2331
"extreme>)  earlier on the command line are forgotten.  If a preset option is "
2109
"specified after one or more custom filter chain options, the new preset "
2332
"specified after one or more custom filter chain options, the new preset "
2110
"takes effect and the custom filter chain options specified earlier are "
2333
"takes effect and the custom filter chain options specified earlier are "
Lines 2120-2126 Link Here
2120
"Filterkettenoptionen werden außer Kraft gesetzt."
2343
"Filterkettenoptionen werden außer Kraft gesetzt."
2121
2344
2122
#. type: Plain text
2345
#. type: Plain text
2123
#: ../src/xz/xz.1:1104
2346
#: ../src/xz/xz.1:1289
2124
msgid ""
2347
msgid ""
2125
"A filter chain is comparable to piping on the command line.  When "
2348
"A filter chain is comparable to piping on the command line.  When "
2126
"compressing, the uncompressed input goes to the first filter, whose output "
2349
"compressing, the uncompressed input goes to the first filter, whose output "
Lines 2137-2143 Link Here
2137
"oder zwei Filtern."
2360
"oder zwei Filtern."
2138
2361
2139
#. type: Plain text
2362
#. type: Plain text
2140
#: ../src/xz/xz.1:1112
2363
#: ../src/xz/xz.1:1297
2141
msgid ""
2364
msgid ""
2142
"Many filters have limitations on where they can be in the filter chain: some "
2365
"Many filters have limitations on where they can be in the filter chain: some "
2143
"filters can work only as the last filter in the chain, some only as a non-"
2366
"filters can work only as the last filter in the chain, some only as a non-"
Lines 2153-2159 Link Here
2153
"Sicherheitsgründen vorhanden."
2376
"Sicherheitsgründen vorhanden."
2154
2377
2155
#. type: Plain text
2378
#. type: Plain text
2156
#: ../src/xz/xz.1:1120
2379
#: ../src/xz/xz.1:1305
2157
msgid ""
2380
msgid ""
2158
"A custom filter chain is specified by using one or more filter options in "
2381
"A custom filter chain is specified by using one or more filter options in "
2159
"the order they are wanted in the filter chain.  That is, the order of filter "
2382
"the order they are wanted in the filter chain.  That is, the order of filter "
Lines 2169-2175 Link Here
2169
"bei der Kompression."
2392
"bei der Kompression."
2170
2393
2171
#. type: Plain text
2394
#. type: Plain text
2172
#: ../src/xz/xz.1:1129
2395
#: ../src/xz/xz.1:1314
2173
msgid ""
2396
msgid ""
2174
"Filters take filter-specific I<options> as a comma-separated list.  Extra "
2397
"Filters take filter-specific I<options> as a comma-separated list.  Extra "
2175
"commas in I<options> are ignored.  Every option has a default value, so you "
2398
"commas in I<options> are ignored.  Every option has a default value, so you "
Lines 2181-2187 Link Here
2181
"die Sie ändern wollen."
2404
"die Sie ändern wollen."
2182
2405
2183
#. type: Plain text
2406
#. type: Plain text
2184
#: ../src/xz/xz.1:1138
2407
#: ../src/xz/xz.1:1323
2185
msgid ""
2408
msgid ""
2186
"To see the whole filter chain and I<options>, use B<xz -vv> (that is, use "
2409
"To see the whole filter chain and I<options>, use B<xz -vv> (that is, use "
2187
"B<--verbose> twice).  This works also for viewing the filter chain options "
2410
"B<--verbose> twice).  This works also for viewing the filter chain options "
Lines 2193-2211 Link Here
2193
"verwendeten Filterkettenoptionen."
2416
"verwendeten Filterkettenoptionen."
2194
2417
2195
#. type: TP
2418
#. type: TP
2196
#: ../src/xz/xz.1:1138
2419
#: ../src/xz/xz.1:1323
2197
#, no-wrap
2420
#, no-wrap
2198
msgid "B<--lzma1>[B<=>I<options>]"
2421
msgid "B<--lzma1>[B<=>I<options>]"
2199
msgstr "B<--lzma1>[B<=>I<Optionen>]"
2422
msgstr "B<--lzma1>[B<=>I<Optionen>]"
2200
2423
2201
#. type: TP
2424
#. type: TP
2202
#: ../src/xz/xz.1:1141
2425
#: ../src/xz/xz.1:1326
2203
#, no-wrap
2426
#, no-wrap
2204
msgid "B<--lzma2>[B<=>I<options>]"
2427
msgid "B<--lzma2>[B<=>I<options>]"
2205
msgstr "B<--lzma2>[B<=>I<Optionen>]"
2428
msgstr "B<--lzma2>[B<=>I<Optionen>]"
2206
2429
2207
#. type: Plain text
2430
#. type: Plain text
2208
#: ../src/xz/xz.1:1146
2431
#: ../src/xz/xz.1:1331
2209
msgid ""
2432
msgid ""
2210
"Add LZMA1 or LZMA2 filter to the filter chain.  These filters can be used "
2433
"Add LZMA1 or LZMA2 filter to the filter chain.  These filters can be used "
2211
"only as the last filter in the chain."
2434
"only as the last filter in the chain."
Lines 2214-2220 Link Here
2214
"als letzte Filter in der Kette verwendet werden."
2437
"als letzte Filter in der Kette verwendet werden."
2215
2438
2216
#. type: Plain text
2439
#. type: Plain text
2217
#: ../src/xz/xz.1:1158
2440
#: ../src/xz/xz.1:1343
2218
msgid ""
2441
msgid ""
2219
"LZMA1 is a legacy filter, which is supported almost solely due to the legacy "
2442
"LZMA1 is a legacy filter, which is supported almost solely due to the legacy "
2220
"B<.lzma> file format, which supports only LZMA1.  LZMA2 is an updated "
2443
"B<.lzma> file format, which supports only LZMA1.  LZMA2 is an updated "
Lines 2230-2252 Link Here
2230
"praktisch gleich."
2453
"praktisch gleich."
2231
2454
2232
#. type: Plain text
2455
#. type: Plain text
2233
#: ../src/xz/xz.1:1161
2456
#: ../src/xz/xz.1:1346
2234
msgid "LZMA1 and LZMA2 share the same set of I<options>:"
2457
msgid "LZMA1 and LZMA2 share the same set of I<options>:"
2235
msgstr "LZMA1 und LZMA2 haben die gleichen I<Optionen>:"
2458
msgstr "LZMA1 und LZMA2 haben die gleichen I<Optionen>:"
2236
2459
2237
#. type: TP
2460
#. type: TP
2238
#: ../src/xz/xz.1:1162
2461
#: ../src/xz/xz.1:1347
2239
#, no-wrap
2462
#, no-wrap
2240
msgid "B<preset=>I<preset>"
2463
msgid "B<preset=>I<preset>"
2241
msgstr "B<preset=>I<Voreinstellung>"
2464
msgstr "B<preset=>I<Voreinstellung>"
2242
2465
2243
#. type: Plain text
2466
#. type: Plain text
2244
#: ../src/xz/xz.1:1186
2467
#: ../src/xz/xz.1:1374
2245
msgid ""
2468
msgid ""
2246
"Reset all LZMA1 or LZMA2 I<options> to I<preset>.  I<Preset> consist of an "
2469
"Reset all LZMA1 or LZMA2 I<options> to I<preset>.  I<Preset> consist of an "
2247
"integer, which may be followed by single-letter preset modifiers.  The "
2470
"integer, which may be followed by single-letter preset modifiers.  The "
2248
"integer can be from B<0> to B<9>, matching the command line options "
2471
"integer can be from B<0> to B<9>, matching the command line options B<-0> "
2249
"B<-0> ... B<-9>.  The only supported modifier is currently B<e>, which "
2472
"\\&...\\& B<-9>.  The only supported modifier is currently B<e>, which "
2250
"matches B<--extreme>.  If no B<preset> is specified, the default values of "
2473
"matches B<--extreme>.  If no B<preset> is specified, the default values of "
2251
"LZMA1 or LZMA2 I<options> are taken from the preset B<6>."
2474
"LZMA1 or LZMA2 I<options> are taken from the preset B<6>."
2252
msgstr ""
2475
msgstr ""
Lines 2260-2273 Link Here
2260
"LZMA2-I<Optionen> der Voreinstellung B<6> entnommen."
2483
"LZMA2-I<Optionen> der Voreinstellung B<6> entnommen."
2261
2484
2262
#. type: TP
2485
#. type: TP
2263
#: ../src/xz/xz.1:1186
2486
#: ../src/xz/xz.1:1374
2264
#, no-wrap
2487
#, no-wrap
2265
msgid "B<dict=>I<size>"
2488
msgid "B<dict=>I<size>"
2266
msgstr "B<dict=>I<Größe>"
2489
msgstr "B<dict=>I<Größe>"
2267
2490
2268
# FIXME Dezimaltrenner in 1.5 GB
2491
# FIXME Dezimaltrenner in 1.5 GB
2269
#. type: Plain text
2492
#. type: Plain text
2270
#: ../src/xz/xz.1:1201
2493
#: ../src/xz/xz.1:1389
2271
msgid ""
2494
msgid ""
2272
"Dictionary (history buffer)  I<size> indicates how many bytes of the "
2495
"Dictionary (history buffer)  I<size> indicates how many bytes of the "
2273
"recently processed uncompressed data is kept in memory.  The algorithm tries "
2496
"recently processed uncompressed data is kept in memory.  The algorithm tries "
Lines 2289-2295 Link Here
2289
"Speicherverschwendung."
2512
"Speicherverschwendung."
2290
2513
2291
#. type: Plain text
2514
#. type: Plain text
2292
#: ../src/xz/xz.1:1210
2515
#: ../src/xz/xz.1:1398
2293
msgid ""
2516
msgid ""
2294
"Typical dictionary I<size> is from 64\\ KiB to 64\\ MiB.  The minimum is 4\\ "
2517
"Typical dictionary I<size> is from 64\\ KiB to 64\\ MiB.  The minimum is 4\\ "
2295
"KiB.  The maximum for compression is currently 1.5\\ GiB (1536\\ MiB).  The "
2518
"KiB.  The maximum for compression is currently 1.5\\ GiB (1536\\ MiB).  The "
Lines 2303-2309 Link Here
2303
"für die LZMA1- und LZMA2-Datenstromformate ist."
2526
"für die LZMA1- und LZMA2-Datenstromformate ist."
2304
2527
2305
#. type: Plain text
2528
#. type: Plain text
2306
#: ../src/xz/xz.1:1237
2529
#: ../src/xz/xz.1:1425
2307
msgid ""
2530
msgid ""
2308
"Dictionary I<size> and match finder (I<mf>)  together determine the memory "
2531
"Dictionary I<size> and match finder (I<mf>)  together determine the memory "
2309
"usage of the LZMA1 or LZMA2 encoder.  The same (or bigger) dictionary "
2532
"usage of the LZMA1 or LZMA2 encoder.  The same (or bigger) dictionary "
Lines 2325-2337 Link Here
2325
"werden beim Speichern in den B<.xz>-Headern aufgerundet."
2548
"werden beim Speichern in den B<.xz>-Headern aufgerundet."
2326
2549
2327
#. type: TP
2550
#. type: TP
2328
#: ../src/xz/xz.1:1237
2551
#: ../src/xz/xz.1:1425
2329
#, no-wrap
2552
#, no-wrap
2330
msgid "B<lc=>I<lc>"
2553
msgid "B<lc=>I<lc>"
2331
msgstr "B<lc=>I<lc>"
2554
msgstr "B<lc=>I<lc>"
2332
2555
2333
#. type: Plain text
2556
#. type: Plain text
2334
#: ../src/xz/xz.1:1246
2557
#: ../src/xz/xz.1:1434
2335
msgid ""
2558
msgid ""
2336
"Specify the number of literal context bits.  The minimum is 0 and the "
2559
"Specify the number of literal context bits.  The minimum is 0 and the "
2337
"maximum is 4; the default is 3.  In addition, the sum of I<lc> and I<lp> "
2560
"maximum is 4; the default is 3.  In addition, the sum of I<lc> and I<lp> "
Lines 2342-2348 Link Here
2342
"I<lp> nicht größer als 4 sein."
2565
"I<lp> nicht größer als 4 sein."
2343
2566
2344
#. type: Plain text
2567
#. type: Plain text
2345
#: ../src/xz/xz.1:1251
2568
#: ../src/xz/xz.1:1439
2346
msgid ""
2569
msgid ""
2347
"All bytes that cannot be encoded as matches are encoded as literals.  That "
2570
"All bytes that cannot be encoded as matches are encoded as literals.  That "
2348
"is, literals are simply 8-bit bytes that are encoded one at a time."
2571
"is, literals are simply 8-bit bytes that are encoded one at a time."
Lines 2352-2366 Link Here
2352
"für sich kodiert werden."
2575
"für sich kodiert werden."
2353
2576
2354
#. type: Plain text
2577
#. type: Plain text
2355
#: ../src/xz/xz.1:1265
2578
#: ../src/xz/xz.1:1453
2356
msgid ""
2579
msgid ""
2357
"The literal coding makes an assumption that the highest I<lc> bits of the "
2580
"The literal coding makes an assumption that the highest I<lc> bits of the "
2358
"previous uncompressed byte correlate with the next byte.  E.g. in typical "
2581
"previous uncompressed byte correlate with the next byte.  For example, in "
2359
"English text, an upper-case letter is often followed by a lower-case letter, "
2582
"typical English text, an upper-case letter is often followed by a lower-case "
2360
"and a lower-case letter is usually followed by another lower-case letter.  "
2583
"letter, and a lower-case letter is usually followed by another lower-case "
2361
"In the US-ASCII character set, the highest three bits are 010 for upper-case "
2584
"letter.  In the US-ASCII character set, the highest three bits are 010 for "
2362
"letters and 011 for lower-case letters.  When I<lc> is at least 3, the "
2585
"upper-case letters and 011 for lower-case letters.  When I<lc> is at least "
2363
"literal coding can take advantage of this property in the uncompressed data."
2586
"3, the literal coding can take advantage of this property in the "
2587
"uncompressed data."
2364
msgstr ""
2588
msgstr ""
2365
"Bei der Literalkodierung wird angenommen, dass die höchsten I<lc>-Bits des "
2589
"Bei der Literalkodierung wird angenommen, dass die höchsten I<lc>-Bits des "
2366
"zuvor unkomprimierten Bytes mit dem nächsten Byte in Beziehung stehen. Zum "
2590
"zuvor unkomprimierten Bytes mit dem nächsten Byte in Beziehung stehen. Zum "
Lines 2372-2382 Link Here
2372
"unkomprimierten Daten ausnutzen."
2596
"unkomprimierten Daten ausnutzen."
2373
2597
2374
#. type: Plain text
2598
#. type: Plain text
2375
#: ../src/xz/xz.1:1274
2599
#: ../src/xz/xz.1:1462
2376
msgid ""
2600
msgid ""
2377
"The default value (3) is usually good.  If you want maximum compression, "
2601
"The default value (3) is usually good.  If you want maximum compression, "
2378
"test B<lc=4>.  Sometimes it helps a little, and sometimes it makes "
2602
"test B<lc=4>.  Sometimes it helps a little, and sometimes it makes "
2379
"compression worse.  If it makes it worse, test e.g.\\& B<lc=2> too."
2603
"compression worse.  If it makes it worse, test B<lc=2> too."
2380
msgstr ""
2604
msgstr ""
2381
"Der Vorgabewert (3) ist üblicherweise gut. Wenn Sie die maximale Kompression "
2605
"Der Vorgabewert (3) ist üblicherweise gut. Wenn Sie die maximale Kompression "
2382
"erreichen wollen, versuchen Sie B<lc=4>. Manchmal hilft es ein wenig, doch "
2606
"erreichen wollen, versuchen Sie B<lc=4>. Manchmal hilft es ein wenig, doch "
Lines 2384-2396 Link Here
2384
"zum Beispiel auch\\& B<lc=2>."
2608
"zum Beispiel auch\\& B<lc=2>."
2385
2609
2386
#. type: TP
2610
#. type: TP
2387
#: ../src/xz/xz.1:1274
2611
#: ../src/xz/xz.1:1462
2388
#, no-wrap
2612
#, no-wrap
2389
msgid "B<lp=>I<lp>"
2613
msgid "B<lp=>I<lp>"
2390
msgstr "B<lp=>I<lp>"
2614
msgstr "B<lp=>I<lp>"
2391
2615
2392
#. type: Plain text
2616
#. type: Plain text
2393
#: ../src/xz/xz.1:1278
2617
#: ../src/xz/xz.1:1466
2394
msgid ""
2618
msgid ""
2395
"Specify the number of literal position bits.  The minimum is 0 and the "
2619
"Specify the number of literal position bits.  The minimum is 0 and the "
2396
"maximum is 4; the default is 0."
2620
"maximum is 4; the default is 0."
Lines 2399-2405 Link Here
2399
"Maximum 4; die Vorgabe ist 0."
2623
"Maximum 4; die Vorgabe ist 0."
2400
2624
2401
#. type: Plain text
2625
#. type: Plain text
2402
#: ../src/xz/xz.1:1285
2626
#: ../src/xz/xz.1:1473
2403
msgid ""
2627
msgid ""
2404
"I<Lp> affects what kind of alignment in the uncompressed data is assumed "
2628
"I<Lp> affects what kind of alignment in the uncompressed data is assumed "
2405
"when encoding literals.  See I<pb> below for more information about "
2629
"when encoding literals.  See I<pb> below for more information about "
Lines 2410-2422 Link Here
2410
"Informationen zur Ausrichtung."
2634
"Informationen zur Ausrichtung."
2411
2635
2412
#. type: TP
2636
#. type: TP
2413
#: ../src/xz/xz.1:1285
2637
#: ../src/xz/xz.1:1473
2414
#, no-wrap
2638
#, no-wrap
2415
msgid "B<pb=>I<pb>"
2639
msgid "B<pb=>I<pb>"
2416
msgstr "B<pb=>I<Anzahl>"
2640
msgstr "B<pb=>I<Anzahl>"
2417
2641
2418
#. type: Plain text
2642
#. type: Plain text
2419
#: ../src/xz/xz.1:1289
2643
#: ../src/xz/xz.1:1477
2420
msgid ""
2644
msgid ""
2421
"Specify the number of position bits.  The minimum is 0 and the maximum is 4; "
2645
"Specify the number of position bits.  The minimum is 0 and the maximum is 4; "
2422
"the default is 2."
2646
"the default is 2."
Lines 2425-2431 Link Here
2425
"4; Standard ist 2."
2649
"4; Standard ist 2."
2426
2650
2427
#. type: Plain text
2651
#. type: Plain text
2428
#: ../src/xz/xz.1:1296
2652
#: ../src/xz/xz.1:1484
2429
msgid ""
2653
msgid ""
2430
"I<Pb> affects what kind of alignment in the uncompressed data is assumed in "
2654
"I<Pb> affects what kind of alignment in the uncompressed data is assumed in "
2431
"general.  The default means four-byte alignment (2^I<pb>=2^2=4), which is "
2655
"general.  The default means four-byte alignment (2^I<pb>=2^2=4), which is "
Lines 2437-2449 Link Here
2437
"bessere Schätzung gibt."
2661
"bessere Schätzung gibt."
2438
2662
2439
#. type: Plain text
2663
#. type: Plain text
2440
#: ../src/xz/xz.1:1310
2664
#: ../src/xz/xz.1:1498
2441
msgid ""
2665
msgid ""
2442
"When the aligment is known, setting I<pb> accordingly may reduce the file "
2666
"When the alignment is known, setting I<pb> accordingly may reduce the file "
2443
"size a little.  E.g. with text files having one-byte alignment (US-ASCII, "
2667
"size a little.  For example, with text files having one-byte alignment (US-"
2444
"ISO-8859-*, UTF-8), setting B<pb=0> can improve compression slightly.  For "
2668
"ASCII, ISO-8859-*, UTF-8), setting B<pb=0> can improve compression "
2445
"UTF-16 text, B<pb=1> is a good choice.  If the alignment is an odd number "
2669
"slightly.  For UTF-16 text, B<pb=1> is a good choice.  If the alignment is "
2446
"like 3 bytes, B<pb=0> might be the best choice."
2670
"an odd number like 3 bytes, B<pb=0> might be the best choice."
2447
msgstr ""
2671
msgstr ""
2448
"Wenn die Ausrichtung bekannt ist, kann das entsprechende Setzen von I<pb> "
2672
"Wenn die Ausrichtung bekannt ist, kann das entsprechende Setzen von I<pb> "
2449
"die Dateigröße ein wenig verringern. Wenn Textdateien zum Beispiel eine Ein-"
2673
"die Dateigröße ein wenig verringern. Wenn Textdateien zum Beispiel eine Ein-"
Lines 2453-2459 Link Here
2453
"ist, könnte B<pb=0> die beste Wahl sein."
2677
"ist, könnte B<pb=0> die beste Wahl sein."
2454
2678
2455
#. type: Plain text
2679
#. type: Plain text
2456
#: ../src/xz/xz.1:1318
2680
#: ../src/xz/xz.1:1506
2457
msgid ""
2681
msgid ""
2458
"Even though the assumed alignment can be adjusted with I<pb> and I<lp>, "
2682
"Even though the assumed alignment can be adjusted with I<pb> and I<lp>, "
2459
"LZMA1 and LZMA2 still slightly favor 16-byte alignment.  It might be worth "
2683
"LZMA1 and LZMA2 still slightly favor 16-byte alignment.  It might be worth "
Lines 2466-2483 Link Here
2466
"wahrscheinlich oft mit LZMA1 oder LZMA2 komprimiert werden."
2690
"wahrscheinlich oft mit LZMA1 oder LZMA2 komprimiert werden."
2467
2691
2468
#. type: TP
2692
#. type: TP
2469
#: ../src/xz/xz.1:1318
2693
#: ../src/xz/xz.1:1506
2470
#, no-wrap
2694
#, no-wrap
2471
msgid "B<mf=>I<mf>"
2695
msgid "B<mf=>I<mf>"
2472
msgstr "B<mf=>I<Üf>"
2696
msgstr "B<mf=>I<Üf>"
2473
2697
2474
#. type: Plain text
2698
#. type: Plain text
2475
#: ../src/xz/xz.1:1333
2699
#: ../src/xz/xz.1:1521
2476
msgid ""
2700
msgid ""
2477
"Match finder has a major effect on encoder speed, memory usage, and "
2701
"Match finder has a major effect on encoder speed, memory usage, and "
2478
"compression ratio.  Usually Hash Chain match finders are faster than Binary "
2702
"compression ratio.  Usually Hash Chain match finders are faster than Binary "
2479
"Tree match finders.  The default depends on the I<preset>: 0 uses B<hc3>, "
2703
"Tree match finders.  The default depends on the I<preset>: 0 uses B<hc3>, "
2480
"1-3 use B<hc4>, and the rest use B<bt4>."
2704
"1\\(en3 use B<hc4>, and the rest use B<bt4>."
2481
msgstr ""
2705
msgstr ""
2482
"Der Übereinstimmungsfinder hat einen großen Einfluss auf die Geschwindigkeit "
2706
"Der Übereinstimmungsfinder hat einen großen Einfluss auf die Geschwindigkeit "
2483
"des Kodierers, den Speicherbedarf und das Kompressionsverhältnis. "
2707
"des Kodierers, den Speicherbedarf und das Kompressionsverhältnis. "
Lines 2487-2493 Link Here
2487
"Rest verwendet B<bt4>."
2711
"Rest verwendet B<bt4>."
2488
2712
2489
#. type: Plain text
2713
#. type: Plain text
2490
#: ../src/xz/xz.1:1339
2714
#: ../src/xz/xz.1:1527
2491
msgid ""
2715
msgid ""
2492
"The following match finders are supported.  The memory usage formulas below "
2716
"The following match finders are supported.  The memory usage formulas below "
2493
"are rough approximations, which are closest to the reality when I<dict> is a "
2717
"are rough approximations, which are closest to the reality when I<dict> is a "
Lines 2498-2635 Link Here
2498
"am nächsten kommen, wenn I<Wörterbuch> eine Zweierpotenz ist."
2722
"am nächsten kommen, wenn I<Wörterbuch> eine Zweierpotenz ist."
2499
2723
2500
#. type: TP
2724
#. type: TP
2501
#: ../src/xz/xz.1:1340
2725
#: ../src/xz/xz.1:1528
2502
#, no-wrap
2726
#, no-wrap
2503
msgid "B<hc3>"
2727
msgid "B<hc3>"
2504
msgstr "B<hc3>"
2728
msgstr "B<hc3>"
2505
2729
2506
#. type: Plain text
2730
#. type: Plain text
2507
#: ../src/xz/xz.1:1343
2731
#: ../src/xz/xz.1:1531
2508
msgid "Hash Chain with 2- and 3-byte hashing"
2732
msgid "Hash Chain with 2- and 3-byte hashing"
2509
msgstr "Hash-Kette mit 2- und 3-Byte-Hashing"
2733
msgstr "Hash-Kette mit 2- und 3-Byte-Hashing"
2510
2734
2511
#. type: Plain text
2735
#. type: Plain text
2512
#: ../src/xz/xz.1:1347 ../src/xz/xz.1:1396
2736
#: ../src/xz/xz.1:1535 ../src/xz/xz.1:1584
2513
msgid "Minimum value for I<nice>: 3"
2737
msgid "Minimum value for I<nice>: 3"
2514
msgstr "Minimalwert für I<nice>: 3"
2738
msgstr "Minimalwert für I<nice>: 3"
2515
2739
2516
#. type: Plain text
2740
#. type: Plain text
2517
#: ../src/xz/xz.1:1349 ../src/xz/xz.1:1368 ../src/xz/xz.1:1398
2741
#: ../src/xz/xz.1:1537 ../src/xz/xz.1:1556 ../src/xz/xz.1:1586
2518
#: ../src/xz/xz.1:1417
2742
#: ../src/xz/xz.1:1605
2519
msgid "Memory usage:"
2743
msgid "Memory usage:"
2520
msgstr "Speicherbedarf:"
2744
msgstr "Speicherbedarf:"
2521
2745
2522
#. type: Plain text
2746
#. type: Plain text
2523
#: ../src/xz/xz.1:1354
2747
#: ../src/xz/xz.1:1542
2524
msgid "I<dict> * 7.5 (if I<dict> E<lt>= 16 MiB);"
2748
msgid "I<dict> * 7.5 (if I<dict> E<lt>= 16 MiB);"
2525
msgstr "I<dict> * 7,5 (falls I<dict> E<lt>= 16 MiB);"
2749
msgstr "I<dict> * 7,5 (falls I<dict> E<lt>= 16 MiB);"
2526
2750
2527
#. type: Plain text
2751
#. type: Plain text
2528
#: ../src/xz/xz.1:1359
2752
#: ../src/xz/xz.1:1547
2529
msgid "I<dict> * 5.5 + 64 MiB (if I<dict> E<gt> 16 MiB)"
2753
msgid "I<dict> * 5.5 + 64 MiB (if I<dict> E<gt> 16 MiB)"
2530
msgstr "I<dict> * 5,5 + 64 MiB (falls I<dict> E<gt> 16 MiB)"
2754
msgstr "I<dict> * 5,5 + 64 MiB (falls I<dict> E<gt> 16 MiB)"
2531
2755
2532
#. type: TP
2756
#. type: TP
2533
#: ../src/xz/xz.1:1359
2757
#: ../src/xz/xz.1:1547
2534
#, no-wrap
2758
#, no-wrap
2535
msgid "B<hc4>"
2759
msgid "B<hc4>"
2536
msgstr "B<hc4>"
2760
msgstr "B<hc4>"
2537
2761
2538
#. type: Plain text
2762
#. type: Plain text
2539
#: ../src/xz/xz.1:1362
2763
#: ../src/xz/xz.1:1550
2540
msgid "Hash Chain with 2-, 3-, and 4-byte hashing"
2764
msgid "Hash Chain with 2-, 3-, and 4-byte hashing"
2541
msgstr "Hash-Kette mit 2-, 3- und 4-Byte-Hashing"
2765
msgstr "Hash-Kette mit 2-, 3- und 4-Byte-Hashing"
2542
2766
2543
#. type: Plain text
2767
#. type: Plain text
2544
#: ../src/xz/xz.1:1366 ../src/xz/xz.1:1415
2768
#: ../src/xz/xz.1:1554 ../src/xz/xz.1:1603
2545
msgid "Minimum value for I<nice>: 4"
2769
msgid "Minimum value for I<nice>: 4"
2546
msgstr "Minimaler Wert für I<nice>: 4"
2770
msgstr "Minimaler Wert für I<nice>: 4"
2547
2771
2548
#. type: Plain text
2772
#. type: Plain text
2549
#: ../src/xz/xz.1:1373
2773
#: ../src/xz/xz.1:1561
2550
msgid "I<dict> * 7.5 (if I<dict> E<lt>= 32 MiB);"
2774
msgid "I<dict> * 7.5 (if I<dict> E<lt>= 32 MiB);"
2551
msgstr "I<dict> * 7,5 (falls I<dict> E<lt>= 32 MiB ist);"
2775
msgstr "I<dict> * 7,5 (falls I<dict> E<lt>= 32 MiB ist);"
2552
2776
2553
#. type: Plain text
2777
#. type: Plain text
2554
#: ../src/xz/xz.1:1378
2778
#: ../src/xz/xz.1:1566
2555
msgid "I<dict> * 6.5 (if I<dict> E<gt> 32 MiB)"
2779
msgid "I<dict> * 6.5 (if I<dict> E<gt> 32 MiB)"
2556
msgstr "I<dict> * 6,5 (falls I<dict> E<gt> 32 MiB ist)"
2780
msgstr "I<dict> * 6,5 (falls I<dict> E<gt> 32 MiB ist)"
2557
2781
2558
#. type: TP
2782
#. type: TP
2559
#: ../src/xz/xz.1:1378
2783
#: ../src/xz/xz.1:1566
2560
#, no-wrap
2784
#, no-wrap
2561
msgid "B<bt2>"
2785
msgid "B<bt2>"
2562
msgstr "B<bt2>"
2786
msgstr "B<bt2>"
2563
2787
2564
#. type: Plain text
2788
#. type: Plain text
2565
#: ../src/xz/xz.1:1381
2789
#: ../src/xz/xz.1:1569
2566
msgid "Binary Tree with 2-byte hashing"
2790
msgid "Binary Tree with 2-byte hashing"
2567
msgstr "Binärbaum mit 2-Byte-Hashing"
2791
msgstr "Binärbaum mit 2-Byte-Hashing"
2568
2792
2569
#. type: Plain text
2793
#. type: Plain text
2570
#: ../src/xz/xz.1:1385
2794
#: ../src/xz/xz.1:1573
2571
msgid "Minimum value for I<nice>: 2"
2795
msgid "Minimum value for I<nice>: 2"
2572
msgstr "Minimaler Wert für I<nice>: 2"
2796
msgstr "Minimaler Wert für I<nice>: 2"
2573
2797
2574
#. type: Plain text
2798
#. type: Plain text
2575
#: ../src/xz/xz.1:1389
2799
#: ../src/xz/xz.1:1577
2576
msgid "Memory usage: I<dict> * 9.5"
2800
msgid "Memory usage: I<dict> * 9.5"
2577
msgstr "Speicherverbrauch: I<dict> * 9.5"
2801
msgstr "Speicherverbrauch: I<dict> * 9.5"
2578
2802
2579
#. type: TP
2803
#. type: TP
2580
#: ../src/xz/xz.1:1389
2804
#: ../src/xz/xz.1:1577
2581
#, no-wrap
2805
#, no-wrap
2582
msgid "B<bt3>"
2806
msgid "B<bt3>"
2583
msgstr "B<bt3>"
2807
msgstr "B<bt3>"
2584
2808
2585
#. type: Plain text
2809
#. type: Plain text
2586
#: ../src/xz/xz.1:1392
2810
#: ../src/xz/xz.1:1580
2587
msgid "Binary Tree with 2- and 3-byte hashing"
2811
msgid "Binary Tree with 2- and 3-byte hashing"
2588
msgstr "Binärbaum mit 2- und 3-Byte-Hashing"
2812
msgstr "Binärbaum mit 2- und 3-Byte-Hashing"
2589
2813
2590
#. type: Plain text
2814
#. type: Plain text
2591
#: ../src/xz/xz.1:1403
2815
#: ../src/xz/xz.1:1591
2592
msgid "I<dict> * 11.5 (if I<dict> E<lt>= 16 MiB);"
2816
msgid "I<dict> * 11.5 (if I<dict> E<lt>= 16 MiB);"
2593
msgstr "I<dict> * 11,5 (falls I<dict> E<lt>= 16 MiB ist);"
2817
msgstr "I<dict> * 11,5 (falls I<dict> E<lt>= 16 MiB ist);"
2594
2818
2595
#. type: Plain text
2819
#. type: Plain text
2596
#: ../src/xz/xz.1:1408
2820
#: ../src/xz/xz.1:1596
2597
msgid "I<dict> * 9.5 + 64 MiB (if I<dict> E<gt> 16 MiB)"
2821
msgid "I<dict> * 9.5 + 64 MiB (if I<dict> E<gt> 16 MiB)"
2598
msgstr "I<dict> * 9,5 + 64 MiB (falls I<dict> E<gt> 16 MiB ist)"
2822
msgstr "I<dict> * 9,5 + 64 MiB (falls I<dict> E<gt> 16 MiB ist)"
2599
2823
2600
#. type: TP
2824
#. type: TP
2601
#: ../src/xz/xz.1:1408
2825
#: ../src/xz/xz.1:1596
2602
#, no-wrap
2826
#, no-wrap
2603
msgid "B<bt4>"
2827
msgid "B<bt4>"
2604
msgstr "B<bt4>"
2828
msgstr "B<bt4>"
2605
2829
2606
#. type: Plain text
2830
#. type: Plain text
2607
#: ../src/xz/xz.1:1411
2831
#: ../src/xz/xz.1:1599
2608
msgid "Binary Tree with 2-, 3-, and 4-byte hashing"
2832
msgid "Binary Tree with 2-, 3-, and 4-byte hashing"
2609
msgstr "Binärbaum mit 2-, 3- und 4-Byte-Hashing"
2833
msgstr "Binärbaum mit 2-, 3- und 4-Byte-Hashing"
2610
2834
2611
#. type: Plain text
2835
#. type: Plain text
2612
#: ../src/xz/xz.1:1422
2836
#: ../src/xz/xz.1:1610
2613
msgid "I<dict> * 11.5 (if I<dict> E<lt>= 32 MiB);"
2837
msgid "I<dict> * 11.5 (if I<dict> E<lt>= 32 MiB);"
2614
msgstr "I<dict> * 11,5 (falls I<dict> E<lt>= 32 MiB ist);"
2838
msgstr "I<dict> * 11,5 (falls I<dict> E<lt>= 32 MiB ist);"
2615
2839
2616
#. type: Plain text
2840
#. type: Plain text
2617
#: ../src/xz/xz.1:1427
2841
#: ../src/xz/xz.1:1615
2618
msgid "I<dict> * 10.5 (if I<dict> E<gt> 32 MiB)"
2842
msgid "I<dict> * 10.5 (if I<dict> E<gt> 32 MiB)"
2619
msgstr "I<dict> * 10,5 (falls I<dict> E<gt> 32 MiB ist)"
2843
msgstr "I<dict> * 10,5 (falls I<dict> E<gt> 32 MiB ist)"
2620
2844
2621
#. type: TP
2845
#. type: TP
2622
#: ../src/xz/xz.1:1428
2846
#: ../src/xz/xz.1:1616
2623
#, no-wrap
2847
#, no-wrap
2624
msgid "B<mode=>I<mode>"
2848
msgid "B<mode=>I<mode>"
2625
msgstr "B<mode=>I<Modus>"
2849
msgstr "B<mode=>I<Modus>"
2626
2850
2627
#. type: Plain text
2851
#. type: Plain text
2628
#: ../src/xz/xz.1:1449
2852
#: ../src/xz/xz.1:1637
2629
msgid ""
2853
msgid ""
2630
"Compression I<mode> specifies the method to analyze the data produced by the "
2854
"Compression I<mode> specifies the method to analyze the data produced by the "
2631
"match finder.  Supported I<modes> are B<fast> and B<normal>.  The default is "
2855
"match finder.  Supported I<modes> are B<fast> and B<normal>.  The default is "
2632
"B<fast> for I<presets> 0-3 and B<normal> for I<presets> 4-9."
2856
"B<fast> for I<presets> 0\\(en3 and B<normal> for I<presets> 4\\(en9."
2633
msgstr ""
2857
msgstr ""
2634
"gibt die Methode zum Analysieren der vom Übereinstimmungsfinder gelieferten "
2858
"gibt die Methode zum Analysieren der vom Übereinstimmungsfinder gelieferten "
2635
"Daten an. Als I<Modi> werden B<fast> und B<normal> unterstützt. Die Vorgabe "
2859
"Daten an. Als I<Modi> werden B<fast> und B<normal> unterstützt. Die Vorgabe "
Lines 2637-2643 Link Here
2637
"I<Voreinstellungsstufen> 4-9."
2861
"I<Voreinstellungsstufen> 4-9."
2638
2862
2639
#. type: Plain text
2863
#. type: Plain text
2640
#: ../src/xz/xz.1:1458
2864
#: ../src/xz/xz.1:1646
2641
msgid ""
2865
msgid ""
2642
"Usually B<fast> is used with Hash Chain match finders and B<normal> with "
2866
"Usually B<fast> is used with Hash Chain match finders and B<normal> with "
2643
"Binary Tree match finders.  This is also what the I<presets> do."
2867
"Binary Tree match finders.  This is also what the I<presets> do."
Lines 2647-2659 Link Here
2647
"machen es auch die I<Voreinstellungsstufen>."
2871
"machen es auch die I<Voreinstellungsstufen>."
2648
2872
2649
#. type: TP
2873
#. type: TP
2650
#: ../src/xz/xz.1:1458
2874
#: ../src/xz/xz.1:1646
2651
#, no-wrap
2875
#, no-wrap
2652
msgid "B<nice=>I<nice>"
2876
msgid "B<nice=>I<nice>"
2653
msgstr "B<nice=>I<nice>"
2877
msgstr "B<nice=>I<nice>"
2654
2878
2655
#. type: Plain text
2879
#. type: Plain text
2656
#: ../src/xz/xz.1:1465
2880
#: ../src/xz/xz.1:1653
2657
msgid ""
2881
msgid ""
2658
"Specify what is considered to be a nice length for a match.  Once a match of "
2882
"Specify what is considered to be a nice length for a match.  Once a match of "
2659
"at least I<nice> bytes is found, the algorithm stops looking for possibly "
2883
"at least I<nice> bytes is found, the algorithm stops looking for possibly "
Lines 2664-2686 Link Here
2664
"Wert hat, sucht der Algorithmus nicht weiter nach besseren Übereinstimmungen."
2888
"Wert hat, sucht der Algorithmus nicht weiter nach besseren Übereinstimmungen."
2665
2889
2666
#. type: Plain text
2890
#. type: Plain text
2667
#: ../src/xz/xz.1:1472
2891
#: ../src/xz/xz.1:1660
2668
msgid ""
2892
msgid ""
2669
"I<Nice> can be 2-273 bytes.  Higher values tend to give better compression "
2893
"I<Nice> can be 2\\(en273 bytes.  Higher values tend to give better "
2670
"ratio at the expense of speed.  The default depends on the I<preset>."
2894
"compression ratio at the expense of speed.  The default depends on the "
2895
"I<preset>."
2671
msgstr ""
2896
msgstr ""
2672
"Der I<nice>-Wert kann 2-273 Byte sein. Höhere Werte tendieren zu einem "
2897
"Der I<nice>-Wert kann 2-273 Byte sein. Höhere Werte tendieren zu einem "
2673
"besseren Kompressionsverhältnis, aber auf Kosten der Geschwindigkeit. Die "
2898
"besseren Kompressionsverhältnis, aber auf Kosten der Geschwindigkeit. Die "
2674
"Vorgabe hängt von der I<Voreinstellungsstufe> ab."
2899
"Vorgabe hängt von der I<Voreinstellungsstufe> ab."
2675
2900
2676
#. type: TP
2901
#. type: TP
2677
#: ../src/xz/xz.1:1472
2902
#: ../src/xz/xz.1:1660
2678
#, no-wrap
2903
#, no-wrap
2679
msgid "B<depth=>I<depth>"
2904
msgid "B<depth=>I<depth>"
2680
msgstr "B<depth=>I<Tiefe>"
2905
msgstr "B<depth=>I<Tiefe>"
2681
2906
2682
#. type: Plain text
2907
#. type: Plain text
2683
#: ../src/xz/xz.1:1482
2908
#: ../src/xz/xz.1:1670
2684
msgid ""
2909
msgid ""
2685
"Specify the maximum search depth in the match finder.  The default is the "
2910
"Specify the maximum search depth in the match finder.  The default is the "
2686
"special value of 0, which makes the compressor determine a reasonable "
2911
"special value of 0, which makes the compressor determine a reasonable "
Lines 2691-2702 Link Here
2691
"für I<Tiefe> aus I<Üf> und I<nice>-Wert zu bestimmen."
2916
"für I<Tiefe> aus I<Üf> und I<nice>-Wert zu bestimmen."
2692
2917
2693
#. type: Plain text
2918
#. type: Plain text
2694
#: ../src/xz/xz.1:1493
2919
#: ../src/xz/xz.1:1681
2695
msgid ""
2920
msgid ""
2696
"Reasonable I<depth> for Hash Chains is 4-100 and 16-1000 for Binary Trees.  "
2921
"Reasonable I<depth> for Hash Chains is 4\\(en100 and 16\\(en1000 for Binary "
2697
"Using very high values for I<depth> can make the encoder extremely slow with "
2922
"Trees.  Using very high values for I<depth> can make the encoder extremely "
2698
"some files.  Avoid setting the I<depth> over 1000 unless you are prepared to "
2923
"slow with some files.  Avoid setting the I<depth> over 1000 unless you are "
2699
"interrupt the compression in case it is taking far too long."
2924
"prepared to interrupt the compression in case it is taking far too long."
2700
msgstr ""
2925
msgstr ""
2701
"Die angemessene I<Tiefe> für Hash-Ketten ist 4-100 und 16-1000 für "
2926
"Die angemessene I<Tiefe> für Hash-Ketten ist 4-100 und 16-1000 für "
2702
"Binärbäume. Hohe Werte für die I<Tiefe> können den Kodierer bei einigen "
2927
"Binärbäume. Hohe Werte für die I<Tiefe> können den Kodierer bei einigen "
Lines 2705-2711 Link Here
2705
"abzubrechen, wenn sie zu lange dauert."
2930
"abzubrechen, wenn sie zu lange dauert."
2706
2931
2707
#. type: Plain text
2932
#. type: Plain text
2708
#: ../src/xz/xz.1:1504
2933
#: ../src/xz/xz.1:1692
2709
msgid ""
2934
msgid ""
2710
"When decoding raw streams (B<--format=raw>), LZMA2 needs only the dictionary "
2935
"When decoding raw streams (B<--format=raw>), LZMA2 needs only the dictionary "
2711
"I<size>.  LZMA1 needs also I<lc>, I<lp>, and I<pb>."
2936
"I<size>.  LZMA1 needs also I<lc>, I<lp>, and I<pb>."
Lines 2714-2756 Link Here
2714
"Wörterbuch-I<Größe>.  LZMA1 benötigt außerdem I<lc>, I<lp> und I<pb>."
2939
"Wörterbuch-I<Größe>.  LZMA1 benötigt außerdem I<lc>, I<lp> und I<pb>."
2715
2940
2716
#. type: TP
2941
#. type: TP
2717
#: ../src/xz/xz.1:1504
2942
#: ../src/xz/xz.1:1692
2718
#, no-wrap
2943
#, no-wrap
2719
msgid "B<--x86>[B<=>I<options>]"
2944
msgid "B<--x86>[B<=>I<options>]"
2720
msgstr "B<--x86>[B<=>I<Optionen>]"
2945
msgstr "B<--x86>[B<=>I<Optionen>]"
2721
2946
2722
#. type: TP
2947
#. type: TP
2723
#: ../src/xz/xz.1:1507
2948
#: ../src/xz/xz.1:1695
2724
#, no-wrap
2949
#, no-wrap
2725
msgid "B<--powerpc>[B<=>I<options>]"
2950
msgid "B<--arm>[B<=>I<options>]"
2726
msgstr "B<--powerpc>[B<=>I<Optionen>]"
2951
msgstr "B<--arm>[B<=>I<Optionen>]"
2727
2952
2728
#. type: TP
2953
#. type: TP
2729
#: ../src/xz/xz.1:1509
2954
#: ../src/xz/xz.1:1697
2730
#, no-wrap
2955
#, no-wrap
2731
msgid "B<--ia64>[B<=>I<options>]"
2956
msgid "B<--armthumb>[B<=>I<options>]"
2732
msgstr "B<--ia64>[B<=>I<Optionen>]"
2957
msgstr "B<--armthumb>[B<=>I<Optionen>]"
2733
2958
2734
#. type: TP
2959
#. type: TP
2735
#: ../src/xz/xz.1:1511
2960
#: ../src/xz/xz.1:1699
2736
#, no-wrap
2961
#, no-wrap
2737
msgid "B<--arm>[B<=>I<options>]"
2962
msgid "B<--arm64>[B<=>I<options>]"
2738
msgstr "B<--arm>[B<=>I<Optionen>]"
2963
msgstr "B<--arm64>[B<=>I<Optionen>]"
2739
2964
2740
#. type: TP
2965
#. type: TP
2741
#: ../src/xz/xz.1:1513
2966
#: ../src/xz/xz.1:1701
2742
#, no-wrap
2967
#, no-wrap
2743
msgid "B<--armthumb>[B<=>I<options>]"
2968
msgid "B<--powerpc>[B<=>I<options>]"
2744
msgstr "B<--armthumb>[B<=>I<Optionen>]"
2969
msgstr "B<--powerpc>[B<=>I<Optionen>]"
2745
2970
2746
#. type: TP
2971
#. type: TP
2747
#: ../src/xz/xz.1:1515
2972
#: ../src/xz/xz.1:1703
2748
#, no-wrap
2973
#, no-wrap
2974
msgid "B<--ia64>[B<=>I<options>]"
2975
msgstr "B<--ia64>[B<=>I<Optionen>]"
2976
2977
#. type: TP
2978
#: ../src/xz/xz.1:1705
2979
#, no-wrap
2749
msgid "B<--sparc>[B<=>I<options>]"
2980
msgid "B<--sparc>[B<=>I<options>]"
2750
msgstr "B<--sparc>[B<=>I<Optionen>]"
2981
msgstr "B<--sparc>[B<=>I<Optionen>]"
2751
2982
2752
#. type: Plain text
2983
#. type: Plain text
2753
#: ../src/xz/xz.1:1521
2984
#: ../src/xz/xz.1:1711
2754
msgid ""
2985
msgid ""
2755
"Add a branch/call/jump (BCJ) filter to the filter chain.  These filters can "
2986
"Add a branch/call/jump (BCJ) filter to the filter chain.  These filters can "
2756
"be used only as a non-last filter in the filter chain."
2987
"be used only as a non-last filter in the filter chain."
Lines 2759-2772 Link Here
2759
"können nicht als letzter Filter in der Filterkette verwendet werden."
2990
"können nicht als letzter Filter in der Filterkette verwendet werden."
2760
2991
2761
#. type: Plain text
2992
#. type: Plain text
2762
#: ../src/xz/xz.1:1533
2993
#: ../src/xz/xz.1:1725
2763
msgid ""
2994
msgid ""
2764
"A BCJ filter converts relative addresses in the machine code to their "
2995
"A BCJ filter converts relative addresses in the machine code to their "
2765
"absolute counterparts.  This doesn't change the size of the data, but it "
2996
"absolute counterparts.  This doesn't change the size of the data but it "
2766
"increases redundancy, which can help LZMA2 to produce 0-15\\ % smaller B<."
2997
"increases redundancy, which can help LZMA2 to produce 0\\(en15\\ % smaller "
2767
"xz> file.  The BCJ filters are always reversible, so using a BCJ filter for "
2998
"B<.xz> file.  The BCJ filters are always reversible, so using a BCJ filter "
2768
"wrong type of data doesn't cause any data loss, although it may make the "
2999
"for wrong type of data doesn't cause any data loss, although it may make the "
2769
"compression ratio slightly worse."
3000
"compression ratio slightly worse.  The BCJ filters are very fast and use an "
3001
"insignificant amount of memory."
2770
msgstr ""
3002
msgstr ""
2771
"Ein BCJ-Filter wandelt relative Adressen im Maschinencode in deren absolute "
3003
"Ein BCJ-Filter wandelt relative Adressen im Maschinencode in deren absolute "
2772
"Gegenstücke um. Die Datengröße wird dadurch nicht geändert, aber die "
3004
"Gegenstücke um. Die Datengröße wird dadurch nicht geändert, aber die "
Lines 2774-2826 Link Here
2774
"B<.xz>-Datei zu erstellen. Die BCJ-Filter sind immer reversibel, daher "
3006
"B<.xz>-Datei zu erstellen. Die BCJ-Filter sind immer reversibel, daher "
2775
"verursacht die Anwendung eines BCJ-Filters auf den falschen Datentyp keinen "
3007
"verursacht die Anwendung eines BCJ-Filters auf den falschen Datentyp keinen "
2776
"Datenverlust, wobei aber das Kompressionsverhältnis etwas schlechter werden "
3008
"Datenverlust, wobei aber das Kompressionsverhältnis etwas schlechter werden "
2777
"könnte."
3009
"könnte. Die BCJ-Filter sind sehr schnell und verbrauchen nur wenig mehr "
3010
"Speicher."
2778
3011
2779
#. type: Plain text
3012
#. type: Plain text
2780
#: ../src/xz/xz.1:1540
3013
#: ../src/xz/xz.1:1728
2781
msgid ""
2782
"It is fine to apply a BCJ filter on a whole executable; there's no need to "
2783
"apply it only on the executable section.  Applying a BCJ filter on an "
2784
"archive that contains both executable and non-executable files may or may "
2785
"not give good results, so it generally isn't good to blindly apply a BCJ "
2786
"filter when compressing binary packages for distribution."
2787
msgstr ""
2788
"Es ist in Ordnung, einen BCJ-Filter auf eine gesamte Binärdatei anzuwenden; "
2789
"es ist nicht nötig, dies nur auf den binären Bereich zu beschränken. Die "
2790
"Anwendung eines BCJ-Filters auf ein Archiv, das sowohl binäre als auch nicht-"
2791
"binäre Dateien enthält, kann gute Ergebnisse liefern, muss es aber nicht. "
2792
"Daher ist es generell nicht gut, einen BCJ-Filter blindlings anzuwenden, "
2793
"wenn Sie Binärpakete zwecks Weitergabe komprimieren wollen."
2794
2795
#. type: Plain text
2796
#: ../src/xz/xz.1:1548
2797
msgid ""
2798
"These BCJ filters are very fast and use insignificant amount of memory.  If "
2799
"a BCJ filter improves compression ratio of a file, it can improve "
2800
"decompression speed at the same time.  This is because, on the same "
2801
"hardware, the decompression speed of LZMA2 is roughly a fixed number of "
2802
"bytes of compressed data per second."
2803
msgstr ""
2804
"Diese BCJ-Filter sind sehr schnell und erhöhen den Speicherbedarf nur "
2805
"unerheblich. Wenn ein BCJ-Filter das Kompressionsverhältnis einer Datei "
2806
"verbessert, kann er auch gleichzeitig die Dekompressionsgeschwindigkeit "
2807
"verbessern. Das kommt daher, dass auf der gleichen Hardware die "
2808
"Dekompressionsgeschwindigkeit von LZMA2 ungefähr eine feste Anzahl Byte an "
2809
"komprimierten Daten pro Sekunde ist."
2810
2811
#. type: Plain text
2812
#: ../src/xz/xz.1:1551
2813
msgid "These BCJ filters have known problems related to the compression ratio:"
3014
msgid "These BCJ filters have known problems related to the compression ratio:"
2814
msgstr ""
3015
msgstr ""
2815
"Diese BCJ-Filter haben bekannte Probleme mit dem Kompressionsverhältnis:"
3016
"Diese BCJ-Filter haben bekannte Probleme mit dem Kompressionsverhältnis:"
2816
3017
2817
#. type: Plain text
3018
#. type: Plain text
2818
#: ../src/xz/xz.1:1558
3019
#: ../src/xz/xz.1:1735
2819
msgid ""
3020
msgid ""
2820
"Some types of files containing executable code (e.g. object files, static "
3021
"Some types of files containing executable code (for example, object files, "
2821
"libraries, and Linux kernel modules)  have the addresses in the instructions "
3022
"static libraries, and Linux kernel modules)  have the addresses in the "
2822
"filled with filler values.  These BCJ filters will still do the address "
3023
"instructions filled with filler values.  These BCJ filters will still do the "
2823
"conversion, which will make the compression worse with these files."
3024
"address conversion, which will make the compression worse with these files."
2824
msgstr ""
3025
msgstr ""
2825
"In einigen Dateitypen, die ausführbaren Code enthalten (zum Beispiel "
3026
"In einigen Dateitypen, die ausführbaren Code enthalten (zum Beispiel "
2826
"Objektdateien, statische Bibliotheken und Linux-Kernelmodule), sind die "
3027
"Objektdateien, statische Bibliotheken und Linux-Kernelmodule), sind die "
Lines 2829-2980 Link Here
2829
"schlechter wird."
3030
"schlechter wird."
2830
3031
2831
#. type: Plain text
3032
#. type: Plain text
2832
#: ../src/xz/xz.1:1565
3033
#: ../src/xz/xz.1:1745
2833
msgid ""
3034
msgid ""
2834
"Applying a BCJ filter on an archive containing multiple similar executables "
3035
"If a BCJ filter is applied on an archive, it is possible that it makes the "
2835
"can make the compression ratio worse than not using a BCJ filter.  This is "
3036
"compression ratio worse than not using a BCJ filter.  For example, if there "
2836
"because the BCJ filter doesn't detect the boundaries of the executable "
3037
"are similar or even identical executables then filtering will likely make "
2837
"files, and doesn't reset the address conversion counter for each executable."
3038
"the files less similar and thus compression is worse.  The contents of non-"
3039
"executable files in the same archive can matter too.  In practice one has to "
3040
"try with and without a BCJ filter to see which is better in each situation."
2838
msgstr ""
3041
msgstr ""
2839
"Bei der Anwendung eines BCJ-Filters auf ein Archiv, das mehrere ähnliche "
3042
"Falls ein BCJ-Filter auf ein Archiv angewendet wird, ist es möglich, dass "
2840
"Binärdateien enthält, kann das Kompressionsverhältnis schlechter sein als "
3043
"das Kompressionsverhältnis schlechter als ohne Filter wird. Falls es "
2841
"ohne BCJ-Filter. Das kommt daher, weil der BCJ-Filter die Grenzen der "
3044
"beispielsweise ähnliche oder sogar identische ausführbare Dateien gibt, dann "
2842
"Binärdateien nicht erkennt und den Zähler der Adressumwandlung für jede "
3045
"werden diese durch die Filterung wahrscheinlich »unähnlicher« und "
2843
"Binärdatei nicht zurücksetzt."
3046
"verschlechtern dadurch das Kompressionsverhältnis. Der Inhalt nicht-"
3047
"ausführbarer Dateien im gleichen Archiv kann sich ebenfalls darauf "
3048
"auswirken. In der Praxis werden Sie durch Versuche mit oder ohne BCJ-Filter "
3049
"selbst herausfinden müssen, was situationsbezogen besser ist."
2844
3050
2845
#. type: Plain text
3051
#. type: Plain text
2846
#: ../src/xz/xz.1:1572
3052
#: ../src/xz/xz.1:1750
2847
msgid ""
3053
msgid ""
2848
"Both of the above problems will be fixed in the future in a new filter.  The "
3054
"Different instruction sets have different alignment: the executable file "
2849
"old BCJ filters will still be useful in embedded systems, because the "
3055
"must be aligned to a multiple of this value in the input data to make the "
2850
"decoder of the new filter will be bigger and use more memory."
3056
"filter work."
2851
msgstr ""
3057
msgstr ""
2852
"Beide der oben genannten Probleme werden in der Zukunft in einem neuen "
3058
"Verschiedene Befehlssätze haben unterschiedliche Ausrichtungen: Die "
2853
"Filter nicht mehr auftreten. Die alten BCJ-Filter werden noch in "
3059
"ausführbare Datei muss in den Eingabedateien einem Vielfachen dieses Wertes "
2854
"eingebetteten Systemen von Nutzen sein, weil der Dekoder des neuen Filters "
3060
"entsprechen, damit dieser Filter funktioniert."
2855
"größer sein und mehr Speicher beanspruchen wird."
2856
3061
2857
# FIXME have have
2858
#. type: Plain text
2859
#: ../src/xz/xz.1:1574
2860
msgid "Different instruction sets have different alignment:"
2861
msgstr "Verschiedene Befehlssätze haben unterschiedliche Ausrichtungen:"
2862
2863
#. type: tbl table
3062
#. type: tbl table
2864
#: ../src/xz/xz.1:1581
3063
#: ../src/xz/xz.1:1757
2865
#, no-wrap
3064
#, no-wrap
2866
msgid "Filter"
3065
msgid "Filter"
2867
msgstr "Filter"
3066
msgstr "Filter"
2868
3067
2869
#. type: tbl table
3068
#. type: tbl table
2870
#: ../src/xz/xz.1:1581
3069
#: ../src/xz/xz.1:1757
2871
#, no-wrap
3070
#, no-wrap
2872
msgid "Alignment"
3071
msgid "Alignment"
2873
msgstr "Ausrichtung"
3072
msgstr "Ausrichtung"
2874
3073
2875
#. type: tbl table
3074
#. type: tbl table
2876
#: ../src/xz/xz.1:1581
3075
#: ../src/xz/xz.1:1757
2877
#, no-wrap
3076
#, no-wrap
2878
msgid "Notes"
3077
msgid "Notes"
2879
msgstr "Hinweise"
3078
msgstr "Hinweise"
2880
3079
2881
#. type: tbl table
3080
#. type: tbl table
2882
#: ../src/xz/xz.1:1582
3081
#: ../src/xz/xz.1:1758
2883
#, no-wrap
3082
#, no-wrap
2884
msgid "x86"
3083
msgid "x86"
2885
msgstr "x86"
3084
msgstr "x86"
2886
3085
2887
#. type: tbl table
3086
#. type: tbl table
2888
#: ../src/xz/xz.1:1582
3087
#: ../src/xz/xz.1:1758
2889
#, no-wrap
3088
#, no-wrap
2890
msgid "32-bit or 64-bit x86"
3089
msgid "32-bit or 64-bit x86"
2891
msgstr "32-Bit oder 64-Bit x86"
3090
msgstr "32-Bit oder 64-Bit x86"
2892
3091
2893
#. type: tbl table
3092
#. type: tbl table
2894
#: ../src/xz/xz.1:1583
3093
#: ../src/xz/xz.1:1759
2895
#, no-wrap
3094
#, no-wrap
2896
msgid "PowerPC"
3095
msgid "ARM"
2897
msgstr "PowerPC"
3096
msgstr "ARM"
2898
3097
2899
#. type: tbl table
3098
#. type: tbl table
2900
#: ../src/xz/xz.1:1583
3099
#: ../src/xz/xz.1:1760
2901
#, no-wrap
3100
#, no-wrap
2902
msgid "Big endian only"
3101
msgid "ARM-Thumb"
2903
msgstr "Nur Big Endian"
3102
msgstr "ARM-Thumb"
2904
3103
2905
#. type: tbl table
3104
#. type: tbl table
2906
#: ../src/xz/xz.1:1584
3105
#: ../src/xz/xz.1:1761
2907
#, no-wrap
3106
#, no-wrap
2908
msgid "ARM"
3107
msgid "ARM64"
2909
msgstr "ARM"
3108
msgstr "ARM64"
2910
3109
2911
#. type: tbl table
3110
#. type: tbl table
2912
#: ../src/xz/xz.1:1584 ../src/xz/xz.1:1585
3111
#: ../src/xz/xz.1:1761
2913
#, no-wrap
3112
#, no-wrap
2914
msgid "Little endian only"
3113
msgid "4096-byte alignment is best"
2915
msgstr "Nur Little Endian"
3114
msgstr "4096-Byte-Ausrichtung ist optimal"
2916
3115
2917
#. type: tbl table
3116
#. type: tbl table
2918
#: ../src/xz/xz.1:1585
3117
#: ../src/xz/xz.1:1762
2919
#, no-wrap
3118
#, no-wrap
2920
msgid "ARM-Thumb"
3119
msgid "PowerPC"
2921
msgstr "ARM-Thumb"
3120
msgstr "PowerPC"
2922
3121
2923
#. type: tbl table
3122
#. type: tbl table
2924
#: ../src/xz/xz.1:1586
3123
#: ../src/xz/xz.1:1762
2925
#, no-wrap
3124
#, no-wrap
3125
msgid "Big endian only"
3126
msgstr "Nur Big Endian"
3127
3128
#. type: tbl table
3129
#: ../src/xz/xz.1:1763
3130
#, no-wrap
2926
msgid "IA-64"
3131
msgid "IA-64"
2927
msgstr "IA-64"
3132
msgstr "IA-64"
2928
3133
2929
#. type: tbl table
3134
#. type: tbl table
2930
#: ../src/xz/xz.1:1586
3135
#: ../src/xz/xz.1:1763
2931
#, no-wrap
3136
#, no-wrap
2932
msgid "16"
3137
msgid "16"
2933
msgstr "16"
3138
msgstr "16"
2934
3139
2935
#. type: tbl table
3140
#. type: tbl table
2936
#: ../src/xz/xz.1:1586 ../src/xz/xz.1:1587
3141
#: ../src/xz/xz.1:1763
2937
#, no-wrap
3142
#, no-wrap
2938
msgid "Big or little endian"
3143
msgid "Itanium"
2939
msgstr "Big oder Little Endian"
3144
msgstr "Itanium"
2940
3145
2941
#. type: tbl table
3146
#. type: tbl table
2942
#: ../src/xz/xz.1:1587
3147
#: ../src/xz/xz.1:1764
2943
#, no-wrap
3148
#, no-wrap
2944
msgid "SPARC"
3149
msgid "SPARC"
2945
msgstr "SPARC"
3150
msgstr "SPARC"
2946
3151
2947
#. type: Plain text
3152
#. type: Plain text
2948
#: ../src/xz/xz.1:1602
3153
#: ../src/xz/xz.1:1781
2949
msgid ""
3154
msgid ""
2950
"Since the BCJ-filtered data is usually compressed with LZMA2, the "
3155
"Since the BCJ-filtered data is usually compressed with LZMA2, the "
2951
"compression ratio may be improved slightly if the LZMA2 options are set to "
3156
"compression ratio may be improved slightly if the LZMA2 options are set to "
2952
"match the alignment of the selected BCJ filter.  For example, with the IA-64 "
3157
"match the alignment of the selected BCJ filter.  For example, with the IA-64 "
2953
"filter, it's good to set B<pb=4> with LZMA2 (2^4=16).  The x86 filter is an "
3158
"filter, it's good to set B<pb=4> or even B<pb=4,lp=4,lc=0> with LZMA2 "
2954
"exception; it's usually good to stick to LZMA2's default four-byte alignment "
3159
"(2^4=16).  The x86 filter is an exception; it's usually good to stick to "
2955
"when compressing x86 executables."
3160
"LZMA2's default four-byte alignment when compressing x86 executables."
2956
msgstr ""
3161
msgstr ""
2957
"Da die BCJ-gefilterten Daten üblicherweise mit LZMA2 komprimiert sind, kann "
3162
"Da die BCJ-gefilterten Daten üblicherweise mit LZMA2 komprimiert sind, kann "
2958
"das Kompressionsverhältnis dadurch etwas verbessert werden, dass die LZMA2-"
3163
"das Kompressionsverhältnis dadurch etwas verbessert werden, dass die LZMA2-"
2959
"Optionen so gesetzt werden, dass sie der Ausrichtung des gewählten BCJ-"
3164
"Optionen so gesetzt werden, dass sie der Ausrichtung des gewählten BCJ-"
2960
"Filters entsprechen. Zum Beispiel ist es beim IA-64-Filter eine gute Wahl, "
3165
"Filters entsprechen. Zum Beispiel ist es beim IA-64-Filter eine gute Wahl, "
2961
"B<pb=4> mit LZMA2 zu setzen (2^4=16). Der x86-Filter bildet dabei eine "
3166
"B<pb=4> oder sogar B<pb=4,lp=4,lc=0> mit LZMA2 zu setzen (2^4=16). Der x86-"
2962
"Ausnahme; Sie sollten bei der für LZMA2 voreingestellten 4-Byte-Ausrichtung "
3167
"Filter bildet dabei eine Ausnahme; Sie sollten bei der für LZMA2 "
2963
"bleiben, wenn Sie x86-Binärdateien komprimieren."
3168
"voreingestellten 4-Byte-Ausrichtung bleiben, wenn Sie x86-Binärdateien "
3169
"komprimieren."
2964
3170
2965
#. type: Plain text
3171
#. type: Plain text
2966
#: ../src/xz/xz.1:1605
3172
#: ../src/xz/xz.1:1784
2967
msgid "All BCJ filters support the same I<options>:"
3173
msgid "All BCJ filters support the same I<options>:"
2968
msgstr "Alle BCJ-Filter unterstützen die gleichen I<Optionen>:"
3174
msgstr "Alle BCJ-Filter unterstützen die gleichen I<Optionen>:"
2969
3175
2970
#. type: TP
3176
#. type: TP
2971
#: ../src/xz/xz.1:1606
3177
#: ../src/xz/xz.1:1785
2972
#, no-wrap
3178
#, no-wrap
2973
msgid "B<start=>I<offset>"
3179
msgid "B<start=>I<offset>"
2974
msgstr "B<start=>I<Versatz>"
3180
msgstr "B<start=>I<Versatz>"
2975
3181
2976
#. type: Plain text
3182
#. type: Plain text
2977
#: ../src/xz/xz.1:1620
3183
#: ../src/xz/xz.1:1799
2978
msgid ""
3184
msgid ""
2979
"Specify the start I<offset> that is used when converting between relative "
3185
"Specify the start I<offset> that is used when converting between relative "
2980
"and absolute addresses.  The I<offset> must be a multiple of the alignment "
3186
"and absolute addresses.  The I<offset> must be a multiple of the alignment "
Lines 2988-3000 Link Here
2988
"I<Versatzes> ist fast immer unnütz."
3194
"I<Versatzes> ist fast immer unnütz."
2989
3195
2990
#. type: TP
3196
#. type: TP
2991
#: ../src/xz/xz.1:1621
3197
#: ../src/xz/xz.1:1800
2992
#, no-wrap
3198
#, no-wrap
2993
msgid "B<--delta>[B<=>I<options>]"
3199
msgid "B<--delta>[B<=>I<options>]"
2994
msgstr "B<--delta>[B<=>I<Optionen>]"
3200
msgstr "B<--delta>[B<=>I<Optionen>]"
2995
3201
2996
#. type: Plain text
3202
#. type: Plain text
2997
#: ../src/xz/xz.1:1626
3203
#: ../src/xz/xz.1:1805
2998
msgid ""
3204
msgid ""
2999
"Add the Delta filter to the filter chain.  The Delta filter can be only used "
3205
"Add the Delta filter to the filter chain.  The Delta filter can be only used "
3000
"as a non-last filter in the filter chain."
3206
"as a non-last filter in the filter chain."
Lines 3003-3015 Link Here
3003
"letzter Filter in der Filterkette verwendet werden."
3209
"letzter Filter in der Filterkette verwendet werden."
3004
3210
3005
#. type: Plain text
3211
#. type: Plain text
3006
#: ../src/xz/xz.1:1635
3212
#: ../src/xz/xz.1:1814
3007
msgid ""
3213
msgid ""
3008
"Currently only simple byte-wise delta calculation is supported.  It can be "
3214
"Currently only simple byte-wise delta calculation is supported.  It can be "
3009
"useful when compressing e.g. uncompressed bitmap images or uncompressed PCM "
3215
"useful when compressing, for example, uncompressed bitmap images or "
3010
"audio.  However, special purpose algorithms may give significantly better "
3216
"uncompressed PCM audio.  However, special purpose algorithms may give "
3011
"results than Delta + LZMA2.  This is true especially with audio, which "
3217
"significantly better results than Delta + LZMA2.  This is true especially "
3012
"compresses faster and better e.g. with B<flac>(1)."
3218
"with audio, which compresses faster and better, for example, with B<flac>(1)."
3013
msgstr ""
3219
msgstr ""
3014
"Gegenwärtig wird nur eine einfache, Byte-bezogene Delta-Berechnung "
3220
"Gegenwärtig wird nur eine einfache, Byte-bezogene Delta-Berechnung "
3015
"unterstützt. Beim Komprimieren von zum Beispiel unkomprimierten Bitmap-"
3221
"unterstützt. Beim Komprimieren von zum Beispiel unkomprimierten Bitmap-"
Lines 3020-3046 Link Here
3020
"komprimieren lassen."
3226
"komprimieren lassen."
3021
3227
3022
#. type: Plain text
3228
#. type: Plain text
3023
#: ../src/xz/xz.1:1638
3229
#: ../src/xz/xz.1:1817
3024
msgid "Supported I<options>:"
3230
msgid "Supported I<options>:"
3025
msgstr "Unterstützte I<Optionen>:"
3231
msgstr "Unterstützte I<Optionen>:"
3026
3232
3027
#. type: TP
3233
#. type: TP
3028
#: ../src/xz/xz.1:1639
3234
#: ../src/xz/xz.1:1818
3029
#, no-wrap
3235
#, no-wrap
3030
msgid "B<dist=>I<distance>"
3236
msgid "B<dist=>I<distance>"
3031
msgstr "B<dist=>I<Abstand>"
3237
msgstr "B<dist=>I<Abstand>"
3032
3238
3033
#. type: Plain text
3239
#. type: Plain text
3034
#: ../src/xz/xz.1:1647
3240
#: ../src/xz/xz.1:1826
3035
msgid ""
3241
msgid ""
3036
"Specify the I<distance> of the delta calculation in bytes.  I<distance> must "
3242
"Specify the I<distance> of the delta calculation in bytes.  I<distance> must "
3037
"be 1-256.  The default is 1."
3243
"be 1\\(en256.  The default is 1."
3038
msgstr ""
3244
msgstr ""
3039
"gibt den I<Abstand> der Delta-Berechnung in Byte an. Zulässige Werte für den "
3245
"gibt den I<Abstand> der Delta-Berechnung in Byte an. Zulässige Werte für den "
3040
"I<Abstand> sind 1 bis 256. Der Vorgabewert ist 1."
3246
"I<Abstand> sind 1 bis 256. Der Vorgabewert ist 1."
3041
3247
3042
#. type: Plain text
3248
#. type: Plain text
3043
#: ../src/xz/xz.1:1652
3249
#: ../src/xz/xz.1:1831
3044
msgid ""
3250
msgid ""
3045
"For example, with B<dist=2> and eight-byte input A1 B1 A2 B3 A3 B5 A4 B7, "
3251
"For example, with B<dist=2> and eight-byte input A1 B1 A2 B3 A3 B5 A4 B7, "
3046
"the output will be A1 B1 01 02 01 02 01 02."
3252
"the output will be A1 B1 01 02 01 02 01 02."
Lines 3049-3067 Link Here
3049
"B7 die Ausgabe A1 B1 01 02 01 02 01 02 sein."
3255
"B7 die Ausgabe A1 B1 01 02 01 02 01 02 sein."
3050
3256
3051
#. type: SS
3257
#. type: SS
3052
#: ../src/xz/xz.1:1654
3258
#: ../src/xz/xz.1:1833
3053
#, no-wrap
3259
#, no-wrap
3054
msgid "Other options"
3260
msgid "Other options"
3055
msgstr "Andere Optionen"
3261
msgstr "Andere Optionen"
3056
3262
3057
#. type: TP
3263
#. type: TP
3058
#: ../src/xz/xz.1:1655 ../src/xzdec/xzdec.1:83
3264
#: ../src/xz/xz.1:1834 ../src/xzdec/xzdec.1:83
3059
#, no-wrap
3265
#, no-wrap
3060
msgid "B<-q>, B<--quiet>"
3266
msgid "B<-q>, B<--quiet>"
3061
msgstr "B<-q>, B<--quiet>"
3267
msgstr "B<-q>, B<--quiet>"
3062
3268
3063
#. type: Plain text
3269
#. type: Plain text
3064
#: ../src/xz/xz.1:1662
3270
#: ../src/xz/xz.1:1841
3065
msgid ""
3271
msgid ""
3066
"Suppress warnings and notices.  Specify this twice to suppress errors too.  "
3272
"Suppress warnings and notices.  Specify this twice to suppress errors too.  "
3067
"This option has no effect on the exit status.  That is, even if a warning "
3273
"This option has no effect on the exit status.  That is, even if a warning "
Lines 3073-3085 Link Here
3073
"Exit-Status zur Anzeige einer Warnung dennoch verwendet wird."
3279
"Exit-Status zur Anzeige einer Warnung dennoch verwendet wird."
3074
3280
3075
#. type: TP
3281
#. type: TP
3076
#: ../src/xz/xz.1:1662
3282
#: ../src/xz/xz.1:1841
3077
#, no-wrap
3283
#, no-wrap
3078
msgid "B<-v>, B<--verbose>"
3284
msgid "B<-v>, B<--verbose>"
3079
msgstr "B<-v>, B<--verbose>"
3285
msgstr "B<-v>, B<--verbose>"
3080
3286
3081
#. type: Plain text
3287
#. type: Plain text
3082
#: ../src/xz/xz.1:1671
3288
#: ../src/xz/xz.1:1850
3083
msgid ""
3289
msgid ""
3084
"Be verbose.  If standard error is connected to a terminal, B<xz> will "
3290
"Be verbose.  If standard error is connected to a terminal, B<xz> will "
3085
"display a progress indicator.  Specifying B<--verbose> twice will give even "
3291
"display a progress indicator.  Specifying B<--verbose> twice will give even "
Lines 3090-3101 Link Here
3090
"Angabe von B<--verbose> wird die Ausgabe noch ausführlicher."
3296
"Angabe von B<--verbose> wird die Ausgabe noch ausführlicher."
3091
3297
3092
#. type: Plain text
3298
#. type: Plain text
3093
#: ../src/xz/xz.1:1673
3299
#: ../src/xz/xz.1:1852
3094
msgid "The progress indicator shows the following information:"
3300
msgid "The progress indicator shows the following information:"
3095
msgstr "Der Fortschrittsanzeiger stellt die folgenden Informationen dar:"
3301
msgstr "Der Fortschrittsanzeiger stellt die folgenden Informationen dar:"
3096
3302
3097
#. type: Plain text
3303
#. type: Plain text
3098
#: ../src/xz/xz.1:1678
3304
#: ../src/xz/xz.1:1857
3099
msgid ""
3305
msgid ""
3100
"Completion percentage is shown if the size of the input file is known.  That "
3306
"Completion percentage is shown if the size of the input file is known.  That "
3101
"is, the percentage cannot be shown in pipes."
3307
"is, the percentage cannot be shown in pipes."
Lines 3105-3111 Link Here
3105
"Weiterleitungen (Pipes) nicht angezeigt werden kann."
3311
"Weiterleitungen (Pipes) nicht angezeigt werden kann."
3106
3312
3107
#. type: Plain text
3313
#. type: Plain text
3108
#: ../src/xz/xz.1:1681
3314
#: ../src/xz/xz.1:1860
3109
msgid ""
3315
msgid ""
3110
"Amount of compressed data produced (compressing)  or consumed "
3316
"Amount of compressed data produced (compressing)  or consumed "
3111
"(decompressing)."
3317
"(decompressing)."
Lines 3114-3120 Link Here
3114
"verarbeiteten Daten (bei der Dekompression)."
3320
"verarbeiteten Daten (bei der Dekompression)."
3115
3321
3116
#. type: Plain text
3322
#. type: Plain text
3117
#: ../src/xz/xz.1:1684
3323
#: ../src/xz/xz.1:1863
3118
msgid ""
3324
msgid ""
3119
"Amount of uncompressed data consumed (compressing)  or produced "
3325
"Amount of uncompressed data consumed (compressing)  or produced "
3120
"(decompressing)."
3326
"(decompressing)."
Lines 3123-3129 Link Here
3123
"erzeugten Daten (bei der Dekompression)."
3329
"erzeugten Daten (bei der Dekompression)."
3124
3330
3125
#. type: Plain text
3331
#. type: Plain text
3126
#: ../src/xz/xz.1:1688
3332
#: ../src/xz/xz.1:1867
3127
msgid ""
3333
msgid ""
3128
"Compression ratio, which is calculated by dividing the amount of compressed "
3334
"Compression ratio, which is calculated by dividing the amount of compressed "
3129
"data processed so far by the amount of uncompressed data processed so far."
3335
"data processed so far by the amount of uncompressed data processed so far."
Lines 3133-3139 Link Here
3133
"Daten ermittelt wird."
3339
"Daten ermittelt wird."
3134
3340
3135
#. type: Plain text
3341
#. type: Plain text
3136
#: ../src/xz/xz.1:1695
3342
#: ../src/xz/xz.1:1874
3137
msgid ""
3343
msgid ""
3138
"Compression or decompression speed.  This is measured as the amount of "
3344
"Compression or decompression speed.  This is measured as the amount of "
3139
"uncompressed data consumed (compression) or produced (decompression) per "
3345
"uncompressed data consumed (compression) or produced (decompression) per "
Lines 3147-3163 Link Here
3147
"begonnen hat."
3353
"begonnen hat."
3148
3354
3149
#. type: Plain text
3355
#. type: Plain text
3150
#: ../src/xz/xz.1:1697
3356
#: ../src/xz/xz.1:1876
3151
msgid "Elapsed time in the format M:SS or H:MM:SS."
3357
msgid "Elapsed time in the format M:SS or H:MM:SS."
3152
msgstr "Die vergangene Zeit im Format M:SS oder H:MM:SS."
3358
msgstr "Die vergangene Zeit im Format M:SS oder H:MM:SS."
3153
3359
3154
#. type: Plain text
3360
#. type: Plain text
3155
#: ../src/xz/xz.1:1705
3361
#: ../src/xz/xz.1:1884
3156
msgid ""
3362
msgid ""
3157
"Estimated remaining time is shown only when the size of the input file is "
3363
"Estimated remaining time is shown only when the size of the input file is "
3158
"known and a couple of seconds have already passed since B<xz> started "
3364
"known and a couple of seconds have already passed since B<xz> started "
3159
"processing the file.  The time is shown in a less precise format which never "
3365
"processing the file.  The time is shown in a less precise format which never "
3160
"has any colons, e.g. 2 min 30 s."
3366
"has any colons, for example, 2 min 30 s."
3161
msgstr ""
3367
msgstr ""
3162
"Die geschätzte verbleibende Zeit wird nur angezeigt, wenn die Größe der "
3368
"Die geschätzte verbleibende Zeit wird nur angezeigt, wenn die Größe der "
3163
"Eingabedatei bekannt ist und bereits einige Sekunden vergangen sind, nachdem "
3369
"Eingabedatei bekannt ist und bereits einige Sekunden vergangen sind, nachdem "
Lines 3165-3179 Link Here
3165
"weniger präzisen Format ohne Doppelpunkte angezeigt, zum Beispiel 2 min 30 s."
3371
"weniger präzisen Format ohne Doppelpunkte angezeigt, zum Beispiel 2 min 30 s."
3166
3372
3167
#. type: Plain text
3373
#. type: Plain text
3168
#: ../src/xz/xz.1:1720
3374
#: ../src/xz/xz.1:1899
3169
msgid ""
3375
msgid ""
3170
"When standard error is not a terminal, B<--verbose> will make B<xz> print "
3376
"When standard error is not a terminal, B<--verbose> will make B<xz> print "
3171
"the filename, compressed size, uncompressed size, compression ratio, and "
3377
"the filename, compressed size, uncompressed size, compression ratio, and "
3172
"possibly also the speed and elapsed time on a single line to standard error "
3378
"possibly also the speed and elapsed time on a single line to standard error "
3173
"after compressing or decompressing the file.  The speed and elapsed time are "
3379
"after compressing or decompressing the file.  The speed and elapsed time are "
3174
"included only when the operation took at least a few seconds.  If the "
3380
"included only when the operation took at least a few seconds.  If the "
3175
"operation didn't finish, e.g. due to user interruption, also the completion "
3381
"operation didn't finish, for example, due to user interruption, also the "
3176
"percentage is printed if the size of the input file is known."
3382
"completion percentage is printed if the size of the input file is known."
3177
msgstr ""
3383
msgstr ""
3178
"Wenn die Standardfehlerausgabe kein Terminal ist, schreibt B<xz> mit B<--"
3384
"Wenn die Standardfehlerausgabe kein Terminal ist, schreibt B<xz> mit B<--"
3179
"verbose> nach dem Komprimieren oder Dekomprimieren der Datei in einer "
3385
"verbose> nach dem Komprimieren oder Dekomprimieren der Datei in einer "
Lines 3187-3199 Link Here
3187
"Eingabedatei bekannt ist."
3393
"Eingabedatei bekannt ist."
3188
3394
3189
#. type: TP
3395
#. type: TP
3190
#: ../src/xz/xz.1:1720 ../src/xzdec/xzdec.1:89
3396
#: ../src/xz/xz.1:1899 ../src/xzdec/xzdec.1:89
3191
#, no-wrap
3397
#, no-wrap
3192
msgid "B<-Q>, B<--no-warn>"
3398
msgid "B<-Q>, B<--no-warn>"
3193
msgstr "B<-Q>, B<--no-warn>"
3399
msgstr "B<-Q>, B<--no-warn>"
3194
3400
3195
#. type: Plain text
3401
#. type: Plain text
3196
#: ../src/xz/xz.1:1730
3402
#: ../src/xz/xz.1:1909
3197
msgid ""
3403
msgid ""
3198
"Don't set the exit status to 2 even if a condition worth a warning was "
3404
"Don't set the exit status to 2 even if a condition worth a warning was "
3199
"detected.  This option doesn't affect the verbosity level, thus both B<--"
3405
"detected.  This option doesn't affect the verbosity level, thus both B<--"
Lines 3207-3219 Link Here
3207
"andererseits auch den Exit-Status nicht zu ändern."
3413
"andererseits auch den Exit-Status nicht zu ändern."
3208
3414
3209
#. type: TP
3415
#. type: TP
3210
#: ../src/xz/xz.1:1730
3416
#: ../src/xz/xz.1:1909
3211
#, no-wrap
3417
#, no-wrap
3212
msgid "B<--robot>"
3418
msgid "B<--robot>"
3213
msgstr "B<--robot>"
3419
msgstr "B<--robot>"
3214
3420
3215
#. type: Plain text
3421
#. type: Plain text
3216
#: ../src/xz/xz.1:1742
3422
#: ../src/xz/xz.1:1921
3217
msgid ""
3423
msgid ""
3218
"Print messages in a machine-parsable format.  This is intended to ease "
3424
"Print messages in a machine-parsable format.  This is intended to ease "
3219
"writing frontends that want to use B<xz> instead of liblzma, which may be "
3425
"writing frontends that want to use B<xz> instead of liblzma, which may be "
Lines 3229-3258 Link Here
3229
"B<ROBOTER-MODUS>."
3435
"B<ROBOTER-MODUS>."
3230
3436
3231
#. type: TP
3437
#. type: TP
3232
#: ../src/xz/xz.1:1742
3438
#: ../src/xz/xz.1:1921
3233
#, no-wrap
3439
#, no-wrap
3234
msgid "B<--info-memory>"
3440
msgid "B<--info-memory>"
3235
msgstr "B<--info-memory>"
3441
msgstr "B<--info-memory>"
3236
3442
3237
#. type: Plain text
3443
#. type: Plain text
3238
#: ../src/xz/xz.1:1748
3444
#: ../src/xz/xz.1:1928
3239
msgid ""
3445
msgid ""
3240
"Display, in human-readable format, how much physical memory (RAM)  B<xz> "
3446
"Display, in human-readable format, how much physical memory (RAM)  and how "
3241
"thinks the system has and the memory usage limits for compression and "
3447
"many processor threads B<xz> thinks the system has and the memory usage "
3242
"decompression, and exit successfully."
3448
"limits for compression and decompression, and exit successfully."
3243
msgstr ""
3449
msgstr ""
3244
"zeigt in einem menschenlesbaren Format an, wieviel physischen Speicher (RAM) "
3450
"zeigt in einem menschenlesbaren Format an, wieviel physischen Speicher (RAM) "
3245
"das System nach Annahme von B<xz> hat, sowie die Speicherbedarfsbegrenzung "
3451
"und wie viele Prozessor-Threads das System nach Annahme von B<xz> hat, sowie "
3246
"für Kompression und Dekompression, und beendet das Programm erfolgreich."
3452
"die Speicherbedarfsbegrenzung für Kompression und Dekompression, und beendet "
3453
"das Programm erfolgreich."
3247
3454
3248
#. type: TP
3455
#. type: TP
3249
#: ../src/xz/xz.1:1748 ../src/xzdec/xzdec.1:96
3456
#: ../src/xz/xz.1:1928 ../src/xzdec/xzdec.1:96
3250
#, no-wrap
3457
#, no-wrap
3251
msgid "B<-h>, B<--help>"
3458
msgid "B<-h>, B<--help>"
3252
msgstr "B<-h>, B<--help>"
3459
msgstr "B<-h>, B<--help>"
3253
3460
3254
#. type: Plain text
3461
#. type: Plain text
3255
#: ../src/xz/xz.1:1752
3462
#: ../src/xz/xz.1:1932
3256
msgid ""
3463
msgid ""
3257
"Display a help message describing the most commonly used options, and exit "
3464
"Display a help message describing the most commonly used options, and exit "
3258
"successfully."
3465
"successfully."
Lines 3261-3274 Link Here
3261
"beendet das Programm erfolgreich."
3468
"beendet das Programm erfolgreich."
3262
3469
3263
#. type: TP
3470
#. type: TP
3264
#: ../src/xz/xz.1:1752
3471
#: ../src/xz/xz.1:1932
3265
#, no-wrap
3472
#, no-wrap
3266
msgid "B<-H>, B<--long-help>"
3473
msgid "B<-H>, B<--long-help>"
3267
msgstr "B<-H>, B<--long-help>"
3474
msgstr "B<-H>, B<--long-help>"
3268
3475
3269
# FIXME Satzpunkt fehlt
3476
# FIXME Satzpunkt fehlt
3270
#. type: Plain text
3477
#. type: Plain text
3271
#: ../src/xz/xz.1:1757
3478
#: ../src/xz/xz.1:1937
3272
msgid ""
3479
msgid ""
3273
"Display a help message describing all features of B<xz>, and exit "
3480
"Display a help message describing all features of B<xz>, and exit "
3274
"successfully"
3481
"successfully"
Lines 3277-3289 Link Here
3277
"und beendet das Programm erfolgreich."
3484
"und beendet das Programm erfolgreich."
3278
3485
3279
#. type: TP
3486
#. type: TP
3280
#: ../src/xz/xz.1:1757 ../src/xzdec/xzdec.1:99
3487
#: ../src/xz/xz.1:1937 ../src/xzdec/xzdec.1:99
3281
#, no-wrap
3488
#, no-wrap
3282
msgid "B<-V>, B<--version>"
3489
msgid "B<-V>, B<--version>"
3283
msgstr "B<-V>, B<--version>"
3490
msgstr "B<-V>, B<--version>"
3284
3491
3285
#. type: Plain text
3492
#. type: Plain text
3286
#: ../src/xz/xz.1:1766
3493
#: ../src/xz/xz.1:1946
3287
msgid ""
3494
msgid ""
3288
"Display the version number of B<xz> and liblzma in human readable format.  "
3495
"Display the version number of B<xz> and liblzma in human readable format.  "
3289
"To get machine-parsable output, specify B<--robot> before B<--version>."
3496
"To get machine-parsable output, specify B<--robot> before B<--version>."
Lines 3293-3305 Link Here
3293
"robot> vor B<--version> an."
3500
"robot> vor B<--version> an."
3294
3501
3295
#. type: SH
3502
#. type: SH
3296
#: ../src/xz/xz.1:1767
3503
#: ../src/xz/xz.1:1947
3297
#, no-wrap
3504
#, no-wrap
3298
msgid "ROBOT MODE"
3505
msgid "ROBOT MODE"
3299
msgstr "ROBOTER-MODUS"
3506
msgstr "ROBOTER-MODUS"
3300
3507
3301
#. type: Plain text
3508
#. type: Plain text
3302
#: ../src/xz/xz.1:1783
3509
#: ../src/xz/xz.1:1963
3303
msgid ""
3510
msgid ""
3304
"The robot mode is activated with the B<--robot> option.  It makes the output "
3511
"The robot mode is activated with the B<--robot> option.  It makes the output "
3305
"of B<xz> easier to parse by other programs.  Currently B<--robot> is "
3512
"of B<xz> easier to parse by other programs.  Currently B<--robot> is "
Lines 3313-3325 Link Here
3313
"Kompression und Dekompression unterstützt."
3520
"Kompression und Dekompression unterstützt."
3314
3521
3315
#. type: SS
3522
#. type: SS
3316
#: ../src/xz/xz.1:1784
3523
#: ../src/xz/xz.1:1964
3317
#, no-wrap
3524
#, no-wrap
3318
msgid "Version"
3525
msgid "Version"
3319
msgstr "Version"
3526
msgstr "Version"
3320
3527
3321
#. type: Plain text
3528
#. type: Plain text
3322
#: ../src/xz/xz.1:1789
3529
#: ../src/xz/xz.1:1969
3323
msgid ""
3530
msgid ""
3324
"B<xz --robot --version> will print the version number of B<xz> and liblzma "
3531
"B<xz --robot --version> will print the version number of B<xz> and liblzma "
3325
"in the following format:"
3532
"in the following format:"
Lines 3328-3361 Link Here
3328
"folgenden Format aus:"
3535
"folgenden Format aus:"
3329
3536
3330
#. type: Plain text
3537
#. type: Plain text
3331
#: ../src/xz/xz.1:1791
3538
#: ../src/xz/xz.1:1971
3332
msgid "B<XZ_VERSION=>I<XYYYZZZS>"
3539
msgid "B<XZ_VERSION=>I<XYYYZZZS>"
3333
msgstr "B<XZ_VERSION=>I<XYYYZZZS>"
3540
msgstr "B<XZ_VERSION=>I<XYYYZZZS>"
3334
3541
3335
#. type: Plain text
3542
#. type: Plain text
3336
#: ../src/xz/xz.1:1793
3543
#: ../src/xz/xz.1:1973
3337
msgid "B<LIBLZMA_VERSION=>I<XYYYZZZS>"
3544
msgid "B<LIBLZMA_VERSION=>I<XYYYZZZS>"
3338
msgstr "B<LIBLZMA_VERSION=>I<XYYYZZZS>"
3545
msgstr "B<LIBLZMA_VERSION=>I<XYYYZZZS>"
3339
3546
3340
#. type: TP
3547
#. type: TP
3341
#: ../src/xz/xz.1:1793
3548
#: ../src/xz/xz.1:1973
3342
#, no-wrap
3549
#, no-wrap
3343
msgid "I<X>"
3550
msgid "I<X>"
3344
msgstr "I<X>"
3551
msgstr "I<X>"
3345
3552
3346
#. type: Plain text
3553
#. type: Plain text
3347
#: ../src/xz/xz.1:1796
3554
#: ../src/xz/xz.1:1976
3348
msgid "Major version."
3555
msgid "Major version."
3349
msgstr "Hauptversion."
3556
msgstr "Hauptversion."
3350
3557
3351
#. type: TP
3558
#. type: TP
3352
#: ../src/xz/xz.1:1796
3559
#: ../src/xz/xz.1:1976
3353
#, no-wrap
3560
#, no-wrap
3354
msgid "I<YYY>"
3561
msgid "I<YYY>"
3355
msgstr "I<YYY>"
3562
msgstr "I<YYY>"
3356
3563
3357
#. type: Plain text
3564
#. type: Plain text
3358
#: ../src/xz/xz.1:1801
3565
#: ../src/xz/xz.1:1981
3359
msgid ""
3566
msgid ""
3360
"Minor version.  Even numbers are stable.  Odd numbers are alpha or beta "
3567
"Minor version.  Even numbers are stable.  Odd numbers are alpha or beta "
3361
"versions."
3568
"versions."
Lines 3364-3376 Link Here
3364
"bezeichnen Alpha- oder Betaversionen."
3571
"bezeichnen Alpha- oder Betaversionen."
3365
3572
3366
#. type: TP
3573
#. type: TP
3367
#: ../src/xz/xz.1:1801
3574
#: ../src/xz/xz.1:1981
3368
#, no-wrap
3575
#, no-wrap
3369
msgid "I<ZZZ>"
3576
msgid "I<ZZZ>"
3370
msgstr "I<ZZZ>"
3577
msgstr "I<ZZZ>"
3371
3578
3372
#. type: Plain text
3579
#. type: Plain text
3373
#: ../src/xz/xz.1:1805
3580
#: ../src/xz/xz.1:1985
3374
msgid ""
3581
msgid ""
3375
"Patch level for stable releases or just a counter for development releases."
3582
"Patch level for stable releases or just a counter for development releases."
3376
msgstr ""
3583
msgstr ""
Lines 3378-3390 Link Here
3378
"Entwicklungsversionen."
3585
"Entwicklungsversionen."
3379
3586
3380
#. type: TP
3587
#. type: TP
3381
#: ../src/xz/xz.1:1805
3588
#: ../src/xz/xz.1:1985
3382
#, no-wrap
3589
#, no-wrap
3383
msgid "I<S>"
3590
msgid "I<S>"
3384
msgstr "I<S>"
3591
msgstr "I<S>"
3385
3592
3386
#. type: Plain text
3593
#. type: Plain text
3387
#: ../src/xz/xz.1:1813
3594
#: ../src/xz/xz.1:1993
3388
msgid ""
3595
msgid ""
3389
"Stability.  0 is alpha, 1 is beta, and 2 is stable.  I<S> should be always 2 "
3596
"Stability.  0 is alpha, 1 is beta, and 2 is stable.  I<S> should be always 2 "
3390
"when I<YYY> is even."
3597
"when I<YYY> is even."
Lines 3393-3399 Link Here
3393
"sein, wenn I<YYY> eine gerade Zahl ist."
3600
"sein, wenn I<YYY> eine gerade Zahl ist."
3394
3601
3395
#. type: Plain text
3602
#. type: Plain text
3396
#: ../src/xz/xz.1:1818
3603
#: ../src/xz/xz.1:1998
3397
msgid ""
3604
msgid ""
3398
"I<XYYYZZZS> are the same on both lines if B<xz> and liblzma are from the "
3605
"I<XYYYZZZS> are the same on both lines if B<xz> and liblzma are from the "
3399
"same XZ Utils release."
3606
"same XZ Utils release."
Lines 3402-3419 Link Here
3402
"gleichen Veröffentlichung der XZ-Utils stammen."
3609
"gleichen Veröffentlichung der XZ-Utils stammen."
3403
3610
3404
#. type: Plain text
3611
#. type: Plain text
3405
#: ../src/xz/xz.1:1824
3612
#: ../src/xz/xz.1:2004
3406
msgid "Examples: 4.999.9beta is B<49990091> and 5.0.0 is B<50000002>."
3613
msgid "Examples: 4.999.9beta is B<49990091> and 5.0.0 is B<50000002>."
3407
msgstr "Beispiele: 4.999.9beta ist B<49990091> und 5.0.0 is B<50000002>."
3614
msgstr "Beispiele: 4.999.9beta ist B<49990091> und 5.0.0 is B<50000002>."
3408
3615
3409
#. type: SS
3616
#. type: SS
3410
#: ../src/xz/xz.1:1825
3617
#: ../src/xz/xz.1:2005
3411
#, no-wrap
3618
#, no-wrap
3412
msgid "Memory limit information"
3619
msgid "Memory limit information"
3413
msgstr "Informationen zur Speicherbedarfsbegrenzung"
3620
msgstr "Informationen zur Speicherbedarfsbegrenzung"
3414
3621
3415
#. type: Plain text
3622
#. type: Plain text
3416
#: ../src/xz/xz.1:1828
3623
#: ../src/xz/xz.1:2008
3417
msgid ""
3624
msgid ""
3418
"B<xz --robot --info-memory> prints a single line with three tab-separated "
3625
"B<xz --robot --info-memory> prints a single line with three tab-separated "
3419
"columns:"
3626
"columns:"
Lines 3422-3476 Link Here
3422
"Tabulatoren getrennten Spalten aus:"
3629
"Tabulatoren getrennten Spalten aus:"
3423
3630
3424
#. type: IP
3631
#. type: IP
3425
#: ../src/xz/xz.1:1828
3632
#: ../src/xz/xz.1:2008
3426
#, no-wrap
3633
#, no-wrap
3427
msgid "1."
3634
msgid "1."
3428
msgstr "1."
3635
msgstr "1."
3429
3636
3430
#. type: Plain text
3637
#. type: Plain text
3431
#: ../src/xz/xz.1:1830
3638
#: ../src/xz/xz.1:2010
3432
msgid "Total amount of physical memory (RAM) in bytes"
3639
msgid "Total amount of physical memory (RAM) in bytes."
3433
msgstr "Gesamter physischer Speicher (RAM) in Byte"
3640
msgstr "Gesamter physischer Speicher (RAM) in Byte."
3434
3641
3435
#. type: IP
3642
#. type: IP
3436
#: ../src/xz/xz.1:1830 ../src/xz/xz.1:1910 ../src/xz/xz.1:1947
3643
#: ../src/xz/xz.1:2010 ../src/xz/xz.1:2125 ../src/xz/xz.1:2162
3437
#: ../src/xz/xz.1:1973 ../src/xz/xz.1:2043 ../src/xz/xz.1:2070
3644
#: ../src/xz/xz.1:2188 ../src/xz/xz.1:2258 ../src/xz/xz.1:2285
3438
#, no-wrap
3645
#, no-wrap
3439
msgid "2."
3646
msgid "2."
3440
msgstr "2."
3647
msgstr "2."
3441
3648
3442
#. type: Plain text
3649
#. type: Plain text
3443
#: ../src/xz/xz.1:1834
3650
#: ../src/xz/xz.1:2017
3444
msgid ""
3651
msgid ""
3445
"Memory usage limit for compression in bytes.  A special value of zero "
3652
"Memory usage limit for compression in bytes (B<--memlimit-compress>).  A "
3446
"indicates the default setting, which for single-threaded mode is the same as "
3653
"special value of B<0> indicates the default setting which for single-"
3447
"no limit."
3654
"threaded mode is the same as no limit."
3448
msgstr ""
3655
msgstr ""
3449
"Speicherbedarfsbegrenzung für die Kompression in Byte. Ein spezieller Wert "
3656
"Speicherbedarfsbegrenzung für die Kompression in Byte (B<--memlimit-"
3450
"von Null bezeichnet die Standardeinstellung, die im Einzelthread-Modus "
3657
"compress>). Ein spezieller Wert von B<0> bezeichnet die Standardeinstellung, "
3451
"bedeutet, dass keine Begrenzung vorhanden ist."
3658
"die im Einzelthread-Modus bedeutet, dass keine Begrenzung vorhanden ist."
3452
3659
3453
#. type: IP
3660
#. type: IP
3454
#: ../src/xz/xz.1:1834 ../src/xz/xz.1:1912 ../src/xz/xz.1:1949
3661
#: ../src/xz/xz.1:2017 ../src/xz/xz.1:2127 ../src/xz/xz.1:2164
3455
#: ../src/xz/xz.1:1975 ../src/xz/xz.1:2048 ../src/xz/xz.1:2072
3662
#: ../src/xz/xz.1:2190 ../src/xz/xz.1:2263 ../src/xz/xz.1:2287
3456
#, no-wrap
3663
#, no-wrap
3457
msgid "3."
3664
msgid "3."
3458
msgstr "3."
3665
msgstr "3."
3459
3666
3460
#. type: Plain text
3667
#. type: Plain text
3461
#: ../src/xz/xz.1:1838
3668
#: ../src/xz/xz.1:2024
3462
msgid ""
3669
msgid ""
3463
"Memory usage limit for decompression in bytes.  A special value of zero "
3670
"Memory usage limit for decompression in bytes (B<--memlimit-decompress>).  A "
3464
"indicates the default setting, which for single-threaded mode is the same as "
3671
"special value of B<0> indicates the default setting which for single-"
3465
"no limit."
3672
"threaded mode is the same as no limit."
3466
msgstr ""
3673
msgstr ""
3467
"Speicherbedarfsbegrenzung für die Dekompression in Byte. Ein spezieller Wert "
3674
"Speicherbedarfsbegrenzung für die Dekompression in Byte (B<--memlimit-"
3468
"von Null bezeichnet die Standardeinstellung, die im Einzelthread-Modus "
3675
"decompress>). Ein spezieller Wert von B<0> bezeichnet die "
3469
"bedeutet, dass keine Begrenzung vorhanden ist."
3676
"Standardeinstellung, die im Einzelthread-Modus bedeutet, dass keine "
3677
"Begrenzung vorhanden ist."
3470
3678
3679
#. type: IP
3680
#: ../src/xz/xz.1:2024 ../src/xz/xz.1:2129 ../src/xz/xz.1:2166
3681
#: ../src/xz/xz.1:2193 ../src/xz/xz.1:2273 ../src/xz/xz.1:2289
3682
#, no-wrap
3683
msgid "4."
3684
msgstr "4."
3685
3471
#. type: Plain text
3686
#. type: Plain text
3472
#: ../src/xz/xz.1:1842
3687
#: ../src/xz/xz.1:2036
3473
msgid ""
3688
msgid ""
3689
"Since B<xz> 5.3.4alpha: Memory usage for multi-threaded decompression in "
3690
"bytes (B<--memlimit-mt-decompress>).  This is never zero because a system-"
3691
"specific default value shown in the column 5 is used if no limit has been "
3692
"specified explicitly.  This is also never greater than the value in the "
3693
"column 3 even if a larger value has been specified with B<--memlimit-mt-"
3694
"decompress>."
3695
msgstr ""
3696
"Seit B<xz> 5.3.4alpha: Die Speichernutzung für Multithread-Dekompression in "
3697
"Byte (B<--memlimit-mt-decompress>). Dies ist niemals B<0>, da ein "
3698
"systemspezifischer Vorgabewert (gezeigt in Spalte 5) verwendet wird, falls "
3699
"keine Grenze ausdrücklich angegeben wurde. Dies ist außerdem niemals größer "
3700
"als der Wert in in Spalte 3, selbst wenn mit B<--memlimit-mt-decompress> ein "
3701
"größerer Wert angegeben wurde."
3702
3703
#. type: IP
3704
#: ../src/xz/xz.1:2036 ../src/xz/xz.1:2131 ../src/xz/xz.1:2168
3705
#: ../src/xz/xz.1:2195 ../src/xz/xz.1:2291
3706
#, no-wrap
3707
msgid "5."
3708
msgstr "5."
3709
3710
#. type: Plain text
3711
#: ../src/xz/xz.1:2048
3712
msgid ""
3713
"Since B<xz> 5.3.4alpha: A system-specific default memory usage limit that is "
3714
"used to limit the number of threads when compressing with an automatic "
3715
"number of threads (B<--threads=0>)  and no memory usage limit has been "
3716
"specified (B<--memlimit-compress>).  This is also used as the default value "
3717
"for B<--memlimit-mt-decompress>."
3718
msgstr ""
3719
"Seit B<xz> 5.3.4alpha: Eine systemspezifisch vorgegebene Begrenzung des "
3720
"Speicherverbrauchs, die zur Begrenzung der Anzahl der Threads beim "
3721
"Komprimieren mit automatischer Anzahl der Threads (B<--threads=0>) und wenn "
3722
"keine Speicherbedarfsbegrenzung angegeben wurde (B<--memlimit-compress>) "
3723
"verwendet wird. Dies wird auch als Standardwert für B<--memlimit-mt-"
3724
"decompress> verwendet."
3725
3726
#. type: IP
3727
#: ../src/xz/xz.1:2048 ../src/xz/xz.1:2133 ../src/xz/xz.1:2170
3728
#: ../src/xz/xz.1:2197 ../src/xz/xz.1:2293
3729
#, no-wrap
3730
msgid "6."
3731
msgstr "6."
3732
3733
#. type: Plain text
3734
#: ../src/xz/xz.1:2053
3735
msgid "Since B<xz> 5.3.4alpha: Number of available processor threads."
3736
msgstr "Seit B<xz> 5.3.4alpha: Anzahl der verfügbaren Prozessorthreads."
3737
3738
#. type: Plain text
3739
#: ../src/xz/xz.1:2057
3740
msgid ""
3474
"In the future, the output of B<xz --robot --info-memory> may have more "
3741
"In the future, the output of B<xz --robot --info-memory> may have more "
3475
"columns, but never more than a single line."
3742
"columns, but never more than a single line."
3476
msgstr ""
3743
msgstr ""
Lines 3478-3490 Link Here
3478
"Spalten enthalten, aber niemals mehr als eine einzelne Zeile."
3745
"Spalten enthalten, aber niemals mehr als eine einzelne Zeile."
3479
3746
3480
#. type: SS
3747
#. type: SS
3481
#: ../src/xz/xz.1:1843
3748
#: ../src/xz/xz.1:2058
3482
#, no-wrap
3749
#, no-wrap
3483
msgid "List mode"
3750
msgid "List mode"
3484
msgstr "Listenmodus"
3751
msgstr "Listenmodus"
3485
3752
3486
#. type: Plain text
3753
#. type: Plain text
3487
#: ../src/xz/xz.1:1848
3754
#: ../src/xz/xz.1:2063
3488
msgid ""
3755
msgid ""
3489
"B<xz --robot --list> uses tab-separated output.  The first column of every "
3756
"B<xz --robot --list> uses tab-separated output.  The first column of every "
3490
"line has a string that indicates the type of the information found on that "
3757
"line has a string that indicates the type of the information found on that "
Lines 3495-3507 Link Here
3495
"Information, die in dieser Zeile enthalten ist:"
3762
"Information, die in dieser Zeile enthalten ist:"
3496
3763
3497
#. type: TP
3764
#. type: TP
3498
#: ../src/xz/xz.1:1848
3765
#: ../src/xz/xz.1:2063
3499
#, no-wrap
3766
#, no-wrap
3500
msgid "B<name>"
3767
msgid "B<name>"
3501
msgstr "B<name>"
3768
msgstr "B<name>"
3502
3769
3503
#. type: Plain text
3770
#. type: Plain text
3504
#: ../src/xz/xz.1:1852
3771
#: ../src/xz/xz.1:2067
3505
msgid ""
3772
msgid ""
3506
"This is always the first line when starting to list a file.  The second "
3773
"This is always the first line when starting to list a file.  The second "
3507
"column on the line is the filename."
3774
"column on the line is the filename."
Lines 3510-3523 Link Here
3510
"Spalte in der Zeile enthält den Dateinamen."
3777
"Spalte in der Zeile enthält den Dateinamen."
3511
3778
3512
#. type: TP
3779
#. type: TP
3513
#: ../src/xz/xz.1:1852
3780
#: ../src/xz/xz.1:2067
3514
#, no-wrap
3781
#, no-wrap
3515
msgid "B<file>"
3782
msgid "B<file>"
3516
msgstr "B<file>"
3783
msgstr "B<file>"
3517
3784
3518
# CHECK overall
3785
# CHECK overall
3519
#. type: Plain text
3786
#. type: Plain text
3520
#: ../src/xz/xz.1:1860
3787
#: ../src/xz/xz.1:2075
3521
msgid ""
3788
msgid ""
3522
"This line contains overall information about the B<.xz> file.  This line is "
3789
"This line contains overall information about the B<.xz> file.  This line is "
3523
"always printed after the B<name> line."
3790
"always printed after the B<name> line."
Lines 3526-3538 Link Here
3526
"wird stets nach der B<name>-Zeile ausgegeben."
3793
"wird stets nach der B<name>-Zeile ausgegeben."
3527
3794
3528
#. type: TP
3795
#. type: TP
3529
#: ../src/xz/xz.1:1860
3796
#: ../src/xz/xz.1:2075
3530
#, no-wrap
3797
#, no-wrap
3531
msgid "B<stream>"
3798
msgid "B<stream>"
3532
msgstr "B<stream>"
3799
msgstr "B<stream>"
3533
3800
3534
#. type: Plain text
3801
#. type: Plain text
3535
#: ../src/xz/xz.1:1870
3802
#: ../src/xz/xz.1:2085
3536
msgid ""
3803
msgid ""
3537
"This line type is used only when B<--verbose> was specified.  There are as "
3804
"This line type is used only when B<--verbose> was specified.  There are as "
3538
"many B<stream> lines as there are streams in the B<.xz> file."
3805
"many B<stream> lines as there are streams in the B<.xz> file."
Lines 3542-3554 Link Here
3542
"enthalten sind."
3809
"enthalten sind."
3543
3810
3544
#. type: TP
3811
#. type: TP
3545
#: ../src/xz/xz.1:1870
3812
#: ../src/xz/xz.1:2085
3546
#, no-wrap
3813
#, no-wrap
3547
msgid "B<block>"
3814
msgid "B<block>"
3548
msgstr "B<block>"
3815
msgstr "B<block>"
3549
3816
3550
#. type: Plain text
3817
#. type: Plain text
3551
#: ../src/xz/xz.1:1885
3818
#: ../src/xz/xz.1:2100
3552
msgid ""
3819
msgid ""
3553
"This line type is used only when B<--verbose> was specified.  There are as "
3820
"This line type is used only when B<--verbose> was specified.  There are as "
3554
"many B<block> lines as there are blocks in the B<.xz> file.  The B<block> "
3821
"many B<block> lines as there are blocks in the B<.xz> file.  The B<block> "
Lines 3561-3573 Link Here
3561
"Zeilentypen werden nicht verschachtelt."
3828
"Zeilentypen werden nicht verschachtelt."
3562
3829
3563
#. type: TP
3830
#. type: TP
3564
#: ../src/xz/xz.1:1885
3831
#: ../src/xz/xz.1:2100
3565
#, no-wrap
3832
#, no-wrap
3566
msgid "B<summary>"
3833
msgid "B<summary>"
3567
msgstr "B<summary>"
3834
msgstr "B<summary>"
3568
3835
3569
#. type: Plain text
3836
#. type: Plain text
3570
#: ../src/xz/xz.1:1900
3837
#: ../src/xz/xz.1:2115
3571
msgid ""
3838
msgid ""
3572
"This line type is used only when B<--verbose> was specified twice.  This "
3839
"This line type is used only when B<--verbose> was specified twice.  This "
3573
"line is printed after all B<block> lines.  Like the B<file> line, the "
3840
"line is printed after all B<block> lines.  Like the B<file> line, the "
Lines 3579-3591 Link Here
3579
"xz>-Datei."
3846
"xz>-Datei."
3580
3847
3581
#. type: TP
3848
#. type: TP
3582
#: ../src/xz/xz.1:1900
3849
#: ../src/xz/xz.1:2115
3583
#, no-wrap
3850
#, no-wrap
3584
msgid "B<totals>"
3851
msgid "B<totals>"
3585
msgstr "B<totals>"
3852
msgstr "B<totals>"
3586
3853
3587
#. type: Plain text
3854
#. type: Plain text
3588
#: ../src/xz/xz.1:1904
3855
#: ../src/xz/xz.1:2119
3589
msgid ""
3856
msgid ""
3590
"This line is always the very last line of the list output.  It shows the "
3857
"This line is always the very last line of the list output.  It shows the "
3591
"total counts and sizes."
3858
"total counts and sizes."
Lines 3594-3648 Link Here
3594
"Gesamtanzahlen und -größen an."
3861
"Gesamtanzahlen und -größen an."
3595
3862
3596
#. type: Plain text
3863
#. type: Plain text
3597
#: ../src/xz/xz.1:1908
3864
#: ../src/xz/xz.1:2123
3598
msgid "The columns of the B<file> lines:"
3865
msgid "The columns of the B<file> lines:"
3599
msgstr "Die Spalten der B<file>-Zeilen:"
3866
msgstr "Die Spalten der B<file>-Zeilen:"
3600
3867
3601
#. type: Plain text
3868
#. type: Plain text
3602
#: ../src/xz/xz.1:1912
3869
#: ../src/xz/xz.1:2127
3603
msgid "Number of streams in the file"
3870
msgid "Number of streams in the file"
3604
msgstr "Anzahl der Datenströme in der Datei"
3871
msgstr "Anzahl der Datenströme in der Datei"
3605
3872
3606
#. type: Plain text
3873
#. type: Plain text
3607
#: ../src/xz/xz.1:1914
3874
#: ../src/xz/xz.1:2129
3608
msgid "Total number of blocks in the stream(s)"
3875
msgid "Total number of blocks in the stream(s)"
3609
msgstr "Gesamtanzahl der Blöcke in den Datenströmen"
3876
msgstr "Gesamtanzahl der Blöcke in den Datenströmen"
3610
3877
3611
#. type: IP
3612
#: ../src/xz/xz.1:1914 ../src/xz/xz.1:1951 ../src/xz/xz.1:1978
3613
#: ../src/xz/xz.1:2058 ../src/xz/xz.1:2074
3614
#, no-wrap
3615
msgid "4."
3616
msgstr "4."
3617
3618
#. type: Plain text
3878
#. type: Plain text
3619
#: ../src/xz/xz.1:1916
3879
#: ../src/xz/xz.1:2131
3620
msgid "Compressed size of the file"
3880
msgid "Compressed size of the file"
3621
msgstr "Komprimierte Größe der Datei"
3881
msgstr "Komprimierte Größe der Datei"
3622
3882
3623
#. type: IP
3624
#: ../src/xz/xz.1:1916 ../src/xz/xz.1:1953 ../src/xz/xz.1:1980
3625
#: ../src/xz/xz.1:2076
3626
#, no-wrap
3627
msgid "5."
3628
msgstr "5."
3629
3630
#. type: Plain text
3883
#. type: Plain text
3631
#: ../src/xz/xz.1:1918
3884
#: ../src/xz/xz.1:2133
3632
msgid "Uncompressed size of the file"
3885
msgid "Uncompressed size of the file"
3633
msgstr "Unkomprimierte Größe der Datei"
3886
msgstr "Unkomprimierte Größe der Datei"
3634
3887
3635
#. type: IP
3636
#: ../src/xz/xz.1:1918 ../src/xz/xz.1:1955 ../src/xz/xz.1:1982
3637
#: ../src/xz/xz.1:2078
3638
#, no-wrap
3639
msgid "6."
3640
msgstr "6."
3641
3642
#. type: Plain text
3888
#. type: Plain text
3643
#: ../src/xz/xz.1:1924
3889
#: ../src/xz/xz.1:2139
3644
msgid ""
3890
msgid ""
3645
"Compression ratio, for example B<0.123.> If ratio is over 9.999, three "
3891
"Compression ratio, for example, B<0.123>.  If ratio is over 9.999, three "
3646
"dashes (B<--->)  are displayed instead of the ratio."
3892
"dashes (B<--->)  are displayed instead of the ratio."
3647
msgstr ""
3893
msgstr ""
3648
"Das Kompressionsverhältnis, zum Beispiel B<0.123>. Wenn das Verhältnis über "
3894
"Das Kompressionsverhältnis, zum Beispiel B<0.123>. Wenn das Verhältnis über "
Lines 3650-3663 Link Here
3650
"Kompressionsverhältnisses angezeigt."
3896
"Kompressionsverhältnisses angezeigt."
3651
3897
3652
#. type: IP
3898
#. type: IP
3653
#: ../src/xz/xz.1:1924 ../src/xz/xz.1:1957 ../src/xz/xz.1:1984
3899
#: ../src/xz/xz.1:2139 ../src/xz/xz.1:2172 ../src/xz/xz.1:2199
3654
#: ../src/xz/xz.1:2080
3900
#: ../src/xz/xz.1:2295
3655
#, no-wrap
3901
#, no-wrap
3656
msgid "7."
3902
msgid "7."
3657
msgstr "7."
3903
msgstr "7."
3658
3904
3659
#. type: Plain text
3905
#. type: Plain text
3660
#: ../src/xz/xz.1:1937
3906
#: ../src/xz/xz.1:2152
3661
msgid ""
3907
msgid ""
3662
"Comma-separated list of integrity check names.  The following strings are "
3908
"Comma-separated list of integrity check names.  The following strings are "
3663
"used for the known check types: B<None>, B<CRC32>, B<CRC64>, and "
3909
"used for the known check types: B<None>, B<CRC32>, B<CRC64>, and "
Lines 3671-3787 Link Here
3671
"zweistellig)."
3917
"zweistellig)."
3672
3918
3673
#. type: IP
3919
#. type: IP
3674
#: ../src/xz/xz.1:1937 ../src/xz/xz.1:1959 ../src/xz/xz.1:1986
3920
#: ../src/xz/xz.1:2152 ../src/xz/xz.1:2174 ../src/xz/xz.1:2201
3675
#: ../src/xz/xz.1:2083
3921
#: ../src/xz/xz.1:2298
3676
#, no-wrap
3922
#, no-wrap
3677
msgid "8."
3923
msgid "8."
3678
msgstr "8."
3924
msgstr "8."
3679
3925
3680
#. type: Plain text
3926
#. type: Plain text
3681
#: ../src/xz/xz.1:1939
3927
#: ../src/xz/xz.1:2154
3682
msgid "Total size of stream padding in the file"
3928
msgid "Total size of stream padding in the file"
3683
msgstr "Gesamtgröße der Datenstromauffüllung in der Datei"
3929
msgstr "Gesamtgröße der Datenstromauffüllung in der Datei"
3684
3930
3685
#. type: Plain text
3931
#. type: Plain text
3686
#: ../src/xz/xz.1:1945
3932
#: ../src/xz/xz.1:2160
3687
msgid "The columns of the B<stream> lines:"
3933
msgid "The columns of the B<stream> lines:"
3688
msgstr "Die Spalten der B<stream>-Zeilen:"
3934
msgstr "Die Spalten der B<stream>-Zeilen:"
3689
3935
3690
#. type: Plain text
3936
#. type: Plain text
3691
#: ../src/xz/xz.1:1949
3937
#: ../src/xz/xz.1:2164
3692
msgid "Stream number (the first stream is 1)"
3938
msgid "Stream number (the first stream is 1)"
3693
msgstr "Datenstromnummer (der erste Datenstrom ist 1)"
3939
msgstr "Datenstromnummer (der erste Datenstrom ist 1)"
3694
3940
3695
#. type: Plain text
3941
#. type: Plain text
3696
#: ../src/xz/xz.1:1951
3942
#: ../src/xz/xz.1:2166
3697
msgid "Number of blocks in the stream"
3943
msgid "Number of blocks in the stream"
3698
msgstr "Anzahl der Blöcke im Datenstrom"
3944
msgstr "Anzahl der Blöcke im Datenstrom"
3699
3945
3700
#. type: Plain text
3946
#. type: Plain text
3701
#: ../src/xz/xz.1:1953
3947
#: ../src/xz/xz.1:2168
3702
msgid "Compressed start offset"
3948
msgid "Compressed start offset"
3703
msgstr "Komprimierte Startposition"
3949
msgstr "Komprimierte Startposition"
3704
3950
3705
#. type: Plain text
3951
#. type: Plain text
3706
#: ../src/xz/xz.1:1955
3952
#: ../src/xz/xz.1:2170
3707
msgid "Uncompressed start offset"
3953
msgid "Uncompressed start offset"
3708
msgstr "Unkomprimierte Startposition"
3954
msgstr "Unkomprimierte Startposition"
3709
3955
3710
#. type: Plain text
3956
#. type: Plain text
3711
#: ../src/xz/xz.1:1957
3957
#: ../src/xz/xz.1:2172
3712
msgid "Compressed size (does not include stream padding)"
3958
msgid "Compressed size (does not include stream padding)"
3713
msgstr "Komprimierte Größe (schließt die Datenstromauffüllung nicht mit ein)"
3959
msgstr "Komprimierte Größe (schließt die Datenstromauffüllung nicht mit ein)"
3714
3960
3715
#. type: Plain text
3961
#. type: Plain text
3716
#: ../src/xz/xz.1:1959 ../src/xz/xz.1:1988 ../src/xz/xz.1:2078
3962
#: ../src/xz/xz.1:2174 ../src/xz/xz.1:2203 ../src/xz/xz.1:2293
3717
msgid "Uncompressed size"
3963
msgid "Uncompressed size"
3718
msgstr "Unkomprimierte Größe"
3964
msgstr "Unkomprimierte Größe"
3719
3965
3720
#. type: Plain text
3966
#. type: Plain text
3721
#: ../src/xz/xz.1:1961 ../src/xz/xz.1:1990
3967
#: ../src/xz/xz.1:2176 ../src/xz/xz.1:2205
3722
msgid "Compression ratio"
3968
msgid "Compression ratio"
3723
msgstr "Kompressionsverhältnis"
3969
msgstr "Kompressionsverhältnis"
3724
3970
3725
#. type: IP
3971
#. type: IP
3726
#: ../src/xz/xz.1:1961 ../src/xz/xz.1:1988 ../src/xz/xz.1:2085
3972
#: ../src/xz/xz.1:2176 ../src/xz/xz.1:2203 ../src/xz/xz.1:2300
3727
#, no-wrap
3973
#, no-wrap
3728
msgid "9."
3974
msgid "9."
3729
msgstr "9."
3975
msgstr "9."
3730
3976
3731
#. type: Plain text
3977
#. type: Plain text
3732
#: ../src/xz/xz.1:1963 ../src/xz/xz.1:1992
3978
#: ../src/xz/xz.1:2178 ../src/xz/xz.1:2207
3733
msgid "Name of the integrity check"
3979
msgid "Name of the integrity check"
3734
msgstr "Name der Integritätsprüfung"
3980
msgstr "Name der Integritätsprüfung"
3735
3981
3736
#. type: IP
3982
#. type: IP
3737
#: ../src/xz/xz.1:1963 ../src/xz/xz.1:1990 ../src/xz/xz.1:2101
3983
#: ../src/xz/xz.1:2178 ../src/xz/xz.1:2205 ../src/xz/xz.1:2316
3738
#, no-wrap
3984
#, no-wrap
3739
msgid "10."
3985
msgid "10."
3740
msgstr "10."
3986
msgstr "10."
3741
3987
3742
#. type: Plain text
3988
#. type: Plain text
3743
#: ../src/xz/xz.1:1965
3989
#: ../src/xz/xz.1:2180
3744
msgid "Size of stream padding"
3990
msgid "Size of stream padding"
3745
msgstr "Größe der Datenstromauffüllung"
3991
msgstr "Größe der Datenstromauffüllung"
3746
3992
3747
#. type: Plain text
3993
#. type: Plain text
3748
#: ../src/xz/xz.1:1971
3994
#: ../src/xz/xz.1:2186
3749
msgid "The columns of the B<block> lines:"
3995
msgid "The columns of the B<block> lines:"
3750
msgstr "Die Spalten der B<block>-Zeilen:"
3996
msgstr "Die Spalten der B<block>-Zeilen:"
3751
3997
3752
#. type: Plain text
3998
#. type: Plain text
3753
#: ../src/xz/xz.1:1975
3999
#: ../src/xz/xz.1:2190
3754
msgid "Number of the stream containing this block"
4000
msgid "Number of the stream containing this block"
3755
msgstr "Anzahl der in diesem Block enthaltenen Datenströme"
4001
msgstr "Anzahl der in diesem Block enthaltenen Datenströme"
3756
4002
3757
#. type: Plain text
4003
#. type: Plain text
3758
#: ../src/xz/xz.1:1978
4004
#: ../src/xz/xz.1:2193
3759
msgid ""
4005
msgid ""
3760
"Block number relative to the beginning of the stream (the first block is 1)"
4006
"Block number relative to the beginning of the stream (the first block is 1)"
3761
msgstr "Blocknummer relativ zum Anfang des Datenstroms (der erste Block ist 1)"
4007
msgstr "Blocknummer relativ zum Anfang des Datenstroms (der erste Block ist 1)"
3762
4008
3763
#. type: Plain text
4009
#. type: Plain text
3764
#: ../src/xz/xz.1:1980
4010
#: ../src/xz/xz.1:2195
3765
msgid "Block number relative to the beginning of the file"
4011
msgid "Block number relative to the beginning of the file"
3766
msgstr "Blocknummer relativ zum Anfang der Datei"
4012
msgstr "Blocknummer relativ zum Anfang der Datei"
3767
4013
3768
#. type: Plain text
4014
#. type: Plain text
3769
#: ../src/xz/xz.1:1982
4015
#: ../src/xz/xz.1:2197
3770
msgid "Compressed start offset relative to the beginning of the file"
4016
msgid "Compressed start offset relative to the beginning of the file"
3771
msgstr "Komprimierter Startversatz relativ zum Beginn der Datei"
4017
msgstr "Komprimierter Startversatz relativ zum Beginn der Datei"
3772
4018
3773
#. type: Plain text
4019
#. type: Plain text
3774
#: ../src/xz/xz.1:1984
4020
#: ../src/xz/xz.1:2199
3775
msgid "Uncompressed start offset relative to the beginning of the file"
4021
msgid "Uncompressed start offset relative to the beginning of the file"
3776
msgstr "Unkomprimierter Startversatz relativ zum Beginn der Datei"
4022
msgstr "Unkomprimierter Startversatz relativ zum Beginn der Datei"
3777
4023
3778
#. type: Plain text
4024
#. type: Plain text
3779
#: ../src/xz/xz.1:1986
4025
#: ../src/xz/xz.1:2201
3780
msgid "Total compressed size of the block (includes headers)"
4026
msgid "Total compressed size of the block (includes headers)"
3781
msgstr "Komprimierte Gesamtgröße des Blocks (einschließlich Header)"
4027
msgstr "Komprimierte Gesamtgröße des Blocks (einschließlich Header)"
3782
4028
3783
#. type: Plain text
4029
#. type: Plain text
3784
#: ../src/xz/xz.1:2004
4030
#: ../src/xz/xz.1:2219
3785
msgid ""
4031
msgid ""
3786
"If B<--verbose> was specified twice, additional columns are included on the "
4032
"If B<--verbose> was specified twice, additional columns are included on the "
3787
"B<block> lines.  These are not displayed with a single B<--verbose>, because "
4033
"B<block> lines.  These are not displayed with a single B<--verbose>, because "
Lines 3793-3827 Link Here
3793
"erfordert und daher recht langsam sein kann:"
4039
"erfordert und daher recht langsam sein kann:"
3794
4040
3795
#. type: IP
4041
#. type: IP
3796
#: ../src/xz/xz.1:2006 ../src/xz/xz.1:2106
4042
#: ../src/xz/xz.1:2221 ../src/xz/xz.1:2321
3797
#, no-wrap
4043
#, no-wrap
3798
msgid "11."
4044
msgid "11."
3799
msgstr "11."
4045
msgstr "11."
3800
4046
3801
#. type: Plain text
4047
#. type: Plain text
3802
#: ../src/xz/xz.1:2008
4048
#: ../src/xz/xz.1:2223
3803
msgid "Value of the integrity check in hexadecimal"
4049
msgid "Value of the integrity check in hexadecimal"
3804
msgstr "Wert der Integritätsprüfung in hexadezimaler Notation"
4050
msgstr "Wert der Integritätsprüfung in hexadezimaler Notation"
3805
4051
3806
#. type: IP
4052
#. type: IP
3807
#: ../src/xz/xz.1:2008 ../src/xz/xz.1:2116
4053
#: ../src/xz/xz.1:2223 ../src/xz/xz.1:2331
3808
#, no-wrap
4054
#, no-wrap
3809
msgid "12."
4055
msgid "12."
3810
msgstr "12."
4056
msgstr "12."
3811
4057
3812
#. type: Plain text
4058
#. type: Plain text
3813
#: ../src/xz/xz.1:2010
4059
#: ../src/xz/xz.1:2225
3814
msgid "Block header size"
4060
msgid "Block header size"
3815
msgstr "Block-Header-Größe"
4061
msgstr "Block-Header-Größe"
3816
4062
3817
#. type: IP
4063
#. type: IP
3818
#: ../src/xz/xz.1:2010
4064
#: ../src/xz/xz.1:2225
3819
#, no-wrap
4065
#, no-wrap
3820
msgid "13."
4066
msgid "13."
3821
msgstr "13."
4067
msgstr "13."
3822
4068
3823
#. type: Plain text
4069
#. type: Plain text
3824
#: ../src/xz/xz.1:2020
4070
#: ../src/xz/xz.1:2235
3825
msgid ""
4071
msgid ""
3826
"Block flags: B<c> indicates that compressed size is present, and B<u> "
4072
"Block flags: B<c> indicates that compressed size is present, and B<u> "
3827
"indicates that uncompressed size is present.  If the flag is not set, a dash "
4073
"indicates that uncompressed size is present.  If the flag is not set, a dash "
Lines 3835-3847 Link Here
3835
"neue Schalter am Ende der Zeichenkette hinzugefügt werden."
4081
"neue Schalter am Ende der Zeichenkette hinzugefügt werden."
3836
4082
3837
#. type: IP
4083
#. type: IP
3838
#: ../src/xz/xz.1:2020
4084
#: ../src/xz/xz.1:2235
3839
#, no-wrap
4085
#, no-wrap
3840
msgid "14."
4086
msgid "14."
3841
msgstr "14."
4087
msgstr "14."
3842
4088
3843
#. type: Plain text
4089
#. type: Plain text
3844
#: ../src/xz/xz.1:2023
4090
#: ../src/xz/xz.1:2238
3845
msgid ""
4091
msgid ""
3846
"Size of the actual compressed data in the block (this excludes the block "
4092
"Size of the actual compressed data in the block (this excludes the block "
3847
"header, block padding, and check fields)"
4093
"header, block padding, and check fields)"
Lines 3850-3862 Link Here
3850
"hierbei die Block-Header, die Blockauffüllung und die Prüffelder."
4096
"hierbei die Block-Header, die Blockauffüllung und die Prüffelder."
3851
4097
3852
#. type: IP
4098
#. type: IP
3853
#: ../src/xz/xz.1:2023
4099
#: ../src/xz/xz.1:2238
3854
#, no-wrap
4100
#, no-wrap
3855
msgid "15."
4101
msgid "15."
3856
msgstr "15."
4102
msgstr "15."
3857
4103
3858
#. type: Plain text
4104
#. type: Plain text
3859
#: ../src/xz/xz.1:2028
4105
#: ../src/xz/xz.1:2243
3860
msgid ""
4106
msgid ""
3861
"Amount of memory (in bytes) required to decompress this block with this "
4107
"Amount of memory (in bytes) required to decompress this block with this "
3862
"B<xz> version"
4108
"B<xz> version"
Lines 3865-3877 Link Here
3865
"dieser B<xz>-Version benötigt wird."
4111
"dieser B<xz>-Version benötigt wird."
3866
4112
3867
#. type: IP
4113
#. type: IP
3868
#: ../src/xz/xz.1:2028
4114
#: ../src/xz/xz.1:2243
3869
#, no-wrap
4115
#, no-wrap
3870
msgid "16."
4116
msgid "16."
3871
msgstr "16."
4117
msgstr "16."
3872
4118
3873
#. type: Plain text
4119
#. type: Plain text
3874
#: ../src/xz/xz.1:2035
4120
#: ../src/xz/xz.1:2250
3875
msgid ""
4121
msgid ""
3876
"Filter chain.  Note that most of the options used at compression time cannot "
4122
"Filter chain.  Note that most of the options used at compression time cannot "
3877
"be known, because only the options that are needed for decompression are "
4123
"be known, because only the options that are needed for decompression are "
Lines 3882-3893 Link Here
3882
"die für die Dekompression erforderlichen Optionen gespeichert sind."
4128
"die für die Dekompression erforderlichen Optionen gespeichert sind."
3883
4129
3884
#. type: Plain text
4130
#. type: Plain text
3885
#: ../src/xz/xz.1:2041
4131
#: ../src/xz/xz.1:2256
3886
msgid "The columns of the B<summary> lines:"
4132
msgid "The columns of the B<summary> lines:"
3887
msgstr "Die Spalten der B<summary>-Zeilen:"
4133
msgstr "Die Spalten der B<summary>-Zeilen:"
3888
4134
3889
#. type: Plain text
4135
#. type: Plain text
3890
#: ../src/xz/xz.1:2048
4136
#: ../src/xz/xz.1:2263
3891
msgid ""
4137
msgid ""
3892
"Amount of memory (in bytes) required to decompress this file with this B<xz> "
4138
"Amount of memory (in bytes) required to decompress this file with this B<xz> "
3893
"version"
4139
"version"
Lines 3896-3902 Link Here
3896
"dieser B<xz>-Version benötigt wird."
4142
"dieser B<xz>-Version benötigt wird."
3897
4143
3898
#. type: Plain text
4144
#. type: Plain text
3899
#: ../src/xz/xz.1:2054 ../src/xz/xz.1:2112
4145
#: ../src/xz/xz.1:2269 ../src/xz/xz.1:2327
3900
msgid ""
4146
msgid ""
3901
"B<yes> or B<no> indicating if all block headers have both compressed size "
4147
"B<yes> or B<no> indicating if all block headers have both compressed size "
3902
"and uncompressed size stored in them"
4148
"and uncompressed size stored in them"
Lines 3905-3947 Link Here
3905
"komprimierte als auch die unkomprimierte Größe gespeichert ist."
4151
"komprimierte als auch die unkomprimierte Größe gespeichert ist."
3906
4152
3907
#. type: Plain text
4153
#. type: Plain text
3908
#: ../src/xz/xz.1:2058 ../src/xz/xz.1:2116
4154
#: ../src/xz/xz.1:2273 ../src/xz/xz.1:2331
3909
msgid "I<Since> B<xz> I<5.1.2alpha:>"
4155
msgid "I<Since> B<xz> I<5.1.2alpha:>"
3910
msgstr "I<Seit> B<xz> I<5.1.2alpha:>"
4156
msgstr "I<Seit> B<xz> I<5.1.2alpha:>"
3911
4157
3912
#. type: Plain text
4158
#. type: Plain text
3913
#: ../src/xz/xz.1:2062 ../src/xz/xz.1:2120
4159
#: ../src/xz/xz.1:2277 ../src/xz/xz.1:2335
3914
msgid "Minimum B<xz> version required to decompress the file"
4160
msgid "Minimum B<xz> version required to decompress the file"
3915
msgstr ""
4161
msgstr ""
3916
"Minimale B<xz>-Version, die zur Dekompression der Datei erforderlich ist"
4162
"Minimale B<xz>-Version, die zur Dekompression der Datei erforderlich ist"
3917
4163
3918
#. type: Plain text
4164
#. type: Plain text
3919
#: ../src/xz/xz.1:2068
4165
#: ../src/xz/xz.1:2283
3920
msgid "The columns of the B<totals> line:"
4166
msgid "The columns of the B<totals> line:"
3921
msgstr "Die Spalten der B<totals>-Zeile:"
4167
msgstr "Die Spalten der B<totals>-Zeile:"
3922
4168
3923
#. type: Plain text
4169
#. type: Plain text
3924
#: ../src/xz/xz.1:2072
4170
#: ../src/xz/xz.1:2287
3925
msgid "Number of streams"
4171
msgid "Number of streams"
3926
msgstr "Anzahl der Datenströme"
4172
msgstr "Anzahl der Datenströme"
3927
4173
3928
#. type: Plain text
4174
#. type: Plain text
3929
#: ../src/xz/xz.1:2074
4175
#: ../src/xz/xz.1:2289
3930
msgid "Number of blocks"
4176
msgid "Number of blocks"
3931
msgstr "Anzahl der Blöcke"
4177
msgstr "Anzahl der Blöcke"
3932
4178
3933
#. type: Plain text
4179
#. type: Plain text
3934
#: ../src/xz/xz.1:2076
4180
#: ../src/xz/xz.1:2291
3935
msgid "Compressed size"
4181
msgid "Compressed size"
3936
msgstr "Komprimierte Größe"
4182
msgstr "Komprimierte Größe"
3937
4183
3938
#. type: Plain text
4184
#. type: Plain text
3939
#: ../src/xz/xz.1:2080
4185
#: ../src/xz/xz.1:2295
3940
msgid "Average compression ratio"
4186
msgid "Average compression ratio"
3941
msgstr "Durchschnittliches Kompressionsverhältnis"
4187
msgstr "Durchschnittliches Kompressionsverhältnis"
3942
4188
3943
#. type: Plain text
4189
#. type: Plain text
3944
#: ../src/xz/xz.1:2083
4190
#: ../src/xz/xz.1:2298
3945
msgid ""
4191
msgid ""
3946
"Comma-separated list of integrity check names that were present in the files"
4192
"Comma-separated list of integrity check names that were present in the files"
3947
msgstr ""
4193
msgstr ""
Lines 3949-3960 Link Here
3949
"Dateien präsent waren."
4195
"Dateien präsent waren."
3950
4196
3951
#. type: Plain text
4197
#. type: Plain text
3952
#: ../src/xz/xz.1:2085
4198
#: ../src/xz/xz.1:2300
3953
msgid "Stream padding size"
4199
msgid "Stream padding size"
3954
msgstr "Größe der Datenstromauffüllung"
4200
msgstr "Größe der Datenstromauffüllung"
3955
4201
3956
#. type: Plain text
4202
#. type: Plain text
3957
#: ../src/xz/xz.1:2091
4203
#: ../src/xz/xz.1:2306
3958
msgid ""
4204
msgid ""
3959
"Number of files.  This is here to keep the order of the earlier columns the "
4205
"Number of files.  This is here to keep the order of the earlier columns the "
3960
"same as on B<file> lines."
4206
"same as on B<file> lines."
Lines 3963-3969 Link Here
3963
"die in den B<file>-Zeilen anzugleichen."
4209
"die in den B<file>-Zeilen anzugleichen."
3964
4210
3965
#. type: Plain text
4211
#. type: Plain text
3966
#: ../src/xz/xz.1:2099
4212
#: ../src/xz/xz.1:2314
3967
msgid ""
4213
msgid ""
3968
"If B<--verbose> was specified twice, additional columns are included on the "
4214
"If B<--verbose> was specified twice, additional columns are included on the "
3969
"B<totals> line:"
4215
"B<totals> line:"
Lines 3972-3978 Link Here
3972
"B<totals>-Zeile eingefügt:"
4218
"B<totals>-Zeile eingefügt:"
3973
4219
3974
#. type: Plain text
4220
#. type: Plain text
3975
#: ../src/xz/xz.1:2106
4221
#: ../src/xz/xz.1:2321
3976
msgid ""
4222
msgid ""
3977
"Maximum amount of memory (in bytes) required to decompress the files with "
4223
"Maximum amount of memory (in bytes) required to decompress the files with "
3978
"this B<xz> version"
4224
"this B<xz> version"
Lines 3981-3987 Link Here
3981
"mit dieser B<xz>-Version benötigt wird."
4227
"mit dieser B<xz>-Version benötigt wird."
3982
4228
3983
#. type: Plain text
4229
#. type: Plain text
3984
#: ../src/xz/xz.1:2126
4230
#: ../src/xz/xz.1:2341
3985
msgid ""
4231
msgid ""
3986
"Future versions may add new line types and new columns can be added to the "
4232
"Future versions may add new line types and new columns can be added to the "
3987
"existing line types, but the existing columns won't be changed."
4233
"existing line types, but the existing columns won't be changed."
Lines 3991-4038 Link Here
3991
"die existierenden Spalten werden nicht geändert."
4237
"die existierenden Spalten werden nicht geändert."
3992
4238
3993
#. type: SH
4239
#. type: SH
3994
#: ../src/xz/xz.1:2127 ../src/xzdec/xzdec.1:104 ../src/lzmainfo/lzmainfo.1:44
4240
#: ../src/xz/xz.1:2342 ../src/xzdec/xzdec.1:104 ../src/lzmainfo/lzmainfo.1:44
4241
#: ../src/scripts/xzgrep.1:81
3995
#, no-wrap
4242
#, no-wrap
3996
msgid "EXIT STATUS"
4243
msgid "EXIT STATUS"
3997
msgstr "EXIT-STATUS"
4244
msgstr "EXIT-STATUS"
3998
4245
3999
#. type: TP
4246
#. type: TP
4000
#: ../src/xz/xz.1:2128 ../src/xzdec/xzdec.1:105 ../src/lzmainfo/lzmainfo.1:45
4247
#: ../src/xz/xz.1:2343 ../src/xzdec/xzdec.1:105 ../src/lzmainfo/lzmainfo.1:45
4001
#, no-wrap
4248
#, no-wrap
4002
msgid "B<0>"
4249
msgid "B<0>"
4003
msgstr "B<0>"
4250
msgstr "B<0>"
4004
4251
4005
#. type: Plain text
4252
#. type: Plain text
4006
#: ../src/xz/xz.1:2131 ../src/lzmainfo/lzmainfo.1:48
4253
#: ../src/xz/xz.1:2346 ../src/lzmainfo/lzmainfo.1:48
4007
msgid "All is good."
4254
msgid "All is good."
4008
msgstr "Alles ist in Ordnung."
4255
msgstr "Alles ist in Ordnung."
4009
4256
4010
#. type: TP
4257
#. type: TP
4011
#: ../src/xz/xz.1:2131 ../src/xzdec/xzdec.1:108 ../src/lzmainfo/lzmainfo.1:48
4258
#: ../src/xz/xz.1:2346 ../src/xzdec/xzdec.1:108 ../src/lzmainfo/lzmainfo.1:48
4012
#, no-wrap
4259
#, no-wrap
4013
msgid "B<1>"
4260
msgid "B<1>"
4014
msgstr "B<1>"
4261
msgstr "B<1>"
4015
4262
4016
#. type: Plain text
4263
#. type: Plain text
4017
#: ../src/xz/xz.1:2134 ../src/xzdec/xzdec.1:111 ../src/lzmainfo/lzmainfo.1:51
4264
#: ../src/xz/xz.1:2349 ../src/xzdec/xzdec.1:111 ../src/lzmainfo/lzmainfo.1:51
4018
msgid "An error occurred."
4265
msgid "An error occurred."
4019
msgstr "Ein Fehler ist aufgetreten."
4266
msgstr "Ein Fehler ist aufgetreten."
4020
4267
4021
#. type: TP
4268
#. type: TP
4022
#: ../src/xz/xz.1:2134
4269
#: ../src/xz/xz.1:2349
4023
#, no-wrap
4270
#, no-wrap
4024
msgid "B<2>"
4271
msgid "B<2>"
4025
msgstr "B<2>"
4272
msgstr "B<2>"
4026
4273
4027
#. type: Plain text
4274
#. type: Plain text
4028
#: ../src/xz/xz.1:2138
4275
#: ../src/xz/xz.1:2353
4029
msgid "Something worth a warning occurred, but no actual errors occurred."
4276
msgid "Something worth a warning occurred, but no actual errors occurred."
4030
msgstr ""
4277
msgstr ""
4031
"Es ist etwas passiert, das eine Warnung rechtfertigt, aber es sind keine "
4278
"Es ist etwas passiert, das eine Warnung rechtfertigt, aber es sind keine "
4032
"tatsächlichen Fehler aufgetreten."
4279
"tatsächlichen Fehler aufgetreten."
4033
4280
4034
#. type: Plain text
4281
#. type: Plain text
4035
#: ../src/xz/xz.1:2141
4282
#: ../src/xz/xz.1:2356
4036
msgid ""
4283
msgid ""
4037
"Notices (not warnings or errors) printed on standard error don't affect the "
4284
"Notices (not warnings or errors) printed on standard error don't affect the "
4038
"exit status."
4285
"exit status."
Lines 4041-4053 Link Here
4041
"welche den Exit-Status nicht beeinflussen."
4288
"welche den Exit-Status nicht beeinflussen."
4042
4289
4043
#. type: SH
4290
#. type: SH
4044
#: ../src/xz/xz.1:2142 ../src/scripts/xzgrep.1:80 ../src/scripts/xzless.1:52
4291
#: ../src/xz/xz.1:2357 ../src/scripts/xzgrep.1:94 ../src/scripts/xzless.1:52
4045
#, no-wrap
4292
#, no-wrap
4046
msgid "ENVIRONMENT"
4293
msgid "ENVIRONMENT"
4047
msgstr "UMGEBUNGSVARIABLEN"
4294
msgstr "UMGEBUNGSVARIABLEN"
4048
4295
4049
#. type: Plain text
4296
#. type: Plain text
4050
#: ../src/xz/xz.1:2155
4297
#: ../src/xz/xz.1:2370
4051
msgid ""
4298
msgid ""
4052
"B<xz> parses space-separated lists of options from the environment variables "
4299
"B<xz> parses space-separated lists of options from the environment variables "
4053
"B<XZ_DEFAULTS> and B<XZ_OPT>, in this order, before parsing the options from "
4300
"B<XZ_DEFAULTS> and B<XZ_OPT>, in this order, before parsing the options from "
Lines 4064-4076 Link Here
4064
"die Befehlszeilenargumente verwendet wird."
4311
"die Befehlszeilenargumente verwendet wird."
4065
4312
4066
#. type: TP
4313
#. type: TP
4067
#: ../src/xz/xz.1:2155
4314
#: ../src/xz/xz.1:2370
4068
#, no-wrap
4315
#, no-wrap
4069
msgid "B<XZ_DEFAULTS>"
4316
msgid "B<XZ_DEFAULTS>"
4070
msgstr "B<XZ_DEFAULTS>"
4317
msgstr "B<XZ_DEFAULTS>"
4071
4318
4072
#. type: Plain text
4319
#. type: Plain text
4073
#: ../src/xz/xz.1:2164
4320
#: ../src/xz/xz.1:2379
4074
msgid ""
4321
msgid ""
4075
"User-specific or system-wide default options.  Typically this is set in a "
4322
"User-specific or system-wide default options.  Typically this is set in a "
4076
"shell initialization script to enable B<xz>'s memory usage limiter by "
4323
"shell initialization script to enable B<xz>'s memory usage limiter by "
Lines 4085-4120 Link Here
4085
"werden."
4332
"werden."
4086
4333
4087
#. type: TP
4334
#. type: TP
4088
#: ../src/xz/xz.1:2164
4335
#: ../src/xz/xz.1:2379
4089
#, no-wrap
4336
#, no-wrap
4090
msgid "B<XZ_OPT>"
4337
msgid "B<XZ_OPT>"
4091
msgstr "B<XZ_OPT>"
4338
msgstr "B<XZ_OPT>"
4092
4339
4093
#. type: Plain text
4340
#. type: Plain text
4094
#: ../src/xz/xz.1:2175
4341
#: ../src/xz/xz.1:2390
4095
msgid ""
4342
msgid ""
4096
"This is for passing options to B<xz> when it is not possible to set the "
4343
"This is for passing options to B<xz> when it is not possible to set the "
4097
"options directly on the B<xz> command line.  This is the case e.g. when "
4344
"options directly on the B<xz> command line.  This is the case when B<xz> is "
4098
"B<xz> is run by a script or tool, e.g. GNU B<tar>(1):"
4345
"run by a script or tool, for example, GNU B<tar>(1):"
4099
msgstr ""
4346
msgstr ""
4100
"Dies dient der Übergabe von Optionen an B<xz>, wenn es nicht möglich ist, "
4347
"Dies dient der Übergabe von Optionen an B<xz>, wenn es nicht möglich ist, "
4101
"die Optionen direkt in der Befehlszeile von B<xz> zu übergeben. Dies ist "
4348
"die Optionen direkt in der Befehlszeile von B<xz> zu übergeben. Dies ist der "
4102
"beispielsweise der Fall, wenn B<xz> von einem Skript oder Dienstprogramm "
4349
"Fall, wenn B<xz> von einem Skript oder Dienstprogramm ausgeführt wird, zum "
4103
"ausgeführt wird, zum Beispiel GNU B<tar>(1):"
4350
"Beispiel GNU B<tar>(1):"
4104
4351
4105
#. type: Plain text
4352
#. type: Plain text
4106
#: ../src/xz/xz.1:2181
4353
#: ../src/xz/xz.1:2396
4107
#, no-wrap
4354
#, no-wrap
4108
msgid "CW<XZ_OPT=-2v tar caf foo.tar.xz foo>\n"
4355
msgid "CW<XZ_OPT=-2v tar caf foo.tar.xz foo>\n"
4109
msgstr "CW<XZ_OPT=-2v tar caf foo.tar.xz foo>\n"
4356
msgstr "CW<XZ_OPT=-2v tar caf foo.tar.xz foo>\n"
4110
4357
4111
#. type: Plain text
4358
#. type: Plain text
4112
#: ../src/xz/xz.1:2194
4359
#: ../src/xz/xz.1:2410
4113
msgid ""
4360
msgid ""
4114
"Scripts may use B<XZ_OPT> e.g. to set script-specific default compression "
4361
"Scripts may use B<XZ_OPT>, for example, to set script-specific default "
4115
"options.  It is still recommended to allow users to override B<XZ_OPT> if "
4362
"compression options.  It is still recommended to allow users to override "
4116
"that is reasonable, e.g. in B<sh>(1)  scripts one may use something like "
4363
"B<XZ_OPT> if that is reasonable.  For example, in B<sh>(1)  scripts one may "
4117
"this:"
4364
"use something like this:"
4118
msgstr ""
4365
msgstr ""
4119
"Skripte können B<XZ_OPT> zum Beispiel zum Setzen skriptspezifischer Standard-"
4366
"Skripte können B<XZ_OPT> zum Beispiel zum Setzen skriptspezifischer Standard-"
4120
"Kompressionsoptionen verwenden. Es ist weiterhin empfehlenswert, Benutzern "
4367
"Kompressionsoptionen verwenden. Es ist weiterhin empfehlenswert, Benutzern "
Lines 4122-4128 Link Here
4122
"Zum Beispiel könnte in B<sh>(1)-Skripten Folgendes stehen:"
4369
"Zum Beispiel könnte in B<sh>(1)-Skripten Folgendes stehen:"
4123
4370
4124
#. type: Plain text
4371
#. type: Plain text
4125
#: ../src/xz/xz.1:2201
4372
#: ../src/xz/xz.1:2417
4126
#, no-wrap
4373
#, no-wrap
4127
msgid ""
4374
msgid ""
4128
"CW<XZ_OPT=${XZ_OPT-\"-7e\"}\n"
4375
"CW<XZ_OPT=${XZ_OPT-\"-7e\"}\n"
Lines 4132-4144 Link Here
4132
"export XZ_OPT>\n"
4379
"export XZ_OPT>\n"
4133
4380
4134
#. type: SH
4381
#. type: SH
4135
#: ../src/xz/xz.1:2206
4382
#: ../src/xz/xz.1:2422
4136
#, no-wrap
4383
#, no-wrap
4137
msgid "LZMA UTILS COMPATIBILITY"
4384
msgid "LZMA UTILS COMPATIBILITY"
4138
msgstr "KOMPATIBILITÄT ZU DEN LZMA-UTILS"
4385
msgstr "KOMPATIBILITÄT ZU DEN LZMA-UTILS"
4139
4386
4140
#. type: Plain text
4387
#. type: Plain text
4141
#: ../src/xz/xz.1:2219
4388
#: ../src/xz/xz.1:2435
4142
msgid ""
4389
msgid ""
4143
"The command line syntax of B<xz> is practically a superset of B<lzma>, "
4390
"The command line syntax of B<xz> is practically a superset of B<lzma>, "
4144
"B<unlzma>, and B<lzcat> as found from LZMA Utils 4.32.x.  In most cases, it "
4391
"B<unlzma>, and B<lzcat> as found from LZMA Utils 4.32.x.  In most cases, it "
Lines 4153-4165 Link Here
4153
"einige Inkompatibilitäten, die manchmal Probleme verursachen können."
4400
"einige Inkompatibilitäten, die manchmal Probleme verursachen können."
4154
4401
4155
#. type: SS
4402
#. type: SS
4156
#: ../src/xz/xz.1:2220
4403
#: ../src/xz/xz.1:2436
4157
#, no-wrap
4404
#, no-wrap
4158
msgid "Compression preset levels"
4405
msgid "Compression preset levels"
4159
msgstr "Voreinstellungsstufen zur Kompression"
4406
msgstr "Voreinstellungsstufen zur Kompression"
4160
4407
4161
#. type: Plain text
4408
#. type: Plain text
4162
#: ../src/xz/xz.1:2227
4409
#: ../src/xz/xz.1:2443
4163
msgid ""
4410
msgid ""
4164
"The numbering of the compression level presets is not identical in B<xz> and "
4411
"The numbering of the compression level presets is not identical in B<xz> and "
4165
"LZMA Utils.  The most important difference is how dictionary sizes are "
4412
"LZMA Utils.  The most important difference is how dictionary sizes are "
Lines 4172-4214 Link Here
4172
"Wörterbuchgröße ist etwa gleich dem Speicherbedarf bei der Dekompression."
4419
"Wörterbuchgröße ist etwa gleich dem Speicherbedarf bei der Dekompression."
4173
4420
4174
#. type: tbl table
4421
#. type: tbl table
4175
#: ../src/xz/xz.1:2233 ../src/xz/xz.1:2258
4422
#: ../src/xz/xz.1:2449 ../src/xz/xz.1:2474
4176
#, no-wrap
4423
#, no-wrap
4177
msgid "Level"
4424
msgid "Level"
4178
msgstr "Stufe"
4425
msgstr "Stufe"
4179
4426
4180
#. type: tbl table
4427
#. type: tbl table
4181
#: ../src/xz/xz.1:2233 ../src/xz/xz.1:2258
4428
#: ../src/xz/xz.1:2449 ../src/xz/xz.1:2474
4182
#, no-wrap
4429
#, no-wrap
4183
msgid "xz"
4430
msgid "xz"
4184
msgstr "xz"
4431
msgstr "xz"
4185
4432
4186
#. type: tbl table
4433
#. type: tbl table
4187
#: ../src/xz/xz.1:2233
4434
#: ../src/xz/xz.1:2449
4188
#, no-wrap
4435
#, no-wrap
4189
msgid "LZMA Utils"
4436
msgid "LZMA Utils"
4190
msgstr "LZMA-Utils"
4437
msgstr "LZMA-Utils"
4191
4438
4192
#. type: tbl table
4439
#. type: tbl table
4193
#: ../src/xz/xz.1:2234 ../src/xz/xz.1:2259
4440
#: ../src/xz/xz.1:2450 ../src/xz/xz.1:2475
4194
#, no-wrap
4441
#, no-wrap
4195
msgid "N/A"
4442
msgid "N/A"
4196
msgstr "nicht verfügbar"
4443
msgstr "nicht verfügbar"
4197
4444
4198
#. type: tbl table
4445
#. type: tbl table
4199
#: ../src/xz/xz.1:2235
4446
#: ../src/xz/xz.1:2451
4200
#, no-wrap
4447
#, no-wrap
4201
msgid "64 KiB"
4448
msgid "64 KiB"
4202
msgstr "64 KiB"
4449
msgstr "64 KiB"
4203
4450
4204
#. type: tbl table
4451
#. type: tbl table
4205
#: ../src/xz/xz.1:2237
4452
#: ../src/xz/xz.1:2453
4206
#, no-wrap
4453
#, no-wrap
4207
msgid "512 KiB"
4454
msgid "512 KiB"
4208
msgstr "512 KiB"
4455
msgstr "512 KiB"
4209
4456
4210
#. type: Plain text
4457
#. type: Plain text
4211
#: ../src/xz/xz.1:2252
4458
#: ../src/xz/xz.1:2468
4212
msgid ""
4459
msgid ""
4213
"The dictionary size differences affect the compressor memory usage too, but "
4460
"The dictionary size differences affect the compressor memory usage too, but "
4214
"there are some other differences between LZMA Utils and XZ Utils, which make "
4461
"there are some other differences between LZMA Utils and XZ Utils, which make "
Lines 4219-4267 Link Here
4219
"den LZMA-Utils und den XZ-Utils, die die Kluft noch vergrößern:"
4466
"den LZMA-Utils und den XZ-Utils, die die Kluft noch vergrößern:"
4220
4467
4221
#. type: tbl table
4468
#. type: tbl table
4222
#: ../src/xz/xz.1:2258
4469
#: ../src/xz/xz.1:2474
4223
#, no-wrap
4470
#, no-wrap
4224
msgid "LZMA Utils 4.32.x"
4471
msgid "LZMA Utils 4.32.x"
4225
msgstr "LZMA-Utils 4.32.x"
4472
msgstr "LZMA-Utils 4.32.x"
4226
4473
4227
#. type: tbl table
4474
#. type: tbl table
4228
#: ../src/xz/xz.1:2261 ../src/xz/xz.1:2262
4475
#: ../src/xz/xz.1:2477 ../src/xz/xz.1:2478
4229
#, no-wrap
4476
#, no-wrap
4230
msgid "12 MiB"
4477
msgid "12 MiB"
4231
msgstr "12 MiB"
4478
msgstr "12 MiB"
4232
4479
4233
#. type: tbl table
4480
#. type: tbl table
4234
#: ../src/xz/xz.1:2264
4481
#: ../src/xz/xz.1:2480
4235
#, no-wrap
4482
#, no-wrap
4236
msgid "26 MiB"
4483
msgid "26 MiB"
4237
msgstr "26 MiB"
4484
msgstr "26 MiB"
4238
4485
4239
#. type: tbl table
4486
#. type: tbl table
4240
#: ../src/xz/xz.1:2265
4487
#: ../src/xz/xz.1:2481
4241
#, no-wrap
4488
#, no-wrap
4242
msgid "45 MiB"
4489
msgid "45 MiB"
4243
msgstr "45 MiB"
4490
msgstr "45 MiB"
4244
4491
4245
#. type: tbl table
4492
#. type: tbl table
4246
#: ../src/xz/xz.1:2266
4493
#: ../src/xz/xz.1:2482
4247
#, no-wrap
4494
#, no-wrap
4248
msgid "83 MiB"
4495
msgid "83 MiB"
4249
msgstr "83 MiB"
4496
msgstr "83 MiB"
4250
4497
4251
#. type: tbl table
4498
#. type: tbl table
4252
#: ../src/xz/xz.1:2267
4499
#: ../src/xz/xz.1:2483
4253
#, no-wrap
4500
#, no-wrap
4254
msgid "159 MiB"
4501
msgid "159 MiB"
4255
msgstr "159 MiB"
4502
msgstr "159 MiB"
4256
4503
4257
#. type: tbl table
4504
#. type: tbl table
4258
#: ../src/xz/xz.1:2268
4505
#: ../src/xz/xz.1:2484
4259
#, no-wrap
4506
#, no-wrap
4260
msgid "311 MiB"
4507
msgid "311 MiB"
4261
msgstr "311 MiB"
4508
msgstr "311 MiB"
4262
4509
4263
#. type: Plain text
4510
#. type: Plain text
4264
#: ../src/xz/xz.1:2277
4511
#: ../src/xz/xz.1:2493
4265
msgid ""
4512
msgid ""
4266
"The default preset level in LZMA Utils is B<-7> while in XZ Utils it is "
4513
"The default preset level in LZMA Utils is B<-7> while in XZ Utils it is "
4267
"B<-6>, so both use an 8 MiB dictionary by default."
4514
"B<-6>, so both use an 8 MiB dictionary by default."
Lines 4271-4289 Link Here
4271
"MiB großes Wörterbuch."
4518
"MiB großes Wörterbuch."
4272
4519
4273
#. type: SS
4520
#. type: SS
4274
#: ../src/xz/xz.1:2278
4521
#: ../src/xz/xz.1:2494
4275
#, no-wrap
4522
#, no-wrap
4276
msgid "Streamed vs. non-streamed .lzma files"
4523
msgid "Streamed vs. non-streamed .lzma files"
4277
msgstr "Vor- und Nachteile von .lzma-Dateien als Datenströme"
4524
msgstr "Vor- und Nachteile von .lzma-Dateien als Datenströme"
4278
4525
4279
#. type: Plain text
4526
#. type: Plain text
4280
#: ../src/xz/xz.1:2288
4527
#: ../src/xz/xz.1:2504
4281
msgid ""
4528
msgid ""
4282
"The uncompressed size of the file can be stored in the B<.lzma> header.  "
4529
"The uncompressed size of the file can be stored in the B<.lzma> header.  "
4283
"LZMA Utils does that when compressing regular files.  The alternative is to "
4530
"LZMA Utils does that when compressing regular files.  The alternative is to "
4284
"mark that uncompressed size is unknown and use end-of-payload marker to "
4531
"mark that uncompressed size is unknown and use end-of-payload marker to "
4285
"indicate where the decompressor should stop.  LZMA Utils uses this method "
4532
"indicate where the decompressor should stop.  LZMA Utils uses this method "
4286
"when uncompressed size isn't known, which is the case for example in pipes."
4533
"when uncompressed size isn't known, which is the case, for example, in pipes."
4287
msgstr ""
4534
msgstr ""
4288
"Die unkomprimierte Größe der Datei kann in den B<.lzma>-Headern gespeichert "
4535
"Die unkomprimierte Größe der Datei kann in den B<.lzma>-Headern gespeichert "
4289
"werden. Die LZMA-Utils tun das beim Komprimieren gewöhnlicher Dateien. Als "
4536
"werden. Die LZMA-Utils tun das beim Komprimieren gewöhnlicher Dateien. Als "
Lines 4294-4300 Link Here
4294
"(Befehlsverkettungen) der Fall ist."
4541
"(Befehlsverkettungen) der Fall ist."
4295
4542
4296
#. type: Plain text
4543
#. type: Plain text
4297
#: ../src/xz/xz.1:2309
4544
#: ../src/xz/xz.1:2525
4298
msgid ""
4545
msgid ""
4299
"B<xz> supports decompressing B<.lzma> files with or without end-of-payload "
4546
"B<xz> supports decompressing B<.lzma> files with or without end-of-payload "
4300
"marker, but all B<.lzma> files created by B<xz> will use end-of-payload "
4547
"marker, but all B<.lzma> files created by B<xz> will use end-of-payload "
Lines 4315-4327 Link Here
4315
"lzma>-Dateien mit bekannter unkomprimierter Größe zu erzeugen."
4562
"lzma>-Dateien mit bekannter unkomprimierter Größe zu erzeugen."
4316
4563
4317
#. type: SS
4564
#. type: SS
4318
#: ../src/xz/xz.1:2310
4565
#: ../src/xz/xz.1:2526
4319
#, no-wrap
4566
#, no-wrap
4320
msgid "Unsupported .lzma files"
4567
msgid "Unsupported .lzma files"
4321
msgstr "Nicht unterstützte .lzma-Dateien"
4568
msgstr "Nicht unterstützte .lzma-Dateien"
4322
4569
4323
#. type: Plain text
4570
#. type: Plain text
4324
#: ../src/xz/xz.1:2333
4571
#: ../src/xz/xz.1:2549
4325
msgid ""
4572
msgid ""
4326
"The B<.lzma> format allows I<lc> values up to 8, and I<lp> values up to 4.  "
4573
"The B<.lzma> format allows I<lc> values up to 8, and I<lp> values up to 4.  "
4327
"LZMA Utils can decompress files with any I<lc> and I<lp>, but always creates "
4574
"LZMA Utils can decompress files with any I<lc> and I<lp>, but always creates "
Lines 4335-4341 Link Here
4335
"möglich."
4582
"möglich."
4336
4583
4337
#. type: Plain text
4584
#. type: Plain text
4338
#: ../src/xz/xz.1:2344
4585
#: ../src/xz/xz.1:2560
4339
msgid ""
4586
msgid ""
4340
"The implementation of the LZMA1 filter in liblzma requires that the sum of "
4587
"The implementation of the LZMA1 filter in liblzma requires that the sum of "
4341
"I<lc> and I<lp> must not exceed 4.  Thus, B<.lzma> files, which exceed this "
4588
"I<lc> and I<lp> must not exceed 4.  Thus, B<.lzma> files, which exceed this "
Lines 4346-4352 Link Here
4346
"welche diese Begrenzung überschreiten, mit B<xz> nicht dekomprimiert werden."
4593
"welche diese Begrenzung überschreiten, mit B<xz> nicht dekomprimiert werden."
4347
4594
4348
#. type: Plain text
4595
#. type: Plain text
4349
#: ../src/xz/xz.1:2359
4596
#: ../src/xz/xz.1:2575
4350
msgid ""
4597
msgid ""
4351
"LZMA Utils creates only B<.lzma> files which have a dictionary size of "
4598
"LZMA Utils creates only B<.lzma> files which have a dictionary size of "
4352
"2^I<n> (a power of 2) but accepts files with any dictionary size.  liblzma "
4599
"2^I<n> (a power of 2) but accepts files with any dictionary size.  liblzma "
Lines 4361-4367 Link Here
4361
"Verringern von Fehlalarmen beim Erkennen von B<.lzma>-Dateien."
4608
"Verringern von Fehlalarmen beim Erkennen von B<.lzma>-Dateien."
4362
4609
4363
#. type: Plain text
4610
#. type: Plain text
4364
#: ../src/xz/xz.1:2364
4611
#: ../src/xz/xz.1:2580
4365
msgid ""
4612
msgid ""
4366
"These limitations shouldn't be a problem in practice, since practically all "
4613
"These limitations shouldn't be a problem in practice, since practically all "
4367
"B<.lzma> files have been compressed with settings that liblzma will accept."
4614
"B<.lzma> files have been compressed with settings that liblzma will accept."
Lines 4371-4383 Link Here
4371
"akzeptieren wird."
4618
"akzeptieren wird."
4372
4619
4373
#. type: SS
4620
#. type: SS
4374
#: ../src/xz/xz.1:2365
4621
#: ../src/xz/xz.1:2581
4375
#, no-wrap
4622
#, no-wrap
4376
msgid "Trailing garbage"
4623
msgid "Trailing garbage"
4377
msgstr "Angehängter Datenmüll"
4624
msgstr "Angehängter Datenmüll"
4378
4625
4379
#. type: Plain text
4626
#. type: Plain text
4380
#: ../src/xz/xz.1:2375
4627
#: ../src/xz/xz.1:2591
4381
msgid ""
4628
msgid ""
4382
"When decompressing, LZMA Utils silently ignore everything after the first B<."
4629
"When decompressing, LZMA Utils silently ignore everything after the first B<."
4383
"lzma> stream.  In most situations, this is a bug.  This also means that LZMA "
4630
"lzma> stream.  In most situations, this is a bug.  This also means that LZMA "
Lines 4389-4395 Link Here
4389
"B<.lzma>-Dateien nicht unterstützen."
4636
"B<.lzma>-Dateien nicht unterstützen."
4390
4637
4391
#. type: Plain text
4638
#. type: Plain text
4392
#: ../src/xz/xz.1:2385
4639
#: ../src/xz/xz.1:2601
4393
msgid ""
4640
msgid ""
4394
"If there is data left after the first B<.lzma> stream, B<xz> considers the "
4641
"If there is data left after the first B<.lzma> stream, B<xz> considers the "
4395
"file to be corrupt unless B<--single-stream> was used.  This may break "
4642
"file to be corrupt unless B<--single-stream> was used.  This may break "
Lines 4401-4419 Link Here
4401
"ausgehen, dass angehängter Datenmüll ignoriert wird."
4648
"ausgehen, dass angehängter Datenmüll ignoriert wird."
4402
4649
4403
#. type: SH
4650
#. type: SH
4404
#: ../src/xz/xz.1:2386 ../src/xzdec/xzdec.1:117
4651
#: ../src/xz/xz.1:2602 ../src/xzdec/xzdec.1:117
4405
#, no-wrap
4652
#, no-wrap
4406
msgid "NOTES"
4653
msgid "NOTES"
4407
msgstr "ANMERKUNGEN"
4654
msgstr "ANMERKUNGEN"
4408
4655
4409
#. type: SS
4656
#. type: SS
4410
#: ../src/xz/xz.1:2388
4657
#: ../src/xz/xz.1:2604
4411
#, no-wrap
4658
#, no-wrap
4412
msgid "Compressed output may vary"
4659
msgid "Compressed output may vary"
4413
msgstr "Die komprimierte Ausgabe kann variieren"
4660
msgstr "Die komprimierte Ausgabe kann variieren"
4414
4661
4415
#. type: Plain text
4662
#. type: Plain text
4416
#: ../src/xz/xz.1:2399
4663
#: ../src/xz/xz.1:2615
4417
msgid ""
4664
msgid ""
4418
"The exact compressed output produced from the same uncompressed input file "
4665
"The exact compressed output produced from the same uncompressed input file "
4419
"may vary between XZ Utils versions even if compression options are "
4666
"may vary between XZ Utils versions even if compression options are "
Lines 4432-4438 Link Here
4432
"Binärprogramms unterschiedliche Optionen verwendet wurden."
4679
"Binärprogramms unterschiedliche Optionen verwendet wurden."
4433
4680
4434
#. type: Plain text
4681
#. type: Plain text
4435
#: ../src/xz/xz.1:2409
4682
#: ../src/xz/xz.1:2625
4436
msgid ""
4683
msgid ""
4437
"The above means that once B<--rsyncable> has been implemented, the resulting "
4684
"The above means that once B<--rsyncable> has been implemented, the resulting "
4438
"files won't necessarily be rsyncable unless both old and new files have been "
4685
"files won't necessarily be rsyncable unless both old and new files have been "
Lines 4448-4460 Link Here
4448
"B<xz>-Versionsgrenzen hinweg stabil zu halten."
4695
"B<xz>-Versionsgrenzen hinweg stabil zu halten."
4449
4696
4450
#. type: SS
4697
#. type: SS
4451
#: ../src/xz/xz.1:2410
4698
#: ../src/xz/xz.1:2626
4452
#, no-wrap
4699
#, no-wrap
4453
msgid "Embedded .xz decompressors"
4700
msgid "Embedded .xz decompressors"
4454
msgstr "Eingebettete .xz-Dekompressoren"
4701
msgstr "Eingebettete .xz-Dekompressoren"
4455
4702
4456
#. type: Plain text
4703
#. type: Plain text
4457
#: ../src/xz/xz.1:2427
4704
#: ../src/xz/xz.1:2643
4458
msgid ""
4705
msgid ""
4459
"Embedded B<.xz> decompressor implementations like XZ Embedded don't "
4706
"Embedded B<.xz> decompressor implementations like XZ Embedded don't "
4460
"necessarily support files created with integrity I<check> types other than "
4707
"necessarily support files created with integrity I<check> types other than "
Lines 4468-4474 Link Here
4468
"check=crc32> verwenden, wenn Sie Dateien für eingebettete Systeme erstellen."
4715
"check=crc32> verwenden, wenn Sie Dateien für eingebettete Systeme erstellen."
4469
4716
4470
#. type: Plain text
4717
#. type: Plain text
4471
#: ../src/xz/xz.1:2437
4718
#: ../src/xz/xz.1:2653
4472
msgid ""
4719
msgid ""
4473
"Outside embedded systems, all B<.xz> format decompressors support all the "
4720
"Outside embedded systems, all B<.xz> format decompressors support all the "
4474
"I<check> types, or at least are able to decompress the file without "
4721
"I<check> types, or at least are able to decompress the file without "
Lines 4480-4486 Link Here
4480
"I<Prüfung> nicht verfügbar ist."
4727
"I<Prüfung> nicht verfügbar ist."
4481
4728
4482
#. type: Plain text
4729
#. type: Plain text
4483
#: ../src/xz/xz.1:2440
4730
#: ../src/xz/xz.1:2656
4484
msgid ""
4731
msgid ""
4485
"XZ Embedded supports BCJ filters, but only with the default start offset."
4732
"XZ Embedded supports BCJ filters, but only with the default start offset."
4486
msgstr ""
4733
msgstr ""
Lines 4488-4506 Link Here
4488
"Startversatz."
4735
"Startversatz."
4489
4736
4490
#. type: SH
4737
#. type: SH
4491
#: ../src/xz/xz.1:2441
4738
#: ../src/xz/xz.1:2657
4492
#, no-wrap
4739
#, no-wrap
4493
msgid "EXAMPLES"
4740
msgid "EXAMPLES"
4494
msgstr "BEISPIELE"
4741
msgstr "BEISPIELE"
4495
4742
4496
#. type: SS
4743
#. type: SS
4497
#: ../src/xz/xz.1:2443
4744
#: ../src/xz/xz.1:2659
4498
#, no-wrap
4745
#, no-wrap
4499
msgid "Basics"
4746
msgid "Basics"
4500
msgstr "Grundlagen"
4747
msgstr "Grundlagen"
4501
4748
4502
#. type: Plain text
4749
#. type: Plain text
4503
#: ../src/xz/xz.1:2453
4750
#: ../src/xz/xz.1:2669
4504
msgid ""
4751
msgid ""
4505
"Compress the file I<foo> into I<foo.xz> using the default compression level "
4752
"Compress the file I<foo> into I<foo.xz> using the default compression level "
4506
"(B<-6>), and remove I<foo> if compression is successful:"
4753
"(B<-6>), and remove I<foo> if compression is successful:"
Lines 4509-4521 Link Here
4509
"I<foo.xz> und entfernt I<foo> nach erfolgreicher Kompression:"
4756
"I<foo.xz> und entfernt I<foo> nach erfolgreicher Kompression:"
4510
4757
4511
#. type: Plain text
4758
#. type: Plain text
4512
#: ../src/xz/xz.1:2458
4759
#: ../src/xz/xz.1:2674
4513
#, no-wrap
4760
#, no-wrap
4514
msgid "CW<xz foo>\n"
4761
msgid "CW<xz foo>\n"
4515
msgstr "CW<xz foo>\n"
4762
msgstr "CW<xz foo>\n"
4516
4763
4517
#. type: Plain text
4764
#. type: Plain text
4518
#: ../src/xz/xz.1:2469
4765
#: ../src/xz/xz.1:2685
4519
msgid ""
4766
msgid ""
4520
"Decompress I<bar.xz> into I<bar> and don't remove I<bar.xz> even if "
4767
"Decompress I<bar.xz> into I<bar> and don't remove I<bar.xz> even if "
4521
"decompression is successful:"
4768
"decompression is successful:"
Lines 4524-4554 Link Here
4524
"wenn die Dekompression erfolgreich war:"
4771
"wenn die Dekompression erfolgreich war:"
4525
4772
4526
#. type: Plain text
4773
#. type: Plain text
4527
#: ../src/xz/xz.1:2474
4774
#: ../src/xz/xz.1:2690
4528
#, no-wrap
4775
#, no-wrap
4529
msgid "CW<xz -dk bar.xz>\n"
4776
msgid "CW<xz -dk bar.xz>\n"
4530
msgstr "CW<xz -dk bar.xz>\n"
4777
msgstr "CW<xz -dk bar.xz>\n"
4531
4778
4532
#. type: Plain text
4779
#. type: Plain text
4533
#: ../src/xz/xz.1:2487
4780
#: ../src/xz/xz.1:2703
4534
msgid ""
4781
msgid ""
4535
"Create I<baz.tar.xz> with the preset B<-4e> (B<-4 --extreme>), which is "
4782
"Create I<baz.tar.xz> with the preset B<-4e> (B<-4 --extreme>), which is "
4536
"slower than e.g. the default B<-6>, but needs less memory for compression "
4783
"slower than the default B<-6>, but needs less memory for compression and "
4537
"and decompression (48\\ MiB and 5\\ MiB, respectively):"
4784
"decompression (48\\ MiB and 5\\ MiB, respectively):"
4538
msgstr ""
4785
msgstr ""
4539
"I<baz.tar.xz> mit der Voreinstellung B<-4e> (B<-4 --extreme>) erzeugen, was "
4786
"I<baz.tar.xz> mit der Voreinstellung B<-4e> (B<-4 --extreme>) erzeugen, was "
4540
"langsamer ist als beispielsweise die Vorgabe B<-6>, aber weniger Speicher "
4787
"langsamer ist als die Vorgabe B<-6>, aber weniger Speicher für Kompression "
4541
"für Kompression und Dekompression benötigt (48\\ MiB beziehungsweise 5\\ "
4788
"und Dekompression benötigt (48\\ MiB beziehungsweise 5\\ MiB):"
4542
"MiB):"
4543
4789
4544
#. type: Plain text
4790
#. type: Plain text
4545
#: ../src/xz/xz.1:2492
4791
#: ../src/xz/xz.1:2708
4546
#, no-wrap
4792
#, no-wrap
4547
msgid "CW<tar cf - baz | xz -4e E<gt> baz.tar.xz>\n"
4793
msgid "CW<tar cf - baz | xz -4e E<gt> baz.tar.xz>\n"
4548
msgstr "CW<tar cf - baz | xz -4e E<gt> baz.tar.xz>\n"
4794
msgstr "CW<tar cf - baz | xz -4e E<gt> baz.tar.xz>\n"
4549
4795
4550
#. type: Plain text
4796
#. type: Plain text
4551
#: ../src/xz/xz.1:2498
4797
#: ../src/xz/xz.1:2714
4552
msgid ""
4798
msgid ""
4553
"A mix of compressed and uncompressed files can be decompressed to standard "
4799
"A mix of compressed and uncompressed files can be decompressed to standard "
4554
"output with a single command:"
4800
"output with a single command:"
Lines 4557-4575 Link Here
4557
"einzelnen Befehl dekomprimiert in die Standardausgabe geschrieben werden:"
4803
"einzelnen Befehl dekomprimiert in die Standardausgabe geschrieben werden:"
4558
4804
4559
#. type: Plain text
4805
#. type: Plain text
4560
#: ../src/xz/xz.1:2503
4806
#: ../src/xz/xz.1:2719
4561
#, no-wrap
4807
#, no-wrap
4562
msgid "CW<xz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt>\n"
4808
msgid "CW<xz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt>\n"
4563
msgstr "CW<xz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt>\n"
4809
msgstr "CW<xz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt>\n"
4564
4810
4565
#. type: SS
4811
#. type: SS
4566
#: ../src/xz/xz.1:2507
4812
#: ../src/xz/xz.1:2723
4567
#, no-wrap
4813
#, no-wrap
4568
msgid "Parallel compression of many files"
4814
msgid "Parallel compression of many files"
4569
msgstr "Parallele Kompression von vielen Dateien"
4815
msgstr "Parallele Kompression von vielen Dateien"
4570
4816
4571
#. type: Plain text
4817
#. type: Plain text
4572
#: ../src/xz/xz.1:2513
4818
#: ../src/xz/xz.1:2729
4573
msgid ""
4819
msgid ""
4574
"On GNU and *BSD, B<find>(1)  and B<xargs>(1)  can be used to parallelize "
4820
"On GNU and *BSD, B<find>(1)  and B<xargs>(1)  can be used to parallelize "
4575
"compression of many files:"
4821
"compression of many files:"
Lines 4578-4584 Link Here
4578
"Parallelisieren der Kompression vieler Dateien verwendet werden:"
4824
"Parallelisieren der Kompression vieler Dateien verwendet werden:"
4579
4825
4580
#. type: Plain text
4826
#. type: Plain text
4581
#: ../src/xz/xz.1:2519
4827
#: ../src/xz/xz.1:2735
4582
#, no-wrap
4828
#, no-wrap
4583
msgid ""
4829
msgid ""
4584
"CW<find . -type f \\e! -name '*.xz' -print0 \\e\n"
4830
"CW<find . -type f \\e! -name '*.xz' -print0 \\e\n"
Lines 4588-4594 Link Here
4588
"    | xargs -0r -P4 -n16 xz -T1>\n"
4834
"    | xargs -0r -P4 -n16 xz -T1>\n"
4589
4835
4590
#. type: Plain text
4836
#. type: Plain text
4591
#: ../src/xz/xz.1:2541
4837
#: ../src/xz/xz.1:2757
4592
msgid ""
4838
msgid ""
4593
"The B<-P> option to B<xargs>(1)  sets the number of parallel B<xz> "
4839
"The B<-P> option to B<xargs>(1)  sets the number of parallel B<xz> "
4594
"processes.  The best value for the B<-n> option depends on how many files "
4840
"processes.  The best value for the B<-n> option depends on how many files "
Lines 4605-4611 Link Here
4605
"Prozesse zu beschränken, die B<xargs>(1) schließlich erzeugen wird."
4851
"Prozesse zu beschränken, die B<xargs>(1) schließlich erzeugen wird."
4606
4852
4607
#. type: Plain text
4853
#. type: Plain text
4608
#: ../src/xz/xz.1:2549
4854
#: ../src/xz/xz.1:2765
4609
msgid ""
4855
msgid ""
4610
"The option B<-T1> for B<xz> is there to force it to single-threaded mode, "
4856
"The option B<-T1> for B<xz> is there to force it to single-threaded mode, "
4611
"because B<xargs>(1)  is used to control the amount of parallelization."
4857
"because B<xargs>(1)  is used to control the amount of parallelization."
Lines 4614-4626 Link Here
4614
"da B<xargs>(1) zur Steuerung des Umfangs der Parallelisierung verwendet wird."
4860
"da B<xargs>(1) zur Steuerung des Umfangs der Parallelisierung verwendet wird."
4615
4861
4616
#. type: SS
4862
#. type: SS
4617
#: ../src/xz/xz.1:2550
4863
#: ../src/xz/xz.1:2766
4618
#, no-wrap
4864
#, no-wrap
4619
msgid "Robot mode"
4865
msgid "Robot mode"
4620
msgstr "Roboter-Modus"
4866
msgstr "Roboter-Modus"
4621
4867
4622
#. type: Plain text
4868
#. type: Plain text
4623
#: ../src/xz/xz.1:2553
4869
#: ../src/xz/xz.1:2769
4624
msgid ""
4870
msgid ""
4625
"Calculate how many bytes have been saved in total after compressing multiple "
4871
"Calculate how many bytes have been saved in total after compressing multiple "
4626
"files:"
4872
"files:"
Lines 4629-4641 Link Here
4629
"eingespart wurden:"
4875
"eingespart wurden:"
4630
4876
4631
#. type: Plain text
4877
#. type: Plain text
4632
#: ../src/xz/xz.1:2558
4878
#: ../src/xz/xz.1:2774
4633
#, no-wrap
4879
#, no-wrap
4634
msgid "CW<xz --robot --list *.xz | awk '/^totals/{print $5-$4}'>\n"
4880
msgid "CW<xz --robot --list *.xz | awk '/^totals/{print $5-$4}'>\n"
4635
msgstr "CW<xz --robot --list *.xz | awk '/^totals/{print $5-$4}'>\n"
4881
msgstr "CW<xz --robot --list *.xz | awk '/^totals/{print $5-$4}'>\n"
4636
4882
4637
#. type: Plain text
4883
#. type: Plain text
4638
#: ../src/xz/xz.1:2573
4884
#: ../src/xz/xz.1:2789
4639
msgid ""
4885
msgid ""
4640
"A script may want to know that it is using new enough B<xz>.  The following "
4886
"A script may want to know that it is using new enough B<xz>.  The following "
4641
"B<sh>(1)  script checks that the version number of the B<xz> tool is at "
4887
"B<sh>(1)  script checks that the version number of the B<xz> tool is at "
Lines 4648-4654 Link Here
4648
"Versionen kompatibel, welche die Option B<--robot> nicht unterstützen:"
4894
"Versionen kompatibel, welche die Option B<--robot> nicht unterstützen:"
4649
4895
4650
#. type: Plain text
4896
#. type: Plain text
4651
#: ../src/xz/xz.1:2582
4897
#: ../src/xz/xz.1:2798
4652
#, no-wrap
4898
#, no-wrap
4653
msgid ""
4899
msgid ""
4654
"CW<if ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
4900
"CW<if ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
Lines 4664-4670 Link Here
4664
"unset XZ_VERSION LIBLZMA_VERSION>\n"
4910
"unset XZ_VERSION LIBLZMA_VERSION>\n"
4665
4911
4666
#. type: Plain text
4912
#. type: Plain text
4667
#: ../src/xz/xz.1:2589
4913
#: ../src/xz/xz.1:2805
4668
msgid ""
4914
msgid ""
4669
"Set a memory usage limit for decompression using B<XZ_OPT>, but if a limit "
4915
"Set a memory usage limit for decompression using B<XZ_OPT>, but if a limit "
4670
"has already been set, don't increase it:"
4916
"has already been set, don't increase it:"
Lines 4673-4689 Link Here
4673
"aber eine bereits gesetzte Begrenzung nicht erhöhen:"
4919
"aber eine bereits gesetzte Begrenzung nicht erhöhen:"
4674
4920
4675
#. type: Plain text
4921
#. type: Plain text
4676
#: ../src/xz/xz.1:2599
4922
#: ../src/xz/xz.1:2815
4677
#, no-wrap
4923
#, no-wrap
4678
msgid ""
4924
msgid ""
4679
"CW<NEWLIM=$((123 E<lt>E<lt> 20))  # 123 MiB\n"
4925
"CW<NEWLIM=$((123 E<lt>E<lt> 20))\\ \\ # 123 MiB\n"
4680
"OLDLIM=$(xz --robot --info-memory | cut -f3)\n"
4926
"OLDLIM=$(xz --robot --info-memory | cut -f3)\n"
4681
"if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then\n"
4927
"if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then\n"
4682
"    XZ_OPT=\"$XZ_OPT --memlimit-decompress=$NEWLIM\"\n"
4928
"    XZ_OPT=\"$XZ_OPT --memlimit-decompress=$NEWLIM\"\n"
4683
"    export XZ_OPT\n"
4929
"    export XZ_OPT\n"
4684
"fi>\n"
4930
"fi>\n"
4685
msgstr ""
4931
msgstr ""
4686
"CW<NEWLIM=$((123 E<lt>E<lt> 20))  # 123 MiB\n"
4932
"CW<NEWLIM=$((123 E<lt>E<lt> 20))\\ \\ # 123 MiB\n"
4687
"OLDLIM=$(xz --robot --info-memory | cut -f3)\n"
4933
"OLDLIM=$(xz --robot --info-memory | cut -f3)\n"
4688
"if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then\n"
4934
"if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then\n"
4689
"    XZ_OPT=\"$XZ_OPT --memlimit-decompress=$NEWLIM\"\n"
4935
"    XZ_OPT=\"$XZ_OPT --memlimit-decompress=$NEWLIM\"\n"
Lines 4691-4697 Link Here
4691
"fi>\n"
4937
"fi>\n"
4692
4938
4693
#. type: Plain text
4939
#. type: Plain text
4694
#: ../src/xz/xz.1:2609
4940
#: ../src/xz/xz.1:2825
4695
msgid ""
4941
msgid ""
4696
"The simplest use for custom filter chains is customizing a LZMA2 preset.  "
4942
"The simplest use for custom filter chains is customizing a LZMA2 preset.  "
4697
"This can be useful, because the presets cover only a subset of the "
4943
"This can be useful, because the presets cover only a subset of the "
Lines 4703-4709 Link Here
4703
"Kompressionseinstellungen abdecken."
4949
"Kompressionseinstellungen abdecken."
4704
4950
4705
#. type: Plain text
4951
#. type: Plain text
4706
#: ../src/xz/xz.1:2617
4952
#: ../src/xz/xz.1:2833
4707
msgid ""
4953
msgid ""
4708
"The CompCPU columns of the tables from the descriptions of the options "
4954
"The CompCPU columns of the tables from the descriptions of the options "
4709
"B<-0> ... B<-9> and B<--extreme> are useful when customizing LZMA2 presets.  "
4955
"B<-0> ... B<-9> and B<--extreme> are useful when customizing LZMA2 presets.  "
Lines 4714-4725 Link Here
4714
"nützlich. Diese sind die relevanten Teile aus diesen zwei Tabellen:"
4960
"nützlich. Diese sind die relevanten Teile aus diesen zwei Tabellen:"
4715
4961
4716
#. type: Plain text
4962
#. type: Plain text
4717
#: ../src/xz/xz.1:2642
4963
#: ../src/xz/xz.1:2858
4718
msgid ""
4964
msgid ""
4719
"If you know that a file requires somewhat big dictionary (e.g. 32 MiB) to "
4965
"If you know that a file requires somewhat big dictionary (for example, 32\\ "
4720
"compress well, but you want to compress it quicker than B<xz -8> would do, a "
4966
"MiB) to compress well, but you want to compress it quicker than B<xz -8> "
4721
"preset with a low CompCPU value (e.g. 1)  can be modified to use a bigger "
4967
"would do, a preset with a low CompCPU value (for example, 1)  can be "
4722
"dictionary:"
4968
"modified to use a bigger dictionary:"
4723
msgstr ""
4969
msgstr ""
4724
"Wenn Sie wissen, dass eine Datei für eine gute Kompression ein etwas "
4970
"Wenn Sie wissen, dass eine Datei für eine gute Kompression ein etwas "
4725
"größeres Wörterbuch benötigt (zum Beispiel 32 MiB), aber Sie sie schneller "
4971
"größeres Wörterbuch benötigt (zum Beispiel 32 MiB), aber Sie sie schneller "
Lines 4728-4740 Link Here
4728
"angepasst werden, ein größeres Wörterbuch zu verwenden:"
4974
"angepasst werden, ein größeres Wörterbuch zu verwenden:"
4729
4975
4730
#. type: Plain text
4976
#. type: Plain text
4731
#: ../src/xz/xz.1:2647
4977
#: ../src/xz/xz.1:2863
4732
#, no-wrap
4978
#, no-wrap
4733
msgid "CW<xz --lzma2=preset=1,dict=32MiB foo.tar>\n"
4979
msgid "CW<xz --lzma2=preset=1,dict=32MiB foo.tar>\n"
4734
msgstr "CW<xz --lzma2=preset=1,dict=32MiB foo.tar>\n"
4980
msgstr "CW<xz --lzma2=preset=1,dict=32MiB foo.tar>\n"
4735
4981
4736
#. type: Plain text
4982
#. type: Plain text
4737
#: ../src/xz/xz.1:2663
4983
#: ../src/xz/xz.1:2879
4738
msgid ""
4984
msgid ""
4739
"With certain files, the above command may be faster than B<xz -6> while "
4985
"With certain files, the above command may be faster than B<xz -6> while "
4740
"compressing significantly better.  However, it must be emphasized that only "
4986
"compressing significantly better.  However, it must be emphasized that only "
Lines 4756-4762 Link Here
4756
"folgenden Dateien zieht."
5002
"folgenden Dateien zieht."
4757
5003
4758
#. type: Plain text
5004
#. type: Plain text
4759
#: ../src/xz/xz.1:2670
5005
#: ../src/xz/xz.1:2886
4760
msgid ""
5006
msgid ""
4761
"If very high compressor and decompressor memory usage is fine, and the file "
5007
"If very high compressor and decompressor memory usage is fine, and the file "
4762
"being compressed is at least several hundred megabytes, it may be useful to "
5008
"being compressed is at least several hundred megabytes, it may be useful to "
Lines 4768-4780 Link Here
4768
"MiB, die mit B<xz -9> verwendet werden würden:"
5014
"MiB, die mit B<xz -9> verwendet werden würden:"
4769
5015
4770
#. type: Plain text
5016
#. type: Plain text
4771
#: ../src/xz/xz.1:2675
5017
#: ../src/xz/xz.1:2891
4772
#, no-wrap
5018
#, no-wrap
4773
msgid "CW<xz -vv --lzma2=dict=192MiB big_foo.tar>\n"
5019
msgid "CW<xz -vv --lzma2=dict=192MiB big_foo.tar>\n"
4774
msgstr "CW<xz -vv --lzma2=dict=192MiB big_foo.tar>\n"
5020
msgstr "CW<xz -vv --lzma2=dict=192MiB big_foo.tar>\n"
4775
5021
4776
#. type: Plain text
5022
#. type: Plain text
4777
#: ../src/xz/xz.1:2688
5023
#: ../src/xz/xz.1:2904
4778
msgid ""
5024
msgid ""
4779
"Using B<-vv> (B<--verbose --verbose>)  like in the above example can be "
5025
"Using B<-vv> (B<--verbose --verbose>)  like in the above example can be "
4780
"useful to see the memory requirements of the compressor and decompressor.  "
5026
"useful to see the memory requirements of the compressor and decompressor.  "
Lines 4788-4801 Link Here
4788
"Befehl für kleine Dateien nicht sinnvoll."
5034
"Befehl für kleine Dateien nicht sinnvoll."
4789
5035
4790
#. type: Plain text
5036
#. type: Plain text
4791
#: ../src/xz/xz.1:2701
5037
#: ../src/xz/xz.1:2916
4792
msgid ""
5038
msgid ""
4793
"Sometimes the compression time doesn't matter, but the decompressor memory "
5039
"Sometimes the compression time doesn't matter, but the decompressor memory "
4794
"usage has to be kept low e.g. to make it possible to decompress the file on "
5040
"usage has to be kept low, for example, to make it possible to decompress the "
4795
"an embedded system.  The following command uses B<-6e> (B<-6 --extreme>)  as "
5041
"file on an embedded system.  The following command uses B<-6e> (B<-6 --"
4796
"a base and sets the dictionary to only 64\\ KiB.  The resulting file can be "
5042
"extreme>)  as a base and sets the dictionary to only 64\\ KiB.  The "
4797
"decompressed with XZ Embedded (that's why there is B<--check=crc32>)  using "
5043
"resulting file can be decompressed with XZ Embedded (that's why there is B<--"
4798
"about 100\\ KiB of memory."
5044
"check=crc32>)  using about 100\\ KiB of memory."
4799
msgstr ""
5045
msgstr ""
4800
"Manchmal spielt die Kompressionszeit keine Rolle, aber der Speicherbedarf "
5046
"Manchmal spielt die Kompressionszeit keine Rolle, aber der Speicherbedarf "
4801
"bei der Dekompression muss gering gehalten werden, zum Beispiel um die Datei "
5047
"bei der Dekompression muss gering gehalten werden, zum Beispiel um die Datei "
Lines 4806-4826 Link Here
4806
"dekomprimiert werden."
5052
"dekomprimiert werden."
4807
5053
4808
#. type: Plain text
5054
#. type: Plain text
4809
#: ../src/xz/xz.1:2706
5055
#: ../src/xz/xz.1:2921
4810
#, no-wrap
5056
#, no-wrap
4811
msgid "CW<xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo>\n"
5057
msgid "CW<xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo>\n"
4812
msgstr "CW<xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo>\n"
5058
msgstr "CW<xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo>\n"
4813
5059
4814
#. type: Plain text
5060
#. type: Plain text
4815
#: ../src/xz/xz.1:2729
5061
#: ../src/xz/xz.1:2944
4816
msgid ""
5062
msgid ""
4817
"If you want to squeeze out as many bytes as possible, adjusting the number "
5063
"If you want to squeeze out as many bytes as possible, adjusting the number "
4818
"of literal context bits (I<lc>)  and number of position bits (I<pb>)  can "
5064
"of literal context bits (I<lc>)  and number of position bits (I<pb>)  can "
4819
"sometimes help.  Adjusting the number of literal position bits (I<lp>)  "
5065
"sometimes help.  Adjusting the number of literal position bits (I<lp>)  "
4820
"might help too, but usually I<lc> and I<pb> are more important.  E.g. a "
5066
"might help too, but usually I<lc> and I<pb> are more important.  For "
4821
"source code archive contains mostly US-ASCII text, so something like the "
5067
"example, a source code archive contains mostly US-ASCII text, so something "
4822
"following might give slightly (like 0.1\\ %) smaller file than B<xz -6e> "
5068
"like the following might give slightly (like 0.1\\ %) smaller file than B<xz "
4823
"(try also without B<lc=4>):"
5069
"-6e> (try also without B<lc=4>):"
4824
msgstr ""
5070
msgstr ""
4825
"Wenn Sie so viele Byte wie möglich herausquetschen wollen, kann die "
5071
"Wenn Sie so viele Byte wie möglich herausquetschen wollen, kann die "
4826
"Anpassung der Anzahl der literalen Kontextbits (I<lc>) und der Anzahl der "
5072
"Anpassung der Anzahl der literalen Kontextbits (I<lc>) und der Anzahl der "
Lines 4832-4848 Link Here
4832
"es auch B<lc=4>):"
5078
"es auch B<lc=4>):"
4833
5079
4834
#. type: Plain text
5080
#. type: Plain text
4835
#: ../src/xz/xz.1:2734
5081
#: ../src/xz/xz.1:2949
4836
#, no-wrap
5082
#, no-wrap
4837
msgid "CW<xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar>\n"
5083
msgid "CW<xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar>\n"
4838
msgstr "CW<xz --lzma2=preset=6e,pb=0,lc=4 Quellcode.tar>\n"
5084
msgstr "CW<xz --lzma2=preset=6e,pb=0,lc=4 Quellcode.tar>\n"
4839
5085
4840
#. type: Plain text
5086
#. type: Plain text
4841
#: ../src/xz/xz.1:2742
5087
#: ../src/xz/xz.1:2957
4842
msgid ""
5088
msgid ""
4843
"Using another filter together with LZMA2 can improve compression with "
5089
"Using another filter together with LZMA2 can improve compression with "
4844
"certain file types.  E.g. to compress a x86-32 or x86-64 shared library "
5090
"certain file types.  For example, to compress a x86-32 or x86-64 shared "
4845
"using the x86 BCJ filter:"
5091
"library using the x86 BCJ filter:"
4846
msgstr ""
5092
msgstr ""
4847
"Die Verwendung eines anderen Filters mit LZMA2 kann die Kompression bei "
5093
"Die Verwendung eines anderen Filters mit LZMA2 kann die Kompression bei "
4848
"verschiedenen Dateitypen verbessern. So könnten Sie eine gemeinsam genutzte "
5094
"verschiedenen Dateitypen verbessern. So könnten Sie eine gemeinsam genutzte "
Lines 4850-4862 Link Here
4850
"komprimieren:"
5096
"komprimieren:"
4851
5097
4852
#. type: Plain text
5098
#. type: Plain text
4853
#: ../src/xz/xz.1:2747
5099
#: ../src/xz/xz.1:2962
4854
#, no-wrap
5100
#, no-wrap
4855
msgid "CW<xz --x86 --lzma2 libfoo.so>\n"
5101
msgid "CW<xz --x86 --lzma2 libfoo.so>\n"
4856
msgstr "CW<xz --x86 --lzma2 libfoo.so>\n"
5102
msgstr "CW<xz --x86 --lzma2 libfoo.so>\n"
4857
5103
4858
#. type: Plain text
5104
#. type: Plain text
4859
#: ../src/xz/xz.1:2761
5105
#: ../src/xz/xz.1:2976
4860
msgid ""
5106
msgid ""
4861
"Note that the order of the filter options is significant.  If B<--x86> is "
5107
"Note that the order of the filter options is significant.  If B<--x86> is "
4862
"specified after B<--lzma2>, B<xz> will give an error, because there cannot "
5108
"specified after B<--lzma2>, B<xz> will give an error, because there cannot "
Lines 4869-4875 Link Here
4869
"für x86 nicht als letzter Filter in der Filterkette gesetzt werden darf."
5115
"für x86 nicht als letzter Filter in der Filterkette gesetzt werden darf."
4870
5116
4871
#. type: Plain text
5117
#. type: Plain text
4872
#: ../src/xz/xz.1:2767
5118
#: ../src/xz/xz.1:2982
4873
msgid ""
5119
msgid ""
4874
"The Delta filter together with LZMA2 can give good results with bitmap "
5120
"The Delta filter together with LZMA2 can give good results with bitmap "
4875
"images.  It should usually beat PNG, which has a few more advanced filters "
5121
"images.  It should usually beat PNG, which has a few more advanced filters "
Lines 4881-4893 Link Here
4881
"eigentliche Kompression »Deflate« verwendet."
5127
"eigentliche Kompression »Deflate« verwendet."
4882
5128
4883
#. type: Plain text
5129
#. type: Plain text
4884
#: ../src/xz/xz.1:2777
5130
#: ../src/xz/xz.1:2992
4885
msgid ""
5131
msgid ""
4886
"The image has to be saved in uncompressed format, e.g. as uncompressed "
5132
"The image has to be saved in uncompressed format, for example, as "
4887
"TIFF.  The distance parameter of the Delta filter is set to match the number "
5133
"uncompressed TIFF.  The distance parameter of the Delta filter is set to "
4888
"of bytes per pixel in the image.  E.g. 24-bit RGB bitmap needs B<dist=3>, "
5134
"match the number of bytes per pixel in the image.  For example, 24-bit RGB "
4889
"and it is also good to pass B<pb=0> to LZMA2 to accommodate the three-byte "
5135
"bitmap needs B<dist=3>, and it is also good to pass B<pb=0> to LZMA2 to "
4890
"alignment:"
5136
"accommodate the three-byte alignment:"
4891
msgstr ""
5137
msgstr ""
4892
"Das Bild muss in einem unkomprimierten Format gespeichert werden, zum "
5138
"Das Bild muss in einem unkomprimierten Format gespeichert werden, zum "
4893
"Beispiel als unkomprimiertes TIFF. Der Abstandsparameter des Delta-Filters "
5139
"Beispiel als unkomprimiertes TIFF. Der Abstandsparameter des Delta-Filters "
Lines 4897-4928 Link Here
4897
"berücksichtigen:"
5143
"berücksichtigen:"
4898
5144
4899
#. type: Plain text
5145
#. type: Plain text
4900
#: ../src/xz/xz.1:2782
5146
#: ../src/xz/xz.1:2997
4901
#, no-wrap
5147
#, no-wrap
4902
msgid "CW<xz --delta=dist=3 --lzma2=pb=0 foo.tiff>\n"
5148
msgid "CW<xz --delta=dist=3 --lzma2=pb=0 foo.tiff>\n"
4903
msgstr "CW<xz --delta=dist=3 --lzma2=pb=0 foo.tiff>\n"
5149
msgstr "CW<xz --delta=dist=3 --lzma2=pb=0 foo.tiff>\n"
4904
5150
4905
#. type: Plain text
5151
#. type: Plain text
4906
#: ../src/xz/xz.1:2790
5152
#: ../src/xz/xz.1:3005
4907
msgid ""
5153
msgid ""
4908
"If multiple images have been put into a single archive (e.g.\\& B<.tar>), "
5154
"If multiple images have been put into a single archive (for example, B<."
4909
"the Delta filter will work on that too as long as all images have the same "
5155
"tar>), the Delta filter will work on that too as long as all images have the "
4910
"number of bytes per pixel."
5156
"same number of bytes per pixel."
4911
msgstr ""
5157
msgstr ""
4912
"Wenn sich mehrere Bilder in einem einzelnen Archiv befinden (zum Beispiel\\& "
5158
"Wenn sich mehrere Bilder in einem einzelnen Archiv befinden (zum Beispiel\\& "
4913
"B<.tar>), funktioniert der Delta-Filter damit auch, sofern alle Bilder im "
5159
"B<.tar>), funktioniert der Delta-Filter damit auch, sofern alle Bilder im "
4914
"Archiv die gleiche Anzahl Bytes pro Pixel haben."
5160
"Archiv die gleiche Anzahl Bytes pro Pixel haben."
4915
5161
4916
#. type: SH
5162
#. type: SH
4917
#: ../src/xz/xz.1:2791 ../src/xzdec/xzdec.1:143 ../src/lzmainfo/lzmainfo.1:59
5163
#: ../src/xz/xz.1:3006 ../src/xzdec/xzdec.1:143 ../src/lzmainfo/lzmainfo.1:59
4918
#: ../src/scripts/xzdiff.1:64 ../src/scripts/xzgrep.1:92
5164
#: ../src/scripts/xzdiff.1:65 ../src/scripts/xzgrep.1:106
4919
#: ../src/scripts/xzless.1:65 ../src/scripts/xzmore.1:51
5165
#: ../src/scripts/xzless.1:65 ../src/scripts/xzmore.1:51
4920
#, no-wrap
5166
#, no-wrap
4921
msgid "SEE ALSO"
5167
msgid "SEE ALSO"
4922
msgstr "SIEHE AUCH"
5168
msgstr "SIEHE AUCH"
4923
5169
4924
#. type: Plain text
5170
#. type: Plain text
4925
#: ../src/xz/xz.1:2800
5171
#: ../src/xz/xz.1:3015
4926
msgid ""
5172
msgid ""
4927
"B<xzdec>(1), B<xzdiff>(1), B<xzgrep>(1), B<xzless>(1), B<xzmore>(1), "
5173
"B<xzdec>(1), B<xzdiff>(1), B<xzgrep>(1), B<xzless>(1), B<xzmore>(1), "
4928
"B<gzip>(1), B<bzip2>(1), B<7z>(1)"
5174
"B<gzip>(1), B<bzip2>(1), B<7z>(1)"
Lines 4931-4948 Link Here
4931
"B<gzip>(1), B<bzip2>(1), B<7z>(1)"
5177
"B<gzip>(1), B<bzip2>(1), B<7z>(1)"
4932
5178
4933
#. type: Plain text
5179
#. type: Plain text
4934
#: ../src/xz/xz.1:2802
5180
#: ../src/xz/xz.1:3017
4935
msgid "XZ Utils: E<lt>https://tukaani.org/xz/E<gt>"
5181
msgid "XZ Utils: E<lt>https://tukaani.org/xz/E<gt>"
4936
msgstr "XZ Utils: E<lt>https://tukaani.org/xz/E<gt>"
5182
msgstr "XZ Utils: E<lt>https://tukaani.org/xz/E<gt>"
4937
5183
4938
#. type: Plain text
5184
#. type: Plain text
4939
#: ../src/xz/xz.1:2804 ../src/xzdec/xzdec.1:146
5185
#: ../src/xz/xz.1:3019 ../src/xzdec/xzdec.1:146
4940
msgid "XZ Embedded: E<lt>https://tukaani.org/xz/embedded.htmlE<gt>"
5186
msgid "XZ Embedded: E<lt>https://tukaani.org/xz/embedded.htmlE<gt>"
4941
msgstr "XZ Embedded: E<lt>https://tukaani.org/xz/embedded.htmlE<gt>"
5187
msgstr "XZ Embedded: E<lt>https://tukaani.org/xz/embedded.htmlE<gt>"
4942
5188
4943
#. type: Plain text
5189
#. type: Plain text
4944
#: ../src/xz/xz.1:2805
5190
#: ../src/xz/xz.1:3020
4945
msgid "LZMA SDK: E<lt>http://7-zip.org/sdk.htmlE<gt>"
5191
#, fuzzy
5192
#| msgid "LZMA SDK: E<lt>http://7-zip.org/sdk.htmlE<gt>"
5193
msgid "LZMA SDK: E<lt>https://7-zip.org/sdk.htmlE<gt>"
4946
msgstr "LZMA-SDK: E<lt>http://7-zip.org/sdk.htmlE<gt>"
5194
msgstr "LZMA-SDK: E<lt>http://7-zip.org/sdk.htmlE<gt>"
4947
5195
4948
#. type: TH
5196
#. type: TH
Lines 5170-5176 Link Here
5170
"zu den LZMA-Dienstprogrammen enthalten."
5418
"zu den LZMA-Dienstprogrammen enthalten."
5171
5419
5172
#. type: SH
5420
#. type: SH
5173
#: ../src/lzmainfo/lzmainfo.1:51 ../src/scripts/xzdiff.1:72
5421
#: ../src/lzmainfo/lzmainfo.1:51 ../src/scripts/xzdiff.1:74
5174
#, no-wrap
5422
#, no-wrap
5175
msgid "BUGS"
5423
msgid "BUGS"
5176
msgstr "FEHLER"
5424
msgstr "FEHLER"
Lines 5192-5201 Link Here
5192
msgstr "XZDIFF"
5440
msgstr "XZDIFF"
5193
5441
5194
#. type: TH
5442
#. type: TH
5195
#: ../src/scripts/xzdiff.1:9 ../src/scripts/xzgrep.1:9
5443
#: ../src/scripts/xzdiff.1:9
5196
#, no-wrap
5444
#, no-wrap
5197
msgid "2011-03-19"
5445
msgid "2021-06-04"
5198
msgstr "19. März 2011"
5446
msgstr "4. Juni 2021"
5199
5447
5200
#. type: Plain text
5448
#. type: Plain text
5201
#: ../src/scripts/xzdiff.1:12
5449
#: ../src/scripts/xzdiff.1:12
Lines 5223-5252 Link Here
5223
msgstr "B<lzdiff> [I<diff-Optionen>] I<Datei1> [I<Datei2>]"
5471
msgstr "B<lzdiff> [I<diff-Optionen>] I<Datei1> [I<Datei2>]"
5224
5472
5225
#. type: Plain text
5473
#. type: Plain text
5226
#: ../src/scripts/xzdiff.1:58
5474
#: ../src/scripts/xzdiff.1:59
5227
msgid ""
5475
msgid ""
5228
"B<xzcmp> and B<xzdiff> invoke B<cmp>(1)  or B<diff>(1)  on files compressed "
5476
"B<xzcmp> and B<xzdiff> invoke B<cmp>(1)  or B<diff>(1)  on files compressed "
5229
"with B<xz>(1), B<lzma>(1), B<gzip>(1), B<bzip2>(1), or B<lzop>(1).  All "
5477
"with B<xz>(1), B<lzma>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), or "
5230
"options specified are passed directly to B<cmp>(1)  or B<diff>(1).  If only "
5478
"B<zstd>(1).  All options specified are passed directly to B<cmp>(1)  or "
5231
"one file is specified, then the files compared are I<file1> (which must have "
5479
"B<diff>(1).  If only one file is specified, then the files compared are "
5232
"a suffix of a supported compression format) and I<file1> from which the "
5480
"I<file1> (which must have a suffix of a supported compression format) and "
5233
"compression format suffix has been stripped.  If two files are specified, "
5481
"I<file1> from which the compression format suffix has been stripped.  If two "
5234
"then they are uncompressed if necessary and fed to B<cmp>(1)  or "
5482
"files are specified, then they are uncompressed if necessary and fed to "
5235
"B<diff>(1).  The exit status from B<cmp>(1)  or B<diff>(1)  is preserved."
5483
"B<cmp>(1)  or B<diff>(1).  The exit status from B<cmp>(1)  or B<diff>(1)  is "
5484
"preserved unless a decompression error occurs; then exit status is 2."
5236
msgstr ""
5485
msgstr ""
5237
"Die Dienstprogramme B<xzcmp> und B<xzdiff> führen die Programme B<cmp>(1) "
5486
"Die Dienstprogramme B<xzcmp> und B<xzdiff> führen die Programme B<cmp>(1) "
5238
"beziehungsweise B<diff>(1) mit Dateien aus, die mittels B<xz>(1), "
5487
"beziehungsweise B<diff>(1) mit Dateien aus, die mittels B<xz>(1), "
5239
"B<lzma>(1), B<gzip>(1), B<bzip2>(1) oder B<lzop>(1) komprimiert wurden. Alle "
5488
"B<lzma>(1), B<gzip>(1), B<bzip2>(1),  B<lzop>(1) oder B<zstd> komprimiert "
5240
"angegebenen Optionen werden direkt an B<cmp>(1) oder B<diff>(1) übergeben. "
5489
"wurden. Alle angegebenen Optionen werden direkt an B<cmp>(1) oder B<diff>(1) "
5241
"Wird nur eine Datei angegeben, wird diese I<Datei1> (die eine Endung "
5490
"übergeben. Wird nur eine Datei angegeben, wird diese I<Datei1> (die eine "
5242
"entsprechend eines der unterstützten Kompressionsformate haben muss) mit der "
5491
"Endung entsprechend eines der unterstützten Kompressionsformate haben muss) "
5243
"I<Datei1> verglichen, von der die Kompressionsformat-Endung entfernt wird. "
5492
"mit der I<Datei1> verglichen, von der die Kompressionsformat-Endung entfernt "
5244
"Werden zwei Dateien angegeben, dann werden deren Inhalte (falls nötig, "
5493
"wird. Werden zwei Dateien angegeben, dann werden deren Inhalte (falls nötig, "
5245
"unkomprimiert) an B<cmp>(1) oder B<diff>(1) weitergeleitet. Der Exit-Status "
5494
"unkomprimiert) an B<cmp>(1) oder B<diff>(1) weitergeleitet. Der Exit-Status "
5246
"von B<cmp>(1) oder B<diff>(1) wird dabei bewahrt."
5495
"von B<cmp>(1) oder B<diff>(1) wird dabei bewahrt (sofern kein "
5496
"Dekompressionsfehler auftrat; in diesem Fall ist der Exit-Status 2)."
5247
5497
5248
#. type: Plain text
5498
#. type: Plain text
5249
#: ../src/scripts/xzdiff.1:64
5499
#: ../src/scripts/xzdiff.1:65
5250
msgid ""
5500
msgid ""
5251
"The names B<lzcmp> and B<lzdiff> are provided for backward compatibility "
5501
"The names B<lzcmp> and B<lzdiff> are provided for backward compatibility "
5252
"with LZMA Utils."
5502
"with LZMA Utils."
Lines 5255-5270 Link Here
5255
"LZMA-Dienstprogrammen."
5505
"LZMA-Dienstprogrammen."
5256
5506
5257
#. type: Plain text
5507
#. type: Plain text
5258
#: ../src/scripts/xzdiff.1:72
5508
#: ../src/scripts/xzdiff.1:74
5259
msgid ""
5509
msgid ""
5260
"B<cmp>(1), B<diff>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), "
5510
"B<cmp>(1), B<diff>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), "
5261
"B<zdiff>(1)"
5511
"B<zstd>(1), B<zdiff>(1)"
5262
msgstr ""
5512
msgstr ""
5263
"B<cmp>(1), B<diff>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), "
5513
"B<cmp>(1), B<diff>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), "
5264
"B<zdiff>(1)"
5514
"B<zstd>(1), B<zdiff>(1)"
5265
5515
5266
#. type: Plain text
5516
#. type: Plain text
5267
#: ../src/scripts/xzdiff.1:77
5517
#: ../src/scripts/xzdiff.1:79
5268
msgid ""
5518
msgid ""
5269
"Messages from the B<cmp>(1)  or B<diff>(1)  programs refer to temporary "
5519
"Messages from the B<cmp>(1)  or B<diff>(1)  programs refer to temporary "
5270
"filenames instead of those specified."
5520
"filenames instead of those specified."
Lines 5278-5283 Link Here
5278
msgid "XZGREP"
5528
msgid "XZGREP"
5279
msgstr "XZGREP"
5529
msgstr "XZGREP"
5280
5530
5531
#. type: TH
5532
#: ../src/scripts/xzgrep.1:9
5533
#, no-wrap
5534
msgid "2022-07-19"
5535
msgstr "19. Juli 2022"
5536
5281
#. type: Plain text
5537
#. type: Plain text
5282
#: ../src/scripts/xzgrep.1:12
5538
#: ../src/scripts/xzgrep.1:12
5283
msgid "xzgrep - search compressed files for a regular expression"
5539
msgid "xzgrep - search compressed files for a regular expression"
Lines 5286-5375 Link Here
5286
5542
5287
#. type: Plain text
5543
#. type: Plain text
5288
#: ../src/scripts/xzgrep.1:18
5544
#: ../src/scripts/xzgrep.1:18
5289
msgid "B<xzgrep> [I<grep_options>] [B<-e>] I<pattern> I<file>..."
5545
msgid "B<xzgrep> [I<grep_options>] [B<-e>] I<pattern> [I<file...>]"
5290
msgstr "B<xzgrep> [I<grep-Optionen>] [B<-e>] I<Muster> I<Dateiname> …"
5546
msgstr "B<xzgrep> [I<grep_Optionen>] [B<-e>] I<Muster> [I<Datei …>]"
5291
5547
5292
#. type: Plain text
5548
#. type: Plain text
5293
#: ../src/scripts/xzgrep.1:21
5549
#: ../src/scripts/xzgrep.1:21
5294
msgid "B<xzegrep> ..."
5550
msgid "B<xzegrep> \\&..."
5295
msgstr "B<xzegrep> …"
5551
msgstr "B<xzegrep> …"
5296
5552
5297
#. type: Plain text
5553
#. type: Plain text
5298
#: ../src/scripts/xzgrep.1:24
5554
#: ../src/scripts/xzgrep.1:24
5299
msgid "B<xzfgrep> ..."
5555
msgid "B<xzfgrep> \\&..."
5300
msgstr "B<xzfgrep> …"
5556
msgstr "B<xzfgrep> …"
5301
5557
5302
#. type: Plain text
5558
#. type: Plain text
5303
#: ../src/scripts/xzgrep.1:27
5559
#: ../src/scripts/xzgrep.1:27
5304
msgid "B<lzgrep> ..."
5560
msgid "B<lzgrep> \\&..."
5305
msgstr "B<lzgrep> …"
5561
msgstr "B<lzgrep> …"
5306
5562
5307
#. type: Plain text
5563
#. type: Plain text
5308
#: ../src/scripts/xzgrep.1:30
5564
#: ../src/scripts/xzgrep.1:30
5309
msgid "B<lzegrep> ..."
5565
msgid "B<lzegrep> \\&..."
5310
msgstr "B<lzegrep> …"
5566
msgstr "B<lzegrep> …"
5311
5567
5312
#. type: Plain text
5568
#. type: Plain text
5313
#: ../src/scripts/xzgrep.1:33
5569
#: ../src/scripts/xzgrep.1:33
5314
msgid "B<lzfgrep> ..."
5570
msgid "B<lzfgrep> \\&..."
5315
msgstr "B<lzfgrep> …"
5571
msgstr "B<lzfgrep> …"
5316
5572
5317
#. type: Plain text
5573
#. type: Plain text
5318
#: ../src/scripts/xzgrep.1:48
5574
#: ../src/scripts/xzgrep.1:49
5319
msgid ""
5575
msgid ""
5320
"B<xzgrep> invokes B<grep>(1)  on I<files> which may be either uncompressed "
5576
"B<xzgrep> invokes B<grep>(1)  on I<files> which may be either uncompressed "
5321
"or compressed with B<xz>(1), B<lzma>(1), B<gzip>(1), B<bzip2>(1), or "
5577
"or compressed with B<xz>(1), B<lzma>(1), B<gzip>(1), B<bzip2>(1), "
5322
"B<lzop>(1).  All options specified are passed directly to B<grep>(1)."
5578
"B<lzop>(1), or B<zstd>(1).  All options specified are passed directly to "
5579
"B<grep>(1)."
5323
msgstr ""
5580
msgstr ""
5324
"B<xzgrep> wendet B<grep>(1) auf I<Dateien> an, die entweder unkomprimiert "
5581
"B<xzgrep> wendet B<grep>(1) auf I<Dateien> an, die entweder unkomprimiert "
5325
"oder mit B<xz>(1), B<lzma>(1), B<gzip>(1), B<bzip2>(1) oder B<lzop>(1) "
5582
"oder mit B<xz>(1), B<lzma>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1) oder "
5326
"komprimiert sein können. Alle angegebenen Optionen werden direkt an "
5583
"B<zstd> komprimiert sein können. Alle angegebenen Optionen werden direkt an "
5327
"B<grep>(1) übergeben."
5584
"B<grep>(1) übergeben."
5328
5585
5329
#. type: Plain text
5586
#. type: Plain text
5330
#: ../src/scripts/xzgrep.1:60
5587
#: ../src/scripts/xzgrep.1:62
5331
msgid ""
5588
msgid ""
5332
"If no I<file> is specified, then standard input is decompressed if necessary "
5589
"If no I<file> is specified, then standard input is decompressed if necessary "
5333
"and fed to B<grep>(1).  When reading from standard input, B<gzip>(1), "
5590
"and fed to B<grep>(1).  When reading from standard input, B<gzip>(1), "
5334
"B<bzip2>(1), and B<lzop>(1)  compressed files are not supported."
5591
"B<bzip2>(1), B<lzop>(1), and B<zstd>(1)  compressed files are not supported."
5335
msgstr ""
5592
msgstr ""
5336
"Wenn keine I<Datei> angegeben ist, wird die Standardeingabe dekomprimiert "
5593
"Wenn keine I<Datei> angegeben ist, wird die Standardeingabe dekomprimiert "
5337
"(falls nötig) und an B<grep> übergeben. Beim Lesen aus der Standardeingabe "
5594
"(falls nötig) und an B<grep> übergeben. Beim Lesen aus der Standardeingabe "
5338
"keine Dateien unterstützt, die mit B<gzip>(1), B<bzip2>(1) oder B<lzop>(1) "
5595
"keine Dateien unterstützt, die mit B<gzip>(1), B<bzip2>(1), B<lzop>(1) oder "
5339
"komprimiert sind."
5596
"B<zstd> komprimiert sind."
5340
5597
5341
#. type: Plain text
5598
#. type: Plain text
5342
#: ../src/scripts/xzgrep.1:79
5599
#: ../src/scripts/xzgrep.1:81
5343
msgid ""
5600
msgid ""
5344
"If B<xzgrep> is invoked as B<xzegrep> or B<xzfgrep> then B<egrep>(1)  or "
5601
"If B<xzgrep> is invoked as B<xzegrep> or B<xzfgrep> then B<grep -E> or "
5345
"B<fgrep>(1)  is used instead of B<grep>(1).  The same applies to names "
5602
"B<grep -F> is used instead of B<grep>(1).  The same applies to names "
5346
"B<lzgrep>, B<lzegrep>, and B<lzfgrep>, which are provided for backward "
5603
"B<lzgrep>, B<lzegrep>, and B<lzfgrep>, which are provided for backward "
5347
"compatibility with LZMA Utils."
5604
"compatibility with LZMA Utils."
5348
msgstr ""
5605
msgstr ""
5349
"Wenn B<xzgrep> als B<xzegrep> oder B<xzfgrep> aufgerufen wird, dann wird "
5606
"Wenn B<xzgrep> als B<xzegrep> oder B<xzfgrep> aufgerufen wird, dann wird "
5350
"B<egrep>(1) oder B<fgrep>(1) anstelle von B<grep>(1) verwendet. Genauso "
5607
"B<grep -E> oder B<grep -F> anstelle von B<grep>(1) verwendet. Genauso "
5351
"verhalten sich die Befehle B<lzgrep>, B<lzegrep> und B<lzfgrep>, die die "
5608
"verhalten sich die Befehle B<lzgrep>, B<lzegrep> und B<lzfgrep>, die die "
5352
"Abwärtskompatibilität zu den LZMA-Dienstprogrammen gewährleisten."
5609
"Abwärtskompatibilität zu den LZMA-Dienstprogrammen gewährleisten."
5353
5610
5611
#. type: Plain text
5612
#: ../src/scripts/xzgrep.1:86
5613
msgid ""
5614
"At least one match was found from at least one of the input files.  No "
5615
"errors occurred."
5616
msgstr ""
5617
"In mindestens einer der Eingabedateien wurde mindestens ein Treffer "
5618
"gefunden. Es sind keine Fehler aufgetreten."
5619
5620
#. type: Plain text
5621
#: ../src/scripts/xzgrep.1:90
5622
msgid "No matches were found from any of the input files.  No errors occurred."
5623
msgstr ""
5624
"In keiner der Eingabedateien wurde ein Treffer gefunden. Es sind keine "
5625
"Fehler aufgetreten."
5626
5354
#. type: TP
5627
#. type: TP
5355
#: ../src/scripts/xzgrep.1:81
5628
#: ../src/scripts/xzgrep.1:90
5356
#, no-wrap
5629
#, no-wrap
5630
msgid "E<gt>1"
5631
msgstr "E<gt>1"
5632
5633
#. type: Plain text
5634
#: ../src/scripts/xzgrep.1:94
5635
msgid "One or more errors occurred.  It is unknown if matches were found."
5636
msgstr ""
5637
"Ein oder mehrere Fehler sind aufgetreten. Es ist unbekannt, ob Treffer "
5638
"gefunden wurden."
5639
5640
#. type: TP
5641
#: ../src/scripts/xzgrep.1:95
5642
#, no-wrap
5357
msgid "B<GREP>"
5643
msgid "B<GREP>"
5358
msgstr "B<GREP>"
5644
msgstr "B<GREP>"
5359
5645
5360
#. type: Plain text
5646
#. type: Plain text
5361
#: ../src/scripts/xzgrep.1:92
5647
#: ../src/scripts/xzgrep.1:106
5362
msgid ""
5648
msgid ""
5363
"If the B<GREP> environment variable is set, B<xzgrep> uses it instead of "
5649
"If the B<GREP> environment variable is set, B<xzgrep> uses it instead of "
5364
"B<grep>(1), B<egrep>(1), or B<fgrep>(1)."
5650
"B<grep>(1), B<grep -E>, or B<grep -F>."
5365
msgstr ""
5651
msgstr ""
5366
"Wenn die Umgebungsvariable B<GREP> gesetzt ist, verwendet B<xzgrep> deren "
5652
"Wenn die Umgebungsvariable B<GREP> gesetzt ist, verwendet B<xzgrep> deren "
5367
"Inhalt anstelle von B<grep>(1), B<egrep>(1) oder B<fgrep>(1)."
5653
"Inhalt anstelle von B<grep>(1), B<grep -E> oder B<grep -F>."
5368
5654
5369
#. type: Plain text
5655
#. type: Plain text
5370
#: ../src/scripts/xzgrep.1:98
5656
#: ../src/scripts/xzgrep.1:113
5371
msgid "B<grep>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zgrep>(1)"
5657
msgid ""
5372
msgstr "B<grep>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zgrep>(1)"
5658
"B<grep>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zstd>(1), "
5659
"B<zgrep>(1)"
5660
msgstr ""
5661
"B<grep>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zstd>(1), "
5662
"B<zgrep>(1)"
5373
5663
5374
#. type: TH
5664
#. type: TH
5375
#: ../src/scripts/xzless.1:10
5665
#: ../src/scripts/xzless.1:10
Lines 5557-5559 Link Here
5557
#: ../src/scripts/xzmore.1:55
5847
#: ../src/scripts/xzmore.1:55
5558
msgid "B<more>(1), B<xz>(1), B<xzless>(1), B<zmore>(1)"
5848
msgid "B<more>(1), B<xz>(1), B<xzless>(1), B<zmore>(1)"
5559
msgstr "B<more>(1), B<xz>(1), B<xzless>(1), B<zmore>(1)"
5849
msgstr "B<more>(1), B<xz>(1), B<xzless>(1), B<zmore>(1)"
5850
5851
#~ msgid "2020-02-01"
5852
#~ msgstr "1. Februar 2020"
5853
5854
#~ msgid ""
5855
#~ "Display an error and exit if the compression settings exceed the memory "
5856
#~ "usage limit.  The default is to adjust the settings downwards so that the "
5857
#~ "memory usage limit is not exceeded.  Automatic adjusting is always "
5858
#~ "disabled when creating raw streams (B<--format=raw>)."
5859
#~ msgstr ""
5860
#~ "zeigt einen Fehler an und bricht die Ausführung ab, falls die "
5861
#~ "Kompressionseinstellungen die Begrenzung der Speichernutzung "
5862
#~ "überschreiten. Standardmäßig werden die Einstellungen nach unten "
5863
#~ "korrigiert, so dass diese Grenze nicht überschritten wird. Bei der "
5864
#~ "Erzeugung von Rohdatenströmen (B<--format=raw>) ist die automatische "
5865
#~ "Korrektur stets deaktiviert."
5866
5867
#~ msgid ""
5868
#~ "It is fine to apply a BCJ filter on a whole executable; there's no need "
5869
#~ "to apply it only on the executable section.  Applying a BCJ filter on an "
5870
#~ "archive that contains both executable and non-executable files may or may "
5871
#~ "not give good results, so it generally isn't good to blindly apply a BCJ "
5872
#~ "filter when compressing binary packages for distribution."
5873
#~ msgstr ""
5874
#~ "Es ist in Ordnung, einen BCJ-Filter auf eine gesamte Binärdatei "
5875
#~ "anzuwenden; es ist nicht nötig, dies nur auf den binären Bereich zu "
5876
#~ "beschränken. Die Anwendung eines BCJ-Filters auf ein Archiv, das sowohl "
5877
#~ "binäre als auch nicht-binäre Dateien enthält, kann gute Ergebnisse "
5878
#~ "liefern, muss es aber nicht. Daher ist es generell nicht gut, einen BCJ-"
5879
#~ "Filter blindlings anzuwenden, wenn Sie Binärpakete zwecks Weitergabe "
5880
#~ "komprimieren wollen."
5881
5882
#~ msgid ""
5883
#~ "These BCJ filters are very fast and use insignificant amount of memory.  "
5884
#~ "If a BCJ filter improves compression ratio of a file, it can improve "
5885
#~ "decompression speed at the same time.  This is because, on the same "
5886
#~ "hardware, the decompression speed of LZMA2 is roughly a fixed number of "
5887
#~ "bytes of compressed data per second."
5888
#~ msgstr ""
5889
#~ "Diese BCJ-Filter sind sehr schnell und erhöhen den Speicherbedarf nur "
5890
#~ "unerheblich. Wenn ein BCJ-Filter das Kompressionsverhältnis einer Datei "
5891
#~ "verbessert, kann er auch gleichzeitig die Dekompressionsgeschwindigkeit "
5892
#~ "verbessern. Das kommt daher, dass auf der gleichen Hardware die "
5893
#~ "Dekompressionsgeschwindigkeit von LZMA2 ungefähr eine feste Anzahl Byte "
5894
#~ "an komprimierten Daten pro Sekunde ist."
5895
5896
#~ msgid ""
5897
#~ "Applying a BCJ filter on an archive containing multiple similar "
5898
#~ "executables can make the compression ratio worse than not using a BCJ "
5899
#~ "filter.  This is because the BCJ filter doesn't detect the boundaries of "
5900
#~ "the executable files, and doesn't reset the address conversion counter "
5901
#~ "for each executable."
5902
#~ msgstr ""
5903
#~ "Bei der Anwendung eines BCJ-Filters auf ein Archiv, das mehrere ähnliche "
5904
#~ "Binärdateien enthält, kann das Kompressionsverhältnis schlechter sein als "
5905
#~ "ohne BCJ-Filter. Das kommt daher, weil der BCJ-Filter die Grenzen der "
5906
#~ "Binärdateien nicht erkennt und den Zähler der Adressumwandlung für jede "
5907
#~ "Binärdatei nicht zurücksetzt."
5908
5909
#~ msgid ""
5910
#~ "Both of the above problems will be fixed in the future in a new filter.  "
5911
#~ "The old BCJ filters will still be useful in embedded systems, because the "
5912
#~ "decoder of the new filter will be bigger and use more memory."
5913
#~ msgstr ""
5914
#~ "Beide der oben genannten Probleme werden in der Zukunft in einem neuen "
5915
#~ "Filter nicht mehr auftreten. Die alten BCJ-Filter werden noch in "
5916
#~ "eingebetteten Systemen von Nutzen sein, weil der Dekoder des neuen "
5917
#~ "Filters größer sein und mehr Speicher beanspruchen wird."
5918
5919
# FIXME have have
5920
#~ msgid "Different instruction sets have different alignment:"
5921
#~ msgstr "Verschiedene Befehlssätze haben unterschiedliche Ausrichtungen:"
5922
5923
#~ msgid "Little endian only"
5924
#~ msgstr "Nur Little Endian"
5925
5926
#~ msgid "Big or little endian"
5927
#~ msgstr "Big oder Little Endian"
(-)xz-5.2.5/po4a/man/de/xz.1 (-136 / +226 lines)
Lines 10-16 Link Here
10
.\" This file was generated with po4a. Translate the source file.
10
.\" This file was generated with po4a. Translate the source file.
11
.\"
11
.\"
12
.\"*******************************************************************
12
.\"*******************************************************************
13
.TH XZ 1 "1. Februar 2020" Tukaani XZ\-Dienstprogramme
13
.TH XZ 1 "1. Dezember 2022" Tukaani XZ\-Dienstprogramme
14
.
14
.
15
.SH BEZEICHNUNG
15
.SH BEZEICHNUNG
16
xz, unxz, xzcat, lzma, unlzma, lzcat \- .xz\- und .lzma\-Dateien komprimieren
16
xz, unxz, xzcat, lzma, unlzma, lzcat \- .xz\- und .lzma\-Dateien komprimieren
Lines 39-45 Link Here
39
Befehlszeilensyntax denen von \fBgzip\fP(1) und \fBbzip2\fP(1) ähnelt. Das native
39
Befehlszeilensyntax denen von \fBgzip\fP(1) und \fBbzip2\fP(1) ähnelt. Das native
40
Dateiformat ist das \fB.xz\fP\-Format, aber das veraltete, von den
40
Dateiformat ist das \fB.xz\fP\-Format, aber das veraltete, von den
41
LZMA\-Dienstprogrammen verwendete Format sowie komprimierte Rohdatenströme
41
LZMA\-Dienstprogrammen verwendete Format sowie komprimierte Rohdatenströme
42
ohne Containerformat\-Header werden ebenfalls unterstützt.
42
ohne Containerformat\-Header werden ebenfalls unterstützt. Außerdem wird die
43
Dekompression des von \fBlzip\fP verwendeten \fB.lz\fP\-Formats unterstützt.
43
.PP
44
.PP
44
\fBxz\fP komprimiert oder dekomprimierte jede \fIDatei\fP entsprechend des
45
\fBxz\fP komprimiert oder dekomprimierte jede \fIDatei\fP entsprechend des
45
gewählten Vorgangsmodus. Falls entweder \fB\-\fP oder keine Datei angegeben ist,
46
gewählten Vorgangsmodus. Falls entweder \fB\-\fP oder keine Datei angegeben ist,
Lines 58-66 Link Here
58
\&\fB.lzma\fP) an den Namen der Quelldatei angehängt und so der Name der
59
\&\fB.lzma\fP) an den Namen der Quelldatei angehängt und so der Name der
59
Zieldatei gebildet.
60
Zieldatei gebildet.
60
.IP \(bu 3
61
.IP \(bu 3
61
Bei der Dekompression wird das Suffix \fB.xz\fP oder \fB.lzma\fP vom Dateinamen
62
Bei der Dekompression wird das Suffix \fB.xz\fP, \fB.lzma\fP oder \fB.lz\fP vom
62
entfernt und so der Name der Zieldatei gebildet. Außerdem erkennt \fBxz\fP die
63
Dateinamen entfernt und so der Name der Zieldatei gebildet. Außerdem erkennt
63
Suffixe \fB.txz\fP und \fB.tlz\fP und ersetzt diese durch \fB.tar\fP.
64
\fBxz\fP die Suffixe \fB.txz\fP und \fB.tlz\fP und ersetzt diese durch \fB.tar\fP.
64
.PP
65
.PP
65
Wenn die Zieldatei bereits existiert, wird eine Fehlermeldung angezeigt und
66
Wenn die Zieldatei bereits existiert, wird eine Fehlermeldung angezeigt und
66
die \fIDatei\fP übersprungen.
67
die \fIDatei\fP übersprungen.
Lines 83-89 Link Here
83
.IP \(bu 3
84
.IP \(bu 3
84
Der Aktionsmodus wird auf Dekompression gesetzt und die \fIDatei\fP hat nicht
85
Der Aktionsmodus wird auf Dekompression gesetzt und die \fIDatei\fP hat nicht
85
das Suffix eines der unterstützten Zieldateiformate (\fB.xz\fP, \fB.txz\fP,
86
das Suffix eines der unterstützten Zieldateiformate (\fB.xz\fP, \fB.txz\fP,
86
\&\fB.lzma\fP oder \fB.tlz\fP).
87
\&\fB.lzma\fP, \fB.tlz\fP oder \fB.lz\fP).
87
.PP
88
.PP
88
Nach erfolgreicher Kompression oder Dekompression der \fIDatei\fP kopiert \fBxz\fP
89
Nach erfolgreicher Kompression oder Dekompression der \fIDatei\fP kopiert \fBxz\fP
89
Eigentümer, Gruppe, Zugriffsrechte, Zugriffszeit und Änderungszeit aus der
90
Eigentümer, Gruppe, Zugriffsrechte, Zugriffszeit und Änderungszeit aus der
Lines 97-103 Link Here
97
Sobald die Zieldatei erfolgreich geschlossen wurde, wird die
98
Sobald die Zieldatei erfolgreich geschlossen wurde, wird die
98
Ursprungs\-\fIDatei\fP entfernt. Dies wird durch die Option \fB\-\-keep\fP
99
Ursprungs\-\fIDatei\fP entfernt. Dies wird durch die Option \fB\-\-keep\fP
99
verhindert. Die Ursprungs\-\fIDatei\fP wird niemals entfernt, wenn die Ausgabe
100
verhindert. Die Ursprungs\-\fIDatei\fP wird niemals entfernt, wenn die Ausgabe
100
in die Standardausgabe geschrieben wird.
101
in die Standardausgabe geschrieben wird oder falls ein Fehler auftritt.
101
.PP
102
.PP
102
Durch Senden der Signale \fBSIGINFO\fP oder \fBSIGUSR1\fP an den \fBxz\fP\-Prozess
103
Durch Senden der Signale \fBSIGINFO\fP oder \fBSIGUSR1\fP an den \fBxz\fP\-Prozess
103
werden Fortschrittsinformationen in den Fehlerkanal der Standardausgabe
104
werden Fortschrittsinformationen in den Fehlerkanal der Standardausgabe
Lines 107-113 Link Here
107
.
108
.
108
.SS Speicherbedarf
109
.SS Speicherbedarf
109
In Abhängigkeit von den gewählten Kompressionseinstellungen bewegt sich der
110
In Abhängigkeit von den gewählten Kompressionseinstellungen bewegt sich der
110
Speicherverbrauch zwischen wenigen hundert Kilobyte und mehrere
111
Speicherverbrauch zwischen wenigen hundert Kilobyte und mehreren
111
Gigabyte. Die Einstellungen bei der Kompression einer Datei bestimmen dabei
112
Gigabyte. Die Einstellungen bei der Kompression einer Datei bestimmen dabei
112
den Speicherbedarf bei der Dekompression. Die Dekompression benötigt
113
den Speicherbedarf bei der Dekompression. Die Dekompression benötigt
113
üblicherweise zwischen 5\ % und 20\ % des Speichers, der bei der Kompression
114
üblicherweise zwischen 5\ % und 20\ % des Speichers, der bei der Kompression
Lines 227-232 Link Here
227
.TP 
228
.TP 
228
\fB\-k\fP, \fB\-\-keep\fP
229
\fB\-k\fP, \fB\-\-keep\fP
229
verhindert das Löschen der Eingabedateien.
230
verhindert das Löschen der Eingabedateien.
231
.IP ""
232
Seit der \fBxz\fP\-Version 5.2.6 wird die Kompression oder Dekompression auch
233
dann ausgeführt, wenn die Eingabe ein symbolischer Link zu einer regulären
234
Datei ist, mehr als einen harten Link hat oder das »setuid«\-, »setgid«\- oder
235
»sticky«\-Bit gesetzt ist. Die genannten Bits werden nicht in die Zieldatei
236
kopiert. In früheren Versionen geschah dies nur mit \fB\-\-force\fP.
230
.TP 
237
.TP 
231
\fB\-f\fP, \fB\-\-force\fP
238
\fB\-f\fP, \fB\-\-force\fP
232
Diese Option hat verschiedene Auswirkungen:
239
Diese Option hat verschiedene Auswirkungen:
Lines 285-291 Link Here
285
angezeigt und die Datei übersprungen.
292
angezeigt und die Datei übersprungen.
286
.IP ""
293
.IP ""
287
berücksichtigt bei der Dekompression zusätzlich zu Dateien mit den Suffixen
294
berücksichtigt bei der Dekompression zusätzlich zu Dateien mit den Suffixen
288
\&\fB.xz\fP, \fB.txz\fP, \fB.lzma\fP oder \fB.tlz\fP auch jene mit dem Suffix
295
\&\fB.xz\fP, \fB.txz\fP, \fB.lzma\fP, \fB.tlz\fP oder \fB.lz\fP auch jene mit dem Suffix
289
\&\fI.suf\fP. Falls die Quelldatei das Suffix \fI.suf\fP hat, wird dieses entfernt
296
\&\fI.suf\fP. Falls die Quelldatei das Suffix \fI.suf\fP hat, wird dieses entfernt
290
und so der Name der Zieldatei abgeleitet.
297
und so der Name der Zieldatei abgeleitet.
291
.IP ""
298
.IP ""
Lines 328-333 Link Here
328
akzeptiert nur \fB.lzma\fP\-Dateien bei der Dekompression. Der alternative Name
335
akzeptiert nur \fB.lzma\fP\-Dateien bei der Dekompression. Der alternative Name
329
\fBalone\fP dient der Abwärtskompatibilität zu den LZMA\-Dienstprogrammen.
336
\fBalone\fP dient der Abwärtskompatibilität zu den LZMA\-Dienstprogrammen.
330
.TP 
337
.TP 
338
\fBlzip\fP
339
Akzeptiert nur \fB.lz\fP\-Dateien bei der Dekompression. Kompression wird nicht
340
unterstützt.
341
.IP ""
342
Das \fB.lz\fP\-Format wird in Version 0 und der unerweiterten Version 1
343
unterstützt. Dateien der Version 0 wurden \fBlzip\fP 1.3 und älter
344
erstellt. Solche Dateien sind nicht sehr weit verbreitet, können aber in
345
Dateiarchiven gefunden werden, da einige Quellpakete in diesem Format
346
veröffentlicht wurden. Es ist auch möglich, dass Benutzer alte persönliche
347
Dateien in diesem Format haben. Die Dekompressionsunterstützung für das
348
Format der Version 0 wurde mit der Version 1.18 aus \fBlzip\fP entfernt.
349
.IP ""
350
\fBlzip\fP\-Versionen ab 1.4 erstellen Dateien im Format der Version 0. Die
351
Erweiterung »Sync Flush Marker« zur Formatversion 1 wurde in \fBlzip\fP 1.6
352
hinzugefügt. Diese Erweiterung wird sehr selten verwendet und wird von \fBxz\fP
353
nicht unterstützt (die Eingabe wird als beschädigt erkannt).
354
.TP 
331
\fBraw\fP
355
\fBraw\fP
332
Komprimiert oder dekomprimiert einen Rohdatenstrom (ohne Header). Diese
356
Komprimiert oder dekomprimiert einen Rohdatenstrom (ohne Header). Diese
333
Option ist nur für fortgeschrittene Benutzer bestimmt. Zum Dekodieren von
357
Option ist nur für fortgeschrittene Benutzer bestimmt. Zum Dekodieren von
Lines 396-403 Link Here
396
\fBgzip\fP(1) und \fBbzip2\fP(1). Die gewählten Kompressionseinstellungen
420
\fBgzip\fP(1) und \fBbzip2\fP(1). Die gewählten Kompressionseinstellungen
397
bestimmen den Speicherbedarf bei der Dekompression, daher ist es auf älteren
421
bestimmen den Speicherbedarf bei der Dekompression, daher ist es auf älteren
398
Systemen mit wenig Speicher bei einer zu hoch gewählten Voreinstellung
422
Systemen mit wenig Speicher bei einer zu hoch gewählten Voreinstellung
399
schwer, eine Datei zu dekomprimieren. Insbesondere \fBist es keine gute Idee,
423
schwer, eine Datei zu dekomprimieren. Insbesondere \fBist es keine gute Idee, blindlings \-9 für alles\fP zu verwenden, wie dies häufig mit \fBgzip\fP(1) und
400
blindlings \-9 für alles\fP zu verwenden, wie dies häufig mit \fBgzip\fP(1) und
401
\fBbzip2\fP(1) gehandhabt wird.
424
\fBbzip2\fP(1) gehandhabt wird.
402
.RS
425
.RS
403
.TP 
426
.TP 
Lines 412-421 Link Here
412
\fB\-4\fP … \fB\-6\fP
435
\fB\-4\fP … \fB\-6\fP
413
Gute bis sehr gute Kompression, wobei der Speicherbedarf für die
436
Gute bis sehr gute Kompression, wobei der Speicherbedarf für die
414
Dekompression selbst auf alten Systemen akzeptabel ist. \fB\-6\fP ist die
437
Dekompression selbst auf alten Systemen akzeptabel ist. \fB\-6\fP ist die
415
Voreinstellung, welche üblicherweise eine gute Wahl ist, zum Beispiel für
438
Voreinstellung, welche üblicherweise eine gute Wahl für die Verteilung von
416
die Verteilung von Dateien, die selbst noch auf Systemen mit nur 16\ MiB
439
Dateien ist, die selbst noch auf Systemen mit nur 16\ MiB Arbeitsspeicher
417
Arbeitsspeicher dekomprimiert werden müssen (\fB\-5e\fP oder \fB\-6e\fP sind
440
dekomprimiert werden müssen (\fB\-5e\fP oder \fB\-6e\fP sind ebenfalls eine
418
ebenfalls eine Überlegung wert. Siehe \fB\-\-extreme\fP).
441
Überlegung wert. Siehe \fB\-\-extreme\fP).
419
.TP 
442
.TP 
420
\fB\-7 … \-9\fP
443
\fB\-7 … \-9\fP
421
Ähnlich wie \fB\-6\fP, aber mit einem höheren Speicherbedarf für die Kompression
444
Ähnlich wie \fB\-6\fP, aber mit einem höheren Speicherbedarf für die Kompression
Lines 437-443 Link Here
437
tab(;);
460
tab(;);
438
c c c c c
461
c c c c c
439
n n n n n.
462
n n n n n.
440
Voreinstellung;DictGröße;KompCPU;KompSpeicher;DekSpeicher
463
Voreinst.;Wörtb.Gr;KomprCPU;KompSpeich;DekompSpeich
441
\-0;256 KiB;0;3 MiB;1 MiB
464
\-0;256 KiB;0;3 MiB;1 MiB
442
\-1;1 MiB;1;9 MiB;2 MiB
465
\-1;1 MiB;1;9 MiB;2 MiB
443
\-2;2 MiB;2;17 MiB;3 MiB
466
\-2;2 MiB;2;17 MiB;3 MiB
Lines 455-480 Link Here
455
Spaltenbeschreibungen:
478
Spaltenbeschreibungen:
456
.RS
479
.RS
457
.IP \(bu 3
480
.IP \(bu 3
458
DictGröße ist die Größe des LZMA2\-Wörterbuchs. Es ist Speicherverschwendung,
481
Wörtb.Größe ist die Größe des LZMA2\-Wörterbuchs. Es ist
459
ein Wörterbuch zu verwenden, das größer als die unkomprimierte Datei
482
Speicherverschwendung, ein Wörterbuch zu verwenden, das größer als die
460
ist. Daher ist es besser, die Voreinstellungen \fB\-7\fP … \fB\-9\fP zu vermeiden,
483
unkomprimierte Datei ist. Daher ist es besser, die Voreinstellungen \fB\-7\fP …
461
falls es keinen wirklichen Bedarf dafür gibt. Mit \fB\-6\fP und weniger wird
484
\fB\-9\fP zu vermeiden, falls es keinen wirklichen Bedarf dafür gibt. Mit \fB\-6\fP
462
üblicherweise so wenig Speicher verschwendet, dass dies nicht ins Gewicht
485
und weniger wird üblicherweise so wenig Speicher verschwendet, dass dies
463
fällt.
486
nicht ins Gewicht fällt.
464
.IP \(bu 3
487
.IP \(bu 3
465
KompCPU ist eine vereinfachte Repräsentation der LZMA2\-Einstellungen, welche
488
KomprCPU ist eine vereinfachte Repräsentation der LZMA2\-Einstellungen,
466
die Kompressionsgeschwindigkeit beeinflussen. Die Wörterbuchgröße wirkt sich
489
welche die Kompressionsgeschwindigkeit beeinflussen. Die Wörterbuchgröße
467
ebenfalls auf die Geschwindigkeit aus. Während KompCPU für die Stufen \fB\-6\fP
490
wirkt sich ebenfalls auf die Geschwindigkeit aus. Während KompCPU für die
468
bis \fB\-9\fP gleich ist, tendieren höhere Stufen dazu, etwas langsamer zu
491
Stufen \fB\-6\fP bis \fB\-9\fP gleich ist, tendieren höhere Stufen dazu, etwas
469
sein. Um eine noch langsamere, aber möglicherweise bessere Kompression zu
492
langsamer zu sein. Um eine noch langsamere, aber möglicherweise bessere
470
erhalten, siehe \fB\-\-extreme\fP.
493
Kompression zu erhalten, siehe \fB\-\-extreme\fP.
471
.IP \(bu 3
494
.IP \(bu 3
472
KompSpeicher enthält den Speicherbedarf des Kompressors im
495
KompSpeich enthält den Speicherbedarf des Kompressors im
473
Einzel\-Thread\-Modus. Dieser kann zwischen den \fBxz\fP\-Versionen leicht
496
Einzel\-Thread\-Modus. Dieser kann zwischen den \fBxz\fP\-Versionen leicht
474
variieren. Der Speicherbedarf einiger der zukünftigen Multithread\-Modi kann
497
variieren. Der Speicherbedarf einiger der zukünftigen Multithread\-Modi kann
475
dramatisch höher sein als im Einzel\-Thread\-Modus.
498
dramatisch höher sein als im Einzel\-Thread\-Modus.
476
.IP \(bu 3
499
.IP \(bu 3
477
DekSpeicher enthält den Speicherbedarf für die Dekompression. Das bedeutet,
500
DekompSpeich enthält den Speicherbedarf für die Dekompression. Das bedeutet,
478
dass die Kompressionseinstellungen den Speicherbedarf bei der Dekompression
501
dass die Kompressionseinstellungen den Speicherbedarf bei der Dekompression
479
bestimmen. Der exakte Speicherbedarf bei der Dekompression ist geringfügig
502
bestimmen. Der exakte Speicherbedarf bei der Dekompression ist geringfügig
480
größer als die Größe des LZMA2\-Wörterbuchs, aber die Werte in der Tabelle
503
größer als die Größe des LZMA2\-Wörterbuchs, aber die Werte in der Tabelle
Lines 487-493 Link Here
487
besseres Kompressionsverhältnis zu erreichen, das aber in ungünstigen Fällen
510
besseres Kompressionsverhältnis zu erreichen, das aber in ungünstigen Fällen
488
auch schlechter werden kann. Der Speicherverbrauch bei der Dekompression
511
auch schlechter werden kann. Der Speicherverbrauch bei der Dekompression
489
wird dabei nicht beeinflusst, aber der Speicherverbrauch der Kompression
512
wird dabei nicht beeinflusst, aber der Speicherverbrauch der Kompression
490
steigt in der Voreinstellungsstufen \fB\-0\fP bis \fB\-3\fP geringfügig an.
513
steigt in den Voreinstellungsstufen \fB\-0\fP bis \fB\-3\fP geringfügig an.
491
.IP ""
514
.IP ""
492
Da es zwei Voreinstellungen mit den Wörterbuchgrößen 4\ MiB und 8\ MiB gibt,
515
Da es zwei Voreinstellungen mit den Wörterbuchgrößen 4\ MiB und 8\ MiB gibt,
493
verwenden die Voreinstellungsstufen \fB\-3e\fP und \fB\-5e\fP etwas schnellere
516
verwenden die Voreinstellungsstufen \fB\-3e\fP und \fB\-5e\fP etwas schnellere
Lines 500-506 Link Here
500
tab(;);
523
tab(;);
501
c c c c c
524
c c c c c
502
n n n n n.
525
n n n n n.
503
Voreinstellung;DictGröße;KompCPU;KompSpeicher;DekSpeicher
526
Voreinst.;Wörtb.Gr;KomprCPU;KompSpeich;DekompSpeich
504
\-0e;256 KiB;8;4 MiB;1 MiB
527
\-0e;256 KiB;8;4 MiB;1 MiB
505
\-1e;1 MiB;8;13 MiB;2 MiB
528
\-1e;1 MiB;8;13 MiB;2 MiB
506
\-2e;2 MiB;8;25 MiB;3 MiB
529
\-2e;2 MiB;8;25 MiB;3 MiB
Lines 608-621 Link Here
608
legt eine Grenze für die Speichernutzung bei der Kompression fest. Wenn
631
legt eine Grenze für die Speichernutzung bei der Kompression fest. Wenn
609
diese Option mehrmals angegeben wird, ist die zuletzt angegebene wirksam.
632
diese Option mehrmals angegeben wird, ist die zuletzt angegebene wirksam.
610
.IP ""
633
.IP ""
611
Falls die Kompressionseinstellungen die \fIGrenze\fP überschreiten, passt \fBxz\fP
634
Falls die Kompressionseinstellungen die \fIGrenze\fP überschreiten, versucht
612
die Einstellungen nach unten an, so dass die Grenze nicht mehr überschritten
635
\fBxz\fP, die Einstellungen nach unten anzupassen, so dass die Grenze nicht
613
wird und zeigt einen Hinweis an, dass eine automatische Anpassung
636
mehr überschritten wird und zeigt einen Hinweis an, dass eine automatische
614
vorgenommen wurde. Solche Anpassungen erfolgen nicht, wenn mit
637
Anpassung vorgenommen wurde. Die Anpassungen werden in folgender Reihenfolge
615
\fB\-\-format=raw\fP komprimiert wird oder wenn \fB\-\-no\-adjust\fP angegeben
638
angewendet: Reduzierung der Anzahl der Threads, Wechsel in den
616
wurde. In diesen Fällen wird eine Fehlermeldung mit dem Exit\-Status 1
639
Einzelthread\-Modus, falls sogar ein einziger Thread im Multithread\-Modus die
617
ausgegeben und \fBxz\fP mit dem Exit\-Status 1 beendet.
640
\fIGrenze\fP überschreitet, und schlussendlich die Reduzierung der Größe des
641
LZMA2\-Wörterbuchs.
618
.IP ""
642
.IP ""
643
Beim Komprimieren mit \fB\-\-format=raw\fP oder falls \fB\-\-no\-adjust\fP angegeben
644
wurde, wird nur die Anzahl der Threads reduziert, da nur so die komprimierte
645
Ausgabe nicht beeinflusst wird.
646
.IP ""
647
Falls die \fIGrenze\fP nicht anhand der vorstehend beschriebenen Anpassungen
648
gesetzt werden kann, wird ein Fehler angezeigt und \fBxz\fP wird mit dem
649
Exit\-Status 1 beendet.
650
.IP ""
619
Die \fIGrenze\fP kann auf verschiedene Arten angegeben werden:
651
Die \fIGrenze\fP kann auf verschiedene Arten angegeben werden:
620
.RS
652
.RS
621
.IP \(bu 3
653
.IP \(bu 3
Lines 631-647 Link Here
631
.IP \(bu 3
663
.IP \(bu 3
632
Mit \fB0\fP kann die \fIGrenze\fP auf den Standardwert zurückgesetzt werden. Dies
664
Mit \fB0\fP kann die \fIGrenze\fP auf den Standardwert zurückgesetzt werden. Dies
633
ist gegenwärtig gleichbedeutend mit dem Setzen der \fIGrenze\fP auf \fBmax\fP
665
ist gegenwärtig gleichbedeutend mit dem Setzen der \fIGrenze\fP auf \fBmax\fP
634
(keine Speicherbegrenzung). Sobald die Unterstützung für Multi\-Threading
666
(keine Speicherbegrenzung).
635
implementiert wurde, kann es im Multi\-Thread\-Fall einen Unterschied zwischen
636
\fB0\fP und \fBmax\fP geben, daher wird empfohlen, \fB0\fP anstelle von \fBmax\fP zu
637
verwenden, bis die Einzelheiten hierzu geklärt sind.
638
.RE
667
.RE
639
.IP ""
668
.IP ""
640
Für die 32\-Bit\-Version von \fBxz\fP gibt es einen Spezialfall: Falls die Grenze
669
Für die 32\-Bit\-Version von \fBxz\fP gibt es einen Spezialfall: Falls die Grenze
641
über \fB4020\ MiB\fP liegt, wird die \fIGrenze\fP auf \fB4020\ MiB\fP gesetzt (die
670
über \fB4020\ MiB\fP liegt, wird die \fIGrenze\fP auf \fB4020\ MiB\fP gesetzt. Auf
642
Werte \fB0\fP und \fBmax\fP werden hiervon nicht beeinflusst; für die
671
MIPS32 wird stattdessen \fB2000\ MB\fP verwendet (die Werte \fB0\fP und \fBmax\fP
643
Dekompression gibt es keine vergleichbare Funktion). Dies kann hilfreich
672
werden hiervon nicht beeinflusst; für die Dekompression gibt es keine
644
sein, wenn ein 32\-Bit\-Executable auf einen 4\ GiB großen Adressraum
673
vergleichbare Funktion). Dies kann hilfreich sein, wenn ein
674
32\-Bit\-Executable auf einen 4\ GiB großen Adressraum (2 GiB auf MIPS32)
645
zugreifen kann, wobei wir hoffen wollen, dass es in anderen Situationen
675
zugreifen kann, wobei wir hoffen wollen, dass es in anderen Situationen
646
keine negativen Effekte hat.
676
keine negativen Effekte hat.
647
.IP ""
677
.IP ""
Lines 654-690 Link Here
654
die Dekompression wird fehlschlagen. Siehe \fB\-\-memlimit\-compress=\fP\fIGrenze\fP
684
die Dekompression wird fehlschlagen. Siehe \fB\-\-memlimit\-compress=\fP\fIGrenze\fP
655
zu möglichen Wegen, die \fIGrenze\fP anzugeben.
685
zu möglichen Wegen, die \fIGrenze\fP anzugeben.
656
.TP 
686
.TP 
687
\fB\-\-memlimit\-mt\-decompress=\fP\fIGrenze\fP
688
legt eine Begrenzung des Speicherverbrauchs für Multithread\-Dekompression
689
fest. Dies beeinflusst lediglich die Anzahl der Threads; \fBxz\fP wird dadurch
690
niemals die Dekompression einer Datei verweigern. Falls die \fIGrenze\fP für
691
jegliches Multithreading zu niedrig ist, wird sie ignoriert und \fBxz\fP setzt
692
im Einzelthread\-modus fort. Beachten Sie auch, dass bei der Verwendung von
693
\fB\-\-memlimit\-decompress\fP dies stets sowohl auf den Einzelthread\-als auch auf
694
den Multithread\-Modus angewendet wird und so die effektive \fIGrenze\fP für den
695
Multithread\-Modus niemals höher sein wird als die mit
696
\fB\-\-memlimit\-decompress\fP gesetzte Grenze.
697
.IP ""
698
Im Gegensatz zu anderen Optionen zur Begrenzung des Speicherverbrauchs hat
699
\fB\-\-memlimit\-mt\-decompress=\fP\fIGrenze\fP eine systemspezifisch vorgegebene
700
\fIGrenze\fP. Mit \fBxz \-\-info\-memory\fP können Sie deren aktuellen Wert anzeigen
701
lassen.
702
.IP ""
703
Diese Option und ihr Standardwert existieren, weil die unbegrenzte
704
threadbezogene Dekompression bei einigen Eingabedateien zu unglaublich
705
großem Speicherverbrauch führen würde. Falls die vorgegebene \fIGrenze\fP auf
706
Ihrem System zu niedrig ist, können Sie die \fIGrenze\fP durchaus erhöhen, aber
707
setzen Sie sie niemals auf einen Wert größer als die Menge des nutzbaren
708
Speichers, da \fBxz\fP bei entsprechenden Eingabedateien versuchen wird, diese
709
Menge an Speicher auch bei einer geringen Anzahl von Threads zu
710
verwnden. Speichermangel oder Auslagerung verbessern die
711
Dekomprimierungsleistung nicht.
712
.IP ""
713
Siehe \fB\-\-memlimit\-compress=\fP\fIGrenze\fP für mögliche Wege zur Angabe der
714
\fIGrenze\fP.  Sezen der \fIGrenze\fP auf \fB0\fP setzt die \fIGrenze\fP auf den
715
vorgegebenen systemspezifischen Wert zurück.
716
.IP ""
717
.TP 
657
\fB\-M\fP \fIGrenze\fP, \fB\-\-memlimit=\fP\fIGrenze\fP, \fB\-\-memory=\fP\fIGrenze\fP
718
\fB\-M\fP \fIGrenze\fP, \fB\-\-memlimit=\fP\fIGrenze\fP, \fB\-\-memory=\fP\fIGrenze\fP
658
Dies ist gleichbedeutend mit \fB\-\-memlimit\-compress=\fP\fIGrenze
719
Dies ist gleichbedeutend mit \fB\-\-memlimit\-compress=\fP\fIGrenze\fP
659
\fP\fB\-\-memlimit\-decompress=\fP\fIGrenze\fP.
720
\fB\-\-memlimit\-decompress=\fP\fIGrenze\fP \fB\-\-memlimit\-mt\-decompress=\fP\fIGrenze\fP.
660
.TP 
721
.TP 
661
\fB\-\-no\-adjust\fP
722
\fB\-\-no\-adjust\fP
662
zeigt einen Fehler an und bricht die Ausführung ab, falls die
723
zeigt einen Fehler an und beendet, falls die Grenze der Speichernutzung
663
Kompressionseinstellungen die Begrenzung der Speichernutzung
724
nicht ohne Änderung der Einstellungen, welche die komprimierte Ausgabe
664
überschreiten. Standardmäßig werden die Einstellungen nach unten korrigiert,
725
beeinflussen, berücksichtigt werden kann. Das bedeutet, dass \fBxz\fP daran
665
so dass diese Grenze nicht überschritten wird. Bei der Erzeugung von
726
gehindert wird, den Encoder vom Multithread\-Modus in den Einzelthread\-Modus
666
Rohdatenströmen (\fB\-\-format=raw\fP) ist die automatische Korrektur stets
727
zu versetzen und die Größe des LZMA2\-Wörterbuchs zu reduzieren. Allerdings
667
deaktiviert.
728
kann bei Verwendung dieser Option dennoch die Anzahl der Threads reduziert
729
werden, um die Grenze der Speichernutzung zu halten, sofern dies die
730
komprimierte Ausgabe nicht beeinflusst.
731
.IP ""
732
Die automatische Anpassung ist beim Erzeugen von Rohdatenströmen
733
(\fB\-\-format=raw\fP) immer deaktiviert.
668
.TP 
734
.TP 
669
\fB\-T\fP \fIThreads\fP, \fB\-\-threads=\fP\fIThreads\fP
735
\fB\-T\fP \fIThreads\fP, \fB\-\-threads=\fP\fIThreads\fP
670
gibt die Anzahl der zu verwendenden Arbeits\-Threads an. Wenn Sie \fIThreads\fP
736
gibt die Anzahl der zu verwendenden Arbeits\-Threads an. Wenn Sie \fIThreads\fP
671
auf einen speziellen Wert \fB0\fP setzen, verwendet \fBxz\fP so viele Threads, wie
737
auf einen speziellen Wert \fB0\fP setzen, verwendet \fBxz\fP maximal so viele
672
Prozessorkerne im System verfügbar sind. Die tatsächliche Anzahl kann
738
Threads, wie der/die Prozessor(en) im System untestützen. Die tatsächliche
673
geringer sein als die angegebenen \fIThreads\fP, wenn die Eingabedatei nicht
739
Anzahl kann geringer sein als die angegebenen \fIThreads\fP, wenn die
674
groß genug für Threading mit den gegebenen Einstellungen ist oder wenn mehr
740
Eingabedatei nicht groß genug für Threading mit den gegebenen Einstellungen
675
Threads die Speicherbegrenzung übersteigen würden.
741
ist oder wenn mehr Threads die Speicherbegrenzung übersteigen würden.
676
.IP ""
742
.IP ""
743
Die Multithread\- bzw. Einzelthread\-Kompressoren erzeugen unterschiedliche
744
Ausgaben. Der Einzelthread\-Kompressor erzeugt die geringste Dateigröße, aber
745
nur die Ausgabe des Multithread\-Kompressors kann mit mehreren Threads wieder
746
dekomprimiert werden. Das Setzen der Anzahl der \fIThreads\fP auf \fB1\fP wird den
747
Einzelthread\-Modus verwenden.  Das Setzen der Anzahl der \fIThreads\fP auf
748
einen anderen Wert einschließlich \fB0\fP verwendet den Multithread\-Kompressor,
749
und zwar sogar dann, wenn das System nur einen einzigen Hardware\-Thread
750
unterstützt (\fBxz\fP 5.2.x verwendete in diesem Fall noch den
751
Einzelthread\-Modus).
752
.IP ""
753
Um den Multithread\-Modus mit nur einem einzigen Thread zu verwenden, setzen
754
Sie die Anzahl der \fIThreads\fP auf \fB+1\fP. Das Präfix \fB+\fP hat mit Werten
755
verschieden von \fB1\fP keinen Effekt. Eine Begrenzung des Speicherverbrauchs
756
kann \fBxz\fP dennoch veranlassen, den Einzelthread\-Modus zu verwenden, außer
757
wenn \fB\-\-no\-adjust\fP verwendet wird. Die Unterstützung für das Präfix \fB+\fP
758
wurde in \fBxz\fP 5.4.0 hinzugefügt.
759
.IP ""
760
Falls das automatische Setzen der Anzahl der Threads angefordert und keine
761
Speicherbegrenzung angegeben wurde, dann wird eine systemspezifisch
762
vorgegebene weiche Grenze verwendet, um eventuell die Anzahl der Threads zu
763
begrenzen. Es ist eine weiche Grenze im Sinne davon, dass sie ignoriert
764
wird, falls die Anzahl der Threads 1 ist; daher wird eine weiche Grenze
765
\fBxz\fP niemals an der Kompression oder Dekompression hindern. Diese
766
vorgegebene weiche Grenze veranlasst \fBxz\fP nicht, vom Multithread\-Modus in
767
den Einzelthread\-Modus zu wechseln. Die aktiven Grenzen können Sie mit dem
768
Befehl \fBxz \-\-info\-memory\fP anzeigen lassen.
769
.IP ""
677
Die gegenwärtig einzige Threading\-Methode teilt die Eingabe in Blöcke und
770
Die gegenwärtig einzige Threading\-Methode teilt die Eingabe in Blöcke und
678
komprimiert diese unabhängig voneinander. Die vorgegebene Blockgröße ist von
771
komprimiert diese unabhängig voneinander. Die vorgegebene Blockgröße ist von
679
der Kompressionsstufe abhängig und kann mit der Option
772
der Kompressionsstufe abhängig und kann mit der Option
680
\fB\-\-block\-size=\fP\fIGröße\fP außer Kraft gesetzt werden.
773
\fB\-\-block\-size=\fP\fIGröße\fP außer Kraft gesetzt werden.
681
.IP ""
774
.IP ""
682
Eine thread\-basierte Dekompression wurde bislang noch nicht
775
Eine thread\-basierte Dekompression wird nur bei Dateien funktionieren, die
683
implementiert. Sie wird nur bei Dateien funktionieren, die mehrere Blöcke
776
mehrere Blöcke mit Größeninformationen in deren Headern enthalten. Alle im
684
mit Größeninformationen in deren Headern enthalten. Alle im
777
Multi\-Thread\-Modus komprimierten Dateien, die groß genug sind, erfüllen
685
Multi\-Thread\-Modus komprimierten Dateien erfüllen diese Bedingung, im
778
diese Bedingung, im Einzel\-Thread\-Modus komprimierte Dateien dagegen nicht,
686
Einzel\-Thread\-Modus komprimierte Dateien dagegen nicht, selbst wenn
779
selbst wenn \fB\-\-block\-size=\fP\fIGröße\fP verwendet wurde.
687
\fB\-\-block\-size=\fP\fIGröße\fP verwendet wird.
688
.
780
.
689
.SS "Benutzerdefinierte Filterketten für die Kompression"
781
.SS "Benutzerdefinierte Filterketten für die Kompression"
690
Eine benutzerdefinierte Filterkette ermöglicht die Angabe detaillierter
782
Eine benutzerdefinierte Filterkette ermöglicht die Angabe detaillierter
Lines 723-730 Link Here
723
ignoriert. Jede Option hat einen Standardwert, daher brauchen Sie nur jene
815
ignoriert. Jede Option hat einen Standardwert, daher brauchen Sie nur jene
724
anzugeben, die Sie ändern wollen.
816
anzugeben, die Sie ändern wollen.
725
.PP
817
.PP
726
Um die gesamte Filterkette und die \fIOptionen\fP anzuzeigen, rufen Sie \fBxz
818
Um die gesamte Filterkette und die \fIOptionen\fP anzuzeigen, rufen Sie \fBxz \-vv\fP auf (was gleichbedeutend mit der zweimaligen Angabe von \fB\-\-verbose\fP
727
\-vv\fP auf (was gleichbedeutend mit der zweimaligen Angabe von \fB\-\-verbose\fP
728
ist). Dies funktioniert auch zum Betrachten der von den Voreinstellungen
819
ist). Dies funktioniert auch zum Betrachten der von den Voreinstellungen
729
verwendeten Filterkettenoptionen.
820
verwendeten Filterkettenoptionen.
730
.TP 
821
.TP 
Lines 939-952 Link Here
939
\fB\-\-x86\fP[\fB=\fP\fIOptionen\fP]
1030
\fB\-\-x86\fP[\fB=\fP\fIOptionen\fP]
940
.PD 0
1031
.PD 0
941
.TP 
1032
.TP 
942
\fB\-\-powerpc\fP[\fB=\fP\fIOptionen\fP]
943
.TP 
944
\fB\-\-ia64\fP[\fB=\fP\fIOptionen\fP]
945
.TP 
946
\fB\-\-arm\fP[\fB=\fP\fIOptionen\fP]
1033
\fB\-\-arm\fP[\fB=\fP\fIOptionen\fP]
947
.TP 
1034
.TP 
948
\fB\-\-armthumb\fP[\fB=\fP\fIOptionen\fP]
1035
\fB\-\-armthumb\fP[\fB=\fP\fIOptionen\fP]
949
.TP 
1036
.TP 
1037
\fB\-\-arm64\fP[\fB=\fP\fIOptionen\fP]
1038
.TP 
1039
\fB\-\-powerpc\fP[\fB=\fP\fIOptionen\fP]
1040
.TP 
1041
\fB\-\-ia64\fP[\fB=\fP\fIOptionen\fP]
1042
.TP 
950
\fB\-\-sparc\fP[\fB=\fP\fIOptionen\fP]
1043
\fB\-\-sparc\fP[\fB=\fP\fIOptionen\fP]
951
.PD
1044
.PD
952
fügt ein »Branch/Call/Jump«\-(BCJ\-)Filter zur Filterkette hinzu. Diese Filter
1045
fügt ein »Branch/Call/Jump«\-(BCJ\-)Filter zur Filterkette hinzu. Diese Filter
Lines 958-979 Link Here
958
\&\fB.xz\fP\-Datei zu erstellen. Die BCJ\-Filter sind immer reversibel, daher
1051
\&\fB.xz\fP\-Datei zu erstellen. Die BCJ\-Filter sind immer reversibel, daher
959
verursacht die Anwendung eines BCJ\-Filters auf den falschen Datentyp keinen
1052
verursacht die Anwendung eines BCJ\-Filters auf den falschen Datentyp keinen
960
Datenverlust, wobei aber das Kompressionsverhältnis etwas schlechter werden
1053
Datenverlust, wobei aber das Kompressionsverhältnis etwas schlechter werden
961
könnte.
1054
könnte. Die BCJ\-Filter sind sehr schnell und verbrauchen nur wenig mehr
1055
Speicher.
962
.IP ""
1056
.IP ""
963
Es ist in Ordnung, einen BCJ\-Filter auf eine gesamte Binärdatei anzuwenden;
964
es ist nicht nötig, dies nur auf den binären Bereich zu beschränken. Die
965
Anwendung eines BCJ\-Filters auf ein Archiv, das sowohl binäre als auch
966
nicht\-binäre Dateien enthält, kann gute Ergebnisse liefern, muss es aber
967
nicht. Daher ist es generell nicht gut, einen BCJ\-Filter blindlings
968
anzuwenden, wenn Sie Binärpakete zwecks Weitergabe komprimieren wollen.
969
.IP ""
970
Diese BCJ\-Filter sind sehr schnell und erhöhen den Speicherbedarf nur
971
unerheblich. Wenn ein BCJ\-Filter das Kompressionsverhältnis einer Datei
972
verbessert, kann er auch gleichzeitig die Dekompressionsgeschwindigkeit
973
verbessern. Das kommt daher, dass auf der gleichen Hardware die
974
Dekompressionsgeschwindigkeit von LZMA2 ungefähr eine feste Anzahl Byte an
975
komprimierten Daten pro Sekunde ist.
976
.IP ""
977
Diese BCJ\-Filter haben bekannte Probleme mit dem Kompressionsverhältnis:
1057
Diese BCJ\-Filter haben bekannte Probleme mit dem Kompressionsverhältnis:
978
.RS
1058
.RS
979
.IP \(bu 3
1059
.IP \(bu 3
Lines 983-1001 Link Here
983
dennoch die Adressumwandlung aus, wodurch die Kompression bei diesen Dateien
1063
dennoch die Adressumwandlung aus, wodurch die Kompression bei diesen Dateien
984
schlechter wird.
1064
schlechter wird.
985
.IP \(bu 3
1065
.IP \(bu 3
986
Bei der Anwendung eines BCJ\-Filters auf ein Archiv, das mehrere ähnliche
1066
Falls ein BCJ\-Filter auf ein Archiv angewendet wird, ist es möglich, dass
987
Binärdateien enthält, kann das Kompressionsverhältnis schlechter sein als
1067
das Kompressionsverhältnis schlechter als ohne Filter wird. Falls es
988
ohne BCJ\-Filter. Das kommt daher, weil der BCJ\-Filter die Grenzen der
1068
beispielsweise ähnliche oder sogar identische ausführbare Dateien gibt, dann
989
Binärdateien nicht erkennt und den Zähler der Adressumwandlung für jede
1069
werden diese durch die Filterung wahrscheinlich »unähnlicher« und
990
Binärdatei nicht zurücksetzt.
1070
verschlechtern dadurch das Kompressionsverhältnis. Der Inhalt
1071
nicht\-ausführbarer Dateien im gleichen Archiv kann sich ebenfalls darauf
1072
auswirken. In der Praxis werden Sie durch Versuche mit oder ohne BCJ\-Filter
1073
selbst herausfinden müssen, was situationsbezogen besser ist.
991
.RE
1074
.RE
992
.IP ""
1075
.IP ""
993
Beide der oben genannten Probleme werden in der Zukunft in einem neuen
1076
Verschiedene Befehlssätze haben unterschiedliche Ausrichtungen: Die
994
Filter nicht mehr auftreten. Die alten BCJ\-Filter werden noch in
1077
ausführbare Datei muss in den Eingabedateien einem Vielfachen dieses Wertes
995
eingebetteten Systemen von Nutzen sein, weil der Dekoder des neuen Filters
1078
entsprechen, damit dieser Filter funktioniert.
996
größer sein und mehr Speicher beanspruchen wird.
997
.IP ""
998
Verschiedene Befehlssätze haben unterschiedliche Ausrichtungen:
999
.RS
1079
.RS
1000
.RS
1080
.RS
1001
.PP
1081
.PP
Lines 1005-1015 Link Here
1005
l n l.
1085
l n l.
1006
Filter;Ausrichtung;Hinweise
1086
Filter;Ausrichtung;Hinweise
1007
x86;1;32\-Bit oder 64\-Bit x86
1087
x86;1;32\-Bit oder 64\-Bit x86
1088
ARM;4;
1089
ARM\-Thumb;2;
1090
ARM64;4;4096\-Byte\-Ausrichtung ist optimal
1008
PowerPC;4;Nur Big Endian
1091
PowerPC;4;Nur Big Endian
1009
ARM;4;Nur Little Endian
1092
IA\-64;16;Itanium
1010
ARM\-Thumb;2;Nur Little Endian
1093
SPARC;4;
1011
IA\-64;16;Big oder Little Endian
1012
SPARC;4;Big oder Little Endian
1013
.TE
1094
.TE
1014
.RE
1095
.RE
1015
.RE
1096
.RE
Lines 1018-1026 Link Here
1018
das Kompressionsverhältnis dadurch etwas verbessert werden, dass die
1099
das Kompressionsverhältnis dadurch etwas verbessert werden, dass die
1019
LZMA2\-Optionen so gesetzt werden, dass sie der Ausrichtung des gewählten
1100
LZMA2\-Optionen so gesetzt werden, dass sie der Ausrichtung des gewählten
1020
BCJ\-Filters entsprechen. Zum Beispiel ist es beim IA\-64\-Filter eine gute
1101
BCJ\-Filters entsprechen. Zum Beispiel ist es beim IA\-64\-Filter eine gute
1021
Wahl, \fBpb=4\fP mit LZMA2 zu setzen (2^4=16). Der x86\-Filter bildet dabei eine
1102
Wahl, \fBpb=4\fP oder sogar \fBpb=4,lp=4,lc=0\fP mit LZMA2 zu setzen (2^4=16). Der
1022
Ausnahme; Sie sollten bei der für LZMA2 voreingestellten 4\-Byte\-Ausrichtung
1103
x86\-Filter bildet dabei eine Ausnahme; Sie sollten bei der für LZMA2
1023
bleiben, wenn Sie x86\-Binärdateien komprimieren.
1104
voreingestellten 4\-Byte\-Ausrichtung bleiben, wenn Sie x86\-Binärdateien
1105
komprimieren.
1024
.IP ""
1106
.IP ""
1025
Alle BCJ\-Filter unterstützen die gleichen \fIOptionen\fP:
1107
Alle BCJ\-Filter unterstützen die gleichen \fIOptionen\fP:
1026
.RS
1108
.RS
Lines 1129-1136 Link Here
1129
.TP 
1211
.TP 
1130
\fB\-\-info\-memory\fP
1212
\fB\-\-info\-memory\fP
1131
zeigt in einem menschenlesbaren Format an, wieviel physischen Speicher (RAM)
1213
zeigt in einem menschenlesbaren Format an, wieviel physischen Speicher (RAM)
1132
das System nach Annahme von \fBxz\fP hat, sowie die Speicherbedarfsbegrenzung
1214
und wie viele Prozessor\-Threads das System nach Annahme von \fBxz\fP hat, sowie
1133
für Kompression und Dekompression, und beendet das Programm erfolgreich.
1215
die Speicherbedarfsbegrenzung für Kompression und Dekompression, und beendet
1216
das Programm erfolgreich.
1134
.TP 
1217
.TP 
1135
\fB\-h\fP, \fB\-\-help\fP
1218
\fB\-h\fP, \fB\-\-help\fP
1136
zeigt eine Hilfemeldung mit den am häufigsten genutzten Optionen an und
1219
zeigt eine Hilfemeldung mit den am häufigsten genutzten Optionen an und
Lines 1184-1198 Link Here
1184
\fBxz \-\-robot \-\-info\-memory\fP gibt eine einzelne Zeile mit drei durch
1267
\fBxz \-\-robot \-\-info\-memory\fP gibt eine einzelne Zeile mit drei durch
1185
Tabulatoren getrennten Spalten aus:
1268
Tabulatoren getrennten Spalten aus:
1186
.IP 1. 4
1269
.IP 1. 4
1187
Gesamter physischer Speicher (RAM) in Byte
1270
Gesamter physischer Speicher (RAM) in Byte.
1188
.IP 2. 4
1271
.IP 2. 4
1189
Speicherbedarfsbegrenzung für die Kompression in Byte. Ein spezieller Wert
1272
Speicherbedarfsbegrenzung für die Kompression in Byte
1190
von Null bezeichnet die Standardeinstellung, die im Einzelthread\-Modus
1273
(\fB\-\-memlimit\-compress\fP). Ein spezieller Wert von \fB0\fP bezeichnet die
1191
bedeutet, dass keine Begrenzung vorhanden ist.
1274
Standardeinstellung, die im Einzelthread\-Modus bedeutet, dass keine
1275
Begrenzung vorhanden ist.
1192
.IP 3. 4
1276
.IP 3. 4
1193
Speicherbedarfsbegrenzung für die Dekompression in Byte. Ein spezieller Wert
1277
Speicherbedarfsbegrenzung für die Dekompression in Byte
1194
von Null bezeichnet die Standardeinstellung, die im Einzelthread\-Modus
1278
(\fB\-\-memlimit\-decompress\fP). Ein spezieller Wert von \fB0\fP bezeichnet die
1195
bedeutet, dass keine Begrenzung vorhanden ist.
1279
Standardeinstellung, die im Einzelthread\-Modus bedeutet, dass keine
1280
Begrenzung vorhanden ist.
1281
.IP 4. 4
1282
Seit \fBxz\fP 5.3.4alpha: Die Speichernutzung für Multithread\-Dekompression in
1283
Byte (\fB\-\-memlimit\-mt\-decompress\fP). Dies ist niemals \fB0\fP, da ein
1284
systemspezifischer Vorgabewert (gezeigt in Spalte 5) verwendet wird, falls
1285
keine Grenze ausdrücklich angegeben wurde. Dies ist außerdem niemals größer
1286
als der Wert in in Spalte 3, selbst wenn mit \fB\-\-memlimit\-mt\-decompress\fP ein
1287
größerer Wert angegeben wurde.
1288
.IP 5. 4
1289
Seit \fBxz\fP 5.3.4alpha: Eine systemspezifisch vorgegebene Begrenzung des
1290
Speicherverbrauchs, die zur Begrenzung der Anzahl der Threads beim
1291
Komprimieren mit automatischer Anzahl der Threads (\fB\-\-threads=0\fP) und wenn
1292
keine Speicherbedarfsbegrenzung angegeben wurde (\fB\-\-memlimit\-compress\fP)
1293
verwendet wird. Dies wird auch als Standardwert für
1294
\fB\-\-memlimit\-mt\-decompress\fP verwendet.
1295
.IP 6. 4
1296
Seit \fBxz\fP 5.3.4alpha: Anzahl der verfügbaren Prozessorthreads.
1196
.PP
1297
.PP
1197
In der Zukunft könnte die Ausgabe von \fBxz \-\-robot \-\-info\-memory\fP weitere
1298
In der Zukunft könnte die Ausgabe von \fBxz \-\-robot \-\-info\-memory\fP weitere
1198
Spalten enthalten, aber niemals mehr als eine einzelne Zeile.
1299
Spalten enthalten, aber niemals mehr als eine einzelne Zeile.
Lines 1429-1437 Link Here
1429
.TP 
1530
.TP 
1430
\fBXZ_OPT\fP
1531
\fBXZ_OPT\fP
1431
Dies dient der Übergabe von Optionen an \fBxz\fP, wenn es nicht möglich ist,
1532
Dies dient der Übergabe von Optionen an \fBxz\fP, wenn es nicht möglich ist,
1432
die Optionen direkt in der Befehlszeile von \fBxz\fP zu übergeben. Dies ist
1533
die Optionen direkt in der Befehlszeile von \fBxz\fP zu übergeben. Dies ist der
1433
beispielsweise der Fall, wenn \fBxz\fP von einem Skript oder Dienstprogramm
1534
Fall, wenn \fBxz\fP von einem Skript oder Dienstprogramm ausgeführt wird, zum
1434
ausgeführt wird, zum Beispiel GNU \fBtar\fP(1):
1535
Beispiel GNU \fBtar\fP(1):
1435
.RS
1536
.RS
1436
.RS
1537
.RS
1437
.PP
1538
.PP
Lines 1449-1456 Link Here
1449
.RS
1550
.RS
1450
.PP
1551
.PP
1451
.nf
1552
.nf
1452
\f(CWXZ_OPT=${XZ_OPT\-"\-7e"}
1553
\f(CWXZ_OPT=${XZ_OPT\-"\-7e"} export XZ_OPT\fP
1453
export XZ_OPT\fP
1454
.fi
1554
.fi
1455
.RE
1555
.RE
1456
.RE
1556
.RE
Lines 1623-1630 Link Here
1623
.RE
1723
.RE
1624
.PP
1724
.PP
1625
\fIbaz.tar.xz\fP mit der Voreinstellung \fB\-4e\fP (\fB\-4 \-\-extreme\fP) erzeugen, was
1725
\fIbaz.tar.xz\fP mit der Voreinstellung \fB\-4e\fP (\fB\-4 \-\-extreme\fP) erzeugen, was
1626
langsamer ist als beispielsweise die Vorgabe \fB\-6\fP, aber weniger Speicher
1726
langsamer ist als die Vorgabe \fB\-6\fP, aber weniger Speicher für Kompression
1627
für Kompression und Dekompression benötigt (48\ MiB beziehungsweise 5\ MiB):
1727
und Dekompression benötigt (48\ MiB beziehungsweise 5\ MiB):
1628
.RS
1728
.RS
1629
.PP
1729
.PP
1630
.nf
1730
.nf
Lines 1647-1654 Link Here
1647
.RS
1747
.RS
1648
.PP
1748
.PP
1649
.nf
1749
.nf
1650
\f(CWfind . \-type f \e! \-name '*.xz' \-print0 \e
1750
\f(CWfind . \-type f \e! \-name '*.xz' \-print0 \e     | xargs \-0r \-P4 \-n16 xz \-T1\fP
1651
    | xargs \-0r \-P4 \-n16 xz \-T1\fP
1652
.fi
1751
.fi
1653
.RE
1752
.RE
1654
.PP
1753
.PP
Lines 1680-1690 Link Here
1680
.RS
1779
.RS
1681
.PP
1780
.PP
1682
.nf
1781
.nf
1683
\f(CWif ! eval "$(xz \-\-robot \-\-version 2> /dev/null)" ||
1782
\f(CWif ! eval "$(xz \-\-robot \-\-version 2> /dev/null)" ||         [ "$XZ_VERSION" \-lt 50000002 ]; then     echo "Ihre Version von Xz ist zu alt." fi unset XZ_VERSION LIBLZMA_VERSION\fP
1684
        [ "$XZ_VERSION" \-lt 50000002 ]; then
1685
    echo "Ihre Version von Xz ist zu alt."
1686
fi
1687
unset XZ_VERSION LIBLZMA_VERSION\fP
1688
.fi
1783
.fi
1689
.RE
1784
.RE
1690
.PP
1785
.PP
Lines 1693-1704 Link Here
1693
.RS
1788
.RS
1694
.PP
1789
.PP
1695
.nf
1790
.nf
1696
\f(CWNEWLIM=$((123 << 20))  # 123 MiB
1791
\f(CWNEWLIM=$((123 << 20))\ \ # 123 MiB OLDLIM=$(xz \-\-robot \-\-info\-memory | cut \-f3) if [ $OLDLIM \-eq 0 \-o $OLDLIM \-gt $NEWLIM ]; then     XZ_OPT="$XZ_OPT \-\-memlimit\-decompress=$NEWLIM"     export XZ_OPT fi\fP
1697
OLDLIM=$(xz \-\-robot \-\-info\-memory | cut \-f3)
1698
if [ $OLDLIM \-eq 0 \-o $OLDLIM \-gt $NEWLIM ]; then
1699
    XZ_OPT="$XZ_OPT \-\-memlimit\-decompress=$NEWLIM"
1700
    export XZ_OPT
1701
fi\fP
1702
.fi
1792
.fi
1703
.RE
1793
.RE
1704
.
1794
.
Lines 1717-1723 Link Here
1717
tab(;);
1807
tab(;);
1718
c c
1808
c c
1719
n n.
1809
n n.
1720
Voreinstellung;KompCPU
1810
Voreinst.;KomprCPU
1721
\-0;0
1811
\-0;0
1722
\-1;1
1812
\-1;1
1723
\-2;2
1813
\-2;2
Lines 1845-1848 Link Here
1845
.br
1935
.br
1846
XZ Embedded: <https://tukaani.org/xz/embedded.html>
1936
XZ Embedded: <https://tukaani.org/xz/embedded.html>
1847
.br
1937
.br
1848
LZMA\-SDK: <http://7\-zip.org/sdk.html>
1938
LZMA SDK: <https://7\-zip.org/sdk.html>
(-)xz-5.2.5/po4a/man/de/xzdec.1 (-2 / +1 lines)
Lines 19-26 Link Here
19
.SH BESCHREIBUNG
19
.SH BESCHREIBUNG
20
\fBxzdec\fP ist ein auf Liblzma basierendes Nur\-Dekompressionswerkzeug für
20
\fBxzdec\fP ist ein auf Liblzma basierendes Nur\-Dekompressionswerkzeug für
21
\&\fB.xz\fP\-Dateien (und \fBnur\fP für \fB.xz\fP\-Dateien). \fBxzdec\fP ist als direkter
21
\&\fB.xz\fP\-Dateien (und \fBnur\fP für \fB.xz\fP\-Dateien). \fBxzdec\fP ist als direkter
22
Ersatz für \fBxz\fP(1) in jenen Situationen konzipiert, wo ein Skript \fBxz
22
Ersatz für \fBxz\fP(1) in jenen Situationen konzipiert, wo ein Skript \fBxz \-\-decompress \-\-stdout\fP (und eventuelle einige andere höufig genutzte
23
\-\-decompress \-\-stdout\fP (und eventuelle einige andere höufig genutzte
24
Optionen) zum Dekomprimieren von \fB.xz\fP\-Dateien. \fBlzmadec\fP ist weitgehend
23
Optionen) zum Dekomprimieren von \fB.xz\fP\-Dateien. \fBlzmadec\fP ist weitgehend
25
identisch zu \fBxzdec\fP, mit der Ausnahme, dass \fBlzmadec\fP \fB.lzma\fP\-Dateien
24
identisch zu \fBxzdec\fP, mit der Ausnahme, dass \fBlzmadec\fP \fB.lzma\fP\-Dateien
26
anstelle von \fB.xz\fP\-Dateien unterstützt.
25
anstelle von \fB.xz\fP\-Dateien unterstützt.
(-)xz-5.2.5/po4a/man/de/xzdiff.1 (-5 / +6 lines)
Lines 11-17 Link Here
11
.\" This file was generated with po4a. Translate the source file.
11
.\" This file was generated with po4a. Translate the source file.
12
.\"
12
.\"
13
.\"*******************************************************************
13
.\"*******************************************************************
14
.TH XZDIFF 1 "19. März 2011" Tukaani XZ\-Dienstprogramme
14
.TH XZDIFF 1 "4. Juni 2021" Tukaani XZ\-Dienstprogramme
15
.SH BEZEICHNUNG
15
.SH BEZEICHNUNG
16
xzcmp, xzdiff, lzcmp, lzdiff \- komprimierte Dateien vergleichen
16
xzcmp, xzdiff, lzcmp, lzdiff \- komprimierte Dateien vergleichen
17
.SH ÜBERSICHT
17
.SH ÜBERSICHT
Lines 25-44 Link Here
25
.SH BESCHREIBUNG
25
.SH BESCHREIBUNG
26
Die Dienstprogramme \fBxzcmp\fP und \fBxzdiff\fP führen die Programme \fBcmp\fP(1)
26
Die Dienstprogramme \fBxzcmp\fP und \fBxzdiff\fP führen die Programme \fBcmp\fP(1)
27
beziehungsweise \fBdiff\fP(1) mit Dateien aus, die mittels \fBxz\fP(1),
27
beziehungsweise \fBdiff\fP(1) mit Dateien aus, die mittels \fBxz\fP(1),
28
\fBlzma\fP(1), \fBgzip\fP(1), \fBbzip2\fP(1) oder \fBlzop\fP(1) komprimiert wurden. Alle
28
\fBlzma\fP(1), \fBgzip\fP(1), \fBbzip2\fP(1),  \fBlzop\fP(1) oder \fBzstd\fP komprimiert
29
angegebenen Optionen werden direkt an \fBcmp\fP(1) oder \fBdiff\fP(1)
29
wurden. Alle angegebenen Optionen werden direkt an \fBcmp\fP(1) oder \fBdiff\fP(1)
30
übergeben. Wird nur eine Datei angegeben, wird diese \fIDatei1\fP (die eine
30
übergeben. Wird nur eine Datei angegeben, wird diese \fIDatei1\fP (die eine
31
Endung entsprechend eines der unterstützten Kompressionsformate haben muss)
31
Endung entsprechend eines der unterstützten Kompressionsformate haben muss)
32
mit der \fIDatei1\fP verglichen, von der die Kompressionsformat\-Endung entfernt
32
mit der \fIDatei1\fP verglichen, von der die Kompressionsformat\-Endung entfernt
33
wird. Werden zwei Dateien angegeben, dann werden deren Inhalte (falls nötig,
33
wird. Werden zwei Dateien angegeben, dann werden deren Inhalte (falls nötig,
34
unkomprimiert) an \fBcmp\fP(1) oder \fBdiff\fP(1) weitergeleitet. Der Exit\-Status
34
unkomprimiert) an \fBcmp\fP(1) oder \fBdiff\fP(1) weitergeleitet. Der Exit\-Status
35
von \fBcmp\fP(1) oder \fBdiff\fP(1) wird dabei bewahrt.
35
von \fBcmp\fP(1) oder \fBdiff\fP(1) wird dabei bewahrt (sofern kein
36
Dekompressionsfehler auftrat; in diesem Fall ist der Exit\-Status 2).
36
.PP
37
.PP
37
Die Namen \fBlzcmp\fP und \fBlzdiff\fP dienen der Abwärtskompatibilität zu den
38
Die Namen \fBlzcmp\fP und \fBlzdiff\fP dienen der Abwärtskompatibilität zu den
38
LZMA\-Dienstprogrammen.
39
LZMA\-Dienstprogrammen.
39
.SH "SIEHE AUCH"
40
.SH "SIEHE AUCH"
40
\fBcmp\fP(1), \fBdiff\fP(1), \fBxz\fP(1), \fBgzip\fP(1), \fBbzip2\fP(1), \fBlzop\fP(1),
41
\fBcmp\fP(1), \fBdiff\fP(1), \fBxz\fP(1), \fBgzip\fP(1), \fBbzip2\fP(1), \fBlzop\fP(1),
41
\fBzdiff\fP(1)
42
\fBzstd\fP(1), \fBzdiff\fP(1)
42
.SH FEHLER
43
.SH FEHLER
43
Die Meldungen der Programme \fBcmp\fP(1) oder \fBdiff\fP(1) können auf temporäre
44
Die Meldungen der Programme \fBcmp\fP(1) oder \fBdiff\fP(1) können auf temporäre
44
Dateinamen verweisen anstatt auf die tatsächlich angegebenen Dateinamen.
45
Dateinamen verweisen anstatt auf die tatsächlich angegebenen Dateinamen.
(-)xz-5.2.5/po4a/man/de/xzgrep.1 (-10 / +23 lines)
Lines 11-21 Link Here
11
.\" This file was generated with po4a. Translate the source file.
11
.\" This file was generated with po4a. Translate the source file.
12
.\"
12
.\"
13
.\"*******************************************************************
13
.\"*******************************************************************
14
.TH XZGREP 1 "19. März 2011" Tukaani XZ\-Dienstprogramme
14
.TH XZGREP 1 "19. Juli 2022" Tukaani XZ\-Dienstprogramme
15
.SH BEZEICHNUNG
15
.SH BEZEICHNUNG
16
xzgrep \- komprimierte Dateien nach einem regulären Ausdruck durchsuchen
16
xzgrep \- komprimierte Dateien nach einem regulären Ausdruck durchsuchen
17
.SH ÜBERSICHT
17
.SH ÜBERSICHT
18
\fBxzgrep\fP [\fIgrep\-Optionen\fP] [\fB\-e\fP] \fIMuster\fP \fIDateiname\fP …
18
\fBxzgrep\fP [\fIgrep_Optionen\fP] [\fB\-e\fP] \fIMuster\fP [\fIDatei …\fP]
19
.br
19
.br
20
\fBxzegrep\fP …
20
\fBxzegrep\fP …
21
.br
21
.br
Lines 28-51 Link Here
28
\fBlzfgrep\fP …
28
\fBlzfgrep\fP …
29
.SH BESCHREIBUNG
29
.SH BESCHREIBUNG
30
\fBxzgrep\fP wendet \fBgrep\fP(1) auf \fIDateien\fP an, die entweder unkomprimiert
30
\fBxzgrep\fP wendet \fBgrep\fP(1) auf \fIDateien\fP an, die entweder unkomprimiert
31
oder mit \fBxz\fP(1), \fBlzma\fP(1), \fBgzip\fP(1), \fBbzip2\fP(1) oder \fBlzop\fP(1)
31
oder mit \fBxz\fP(1), \fBlzma\fP(1), \fBgzip\fP(1), \fBbzip2\fP(1), \fBlzop\fP(1) oder
32
komprimiert sein können. Alle angegebenen Optionen werden direkt an
32
\fBzstd\fP komprimiert sein können. Alle angegebenen Optionen werden direkt an
33
\fBgrep\fP(1) übergeben.
33
\fBgrep\fP(1) übergeben.
34
.PP
34
.PP
35
Wenn keine \fIDatei\fP angegeben ist, wird die Standardeingabe dekomprimiert
35
Wenn keine \fIDatei\fP angegeben ist, wird die Standardeingabe dekomprimiert
36
(falls nötig) und an \fBgrep\fP übergeben. Beim Lesen aus der Standardeingabe
36
(falls nötig) und an \fBgrep\fP übergeben. Beim Lesen aus der Standardeingabe
37
keine Dateien unterstützt, die mit \fBgzip\fP(1), \fBbzip2\fP(1) oder \fBlzop\fP(1)
37
keine Dateien unterstützt, die mit \fBgzip\fP(1), \fBbzip2\fP(1), \fBlzop\fP(1) oder
38
komprimiert sind.
38
\fBzstd\fP komprimiert sind.
39
.PP
39
.PP
40
Wenn \fBxzgrep\fP als \fBxzegrep\fP oder \fBxzfgrep\fP aufgerufen wird, dann wird
40
Wenn \fBxzgrep\fP als \fBxzegrep\fP oder \fBxzfgrep\fP aufgerufen wird, dann wird
41
\fBegrep\fP(1) oder \fBfgrep\fP(1) anstelle von \fBgrep\fP(1) verwendet. Genauso
41
\fBgrep \-E\fP oder \fBgrep \-F\fP anstelle von \fBgrep\fP(1) verwendet. Genauso
42
verhalten sich die Befehle \fBlzgrep\fP, \fBlzegrep\fP und \fBlzfgrep\fP, die die
42
verhalten sich die Befehle \fBlzgrep\fP, \fBlzegrep\fP und \fBlzfgrep\fP, die die
43
Abwärtskompatibilität zu den LZMA\-Dienstprogrammen gewährleisten.
43
Abwärtskompatibilität zu den LZMA\-Dienstprogrammen gewährleisten.
44
.PP
44
.SH EXIT\-STATUS
45
.TP 
46
0
47
In mindestens einer der Eingabedateien wurde mindestens ein Treffer
48
gefunden. Es sind keine Fehler aufgetreten.
49
.TP 
50
1
51
In keiner der Eingabedateien wurde ein Treffer gefunden. Es sind keine
52
Fehler aufgetreten.
53
.TP 
54
>1
55
Ein oder mehrere Fehler sind aufgetreten. Es ist unbekannt, ob Treffer
56
gefunden wurden.
45
.SH UMGEBUNGSVARIABLEN
57
.SH UMGEBUNGSVARIABLEN
46
.TP 
58
.TP 
47
\fBGREP\fP
59
\fBGREP\fP
48
Wenn die Umgebungsvariable \fBGREP\fP gesetzt ist, verwendet \fBxzgrep\fP deren
60
Wenn die Umgebungsvariable \fBGREP\fP gesetzt ist, verwendet \fBxzgrep\fP deren
49
Inhalt anstelle von \fBgrep\fP(1), \fBegrep\fP(1) oder \fBfgrep\fP(1).
61
Inhalt anstelle von \fBgrep\fP(1), \fBgrep \-E\fP oder \fBgrep \-F\fP.
50
.SH "SIEHE AUCH"
62
.SH "SIEHE AUCH"
51
\fBgrep\fP(1), \fBxz\fP(1), \fBgzip\fP(1), \fBbzip2\fP(1), \fBlzop\fP(1), \fBzgrep\fP(1)
63
\fBgrep\fP(1), \fBxz\fP(1), \fBgzip\fP(1), \fBbzip2\fP(1), \fBlzop\fP(1), \fBzstd\fP(1),
64
\fBzgrep\fP(1)
(-)xz-5.2.5/po4a/po4a.conf (-1 / +1 lines)
Lines 2-8 Link Here
2
# to get a new .po file. After translating the .po file, run
2
# to get a new .po file. After translating the .po file, run
3
# "update-po" again to generate the translated man pages.
3
# "update-po" again to generate the translated man pages.
4
4
5
[po4a_langs] de
5
[po4a_langs] de fr ko pt_BR ro uk
6
[po4a_paths] xz-man.pot $lang:$lang.po
6
[po4a_paths] xz-man.pot $lang:$lang.po
7
7
8
[type: man] ../src/xz/xz.1              $lang:man/$lang/xz.1
8
[type: man] ../src/xz/xz.1              $lang:man/$lang/xz.1
(-)xz-5.2.5/po4a/update-po (-2 / +2 lines)
Lines 26-32 Link Here
26
if test ! -f po4a.conf; then
26
if test ! -f po4a.conf; then
27
	cd `dirname "$0"` || exit 1
27
	cd `dirname "$0"` || exit 1
28
	if test ! -f po4a.conf; then
28
	if test ! -f po4a.conf; then
29
		echo "update-po: Error: Cannot find po4a.conf." >&2
29
		echo "po4a/update-po: Error: Cannot find po4a.conf." >&2
30
		exit 1
30
		exit 1
31
	fi
31
	fi
32
fi
32
fi
Lines 41-45 Link Here
41
po4a --force --verbose \
41
po4a --force --verbose \
42
	--package-name="XZ Utils" \
42
	--package-name="XZ Utils" \
43
	--package-version="$PACKAGE_VERSION" \
43
	--package-version="$PACKAGE_VERSION" \
44
	--copyright-holder="This file is put in the public domain." \
44
	--copyright-holder="[See the headers in the input files.]" \
45
	po4a.conf
45
	po4a.conf
(-)xz-5.2.5/po4a/xz-man.pot (-791 / +1039 lines)
Lines 1-19 Link Here
1
# SOME DESCRIPTIVE TITLE
1
# SOME DESCRIPTIVE TITLE
2
# Copyright (C) YEAR This file is put in the public domain.
2
# Copyright (C) YEAR [See the headers in the input files.]
3
# This file is distributed under the same license as the XZ Utils package.
3
# This file is distributed under the same license as the XZ Utils package.
4
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
4
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
#
5
#
6
#, fuzzy
6
#, fuzzy
7
msgid ""
7
msgid ""
8
msgstr ""
8
msgstr ""
9
"Project-Id-Version: XZ Utils 5.2.5\n"
9
"Project-Id-Version: XZ Utils 5.4.3\n"
10
"POT-Creation-Date: 2020-03-17 16:31+0200\n"
10
"POT-Creation-Date: 2023-05-04 22:33+0800\n"
11
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
11
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
"Language-Team: LANGUAGE <LL@li.org>\n"
13
"Language-Team: LANGUAGE <LL@li.org>\n"
14
"Language: \n"
14
"Language: \n"
15
"MIME-Version: 1.0\n"
15
"MIME-Version: 1.0\n"
16
"Content-Type: text/plain; charset=CHARSET\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
17
"Content-Transfer-Encoding: 8bit\n"
17
"Content-Transfer-Encoding: 8bit\n"
18
18
19
#. type: TH
19
#. type: TH
Lines 25-47 Link Here
25
#. type: TH
25
#. type: TH
26
#: ../src/xz/xz.1:8
26
#: ../src/xz/xz.1:8
27
#, no-wrap
27
#, no-wrap
28
msgid "2020-02-01"
28
msgid "2022-12-01"
29
msgstr ""
29
msgstr ""
30
30
31
#. type: TH
31
#. type: TH
32
#: ../src/xz/xz.1:8 ../src/xzdec/xzdec.1:7 ../src/lzmainfo/lzmainfo.1:7 ../src/scripts/xzdiff.1:9 ../src/scripts/xzgrep.1:9 ../src/scripts/xzless.1:10 ../src/scripts/xzmore.1:7
32
#: ../src/xz/xz.1:8 ../src/xzdec/xzdec.1:7 ../src/lzmainfo/lzmainfo.1:7
33
#: ../src/scripts/xzdiff.1:9 ../src/scripts/xzgrep.1:9
34
#: ../src/scripts/xzless.1:10 ../src/scripts/xzmore.1:7
33
#, no-wrap
35
#, no-wrap
34
msgid "Tukaani"
36
msgid "Tukaani"
35
msgstr ""
37
msgstr ""
36
38
37
#. type: TH
39
#. type: TH
38
#: ../src/xz/xz.1:8 ../src/xzdec/xzdec.1:7 ../src/lzmainfo/lzmainfo.1:7 ../src/scripts/xzdiff.1:9 ../src/scripts/xzgrep.1:9 ../src/scripts/xzless.1:10 ../src/scripts/xzmore.1:7
40
#: ../src/xz/xz.1:8 ../src/xzdec/xzdec.1:7 ../src/lzmainfo/lzmainfo.1:7
41
#: ../src/scripts/xzdiff.1:9 ../src/scripts/xzgrep.1:9
42
#: ../src/scripts/xzless.1:10 ../src/scripts/xzmore.1:7
39
#, no-wrap
43
#, no-wrap
40
msgid "XZ Utils"
44
msgid "XZ Utils"
41
msgstr ""
45
msgstr ""
42
46
43
#. type: SH
47
#. type: SH
44
#: ../src/xz/xz.1:10 ../src/xzdec/xzdec.1:8 ../src/lzmainfo/lzmainfo.1:8 ../src/scripts/xzdiff.1:10 ../src/scripts/xzgrep.1:10 ../src/scripts/xzless.1:11 ../src/scripts/xzmore.1:8
48
#: ../src/xz/xz.1:10 ../src/xzdec/xzdec.1:8 ../src/lzmainfo/lzmainfo.1:8
49
#: ../src/scripts/xzdiff.1:10 ../src/scripts/xzgrep.1:10
50
#: ../src/scripts/xzless.1:11 ../src/scripts/xzmore.1:8
45
#, no-wrap
51
#, no-wrap
46
msgid "NAME"
52
msgid "NAME"
47
msgstr ""
53
msgstr ""
Lines 54-60 Link Here
54
msgstr ""
60
msgstr ""
55
61
56
#. type: SH
62
#. type: SH
57
#: ../src/xz/xz.1:13 ../src/xzdec/xzdec.1:10 ../src/lzmainfo/lzmainfo.1:10 ../src/scripts/xzdiff.1:12 ../src/scripts/xzgrep.1:12 ../src/scripts/xzless.1:13 ../src/scripts/xzmore.1:10
63
#: ../src/xz/xz.1:13 ../src/xzdec/xzdec.1:10 ../src/lzmainfo/lzmainfo.1:10
64
#: ../src/scripts/xzdiff.1:12 ../src/scripts/xzgrep.1:12
65
#: ../src/scripts/xzless.1:13 ../src/scripts/xzmore.1:10
58
#, no-wrap
66
#, no-wrap
59
msgid "SYNOPSIS"
67
msgid "SYNOPSIS"
60
msgstr ""
68
msgstr ""
Lines 104-125 Link Here
104
msgstr ""
112
msgstr ""
105
113
106
#. type: SH
114
#. type: SH
107
#: ../src/xz/xz.1:51 ../src/xzdec/xzdec.1:18 ../src/lzmainfo/lzmainfo.1:15 ../src/scripts/xzdiff.1:24 ../src/scripts/xzgrep.1:33 ../src/scripts/xzless.1:19 ../src/scripts/xzmore.1:16
115
#: ../src/xz/xz.1:51 ../src/xzdec/xzdec.1:18 ../src/lzmainfo/lzmainfo.1:15
116
#: ../src/scripts/xzdiff.1:24 ../src/scripts/xzgrep.1:33
117
#: ../src/scripts/xzless.1:19 ../src/scripts/xzmore.1:16
108
#, no-wrap
118
#, no-wrap
109
msgid "DESCRIPTION"
119
msgid "DESCRIPTION"
110
msgstr ""
120
msgstr ""
111
121
112
#. type: Plain text
122
#. type: Plain text
113
#: ../src/xz/xz.1:65
123
#: ../src/xz/xz.1:70
114
msgid ""
124
msgid ""
115
"B<xz> is a general-purpose data compression tool with command line syntax "
125
"B<xz> is a general-purpose data compression tool with command line syntax "
116
"similar to B<gzip>(1)  and B<bzip2>(1).  The native file format is the "
126
"similar to B<gzip>(1)  and B<bzip2>(1).  The native file format is the "
117
"B<.xz> format, but the legacy B<.lzma> format used by LZMA Utils and raw "
127
"B<.xz> format, but the legacy B<.lzma> format used by LZMA Utils and raw "
118
"compressed streams with no container format headers are also supported."
128
"compressed streams with no container format headers are also supported.  In "
129
"addition, decompression of the B<.lz> format used by B<lzip> is supported."
119
msgstr ""
130
msgstr ""
120
131
121
#. type: Plain text
132
#. type: Plain text
122
#: ../src/xz/xz.1:87
133
#: ../src/xz/xz.1:92
123
msgid ""
134
msgid ""
124
"B<xz> compresses or decompresses each I<file> according to the selected "
135
"B<xz> compresses or decompresses each I<file> according to the selected "
125
"operation mode.  If no I<files> are given or I<file> is B<->, B<xz> reads "
136
"operation mode.  If no I<files> are given or I<file> is B<->, B<xz> reads "
Lines 130-195 Link Here
130
msgstr ""
141
msgstr ""
131
142
132
#. type: Plain text
143
#. type: Plain text
133
#: ../src/xz/xz.1:97
144
#: ../src/xz/xz.1:102
134
msgid ""
145
msgid ""
135
"Unless B<--stdout> is specified, I<files> other than B<-> are written to a "
146
"Unless B<--stdout> is specified, I<files> other than B<-> are written to a "
136
"new file whose name is derived from the source I<file> name:"
147
"new file whose name is derived from the source I<file> name:"
137
msgstr ""
148
msgstr ""
138
149
139
#. type: IP
150
#. type: IP
140
#: ../src/xz/xz.1:97 ../src/xz/xz.1:103 ../src/xz/xz.1:127 ../src/xz/xz.1:132 ../src/xz/xz.1:135 ../src/xz/xz.1:138 ../src/xz/xz.1:154 ../src/xz/xz.1:395 ../src/xz/xz.1:398 ../src/xz/xz.1:405 ../src/xz/xz.1:621 ../src/xz/xz.1:623 ../src/xz/xz.1:722 ../src/xz/xz.1:733 ../src/xz/xz.1:742 ../src/xz/xz.1:750 ../src/xz/xz.1:965 ../src/xz/xz.1:974 ../src/xz/xz.1:986 ../src/xz/xz.1:1552 ../src/xz/xz.1:1558 ../src/xz/xz.1:1674 ../src/xz/xz.1:1678 ../src/xz/xz.1:1681 ../src/xz/xz.1:1684 ../src/xz/xz.1:1688 ../src/xz/xz.1:1695 ../src/xz/xz.1:1697
151
#: ../src/xz/xz.1:102 ../src/xz/xz.1:108 ../src/xz/xz.1:133 ../src/xz/xz.1:138
152
#: ../src/xz/xz.1:141 ../src/xz/xz.1:144 ../src/xz/xz.1:160 ../src/xz/xz.1:421
153
#: ../src/xz/xz.1:424 ../src/xz/xz.1:431 ../src/xz/xz.1:676 ../src/xz/xz.1:678
154
#: ../src/xz/xz.1:777 ../src/xz/xz.1:788 ../src/xz/xz.1:797 ../src/xz/xz.1:805
155
#: ../src/xz/xz.1:1033 ../src/xz/xz.1:1042 ../src/xz/xz.1:1054
156
#: ../src/xz/xz.1:1729 ../src/xz/xz.1:1735 ../src/xz/xz.1:1853
157
#: ../src/xz/xz.1:1857 ../src/xz/xz.1:1860 ../src/xz/xz.1:1863
158
#: ../src/xz/xz.1:1867 ../src/xz/xz.1:1874 ../src/xz/xz.1:1876
141
#, no-wrap
159
#, no-wrap
142
msgid "\\(bu"
160
msgid "\\(bu"
143
msgstr ""
161
msgstr ""
144
162
145
#. type: Plain text
163
#. type: Plain text
146
#: ../src/xz/xz.1:103
164
#: ../src/xz/xz.1:108
147
msgid ""
165
msgid ""
148
"When compressing, the suffix of the target file format (B<.xz> or B<.lzma>)  "
166
"When compressing, the suffix of the target file format (B<.xz> or B<.lzma>)  "
149
"is appended to the source filename to get the target filename."
167
"is appended to the source filename to get the target filename."
150
msgstr ""
168
msgstr ""
151
169
152
#. type: Plain text
170
#. type: Plain text
153
#: ../src/xz/xz.1:117
171
#: ../src/xz/xz.1:123
154
msgid ""
172
msgid ""
155
"When decompressing, the B<.xz> or B<.lzma> suffix is removed from the "
173
"When decompressing, the B<.xz>, B<.lzma>, or B<.lz> suffix is removed from "
156
"filename to get the target filename.  B<xz> also recognizes the suffixes "
174
"the filename to get the target filename.  B<xz> also recognizes the suffixes "
157
"B<.txz> and B<.tlz>, and replaces them with the B<.tar> suffix."
175
"B<.txz> and B<.tlz>, and replaces them with the B<.tar> suffix."
158
msgstr ""
176
msgstr ""
159
177
160
#. type: Plain text
178
#. type: Plain text
161
#: ../src/xz/xz.1:121
179
#: ../src/xz/xz.1:127
162
msgid ""
180
msgid ""
163
"If the target file already exists, an error is displayed and the I<file> is "
181
"If the target file already exists, an error is displayed and the I<file> is "
164
"skipped."
182
"skipped."
165
msgstr ""
183
msgstr ""
166
184
167
#. type: Plain text
185
#. type: Plain text
168
#: ../src/xz/xz.1:127
186
#: ../src/xz/xz.1:133
169
msgid ""
187
msgid ""
170
"Unless writing to standard output, B<xz> will display a warning and skip the "
188
"Unless writing to standard output, B<xz> will display a warning and skip the "
171
"I<file> if any of the following applies:"
189
"I<file> if any of the following applies:"
172
msgstr ""
190
msgstr ""
173
191
174
#. type: Plain text
192
#. type: Plain text
175
#: ../src/xz/xz.1:132
193
#: ../src/xz/xz.1:138
176
msgid ""
194
msgid ""
177
"I<File> is not a regular file.  Symbolic links are not followed, and thus "
195
"I<File> is not a regular file.  Symbolic links are not followed, and thus "
178
"they are not considered to be regular files."
196
"they are not considered to be regular files."
179
msgstr ""
197
msgstr ""
180
198
181
#. type: Plain text
199
#. type: Plain text
182
#: ../src/xz/xz.1:135
200
#: ../src/xz/xz.1:141
183
msgid "I<File> has more than one hard link."
201
msgid "I<File> has more than one hard link."
184
msgstr ""
202
msgstr ""
185
203
186
#. type: Plain text
204
#. type: Plain text
187
#: ../src/xz/xz.1:138
205
#: ../src/xz/xz.1:144
188
msgid "I<File> has setuid, setgid, or sticky bit set."
206
msgid "I<File> has setuid, setgid, or sticky bit set."
189
msgstr ""
207
msgstr ""
190
208
191
#. type: Plain text
209
#. type: Plain text
192
#: ../src/xz/xz.1:154
210
#: ../src/xz/xz.1:160
193
msgid ""
211
msgid ""
194
"The operation mode is set to compress and the I<file> already has a suffix "
212
"The operation mode is set to compress and the I<file> already has a suffix "
195
"of the target file format (B<.xz> or B<.txz> when compressing to the B<.xz> "
213
"of the target file format (B<.xz> or B<.txz> when compressing to the B<.xz> "
Lines 197-211 Link Here
197
msgstr ""
215
msgstr ""
198
216
199
#. type: Plain text
217
#. type: Plain text
200
#: ../src/xz/xz.1:163
218
#: ../src/xz/xz.1:170
201
msgid ""
219
msgid ""
202
"The operation mode is set to decompress and the I<file> doesn't have a "
220
"The operation mode is set to decompress and the I<file> doesn't have a "
203
"suffix of any of the supported file formats (B<.xz>, B<.txz>, B<.lzma>, or "
221
"suffix of any of the supported file formats (B<.xz>, B<.txz>, B<.lzma>, "
204
"B<.tlz>)."
222
"B<.tlz>, or B<.lz>)."
205
msgstr ""
223
msgstr ""
206
224
207
#. type: Plain text
225
#. type: Plain text
208
#: ../src/xz/xz.1:178
226
#: ../src/xz/xz.1:185
209
msgid ""
227
msgid ""
210
"After successfully compressing or decompressing the I<file>, B<xz> copies "
228
"After successfully compressing or decompressing the I<file>, B<xz> copies "
211
"the owner, group, permissions, access time, and modification time from the "
229
"the owner, group, permissions, access time, and modification time from the "
Lines 217-231 Link Here
217
msgstr ""
235
msgstr ""
218
236
219
#. type: Plain text
237
#. type: Plain text
220
#: ../src/xz/xz.1:187
238
#: ../src/xz/xz.1:195
221
msgid ""
239
msgid ""
222
"Once the target file has been successfully closed, the source I<file> is "
240
"Once the target file has been successfully closed, the source I<file> is "
223
"removed unless B<--keep> was specified.  The source I<file> is never removed "
241
"removed unless B<--keep> was specified.  The source I<file> is never removed "
224
"if the output is written to standard output."
242
"if the output is written to standard output or if an error occurs."
225
msgstr ""
243
msgstr ""
226
244
227
#. type: Plain text
245
#. type: Plain text
228
#: ../src/xz/xz.1:199
246
#: ../src/xz/xz.1:207
229
msgid ""
247
msgid ""
230
"Sending B<SIGINFO> or B<SIGUSR1> to the B<xz> process makes it print "
248
"Sending B<SIGINFO> or B<SIGUSR1> to the B<xz> process makes it print "
231
"progress information to standard error.  This has only limited use since "
249
"progress information to standard error.  This has only limited use since "
Lines 234-246 Link Here
234
msgstr ""
252
msgstr ""
235
253
236
#. type: SS
254
#. type: SS
237
#: ../src/xz/xz.1:200
255
#: ../src/xz/xz.1:208
238
#, no-wrap
256
#, no-wrap
239
msgid "Memory usage"
257
msgid "Memory usage"
240
msgstr ""
258
msgstr ""
241
259
242
#. type: Plain text
260
#. type: Plain text
243
#: ../src/xz/xz.1:216
261
#: ../src/xz/xz.1:224
244
msgid ""
262
msgid ""
245
"The memory usage of B<xz> varies from a few hundred kilobytes to several "
263
"The memory usage of B<xz> varies from a few hundred kilobytes to several "
246
"gigabytes depending on the compression settings.  The settings used when "
264
"gigabytes depending on the compression settings.  The settings used when "
Lines 253-274 Link Here
253
msgstr ""
271
msgstr ""
254
272
255
#. type: Plain text
273
#. type: Plain text
256
#: ../src/xz/xz.1:228
274
#: ../src/xz/xz.1:236
257
msgid ""
275
msgid ""
258
"Especially users of older systems may find the possibility of very large "
276
"Especially users of older systems may find the possibility of very large "
259
"memory usage annoying.  To prevent uncomfortable surprises, B<xz> has a "
277
"memory usage annoying.  To prevent uncomfortable surprises, B<xz> has a "
260
"built-in memory usage limiter, which is disabled by default.  While some "
278
"built-in memory usage limiter, which is disabled by default.  While some "
261
"operating systems provide ways to limit the memory usage of processes, "
279
"operating systems provide ways to limit the memory usage of processes, "
262
"relying on it wasn't deemed to be flexible enough (e.g. using B<ulimit>(1)  "
280
"relying on it wasn't deemed to be flexible enough (for example, using "
263
"to limit virtual memory tends to cripple B<mmap>(2))."
281
"B<ulimit>(1)  to limit virtual memory tends to cripple B<mmap>(2))."
264
msgstr ""
282
msgstr ""
265
283
266
#. type: Plain text
284
#. type: Plain text
267
#: ../src/xz/xz.1:248
285
#: ../src/xz/xz.1:258
268
msgid ""
286
msgid ""
269
"The memory usage limiter can be enabled with the command line option "
287
"The memory usage limiter can be enabled with the command line option "
270
"B<--memlimit=>I<limit>.  Often it is more convenient to enable the limiter "
288
"B<--memlimit=>I<limit>.  Often it is more convenient to enable the limiter "
271
"by default by setting the environment variable B<XZ_DEFAULTS>, e.g.\\& "
289
"by default by setting the environment variable B<XZ_DEFAULTS>, for example, "
272
"B<XZ_DEFAULTS=--memlimit=150MiB>.  It is possible to set the limits "
290
"B<XZ_DEFAULTS=--memlimit=150MiB>.  It is possible to set the limits "
273
"separately for compression and decompression by using "
291
"separately for compression and decompression by using "
274
"B<--memlimit-compress=>I<limit> and B<--memlimit-decompress=>I<limit>.  "
292
"B<--memlimit-compress=>I<limit> and B<--memlimit-decompress=>I<limit>.  "
Lines 279-285 Link Here
279
msgstr ""
297
msgstr ""
280
298
281
#. type: Plain text
299
#. type: Plain text
282
#: ../src/xz/xz.1:265
300
#: ../src/xz/xz.1:277
283
msgid ""
301
msgid ""
284
"If the specified memory usage limit is exceeded when decompressing, B<xz> "
302
"If the specified memory usage limit is exceeded when decompressing, B<xz> "
285
"will display an error and decompressing the file will fail.  If the limit is "
303
"will display an error and decompressing the file will fail.  If the limit is "
Lines 287-341 Link Here
287
"the limit is no longer exceeded (except when using B<--format=raw> or "
305
"the limit is no longer exceeded (except when using B<--format=raw> or "
288
"B<--no-adjust>).  This way the operation won't fail unless the limit is very "
306
"B<--no-adjust>).  This way the operation won't fail unless the limit is very "
289
"small.  The scaling of the settings is done in steps that don't match the "
307
"small.  The scaling of the settings is done in steps that don't match the "
290
"compression level presets, e.g. if the limit is only slightly less than the "
308
"compression level presets, for example, if the limit is only slightly less "
291
"amount required for B<xz -9>, the settings will be scaled down only a "
309
"than the amount required for B<xz -9>, the settings will be scaled down only "
292
"little, not all the way down to B<xz -8>."
310
"a little, not all the way down to B<xz -8>."
293
msgstr ""
311
msgstr ""
294
312
295
#. type: SS
313
#. type: SS
296
#: ../src/xz/xz.1:266
314
#: ../src/xz/xz.1:278
297
#, no-wrap
315
#, no-wrap
298
msgid "Concatenation and padding with .xz files"
316
msgid "Concatenation and padding with .xz files"
299
msgstr ""
317
msgstr ""
300
318
301
#. type: Plain text
319
#. type: Plain text
302
#: ../src/xz/xz.1:274
320
#: ../src/xz/xz.1:286
303
msgid ""
321
msgid ""
304
"It is possible to concatenate B<.xz> files as is.  B<xz> will decompress "
322
"It is possible to concatenate B<.xz> files as is.  B<xz> will decompress "
305
"such files as if they were a single B<.xz> file."
323
"such files as if they were a single B<.xz> file."
306
msgstr ""
324
msgstr ""
307
325
308
#. type: Plain text
326
#. type: Plain text
309
#: ../src/xz/xz.1:283
327
#: ../src/xz/xz.1:295
310
msgid ""
328
msgid ""
311
"It is possible to insert padding between the concatenated parts or after the "
329
"It is possible to insert padding between the concatenated parts or after the "
312
"last part.  The padding must consist of null bytes and the size of the "
330
"last part.  The padding must consist of null bytes and the size of the "
313
"padding must be a multiple of four bytes.  This can be useful e.g. if the "
331
"padding must be a multiple of four bytes.  This can be useful, for example, "
314
"B<.xz> file is stored on a medium that measures file sizes in 512-byte "
332
"if the B<.xz> file is stored on a medium that measures file sizes in "
315
"blocks."
333
"512-byte blocks."
316
msgstr ""
334
msgstr ""
317
335
318
#. type: Plain text
336
#. type: Plain text
319
#: ../src/xz/xz.1:287
337
#: ../src/xz/xz.1:299
320
msgid ""
338
msgid ""
321
"Concatenation and padding are not allowed with B<.lzma> files or raw "
339
"Concatenation and padding are not allowed with B<.lzma> files or raw "
322
"streams."
340
"streams."
323
msgstr ""
341
msgstr ""
324
342
325
#. type: SH
343
#. type: SH
326
#: ../src/xz/xz.1:288 ../src/xzdec/xzdec.1:61
344
#: ../src/xz/xz.1:300 ../src/xzdec/xzdec.1:61
327
#, no-wrap
345
#, no-wrap
328
msgid "OPTIONS"
346
msgid "OPTIONS"
329
msgstr ""
347
msgstr ""
330
348
331
#. type: SS
349
#. type: SS
332
#: ../src/xz/xz.1:290
350
#: ../src/xz/xz.1:302
333
#, no-wrap
351
#, no-wrap
334
msgid "Integer suffixes and special values"
352
msgid "Integer suffixes and special values"
335
msgstr ""
353
msgstr ""
336
354
337
#. type: Plain text
355
#. type: Plain text
338
#: ../src/xz/xz.1:294
356
#: ../src/xz/xz.1:306
339
msgid ""
357
msgid ""
340
"In most places where an integer argument is expected, an optional suffix is "
358
"In most places where an integer argument is expected, an optional suffix is "
341
"supported to easily indicate large integers.  There must be no space between "
359
"supported to easily indicate large integers.  There must be no space between "
Lines 343-412 Link Here
343
msgstr ""
361
msgstr ""
344
362
345
#. type: TP
363
#. type: TP
346
#: ../src/xz/xz.1:294
364
#: ../src/xz/xz.1:306
347
#, no-wrap
365
#, no-wrap
348
msgid "B<KiB>"
366
msgid "B<KiB>"
349
msgstr ""
367
msgstr ""
350
368
351
#. type: Plain text
369
#. type: Plain text
352
#: ../src/xz/xz.1:305
370
#: ../src/xz/xz.1:317
353
msgid ""
371
msgid ""
354
"Multiply the integer by 1,024 (2^10).  B<Ki>, B<k>, B<kB>, B<K>, and B<KB> "
372
"Multiply the integer by 1,024 (2^10).  B<Ki>, B<k>, B<kB>, B<K>, and B<KB> "
355
"are accepted as synonyms for B<KiB>."
373
"are accepted as synonyms for B<KiB>."
356
msgstr ""
374
msgstr ""
357
375
358
#. type: TP
376
#. type: TP
359
#: ../src/xz/xz.1:305
377
#: ../src/xz/xz.1:317
360
#, no-wrap
378
#, no-wrap
361
msgid "B<MiB>"
379
msgid "B<MiB>"
362
msgstr ""
380
msgstr ""
363
381
364
#. type: Plain text
382
#. type: Plain text
365
#: ../src/xz/xz.1:315
383
#: ../src/xz/xz.1:327
366
msgid ""
384
msgid ""
367
"Multiply the integer by 1,048,576 (2^20).  B<Mi>, B<m>, B<M>, and B<MB> are "
385
"Multiply the integer by 1,048,576 (2^20).  B<Mi>, B<m>, B<M>, and B<MB> are "
368
"accepted as synonyms for B<MiB>."
386
"accepted as synonyms for B<MiB>."
369
msgstr ""
387
msgstr ""
370
388
371
#. type: TP
389
#. type: TP
372
#: ../src/xz/xz.1:315
390
#: ../src/xz/xz.1:327
373
#, no-wrap
391
#, no-wrap
374
msgid "B<GiB>"
392
msgid "B<GiB>"
375
msgstr ""
393
msgstr ""
376
394
377
#. type: Plain text
395
#. type: Plain text
378
#: ../src/xz/xz.1:325
396
#: ../src/xz/xz.1:337
379
msgid ""
397
msgid ""
380
"Multiply the integer by 1,073,741,824 (2^30).  B<Gi>, B<g>, B<G>, and B<GB> "
398
"Multiply the integer by 1,073,741,824 (2^30).  B<Gi>, B<g>, B<G>, and B<GB> "
381
"are accepted as synonyms for B<GiB>."
399
"are accepted as synonyms for B<GiB>."
382
msgstr ""
400
msgstr ""
383
401
384
#. type: Plain text
402
#. type: Plain text
385
#: ../src/xz/xz.1:330
403
#: ../src/xz/xz.1:342
386
msgid ""
404
msgid ""
387
"The special value B<max> can be used to indicate the maximum integer value "
405
"The special value B<max> can be used to indicate the maximum integer value "
388
"supported by the option."
406
"supported by the option."
389
msgstr ""
407
msgstr ""
390
408
391
#. type: SS
409
#. type: SS
392
#: ../src/xz/xz.1:331
410
#: ../src/xz/xz.1:343
393
#, no-wrap
411
#, no-wrap
394
msgid "Operation mode"
412
msgid "Operation mode"
395
msgstr ""
413
msgstr ""
396
414
397
#. type: Plain text
415
#. type: Plain text
398
#: ../src/xz/xz.1:334
416
#: ../src/xz/xz.1:346
399
msgid "If multiple operation mode options are given, the last one takes effect."
417
msgid "If multiple operation mode options are given, the last one takes effect."
400
msgstr ""
418
msgstr ""
401
419
402
#. type: TP
420
#. type: TP
403
#: ../src/xz/xz.1:334
421
#: ../src/xz/xz.1:346
404
#, no-wrap
422
#, no-wrap
405
msgid "B<-z>, B<--compress>"
423
msgid "B<-z>, B<--compress>"
406
msgstr ""
424
msgstr ""
407
425
408
#. type: Plain text
426
#. type: Plain text
409
#: ../src/xz/xz.1:343
427
#: ../src/xz/xz.1:355
410
msgid ""
428
msgid ""
411
"Compress.  This is the default operation mode when no operation mode option "
429
"Compress.  This is the default operation mode when no operation mode option "
412
"is specified and no other operation mode is implied from the command name "
430
"is specified and no other operation mode is implied from the command name "
Lines 414-437 Link Here
414
msgstr ""
432
msgstr ""
415
433
416
#. type: TP
434
#. type: TP
417
#: ../src/xz/xz.1:343 ../src/xzdec/xzdec.1:62
435
#: ../src/xz/xz.1:355 ../src/xzdec/xzdec.1:62
418
#, no-wrap
436
#, no-wrap
419
msgid "B<-d>, B<--decompress>, B<--uncompress>"
437
msgid "B<-d>, B<--decompress>, B<--uncompress>"
420
msgstr ""
438
msgstr ""
421
439
422
#. type: Plain text
440
#. type: Plain text
423
#: ../src/xz/xz.1:346
441
#: ../src/xz/xz.1:358
424
msgid "Decompress."
442
msgid "Decompress."
425
msgstr ""
443
msgstr ""
426
444
427
#. type: TP
445
#. type: TP
428
#: ../src/xz/xz.1:346
446
#: ../src/xz/xz.1:358
429
#, no-wrap
447
#, no-wrap
430
msgid "B<-t>, B<--test>"
448
msgid "B<-t>, B<--test>"
431
msgstr ""
449
msgstr ""
432
450
433
#. type: Plain text
451
#. type: Plain text
434
#: ../src/xz/xz.1:355
452
#: ../src/xz/xz.1:367
435
msgid ""
453
msgid ""
436
"Test the integrity of compressed I<files>.  This option is equivalent to "
454
"Test the integrity of compressed I<files>.  This option is equivalent to "
437
"B<--decompress --stdout> except that the decompressed data is discarded "
455
"B<--decompress --stdout> except that the decompressed data is discarded "
Lines 440-452 Link Here
440
msgstr ""
458
msgstr ""
441
459
442
#. type: TP
460
#. type: TP
443
#: ../src/xz/xz.1:355
461
#: ../src/xz/xz.1:367
444
#, no-wrap
462
#, no-wrap
445
msgid "B<-l>, B<--list>"
463
msgid "B<-l>, B<--list>"
446
msgstr ""
464
msgstr ""
447
465
448
#. type: Plain text
466
#. type: Plain text
449
#: ../src/xz/xz.1:364
467
#: ../src/xz/xz.1:376
450
msgid ""
468
msgid ""
451
"Print information about compressed I<files>.  No uncompressed output is "
469
"Print information about compressed I<files>.  No uncompressed output is "
452
"produced, and no files are created or removed.  In list mode, the program "
470
"produced, and no files are created or removed.  In list mode, the program "
Lines 455-514 Link Here
455
msgstr ""
473
msgstr ""
456
474
457
#. type: Plain text
475
#. type: Plain text
458
#: ../src/xz/xz.1:379
476
#: ../src/xz/xz.1:391
459
msgid ""
477
msgid ""
460
"The default listing shows basic information about I<files>, one file per "
478
"The default listing shows basic information about I<files>, one file per "
461
"line.  To get more detailed information, use also the B<--verbose> option.  "
479
"line.  To get more detailed information, use also the B<--verbose> option.  "
462
"For even more information, use B<--verbose> twice, but note that this may be "
480
"For even more information, use B<--verbose> twice, but note that this may be "
463
"slow, because getting all the extra information requires many seeks.  The "
481
"slow, because getting all the extra information requires many seeks.  The "
464
"width of verbose output exceeds 80 characters, so piping the output to "
482
"width of verbose output exceeds 80 characters, so piping the output to, for "
465
"e.g.\\& B<less\\ -S> may be convenient if the terminal isn't wide enough."
483
"example, B<less\\ -S> may be convenient if the terminal isn't wide enough."
466
msgstr ""
484
msgstr ""
467
485
468
#. type: Plain text
486
#. type: Plain text
469
#: ../src/xz/xz.1:386
487
#: ../src/xz/xz.1:398
470
msgid ""
488
msgid ""
471
"The exact output may vary between B<xz> versions and different locales.  For "
489
"The exact output may vary between B<xz> versions and different locales.  For "
472
"machine-readable output, B<--robot --list> should be used."
490
"machine-readable output, B<--robot --list> should be used."
473
msgstr ""
491
msgstr ""
474
492
475
#. type: SS
493
#. type: SS
476
#: ../src/xz/xz.1:387
494
#: ../src/xz/xz.1:399
477
#, no-wrap
495
#, no-wrap
478
msgid "Operation modifiers"
496
msgid "Operation modifiers"
479
msgstr ""
497
msgstr ""
480
498
481
#. type: TP
499
#. type: TP
482
#: ../src/xz/xz.1:388 ../src/xzdec/xzdec.1:69
500
#: ../src/xz/xz.1:400 ../src/xzdec/xzdec.1:69
483
#, no-wrap
501
#, no-wrap
484
msgid "B<-k>, B<--keep>"
502
msgid "B<-k>, B<--keep>"
485
msgstr ""
503
msgstr ""
486
504
487
#. type: Plain text
505
#. type: Plain text
488
#: ../src/xz/xz.1:391
506
#: ../src/xz/xz.1:403
489
msgid "Don't delete the input files."
507
msgid "Don't delete the input files."
490
msgstr ""
508
msgstr ""
491
509
510
#. type: Plain text
511
#: ../src/xz/xz.1:417
512
msgid ""
513
"Since B<xz> 5.2.6, this option also makes B<xz> compress or decompress even "
514
"if the input is a symbolic link to a regular file, has more than one hard "
515
"link, or has the setuid, setgid, or sticky bit set.  The setuid, setgid, and "
516
"sticky bits are not copied to the target file.  In earlier versions this was "
517
"only done with B<--force>."
518
msgstr ""
519
492
#. type: TP
520
#. type: TP
493
#: ../src/xz/xz.1:391
521
#: ../src/xz/xz.1:417
494
#, no-wrap
522
#, no-wrap
495
msgid "B<-f>, B<--force>"
523
msgid "B<-f>, B<--force>"
496
msgstr ""
524
msgstr ""
497
525
498
#. type: Plain text
526
#. type: Plain text
499
#: ../src/xz/xz.1:394
527
#: ../src/xz/xz.1:420
500
msgid "This option has several effects:"
528
msgid "This option has several effects:"
501
msgstr ""
529
msgstr ""
502
530
503
#. type: Plain text
531
#. type: Plain text
504
#: ../src/xz/xz.1:398
532
#: ../src/xz/xz.1:424
505
msgid ""
533
msgid ""
506
"If the target file already exists, delete it before compressing or "
534
"If the target file already exists, delete it before compressing or "
507
"decompressing."
535
"decompressing."
508
msgstr ""
536
msgstr ""
509
537
510
#. type: Plain text
538
#. type: Plain text
511
#: ../src/xz/xz.1:405
539
#: ../src/xz/xz.1:431
512
msgid ""
540
msgid ""
513
"Compress or decompress even if the input is a symbolic link to a regular "
541
"Compress or decompress even if the input is a symbolic link to a regular "
514
"file, has more than one hard link, or has the setuid, setgid, or sticky bit "
542
"file, has more than one hard link, or has the setuid, setgid, or sticky bit "
Lines 516-522 Link Here
516
msgstr ""
544
msgstr ""
517
545
518
#. type: Plain text
546
#. type: Plain text
519
#: ../src/xz/xz.1:430
547
#: ../src/xz/xz.1:456
520
msgid ""
548
msgid ""
521
"When used with B<--decompress> B<--stdout> and B<xz> cannot recognize the "
549
"When used with B<--decompress> B<--stdout> and B<xz> cannot recognize the "
522
"type of the source file, copy the source file as is to standard output.  "
550
"type of the source file, copy the source file as is to standard output.  "
Lines 529-554 Link Here
529
msgstr ""
557
msgstr ""
530
558
531
#. type: TP
559
#. type: TP
532
#: ../src/xz/xz.1:431 ../src/xzdec/xzdec.1:76
560
#: ../src/xz/xz.1:457 ../src/xzdec/xzdec.1:76
533
#, no-wrap
561
#, no-wrap
534
msgid "B<-c>, B<--stdout>, B<--to-stdout>"
562
msgid "B<-c>, B<--stdout>, B<--to-stdout>"
535
msgstr ""
563
msgstr ""
536
564
537
#. type: Plain text
565
#. type: Plain text
538
#: ../src/xz/xz.1:437
566
#: ../src/xz/xz.1:463
539
msgid ""
567
msgid ""
540
"Write the compressed or decompressed data to standard output instead of a "
568
"Write the compressed or decompressed data to standard output instead of a "
541
"file.  This implies B<--keep>."
569
"file.  This implies B<--keep>."
542
msgstr ""
570
msgstr ""
543
571
544
#. type: TP
572
#. type: TP
545
#: ../src/xz/xz.1:437
573
#: ../src/xz/xz.1:463
546
#, no-wrap
574
#, no-wrap
547
msgid "B<--single-stream>"
575
msgid "B<--single-stream>"
548
msgstr ""
576
msgstr ""
549
577
550
#. type: Plain text
578
#. type: Plain text
551
#: ../src/xz/xz.1:446
579
#: ../src/xz/xz.1:472
552
msgid ""
580
msgid ""
553
"Decompress only the first B<.xz> stream, and silently ignore possible "
581
"Decompress only the first B<.xz> stream, and silently ignore possible "
554
"remaining input data following the stream.  Normally such trailing garbage "
582
"remaining input data following the stream.  Normally such trailing garbage "
Lines 556-562 Link Here
556
msgstr ""
584
msgstr ""
557
585
558
#. type: Plain text
586
#. type: Plain text
559
#: ../src/xz/xz.1:455
587
#: ../src/xz/xz.1:481
560
msgid ""
588
msgid ""
561
"B<xz> never decompresses more than one stream from B<.lzma> files or raw "
589
"B<xz> never decompresses more than one stream from B<.lzma> files or raw "
562
"streams, but this option still makes B<xz> ignore the possible trailing data "
590
"streams, but this option still makes B<xz> ignore the possible trailing data "
Lines 564-583 Link Here
564
msgstr ""
592
msgstr ""
565
593
566
#. type: Plain text
594
#. type: Plain text
567
#: ../src/xz/xz.1:460
595
#: ../src/xz/xz.1:486
568
msgid ""
596
msgid ""
569
"This option has no effect if the operation mode is not B<--decompress> or "
597
"This option has no effect if the operation mode is not B<--decompress> or "
570
"B<--test>."
598
"B<--test>."
571
msgstr ""
599
msgstr ""
572
600
573
#. type: TP
601
#. type: TP
574
#: ../src/xz/xz.1:460
602
#: ../src/xz/xz.1:486
575
#, no-wrap
603
#, no-wrap
576
msgid "B<--no-sparse>"
604
msgid "B<--no-sparse>"
577
msgstr ""
605
msgstr ""
578
606
579
#. type: Plain text
607
#. type: Plain text
580
#: ../src/xz/xz.1:472
608
#: ../src/xz/xz.1:498
581
msgid ""
609
msgid ""
582
"Disable creation of sparse files.  By default, if decompressing into a "
610
"Disable creation of sparse files.  By default, if decompressing into a "
583
"regular file, B<xz> tries to make the file sparse if the decompressed data "
611
"regular file, B<xz> tries to make the file sparse if the decompressed data "
Lines 589-601 Link Here
589
msgstr ""
617
msgstr ""
590
618
591
#. type: TP
619
#. type: TP
592
#: ../src/xz/xz.1:472
620
#: ../src/xz/xz.1:498
593
#, no-wrap
621
#, no-wrap
594
msgid "B<-S> I<.suf>, B<--suffix=>I<.suf>"
622
msgid "B<-S> I<.suf>, B<--suffix=>I<.suf>"
595
msgstr ""
623
msgstr ""
596
624
597
#. type: Plain text
625
#. type: Plain text
598
#: ../src/xz/xz.1:484
626
#: ../src/xz/xz.1:510
599
msgid ""
627
msgid ""
600
"When compressing, use I<.suf> as the suffix for the target file instead of "
628
"When compressing, use I<.suf> as the suffix for the target file instead of "
601
"B<.xz> or B<.lzma>.  If not writing to standard output and the source file "
629
"B<.xz> or B<.lzma>.  If not writing to standard output and the source file "
Lines 604-619 Link Here
604
msgstr ""
632
msgstr ""
605
633
606
#. type: Plain text
634
#. type: Plain text
607
#: ../src/xz/xz.1:497
635
#: ../src/xz/xz.1:524
608
msgid ""
636
msgid ""
609
"When decompressing, recognize files with the suffix I<.suf> in addition to "
637
"When decompressing, recognize files with the suffix I<.suf> in addition to "
610
"files with the B<.xz>, B<.txz>, B<.lzma>, or B<.tlz> suffix.  If the source "
638
"files with the B<.xz>, B<.txz>, B<.lzma>, B<.tlz>, or B<.lz> suffix.  If the "
611
"file has the suffix I<.suf>, the suffix is removed to get the target "
639
"source file has the suffix I<.suf>, the suffix is removed to get the target "
612
"filename."
640
"filename."
613
msgstr ""
641
msgstr ""
614
642
615
#. type: Plain text
643
#. type: Plain text
616
#: ../src/xz/xz.1:503
644
#: ../src/xz/xz.1:530
617
msgid ""
645
msgid ""
618
"When compressing or decompressing raw streams (B<--format=raw>), the suffix "
646
"When compressing or decompressing raw streams (B<--format=raw>), the suffix "
619
"must always be specified unless writing to standard output, because there is "
647
"must always be specified unless writing to standard output, because there is "
Lines 621-633 Link Here
621
msgstr ""
649
msgstr ""
622
650
623
#. type: TP
651
#. type: TP
624
#: ../src/xz/xz.1:503
652
#: ../src/xz/xz.1:530
625
#, no-wrap
653
#, no-wrap
626
msgid "B<--files>[B<=>I<file>]"
654
msgid "B<--files>[B<=>I<file>]"
627
msgstr ""
655
msgstr ""
628
656
629
#. type: Plain text
657
#. type: Plain text
630
#: ../src/xz/xz.1:517
658
#: ../src/xz/xz.1:544
631
msgid ""
659
msgid ""
632
"Read the filenames to process from I<file>; if I<file> is omitted, filenames "
660
"Read the filenames to process from I<file>; if I<file> is omitted, filenames "
633
"are read from standard input.  Filenames must be terminated with the newline "
661
"are read from standard input.  Filenames must be terminated with the newline "
Lines 637-679 Link Here
637
msgstr ""
665
msgstr ""
638
666
639
#. type: TP
667
#. type: TP
640
#: ../src/xz/xz.1:517
668
#: ../src/xz/xz.1:544
641
#, no-wrap
669
#, no-wrap
642
msgid "B<--files0>[B<=>I<file>]"
670
msgid "B<--files0>[B<=>I<file>]"
643
msgstr ""
671
msgstr ""
644
672
645
#. type: Plain text
673
#. type: Plain text
646
#: ../src/xz/xz.1:521
674
#: ../src/xz/xz.1:548
647
msgid ""
675
msgid ""
648
"This is identical to B<--files>[B<=>I<file>] except that each filename must "
676
"This is identical to B<--files>[B<=>I<file>] except that each filename must "
649
"be terminated with the null character."
677
"be terminated with the null character."
650
msgstr ""
678
msgstr ""
651
679
652
#. type: SS
680
#. type: SS
653
#: ../src/xz/xz.1:522
681
#: ../src/xz/xz.1:549
654
#, no-wrap
682
#, no-wrap
655
msgid "Basic file format and compression options"
683
msgid "Basic file format and compression options"
656
msgstr ""
684
msgstr ""
657
685
658
#. type: TP
686
#. type: TP
659
#: ../src/xz/xz.1:523
687
#: ../src/xz/xz.1:550
660
#, no-wrap
688
#, no-wrap
661
msgid "B<-F> I<format>, B<--format=>I<format>"
689
msgid "B<-F> I<format>, B<--format=>I<format>"
662
msgstr ""
690
msgstr ""
663
691
664
#. type: Plain text
692
#. type: Plain text
665
#: ../src/xz/xz.1:528
693
#: ../src/xz/xz.1:555
666
msgid "Specify the file I<format> to compress or decompress:"
694
msgid "Specify the file I<format> to compress or decompress:"
667
msgstr ""
695
msgstr ""
668
696
669
#. type: TP
697
#. type: TP
670
#: ../src/xz/xz.1:529
698
#: ../src/xz/xz.1:556
671
#, no-wrap
699
#, no-wrap
672
msgid "B<auto>"
700
msgid "B<auto>"
673
msgstr ""
701
msgstr ""
674
702
675
#. type: Plain text
703
#. type: Plain text
676
#: ../src/xz/xz.1:541
704
#: ../src/xz/xz.1:568
677
msgid ""
705
msgid ""
678
"This is the default.  When compressing, B<auto> is equivalent to B<xz>.  "
706
"This is the default.  When compressing, B<auto> is equivalent to B<xz>.  "
679
"When decompressing, the format of the input file is automatically detected.  "
707
"When decompressing, the format of the input file is automatically detected.  "
Lines 682-707 Link Here
682
msgstr ""
710
msgstr ""
683
711
684
#. type: TP
712
#. type: TP
685
#: ../src/xz/xz.1:541
713
#: ../src/xz/xz.1:568
686
#, no-wrap
714
#, no-wrap
687
msgid "B<xz>"
715
msgid "B<xz>"
688
msgstr ""
716
msgstr ""
689
717
690
#. type: Plain text
718
#. type: Plain text
691
#: ../src/xz/xz.1:548
719
#: ../src/xz/xz.1:575
692
msgid ""
720
msgid ""
693
"Compress to the B<.xz> file format, or accept only B<.xz> files when "
721
"Compress to the B<.xz> file format, or accept only B<.xz> files when "
694
"decompressing."
722
"decompressing."
695
msgstr ""
723
msgstr ""
696
724
697
#. type: TP
725
#. type: TP
698
#: ../src/xz/xz.1:548
726
#: ../src/xz/xz.1:575
699
#, no-wrap
727
#, no-wrap
700
msgid "B<lzma>, B<alone>"
728
msgid "B<lzma>, B<alone>"
701
msgstr ""
729
msgstr ""
702
730
703
#. type: Plain text
731
#. type: Plain text
704
#: ../src/xz/xz.1:558
732
#: ../src/xz/xz.1:585
705
msgid ""
733
msgid ""
706
"Compress to the legacy B<.lzma> file format, or accept only B<.lzma> files "
734
"Compress to the legacy B<.lzma> file format, or accept only B<.lzma> files "
707
"when decompressing.  The alternative name B<alone> is provided for backwards "
735
"when decompressing.  The alternative name B<alone> is provided for backwards "
Lines 709-721 Link Here
709
msgstr ""
737
msgstr ""
710
738
711
#. type: TP
739
#. type: TP
712
#: ../src/xz/xz.1:558
740
#: ../src/xz/xz.1:585
713
#, no-wrap
741
#, no-wrap
742
msgid "B<lzip>"
743
msgstr ""
744
745
#. type: Plain text
746
#: ../src/xz/xz.1:591
747
msgid "Accept only B<.lz> files when decompressing.  Compression is not supported."
748
msgstr ""
749
750
#. type: Plain text
751
#: ../src/xz/xz.1:604
752
msgid ""
753
"The B<.lz> format version 0 and the unextended version 1 are supported.  "
754
"Version 0 files were produced by B<lzip> 1.3 and older.  Such files aren't "
755
"common but may be found from file archives as a few source packages were "
756
"released in this format.  People might have old personal files in this "
757
"format too.  Decompression support for the format version 0 was removed in "
758
"B<lzip> 1.18."
759
msgstr ""
760
761
#. type: Plain text
762
#: ../src/xz/xz.1:613
763
msgid ""
764
"B<lzip> 1.4 and later create files in the format version 1.  The sync flush "
765
"marker extension to the format version 1 was added in B<lzip> 1.6.  This "
766
"extension is rarely used and isn't supported by B<xz> (diagnosed as corrupt "
767
"input)."
768
msgstr ""
769
770
#. type: TP
771
#: ../src/xz/xz.1:613
772
#, no-wrap
714
msgid "B<raw>"
773
msgid "B<raw>"
715
msgstr ""
774
msgstr ""
716
775
717
#. type: Plain text
776
#. type: Plain text
718
#: ../src/xz/xz.1:566
777
#: ../src/xz/xz.1:621
719
msgid ""
778
msgid ""
720
"Compress or uncompress a raw stream (no headers).  This is meant for "
779
"Compress or uncompress a raw stream (no headers).  This is meant for "
721
"advanced users only.  To decode raw streams, you need use B<--format=raw> "
780
"advanced users only.  To decode raw streams, you need use B<--format=raw> "
Lines 724-736 Link Here
724
msgstr ""
783
msgstr ""
725
784
726
#. type: TP
785
#. type: TP
727
#: ../src/xz/xz.1:567
786
#: ../src/xz/xz.1:622
728
#, no-wrap
787
#, no-wrap
729
msgid "B<-C> I<check>, B<--check=>I<check>"
788
msgid "B<-C> I<check>, B<--check=>I<check>"
730
msgstr ""
789
msgstr ""
731
790
732
#. type: Plain text
791
#. type: Plain text
733
#: ../src/xz/xz.1:582
792
#: ../src/xz/xz.1:637
734
msgid ""
793
msgid ""
735
"Specify the type of the integrity check.  The check is calculated from the "
794
"Specify the type of the integrity check.  The check is calculated from the "
736
"uncompressed data and stored in the B<.xz> file.  This option has an effect "
795
"uncompressed data and stored in the B<.xz> file.  This option has an effect "
Lines 740-757 Link Here
740
msgstr ""
799
msgstr ""
741
800
742
#. type: Plain text
801
#. type: Plain text
743
#: ../src/xz/xz.1:586
802
#: ../src/xz/xz.1:641
744
msgid "Supported I<check> types:"
803
msgid "Supported I<check> types:"
745
msgstr ""
804
msgstr ""
746
805
747
#. type: TP
806
#. type: TP
748
#: ../src/xz/xz.1:587
807
#: ../src/xz/xz.1:642
749
#, no-wrap
808
#, no-wrap
750
msgid "B<none>"
809
msgid "B<none>"
751
msgstr ""
810
msgstr ""
752
811
753
#. type: Plain text
812
#. type: Plain text
754
#: ../src/xz/xz.1:593
813
#: ../src/xz/xz.1:648
755
msgid ""
814
msgid ""
756
"Don't calculate an integrity check at all.  This is usually a bad idea.  "
815
"Don't calculate an integrity check at all.  This is usually a bad idea.  "
757
"This can be useful when integrity of the data is verified by other means "
816
"This can be useful when integrity of the data is verified by other means "
Lines 759-782 Link Here
759
msgstr ""
818
msgstr ""
760
819
761
#. type: TP
820
#. type: TP
762
#: ../src/xz/xz.1:593
821
#: ../src/xz/xz.1:648
763
#, no-wrap
822
#, no-wrap
764
msgid "B<crc32>"
823
msgid "B<crc32>"
765
msgstr ""
824
msgstr ""
766
825
767
#. type: Plain text
826
#. type: Plain text
768
#: ../src/xz/xz.1:596
827
#: ../src/xz/xz.1:651
769
msgid "Calculate CRC32 using the polynomial from IEEE-802.3 (Ethernet)."
828
msgid "Calculate CRC32 using the polynomial from IEEE-802.3 (Ethernet)."
770
msgstr ""
829
msgstr ""
771
830
772
#. type: TP
831
#. type: TP
773
#: ../src/xz/xz.1:596
832
#: ../src/xz/xz.1:651
774
#, no-wrap
833
#, no-wrap
775
msgid "B<crc64>"
834
msgid "B<crc64>"
776
msgstr ""
835
msgstr ""
777
836
778
#. type: Plain text
837
#. type: Plain text
779
#: ../src/xz/xz.1:601
838
#: ../src/xz/xz.1:656
780
msgid ""
839
msgid ""
781
"Calculate CRC64 using the polynomial from ECMA-182.  This is the default, "
840
"Calculate CRC64 using the polynomial from ECMA-182.  This is the default, "
782
"since it is slightly better than CRC32 at detecting damaged files and the "
841
"since it is slightly better than CRC32 at detecting damaged files and the "
Lines 784-833 Link Here
784
msgstr ""
843
msgstr ""
785
844
786
#. type: TP
845
#. type: TP
787
#: ../src/xz/xz.1:601
846
#: ../src/xz/xz.1:656
788
#, no-wrap
847
#, no-wrap
789
msgid "B<sha256>"
848
msgid "B<sha256>"
790
msgstr ""
849
msgstr ""
791
850
792
#. type: Plain text
851
#. type: Plain text
793
#: ../src/xz/xz.1:605
852
#: ../src/xz/xz.1:660
794
msgid "Calculate SHA-256.  This is somewhat slower than CRC32 and CRC64."
853
msgid "Calculate SHA-256.  This is somewhat slower than CRC32 and CRC64."
795
msgstr ""
854
msgstr ""
796
855
797
#. type: Plain text
856
#. type: Plain text
798
#: ../src/xz/xz.1:611
857
#: ../src/xz/xz.1:666
799
msgid ""
858
msgid ""
800
"Integrity of the B<.xz> headers is always verified with CRC32.  It is not "
859
"Integrity of the B<.xz> headers is always verified with CRC32.  It is not "
801
"possible to change or disable it."
860
"possible to change or disable it."
802
msgstr ""
861
msgstr ""
803
862
804
#. type: TP
863
#. type: TP
805
#: ../src/xz/xz.1:611
864
#: ../src/xz/xz.1:666
806
#, no-wrap
865
#, no-wrap
807
msgid "B<--ignore-check>"
866
msgid "B<--ignore-check>"
808
msgstr ""
867
msgstr ""
809
868
810
#. type: Plain text
869
#. type: Plain text
811
#: ../src/xz/xz.1:617
870
#: ../src/xz/xz.1:672
812
msgid ""
871
msgid ""
813
"Don't verify the integrity check of the compressed data when decompressing.  "
872
"Don't verify the integrity check of the compressed data when decompressing.  "
814
"The CRC32 values in the B<.xz> headers will still be verified normally."
873
"The CRC32 values in the B<.xz> headers will still be verified normally."
815
msgstr ""
874
msgstr ""
816
875
817
#. type: Plain text
876
#. type: Plain text
818
#: ../src/xz/xz.1:620
877
#: ../src/xz/xz.1:675
819
msgid ""
878
msgid ""
820
"B<Do not use this option unless you know what you are doing.> Possible "
879
"B<Do not use this option unless you know what you are doing.> Possible "
821
"reasons to use this option:"
880
"reasons to use this option:"
822
msgstr ""
881
msgstr ""
823
882
824
#. type: Plain text
883
#. type: Plain text
825
#: ../src/xz/xz.1:623
884
#: ../src/xz/xz.1:678
826
msgid "Trying to recover data from a corrupt .xz file."
885
msgid "Trying to recover data from a corrupt .xz file."
827
msgstr ""
886
msgstr ""
828
887
829
#. type: Plain text
888
#. type: Plain text
830
#: ../src/xz/xz.1:629
889
#: ../src/xz/xz.1:684
831
msgid ""
890
msgid ""
832
"Speeding up decompression.  This matters mostly with SHA-256 or with files "
891
"Speeding up decompression.  This matters mostly with SHA-256 or with files "
833
"that have compressed extremely well.  It's recommended to not use this "
892
"that have compressed extremely well.  It's recommended to not use this "
Lines 836-848 Link Here
836
msgstr ""
895
msgstr ""
837
896
838
#. type: TP
897
#. type: TP
839
#: ../src/xz/xz.1:630
898
#: ../src/xz/xz.1:685
840
#, no-wrap
899
#, no-wrap
841
msgid "B<-0> ... B<-9>"
900
msgid "B<-0> ... B<-9>"
842
msgstr ""
901
msgstr ""
843
902
844
#. type: Plain text
903
#. type: Plain text
845
#: ../src/xz/xz.1:639
904
#: ../src/xz/xz.1:694
846
msgid ""
905
msgid ""
847
"Select a compression preset level.  The default is B<-6>.  If multiple "
906
"Select a compression preset level.  The default is B<-6>.  If multiple "
848
"preset levels are specified, the last one takes effect.  If a custom filter "
907
"preset levels are specified, the last one takes effect.  If a custom filter "
Lines 851-857 Link Here
851
msgstr ""
910
msgstr ""
852
911
853
#. type: Plain text
912
#. type: Plain text
854
#: ../src/xz/xz.1:654
913
#: ../src/xz/xz.1:709
855
msgid ""
914
msgid ""
856
"The differences between the presets are more significant than with "
915
"The differences between the presets are more significant than with "
857
"B<gzip>(1)  and B<bzip2>(1).  The selected compression settings determine "
916
"B<gzip>(1)  and B<bzip2>(1).  The selected compression settings determine "
Lines 862-874 Link Here
862
msgstr ""
921
msgstr ""
863
922
864
#. type: TP
923
#. type: TP
865
#: ../src/xz/xz.1:655
924
#: ../src/xz/xz.1:710
866
#, no-wrap
925
#, no-wrap
867
msgid "B<-0> ... B<-3>"
926
msgid "B<-0> ... B<-3>"
868
msgstr ""
927
msgstr ""
869
928
870
#. type: Plain text
929
#. type: Plain text
871
#: ../src/xz/xz.1:667
930
#: ../src/xz/xz.1:722
872
msgid ""
931
msgid ""
873
"These are somewhat fast presets.  B<-0> is sometimes faster than B<gzip -9> "
932
"These are somewhat fast presets.  B<-0> is sometimes faster than B<gzip -9> "
874
"while compressing much better.  The higher ones often have speed comparable "
933
"while compressing much better.  The higher ones often have speed comparable "
Lines 877-905 Link Here
877
msgstr ""
936
msgstr ""
878
937
879
#. type: TP
938
#. type: TP
880
#: ../src/xz/xz.1:667
939
#: ../src/xz/xz.1:722
881
#, no-wrap
940
#, no-wrap
882
msgid "B<-4> ... B<-6>"
941
msgid "B<-4> ... B<-6>"
883
msgstr ""
942
msgstr ""
884
943
885
#. type: Plain text
944
#. type: Plain text
886
#: ../src/xz/xz.1:681
945
#: ../src/xz/xz.1:736
887
msgid ""
946
msgid ""
888
"Good to very good compression while keeping decompressor memory usage "
947
"Good to very good compression while keeping decompressor memory usage "
889
"reasonable even for old systems.  B<-6> is the default, which is usually a "
948
"reasonable even for old systems.  B<-6> is the default, which is usually a "
890
"good choice e.g. for distributing files that need to be decompressible even "
949
"good choice for distributing files that need to be decompressible even on "
891
"on systems with only 16\\ MiB RAM.  (B<-5e> or B<-6e> may be worth "
950
"systems with only 16\\ MiB RAM.  (B<-5e> or B<-6e> may be worth considering "
892
"considering too.  See B<--extreme>.)"
951
"too.  See B<--extreme>.)"
893
msgstr ""
952
msgstr ""
894
953
895
#. type: TP
954
#. type: TP
896
#: ../src/xz/xz.1:681
955
#: ../src/xz/xz.1:736
897
#, no-wrap
956
#, no-wrap
898
msgid "B<-7 ... -9>"
957
msgid "B<-7 ... -9>"
899
msgstr ""
958
msgstr ""
900
959
901
#. type: Plain text
960
#. type: Plain text
902
#: ../src/xz/xz.1:688
961
#: ../src/xz/xz.1:743
903
msgid ""
962
msgid ""
904
"These are like B<-6> but with higher compressor and decompressor memory "
963
"These are like B<-6> but with higher compressor and decompressor memory "
905
"requirements.  These are useful only when compressing files bigger than 8\\ "
964
"requirements.  These are useful only when compressing files bigger than 8\\ "
Lines 907-913 Link Here
907
msgstr ""
966
msgstr ""
908
967
909
#. type: Plain text
968
#. type: Plain text
910
#: ../src/xz/xz.1:696
969
#: ../src/xz/xz.1:751
911
msgid ""
970
msgid ""
912
"On the same hardware, the decompression speed is approximately a constant "
971
"On the same hardware, the decompression speed is approximately a constant "
913
"number of bytes of compressed data per second.  In other words, the better "
972
"number of bytes of compressed data per second.  In other words, the better "
Lines 917-1179 Link Here
917
msgstr ""
976
msgstr ""
918
977
919
#. type: Plain text
978
#. type: Plain text
920
#: ../src/xz/xz.1:698
979
#: ../src/xz/xz.1:753
921
msgid "The following table summarises the features of the presets:"
980
msgid "The following table summarises the features of the presets:"
922
msgstr ""
981
msgstr ""
923
982
924
#. type: tbl table
983
#. type: tbl table
925
#: ../src/xz/xz.1:705 ../src/xz/xz.1:786 ../src/xz/xz.1:2623
984
#: ../src/xz/xz.1:760 ../src/xz/xz.1:841 ../src/xz/xz.1:2839
926
#, no-wrap
985
#, no-wrap
927
msgid "Preset"
986
msgid "Preset"
928
msgstr ""
987
msgstr ""
929
988
930
#. type: tbl table
989
#. type: tbl table
931
#: ../src/xz/xz.1:705 ../src/xz/xz.1:786
990
#: ../src/xz/xz.1:760 ../src/xz/xz.1:841
932
#, no-wrap
991
#, no-wrap
933
msgid "DictSize"
992
msgid "DictSize"
934
msgstr ""
993
msgstr ""
935
994
936
#. type: tbl table
995
#. type: tbl table
937
#: ../src/xz/xz.1:705 ../src/xz/xz.1:786 ../src/xz/xz.1:2623
996
#: ../src/xz/xz.1:760 ../src/xz/xz.1:841 ../src/xz/xz.1:2839
938
#, no-wrap
997
#, no-wrap
939
msgid "CompCPU"
998
msgid "CompCPU"
940
msgstr ""
999
msgstr ""
941
1000
942
#. type: tbl table
1001
#. type: tbl table
943
#: ../src/xz/xz.1:705 ../src/xz/xz.1:786
1002
#: ../src/xz/xz.1:760 ../src/xz/xz.1:841
944
#, no-wrap
1003
#, no-wrap
945
msgid "CompMem"
1004
msgid "CompMem"
946
msgstr ""
1005
msgstr ""
947
1006
948
#. type: tbl table
1007
#. type: tbl table
949
#: ../src/xz/xz.1:705 ../src/xz/xz.1:786
1008
#: ../src/xz/xz.1:760 ../src/xz/xz.1:841
950
#, no-wrap
1009
#, no-wrap
951
msgid "DecMem"
1010
msgid "DecMem"
952
msgstr ""
1011
msgstr ""
953
1012
954
#. type: tbl table
1013
#. type: tbl table
955
#: ../src/xz/xz.1:706 ../src/xz/xz.1:2234 ../src/xz/xz.1:2259 ../src/xz/xz.1:2624
1014
#: ../src/xz/xz.1:761 ../src/xz/xz.1:2450 ../src/xz/xz.1:2475
1015
#: ../src/xz/xz.1:2840
956
#, no-wrap
1016
#, no-wrap
957
msgid "-0"
1017
msgid "-0"
958
msgstr ""
1018
msgstr ""
959
1019
960
#. type: tbl table
1020
#. type: tbl table
961
#: ../src/xz/xz.1:706 ../src/xz/xz.1:787 ../src/xz/xz.1:2234
1021
#: ../src/xz/xz.1:761 ../src/xz/xz.1:842 ../src/xz/xz.1:2450
962
#, no-wrap
1022
#, no-wrap
963
msgid "256 KiB"
1023
msgid "256 KiB"
964
msgstr ""
1024
msgstr ""
965
1025
966
#. type: tbl table
1026
#. type: TP
967
#: ../src/xz/xz.1:706 ../src/xz/xz.1:2624
1027
#: ../src/xz/xz.1:761 ../src/xz/xz.1:2840 ../src/scripts/xzgrep.1:82
968
#, no-wrap
1028
#, no-wrap
969
msgid "0"
1029
msgid "0"
970
msgstr ""
1030
msgstr ""
971
1031
972
#. type: tbl table
1032
#. type: tbl table
973
#: ../src/xz/xz.1:706 ../src/xz/xz.1:708 ../src/xz/xz.1:789 ../src/xz/xz.1:2259
1033
#: ../src/xz/xz.1:761 ../src/xz/xz.1:763 ../src/xz/xz.1:844 ../src/xz/xz.1:2475
974
#, no-wrap
1034
#, no-wrap
975
msgid "3 MiB"
1035
msgid "3 MiB"
976
msgstr ""
1036
msgstr ""
977
1037
978
#. type: tbl table
1038
#. type: tbl table
979
#: ../src/xz/xz.1:706 ../src/xz/xz.1:707 ../src/xz/xz.1:787 ../src/xz/xz.1:788 ../src/xz/xz.1:2235 ../src/xz/xz.1:2236 ../src/xz/xz.1:2238
1039
#: ../src/xz/xz.1:761 ../src/xz/xz.1:762 ../src/xz/xz.1:842 ../src/xz/xz.1:843
1040
#: ../src/xz/xz.1:2451 ../src/xz/xz.1:2452 ../src/xz/xz.1:2454
980
#, no-wrap
1041
#, no-wrap
981
msgid "1 MiB"
1042
msgid "1 MiB"
982
msgstr ""
1043
msgstr ""
983
1044
984
#. type: tbl table
1045
#. type: tbl table
985
#: ../src/xz/xz.1:707 ../src/xz/xz.1:2235 ../src/xz/xz.1:2260 ../src/xz/xz.1:2625
1046
#: ../src/xz/xz.1:762 ../src/xz/xz.1:2451 ../src/xz/xz.1:2476
1047
#: ../src/xz/xz.1:2841
986
#, no-wrap
1048
#, no-wrap
987
msgid "-1"
1049
msgid "-1"
988
msgstr ""
1050
msgstr ""
989
1051
990
#. type: tbl table
1052
#. type: TP
991
#: ../src/xz/xz.1:707 ../src/xz/xz.1:1582 ../src/xz/xz.1:2625
1053
#: ../src/xz/xz.1:762 ../src/xz/xz.1:1758 ../src/xz/xz.1:2841
1054
#: ../src/scripts/xzgrep.1:86
992
#, no-wrap
1055
#, no-wrap
993
msgid "1"
1056
msgid "1"
994
msgstr ""
1057
msgstr ""
995
1058
996
#. type: tbl table
1059
#. type: tbl table
997
#: ../src/xz/xz.1:707 ../src/xz/xz.1:711 ../src/xz/xz.1:712 ../src/xz/xz.1:792 ../src/xz/xz.1:793 ../src/xz/xz.1:2260
1060
#: ../src/xz/xz.1:762 ../src/xz/xz.1:766 ../src/xz/xz.1:767 ../src/xz/xz.1:847
1061
#: ../src/xz/xz.1:848 ../src/xz/xz.1:2476
998
#, no-wrap
1062
#, no-wrap
999
msgid "9 MiB"
1063
msgid "9 MiB"
1000
msgstr ""
1064
msgstr ""
1001
1065
1002
#. type: tbl table
1066
#. type: tbl table
1003
#: ../src/xz/xz.1:707 ../src/xz/xz.1:708 ../src/xz/xz.1:788 ../src/xz/xz.1:789 ../src/xz/xz.1:2236 ../src/xz/xz.1:2239 ../src/xz/xz.1:2260
1067
#: ../src/xz/xz.1:762 ../src/xz/xz.1:763 ../src/xz/xz.1:843 ../src/xz/xz.1:844
1068
#: ../src/xz/xz.1:2452 ../src/xz/xz.1:2455 ../src/xz/xz.1:2476
1004
#, no-wrap
1069
#, no-wrap
1005
msgid "2 MiB"
1070
msgid "2 MiB"
1006
msgstr ""
1071
msgstr ""
1007
1072
1008
#. type: tbl table
1073
#. type: tbl table
1009
#: ../src/xz/xz.1:708 ../src/xz/xz.1:2236 ../src/xz/xz.1:2261 ../src/xz/xz.1:2626
1074
#: ../src/xz/xz.1:763 ../src/xz/xz.1:2452 ../src/xz/xz.1:2477
1075
#: ../src/xz/xz.1:2842
1010
#, no-wrap
1076
#, no-wrap
1011
msgid "-2"
1077
msgid "-2"
1012
msgstr ""
1078
msgstr ""
1013
1079
1014
#. type: tbl table
1080
#. type: tbl table
1015
#: ../src/xz/xz.1:708 ../src/xz/xz.1:1585 ../src/xz/xz.1:2626
1081
#: ../src/xz/xz.1:763 ../src/xz/xz.1:1760 ../src/xz/xz.1:2842
1016
#, no-wrap
1082
#, no-wrap
1017
msgid "2"
1083
msgid "2"
1018
msgstr ""
1084
msgstr ""
1019
1085
1020
#. type: tbl table
1086
#. type: tbl table
1021
#: ../src/xz/xz.1:708 ../src/xz/xz.1:713 ../src/xz/xz.1:794 ../src/xz/xz.1:2261
1087
#: ../src/xz/xz.1:763 ../src/xz/xz.1:768 ../src/xz/xz.1:849 ../src/xz/xz.1:2477
1022
#, no-wrap
1088
#, no-wrap
1023
msgid "17 MiB"
1089
msgid "17 MiB"
1024
msgstr ""
1090
msgstr ""
1025
1091
1026
#. type: tbl table
1092
#. type: tbl table
1027
#: ../src/xz/xz.1:709 ../src/xz/xz.1:2237 ../src/xz/xz.1:2262 ../src/xz/xz.1:2627
1093
#: ../src/xz/xz.1:764 ../src/xz/xz.1:2453 ../src/xz/xz.1:2478
1094
#: ../src/xz/xz.1:2843
1028
#, no-wrap
1095
#, no-wrap
1029
msgid "-3"
1096
msgid "-3"
1030
msgstr ""
1097
msgstr ""
1031
1098
1032
#. type: tbl table
1099
#. type: tbl table
1033
#: ../src/xz/xz.1:709 ../src/xz/xz.1:710 ../src/xz/xz.1:787 ../src/xz/xz.1:790 ../src/xz/xz.1:791 ../src/xz/xz.1:2237 ../src/xz/xz.1:2238 ../src/xz/xz.1:2240
1100
#: ../src/xz/xz.1:764 ../src/xz/xz.1:765 ../src/xz/xz.1:842 ../src/xz/xz.1:845
1101
#: ../src/xz/xz.1:846 ../src/xz/xz.1:2453 ../src/xz/xz.1:2454
1102
#: ../src/xz/xz.1:2456
1034
#, no-wrap
1103
#, no-wrap
1035
msgid "4 MiB"
1104
msgid "4 MiB"
1036
msgstr ""
1105
msgstr ""
1037
1106
1038
#. type: tbl table
1107
#. type: tbl table
1039
#: ../src/xz/xz.1:709 ../src/xz/xz.1:2627
1108
#: ../src/xz/xz.1:764 ../src/xz/xz.1:2843
1040
#, no-wrap
1109
#, no-wrap
1041
msgid "3"
1110
msgid "3"
1042
msgstr ""
1111
msgstr ""
1043
1112
1044
#. type: tbl table
1113
#. type: tbl table
1045
#: ../src/xz/xz.1:709 ../src/xz/xz.1:714 ../src/xz/xz.1:795 ../src/xz/xz.1:2242 ../src/xz/xz.1:2243 ../src/xz/xz.1:2262
1114
#: ../src/xz/xz.1:764 ../src/xz/xz.1:769 ../src/xz/xz.1:850 ../src/xz/xz.1:2458
1115
#: ../src/xz/xz.1:2459 ../src/xz/xz.1:2478
1046
#, no-wrap
1116
#, no-wrap
1047
msgid "32 MiB"
1117
msgid "32 MiB"
1048
msgstr ""
1118
msgstr ""
1049
1119
1050
#. type: tbl table
1120
#. type: tbl table
1051
#: ../src/xz/xz.1:709 ../src/xz/xz.1:710 ../src/xz/xz.1:790 ../src/xz/xz.1:791
1121
#: ../src/xz/xz.1:764 ../src/xz/xz.1:765 ../src/xz/xz.1:845 ../src/xz/xz.1:846
1052
#, no-wrap
1122
#, no-wrap
1053
msgid "5 MiB"
1123
msgid "5 MiB"
1054
msgstr ""
1124
msgstr ""
1055
1125
1056
#. type: tbl table
1126
#. type: tbl table
1057
#: ../src/xz/xz.1:710 ../src/xz/xz.1:2238 ../src/xz/xz.1:2263 ../src/xz/xz.1:2628
1127
#: ../src/xz/xz.1:765 ../src/xz/xz.1:2454 ../src/xz/xz.1:2479
1128
#: ../src/xz/xz.1:2844
1058
#, no-wrap
1129
#, no-wrap
1059
msgid "-4"
1130
msgid "-4"
1060
msgstr ""
1131
msgstr ""
1061
1132
1062
#. type: tbl table
1133
#. type: tbl table
1063
#: ../src/xz/xz.1:710 ../src/xz/xz.1:1583 ../src/xz/xz.1:1584 ../src/xz/xz.1:1587 ../src/xz/xz.1:2628
1134
#: ../src/xz/xz.1:765 ../src/xz/xz.1:1759 ../src/xz/xz.1:1761
1135
#: ../src/xz/xz.1:1762 ../src/xz/xz.1:1764 ../src/xz/xz.1:2844
1064
#, no-wrap
1136
#, no-wrap
1065
msgid "4"
1137
msgid "4"
1066
msgstr ""
1138
msgstr ""
1067
1139
1068
#. type: tbl table
1140
#. type: tbl table
1069
#: ../src/xz/xz.1:710 ../src/xz/xz.1:790 ../src/xz/xz.1:791 ../src/xz/xz.1:2263
1141
#: ../src/xz/xz.1:765 ../src/xz/xz.1:845 ../src/xz/xz.1:846 ../src/xz/xz.1:2479
1070
#, no-wrap
1142
#, no-wrap
1071
msgid "48 MiB"
1143
msgid "48 MiB"
1072
msgstr ""
1144
msgstr ""
1073
1145
1074
#. type: tbl table
1146
#. type: tbl table
1075
#: ../src/xz/xz.1:711 ../src/xz/xz.1:2239 ../src/xz/xz.1:2264 ../src/xz/xz.1:2629
1147
#: ../src/xz/xz.1:766 ../src/xz/xz.1:2455 ../src/xz/xz.1:2480
1148
#: ../src/xz/xz.1:2845
1076
#, no-wrap
1149
#, no-wrap
1077
msgid "-5"
1150
msgid "-5"
1078
msgstr ""
1151
msgstr ""
1079
1152
1080
#. type: tbl table
1153
#. type: tbl table
1081
#: ../src/xz/xz.1:711 ../src/xz/xz.1:712 ../src/xz/xz.1:792 ../src/xz/xz.1:793 ../src/xz/xz.1:2239 ../src/xz/xz.1:2240 ../src/xz/xz.1:2241
1154
#: ../src/xz/xz.1:766 ../src/xz/xz.1:767 ../src/xz/xz.1:847 ../src/xz/xz.1:848
1155
#: ../src/xz/xz.1:2455 ../src/xz/xz.1:2456 ../src/xz/xz.1:2457
1082
#, no-wrap
1156
#, no-wrap
1083
msgid "8 MiB"
1157
msgid "8 MiB"
1084
msgstr ""
1158
msgstr ""
1085
1159
1086
#. type: tbl table
1160
#. type: tbl table
1087
#: ../src/xz/xz.1:711 ../src/xz/xz.1:2629
1161
#: ../src/xz/xz.1:766 ../src/xz/xz.1:2845
1088
#, no-wrap
1162
#, no-wrap
1089
msgid "5"
1163
msgid "5"
1090
msgstr ""
1164
msgstr ""
1091
1165
1092
#. type: tbl table
1166
#. type: tbl table
1093
#: ../src/xz/xz.1:711 ../src/xz/xz.1:712 ../src/xz/xz.1:792 ../src/xz/xz.1:793 ../src/xz/xz.1:2264 ../src/xz/xz.1:2265
1167
#: ../src/xz/xz.1:766 ../src/xz/xz.1:767 ../src/xz/xz.1:847 ../src/xz/xz.1:848
1168
#: ../src/xz/xz.1:2480 ../src/xz/xz.1:2481
1094
#, no-wrap
1169
#, no-wrap
1095
msgid "94 MiB"
1170
msgid "94 MiB"
1096
msgstr ""
1171
msgstr ""
1097
1172
1098
#. type: tbl table
1173
#. type: tbl table
1099
#: ../src/xz/xz.1:712 ../src/xz/xz.1:2240 ../src/xz/xz.1:2265 ../src/xz/xz.1:2630
1174
#: ../src/xz/xz.1:767 ../src/xz/xz.1:2456 ../src/xz/xz.1:2481
1175
#: ../src/xz/xz.1:2846
1100
#, no-wrap
1176
#, no-wrap
1101
msgid "-6"
1177
msgid "-6"
1102
msgstr ""
1178
msgstr ""
1103
1179
1104
#. type: tbl table
1180
#. type: tbl table
1105
#: ../src/xz/xz.1:712 ../src/xz/xz.1:713 ../src/xz/xz.1:714 ../src/xz/xz.1:715 ../src/xz/xz.1:2630
1181
#: ../src/xz/xz.1:767 ../src/xz/xz.1:768 ../src/xz/xz.1:769 ../src/xz/xz.1:770
1182
#: ../src/xz/xz.1:2846
1106
#, no-wrap
1183
#, no-wrap
1107
msgid "6"
1184
msgid "6"
1108
msgstr ""
1185
msgstr ""
1109
1186
1110
#. type: tbl table
1187
#. type: tbl table
1111
#: ../src/xz/xz.1:713 ../src/xz/xz.1:2241 ../src/xz/xz.1:2266
1188
#: ../src/xz/xz.1:768 ../src/xz/xz.1:2457 ../src/xz/xz.1:2482
1112
#, no-wrap
1189
#, no-wrap
1113
msgid "-7"
1190
msgid "-7"
1114
msgstr ""
1191
msgstr ""
1115
1192
1116
#. type: tbl table
1193
#. type: tbl table
1117
#: ../src/xz/xz.1:713 ../src/xz/xz.1:794 ../src/xz/xz.1:2241 ../src/xz/xz.1:2242 ../src/xz/xz.1:2263
1194
#: ../src/xz/xz.1:768 ../src/xz/xz.1:849 ../src/xz/xz.1:2457
1195
#: ../src/xz/xz.1:2458 ../src/xz/xz.1:2479
1118
#, no-wrap
1196
#, no-wrap
1119
msgid "16 MiB"
1197
msgid "16 MiB"
1120
msgstr ""
1198
msgstr ""
1121
1199
1122
#. type: tbl table
1200
#. type: tbl table
1123
#: ../src/xz/xz.1:713 ../src/xz/xz.1:794 ../src/xz/xz.1:2266
1201
#: ../src/xz/xz.1:768 ../src/xz/xz.1:849 ../src/xz/xz.1:2482
1124
#, no-wrap
1202
#, no-wrap
1125
msgid "186 MiB"
1203
msgid "186 MiB"
1126
msgstr ""
1204
msgstr ""
1127
1205
1128
#. type: tbl table
1206
#. type: tbl table
1129
#: ../src/xz/xz.1:714 ../src/xz/xz.1:2242 ../src/xz/xz.1:2267
1207
#: ../src/xz/xz.1:769 ../src/xz/xz.1:2458 ../src/xz/xz.1:2483
1130
#, no-wrap
1208
#, no-wrap
1131
msgid "-8"
1209
msgid "-8"
1132
msgstr ""
1210
msgstr ""
1133
1211
1134
#. type: tbl table
1212
#. type: tbl table
1135
#: ../src/xz/xz.1:714 ../src/xz/xz.1:795 ../src/xz/xz.1:2267
1213
#: ../src/xz/xz.1:769 ../src/xz/xz.1:850 ../src/xz/xz.1:2483
1136
#, no-wrap
1214
#, no-wrap
1137
msgid "370 MiB"
1215
msgid "370 MiB"
1138
msgstr ""
1216
msgstr ""
1139
1217
1140
#. type: tbl table
1218
#. type: tbl table
1141
#: ../src/xz/xz.1:714 ../src/xz/xz.1:795
1219
#: ../src/xz/xz.1:769 ../src/xz/xz.1:850
1142
#, no-wrap
1220
#, no-wrap
1143
msgid "33 MiB"
1221
msgid "33 MiB"
1144
msgstr ""
1222
msgstr ""
1145
1223
1146
#. type: tbl table
1224
#. type: tbl table
1147
#: ../src/xz/xz.1:715 ../src/xz/xz.1:2243 ../src/xz/xz.1:2268
1225
#: ../src/xz/xz.1:770 ../src/xz/xz.1:2459 ../src/xz/xz.1:2484
1148
#, no-wrap
1226
#, no-wrap
1149
msgid "-9"
1227
msgid "-9"
1150
msgstr ""
1228
msgstr ""
1151
1229
1152
#. type: tbl table
1230
#. type: tbl table
1153
#: ../src/xz/xz.1:715 ../src/xz/xz.1:796 ../src/xz/xz.1:2243
1231
#: ../src/xz/xz.1:770 ../src/xz/xz.1:851 ../src/xz/xz.1:2459
1154
#, no-wrap
1232
#, no-wrap
1155
msgid "64 MiB"
1233
msgid "64 MiB"
1156
msgstr ""
1234
msgstr ""
1157
1235
1158
#. type: tbl table
1236
#. type: tbl table
1159
#: ../src/xz/xz.1:715 ../src/xz/xz.1:796 ../src/xz/xz.1:2268
1237
#: ../src/xz/xz.1:770 ../src/xz/xz.1:851 ../src/xz/xz.1:2484
1160
#, no-wrap
1238
#, no-wrap
1161
msgid "674 MiB"
1239
msgid "674 MiB"
1162
msgstr ""
1240
msgstr ""
1163
1241
1164
#. type: tbl table
1242
#. type: tbl table
1165
#: ../src/xz/xz.1:715 ../src/xz/xz.1:796
1243
#: ../src/xz/xz.1:770 ../src/xz/xz.1:851
1166
#, no-wrap
1244
#, no-wrap
1167
msgid "65 MiB"
1245
msgid "65 MiB"
1168
msgstr ""
1246
msgstr ""
1169
1247
1170
#. type: Plain text
1248
#. type: Plain text
1171
#: ../src/xz/xz.1:721
1249
#: ../src/xz/xz.1:776
1172
msgid "Column descriptions:"
1250
msgid "Column descriptions:"
1173
msgstr ""
1251
msgstr ""
1174
1252
1175
#. type: Plain text
1253
#. type: Plain text
1176
#: ../src/xz/xz.1:733
1254
#: ../src/xz/xz.1:788
1177
msgid ""
1255
msgid ""
1178
"DictSize is the LZMA2 dictionary size.  It is waste of memory to use a "
1256
"DictSize is the LZMA2 dictionary size.  It is waste of memory to use a "
1179
"dictionary bigger than the size of the uncompressed file.  This is why it is "
1257
"dictionary bigger than the size of the uncompressed file.  This is why it is "
Lines 1183-1189 Link Here
1183
msgstr ""
1261
msgstr ""
1184
1262
1185
#. type: Plain text
1263
#. type: Plain text
1186
#: ../src/xz/xz.1:742
1264
#: ../src/xz/xz.1:797
1187
msgid ""
1265
msgid ""
1188
"CompCPU is a simplified representation of the LZMA2 settings that affect "
1266
"CompCPU is a simplified representation of the LZMA2 settings that affect "
1189
"compression speed.  The dictionary size affects speed too, so while CompCPU "
1267
"compression speed.  The dictionary size affects speed too, so while CompCPU "
Lines 1193-1199 Link Here
1193
msgstr ""
1271
msgstr ""
1194
1272
1195
#. type: Plain text
1273
#. type: Plain text
1196
#: ../src/xz/xz.1:750
1274
#: ../src/xz/xz.1:805
1197
msgid ""
1275
msgid ""
1198
"CompMem contains the compressor memory requirements in the single-threaded "
1276
"CompMem contains the compressor memory requirements in the single-threaded "
1199
"mode.  It may vary slightly between B<xz> versions.  Memory requirements of "
1277
"mode.  It may vary slightly between B<xz> versions.  Memory requirements of "
Lines 1202-1208 Link Here
1202
msgstr ""
1280
msgstr ""
1203
1281
1204
#. type: Plain text
1282
#. type: Plain text
1205
#: ../src/xz/xz.1:757
1283
#: ../src/xz/xz.1:812
1206
msgid ""
1284
msgid ""
1207
"DecMem contains the decompressor memory requirements.  That is, the "
1285
"DecMem contains the decompressor memory requirements.  That is, the "
1208
"compression settings determine the memory requirements of the decompressor.  "
1286
"compression settings determine the memory requirements of the decompressor.  "
Lines 1212-1224 Link Here
1212
msgstr ""
1290
msgstr ""
1213
1291
1214
#. type: TP
1292
#. type: TP
1215
#: ../src/xz/xz.1:758
1293
#: ../src/xz/xz.1:813
1216
#, no-wrap
1294
#, no-wrap
1217
msgid "B<-e>, B<--extreme>"
1295
msgid "B<-e>, B<--extreme>"
1218
msgstr ""
1296
msgstr ""
1219
1297
1220
#. type: Plain text
1298
#. type: Plain text
1221
#: ../src/xz/xz.1:767
1299
#: ../src/xz/xz.1:822
1222
msgid ""
1300
msgid ""
1223
"Use a slower variant of the selected compression preset level (B<-0> "
1301
"Use a slower variant of the selected compression preset level (B<-0> "
1224
"... B<-9>)  to hopefully get a little bit better compression ratio, but with "
1302
"... B<-9>)  to hopefully get a little bit better compression ratio, but with "
Lines 1228-1234 Link Here
1228
msgstr ""
1306
msgstr ""
1229
1307
1230
#. type: Plain text
1308
#. type: Plain text
1231
#: ../src/xz/xz.1:779
1309
#: ../src/xz/xz.1:834
1232
msgid ""
1310
msgid ""
1233
"Since there are two presets with dictionary sizes 4\\ MiB and 8\\ MiB, the "
1311
"Since there are two presets with dictionary sizes 4\\ MiB and 8\\ MiB, the "
1234
"presets B<-3e> and B<-5e> use slightly faster settings (lower CompCPU) than "
1312
"presets B<-3e> and B<-5e> use slightly faster settings (lower CompCPU) than "
Lines 1236-1326 Link Here
1236
msgstr ""
1314
msgstr ""
1237
1315
1238
#. type: tbl table
1316
#. type: tbl table
1239
#: ../src/xz/xz.1:787
1317
#: ../src/xz/xz.1:842
1240
#, no-wrap
1318
#, no-wrap
1241
msgid "-0e"
1319
msgid "-0e"
1242
msgstr ""
1320
msgstr ""
1243
1321
1244
#. type: tbl table
1322
#. type: tbl table
1245
#: ../src/xz/xz.1:787 ../src/xz/xz.1:788 ../src/xz/xz.1:789 ../src/xz/xz.1:791 ../src/xz/xz.1:793 ../src/xz/xz.1:794 ../src/xz/xz.1:795 ../src/xz/xz.1:796 ../src/xz/xz.1:2632
1323
#: ../src/xz/xz.1:842 ../src/xz/xz.1:843 ../src/xz/xz.1:844 ../src/xz/xz.1:846
1324
#: ../src/xz/xz.1:848 ../src/xz/xz.1:849 ../src/xz/xz.1:850 ../src/xz/xz.1:851
1325
#: ../src/xz/xz.1:2848
1246
#, no-wrap
1326
#, no-wrap
1247
msgid "8"
1327
msgid "8"
1248
msgstr ""
1328
msgstr ""
1249
1329
1250
#. type: tbl table
1330
#. type: tbl table
1251
#: ../src/xz/xz.1:788
1331
#: ../src/xz/xz.1:843
1252
#, no-wrap
1332
#, no-wrap
1253
msgid "-1e"
1333
msgid "-1e"
1254
msgstr ""
1334
msgstr ""
1255
1335
1256
#. type: tbl table
1336
#. type: tbl table
1257
#: ../src/xz/xz.1:788
1337
#: ../src/xz/xz.1:843
1258
#, no-wrap
1338
#, no-wrap
1259
msgid "13 MiB"
1339
msgid "13 MiB"
1260
msgstr ""
1340
msgstr ""
1261
1341
1262
#. type: tbl table
1342
#. type: tbl table
1263
#: ../src/xz/xz.1:789
1343
#: ../src/xz/xz.1:844
1264
#, no-wrap
1344
#, no-wrap
1265
msgid "-2e"
1345
msgid "-2e"
1266
msgstr ""
1346
msgstr ""
1267
1347
1268
#. type: tbl table
1348
#. type: tbl table
1269
#: ../src/xz/xz.1:789
1349
#: ../src/xz/xz.1:844
1270
#, no-wrap
1350
#, no-wrap
1271
msgid "25 MiB"
1351
msgid "25 MiB"
1272
msgstr ""
1352
msgstr ""
1273
1353
1274
#. type: tbl table
1354
#. type: tbl table
1275
#: ../src/xz/xz.1:790
1355
#: ../src/xz/xz.1:845
1276
#, no-wrap
1356
#, no-wrap
1277
msgid "-3e"
1357
msgid "-3e"
1278
msgstr ""
1358
msgstr ""
1279
1359
1280
#. type: tbl table
1360
#. type: tbl table
1281
#: ../src/xz/xz.1:790 ../src/xz/xz.1:792 ../src/xz/xz.1:2631
1361
#: ../src/xz/xz.1:845 ../src/xz/xz.1:847 ../src/xz/xz.1:2847
1282
#, no-wrap
1362
#, no-wrap
1283
msgid "7"
1363
msgid "7"
1284
msgstr ""
1364
msgstr ""
1285
1365
1286
#. type: tbl table
1366
#. type: tbl table
1287
#: ../src/xz/xz.1:791
1367
#: ../src/xz/xz.1:846
1288
#, no-wrap
1368
#, no-wrap
1289
msgid "-4e"
1369
msgid "-4e"
1290
msgstr ""
1370
msgstr ""
1291
1371
1292
#. type: tbl table
1372
#. type: tbl table
1293
#: ../src/xz/xz.1:792 ../src/xz/xz.1:2631
1373
#: ../src/xz/xz.1:847 ../src/xz/xz.1:2847
1294
#, no-wrap
1374
#, no-wrap
1295
msgid "-5e"
1375
msgid "-5e"
1296
msgstr ""
1376
msgstr ""
1297
1377
1298
#. type: tbl table
1378
#. type: tbl table
1299
#: ../src/xz/xz.1:793 ../src/xz/xz.1:2632
1379
#: ../src/xz/xz.1:848 ../src/xz/xz.1:2848
1300
#, no-wrap
1380
#, no-wrap
1301
msgid "-6e"
1381
msgid "-6e"
1302
msgstr ""
1382
msgstr ""
1303
1383
1304
#. type: tbl table
1384
#. type: tbl table
1305
#: ../src/xz/xz.1:794
1385
#: ../src/xz/xz.1:849
1306
#, no-wrap
1386
#, no-wrap
1307
msgid "-7e"
1387
msgid "-7e"
1308
msgstr ""
1388
msgstr ""
1309
1389
1310
#. type: tbl table
1390
#. type: tbl table
1311
#: ../src/xz/xz.1:795
1391
#: ../src/xz/xz.1:850
1312
#, no-wrap
1392
#, no-wrap
1313
msgid "-8e"
1393
msgid "-8e"
1314
msgstr ""
1394
msgstr ""
1315
1395
1316
#. type: tbl table
1396
#. type: tbl table
1317
#: ../src/xz/xz.1:796
1397
#: ../src/xz/xz.1:851
1318
#, no-wrap
1398
#, no-wrap
1319
msgid "-9e"
1399
msgid "-9e"
1320
msgstr ""
1400
msgstr ""
1321
1401
1322
#. type: Plain text
1402
#. type: Plain text
1323
#: ../src/xz/xz.1:808
1403
#: ../src/xz/xz.1:863
1324
msgid ""
1404
msgid ""
1325
"For example, there are a total of four presets that use 8\\ MiB dictionary, "
1405
"For example, there are a total of four presets that use 8\\ MiB dictionary, "
1326
"whose order from the fastest to the slowest is B<-5>, B<-6>, B<-5e>, and "
1406
"whose order from the fastest to the slowest is B<-5>, B<-6>, B<-5e>, and "
Lines 1328-1346 Link Here
1328
msgstr ""
1408
msgstr ""
1329
1409
1330
#. type: TP
1410
#. type: TP
1331
#: ../src/xz/xz.1:808
1411
#: ../src/xz/xz.1:863
1332
#, no-wrap
1412
#, no-wrap
1333
msgid "B<--fast>"
1413
msgid "B<--fast>"
1334
msgstr ""
1414
msgstr ""
1335
1415
1336
#. type: TP
1416
#. type: TP
1337
#: ../src/xz/xz.1:811
1417
#: ../src/xz/xz.1:866
1338
#, no-wrap
1418
#, no-wrap
1339
msgid "B<--best>"
1419
msgid "B<--best>"
1340
msgstr ""
1420
msgstr ""
1341
1421
1342
#. type: Plain text
1422
#. type: Plain text
1343
#: ../src/xz/xz.1:822
1423
#: ../src/xz/xz.1:877
1344
msgid ""
1424
msgid ""
1345
"These are somewhat misleading aliases for B<-0> and B<-9>, respectively.  "
1425
"These are somewhat misleading aliases for B<-0> and B<-9>, respectively.  "
1346
"These are provided only for backwards compatibility with LZMA Utils.  Avoid "
1426
"These are provided only for backwards compatibility with LZMA Utils.  Avoid "
Lines 1348-1360 Link Here
1348
msgstr ""
1428
msgstr ""
1349
1429
1350
#. type: TP
1430
#. type: TP
1351
#: ../src/xz/xz.1:822
1431
#: ../src/xz/xz.1:877
1352
#, no-wrap
1432
#, no-wrap
1353
msgid "B<--block-size=>I<size>"
1433
msgid "B<--block-size=>I<size>"
1354
msgstr ""
1434
msgstr ""
1355
1435
1356
#. type: Plain text
1436
#. type: Plain text
1357
#: ../src/xz/xz.1:835
1437
#: ../src/xz/xz.1:890
1358
msgid ""
1438
msgid ""
1359
"When compressing to the B<.xz> format, split the input data into blocks of "
1439
"When compressing to the B<.xz> format, split the input data into blocks of "
1360
"I<size> bytes.  The blocks are compressed independently from each other, "
1440
"I<size> bytes.  The blocks are compressed independently from each other, "
Lines 1365-1384 Link Here
1365
msgstr ""
1445
msgstr ""
1366
1446
1367
#. type: Plain text
1447
#. type: Plain text
1368
#: ../src/xz/xz.1:853
1448
#: ../src/xz/xz.1:908
1369
msgid ""
1449
msgid ""
1370
"In multi-threaded mode about three times I<size> bytes will be allocated in "
1450
"In multi-threaded mode about three times I<size> bytes will be allocated in "
1371
"each thread for buffering input and output.  The default I<size> is three "
1451
"each thread for buffering input and output.  The default I<size> is three "
1372
"times the LZMA2 dictionary size or 1 MiB, whichever is more.  Typically a "
1452
"times the LZMA2 dictionary size or 1 MiB, whichever is more.  Typically a "
1373
"good value is 2-4 times the size of the LZMA2 dictionary or at least 1 MiB.  "
1453
"good value is 2\\(en4 times the size of the LZMA2 dictionary or at least 1 "
1374
"Using I<size> less than the LZMA2 dictionary size is waste of RAM because "
1454
"MiB.  Using I<size> less than the LZMA2 dictionary size is waste of RAM "
1375
"then the LZMA2 dictionary buffer will never get fully used.  The sizes of "
1455
"because then the LZMA2 dictionary buffer will never get fully used.  The "
1376
"the blocks are stored in the block headers, which a future version of B<xz> "
1456
"sizes of the blocks are stored in the block headers, which a future version "
1377
"will use for multi-threaded decompression."
1457
"of B<xz> will use for multi-threaded decompression."
1378
msgstr ""
1458
msgstr ""
1379
1459
1380
#. type: Plain text
1460
#. type: Plain text
1381
#: ../src/xz/xz.1:862
1461
#: ../src/xz/xz.1:917
1382
msgid ""
1462
msgid ""
1383
"In single-threaded mode no block splitting is done by default.  Setting this "
1463
"In single-threaded mode no block splitting is done by default.  Setting this "
1384
"option doesn't affect memory usage.  No size information is stored in block "
1464
"option doesn't affect memory usage.  No size information is stored in block "
Lines 1389-1408 Link Here
1389
msgstr ""
1469
msgstr ""
1390
1470
1391
#. type: TP
1471
#. type: TP
1392
#: ../src/xz/xz.1:862
1472
#: ../src/xz/xz.1:917
1393
#, no-wrap
1473
#, no-wrap
1394
msgid "B<--block-list=>I<sizes>"
1474
msgid "B<--block-list=>I<sizes>"
1395
msgstr ""
1475
msgstr ""
1396
1476
1397
#. type: Plain text
1477
#. type: Plain text
1398
#: ../src/xz/xz.1:868
1478
#: ../src/xz/xz.1:923
1399
msgid ""
1479
msgid ""
1400
"When compressing to the B<.xz> format, start a new block after the given "
1480
"When compressing to the B<.xz> format, start a new block after the given "
1401
"intervals of uncompressed data."
1481
"intervals of uncompressed data."
1402
msgstr ""
1482
msgstr ""
1403
1483
1404
#. type: Plain text
1484
#. type: Plain text
1405
#: ../src/xz/xz.1:874
1485
#: ../src/xz/xz.1:929
1406
msgid ""
1486
msgid ""
1407
"The uncompressed I<sizes> of the blocks are specified as a comma-separated "
1487
"The uncompressed I<sizes> of the blocks are specified as a comma-separated "
1408
"list.  Omitting a size (two or more consecutive commas) is a shorthand to "
1488
"list.  Omitting a size (two or more consecutive commas) is a shorthand to "
Lines 1410-1416 Link Here
1410
msgstr ""
1490
msgstr ""
1411
1491
1412
#. type: Plain text
1492
#. type: Plain text
1413
#: ../src/xz/xz.1:884
1493
#: ../src/xz/xz.1:939
1414
msgid ""
1494
msgid ""
1415
"If the input file is bigger than the sum of I<sizes>, the last value in "
1495
"If the input file is bigger than the sum of I<sizes>, the last value in "
1416
"I<sizes> is repeated until the end of the file.  A special value of B<0> may "
1496
"I<sizes> is repeated until the end of the file.  A special value of B<0> may "
Lines 1419-1425 Link Here
1419
msgstr ""
1499
msgstr ""
1420
1500
1421
#. type: Plain text
1501
#. type: Plain text
1422
#: ../src/xz/xz.1:899
1502
#: ../src/xz/xz.1:954
1423
msgid ""
1503
msgid ""
1424
"If one specifies I<sizes> that exceed the encoder's block size (either the "
1504
"If one specifies I<sizes> that exceed the encoder's block size (either the "
1425
"default value in threaded mode or the value specified with "
1505
"default value in threaded mode or the value specified with "
Lines 1431-1437 Link Here
1431
msgstr ""
1511
msgstr ""
1432
1512
1433
#. type: Plain text
1513
#. type: Plain text
1434
#: ../src/xz/xz.1:905
1514
#: ../src/xz/xz.1:960
1435
msgid ""
1515
msgid ""
1436
"In multi-threaded mode the sizes of the blocks are stored in the block "
1516
"In multi-threaded mode the sizes of the blocks are stored in the block "
1437
"headers.  This isn't done in single-threaded mode, so the encoded output "
1517
"headers.  This isn't done in single-threaded mode, so the encoded output "
Lines 1439-1451 Link Here
1439
msgstr ""
1519
msgstr ""
1440
1520
1441
#. type: TP
1521
#. type: TP
1442
#: ../src/xz/xz.1:905
1522
#: ../src/xz/xz.1:960
1443
#, no-wrap
1523
#, no-wrap
1444
msgid "B<--flush-timeout=>I<timeout>"
1524
msgid "B<--flush-timeout=>I<timeout>"
1445
msgstr ""
1525
msgstr ""
1446
1526
1447
#. type: Plain text
1527
#. type: Plain text
1448
#: ../src/xz/xz.1:922
1528
#: ../src/xz/xz.1:977
1449
msgid ""
1529
msgid ""
1450
"When compressing, if more than I<timeout> milliseconds (a positive integer) "
1530
"When compressing, if more than I<timeout> milliseconds (a positive integer) "
1451
"has passed since the previous flush and reading more input would block, all "
1531
"has passed since the previous flush and reading more input would block, all "
Lines 1457-1463 Link Here
1457
msgstr ""
1537
msgstr ""
1458
1538
1459
#. type: Plain text
1539
#. type: Plain text
1460
#: ../src/xz/xz.1:930
1540
#: ../src/xz/xz.1:985
1461
msgid ""
1541
msgid ""
1462
"This feature is disabled by default.  If this option is specified more than "
1542
"This feature is disabled by default.  If this option is specified more than "
1463
"once, the last one takes effect.  The special I<timeout> value of B<0> can "
1543
"once, the last one takes effect.  The special I<timeout> value of B<0> can "
Lines 1465-1520 Link Here
1465
msgstr ""
1545
msgstr ""
1466
1546
1467
#. type: Plain text
1547
#. type: Plain text
1468
#: ../src/xz/xz.1:932
1548
#: ../src/xz/xz.1:987
1469
msgid "This feature is not available on non-POSIX systems."
1549
msgid "This feature is not available on non-POSIX systems."
1470
msgstr ""
1550
msgstr ""
1471
1551
1472
#.  FIXME
1552
#.  FIXME
1473
#. type: Plain text
1553
#. type: Plain text
1474
#: ../src/xz/xz.1:940
1554
#: ../src/xz/xz.1:995
1475
msgid ""
1555
msgid ""
1476
"B<This feature is still experimental.> Currently B<xz> is unsuitable for "
1556
"B<This feature is still experimental.> Currently B<xz> is unsuitable for "
1477
"decompressing the stream in real time due to how B<xz> does buffering."
1557
"decompressing the stream in real time due to how B<xz> does buffering."
1478
msgstr ""
1558
msgstr ""
1479
1559
1480
#. type: TP
1560
#. type: TP
1481
#: ../src/xz/xz.1:940
1561
#: ../src/xz/xz.1:995
1482
#, no-wrap
1562
#, no-wrap
1483
msgid "B<--memlimit-compress=>I<limit>"
1563
msgid "B<--memlimit-compress=>I<limit>"
1484
msgstr ""
1564
msgstr ""
1485
1565
1486
#. type: Plain text
1566
#. type: Plain text
1487
#: ../src/xz/xz.1:945
1567
#: ../src/xz/xz.1:1000
1488
msgid ""
1568
msgid ""
1489
"Set a memory usage limit for compression.  If this option is specified "
1569
"Set a memory usage limit for compression.  If this option is specified "
1490
"multiple times, the last one takes effect."
1570
"multiple times, the last one takes effect."
1491
msgstr ""
1571
msgstr ""
1492
1572
1493
#. type: Plain text
1573
#. type: Plain text
1494
#: ../src/xz/xz.1:960
1574
#: ../src/xz/xz.1:1013
1495
msgid ""
1575
msgid ""
1496
"If the compression settings exceed the I<limit>, B<xz> will adjust the "
1576
"If the compression settings exceed the I<limit>, B<xz> will attempt to "
1497
"settings downwards so that the limit is no longer exceeded and display a "
1577
"adjust the settings downwards so that the limit is no longer exceeded and "
1498
"notice that automatic adjustment was done.  Such adjustments are not made "
1578
"display a notice that automatic adjustment was done.  The adjustments are "
1499
"when compressing with B<--format=raw> or if B<--no-adjust> has been "
1579
"done in this order: reducing the number of threads, switching to "
1500
"specified.  In those cases, an error is displayed and B<xz> will exit with "
1580
"single-threaded mode if even one thread in multi-threaded mode exceeds the "
1501
"exit status 1."
1581
"I<limit>, and finally reducing the LZMA2 dictionary size."
1502
msgstr ""
1582
msgstr ""
1503
1583
1504
#. type: Plain text
1584
#. type: Plain text
1505
#: ../src/xz/xz.1:964
1585
#: ../src/xz/xz.1:1021
1586
msgid ""
1587
"When compressing with B<--format=raw> or if B<--no-adjust> has been "
1588
"specified, only the number of threads may be reduced since it can be done "
1589
"without affecting the compressed output."
1590
msgstr ""
1591
1592
#. type: Plain text
1593
#: ../src/xz/xz.1:1028
1594
msgid ""
1595
"If the I<limit> cannot be met even with the adjustments described above, an "
1596
"error is displayed and B<xz> will exit with exit status 1."
1597
msgstr ""
1598
1599
#. type: Plain text
1600
#: ../src/xz/xz.1:1032
1506
msgid "The I<limit> can be specified in multiple ways:"
1601
msgid "The I<limit> can be specified in multiple ways:"
1507
msgstr ""
1602
msgstr ""
1508
1603
1509
#. type: Plain text
1604
#. type: Plain text
1510
#: ../src/xz/xz.1:974
1605
#: ../src/xz/xz.1:1042
1511
msgid ""
1606
msgid ""
1512
"The I<limit> can be an absolute value in bytes.  Using an integer suffix "
1607
"The I<limit> can be an absolute value in bytes.  Using an integer suffix "
1513
"like B<MiB> can be useful.  Example: B<--memlimit-compress=80MiB>"
1608
"like B<MiB> can be useful.  Example: B<--memlimit-compress=80MiB>"
1514
msgstr ""
1609
msgstr ""
1515
1610
1516
#. type: Plain text
1611
#. type: Plain text
1517
#: ../src/xz/xz.1:986
1612
#: ../src/xz/xz.1:1054
1518
msgid ""
1613
msgid ""
1519
"The I<limit> can be specified as a percentage of total physical memory "
1614
"The I<limit> can be specified as a percentage of total physical memory "
1520
"(RAM).  This can be useful especially when setting the B<XZ_DEFAULTS> "
1615
"(RAM).  This can be useful especially when setting the B<XZ_DEFAULTS> "
Lines 1524-1562 Link Here
1524
msgstr ""
1619
msgstr ""
1525
1620
1526
#. type: Plain text
1621
#. type: Plain text
1527
#: ../src/xz/xz.1:1006
1622
#: ../src/xz/xz.1:1064
1528
msgid ""
1623
msgid ""
1529
"The I<limit> can be reset back to its default value by setting it to B<0>.  "
1624
"The I<limit> can be reset back to its default value by setting it to B<0>.  "
1530
"This is currently equivalent to setting the I<limit> to B<max> (no memory "
1625
"This is currently equivalent to setting the I<limit> to B<max> (no memory "
1531
"usage limit).  Once multithreading support has been implemented, there may "
1626
"usage limit)."
1532
"be a difference between B<0> and B<max> for the multithreaded case, so it is "
1533
"recommended to use B<0> instead of B<max> until the details have been "
1534
"decided."
1535
msgstr ""
1627
msgstr ""
1536
1628
1537
#. type: Plain text
1629
#. type: Plain text
1538
#: ../src/xz/xz.1:1026
1630
#: ../src/xz/xz.1:1088
1539
msgid ""
1631
msgid ""
1540
"For 32-bit B<xz> there is a special case: if the I<limit> would be over "
1632
"For 32-bit B<xz> there is a special case: if the I<limit> would be over "
1541
"B<4020\\ MiB>, the I<limit> is set to B<4020\\ MiB>.  (The values B<0> and "
1633
"B<4020\\ MiB>, the I<limit> is set to B<4020\\ MiB>.  On MIPS32 B<2000\\ "
1542
"B<max> aren't affected by this.  A similar feature doesn't exist for "
1634
"MiB> is used instead.  (The values B<0> and B<max> aren't affected by this.  "
1543
"decompression.)  This can be helpful when a 32-bit executable has access to "
1635
"A similar feature doesn't exist for decompression.)  This can be helpful "
1544
"4\\ GiB address space while hopefully doing no harm in other situations."
1636
"when a 32-bit executable has access to 4\\ GiB address space (2 GiB on "
1637
"MIPS32)  while hopefully doing no harm in other situations."
1545
msgstr ""
1638
msgstr ""
1546
1639
1547
#. type: Plain text
1640
#. type: Plain text
1548
#: ../src/xz/xz.1:1029
1641
#: ../src/xz/xz.1:1091
1549
msgid "See also the section B<Memory usage>."
1642
msgid "See also the section B<Memory usage>."
1550
msgstr ""
1643
msgstr ""
1551
1644
1552
#. type: TP
1645
#. type: TP
1553
#: ../src/xz/xz.1:1029
1646
#: ../src/xz/xz.1:1091
1554
#, no-wrap
1647
#, no-wrap
1555
msgid "B<--memlimit-decompress=>I<limit>"
1648
msgid "B<--memlimit-decompress=>I<limit>"
1556
msgstr ""
1649
msgstr ""
1557
1650
1558
#. type: Plain text
1651
#. type: Plain text
1559
#: ../src/xz/xz.1:1043
1652
#: ../src/xz/xz.1:1105
1560
msgid ""
1653
msgid ""
1561
"Set a memory usage limit for decompression.  This also affects the B<--list> "
1654
"Set a memory usage limit for decompression.  This also affects the B<--list> "
1562
"mode.  If the operation is not possible without exceeding the I<limit>, "
1655
"mode.  If the operation is not possible without exceeding the I<limit>, "
Lines 1565-1616 Link Here
1565
msgstr ""
1658
msgstr ""
1566
1659
1567
#. type: TP
1660
#. type: TP
1568
#: ../src/xz/xz.1:1043
1661
#: ../src/xz/xz.1:1105
1569
#, no-wrap
1662
#, no-wrap
1663
msgid "B<--memlimit-mt-decompress=>I<limit>"
1664
msgstr ""
1665
1666
#. type: Plain text
1667
#: ../src/xz/xz.1:1127
1668
msgid ""
1669
"Set a memory usage limit for multi-threaded decompression.  This can only "
1670
"affect the number of threads; this will never make B<xz> refuse to "
1671
"decompress a file.  If I<limit> is too low to allow any multi-threading, the "
1672
"I<limit> is ignored and B<xz> will continue in single-threaded mode.  Note "
1673
"that if also B<--memlimit-decompress> is used, it will always apply to both "
1674
"single-threaded and multi-threaded modes, and so the effective I<limit> for "
1675
"multi-threading will never be higher than the limit set with "
1676
"B<--memlimit-decompress>."
1677
msgstr ""
1678
1679
#. type: Plain text
1680
#: ../src/xz/xz.1:1134
1681
msgid ""
1682
"In contrast to the other memory usage limit options, "
1683
"B<--memlimit-mt-decompress=>I<limit> has a system-specific default "
1684
"I<limit>.  B<xz --info-memory> can be used to see the current value."
1685
msgstr ""
1686
1687
#. type: Plain text
1688
#: ../src/xz/xz.1:1150
1689
msgid ""
1690
"This option and its default value exist because without any limit the "
1691
"threaded decompressor could end up allocating an insane amount of memory "
1692
"with some input files.  If the default I<limit> is too low on your system, "
1693
"feel free to increase the I<limit> but never set it to a value larger than "
1694
"the amount of usable RAM as with appropriate input files B<xz> will attempt "
1695
"to use that amount of memory even with a low number of threads.  Running out "
1696
"of memory or swapping will not improve decompression performance."
1697
msgstr ""
1698
1699
#. type: Plain text
1700
#: ../src/xz/xz.1:1162
1701
msgid ""
1702
"See B<--memlimit-compress=>I<limit> for possible ways to specify the "
1703
"I<limit>.  Setting I<limit> to B<0> resets the I<limit> to the default "
1704
"system-specific value."
1705
msgstr ""
1706
1707
#. type: TP
1708
#: ../src/xz/xz.1:1163
1709
#, no-wrap
1570
msgid "B<-M> I<limit>, B<--memlimit=>I<limit>, B<--memory=>I<limit>"
1710
msgid "B<-M> I<limit>, B<--memlimit=>I<limit>, B<--memory=>I<limit>"
1571
msgstr ""
1711
msgstr ""
1572
1712
1573
#. type: Plain text
1713
#. type: Plain text
1574
#: ../src/xz/xz.1:1047
1714
#: ../src/xz/xz.1:1169
1575
msgid ""
1715
msgid ""
1576
"This is equivalent to specifying B<--memlimit-compress=>I<limit "
1716
"This is equivalent to specifying B<--memlimit-compress=>I<limit> "
1577
">B<--memlimit-decompress=>I<limit>."
1717
"B<--memlimit-decompress=>I<limit> B<--memlimit-mt-decompress=>I<limit>."
1578
msgstr ""
1718
msgstr ""
1579
1719
1580
#. type: TP
1720
#. type: TP
1581
#: ../src/xz/xz.1:1047
1721
#: ../src/xz/xz.1:1169
1582
#, no-wrap
1722
#, no-wrap
1583
msgid "B<--no-adjust>"
1723
msgid "B<--no-adjust>"
1584
msgstr ""
1724
msgstr ""
1585
1725
1586
#. type: Plain text
1726
#. type: Plain text
1587
#: ../src/xz/xz.1:1055
1727
#: ../src/xz/xz.1:1179
1588
msgid ""
1728
msgid ""
1589
"Display an error and exit if the compression settings exceed the memory "
1729
"Display an error and exit if the memory usage limit cannot be met without "
1590
"usage limit.  The default is to adjust the settings downwards so that the "
1730
"adjusting settings that affect the compressed output.  That is, this "
1591
"memory usage limit is not exceeded.  Automatic adjusting is always disabled "
1731
"prevents B<xz> from switching the encoder from multi-threaded mode to "
1592
"when creating raw streams (B<--format=raw>)."
1732
"single-threaded mode and from reducing the LZMA2 dictionary size.  Even when "
1733
"this option is used the number of threads may be reduced to meet the memory "
1734
"usage limit as that won't affect the compressed output."
1593
msgstr ""
1735
msgstr ""
1594
1736
1737
#. type: Plain text
1738
#: ../src/xz/xz.1:1182
1739
msgid ""
1740
"Automatic adjusting is always disabled when creating raw streams "
1741
"(B<--format=raw>)."
1742
msgstr ""
1743
1595
#. type: TP
1744
#. type: TP
1596
#: ../src/xz/xz.1:1055
1745
#: ../src/xz/xz.1:1182
1597
#, no-wrap
1746
#, no-wrap
1598
msgid "B<-T> I<threads>, B<--threads=>I<threads>"
1747
msgid "B<-T> I<threads>, B<--threads=>I<threads>"
1599
msgstr ""
1748
msgstr ""
1600
1749
1601
#. type: Plain text
1750
#. type: Plain text
1602
#: ../src/xz/xz.1:1070
1751
#: ../src/xz/xz.1:1197
1603
msgid ""
1752
msgid ""
1604
"Specify the number of worker threads to use.  Setting I<threads> to a "
1753
"Specify the number of worker threads to use.  Setting I<threads> to a "
1605
"special value B<0> makes B<xz> use as many threads as there are CPU cores on "
1754
"special value B<0> makes B<xz> use up to as many threads as the processor(s) "
1606
"the system.  The actual number of threads can be less than I<threads> if the "
1755
"on the system support.  The actual number of threads can be fewer than "
1607
"input file is not big enough for threading with the given settings or if "
1756
"I<threads> if the input file is not big enough for threading with the given "
1608
"using more threads would exceed the memory usage limit."
1757
"settings or if using more threads would exceed the memory usage limit."
1609
msgstr ""
1758
msgstr ""
1610
1759
1611
#. type: Plain text
1760
#. type: Plain text
1612
#: ../src/xz/xz.1:1077
1761
#: ../src/xz/xz.1:1216
1613
msgid ""
1762
msgid ""
1763
"The single-threaded and multi-threaded compressors produce different "
1764
"output.  Single-threaded compressor will give the smallest file size but "
1765
"only the output from the multi-threaded compressor can be decompressed using "
1766
"multiple threads.  Setting I<threads> to B<1> will use the single-threaded "
1767
"mode.  Setting I<threads> to any other value, including B<0>, will use the "
1768
"multi-threaded compressor even if the system supports only one hardware "
1769
"thread.  (B<xz> 5.2.x used single-threaded mode in this situation.)"
1770
msgstr ""
1771
1772
#. type: Plain text
1773
#: ../src/xz/xz.1:1235
1774
msgid ""
1775
"To use multi-threaded mode with only one thread, set I<threads> to B<+1>.  "
1776
"The B<+> prefix has no effect with values other than B<1>.  A memory usage "
1777
"limit can still make B<xz> switch to single-threaded mode unless "
1778
"B<--no-adjust> is used.  Support for the B<+> prefix was added in B<xz> "
1779
"5.4.0."
1780
msgstr ""
1781
1782
#. type: Plain text
1783
#: ../src/xz/xz.1:1250
1784
msgid ""
1785
"If an automatic number of threads has been requested and no memory usage "
1786
"limit has been specified, then a system-specific default soft limit will be "
1787
"used to possibly limit the number of threads.  It is a soft limit in sense "
1788
"that it is ignored if the number of threads becomes one, thus a soft limit "
1789
"will never stop B<xz> from compressing or decompressing.  This default soft "
1790
"limit will not make B<xz> switch from multi-threaded mode to single-threaded "
1791
"mode.  The active limits can be seen with B<xz --info-memory>."
1792
msgstr ""
1793
1794
#. type: Plain text
1795
#: ../src/xz/xz.1:1257
1796
msgid ""
1614
"Currently the only threading method is to split the input into blocks and "
1797
"Currently the only threading method is to split the input into blocks and "
1615
"compress them independently from each other.  The default block size depends "
1798
"compress them independently from each other.  The default block size depends "
1616
"on the compression level and can be overridden with the "
1799
"on the compression level and can be overridden with the "
Lines 1618-1651 Link Here
1618
msgstr ""
1801
msgstr ""
1619
1802
1620
#. type: Plain text
1803
#. type: Plain text
1621
#: ../src/xz/xz.1:1085
1804
#: ../src/xz/xz.1:1265
1622
msgid ""
1805
msgid ""
1623
"Threaded decompression hasn't been implemented yet.  It will only work on "
1806
"Threaded decompression only works on files that contain multiple blocks with "
1624
"files that contain multiple blocks with size information in block headers.  "
1807
"size information in block headers.  All large enough files compressed in "
1625
"All files compressed in multi-threaded mode meet this condition, but files "
1808
"multi-threaded mode meet this condition, but files compressed in "
1626
"compressed in single-threaded mode don't even if B<--block-size=>I<size> is "
1809
"single-threaded mode don't even if B<--block-size=>I<size> has been used."
1627
"used."
1628
msgstr ""
1810
msgstr ""
1629
1811
1630
#. type: SS
1812
#. type: SS
1631
#: ../src/xz/xz.1:1086 ../src/xz/xz.1:2603
1813
#: ../src/xz/xz.1:1266 ../src/xz/xz.1:2819
1632
#, no-wrap
1814
#, no-wrap
1633
msgid "Custom compressor filter chains"
1815
msgid "Custom compressor filter chains"
1634
msgstr ""
1816
msgstr ""
1635
1817
1636
#. type: Plain text
1818
#. type: Plain text
1637
#: ../src/xz/xz.1:1097
1819
#: ../src/xz/xz.1:1282
1638
msgid ""
1820
msgid ""
1639
"A custom filter chain allows specifying the compression settings in detail "
1821
"A custom filter chain allows specifying the compression settings in detail "
1640
"instead of relying on the settings associated to the presets.  When a custom "
1822
"instead of relying on the settings associated to the presets.  When a custom "
1641
"filter chain is specified, preset options (B<-0> ... B<-9> and B<--extreme>)  "
1823
"filter chain is specified, preset options (B<-0> \\&...\\& B<-9> and "
1642
"earlier on the command line are forgotten.  If a preset option is specified "
1824
"B<--extreme>)  earlier on the command line are forgotten.  If a preset "
1643
"after one or more custom filter chain options, the new preset takes effect "
1825
"option is specified after one or more custom filter chain options, the new "
1644
"and the custom filter chain options specified earlier are forgotten."
1826
"preset takes effect and the custom filter chain options specified earlier "
1827
"are forgotten."
1645
msgstr ""
1828
msgstr ""
1646
1829
1647
#. type: Plain text
1830
#. type: Plain text
1648
#: ../src/xz/xz.1:1104
1831
#: ../src/xz/xz.1:1289
1649
msgid ""
1832
msgid ""
1650
"A filter chain is comparable to piping on the command line.  When "
1833
"A filter chain is comparable to piping on the command line.  When "
1651
"compressing, the uncompressed input goes to the first filter, whose output "
1834
"compressing, the uncompressed input goes to the first filter, whose output "
Lines 1655-1661 Link Here
1655
msgstr ""
1838
msgstr ""
1656
1839
1657
#. type: Plain text
1840
#. type: Plain text
1658
#: ../src/xz/xz.1:1112
1841
#: ../src/xz/xz.1:1297
1659
msgid ""
1842
msgid ""
1660
"Many filters have limitations on where they can be in the filter chain: some "
1843
"Many filters have limitations on where they can be in the filter chain: some "
1661
"filters can work only as the last filter in the chain, some only as a "
1844
"filters can work only as the last filter in the chain, some only as a "
Lines 1665-1671 Link Here
1665
msgstr ""
1848
msgstr ""
1666
1849
1667
#. type: Plain text
1850
#. type: Plain text
1668
#: ../src/xz/xz.1:1120
1851
#: ../src/xz/xz.1:1305
1669
msgid ""
1852
msgid ""
1670
"A custom filter chain is specified by using one or more filter options in "
1853
"A custom filter chain is specified by using one or more filter options in "
1671
"the order they are wanted in the filter chain.  That is, the order of filter "
1854
"the order they are wanted in the filter chain.  That is, the order of filter "
Lines 1675-1681 Link Here
1675
msgstr ""
1858
msgstr ""
1676
1859
1677
#. type: Plain text
1860
#. type: Plain text
1678
#: ../src/xz/xz.1:1129
1861
#: ../src/xz/xz.1:1314
1679
msgid ""
1862
msgid ""
1680
"Filters take filter-specific I<options> as a comma-separated list.  Extra "
1863
"Filters take filter-specific I<options> as a comma-separated list.  Extra "
1681
"commas in I<options> are ignored.  Every option has a default value, so you "
1864
"commas in I<options> are ignored.  Every option has a default value, so you "
Lines 1683-1689 Link Here
1683
msgstr ""
1866
msgstr ""
1684
1867
1685
#. type: Plain text
1868
#. type: Plain text
1686
#: ../src/xz/xz.1:1138
1869
#: ../src/xz/xz.1:1323
1687
msgid ""
1870
msgid ""
1688
"To see the whole filter chain and I<options>, use B<xz -vv> (that is, use "
1871
"To see the whole filter chain and I<options>, use B<xz -vv> (that is, use "
1689
"B<--verbose> twice).  This works also for viewing the filter chain options "
1872
"B<--verbose> twice).  This works also for viewing the filter chain options "
Lines 1691-1716 Link Here
1691
msgstr ""
1874
msgstr ""
1692
1875
1693
#. type: TP
1876
#. type: TP
1694
#: ../src/xz/xz.1:1138
1877
#: ../src/xz/xz.1:1323
1695
#, no-wrap
1878
#, no-wrap
1696
msgid "B<--lzma1>[B<=>I<options>]"
1879
msgid "B<--lzma1>[B<=>I<options>]"
1697
msgstr ""
1880
msgstr ""
1698
1881
1699
#. type: TP
1882
#. type: TP
1700
#: ../src/xz/xz.1:1141
1883
#: ../src/xz/xz.1:1326
1701
#, no-wrap
1884
#, no-wrap
1702
msgid "B<--lzma2>[B<=>I<options>]"
1885
msgid "B<--lzma2>[B<=>I<options>]"
1703
msgstr ""
1886
msgstr ""
1704
1887
1705
#. type: Plain text
1888
#. type: Plain text
1706
#: ../src/xz/xz.1:1146
1889
#: ../src/xz/xz.1:1331
1707
msgid ""
1890
msgid ""
1708
"Add LZMA1 or LZMA2 filter to the filter chain.  These filters can be used "
1891
"Add LZMA1 or LZMA2 filter to the filter chain.  These filters can be used "
1709
"only as the last filter in the chain."
1892
"only as the last filter in the chain."
1710
msgstr ""
1893
msgstr ""
1711
1894
1712
#. type: Plain text
1895
#. type: Plain text
1713
#: ../src/xz/xz.1:1158
1896
#: ../src/xz/xz.1:1343
1714
msgid ""
1897
msgid ""
1715
"LZMA1 is a legacy filter, which is supported almost solely due to the legacy "
1898
"LZMA1 is a legacy filter, which is supported almost solely due to the legacy "
1716
"B<.lzma> file format, which supports only LZMA1.  LZMA2 is an updated "
1899
"B<.lzma> file format, which supports only LZMA1.  LZMA2 is an updated "
Lines 1720-1754 Link Here
1720
msgstr ""
1903
msgstr ""
1721
1904
1722
#. type: Plain text
1905
#. type: Plain text
1723
#: ../src/xz/xz.1:1161
1906
#: ../src/xz/xz.1:1346
1724
msgid "LZMA1 and LZMA2 share the same set of I<options>:"
1907
msgid "LZMA1 and LZMA2 share the same set of I<options>:"
1725
msgstr ""
1908
msgstr ""
1726
1909
1727
#. type: TP
1910
#. type: TP
1728
#: ../src/xz/xz.1:1162
1911
#: ../src/xz/xz.1:1347
1729
#, no-wrap
1912
#, no-wrap
1730
msgid "B<preset=>I<preset>"
1913
msgid "B<preset=>I<preset>"
1731
msgstr ""
1914
msgstr ""
1732
1915
1733
#. type: Plain text
1916
#. type: Plain text
1734
#: ../src/xz/xz.1:1186
1917
#: ../src/xz/xz.1:1374
1735
msgid ""
1918
msgid ""
1736
"Reset all LZMA1 or LZMA2 I<options> to I<preset>.  I<Preset> consist of an "
1919
"Reset all LZMA1 or LZMA2 I<options> to I<preset>.  I<Preset> consist of an "
1737
"integer, which may be followed by single-letter preset modifiers.  The "
1920
"integer, which may be followed by single-letter preset modifiers.  The "
1738
"integer can be from B<0> to B<9>, matching the command line options B<-0> "
1921
"integer can be from B<0> to B<9>, matching the command line options B<-0> "
1739
"... B<-9>.  The only supported modifier is currently B<e>, which matches "
1922
"\\&...\\& B<-9>.  The only supported modifier is currently B<e>, which "
1740
"B<--extreme>.  If no B<preset> is specified, the default values of LZMA1 or "
1923
"matches B<--extreme>.  If no B<preset> is specified, the default values of "
1741
"LZMA2 I<options> are taken from the preset B<6>."
1924
"LZMA1 or LZMA2 I<options> are taken from the preset B<6>."
1742
msgstr ""
1925
msgstr ""
1743
1926
1744
#. type: TP
1927
#. type: TP
1745
#: ../src/xz/xz.1:1186
1928
#: ../src/xz/xz.1:1374
1746
#, no-wrap
1929
#, no-wrap
1747
msgid "B<dict=>I<size>"
1930
msgid "B<dict=>I<size>"
1748
msgstr ""
1931
msgstr ""
1749
1932
1750
#. type: Plain text
1933
#. type: Plain text
1751
#: ../src/xz/xz.1:1201
1934
#: ../src/xz/xz.1:1389
1752
msgid ""
1935
msgid ""
1753
"Dictionary (history buffer)  I<size> indicates how many bytes of the "
1936
"Dictionary (history buffer)  I<size> indicates how many bytes of the "
1754
"recently processed uncompressed data is kept in memory.  The algorithm tries "
1937
"recently processed uncompressed data is kept in memory.  The algorithm tries "
Lines 1760-1766 Link Here
1760
msgstr ""
1943
msgstr ""
1761
1944
1762
#. type: Plain text
1945
#. type: Plain text
1763
#: ../src/xz/xz.1:1210
1946
#: ../src/xz/xz.1:1398
1764
msgid ""
1947
msgid ""
1765
"Typical dictionary I<size> is from 64\\ KiB to 64\\ MiB.  The minimum is 4\\ "
1948
"Typical dictionary I<size> is from 64\\ KiB to 64\\ MiB.  The minimum is 4\\ "
1766
"KiB.  The maximum for compression is currently 1.5\\ GiB (1536\\ MiB).  The "
1949
"KiB.  The maximum for compression is currently 1.5\\ GiB (1536\\ MiB).  The "
Lines 1769-1775 Link Here
1769
msgstr ""
1952
msgstr ""
1770
1953
1771
#. type: Plain text
1954
#. type: Plain text
1772
#: ../src/xz/xz.1:1237
1955
#: ../src/xz/xz.1:1425
1773
msgid ""
1956
msgid ""
1774
"Dictionary I<size> and match finder (I<mf>)  together determine the memory "
1957
"Dictionary I<size> and match finder (I<mf>)  together determine the memory "
1775
"usage of the LZMA1 or LZMA2 encoder.  The same (or bigger) dictionary "
1958
"usage of the LZMA1 or LZMA2 encoder.  The same (or bigger) dictionary "
Lines 1782-1794 Link Here
1782
msgstr ""
1965
msgstr ""
1783
1966
1784
#. type: TP
1967
#. type: TP
1785
#: ../src/xz/xz.1:1237
1968
#: ../src/xz/xz.1:1425
1786
#, no-wrap
1969
#, no-wrap
1787
msgid "B<lc=>I<lc>"
1970
msgid "B<lc=>I<lc>"
1788
msgstr ""
1971
msgstr ""
1789
1972
1790
#. type: Plain text
1973
#. type: Plain text
1791
#: ../src/xz/xz.1:1246
1974
#: ../src/xz/xz.1:1434
1792
msgid ""
1975
msgid ""
1793
"Specify the number of literal context bits.  The minimum is 0 and the "
1976
"Specify the number of literal context bits.  The minimum is 0 and the "
1794
"maximum is 4; the default is 3.  In addition, the sum of I<lc> and I<lp> "
1977
"maximum is 4; the default is 3.  In addition, the sum of I<lc> and I<lp> "
Lines 1796-1842 Link Here
1796
msgstr ""
1979
msgstr ""
1797
1980
1798
#. type: Plain text
1981
#. type: Plain text
1799
#: ../src/xz/xz.1:1251
1982
#: ../src/xz/xz.1:1439
1800
msgid ""
1983
msgid ""
1801
"All bytes that cannot be encoded as matches are encoded as literals.  That "
1984
"All bytes that cannot be encoded as matches are encoded as literals.  That "
1802
"is, literals are simply 8-bit bytes that are encoded one at a time."
1985
"is, literals are simply 8-bit bytes that are encoded one at a time."
1803
msgstr ""
1986
msgstr ""
1804
1987
1805
#. type: Plain text
1988
#. type: Plain text
1806
#: ../src/xz/xz.1:1265
1989
#: ../src/xz/xz.1:1453
1807
msgid ""
1990
msgid ""
1808
"The literal coding makes an assumption that the highest I<lc> bits of the "
1991
"The literal coding makes an assumption that the highest I<lc> bits of the "
1809
"previous uncompressed byte correlate with the next byte.  E.g. in typical "
1992
"previous uncompressed byte correlate with the next byte.  For example, in "
1810
"English text, an upper-case letter is often followed by a lower-case letter, "
1993
"typical English text, an upper-case letter is often followed by a lower-case "
1811
"and a lower-case letter is usually followed by another lower-case letter.  "
1994
"letter, and a lower-case letter is usually followed by another lower-case "
1812
"In the US-ASCII character set, the highest three bits are 010 for upper-case "
1995
"letter.  In the US-ASCII character set, the highest three bits are 010 for "
1813
"letters and 011 for lower-case letters.  When I<lc> is at least 3, the "
1996
"upper-case letters and 011 for lower-case letters.  When I<lc> is at least "
1814
"literal coding can take advantage of this property in the uncompressed data."
1997
"3, the literal coding can take advantage of this property in the "
1998
"uncompressed data."
1815
msgstr ""
1999
msgstr ""
1816
2000
1817
#. type: Plain text
2001
#. type: Plain text
1818
#: ../src/xz/xz.1:1274
2002
#: ../src/xz/xz.1:1462
1819
msgid ""
2003
msgid ""
1820
"The default value (3) is usually good.  If you want maximum compression, "
2004
"The default value (3) is usually good.  If you want maximum compression, "
1821
"test B<lc=4>.  Sometimes it helps a little, and sometimes it makes "
2005
"test B<lc=4>.  Sometimes it helps a little, and sometimes it makes "
1822
"compression worse.  If it makes it worse, test e.g.\\& B<lc=2> too."
2006
"compression worse.  If it makes it worse, test B<lc=2> too."
1823
msgstr ""
2007
msgstr ""
1824
2008
1825
#. type: TP
2009
#. type: TP
1826
#: ../src/xz/xz.1:1274
2010
#: ../src/xz/xz.1:1462
1827
#, no-wrap
2011
#, no-wrap
1828
msgid "B<lp=>I<lp>"
2012
msgid "B<lp=>I<lp>"
1829
msgstr ""
2013
msgstr ""
1830
2014
1831
#. type: Plain text
2015
#. type: Plain text
1832
#: ../src/xz/xz.1:1278
2016
#: ../src/xz/xz.1:1466
1833
msgid ""
2017
msgid ""
1834
"Specify the number of literal position bits.  The minimum is 0 and the "
2018
"Specify the number of literal position bits.  The minimum is 0 and the "
1835
"maximum is 4; the default is 0."
2019
"maximum is 4; the default is 0."
1836
msgstr ""
2020
msgstr ""
1837
2021
1838
#. type: Plain text
2022
#. type: Plain text
1839
#: ../src/xz/xz.1:1285
2023
#: ../src/xz/xz.1:1473
1840
msgid ""
2024
msgid ""
1841
"I<Lp> affects what kind of alignment in the uncompressed data is assumed "
2025
"I<Lp> affects what kind of alignment in the uncompressed data is assumed "
1842
"when encoding literals.  See I<pb> below for more information about "
2026
"when encoding literals.  See I<pb> below for more information about "
Lines 1844-1863 Link Here
1844
msgstr ""
2028
msgstr ""
1845
2029
1846
#. type: TP
2030
#. type: TP
1847
#: ../src/xz/xz.1:1285
2031
#: ../src/xz/xz.1:1473
1848
#, no-wrap
2032
#, no-wrap
1849
msgid "B<pb=>I<pb>"
2033
msgid "B<pb=>I<pb>"
1850
msgstr ""
2034
msgstr ""
1851
2035
1852
#. type: Plain text
2036
#. type: Plain text
1853
#: ../src/xz/xz.1:1289
2037
#: ../src/xz/xz.1:1477
1854
msgid ""
2038
msgid ""
1855
"Specify the number of position bits.  The minimum is 0 and the maximum is 4; "
2039
"Specify the number of position bits.  The minimum is 0 and the maximum is 4; "
1856
"the default is 2."
2040
"the default is 2."
1857
msgstr ""
2041
msgstr ""
1858
2042
1859
#. type: Plain text
2043
#. type: Plain text
1860
#: ../src/xz/xz.1:1296
2044
#: ../src/xz/xz.1:1484
1861
msgid ""
2045
msgid ""
1862
"I<Pb> affects what kind of alignment in the uncompressed data is assumed in "
2046
"I<Pb> affects what kind of alignment in the uncompressed data is assumed in "
1863
"general.  The default means four-byte alignment (2^I<pb>=2^2=4), which is "
2047
"general.  The default means four-byte alignment (2^I<pb>=2^2=4), which is "
Lines 1865-1881 Link Here
1865
msgstr ""
2049
msgstr ""
1866
2050
1867
#. type: Plain text
2051
#. type: Plain text
1868
#: ../src/xz/xz.1:1310
2052
#: ../src/xz/xz.1:1498
1869
msgid ""
2053
msgid ""
1870
"When the aligment is known, setting I<pb> accordingly may reduce the file "
2054
"When the alignment is known, setting I<pb> accordingly may reduce the file "
1871
"size a little.  E.g. with text files having one-byte alignment (US-ASCII, "
2055
"size a little.  For example, with text files having one-byte alignment "
1872
"ISO-8859-*, UTF-8), setting B<pb=0> can improve compression slightly.  For "
2056
"(US-ASCII, ISO-8859-*, UTF-8), setting B<pb=0> can improve compression "
1873
"UTF-16 text, B<pb=1> is a good choice.  If the alignment is an odd number "
2057
"slightly.  For UTF-16 text, B<pb=1> is a good choice.  If the alignment is "
1874
"like 3 bytes, B<pb=0> might be the best choice."
2058
"an odd number like 3 bytes, B<pb=0> might be the best choice."
1875
msgstr ""
2059
msgstr ""
1876
2060
1877
#. type: Plain text
2061
#. type: Plain text
1878
#: ../src/xz/xz.1:1318
2062
#: ../src/xz/xz.1:1506
1879
msgid ""
2063
msgid ""
1880
"Even though the assumed alignment can be adjusted with I<pb> and I<lp>, "
2064
"Even though the assumed alignment can be adjusted with I<pb> and I<lp>, "
1881
"LZMA1 and LZMA2 still slightly favor 16-byte alignment.  It might be worth "
2065
"LZMA1 and LZMA2 still slightly favor 16-byte alignment.  It might be worth "
Lines 1884-1905 Link Here
1884
msgstr ""
2068
msgstr ""
1885
2069
1886
#. type: TP
2070
#. type: TP
1887
#: ../src/xz/xz.1:1318
2071
#: ../src/xz/xz.1:1506
1888
#, no-wrap
2072
#, no-wrap
1889
msgid "B<mf=>I<mf>"
2073
msgid "B<mf=>I<mf>"
1890
msgstr ""
2074
msgstr ""
1891
2075
1892
#. type: Plain text
2076
#. type: Plain text
1893
#: ../src/xz/xz.1:1333
2077
#: ../src/xz/xz.1:1521
1894
msgid ""
2078
msgid ""
1895
"Match finder has a major effect on encoder speed, memory usage, and "
2079
"Match finder has a major effect on encoder speed, memory usage, and "
1896
"compression ratio.  Usually Hash Chain match finders are faster than Binary "
2080
"compression ratio.  Usually Hash Chain match finders are faster than Binary "
1897
"Tree match finders.  The default depends on the I<preset>: 0 uses B<hc3>, "
2081
"Tree match finders.  The default depends on the I<preset>: 0 uses B<hc3>, "
1898
"1-3 use B<hc4>, and the rest use B<bt4>."
2082
"1\\(en3 use B<hc4>, and the rest use B<bt4>."
1899
msgstr ""
2083
msgstr ""
1900
2084
1901
#. type: Plain text
2085
#. type: Plain text
1902
#: ../src/xz/xz.1:1339
2086
#: ../src/xz/xz.1:1527
1903
msgid ""
2087
msgid ""
1904
"The following match finders are supported.  The memory usage formulas below "
2088
"The following match finders are supported.  The memory usage formulas below "
1905
"are rough approximations, which are closest to the reality when I<dict> is a "
2089
"are rough approximations, which are closest to the reality when I<dict> is a "
Lines 1907-2060 Link Here
1907
msgstr ""
2091
msgstr ""
1908
2092
1909
#. type: TP
2093
#. type: TP
1910
#: ../src/xz/xz.1:1340
2094
#: ../src/xz/xz.1:1528
1911
#, no-wrap
2095
#, no-wrap
1912
msgid "B<hc3>"
2096
msgid "B<hc3>"
1913
msgstr ""
2097
msgstr ""
1914
2098
1915
#. type: Plain text
2099
#. type: Plain text
1916
#: ../src/xz/xz.1:1343
2100
#: ../src/xz/xz.1:1531
1917
msgid "Hash Chain with 2- and 3-byte hashing"
2101
msgid "Hash Chain with 2- and 3-byte hashing"
1918
msgstr ""
2102
msgstr ""
1919
2103
1920
#. type: Plain text
2104
#. type: Plain text
1921
#: ../src/xz/xz.1:1347 ../src/xz/xz.1:1396
2105
#: ../src/xz/xz.1:1535 ../src/xz/xz.1:1584
1922
msgid "Minimum value for I<nice>: 3"
2106
msgid "Minimum value for I<nice>: 3"
1923
msgstr ""
2107
msgstr ""
1924
2108
1925
#. type: Plain text
2109
#. type: Plain text
1926
#: ../src/xz/xz.1:1349 ../src/xz/xz.1:1368 ../src/xz/xz.1:1398 ../src/xz/xz.1:1417
2110
#: ../src/xz/xz.1:1537 ../src/xz/xz.1:1556 ../src/xz/xz.1:1586
2111
#: ../src/xz/xz.1:1605
1927
msgid "Memory usage:"
2112
msgid "Memory usage:"
1928
msgstr ""
2113
msgstr ""
1929
2114
1930
#. type: Plain text
2115
#. type: Plain text
1931
#: ../src/xz/xz.1:1354
2116
#: ../src/xz/xz.1:1542
1932
msgid "I<dict> * 7.5 (if I<dict> E<lt>= 16 MiB);"
2117
msgid "I<dict> * 7.5 (if I<dict> E<lt>= 16 MiB);"
1933
msgstr ""
2118
msgstr ""
1934
2119
1935
#. type: Plain text
2120
#. type: Plain text
1936
#: ../src/xz/xz.1:1359
2121
#: ../src/xz/xz.1:1547
1937
msgid "I<dict> * 5.5 + 64 MiB (if I<dict> E<gt> 16 MiB)"
2122
msgid "I<dict> * 5.5 + 64 MiB (if I<dict> E<gt> 16 MiB)"
1938
msgstr ""
2123
msgstr ""
1939
2124
1940
#. type: TP
2125
#. type: TP
1941
#: ../src/xz/xz.1:1359
2126
#: ../src/xz/xz.1:1547
1942
#, no-wrap
2127
#, no-wrap
1943
msgid "B<hc4>"
2128
msgid "B<hc4>"
1944
msgstr ""
2129
msgstr ""
1945
2130
1946
#. type: Plain text
2131
#. type: Plain text
1947
#: ../src/xz/xz.1:1362
2132
#: ../src/xz/xz.1:1550
1948
msgid "Hash Chain with 2-, 3-, and 4-byte hashing"
2133
msgid "Hash Chain with 2-, 3-, and 4-byte hashing"
1949
msgstr ""
2134
msgstr ""
1950
2135
1951
#. type: Plain text
2136
#. type: Plain text
1952
#: ../src/xz/xz.1:1366 ../src/xz/xz.1:1415
2137
#: ../src/xz/xz.1:1554 ../src/xz/xz.1:1603
1953
msgid "Minimum value for I<nice>: 4"
2138
msgid "Minimum value for I<nice>: 4"
1954
msgstr ""
2139
msgstr ""
1955
2140
1956
#. type: Plain text
2141
#. type: Plain text
1957
#: ../src/xz/xz.1:1373
2142
#: ../src/xz/xz.1:1561
1958
msgid "I<dict> * 7.5 (if I<dict> E<lt>= 32 MiB);"
2143
msgid "I<dict> * 7.5 (if I<dict> E<lt>= 32 MiB);"
1959
msgstr ""
2144
msgstr ""
1960
2145
1961
#. type: Plain text
2146
#. type: Plain text
1962
#: ../src/xz/xz.1:1378
2147
#: ../src/xz/xz.1:1566
1963
msgid "I<dict> * 6.5 (if I<dict> E<gt> 32 MiB)"
2148
msgid "I<dict> * 6.5 (if I<dict> E<gt> 32 MiB)"
1964
msgstr ""
2149
msgstr ""
1965
2150
1966
#. type: TP
2151
#. type: TP
1967
#: ../src/xz/xz.1:1378
2152
#: ../src/xz/xz.1:1566
1968
#, no-wrap
2153
#, no-wrap
1969
msgid "B<bt2>"
2154
msgid "B<bt2>"
1970
msgstr ""
2155
msgstr ""
1971
2156
1972
#. type: Plain text
2157
#. type: Plain text
1973
#: ../src/xz/xz.1:1381
2158
#: ../src/xz/xz.1:1569
1974
msgid "Binary Tree with 2-byte hashing"
2159
msgid "Binary Tree with 2-byte hashing"
1975
msgstr ""
2160
msgstr ""
1976
2161
1977
#. type: Plain text
2162
#. type: Plain text
1978
#: ../src/xz/xz.1:1385
2163
#: ../src/xz/xz.1:1573
1979
msgid "Minimum value for I<nice>: 2"
2164
msgid "Minimum value for I<nice>: 2"
1980
msgstr ""
2165
msgstr ""
1981
2166
1982
#. type: Plain text
2167
#. type: Plain text
1983
#: ../src/xz/xz.1:1389
2168
#: ../src/xz/xz.1:1577
1984
msgid "Memory usage: I<dict> * 9.5"
2169
msgid "Memory usage: I<dict> * 9.5"
1985
msgstr ""
2170
msgstr ""
1986
2171
1987
#. type: TP
2172
#. type: TP
1988
#: ../src/xz/xz.1:1389
2173
#: ../src/xz/xz.1:1577
1989
#, no-wrap
2174
#, no-wrap
1990
msgid "B<bt3>"
2175
msgid "B<bt3>"
1991
msgstr ""
2176
msgstr ""
1992
2177
1993
#. type: Plain text
2178
#. type: Plain text
1994
#: ../src/xz/xz.1:1392
2179
#: ../src/xz/xz.1:1580
1995
msgid "Binary Tree with 2- and 3-byte hashing"
2180
msgid "Binary Tree with 2- and 3-byte hashing"
1996
msgstr ""
2181
msgstr ""
1997
2182
1998
#. type: Plain text
2183
#. type: Plain text
1999
#: ../src/xz/xz.1:1403
2184
#: ../src/xz/xz.1:1591
2000
msgid "I<dict> * 11.5 (if I<dict> E<lt>= 16 MiB);"
2185
msgid "I<dict> * 11.5 (if I<dict> E<lt>= 16 MiB);"
2001
msgstr ""
2186
msgstr ""
2002
2187
2003
#. type: Plain text
2188
#. type: Plain text
2004
#: ../src/xz/xz.1:1408
2189
#: ../src/xz/xz.1:1596
2005
msgid "I<dict> * 9.5 + 64 MiB (if I<dict> E<gt> 16 MiB)"
2190
msgid "I<dict> * 9.5 + 64 MiB (if I<dict> E<gt> 16 MiB)"
2006
msgstr ""
2191
msgstr ""
2007
2192
2008
#. type: TP
2193
#. type: TP
2009
#: ../src/xz/xz.1:1408
2194
#: ../src/xz/xz.1:1596
2010
#, no-wrap
2195
#, no-wrap
2011
msgid "B<bt4>"
2196
msgid "B<bt4>"
2012
msgstr ""
2197
msgstr ""
2013
2198
2014
#. type: Plain text
2199
#. type: Plain text
2015
#: ../src/xz/xz.1:1411
2200
#: ../src/xz/xz.1:1599
2016
msgid "Binary Tree with 2-, 3-, and 4-byte hashing"
2201
msgid "Binary Tree with 2-, 3-, and 4-byte hashing"
2017
msgstr ""
2202
msgstr ""
2018
2203
2019
#. type: Plain text
2204
#. type: Plain text
2020
#: ../src/xz/xz.1:1422
2205
#: ../src/xz/xz.1:1610
2021
msgid "I<dict> * 11.5 (if I<dict> E<lt>= 32 MiB);"
2206
msgid "I<dict> * 11.5 (if I<dict> E<lt>= 32 MiB);"
2022
msgstr ""
2207
msgstr ""
2023
2208
2024
#. type: Plain text
2209
#. type: Plain text
2025
#: ../src/xz/xz.1:1427
2210
#: ../src/xz/xz.1:1615
2026
msgid "I<dict> * 10.5 (if I<dict> E<gt> 32 MiB)"
2211
msgid "I<dict> * 10.5 (if I<dict> E<gt> 32 MiB)"
2027
msgstr ""
2212
msgstr ""
2028
2213
2029
#. type: TP
2214
#. type: TP
2030
#: ../src/xz/xz.1:1428
2215
#: ../src/xz/xz.1:1616
2031
#, no-wrap
2216
#, no-wrap
2032
msgid "B<mode=>I<mode>"
2217
msgid "B<mode=>I<mode>"
2033
msgstr ""
2218
msgstr ""
2034
2219
2035
#. type: Plain text
2220
#. type: Plain text
2036
#: ../src/xz/xz.1:1449
2221
#: ../src/xz/xz.1:1637
2037
msgid ""
2222
msgid ""
2038
"Compression I<mode> specifies the method to analyze the data produced by the "
2223
"Compression I<mode> specifies the method to analyze the data produced by the "
2039
"match finder.  Supported I<modes> are B<fast> and B<normal>.  The default is "
2224
"match finder.  Supported I<modes> are B<fast> and B<normal>.  The default is "
2040
"B<fast> for I<presets> 0-3 and B<normal> for I<presets> 4-9."
2225
"B<fast> for I<presets> 0\\(en3 and B<normal> for I<presets> 4\\(en9."
2041
msgstr ""
2226
msgstr ""
2042
2227
2043
#. type: Plain text
2228
#. type: Plain text
2044
#: ../src/xz/xz.1:1458
2229
#: ../src/xz/xz.1:1646
2045
msgid ""
2230
msgid ""
2046
"Usually B<fast> is used with Hash Chain match finders and B<normal> with "
2231
"Usually B<fast> is used with Hash Chain match finders and B<normal> with "
2047
"Binary Tree match finders.  This is also what the I<presets> do."
2232
"Binary Tree match finders.  This is also what the I<presets> do."
2048
msgstr ""
2233
msgstr ""
2049
2234
2050
#. type: TP
2235
#. type: TP
2051
#: ../src/xz/xz.1:1458
2236
#: ../src/xz/xz.1:1646
2052
#, no-wrap
2237
#, no-wrap
2053
msgid "B<nice=>I<nice>"
2238
msgid "B<nice=>I<nice>"
2054
msgstr ""
2239
msgstr ""
2055
2240
2056
#. type: Plain text
2241
#. type: Plain text
2057
#: ../src/xz/xz.1:1465
2242
#: ../src/xz/xz.1:1653
2058
msgid ""
2243
msgid ""
2059
"Specify what is considered to be a nice length for a match.  Once a match of "
2244
"Specify what is considered to be a nice length for a match.  Once a match of "
2060
"at least I<nice> bytes is found, the algorithm stops looking for possibly "
2245
"at least I<nice> bytes is found, the algorithm stops looking for possibly "
Lines 2062-2081 Link Here
2062
msgstr ""
2247
msgstr ""
2063
2248
2064
#. type: Plain text
2249
#. type: Plain text
2065
#: ../src/xz/xz.1:1472
2250
#: ../src/xz/xz.1:1660
2066
msgid ""
2251
msgid ""
2067
"I<Nice> can be 2-273 bytes.  Higher values tend to give better compression "
2252
"I<Nice> can be 2\\(en273 bytes.  Higher values tend to give better "
2068
"ratio at the expense of speed.  The default depends on the I<preset>."
2253
"compression ratio at the expense of speed.  The default depends on the "
2254
"I<preset>."
2069
msgstr ""
2255
msgstr ""
2070
2256
2071
#. type: TP
2257
#. type: TP
2072
#: ../src/xz/xz.1:1472
2258
#: ../src/xz/xz.1:1660
2073
#, no-wrap
2259
#, no-wrap
2074
msgid "B<depth=>I<depth>"
2260
msgid "B<depth=>I<depth>"
2075
msgstr ""
2261
msgstr ""
2076
2262
2077
#. type: Plain text
2263
#. type: Plain text
2078
#: ../src/xz/xz.1:1482
2264
#: ../src/xz/xz.1:1670
2079
msgid ""
2265
msgid ""
2080
"Specify the maximum search depth in the match finder.  The default is the "
2266
"Specify the maximum search depth in the match finder.  The default is the "
2081
"special value of 0, which makes the compressor determine a reasonable "
2267
"special value of 0, which makes the compressor determine a reasonable "
Lines 2083-2321 Link Here
2083
msgstr ""
2269
msgstr ""
2084
2270
2085
#. type: Plain text
2271
#. type: Plain text
2086
#: ../src/xz/xz.1:1493
2272
#: ../src/xz/xz.1:1681
2087
msgid ""
2273
msgid ""
2088
"Reasonable I<depth> for Hash Chains is 4-100 and 16-1000 for Binary Trees.  "
2274
"Reasonable I<depth> for Hash Chains is 4\\(en100 and 16\\(en1000 for Binary "
2089
"Using very high values for I<depth> can make the encoder extremely slow with "
2275
"Trees.  Using very high values for I<depth> can make the encoder extremely "
2090
"some files.  Avoid setting the I<depth> over 1000 unless you are prepared to "
2276
"slow with some files.  Avoid setting the I<depth> over 1000 unless you are "
2091
"interrupt the compression in case it is taking far too long."
2277
"prepared to interrupt the compression in case it is taking far too long."
2092
msgstr ""
2278
msgstr ""
2093
2279
2094
#. type: Plain text
2280
#. type: Plain text
2095
#: ../src/xz/xz.1:1504
2281
#: ../src/xz/xz.1:1692
2096
msgid ""
2282
msgid ""
2097
"When decoding raw streams (B<--format=raw>), LZMA2 needs only the dictionary "
2283
"When decoding raw streams (B<--format=raw>), LZMA2 needs only the dictionary "
2098
"I<size>.  LZMA1 needs also I<lc>, I<lp>, and I<pb>."
2284
"I<size>.  LZMA1 needs also I<lc>, I<lp>, and I<pb>."
2099
msgstr ""
2285
msgstr ""
2100
2286
2101
#. type: TP
2287
#. type: TP
2102
#: ../src/xz/xz.1:1504
2288
#: ../src/xz/xz.1:1692
2103
#, no-wrap
2289
#, no-wrap
2104
msgid "B<--x86>[B<=>I<options>]"
2290
msgid "B<--x86>[B<=>I<options>]"
2105
msgstr ""
2291
msgstr ""
2106
2292
2107
#. type: TP
2293
#. type: TP
2108
#: ../src/xz/xz.1:1507
2294
#: ../src/xz/xz.1:1695
2109
#, no-wrap
2295
#, no-wrap
2110
msgid "B<--powerpc>[B<=>I<options>]"
2296
msgid "B<--arm>[B<=>I<options>]"
2111
msgstr ""
2297
msgstr ""
2112
2298
2113
#. type: TP
2299
#. type: TP
2114
#: ../src/xz/xz.1:1509
2300
#: ../src/xz/xz.1:1697
2115
#, no-wrap
2301
#, no-wrap
2116
msgid "B<--ia64>[B<=>I<options>]"
2302
msgid "B<--armthumb>[B<=>I<options>]"
2117
msgstr ""
2303
msgstr ""
2118
2304
2119
#. type: TP
2305
#. type: TP
2120
#: ../src/xz/xz.1:1511
2306
#: ../src/xz/xz.1:1699
2121
#, no-wrap
2307
#, no-wrap
2122
msgid "B<--arm>[B<=>I<options>]"
2308
msgid "B<--arm64>[B<=>I<options>]"
2123
msgstr ""
2309
msgstr ""
2124
2310
2125
#. type: TP
2311
#. type: TP
2126
#: ../src/xz/xz.1:1513
2312
#: ../src/xz/xz.1:1701
2127
#, no-wrap
2313
#, no-wrap
2128
msgid "B<--armthumb>[B<=>I<options>]"
2314
msgid "B<--powerpc>[B<=>I<options>]"
2129
msgstr ""
2315
msgstr ""
2130
2316
2131
#. type: TP
2317
#. type: TP
2132
#: ../src/xz/xz.1:1515
2318
#: ../src/xz/xz.1:1703
2133
#, no-wrap
2319
#, no-wrap
2320
msgid "B<--ia64>[B<=>I<options>]"
2321
msgstr ""
2322
2323
#. type: TP
2324
#: ../src/xz/xz.1:1705
2325
#, no-wrap
2134
msgid "B<--sparc>[B<=>I<options>]"
2326
msgid "B<--sparc>[B<=>I<options>]"
2135
msgstr ""
2327
msgstr ""
2136
2328
2137
#. type: Plain text
2329
#. type: Plain text
2138
#: ../src/xz/xz.1:1521
2330
#: ../src/xz/xz.1:1711
2139
msgid ""
2331
msgid ""
2140
"Add a branch/call/jump (BCJ) filter to the filter chain.  These filters can "
2332
"Add a branch/call/jump (BCJ) filter to the filter chain.  These filters can "
2141
"be used only as a non-last filter in the filter chain."
2333
"be used only as a non-last filter in the filter chain."
2142
msgstr ""
2334
msgstr ""
2143
2335
2144
#. type: Plain text
2336
#. type: Plain text
2145
#: ../src/xz/xz.1:1533
2337
#: ../src/xz/xz.1:1725
2146
msgid ""
2338
msgid ""
2147
"A BCJ filter converts relative addresses in the machine code to their "
2339
"A BCJ filter converts relative addresses in the machine code to their "
2148
"absolute counterparts.  This doesn't change the size of the data, but it "
2340
"absolute counterparts.  This doesn't change the size of the data but it "
2149
"increases redundancy, which can help LZMA2 to produce 0-15\\ % smaller "
2341
"increases redundancy, which can help LZMA2 to produce 0\\(en15\\ % smaller "
2150
"B<.xz> file.  The BCJ filters are always reversible, so using a BCJ filter "
2342
"B<.xz> file.  The BCJ filters are always reversible, so using a BCJ filter "
2151
"for wrong type of data doesn't cause any data loss, although it may make the "
2343
"for wrong type of data doesn't cause any data loss, although it may make the "
2152
"compression ratio slightly worse."
2344
"compression ratio slightly worse.  The BCJ filters are very fast and use an "
2345
"insignificant amount of memory."
2153
msgstr ""
2346
msgstr ""
2154
2347
2155
#. type: Plain text
2348
#. type: Plain text
2156
#: ../src/xz/xz.1:1540
2349
#: ../src/xz/xz.1:1728
2157
msgid ""
2158
"It is fine to apply a BCJ filter on a whole executable; there's no need to "
2159
"apply it only on the executable section.  Applying a BCJ filter on an "
2160
"archive that contains both executable and non-executable files may or may "
2161
"not give good results, so it generally isn't good to blindly apply a BCJ "
2162
"filter when compressing binary packages for distribution."
2163
msgstr ""
2164
2165
#. type: Plain text
2166
#: ../src/xz/xz.1:1548
2167
msgid ""
2168
"These BCJ filters are very fast and use insignificant amount of memory.  If "
2169
"a BCJ filter improves compression ratio of a file, it can improve "
2170
"decompression speed at the same time.  This is because, on the same "
2171
"hardware, the decompression speed of LZMA2 is roughly a fixed number of "
2172
"bytes of compressed data per second."
2173
msgstr ""
2174
2175
#. type: Plain text
2176
#: ../src/xz/xz.1:1551
2177
msgid "These BCJ filters have known problems related to the compression ratio:"
2350
msgid "These BCJ filters have known problems related to the compression ratio:"
2178
msgstr ""
2351
msgstr ""
2179
2352
2180
#. type: Plain text
2353
#. type: Plain text
2181
#: ../src/xz/xz.1:1558
2354
#: ../src/xz/xz.1:1735
2182
msgid ""
2355
msgid ""
2183
"Some types of files containing executable code (e.g. object files, static "
2356
"Some types of files containing executable code (for example, object files, "
2184
"libraries, and Linux kernel modules)  have the addresses in the instructions "
2357
"static libraries, and Linux kernel modules)  have the addresses in the "
2185
"filled with filler values.  These BCJ filters will still do the address "
2358
"instructions filled with filler values.  These BCJ filters will still do the "
2186
"conversion, which will make the compression worse with these files."
2359
"address conversion, which will make the compression worse with these files."
2187
msgstr ""
2360
msgstr ""
2188
2361
2189
#. type: Plain text
2362
#. type: Plain text
2190
#: ../src/xz/xz.1:1565
2363
#: ../src/xz/xz.1:1745
2191
msgid ""
2364
msgid ""
2192
"Applying a BCJ filter on an archive containing multiple similar executables "
2365
"If a BCJ filter is applied on an archive, it is possible that it makes the "
2193
"can make the compression ratio worse than not using a BCJ filter.  This is "
2366
"compression ratio worse than not using a BCJ filter.  For example, if there "
2194
"because the BCJ filter doesn't detect the boundaries of the executable "
2367
"are similar or even identical executables then filtering will likely make "
2195
"files, and doesn't reset the address conversion counter for each executable."
2368
"the files less similar and thus compression is worse.  The contents of "
2369
"non-executable files in the same archive can matter too.  In practice one "
2370
"has to try with and without a BCJ filter to see which is better in each "
2371
"situation."
2196
msgstr ""
2372
msgstr ""
2197
2373
2198
#. type: Plain text
2374
#. type: Plain text
2199
#: ../src/xz/xz.1:1572
2375
#: ../src/xz/xz.1:1750
2200
msgid ""
2376
msgid ""
2201
"Both of the above problems will be fixed in the future in a new filter.  The "
2377
"Different instruction sets have different alignment: the executable file "
2202
"old BCJ filters will still be useful in embedded systems, because the "
2378
"must be aligned to a multiple of this value in the input data to make the "
2203
"decoder of the new filter will be bigger and use more memory."
2379
"filter work."
2204
msgstr ""
2380
msgstr ""
2205
2381
2206
#. type: Plain text
2207
#: ../src/xz/xz.1:1574
2208
msgid "Different instruction sets have different alignment:"
2209
msgstr ""
2210
2211
#. type: tbl table
2382
#. type: tbl table
2212
#: ../src/xz/xz.1:1581
2383
#: ../src/xz/xz.1:1757
2213
#, no-wrap
2384
#, no-wrap
2214
msgid "Filter"
2385
msgid "Filter"
2215
msgstr ""
2386
msgstr ""
2216
2387
2217
#. type: tbl table
2388
#. type: tbl table
2218
#: ../src/xz/xz.1:1581
2389
#: ../src/xz/xz.1:1757
2219
#, no-wrap
2390
#, no-wrap
2220
msgid "Alignment"
2391
msgid "Alignment"
2221
msgstr ""
2392
msgstr ""
2222
2393
2223
#. type: tbl table
2394
#. type: tbl table
2224
#: ../src/xz/xz.1:1581
2395
#: ../src/xz/xz.1:1757
2225
#, no-wrap
2396
#, no-wrap
2226
msgid "Notes"
2397
msgid "Notes"
2227
msgstr ""
2398
msgstr ""
2228
2399
2229
#. type: tbl table
2400
#. type: tbl table
2230
#: ../src/xz/xz.1:1582
2401
#: ../src/xz/xz.1:1758
2231
#, no-wrap
2402
#, no-wrap
2232
msgid "x86"
2403
msgid "x86"
2233
msgstr ""
2404
msgstr ""
2234
2405
2235
#. type: tbl table
2406
#. type: tbl table
2236
#: ../src/xz/xz.1:1582
2407
#: ../src/xz/xz.1:1758
2237
#, no-wrap
2408
#, no-wrap
2238
msgid "32-bit or 64-bit x86"
2409
msgid "32-bit or 64-bit x86"
2239
msgstr ""
2410
msgstr ""
2240
2411
2241
#. type: tbl table
2412
#. type: tbl table
2242
#: ../src/xz/xz.1:1583
2413
#: ../src/xz/xz.1:1759
2243
#, no-wrap
2414
#, no-wrap
2244
msgid "PowerPC"
2415
msgid "ARM"
2245
msgstr ""
2416
msgstr ""
2246
2417
2247
#. type: tbl table
2418
#. type: tbl table
2248
#: ../src/xz/xz.1:1583
2419
#: ../src/xz/xz.1:1760
2249
#, no-wrap
2420
#, no-wrap
2250
msgid "Big endian only"
2421
msgid "ARM-Thumb"
2251
msgstr ""
2422
msgstr ""
2252
2423
2253
#. type: tbl table
2424
#. type: tbl table
2254
#: ../src/xz/xz.1:1584
2425
#: ../src/xz/xz.1:1761
2255
#, no-wrap
2426
#, no-wrap
2256
msgid "ARM"
2427
msgid "ARM64"
2257
msgstr ""
2428
msgstr ""
2258
2429
2259
#. type: tbl table
2430
#. type: tbl table
2260
#: ../src/xz/xz.1:1584 ../src/xz/xz.1:1585
2431
#: ../src/xz/xz.1:1761
2261
#, no-wrap
2432
#, no-wrap
2262
msgid "Little endian only"
2433
msgid "4096-byte alignment is best"
2263
msgstr ""
2434
msgstr ""
2264
2435
2265
#. type: tbl table
2436
#. type: tbl table
2266
#: ../src/xz/xz.1:1585
2437
#: ../src/xz/xz.1:1762
2267
#, no-wrap
2438
#, no-wrap
2268
msgid "ARM-Thumb"
2439
msgid "PowerPC"
2269
msgstr ""
2440
msgstr ""
2270
2441
2271
#. type: tbl table
2442
#. type: tbl table
2272
#: ../src/xz/xz.1:1586
2443
#: ../src/xz/xz.1:1762
2273
#, no-wrap
2444
#, no-wrap
2445
msgid "Big endian only"
2446
msgstr ""
2447
2448
#. type: tbl table
2449
#: ../src/xz/xz.1:1763
2450
#, no-wrap
2274
msgid "IA-64"
2451
msgid "IA-64"
2275
msgstr ""
2452
msgstr ""
2276
2453
2277
#. type: tbl table
2454
#. type: tbl table
2278
#: ../src/xz/xz.1:1586
2455
#: ../src/xz/xz.1:1763
2279
#, no-wrap
2456
#, no-wrap
2280
msgid "16"
2457
msgid "16"
2281
msgstr ""
2458
msgstr ""
2282
2459
2283
#. type: tbl table
2460
#. type: tbl table
2284
#: ../src/xz/xz.1:1586 ../src/xz/xz.1:1587
2461
#: ../src/xz/xz.1:1763
2285
#, no-wrap
2462
#, no-wrap
2286
msgid "Big or little endian"
2463
msgid "Itanium"
2287
msgstr ""
2464
msgstr ""
2288
2465
2289
#. type: tbl table
2466
#. type: tbl table
2290
#: ../src/xz/xz.1:1587
2467
#: ../src/xz/xz.1:1764
2291
#, no-wrap
2468
#, no-wrap
2292
msgid "SPARC"
2469
msgid "SPARC"
2293
msgstr ""
2470
msgstr ""
2294
2471
2295
#. type: Plain text
2472
#. type: Plain text
2296
#: ../src/xz/xz.1:1602
2473
#: ../src/xz/xz.1:1781
2297
msgid ""
2474
msgid ""
2298
"Since the BCJ-filtered data is usually compressed with LZMA2, the "
2475
"Since the BCJ-filtered data is usually compressed with LZMA2, the "
2299
"compression ratio may be improved slightly if the LZMA2 options are set to "
2476
"compression ratio may be improved slightly if the LZMA2 options are set to "
2300
"match the alignment of the selected BCJ filter.  For example, with the IA-64 "
2477
"match the alignment of the selected BCJ filter.  For example, with the IA-64 "
2301
"filter, it's good to set B<pb=4> with LZMA2 (2^4=16).  The x86 filter is an "
2478
"filter, it's good to set B<pb=4> or even B<pb=4,lp=4,lc=0> with LZMA2 "
2302
"exception; it's usually good to stick to LZMA2's default four-byte alignment "
2479
"(2^4=16).  The x86 filter is an exception; it's usually good to stick to "
2303
"when compressing x86 executables."
2480
"LZMA2's default four-byte alignment when compressing x86 executables."
2304
msgstr ""
2481
msgstr ""
2305
2482
2306
#. type: Plain text
2483
#. type: Plain text
2307
#: ../src/xz/xz.1:1605
2484
#: ../src/xz/xz.1:1784
2308
msgid "All BCJ filters support the same I<options>:"
2485
msgid "All BCJ filters support the same I<options>:"
2309
msgstr ""
2486
msgstr ""
2310
2487
2311
#. type: TP
2488
#. type: TP
2312
#: ../src/xz/xz.1:1606
2489
#: ../src/xz/xz.1:1785
2313
#, no-wrap
2490
#, no-wrap
2314
msgid "B<start=>I<offset>"
2491
msgid "B<start=>I<offset>"
2315
msgstr ""
2492
msgstr ""
2316
2493
2317
#. type: Plain text
2494
#. type: Plain text
2318
#: ../src/xz/xz.1:1620
2495
#: ../src/xz/xz.1:1799
2319
msgid ""
2496
msgid ""
2320
"Specify the start I<offset> that is used when converting between relative "
2497
"Specify the start I<offset> that is used when converting between relative "
2321
"and absolute addresses.  The I<offset> must be a multiple of the alignment "
2498
"and absolute addresses.  The I<offset> must be a multiple of the alignment "
Lines 2324-2390 Link Here
2324
msgstr ""
2501
msgstr ""
2325
2502
2326
#. type: TP
2503
#. type: TP
2327
#: ../src/xz/xz.1:1621
2504
#: ../src/xz/xz.1:1800
2328
#, no-wrap
2505
#, no-wrap
2329
msgid "B<--delta>[B<=>I<options>]"
2506
msgid "B<--delta>[B<=>I<options>]"
2330
msgstr ""
2507
msgstr ""
2331
2508
2332
#. type: Plain text
2509
#. type: Plain text
2333
#: ../src/xz/xz.1:1626
2510
#: ../src/xz/xz.1:1805
2334
msgid ""
2511
msgid ""
2335
"Add the Delta filter to the filter chain.  The Delta filter can be only used "
2512
"Add the Delta filter to the filter chain.  The Delta filter can be only used "
2336
"as a non-last filter in the filter chain."
2513
"as a non-last filter in the filter chain."
2337
msgstr ""
2514
msgstr ""
2338
2515
2339
#. type: Plain text
2516
#. type: Plain text
2340
#: ../src/xz/xz.1:1635
2517
#: ../src/xz/xz.1:1814
2341
msgid ""
2518
msgid ""
2342
"Currently only simple byte-wise delta calculation is supported.  It can be "
2519
"Currently only simple byte-wise delta calculation is supported.  It can be "
2343
"useful when compressing e.g. uncompressed bitmap images or uncompressed PCM "
2520
"useful when compressing, for example, uncompressed bitmap images or "
2344
"audio.  However, special purpose algorithms may give significantly better "
2521
"uncompressed PCM audio.  However, special purpose algorithms may give "
2345
"results than Delta + LZMA2.  This is true especially with audio, which "
2522
"significantly better results than Delta + LZMA2.  This is true especially "
2346
"compresses faster and better e.g. with B<flac>(1)."
2523
"with audio, which compresses faster and better, for example, with "
2524
"B<flac>(1)."
2347
msgstr ""
2525
msgstr ""
2348
2526
2349
#. type: Plain text
2527
#. type: Plain text
2350
#: ../src/xz/xz.1:1638
2528
#: ../src/xz/xz.1:1817
2351
msgid "Supported I<options>:"
2529
msgid "Supported I<options>:"
2352
msgstr ""
2530
msgstr ""
2353
2531
2354
#. type: TP
2532
#. type: TP
2355
#: ../src/xz/xz.1:1639
2533
#: ../src/xz/xz.1:1818
2356
#, no-wrap
2534
#, no-wrap
2357
msgid "B<dist=>I<distance>"
2535
msgid "B<dist=>I<distance>"
2358
msgstr ""
2536
msgstr ""
2359
2537
2360
#. type: Plain text
2538
#. type: Plain text
2361
#: ../src/xz/xz.1:1647
2539
#: ../src/xz/xz.1:1826
2362
msgid ""
2540
msgid ""
2363
"Specify the I<distance> of the delta calculation in bytes.  I<distance> must "
2541
"Specify the I<distance> of the delta calculation in bytes.  I<distance> must "
2364
"be 1-256.  The default is 1."
2542
"be 1\\(en256.  The default is 1."
2365
msgstr ""
2543
msgstr ""
2366
2544
2367
#. type: Plain text
2545
#. type: Plain text
2368
#: ../src/xz/xz.1:1652
2546
#: ../src/xz/xz.1:1831
2369
msgid ""
2547
msgid ""
2370
"For example, with B<dist=2> and eight-byte input A1 B1 A2 B3 A3 B5 A4 B7, "
2548
"For example, with B<dist=2> and eight-byte input A1 B1 A2 B3 A3 B5 A4 B7, "
2371
"the output will be A1 B1 01 02 01 02 01 02."
2549
"the output will be A1 B1 01 02 01 02 01 02."
2372
msgstr ""
2550
msgstr ""
2373
2551
2374
#. type: SS
2552
#. type: SS
2375
#: ../src/xz/xz.1:1654
2553
#: ../src/xz/xz.1:1833
2376
#, no-wrap
2554
#, no-wrap
2377
msgid "Other options"
2555
msgid "Other options"
2378
msgstr ""
2556
msgstr ""
2379
2557
2380
#. type: TP
2558
#. type: TP
2381
#: ../src/xz/xz.1:1655 ../src/xzdec/xzdec.1:83
2559
#: ../src/xz/xz.1:1834 ../src/xzdec/xzdec.1:83
2382
#, no-wrap
2560
#, no-wrap
2383
msgid "B<-q>, B<--quiet>"
2561
msgid "B<-q>, B<--quiet>"
2384
msgstr ""
2562
msgstr ""
2385
2563
2386
#. type: Plain text
2564
#. type: Plain text
2387
#: ../src/xz/xz.1:1662
2565
#: ../src/xz/xz.1:1841
2388
msgid ""
2566
msgid ""
2389
"Suppress warnings and notices.  Specify this twice to suppress errors too.  "
2567
"Suppress warnings and notices.  Specify this twice to suppress errors too.  "
2390
"This option has no effect on the exit status.  That is, even if a warning "
2568
"This option has no effect on the exit status.  That is, even if a warning "
Lines 2392-2404 Link Here
2392
msgstr ""
2570
msgstr ""
2393
2571
2394
#. type: TP
2572
#. type: TP
2395
#: ../src/xz/xz.1:1662
2573
#: ../src/xz/xz.1:1841
2396
#, no-wrap
2574
#, no-wrap
2397
msgid "B<-v>, B<--verbose>"
2575
msgid "B<-v>, B<--verbose>"
2398
msgstr ""
2576
msgstr ""
2399
2577
2400
#. type: Plain text
2578
#. type: Plain text
2401
#: ../src/xz/xz.1:1671
2579
#: ../src/xz/xz.1:1850
2402
msgid ""
2580
msgid ""
2403
"Be verbose.  If standard error is connected to a terminal, B<xz> will "
2581
"Be verbose.  If standard error is connected to a terminal, B<xz> will "
2404
"display a progress indicator.  Specifying B<--verbose> twice will give even "
2582
"display a progress indicator.  Specifying B<--verbose> twice will give even "
Lines 2406-2445 Link Here
2406
msgstr ""
2584
msgstr ""
2407
2585
2408
#. type: Plain text
2586
#. type: Plain text
2409
#: ../src/xz/xz.1:1673
2587
#: ../src/xz/xz.1:1852
2410
msgid "The progress indicator shows the following information:"
2588
msgid "The progress indicator shows the following information:"
2411
msgstr ""
2589
msgstr ""
2412
2590
2413
#. type: Plain text
2591
#. type: Plain text
2414
#: ../src/xz/xz.1:1678
2592
#: ../src/xz/xz.1:1857
2415
msgid ""
2593
msgid ""
2416
"Completion percentage is shown if the size of the input file is known.  That "
2594
"Completion percentage is shown if the size of the input file is known.  That "
2417
"is, the percentage cannot be shown in pipes."
2595
"is, the percentage cannot be shown in pipes."
2418
msgstr ""
2596
msgstr ""
2419
2597
2420
#. type: Plain text
2598
#. type: Plain text
2421
#: ../src/xz/xz.1:1681
2599
#: ../src/xz/xz.1:1860
2422
msgid ""
2600
msgid ""
2423
"Amount of compressed data produced (compressing)  or consumed "
2601
"Amount of compressed data produced (compressing)  or consumed "
2424
"(decompressing)."
2602
"(decompressing)."
2425
msgstr ""
2603
msgstr ""
2426
2604
2427
#. type: Plain text
2605
#. type: Plain text
2428
#: ../src/xz/xz.1:1684
2606
#: ../src/xz/xz.1:1863
2429
msgid ""
2607
msgid ""
2430
"Amount of uncompressed data consumed (compressing)  or produced "
2608
"Amount of uncompressed data consumed (compressing)  or produced "
2431
"(decompressing)."
2609
"(decompressing)."
2432
msgstr ""
2610
msgstr ""
2433
2611
2434
#. type: Plain text
2612
#. type: Plain text
2435
#: ../src/xz/xz.1:1688
2613
#: ../src/xz/xz.1:1867
2436
msgid ""
2614
msgid ""
2437
"Compression ratio, which is calculated by dividing the amount of compressed "
2615
"Compression ratio, which is calculated by dividing the amount of compressed "
2438
"data processed so far by the amount of uncompressed data processed so far."
2616
"data processed so far by the amount of uncompressed data processed so far."
2439
msgstr ""
2617
msgstr ""
2440
2618
2441
#. type: Plain text
2619
#. type: Plain text
2442
#: ../src/xz/xz.1:1695
2620
#: ../src/xz/xz.1:1874
2443
msgid ""
2621
msgid ""
2444
"Compression or decompression speed.  This is measured as the amount of "
2622
"Compression or decompression speed.  This is measured as the amount of "
2445
"uncompressed data consumed (compression) or produced (decompression) per "
2623
"uncompressed data consumed (compression) or produced (decompression) per "
Lines 2448-2486 Link Here
2448
msgstr ""
2626
msgstr ""
2449
2627
2450
#. type: Plain text
2628
#. type: Plain text
2451
#: ../src/xz/xz.1:1697
2629
#: ../src/xz/xz.1:1876
2452
msgid "Elapsed time in the format M:SS or H:MM:SS."
2630
msgid "Elapsed time in the format M:SS or H:MM:SS."
2453
msgstr ""
2631
msgstr ""
2454
2632
2455
#. type: Plain text
2633
#. type: Plain text
2456
#: ../src/xz/xz.1:1705
2634
#: ../src/xz/xz.1:1884
2457
msgid ""
2635
msgid ""
2458
"Estimated remaining time is shown only when the size of the input file is "
2636
"Estimated remaining time is shown only when the size of the input file is "
2459
"known and a couple of seconds have already passed since B<xz> started "
2637
"known and a couple of seconds have already passed since B<xz> started "
2460
"processing the file.  The time is shown in a less precise format which never "
2638
"processing the file.  The time is shown in a less precise format which never "
2461
"has any colons, e.g. 2 min 30 s."
2639
"has any colons, for example, 2 min 30 s."
2462
msgstr ""
2640
msgstr ""
2463
2641
2464
#. type: Plain text
2642
#. type: Plain text
2465
#: ../src/xz/xz.1:1720
2643
#: ../src/xz/xz.1:1899
2466
msgid ""
2644
msgid ""
2467
"When standard error is not a terminal, B<--verbose> will make B<xz> print "
2645
"When standard error is not a terminal, B<--verbose> will make B<xz> print "
2468
"the filename, compressed size, uncompressed size, compression ratio, and "
2646
"the filename, compressed size, uncompressed size, compression ratio, and "
2469
"possibly also the speed and elapsed time on a single line to standard error "
2647
"possibly also the speed and elapsed time on a single line to standard error "
2470
"after compressing or decompressing the file.  The speed and elapsed time are "
2648
"after compressing or decompressing the file.  The speed and elapsed time are "
2471
"included only when the operation took at least a few seconds.  If the "
2649
"included only when the operation took at least a few seconds.  If the "
2472
"operation didn't finish, e.g. due to user interruption, also the completion "
2650
"operation didn't finish, for example, due to user interruption, also the "
2473
"percentage is printed if the size of the input file is known."
2651
"completion percentage is printed if the size of the input file is known."
2474
msgstr ""
2652
msgstr ""
2475
2653
2476
#. type: TP
2654
#. type: TP
2477
#: ../src/xz/xz.1:1720 ../src/xzdec/xzdec.1:89
2655
#: ../src/xz/xz.1:1899 ../src/xzdec/xzdec.1:89
2478
#, no-wrap
2656
#, no-wrap
2479
msgid "B<-Q>, B<--no-warn>"
2657
msgid "B<-Q>, B<--no-warn>"
2480
msgstr ""
2658
msgstr ""
2481
2659
2482
#. type: Plain text
2660
#. type: Plain text
2483
#: ../src/xz/xz.1:1730
2661
#: ../src/xz/xz.1:1909
2484
msgid ""
2662
msgid ""
2485
"Don't set the exit status to 2 even if a condition worth a warning was "
2663
"Don't set the exit status to 2 even if a condition worth a warning was "
2486
"detected.  This option doesn't affect the verbosity level, thus both "
2664
"detected.  This option doesn't affect the verbosity level, thus both "
Lines 2489-2501 Link Here
2489
msgstr ""
2667
msgstr ""
2490
2668
2491
#. type: TP
2669
#. type: TP
2492
#: ../src/xz/xz.1:1730
2670
#: ../src/xz/xz.1:1909
2493
#, no-wrap
2671
#, no-wrap
2494
msgid "B<--robot>"
2672
msgid "B<--robot>"
2495
msgstr ""
2673
msgstr ""
2496
2674
2497
#. type: Plain text
2675
#. type: Plain text
2498
#: ../src/xz/xz.1:1742
2676
#: ../src/xz/xz.1:1921
2499
msgid ""
2677
msgid ""
2500
"Print messages in a machine-parsable format.  This is intended to ease "
2678
"Print messages in a machine-parsable format.  This is intended to ease "
2501
"writing frontends that want to use B<xz> instead of liblzma, which may be "
2679
"writing frontends that want to use B<xz> instead of liblzma, which may be "
Lines 2505-2570 Link Here
2505
msgstr ""
2683
msgstr ""
2506
2684
2507
#. type: TP
2685
#. type: TP
2508
#: ../src/xz/xz.1:1742
2686
#: ../src/xz/xz.1:1921
2509
#, no-wrap
2687
#, no-wrap
2510
msgid "B<--info-memory>"
2688
msgid "B<--info-memory>"
2511
msgstr ""
2689
msgstr ""
2512
2690
2513
#. type: Plain text
2691
#. type: Plain text
2514
#: ../src/xz/xz.1:1748
2692
#: ../src/xz/xz.1:1928
2515
msgid ""
2693
msgid ""
2516
"Display, in human-readable format, how much physical memory (RAM)  B<xz> "
2694
"Display, in human-readable format, how much physical memory (RAM)  and how "
2517
"thinks the system has and the memory usage limits for compression and "
2695
"many processor threads B<xz> thinks the system has and the memory usage "
2518
"decompression, and exit successfully."
2696
"limits for compression and decompression, and exit successfully."
2519
msgstr ""
2697
msgstr ""
2520
2698
2521
#. type: TP
2699
#. type: TP
2522
#: ../src/xz/xz.1:1748 ../src/xzdec/xzdec.1:96
2700
#: ../src/xz/xz.1:1928 ../src/xzdec/xzdec.1:96
2523
#, no-wrap
2701
#, no-wrap
2524
msgid "B<-h>, B<--help>"
2702
msgid "B<-h>, B<--help>"
2525
msgstr ""
2703
msgstr ""
2526
2704
2527
#. type: Plain text
2705
#. type: Plain text
2528
#: ../src/xz/xz.1:1752
2706
#: ../src/xz/xz.1:1932
2529
msgid ""
2707
msgid ""
2530
"Display a help message describing the most commonly used options, and exit "
2708
"Display a help message describing the most commonly used options, and exit "
2531
"successfully."
2709
"successfully."
2532
msgstr ""
2710
msgstr ""
2533
2711
2534
#. type: TP
2712
#. type: TP
2535
#: ../src/xz/xz.1:1752
2713
#: ../src/xz/xz.1:1932
2536
#, no-wrap
2714
#, no-wrap
2537
msgid "B<-H>, B<--long-help>"
2715
msgid "B<-H>, B<--long-help>"
2538
msgstr ""
2716
msgstr ""
2539
2717
2540
#. type: Plain text
2718
#. type: Plain text
2541
#: ../src/xz/xz.1:1757
2719
#: ../src/xz/xz.1:1937
2542
msgid ""
2720
msgid ""
2543
"Display a help message describing all features of B<xz>, and exit "
2721
"Display a help message describing all features of B<xz>, and exit "
2544
"successfully"
2722
"successfully"
2545
msgstr ""
2723
msgstr ""
2546
2724
2547
#. type: TP
2725
#. type: TP
2548
#: ../src/xz/xz.1:1757 ../src/xzdec/xzdec.1:99
2726
#: ../src/xz/xz.1:1937 ../src/xzdec/xzdec.1:99
2549
#, no-wrap
2727
#, no-wrap
2550
msgid "B<-V>, B<--version>"
2728
msgid "B<-V>, B<--version>"
2551
msgstr ""
2729
msgstr ""
2552
2730
2553
#. type: Plain text
2731
#. type: Plain text
2554
#: ../src/xz/xz.1:1766
2732
#: ../src/xz/xz.1:1946
2555
msgid ""
2733
msgid ""
2556
"Display the version number of B<xz> and liblzma in human readable format.  "
2734
"Display the version number of B<xz> and liblzma in human readable format.  "
2557
"To get machine-parsable output, specify B<--robot> before B<--version>."
2735
"To get machine-parsable output, specify B<--robot> before B<--version>."
2558
msgstr ""
2736
msgstr ""
2559
2737
2560
#. type: SH
2738
#. type: SH
2561
#: ../src/xz/xz.1:1767
2739
#: ../src/xz/xz.1:1947
2562
#, no-wrap
2740
#, no-wrap
2563
msgid "ROBOT MODE"
2741
msgid "ROBOT MODE"
2564
msgstr ""
2742
msgstr ""
2565
2743
2566
#. type: Plain text
2744
#. type: Plain text
2567
#: ../src/xz/xz.1:1783
2745
#: ../src/xz/xz.1:1963
2568
msgid ""
2746
msgid ""
2569
"The robot mode is activated with the B<--robot> option.  It makes the output "
2747
"The robot mode is activated with the B<--robot> option.  It makes the output "
2570
"of B<xz> easier to parse by other programs.  Currently B<--robot> is "
2748
"of B<xz> easier to parse by other programs.  Currently B<--robot> is "
Lines 2573-2727 Link Here
2573
msgstr ""
2751
msgstr ""
2574
2752
2575
#. type: SS
2753
#. type: SS
2576
#: ../src/xz/xz.1:1784
2754
#: ../src/xz/xz.1:1964
2577
#, no-wrap
2755
#, no-wrap
2578
msgid "Version"
2756
msgid "Version"
2579
msgstr ""
2757
msgstr ""
2580
2758
2581
#. type: Plain text
2759
#. type: Plain text
2582
#: ../src/xz/xz.1:1789
2760
#: ../src/xz/xz.1:1969
2583
msgid ""
2761
msgid ""
2584
"B<xz --robot --version> will print the version number of B<xz> and liblzma "
2762
"B<xz --robot --version> will print the version number of B<xz> and liblzma "
2585
"in the following format:"
2763
"in the following format:"
2586
msgstr ""
2764
msgstr ""
2587
2765
2588
#. type: Plain text
2766
#. type: Plain text
2589
#: ../src/xz/xz.1:1791
2767
#: ../src/xz/xz.1:1971
2590
msgid "B<XZ_VERSION=>I<XYYYZZZS>"
2768
msgid "B<XZ_VERSION=>I<XYYYZZZS>"
2591
msgstr ""
2769
msgstr ""
2592
2770
2593
#. type: Plain text
2771
#. type: Plain text
2594
#: ../src/xz/xz.1:1793
2772
#: ../src/xz/xz.1:1973
2595
msgid "B<LIBLZMA_VERSION=>I<XYYYZZZS>"
2773
msgid "B<LIBLZMA_VERSION=>I<XYYYZZZS>"
2596
msgstr ""
2774
msgstr ""
2597
2775
2598
#. type: TP
2776
#. type: TP
2599
#: ../src/xz/xz.1:1793
2777
#: ../src/xz/xz.1:1973
2600
#, no-wrap
2778
#, no-wrap
2601
msgid "I<X>"
2779
msgid "I<X>"
2602
msgstr ""
2780
msgstr ""
2603
2781
2604
#. type: Plain text
2782
#. type: Plain text
2605
#: ../src/xz/xz.1:1796
2783
#: ../src/xz/xz.1:1976
2606
msgid "Major version."
2784
msgid "Major version."
2607
msgstr ""
2785
msgstr ""
2608
2786
2609
#. type: TP
2787
#. type: TP
2610
#: ../src/xz/xz.1:1796
2788
#: ../src/xz/xz.1:1976
2611
#, no-wrap
2789
#, no-wrap
2612
msgid "I<YYY>"
2790
msgid "I<YYY>"
2613
msgstr ""
2791
msgstr ""
2614
2792
2615
#. type: Plain text
2793
#. type: Plain text
2616
#: ../src/xz/xz.1:1801
2794
#: ../src/xz/xz.1:1981
2617
msgid ""
2795
msgid ""
2618
"Minor version.  Even numbers are stable.  Odd numbers are alpha or beta "
2796
"Minor version.  Even numbers are stable.  Odd numbers are alpha or beta "
2619
"versions."
2797
"versions."
2620
msgstr ""
2798
msgstr ""
2621
2799
2622
#. type: TP
2800
#. type: TP
2623
#: ../src/xz/xz.1:1801
2801
#: ../src/xz/xz.1:1981
2624
#, no-wrap
2802
#, no-wrap
2625
msgid "I<ZZZ>"
2803
msgid "I<ZZZ>"
2626
msgstr ""
2804
msgstr ""
2627
2805
2628
#. type: Plain text
2806
#. type: Plain text
2629
#: ../src/xz/xz.1:1805
2807
#: ../src/xz/xz.1:1985
2630
msgid "Patch level for stable releases or just a counter for development releases."
2808
msgid "Patch level for stable releases or just a counter for development releases."
2631
msgstr ""
2809
msgstr ""
2632
2810
2633
#. type: TP
2811
#. type: TP
2634
#: ../src/xz/xz.1:1805
2812
#: ../src/xz/xz.1:1985
2635
#, no-wrap
2813
#, no-wrap
2636
msgid "I<S>"
2814
msgid "I<S>"
2637
msgstr ""
2815
msgstr ""
2638
2816
2639
#. type: Plain text
2817
#. type: Plain text
2640
#: ../src/xz/xz.1:1813
2818
#: ../src/xz/xz.1:1993
2641
msgid ""
2819
msgid ""
2642
"Stability.  0 is alpha, 1 is beta, and 2 is stable.  I<S> should be always 2 "
2820
"Stability.  0 is alpha, 1 is beta, and 2 is stable.  I<S> should be always 2 "
2643
"when I<YYY> is even."
2821
"when I<YYY> is even."
2644
msgstr ""
2822
msgstr ""
2645
2823
2646
#. type: Plain text
2824
#. type: Plain text
2647
#: ../src/xz/xz.1:1818
2825
#: ../src/xz/xz.1:1998
2648
msgid ""
2826
msgid ""
2649
"I<XYYYZZZS> are the same on both lines if B<xz> and liblzma are from the "
2827
"I<XYYYZZZS> are the same on both lines if B<xz> and liblzma are from the "
2650
"same XZ Utils release."
2828
"same XZ Utils release."
2651
msgstr ""
2829
msgstr ""
2652
2830
2653
#. type: Plain text
2831
#. type: Plain text
2654
#: ../src/xz/xz.1:1824
2832
#: ../src/xz/xz.1:2004
2655
msgid "Examples: 4.999.9beta is B<49990091> and 5.0.0 is B<50000002>."
2833
msgid "Examples: 4.999.9beta is B<49990091> and 5.0.0 is B<50000002>."
2656
msgstr ""
2834
msgstr ""
2657
2835
2658
#. type: SS
2836
#. type: SS
2659
#: ../src/xz/xz.1:1825
2837
#: ../src/xz/xz.1:2005
2660
#, no-wrap
2838
#, no-wrap
2661
msgid "Memory limit information"
2839
msgid "Memory limit information"
2662
msgstr ""
2840
msgstr ""
2663
2841
2664
#. type: Plain text
2842
#. type: Plain text
2665
#: ../src/xz/xz.1:1828
2843
#: ../src/xz/xz.1:2008
2666
msgid ""
2844
msgid ""
2667
"B<xz --robot --info-memory> prints a single line with three tab-separated "
2845
"B<xz --robot --info-memory> prints a single line with three tab-separated "
2668
"columns:"
2846
"columns:"
2669
msgstr ""
2847
msgstr ""
2670
2848
2671
#. type: IP
2849
#. type: IP
2672
#: ../src/xz/xz.1:1828
2850
#: ../src/xz/xz.1:2008
2673
#, no-wrap
2851
#, no-wrap
2674
msgid "1."
2852
msgid "1."
2675
msgstr ""
2853
msgstr ""
2676
2854
2677
#. type: Plain text
2855
#. type: Plain text
2678
#: ../src/xz/xz.1:1830
2856
#: ../src/xz/xz.1:2010
2679
msgid "Total amount of physical memory (RAM) in bytes"
2857
msgid "Total amount of physical memory (RAM) in bytes."
2680
msgstr ""
2858
msgstr ""
2681
2859
2682
#. type: IP
2860
#. type: IP
2683
#: ../src/xz/xz.1:1830 ../src/xz/xz.1:1910 ../src/xz/xz.1:1947 ../src/xz/xz.1:1973 ../src/xz/xz.1:2043 ../src/xz/xz.1:2070
2861
#: ../src/xz/xz.1:2010 ../src/xz/xz.1:2125 ../src/xz/xz.1:2162
2862
#: ../src/xz/xz.1:2188 ../src/xz/xz.1:2258 ../src/xz/xz.1:2285
2684
#, no-wrap
2863
#, no-wrap
2685
msgid "2."
2864
msgid "2."
2686
msgstr ""
2865
msgstr ""
2687
2866
2688
#. type: Plain text
2867
#. type: Plain text
2689
#: ../src/xz/xz.1:1834
2868
#: ../src/xz/xz.1:2017
2690
msgid ""
2869
msgid ""
2691
"Memory usage limit for compression in bytes.  A special value of zero "
2870
"Memory usage limit for compression in bytes (B<--memlimit-compress>).  A "
2692
"indicates the default setting, which for single-threaded mode is the same as "
2871
"special value of B<0> indicates the default setting which for "
2693
"no limit."
2872
"single-threaded mode is the same as no limit."
2694
msgstr ""
2873
msgstr ""
2695
2874
2696
#. type: IP
2875
#. type: IP
2697
#: ../src/xz/xz.1:1834 ../src/xz/xz.1:1912 ../src/xz/xz.1:1949 ../src/xz/xz.1:1975 ../src/xz/xz.1:2048 ../src/xz/xz.1:2072
2876
#: ../src/xz/xz.1:2017 ../src/xz/xz.1:2127 ../src/xz/xz.1:2164
2877
#: ../src/xz/xz.1:2190 ../src/xz/xz.1:2263 ../src/xz/xz.1:2287
2698
#, no-wrap
2878
#, no-wrap
2699
msgid "3."
2879
msgid "3."
2700
msgstr ""
2880
msgstr ""
2701
2881
2702
#. type: Plain text
2882
#. type: Plain text
2703
#: ../src/xz/xz.1:1838
2883
#: ../src/xz/xz.1:2024
2704
msgid ""
2884
msgid ""
2705
"Memory usage limit for decompression in bytes.  A special value of zero "
2885
"Memory usage limit for decompression in bytes (B<--memlimit-decompress>).  A "
2706
"indicates the default setting, which for single-threaded mode is the same as "
2886
"special value of B<0> indicates the default setting which for "
2707
"no limit."
2887
"single-threaded mode is the same as no limit."
2708
msgstr ""
2888
msgstr ""
2709
2889
2890
#. type: IP
2891
#: ../src/xz/xz.1:2024 ../src/xz/xz.1:2129 ../src/xz/xz.1:2166
2892
#: ../src/xz/xz.1:2193 ../src/xz/xz.1:2273 ../src/xz/xz.1:2289
2893
#, no-wrap
2894
msgid "4."
2895
msgstr ""
2896
2710
#. type: Plain text
2897
#. type: Plain text
2711
#: ../src/xz/xz.1:1842
2898
#: ../src/xz/xz.1:2036
2712
msgid ""
2899
msgid ""
2900
"Since B<xz> 5.3.4alpha: Memory usage for multi-threaded decompression in "
2901
"bytes (B<--memlimit-mt-decompress>).  This is never zero because a "
2902
"system-specific default value shown in the column 5 is used if no limit has "
2903
"been specified explicitly.  This is also never greater than the value in the "
2904
"column 3 even if a larger value has been specified with "
2905
"B<--memlimit-mt-decompress>."
2906
msgstr ""
2907
2908
#. type: IP
2909
#: ../src/xz/xz.1:2036 ../src/xz/xz.1:2131 ../src/xz/xz.1:2168
2910
#: ../src/xz/xz.1:2195 ../src/xz/xz.1:2291
2911
#, no-wrap
2912
msgid "5."
2913
msgstr ""
2914
2915
#. type: Plain text
2916
#: ../src/xz/xz.1:2048
2917
msgid ""
2918
"Since B<xz> 5.3.4alpha: A system-specific default memory usage limit that is "
2919
"used to limit the number of threads when compressing with an automatic "
2920
"number of threads (B<--threads=0>)  and no memory usage limit has been "
2921
"specified (B<--memlimit-compress>).  This is also used as the default value "
2922
"for B<--memlimit-mt-decompress>."
2923
msgstr ""
2924
2925
#. type: IP
2926
#: ../src/xz/xz.1:2048 ../src/xz/xz.1:2133 ../src/xz/xz.1:2170
2927
#: ../src/xz/xz.1:2197 ../src/xz/xz.1:2293
2928
#, no-wrap
2929
msgid "6."
2930
msgstr ""
2931
2932
#. type: Plain text
2933
#: ../src/xz/xz.1:2053
2934
msgid "Since B<xz> 5.3.4alpha: Number of available processor threads."
2935
msgstr ""
2936
2937
#. type: Plain text
2938
#: ../src/xz/xz.1:2057
2939
msgid ""
2713
"In the future, the output of B<xz --robot --info-memory> may have more "
2940
"In the future, the output of B<xz --robot --info-memory> may have more "
2714
"columns, but never more than a single line."
2941
"columns, but never more than a single line."
2715
msgstr ""
2942
msgstr ""
2716
2943
2717
#. type: SS
2944
#. type: SS
2718
#: ../src/xz/xz.1:1843
2945
#: ../src/xz/xz.1:2058
2719
#, no-wrap
2946
#, no-wrap
2720
msgid "List mode"
2947
msgid "List mode"
2721
msgstr ""
2948
msgstr ""
2722
2949
2723
#. type: Plain text
2950
#. type: Plain text
2724
#: ../src/xz/xz.1:1848
2951
#: ../src/xz/xz.1:2063
2725
msgid ""
2952
msgid ""
2726
"B<xz --robot --list> uses tab-separated output.  The first column of every "
2953
"B<xz --robot --list> uses tab-separated output.  The first column of every "
2727
"line has a string that indicates the type of the information found on that "
2954
"line has a string that indicates the type of the information found on that "
Lines 2729-2780 Link Here
2729
msgstr ""
2956
msgstr ""
2730
2957
2731
#. type: TP
2958
#. type: TP
2732
#: ../src/xz/xz.1:1848
2959
#: ../src/xz/xz.1:2063
2733
#, no-wrap
2960
#, no-wrap
2734
msgid "B<name>"
2961
msgid "B<name>"
2735
msgstr ""
2962
msgstr ""
2736
2963
2737
#. type: Plain text
2964
#. type: Plain text
2738
#: ../src/xz/xz.1:1852
2965
#: ../src/xz/xz.1:2067
2739
msgid ""
2966
msgid ""
2740
"This is always the first line when starting to list a file.  The second "
2967
"This is always the first line when starting to list a file.  The second "
2741
"column on the line is the filename."
2968
"column on the line is the filename."
2742
msgstr ""
2969
msgstr ""
2743
2970
2744
#. type: TP
2971
#. type: TP
2745
#: ../src/xz/xz.1:1852
2972
#: ../src/xz/xz.1:2067
2746
#, no-wrap
2973
#, no-wrap
2747
msgid "B<file>"
2974
msgid "B<file>"
2748
msgstr ""
2975
msgstr ""
2749
2976
2750
#. type: Plain text
2977
#. type: Plain text
2751
#: ../src/xz/xz.1:1860
2978
#: ../src/xz/xz.1:2075
2752
msgid ""
2979
msgid ""
2753
"This line contains overall information about the B<.xz> file.  This line is "
2980
"This line contains overall information about the B<.xz> file.  This line is "
2754
"always printed after the B<name> line."
2981
"always printed after the B<name> line."
2755
msgstr ""
2982
msgstr ""
2756
2983
2757
#. type: TP
2984
#. type: TP
2758
#: ../src/xz/xz.1:1860
2985
#: ../src/xz/xz.1:2075
2759
#, no-wrap
2986
#, no-wrap
2760
msgid "B<stream>"
2987
msgid "B<stream>"
2761
msgstr ""
2988
msgstr ""
2762
2989
2763
#. type: Plain text
2990
#. type: Plain text
2764
#: ../src/xz/xz.1:1870
2991
#: ../src/xz/xz.1:2085
2765
msgid ""
2992
msgid ""
2766
"This line type is used only when B<--verbose> was specified.  There are as "
2993
"This line type is used only when B<--verbose> was specified.  There are as "
2767
"many B<stream> lines as there are streams in the B<.xz> file."
2994
"many B<stream> lines as there are streams in the B<.xz> file."
2768
msgstr ""
2995
msgstr ""
2769
2996
2770
#. type: TP
2997
#. type: TP
2771
#: ../src/xz/xz.1:1870
2998
#: ../src/xz/xz.1:2085
2772
#, no-wrap
2999
#, no-wrap
2773
msgid "B<block>"
3000
msgid "B<block>"
2774
msgstr ""
3001
msgstr ""
2775
3002
2776
#. type: Plain text
3003
#. type: Plain text
2777
#: ../src/xz/xz.1:1885
3004
#: ../src/xz/xz.1:2100
2778
msgid ""
3005
msgid ""
2779
"This line type is used only when B<--verbose> was specified.  There are as "
3006
"This line type is used only when B<--verbose> was specified.  There are as "
2780
"many B<block> lines as there are blocks in the B<.xz> file.  The B<block> "
3007
"many B<block> lines as there are blocks in the B<.xz> file.  The B<block> "
Lines 2783-2795 Link Here
2783
msgstr ""
3010
msgstr ""
2784
3011
2785
#. type: TP
3012
#. type: TP
2786
#: ../src/xz/xz.1:1885
3013
#: ../src/xz/xz.1:2100
2787
#, no-wrap
3014
#, no-wrap
2788
msgid "B<summary>"
3015
msgid "B<summary>"
2789
msgstr ""
3016
msgstr ""
2790
3017
2791
#. type: Plain text
3018
#. type: Plain text
2792
#: ../src/xz/xz.1:1900
3019
#: ../src/xz/xz.1:2115
2793
msgid ""
3020
msgid ""
2794
"This line type is used only when B<--verbose> was specified twice.  This "
3021
"This line type is used only when B<--verbose> was specified twice.  This "
2795
"line is printed after all B<block> lines.  Like the B<file> line, the "
3022
"line is printed after all B<block> lines.  Like the B<file> line, the "
Lines 2797-2872 Link Here
2797
msgstr ""
3024
msgstr ""
2798
3025
2799
#. type: TP
3026
#. type: TP
2800
#: ../src/xz/xz.1:1900
3027
#: ../src/xz/xz.1:2115
2801
#, no-wrap
3028
#, no-wrap
2802
msgid "B<totals>"
3029
msgid "B<totals>"
2803
msgstr ""
3030
msgstr ""
2804
3031
2805
#. type: Plain text
3032
#. type: Plain text
2806
#: ../src/xz/xz.1:1904
3033
#: ../src/xz/xz.1:2119
2807
msgid ""
3034
msgid ""
2808
"This line is always the very last line of the list output.  It shows the "
3035
"This line is always the very last line of the list output.  It shows the "
2809
"total counts and sizes."
3036
"total counts and sizes."
2810
msgstr ""
3037
msgstr ""
2811
3038
2812
#. type: Plain text
3039
#. type: Plain text
2813
#: ../src/xz/xz.1:1908
3040
#: ../src/xz/xz.1:2123
2814
msgid "The columns of the B<file> lines:"
3041
msgid "The columns of the B<file> lines:"
2815
msgstr ""
3042
msgstr ""
2816
3043
2817
#. type: Plain text
3044
#. type: Plain text
2818
#: ../src/xz/xz.1:1912
3045
#: ../src/xz/xz.1:2127
2819
msgid "Number of streams in the file"
3046
msgid "Number of streams in the file"
2820
msgstr ""
3047
msgstr ""
2821
3048
2822
#. type: Plain text
3049
#. type: Plain text
2823
#: ../src/xz/xz.1:1914
3050
#: ../src/xz/xz.1:2129
2824
msgid "Total number of blocks in the stream(s)"
3051
msgid "Total number of blocks in the stream(s)"
2825
msgstr ""
3052
msgstr ""
2826
3053
2827
#. type: IP
2828
#: ../src/xz/xz.1:1914 ../src/xz/xz.1:1951 ../src/xz/xz.1:1978 ../src/xz/xz.1:2058 ../src/xz/xz.1:2074
2829
#, no-wrap
2830
msgid "4."
2831
msgstr ""
2832
2833
#. type: Plain text
3054
#. type: Plain text
2834
#: ../src/xz/xz.1:1916
3055
#: ../src/xz/xz.1:2131
2835
msgid "Compressed size of the file"
3056
msgid "Compressed size of the file"
2836
msgstr ""
3057
msgstr ""
2837
3058
2838
#. type: IP
2839
#: ../src/xz/xz.1:1916 ../src/xz/xz.1:1953 ../src/xz/xz.1:1980 ../src/xz/xz.1:2076
2840
#, no-wrap
2841
msgid "5."
2842
msgstr ""
2843
2844
#. type: Plain text
3059
#. type: Plain text
2845
#: ../src/xz/xz.1:1918
3060
#: ../src/xz/xz.1:2133
2846
msgid "Uncompressed size of the file"
3061
msgid "Uncompressed size of the file"
2847
msgstr ""
3062
msgstr ""
2848
3063
2849
#. type: IP
2850
#: ../src/xz/xz.1:1918 ../src/xz/xz.1:1955 ../src/xz/xz.1:1982 ../src/xz/xz.1:2078
2851
#, no-wrap
2852
msgid "6."
2853
msgstr ""
2854
2855
#. type: Plain text
3064
#. type: Plain text
2856
#: ../src/xz/xz.1:1924
3065
#: ../src/xz/xz.1:2139
2857
msgid ""
3066
msgid ""
2858
"Compression ratio, for example B<0.123.> If ratio is over 9.999, three "
3067
"Compression ratio, for example, B<0.123>.  If ratio is over 9.999, three "
2859
"dashes (B<--->)  are displayed instead of the ratio."
3068
"dashes (B<--->)  are displayed instead of the ratio."
2860
msgstr ""
3069
msgstr ""
2861
3070
2862
#. type: IP
3071
#. type: IP
2863
#: ../src/xz/xz.1:1924 ../src/xz/xz.1:1957 ../src/xz/xz.1:1984 ../src/xz/xz.1:2080
3072
#: ../src/xz/xz.1:2139 ../src/xz/xz.1:2172 ../src/xz/xz.1:2199
3073
#: ../src/xz/xz.1:2295
2864
#, no-wrap
3074
#, no-wrap
2865
msgid "7."
3075
msgid "7."
2866
msgstr ""
3076
msgstr ""
2867
3077
2868
#. type: Plain text
3078
#. type: Plain text
2869
#: ../src/xz/xz.1:1937
3079
#: ../src/xz/xz.1:2152
2870
msgid ""
3080
msgid ""
2871
"Comma-separated list of integrity check names.  The following strings are "
3081
"Comma-separated list of integrity check names.  The following strings are "
2872
"used for the known check types: B<None>, B<CRC32>, B<CRC64>, and "
3082
"used for the known check types: B<None>, B<CRC32>, B<CRC64>, and "
Lines 2875-2989 Link Here
2875
msgstr ""
3085
msgstr ""
2876
3086
2877
#. type: IP
3087
#. type: IP
2878
#: ../src/xz/xz.1:1937 ../src/xz/xz.1:1959 ../src/xz/xz.1:1986 ../src/xz/xz.1:2083
3088
#: ../src/xz/xz.1:2152 ../src/xz/xz.1:2174 ../src/xz/xz.1:2201
3089
#: ../src/xz/xz.1:2298
2879
#, no-wrap
3090
#, no-wrap
2880
msgid "8."
3091
msgid "8."
2881
msgstr ""
3092
msgstr ""
2882
3093
2883
#. type: Plain text
3094
#. type: Plain text
2884
#: ../src/xz/xz.1:1939
3095
#: ../src/xz/xz.1:2154
2885
msgid "Total size of stream padding in the file"
3096
msgid "Total size of stream padding in the file"
2886
msgstr ""
3097
msgstr ""
2887
3098
2888
#. type: Plain text
3099
#. type: Plain text
2889
#: ../src/xz/xz.1:1945
3100
#: ../src/xz/xz.1:2160
2890
msgid "The columns of the B<stream> lines:"
3101
msgid "The columns of the B<stream> lines:"
2891
msgstr ""
3102
msgstr ""
2892
3103
2893
#. type: Plain text
3104
#. type: Plain text
2894
#: ../src/xz/xz.1:1949
3105
#: ../src/xz/xz.1:2164
2895
msgid "Stream number (the first stream is 1)"
3106
msgid "Stream number (the first stream is 1)"
2896
msgstr ""
3107
msgstr ""
2897
3108
2898
#. type: Plain text
3109
#. type: Plain text
2899
#: ../src/xz/xz.1:1951
3110
#: ../src/xz/xz.1:2166
2900
msgid "Number of blocks in the stream"
3111
msgid "Number of blocks in the stream"
2901
msgstr ""
3112
msgstr ""
2902
3113
2903
#. type: Plain text
3114
#. type: Plain text
2904
#: ../src/xz/xz.1:1953
3115
#: ../src/xz/xz.1:2168
2905
msgid "Compressed start offset"
3116
msgid "Compressed start offset"
2906
msgstr ""
3117
msgstr ""
2907
3118
2908
#. type: Plain text
3119
#. type: Plain text
2909
#: ../src/xz/xz.1:1955
3120
#: ../src/xz/xz.1:2170
2910
msgid "Uncompressed start offset"
3121
msgid "Uncompressed start offset"
2911
msgstr ""
3122
msgstr ""
2912
3123
2913
#. type: Plain text
3124
#. type: Plain text
2914
#: ../src/xz/xz.1:1957
3125
#: ../src/xz/xz.1:2172
2915
msgid "Compressed size (does not include stream padding)"
3126
msgid "Compressed size (does not include stream padding)"
2916
msgstr ""
3127
msgstr ""
2917
3128
2918
#. type: Plain text
3129
#. type: Plain text
2919
#: ../src/xz/xz.1:1959 ../src/xz/xz.1:1988 ../src/xz/xz.1:2078
3130
#: ../src/xz/xz.1:2174 ../src/xz/xz.1:2203 ../src/xz/xz.1:2293
2920
msgid "Uncompressed size"
3131
msgid "Uncompressed size"
2921
msgstr ""
3132
msgstr ""
2922
3133
2923
#. type: Plain text
3134
#. type: Plain text
2924
#: ../src/xz/xz.1:1961 ../src/xz/xz.1:1990
3135
#: ../src/xz/xz.1:2176 ../src/xz/xz.1:2205
2925
msgid "Compression ratio"
3136
msgid "Compression ratio"
2926
msgstr ""
3137
msgstr ""
2927
3138
2928
#. type: IP
3139
#. type: IP
2929
#: ../src/xz/xz.1:1961 ../src/xz/xz.1:1988 ../src/xz/xz.1:2085
3140
#: ../src/xz/xz.1:2176 ../src/xz/xz.1:2203 ../src/xz/xz.1:2300
2930
#, no-wrap
3141
#, no-wrap
2931
msgid "9."
3142
msgid "9."
2932
msgstr ""
3143
msgstr ""
2933
3144
2934
#. type: Plain text
3145
#. type: Plain text
2935
#: ../src/xz/xz.1:1963 ../src/xz/xz.1:1992
3146
#: ../src/xz/xz.1:2178 ../src/xz/xz.1:2207
2936
msgid "Name of the integrity check"
3147
msgid "Name of the integrity check"
2937
msgstr ""
3148
msgstr ""
2938
3149
2939
#. type: IP
3150
#. type: IP
2940
#: ../src/xz/xz.1:1963 ../src/xz/xz.1:1990 ../src/xz/xz.1:2101
3151
#: ../src/xz/xz.1:2178 ../src/xz/xz.1:2205 ../src/xz/xz.1:2316
2941
#, no-wrap
3152
#, no-wrap
2942
msgid "10."
3153
msgid "10."
2943
msgstr ""
3154
msgstr ""
2944
3155
2945
#. type: Plain text
3156
#. type: Plain text
2946
#: ../src/xz/xz.1:1965
3157
#: ../src/xz/xz.1:2180
2947
msgid "Size of stream padding"
3158
msgid "Size of stream padding"
2948
msgstr ""
3159
msgstr ""
2949
3160
2950
#. type: Plain text
3161
#. type: Plain text
2951
#: ../src/xz/xz.1:1971
3162
#: ../src/xz/xz.1:2186
2952
msgid "The columns of the B<block> lines:"
3163
msgid "The columns of the B<block> lines:"
2953
msgstr ""
3164
msgstr ""
2954
3165
2955
#. type: Plain text
3166
#. type: Plain text
2956
#: ../src/xz/xz.1:1975
3167
#: ../src/xz/xz.1:2190
2957
msgid "Number of the stream containing this block"
3168
msgid "Number of the stream containing this block"
2958
msgstr ""
3169
msgstr ""
2959
3170
2960
#. type: Plain text
3171
#. type: Plain text
2961
#: ../src/xz/xz.1:1978
3172
#: ../src/xz/xz.1:2193
2962
msgid "Block number relative to the beginning of the stream (the first block is 1)"
3173
msgid "Block number relative to the beginning of the stream (the first block is 1)"
2963
msgstr ""
3174
msgstr ""
2964
3175
2965
#. type: Plain text
3176
#. type: Plain text
2966
#: ../src/xz/xz.1:1980
3177
#: ../src/xz/xz.1:2195
2967
msgid "Block number relative to the beginning of the file"
3178
msgid "Block number relative to the beginning of the file"
2968
msgstr ""
3179
msgstr ""
2969
3180
2970
#. type: Plain text
3181
#. type: Plain text
2971
#: ../src/xz/xz.1:1982
3182
#: ../src/xz/xz.1:2197
2972
msgid "Compressed start offset relative to the beginning of the file"
3183
msgid "Compressed start offset relative to the beginning of the file"
2973
msgstr ""
3184
msgstr ""
2974
3185
2975
#. type: Plain text
3186
#. type: Plain text
2976
#: ../src/xz/xz.1:1984
3187
#: ../src/xz/xz.1:2199
2977
msgid "Uncompressed start offset relative to the beginning of the file"
3188
msgid "Uncompressed start offset relative to the beginning of the file"
2978
msgstr ""
3189
msgstr ""
2979
3190
2980
#. type: Plain text
3191
#. type: Plain text
2981
#: ../src/xz/xz.1:1986
3192
#: ../src/xz/xz.1:2201
2982
msgid "Total compressed size of the block (includes headers)"
3193
msgid "Total compressed size of the block (includes headers)"
2983
msgstr ""
3194
msgstr ""
2984
3195
2985
#. type: Plain text
3196
#. type: Plain text
2986
#: ../src/xz/xz.1:2004
3197
#: ../src/xz/xz.1:2219
2987
msgid ""
3198
msgid ""
2988
"If B<--verbose> was specified twice, additional columns are included on the "
3199
"If B<--verbose> was specified twice, additional columns are included on the "
2989
"B<block> lines.  These are not displayed with a single B<--verbose>, because "
3200
"B<block> lines.  These are not displayed with a single B<--verbose>, because "
Lines 2991-3025 Link Here
2991
msgstr ""
3202
msgstr ""
2992
3203
2993
#. type: IP
3204
#. type: IP
2994
#: ../src/xz/xz.1:2006 ../src/xz/xz.1:2106
3205
#: ../src/xz/xz.1:2221 ../src/xz/xz.1:2321
2995
#, no-wrap
3206
#, no-wrap
2996
msgid "11."
3207
msgid "11."
2997
msgstr ""
3208
msgstr ""
2998
3209
2999
#. type: Plain text
3210
#. type: Plain text
3000
#: ../src/xz/xz.1:2008
3211
#: ../src/xz/xz.1:2223
3001
msgid "Value of the integrity check in hexadecimal"
3212
msgid "Value of the integrity check in hexadecimal"
3002
msgstr ""
3213
msgstr ""
3003
3214
3004
#. type: IP
3215
#. type: IP
3005
#: ../src/xz/xz.1:2008 ../src/xz/xz.1:2116
3216
#: ../src/xz/xz.1:2223 ../src/xz/xz.1:2331
3006
#, no-wrap
3217
#, no-wrap
3007
msgid "12."
3218
msgid "12."
3008
msgstr ""
3219
msgstr ""
3009
3220
3010
#. type: Plain text
3221
#. type: Plain text
3011
#: ../src/xz/xz.1:2010
3222
#: ../src/xz/xz.1:2225
3012
msgid "Block header size"
3223
msgid "Block header size"
3013
msgstr ""
3224
msgstr ""
3014
3225
3015
#. type: IP
3226
#. type: IP
3016
#: ../src/xz/xz.1:2010
3227
#: ../src/xz/xz.1:2225
3017
#, no-wrap
3228
#, no-wrap
3018
msgid "13."
3229
msgid "13."
3019
msgstr ""
3230
msgstr ""
3020
3231
3021
#. type: Plain text
3232
#. type: Plain text
3022
#: ../src/xz/xz.1:2020
3233
#: ../src/xz/xz.1:2235
3023
msgid ""
3234
msgid ""
3024
"Block flags: B<c> indicates that compressed size is present, and B<u> "
3235
"Block flags: B<c> indicates that compressed size is present, and B<u> "
3025
"indicates that uncompressed size is present.  If the flag is not set, a dash "
3236
"indicates that uncompressed size is present.  If the flag is not set, a dash "
Lines 3028-3066 Link Here
3028
msgstr ""
3239
msgstr ""
3029
3240
3030
#. type: IP
3241
#. type: IP
3031
#: ../src/xz/xz.1:2020
3242
#: ../src/xz/xz.1:2235
3032
#, no-wrap
3243
#, no-wrap
3033
msgid "14."
3244
msgid "14."
3034
msgstr ""
3245
msgstr ""
3035
3246
3036
#. type: Plain text
3247
#. type: Plain text
3037
#: ../src/xz/xz.1:2023
3248
#: ../src/xz/xz.1:2238
3038
msgid ""
3249
msgid ""
3039
"Size of the actual compressed data in the block (this excludes the block "
3250
"Size of the actual compressed data in the block (this excludes the block "
3040
"header, block padding, and check fields)"
3251
"header, block padding, and check fields)"
3041
msgstr ""
3252
msgstr ""
3042
3253
3043
#. type: IP
3254
#. type: IP
3044
#: ../src/xz/xz.1:2023
3255
#: ../src/xz/xz.1:2238
3045
#, no-wrap
3256
#, no-wrap
3046
msgid "15."
3257
msgid "15."
3047
msgstr ""
3258
msgstr ""
3048
3259
3049
#. type: Plain text
3260
#. type: Plain text
3050
#: ../src/xz/xz.1:2028
3261
#: ../src/xz/xz.1:2243
3051
msgid ""
3262
msgid ""
3052
"Amount of memory (in bytes) required to decompress this block with this "
3263
"Amount of memory (in bytes) required to decompress this block with this "
3053
"B<xz> version"
3264
"B<xz> version"
3054
msgstr ""
3265
msgstr ""
3055
3266
3056
#. type: IP
3267
#. type: IP
3057
#: ../src/xz/xz.1:2028
3268
#: ../src/xz/xz.1:2243
3058
#, no-wrap
3269
#, no-wrap
3059
msgid "16."
3270
msgid "16."
3060
msgstr ""
3271
msgstr ""
3061
3272
3062
#. type: Plain text
3273
#. type: Plain text
3063
#: ../src/xz/xz.1:2035
3274
#: ../src/xz/xz.1:2250
3064
msgid ""
3275
msgid ""
3065
"Filter chain.  Note that most of the options used at compression time cannot "
3276
"Filter chain.  Note that most of the options used at compression time cannot "
3066
"be known, because only the options that are needed for decompression are "
3277
"be known, because only the options that are needed for decompression are "
Lines 3068-3218 Link Here
3068
msgstr ""
3279
msgstr ""
3069
3280
3070
#. type: Plain text
3281
#. type: Plain text
3071
#: ../src/xz/xz.1:2041
3282
#: ../src/xz/xz.1:2256
3072
msgid "The columns of the B<summary> lines:"
3283
msgid "The columns of the B<summary> lines:"
3073
msgstr ""
3284
msgstr ""
3074
3285
3075
#. type: Plain text
3286
#. type: Plain text
3076
#: ../src/xz/xz.1:2048
3287
#: ../src/xz/xz.1:2263
3077
msgid ""
3288
msgid ""
3078
"Amount of memory (in bytes) required to decompress this file with this B<xz> "
3289
"Amount of memory (in bytes) required to decompress this file with this B<xz> "
3079
"version"
3290
"version"
3080
msgstr ""
3291
msgstr ""
3081
3292
3082
#. type: Plain text
3293
#. type: Plain text
3083
#: ../src/xz/xz.1:2054 ../src/xz/xz.1:2112
3294
#: ../src/xz/xz.1:2269 ../src/xz/xz.1:2327
3084
msgid ""
3295
msgid ""
3085
"B<yes> or B<no> indicating if all block headers have both compressed size "
3296
"B<yes> or B<no> indicating if all block headers have both compressed size "
3086
"and uncompressed size stored in them"
3297
"and uncompressed size stored in them"
3087
msgstr ""
3298
msgstr ""
3088
3299
3089
#. type: Plain text
3300
#. type: Plain text
3090
#: ../src/xz/xz.1:2058 ../src/xz/xz.1:2116
3301
#: ../src/xz/xz.1:2273 ../src/xz/xz.1:2331
3091
msgid "I<Since> B<xz> I<5.1.2alpha:>"
3302
msgid "I<Since> B<xz> I<5.1.2alpha:>"
3092
msgstr ""
3303
msgstr ""
3093
3304
3094
#. type: Plain text
3305
#. type: Plain text
3095
#: ../src/xz/xz.1:2062 ../src/xz/xz.1:2120
3306
#: ../src/xz/xz.1:2277 ../src/xz/xz.1:2335
3096
msgid "Minimum B<xz> version required to decompress the file"
3307
msgid "Minimum B<xz> version required to decompress the file"
3097
msgstr ""
3308
msgstr ""
3098
3309
3099
#. type: Plain text
3310
#. type: Plain text
3100
#: ../src/xz/xz.1:2068
3311
#: ../src/xz/xz.1:2283
3101
msgid "The columns of the B<totals> line:"
3312
msgid "The columns of the B<totals> line:"
3102
msgstr ""
3313
msgstr ""
3103
3314
3104
#. type: Plain text
3315
#. type: Plain text
3105
#: ../src/xz/xz.1:2072
3316
#: ../src/xz/xz.1:2287
3106
msgid "Number of streams"
3317
msgid "Number of streams"
3107
msgstr ""
3318
msgstr ""
3108
3319
3109
#. type: Plain text
3320
#. type: Plain text
3110
#: ../src/xz/xz.1:2074
3321
#: ../src/xz/xz.1:2289
3111
msgid "Number of blocks"
3322
msgid "Number of blocks"
3112
msgstr ""
3323
msgstr ""
3113
3324
3114
#. type: Plain text
3325
#. type: Plain text
3115
#: ../src/xz/xz.1:2076
3326
#: ../src/xz/xz.1:2291
3116
msgid "Compressed size"
3327
msgid "Compressed size"
3117
msgstr ""
3328
msgstr ""
3118
3329
3119
#. type: Plain text
3330
#. type: Plain text
3120
#: ../src/xz/xz.1:2080
3331
#: ../src/xz/xz.1:2295
3121
msgid "Average compression ratio"
3332
msgid "Average compression ratio"
3122
msgstr ""
3333
msgstr ""
3123
3334
3124
#. type: Plain text
3335
#. type: Plain text
3125
#: ../src/xz/xz.1:2083
3336
#: ../src/xz/xz.1:2298
3126
msgid "Comma-separated list of integrity check names that were present in the files"
3337
msgid "Comma-separated list of integrity check names that were present in the files"
3127
msgstr ""
3338
msgstr ""
3128
3339
3129
#. type: Plain text
3340
#. type: Plain text
3130
#: ../src/xz/xz.1:2085
3341
#: ../src/xz/xz.1:2300
3131
msgid "Stream padding size"
3342
msgid "Stream padding size"
3132
msgstr ""
3343
msgstr ""
3133
3344
3134
#. type: Plain text
3345
#. type: Plain text
3135
#: ../src/xz/xz.1:2091
3346
#: ../src/xz/xz.1:2306
3136
msgid ""
3347
msgid ""
3137
"Number of files.  This is here to keep the order of the earlier columns the "
3348
"Number of files.  This is here to keep the order of the earlier columns the "
3138
"same as on B<file> lines."
3349
"same as on B<file> lines."
3139
msgstr ""
3350
msgstr ""
3140
3351
3141
#. type: Plain text
3352
#. type: Plain text
3142
#: ../src/xz/xz.1:2099
3353
#: ../src/xz/xz.1:2314
3143
msgid ""
3354
msgid ""
3144
"If B<--verbose> was specified twice, additional columns are included on the "
3355
"If B<--verbose> was specified twice, additional columns are included on the "
3145
"B<totals> line:"
3356
"B<totals> line:"
3146
msgstr ""
3357
msgstr ""
3147
3358
3148
#. type: Plain text
3359
#. type: Plain text
3149
#: ../src/xz/xz.1:2106
3360
#: ../src/xz/xz.1:2321
3150
msgid ""
3361
msgid ""
3151
"Maximum amount of memory (in bytes) required to decompress the files with "
3362
"Maximum amount of memory (in bytes) required to decompress the files with "
3152
"this B<xz> version"
3363
"this B<xz> version"
3153
msgstr ""
3364
msgstr ""
3154
3365
3155
#. type: Plain text
3366
#. type: Plain text
3156
#: ../src/xz/xz.1:2126
3367
#: ../src/xz/xz.1:2341
3157
msgid ""
3368
msgid ""
3158
"Future versions may add new line types and new columns can be added to the "
3369
"Future versions may add new line types and new columns can be added to the "
3159
"existing line types, but the existing columns won't be changed."
3370
"existing line types, but the existing columns won't be changed."
3160
msgstr ""
3371
msgstr ""
3161
3372
3162
#. type: SH
3373
#. type: SH
3163
#: ../src/xz/xz.1:2127 ../src/xzdec/xzdec.1:104 ../src/lzmainfo/lzmainfo.1:44
3374
#: ../src/xz/xz.1:2342 ../src/xzdec/xzdec.1:104 ../src/lzmainfo/lzmainfo.1:44
3375
#: ../src/scripts/xzgrep.1:81
3164
#, no-wrap
3376
#, no-wrap
3165
msgid "EXIT STATUS"
3377
msgid "EXIT STATUS"
3166
msgstr ""
3378
msgstr ""
3167
3379
3168
#. type: TP
3380
#. type: TP
3169
#: ../src/xz/xz.1:2128 ../src/xzdec/xzdec.1:105 ../src/lzmainfo/lzmainfo.1:45
3381
#: ../src/xz/xz.1:2343 ../src/xzdec/xzdec.1:105 ../src/lzmainfo/lzmainfo.1:45
3170
#, no-wrap
3382
#, no-wrap
3171
msgid "B<0>"
3383
msgid "B<0>"
3172
msgstr ""
3384
msgstr ""
3173
3385
3174
#. type: Plain text
3386
#. type: Plain text
3175
#: ../src/xz/xz.1:2131 ../src/lzmainfo/lzmainfo.1:48
3387
#: ../src/xz/xz.1:2346 ../src/lzmainfo/lzmainfo.1:48
3176
msgid "All is good."
3388
msgid "All is good."
3177
msgstr ""
3389
msgstr ""
3178
3390
3179
#. type: TP
3391
#. type: TP
3180
#: ../src/xz/xz.1:2131 ../src/xzdec/xzdec.1:108 ../src/lzmainfo/lzmainfo.1:48
3392
#: ../src/xz/xz.1:2346 ../src/xzdec/xzdec.1:108 ../src/lzmainfo/lzmainfo.1:48
3181
#, no-wrap
3393
#, no-wrap
3182
msgid "B<1>"
3394
msgid "B<1>"
3183
msgstr ""
3395
msgstr ""
3184
3396
3185
#. type: Plain text
3397
#. type: Plain text
3186
#: ../src/xz/xz.1:2134 ../src/xzdec/xzdec.1:111 ../src/lzmainfo/lzmainfo.1:51
3398
#: ../src/xz/xz.1:2349 ../src/xzdec/xzdec.1:111 ../src/lzmainfo/lzmainfo.1:51
3187
msgid "An error occurred."
3399
msgid "An error occurred."
3188
msgstr ""
3400
msgstr ""
3189
3401
3190
#. type: TP
3402
#. type: TP
3191
#: ../src/xz/xz.1:2134
3403
#: ../src/xz/xz.1:2349
3192
#, no-wrap
3404
#, no-wrap
3193
msgid "B<2>"
3405
msgid "B<2>"
3194
msgstr ""
3406
msgstr ""
3195
3407
3196
#. type: Plain text
3408
#. type: Plain text
3197
#: ../src/xz/xz.1:2138
3409
#: ../src/xz/xz.1:2353
3198
msgid "Something worth a warning occurred, but no actual errors occurred."
3410
msgid "Something worth a warning occurred, but no actual errors occurred."
3199
msgstr ""
3411
msgstr ""
3200
3412
3201
#. type: Plain text
3413
#. type: Plain text
3202
#: ../src/xz/xz.1:2141
3414
#: ../src/xz/xz.1:2356
3203
msgid ""
3415
msgid ""
3204
"Notices (not warnings or errors) printed on standard error don't affect the "
3416
"Notices (not warnings or errors) printed on standard error don't affect the "
3205
"exit status."
3417
"exit status."
3206
msgstr ""
3418
msgstr ""
3207
3419
3208
#. type: SH
3420
#. type: SH
3209
#: ../src/xz/xz.1:2142 ../src/scripts/xzgrep.1:80 ../src/scripts/xzless.1:52
3421
#: ../src/xz/xz.1:2357 ../src/scripts/xzgrep.1:94 ../src/scripts/xzless.1:52
3210
#, no-wrap
3422
#, no-wrap
3211
msgid "ENVIRONMENT"
3423
msgid "ENVIRONMENT"
3212
msgstr ""
3424
msgstr ""
3213
3425
3214
#. type: Plain text
3426
#. type: Plain text
3215
#: ../src/xz/xz.1:2155
3427
#: ../src/xz/xz.1:2370
3216
msgid ""
3428
msgid ""
3217
"B<xz> parses space-separated lists of options from the environment variables "
3429
"B<xz> parses space-separated lists of options from the environment variables "
3218
"B<XZ_DEFAULTS> and B<XZ_OPT>, in this order, before parsing the options from "
3430
"B<XZ_DEFAULTS> and B<XZ_OPT>, in this order, before parsing the options from "
Lines 3222-3234 Link Here
3222
msgstr ""
3434
msgstr ""
3223
3435
3224
#. type: TP
3436
#. type: TP
3225
#: ../src/xz/xz.1:2155
3437
#: ../src/xz/xz.1:2370
3226
#, no-wrap
3438
#, no-wrap
3227
msgid "B<XZ_DEFAULTS>"
3439
msgid "B<XZ_DEFAULTS>"
3228
msgstr ""
3440
msgstr ""
3229
3441
3230
#. type: Plain text
3442
#. type: Plain text
3231
#: ../src/xz/xz.1:2164
3443
#: ../src/xz/xz.1:2379
3232
msgid ""
3444
msgid ""
3233
"User-specific or system-wide default options.  Typically this is set in a "
3445
"User-specific or system-wide default options.  Typically this is set in a "
3234
"shell initialization script to enable B<xz>'s memory usage limiter by "
3446
"shell initialization script to enable B<xz>'s memory usage limiter by "
Lines 3237-3272 Link Here
3237
msgstr ""
3449
msgstr ""
3238
3450
3239
#. type: TP
3451
#. type: TP
3240
#: ../src/xz/xz.1:2164
3452
#: ../src/xz/xz.1:2379
3241
#, no-wrap
3453
#, no-wrap
3242
msgid "B<XZ_OPT>"
3454
msgid "B<XZ_OPT>"
3243
msgstr ""
3455
msgstr ""
3244
3456
3245
#. type: Plain text
3457
#. type: Plain text
3246
#: ../src/xz/xz.1:2175
3458
#: ../src/xz/xz.1:2390
3247
msgid ""
3459
msgid ""
3248
"This is for passing options to B<xz> when it is not possible to set the "
3460
"This is for passing options to B<xz> when it is not possible to set the "
3249
"options directly on the B<xz> command line.  This is the case e.g. when "
3461
"options directly on the B<xz> command line.  This is the case when B<xz> is "
3250
"B<xz> is run by a script or tool, e.g. GNU B<tar>(1):"
3462
"run by a script or tool, for example, GNU B<tar>(1):"
3251
msgstr ""
3463
msgstr ""
3252
3464
3253
#. type: Plain text
3465
#. type: Plain text
3254
#: ../src/xz/xz.1:2181
3466
#: ../src/xz/xz.1:2396
3255
#, no-wrap
3467
#, no-wrap
3256
msgid "CW<XZ_OPT=-2v tar caf foo.tar.xz foo>\n"
3468
msgid "CW<XZ_OPT=-2v tar caf foo.tar.xz foo>\n"
3257
msgstr ""
3469
msgstr ""
3258
3470
3259
#. type: Plain text
3471
#. type: Plain text
3260
#: ../src/xz/xz.1:2194
3472
#: ../src/xz/xz.1:2410
3261
msgid ""
3473
msgid ""
3262
"Scripts may use B<XZ_OPT> e.g. to set script-specific default compression "
3474
"Scripts may use B<XZ_OPT>, for example, to set script-specific default "
3263
"options.  It is still recommended to allow users to override B<XZ_OPT> if "
3475
"compression options.  It is still recommended to allow users to override "
3264
"that is reasonable, e.g. in B<sh>(1)  scripts one may use something like "
3476
"B<XZ_OPT> if that is reasonable.  For example, in B<sh>(1)  scripts one may "
3265
"this:"
3477
"use something like this:"
3266
msgstr ""
3478
msgstr ""
3267
3479
3268
#. type: Plain text
3480
#. type: Plain text
3269
#: ../src/xz/xz.1:2201
3481
#: ../src/xz/xz.1:2417
3270
#, no-wrap
3482
#, no-wrap
3271
msgid ""
3483
msgid ""
3272
"CW<XZ_OPT=${XZ_OPT-\"-7e\"}\n"
3484
"CW<XZ_OPT=${XZ_OPT-\"-7e\"}\n"
Lines 3274-3286 Link Here
3274
msgstr ""
3486
msgstr ""
3275
3487
3276
#. type: SH
3488
#. type: SH
3277
#: ../src/xz/xz.1:2206
3489
#: ../src/xz/xz.1:2422
3278
#, no-wrap
3490
#, no-wrap
3279
msgid "LZMA UTILS COMPATIBILITY"
3491
msgid "LZMA UTILS COMPATIBILITY"
3280
msgstr ""
3492
msgstr ""
3281
3493
3282
#. type: Plain text
3494
#. type: Plain text
3283
#: ../src/xz/xz.1:2219
3495
#: ../src/xz/xz.1:2435
3284
msgid ""
3496
msgid ""
3285
"The command line syntax of B<xz> is practically a superset of B<lzma>, "
3497
"The command line syntax of B<xz> is practically a superset of B<lzma>, "
3286
"B<unlzma>, and B<lzcat> as found from LZMA Utils 4.32.x.  In most cases, it "
3498
"B<unlzma>, and B<lzcat> as found from LZMA Utils 4.32.x.  In most cases, it "
Lines 3290-3302 Link Here
3290
msgstr ""
3502
msgstr ""
3291
3503
3292
#. type: SS
3504
#. type: SS
3293
#: ../src/xz/xz.1:2220
3505
#: ../src/xz/xz.1:2436
3294
#, no-wrap
3506
#, no-wrap
3295
msgid "Compression preset levels"
3507
msgid "Compression preset levels"
3296
msgstr ""
3508
msgstr ""
3297
3509
3298
#. type: Plain text
3510
#. type: Plain text
3299
#: ../src/xz/xz.1:2227
3511
#: ../src/xz/xz.1:2443
3300
msgid ""
3512
msgid ""
3301
"The numbering of the compression level presets is not identical in B<xz> and "
3513
"The numbering of the compression level presets is not identical in B<xz> and "
3302
"LZMA Utils.  The most important difference is how dictionary sizes are "
3514
"LZMA Utils.  The most important difference is how dictionary sizes are "
Lines 3305-3347 Link Here
3305
msgstr ""
3517
msgstr ""
3306
3518
3307
#. type: tbl table
3519
#. type: tbl table
3308
#: ../src/xz/xz.1:2233 ../src/xz/xz.1:2258
3520
#: ../src/xz/xz.1:2449 ../src/xz/xz.1:2474
3309
#, no-wrap
3521
#, no-wrap
3310
msgid "Level"
3522
msgid "Level"
3311
msgstr ""
3523
msgstr ""
3312
3524
3313
#. type: tbl table
3525
#. type: tbl table
3314
#: ../src/xz/xz.1:2233 ../src/xz/xz.1:2258
3526
#: ../src/xz/xz.1:2449 ../src/xz/xz.1:2474
3315
#, no-wrap
3527
#, no-wrap
3316
msgid "xz"
3528
msgid "xz"
3317
msgstr ""
3529
msgstr ""
3318
3530
3319
#. type: tbl table
3531
#. type: tbl table
3320
#: ../src/xz/xz.1:2233
3532
#: ../src/xz/xz.1:2449
3321
#, no-wrap
3533
#, no-wrap
3322
msgid "LZMA Utils"
3534
msgid "LZMA Utils"
3323
msgstr ""
3535
msgstr ""
3324
3536
3325
#. type: tbl table
3537
#. type: tbl table
3326
#: ../src/xz/xz.1:2234 ../src/xz/xz.1:2259
3538
#: ../src/xz/xz.1:2450 ../src/xz/xz.1:2475
3327
#, no-wrap
3539
#, no-wrap
3328
msgid "N/A"
3540
msgid "N/A"
3329
msgstr ""
3541
msgstr ""
3330
3542
3331
#. type: tbl table
3543
#. type: tbl table
3332
#: ../src/xz/xz.1:2235
3544
#: ../src/xz/xz.1:2451
3333
#, no-wrap
3545
#, no-wrap
3334
msgid "64 KiB"
3546
msgid "64 KiB"
3335
msgstr ""
3547
msgstr ""
3336
3548
3337
#. type: tbl table
3549
#. type: tbl table
3338
#: ../src/xz/xz.1:2237
3550
#: ../src/xz/xz.1:2453
3339
#, no-wrap
3551
#, no-wrap
3340
msgid "512 KiB"
3552
msgid "512 KiB"
3341
msgstr ""
3553
msgstr ""
3342
3554
3343
#. type: Plain text
3555
#. type: Plain text
3344
#: ../src/xz/xz.1:2252
3556
#: ../src/xz/xz.1:2468
3345
msgid ""
3557
msgid ""
3346
"The dictionary size differences affect the compressor memory usage too, but "
3558
"The dictionary size differences affect the compressor memory usage too, but "
3347
"there are some other differences between LZMA Utils and XZ Utils, which make "
3559
"there are some other differences between LZMA Utils and XZ Utils, which make "
Lines 3349-3420 Link Here
3349
msgstr ""
3561
msgstr ""
3350
3562
3351
#. type: tbl table
3563
#. type: tbl table
3352
#: ../src/xz/xz.1:2258
3564
#: ../src/xz/xz.1:2474
3353
#, no-wrap
3565
#, no-wrap
3354
msgid "LZMA Utils 4.32.x"
3566
msgid "LZMA Utils 4.32.x"
3355
msgstr ""
3567
msgstr ""
3356
3568
3357
#. type: tbl table
3569
#. type: tbl table
3358
#: ../src/xz/xz.1:2261 ../src/xz/xz.1:2262
3570
#: ../src/xz/xz.1:2477 ../src/xz/xz.1:2478
3359
#, no-wrap
3571
#, no-wrap
3360
msgid "12 MiB"
3572
msgid "12 MiB"
3361
msgstr ""
3573
msgstr ""
3362
3574
3363
#. type: tbl table
3575
#. type: tbl table
3364
#: ../src/xz/xz.1:2264
3576
#: ../src/xz/xz.1:2480
3365
#, no-wrap
3577
#, no-wrap
3366
msgid "26 MiB"
3578
msgid "26 MiB"
3367
msgstr ""
3579
msgstr ""
3368
3580
3369
#. type: tbl table
3581
#. type: tbl table
3370
#: ../src/xz/xz.1:2265
3582
#: ../src/xz/xz.1:2481
3371
#, no-wrap
3583
#, no-wrap
3372
msgid "45 MiB"
3584
msgid "45 MiB"
3373
msgstr ""
3585
msgstr ""
3374
3586
3375
#. type: tbl table
3587
#. type: tbl table
3376
#: ../src/xz/xz.1:2266
3588
#: ../src/xz/xz.1:2482
3377
#, no-wrap
3589
#, no-wrap
3378
msgid "83 MiB"
3590
msgid "83 MiB"
3379
msgstr ""
3591
msgstr ""
3380
3592
3381
#. type: tbl table
3593
#. type: tbl table
3382
#: ../src/xz/xz.1:2267
3594
#: ../src/xz/xz.1:2483
3383
#, no-wrap
3595
#, no-wrap
3384
msgid "159 MiB"
3596
msgid "159 MiB"
3385
msgstr ""
3597
msgstr ""
3386
3598
3387
#. type: tbl table
3599
#. type: tbl table
3388
#: ../src/xz/xz.1:2268
3600
#: ../src/xz/xz.1:2484
3389
#, no-wrap
3601
#, no-wrap
3390
msgid "311 MiB"
3602
msgid "311 MiB"
3391
msgstr ""
3603
msgstr ""
3392
3604
3393
#. type: Plain text
3605
#. type: Plain text
3394
#: ../src/xz/xz.1:2277
3606
#: ../src/xz/xz.1:2493
3395
msgid ""
3607
msgid ""
3396
"The default preset level in LZMA Utils is B<-7> while in XZ Utils it is "
3608
"The default preset level in LZMA Utils is B<-7> while in XZ Utils it is "
3397
"B<-6>, so both use an 8 MiB dictionary by default."
3609
"B<-6>, so both use an 8 MiB dictionary by default."
3398
msgstr ""
3610
msgstr ""
3399
3611
3400
#. type: SS
3612
#. type: SS
3401
#: ../src/xz/xz.1:2278
3613
#: ../src/xz/xz.1:2494
3402
#, no-wrap
3614
#, no-wrap
3403
msgid "Streamed vs. non-streamed .lzma files"
3615
msgid "Streamed vs. non-streamed .lzma files"
3404
msgstr ""
3616
msgstr ""
3405
3617
3406
#. type: Plain text
3618
#. type: Plain text
3407
#: ../src/xz/xz.1:2288
3619
#: ../src/xz/xz.1:2504
3408
msgid ""
3620
msgid ""
3409
"The uncompressed size of the file can be stored in the B<.lzma> header.  "
3621
"The uncompressed size of the file can be stored in the B<.lzma> header.  "
3410
"LZMA Utils does that when compressing regular files.  The alternative is to "
3622
"LZMA Utils does that when compressing regular files.  The alternative is to "
3411
"mark that uncompressed size is unknown and use end-of-payload marker to "
3623
"mark that uncompressed size is unknown and use end-of-payload marker to "
3412
"indicate where the decompressor should stop.  LZMA Utils uses this method "
3624
"indicate where the decompressor should stop.  LZMA Utils uses this method "
3413
"when uncompressed size isn't known, which is the case for example in pipes."
3625
"when uncompressed size isn't known, which is the case, for example, in "
3626
"pipes."
3414
msgstr ""
3627
msgstr ""
3415
3628
3416
#. type: Plain text
3629
#. type: Plain text
3417
#: ../src/xz/xz.1:2309
3630
#: ../src/xz/xz.1:2525
3418
msgid ""
3631
msgid ""
3419
"B<xz> supports decompressing B<.lzma> files with or without end-of-payload "
3632
"B<xz> supports decompressing B<.lzma> files with or without end-of-payload "
3420
"marker, but all B<.lzma> files created by B<xz> will use end-of-payload "
3633
"marker, but all B<.lzma> files created by B<xz> will use end-of-payload "
Lines 3426-3438 Link Here
3426
msgstr ""
3639
msgstr ""
3427
3640
3428
#. type: SS
3641
#. type: SS
3429
#: ../src/xz/xz.1:2310
3642
#: ../src/xz/xz.1:2526
3430
#, no-wrap
3643
#, no-wrap
3431
msgid "Unsupported .lzma files"
3644
msgid "Unsupported .lzma files"
3432
msgstr ""
3645
msgstr ""
3433
3646
3434
#. type: Plain text
3647
#. type: Plain text
3435
#: ../src/xz/xz.1:2333
3648
#: ../src/xz/xz.1:2549
3436
msgid ""
3649
msgid ""
3437
"The B<.lzma> format allows I<lc> values up to 8, and I<lp> values up to 4.  "
3650
"The B<.lzma> format allows I<lc> values up to 8, and I<lp> values up to 4.  "
3438
"LZMA Utils can decompress files with any I<lc> and I<lp>, but always creates "
3651
"LZMA Utils can decompress files with any I<lc> and I<lp>, but always creates "
Lines 3441-3447 Link Here
3441
msgstr ""
3654
msgstr ""
3442
3655
3443
#. type: Plain text
3656
#. type: Plain text
3444
#: ../src/xz/xz.1:2344
3657
#: ../src/xz/xz.1:2560
3445
msgid ""
3658
msgid ""
3446
"The implementation of the LZMA1 filter in liblzma requires that the sum of "
3659
"The implementation of the LZMA1 filter in liblzma requires that the sum of "
3447
"I<lc> and I<lp> must not exceed 4.  Thus, B<.lzma> files, which exceed this "
3660
"I<lc> and I<lp> must not exceed 4.  Thus, B<.lzma> files, which exceed this "
Lines 3449-3455 Link Here
3449
msgstr ""
3662
msgstr ""
3450
3663
3451
#. type: Plain text
3664
#. type: Plain text
3452
#: ../src/xz/xz.1:2359
3665
#: ../src/xz/xz.1:2575
3453
msgid ""
3666
msgid ""
3454
"LZMA Utils creates only B<.lzma> files which have a dictionary size of "
3667
"LZMA Utils creates only B<.lzma> files which have a dictionary size of "
3455
"2^I<n> (a power of 2) but accepts files with any dictionary size.  liblzma "
3668
"2^I<n> (a power of 2) but accepts files with any dictionary size.  liblzma "
Lines 3459-3478 Link Here
3459
msgstr ""
3672
msgstr ""
3460
3673
3461
#. type: Plain text
3674
#. type: Plain text
3462
#: ../src/xz/xz.1:2364
3675
#: ../src/xz/xz.1:2580
3463
msgid ""
3676
msgid ""
3464
"These limitations shouldn't be a problem in practice, since practically all "
3677
"These limitations shouldn't be a problem in practice, since practically all "
3465
"B<.lzma> files have been compressed with settings that liblzma will accept."
3678
"B<.lzma> files have been compressed with settings that liblzma will accept."
3466
msgstr ""
3679
msgstr ""
3467
3680
3468
#. type: SS
3681
#. type: SS
3469
#: ../src/xz/xz.1:2365
3682
#: ../src/xz/xz.1:2581
3470
#, no-wrap
3683
#, no-wrap
3471
msgid "Trailing garbage"
3684
msgid "Trailing garbage"
3472
msgstr ""
3685
msgstr ""
3473
3686
3474
#. type: Plain text
3687
#. type: Plain text
3475
#: ../src/xz/xz.1:2375
3688
#: ../src/xz/xz.1:2591
3476
msgid ""
3689
msgid ""
3477
"When decompressing, LZMA Utils silently ignore everything after the first "
3690
"When decompressing, LZMA Utils silently ignore everything after the first "
3478
"B<.lzma> stream.  In most situations, this is a bug.  This also means that "
3691
"B<.lzma> stream.  In most situations, this is a bug.  This also means that "
Lines 3480-3486 Link Here
3480
msgstr ""
3693
msgstr ""
3481
3694
3482
#. type: Plain text
3695
#. type: Plain text
3483
#: ../src/xz/xz.1:2385
3696
#: ../src/xz/xz.1:2601
3484
msgid ""
3697
msgid ""
3485
"If there is data left after the first B<.lzma> stream, B<xz> considers the "
3698
"If there is data left after the first B<.lzma> stream, B<xz> considers the "
3486
"file to be corrupt unless B<--single-stream> was used.  This may break "
3699
"file to be corrupt unless B<--single-stream> was used.  This may break "
Lines 3488-3506 Link Here
3488
msgstr ""
3701
msgstr ""
3489
3702
3490
#. type: SH
3703
#. type: SH
3491
#: ../src/xz/xz.1:2386 ../src/xzdec/xzdec.1:117
3704
#: ../src/xz/xz.1:2602 ../src/xzdec/xzdec.1:117
3492
#, no-wrap
3705
#, no-wrap
3493
msgid "NOTES"
3706
msgid "NOTES"
3494
msgstr ""
3707
msgstr ""
3495
3708
3496
#. type: SS
3709
#. type: SS
3497
#: ../src/xz/xz.1:2388
3710
#: ../src/xz/xz.1:2604
3498
#, no-wrap
3711
#, no-wrap
3499
msgid "Compressed output may vary"
3712
msgid "Compressed output may vary"
3500
msgstr ""
3713
msgstr ""
3501
3714
3502
#. type: Plain text
3715
#. type: Plain text
3503
#: ../src/xz/xz.1:2399
3716
#: ../src/xz/xz.1:2615
3504
msgid ""
3717
msgid ""
3505
"The exact compressed output produced from the same uncompressed input file "
3718
"The exact compressed output produced from the same uncompressed input file "
3506
"may vary between XZ Utils versions even if compression options are "
3719
"may vary between XZ Utils versions even if compression options are "
Lines 3511-3517 Link Here
3511
msgstr ""
3724
msgstr ""
3512
3725
3513
#. type: Plain text
3726
#. type: Plain text
3514
#: ../src/xz/xz.1:2409
3727
#: ../src/xz/xz.1:2625
3515
msgid ""
3728
msgid ""
3516
"The above means that once B<--rsyncable> has been implemented, the resulting "
3729
"The above means that once B<--rsyncable> has been implemented, the resulting "
3517
"files won't necessarily be rsyncable unless both old and new files have been "
3730
"files won't necessarily be rsyncable unless both old and new files have been "
Lines 3521-3533 Link Here
3521
msgstr ""
3734
msgstr ""
3522
3735
3523
#. type: SS
3736
#. type: SS
3524
#: ../src/xz/xz.1:2410
3737
#: ../src/xz/xz.1:2626
3525
#, no-wrap
3738
#, no-wrap
3526
msgid "Embedded .xz decompressors"
3739
msgid "Embedded .xz decompressors"
3527
msgstr ""
3740
msgstr ""
3528
3741
3529
#. type: Plain text
3742
#. type: Plain text
3530
#: ../src/xz/xz.1:2427
3743
#: ../src/xz/xz.1:2643
3531
msgid ""
3744
msgid ""
3532
"Embedded B<.xz> decompressor implementations like XZ Embedded don't "
3745
"Embedded B<.xz> decompressor implementations like XZ Embedded don't "
3533
"necessarily support files created with integrity I<check> types other than "
3746
"necessarily support files created with integrity I<check> types other than "
Lines 3537-3543 Link Here
3537
msgstr ""
3750
msgstr ""
3538
3751
3539
#. type: Plain text
3752
#. type: Plain text
3540
#: ../src/xz/xz.1:2437
3753
#: ../src/xz/xz.1:2653
3541
msgid ""
3754
msgid ""
3542
"Outside embedded systems, all B<.xz> format decompressors support all the "
3755
"Outside embedded systems, all B<.xz> format decompressors support all the "
3543
"I<check> types, or at least are able to decompress the file without "
3756
"I<check> types, or at least are able to decompress the file without "
Lines 3545-3634 Link Here
3545
msgstr ""
3758
msgstr ""
3546
3759
3547
#. type: Plain text
3760
#. type: Plain text
3548
#: ../src/xz/xz.1:2440
3761
#: ../src/xz/xz.1:2656
3549
msgid "XZ Embedded supports BCJ filters, but only with the default start offset."
3762
msgid "XZ Embedded supports BCJ filters, but only with the default start offset."
3550
msgstr ""
3763
msgstr ""
3551
3764
3552
#. type: SH
3765
#. type: SH
3553
#: ../src/xz/xz.1:2441
3766
#: ../src/xz/xz.1:2657
3554
#, no-wrap
3767
#, no-wrap
3555
msgid "EXAMPLES"
3768
msgid "EXAMPLES"
3556
msgstr ""
3769
msgstr ""
3557
3770
3558
#. type: SS
3771
#. type: SS
3559
#: ../src/xz/xz.1:2443
3772
#: ../src/xz/xz.1:2659
3560
#, no-wrap
3773
#, no-wrap
3561
msgid "Basics"
3774
msgid "Basics"
3562
msgstr ""
3775
msgstr ""
3563
3776
3564
#. type: Plain text
3777
#. type: Plain text
3565
#: ../src/xz/xz.1:2453
3778
#: ../src/xz/xz.1:2669
3566
msgid ""
3779
msgid ""
3567
"Compress the file I<foo> into I<foo.xz> using the default compression level "
3780
"Compress the file I<foo> into I<foo.xz> using the default compression level "
3568
"(B<-6>), and remove I<foo> if compression is successful:"
3781
"(B<-6>), and remove I<foo> if compression is successful:"
3569
msgstr ""
3782
msgstr ""
3570
3783
3571
#. type: Plain text
3784
#. type: Plain text
3572
#: ../src/xz/xz.1:2458
3785
#: ../src/xz/xz.1:2674
3573
#, no-wrap
3786
#, no-wrap
3574
msgid "CW<xz foo>\n"
3787
msgid "CW<xz foo>\n"
3575
msgstr ""
3788
msgstr ""
3576
3789
3577
#. type: Plain text
3790
#. type: Plain text
3578
#: ../src/xz/xz.1:2469
3791
#: ../src/xz/xz.1:2685
3579
msgid ""
3792
msgid ""
3580
"Decompress I<bar.xz> into I<bar> and don't remove I<bar.xz> even if "
3793
"Decompress I<bar.xz> into I<bar> and don't remove I<bar.xz> even if "
3581
"decompression is successful:"
3794
"decompression is successful:"
3582
msgstr ""
3795
msgstr ""
3583
3796
3584
#. type: Plain text
3797
#. type: Plain text
3585
#: ../src/xz/xz.1:2474
3798
#: ../src/xz/xz.1:2690
3586
#, no-wrap
3799
#, no-wrap
3587
msgid "CW<xz -dk bar.xz>\n"
3800
msgid "CW<xz -dk bar.xz>\n"
3588
msgstr ""
3801
msgstr ""
3589
3802
3590
#. type: Plain text
3803
#. type: Plain text
3591
#: ../src/xz/xz.1:2487
3804
#: ../src/xz/xz.1:2703
3592
msgid ""
3805
msgid ""
3593
"Create I<baz.tar.xz> with the preset B<-4e> (B<-4 --extreme>), which is "
3806
"Create I<baz.tar.xz> with the preset B<-4e> (B<-4 --extreme>), which is "
3594
"slower than e.g. the default B<-6>, but needs less memory for compression "
3807
"slower than the default B<-6>, but needs less memory for compression and "
3595
"and decompression (48\\ MiB and 5\\ MiB, respectively):"
3808
"decompression (48\\ MiB and 5\\ MiB, respectively):"
3596
msgstr ""
3809
msgstr ""
3597
3810
3598
#. type: Plain text
3811
#. type: Plain text
3599
#: ../src/xz/xz.1:2492
3812
#: ../src/xz/xz.1:2708
3600
#, no-wrap
3813
#, no-wrap
3601
msgid "CW<tar cf - baz | xz -4e E<gt> baz.tar.xz>\n"
3814
msgid "CW<tar cf - baz | xz -4e E<gt> baz.tar.xz>\n"
3602
msgstr ""
3815
msgstr ""
3603
3816
3604
#. type: Plain text
3817
#. type: Plain text
3605
#: ../src/xz/xz.1:2498
3818
#: ../src/xz/xz.1:2714
3606
msgid ""
3819
msgid ""
3607
"A mix of compressed and uncompressed files can be decompressed to standard "
3820
"A mix of compressed and uncompressed files can be decompressed to standard "
3608
"output with a single command:"
3821
"output with a single command:"
3609
msgstr ""
3822
msgstr ""
3610
3823
3611
#. type: Plain text
3824
#. type: Plain text
3612
#: ../src/xz/xz.1:2503
3825
#: ../src/xz/xz.1:2719
3613
#, no-wrap
3826
#, no-wrap
3614
msgid "CW<xz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt>\n"
3827
msgid "CW<xz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt>\n"
3615
msgstr ""
3828
msgstr ""
3616
3829
3617
#. type: SS
3830
#. type: SS
3618
#: ../src/xz/xz.1:2507
3831
#: ../src/xz/xz.1:2723
3619
#, no-wrap
3832
#, no-wrap
3620
msgid "Parallel compression of many files"
3833
msgid "Parallel compression of many files"
3621
msgstr ""
3834
msgstr ""
3622
3835
3623
#. type: Plain text
3836
#. type: Plain text
3624
#: ../src/xz/xz.1:2513
3837
#: ../src/xz/xz.1:2729
3625
msgid ""
3838
msgid ""
3626
"On GNU and *BSD, B<find>(1)  and B<xargs>(1)  can be used to parallelize "
3839
"On GNU and *BSD, B<find>(1)  and B<xargs>(1)  can be used to parallelize "
3627
"compression of many files:"
3840
"compression of many files:"
3628
msgstr ""
3841
msgstr ""
3629
3842
3630
#. type: Plain text
3843
#. type: Plain text
3631
#: ../src/xz/xz.1:2519
3844
#: ../src/xz/xz.1:2735
3632
#, no-wrap
3845
#, no-wrap
3633
msgid ""
3846
msgid ""
3634
"CW<find . -type f \\e! -name '*.xz' -print0 \\e\n"
3847
"CW<find . -type f \\e! -name '*.xz' -print0 \\e\n"
Lines 3636-3642 Link Here
3636
msgstr ""
3849
msgstr ""
3637
3850
3638
#. type: Plain text
3851
#. type: Plain text
3639
#: ../src/xz/xz.1:2541
3852
#: ../src/xz/xz.1:2757
3640
msgid ""
3853
msgid ""
3641
"The B<-P> option to B<xargs>(1)  sets the number of parallel B<xz> "
3854
"The B<-P> option to B<xargs>(1)  sets the number of parallel B<xz> "
3642
"processes.  The best value for the B<-n> option depends on how many files "
3855
"processes.  The best value for the B<-n> option depends on how many files "
Lines 3647-3679 Link Here
3647
msgstr ""
3860
msgstr ""
3648
3861
3649
#. type: Plain text
3862
#. type: Plain text
3650
#: ../src/xz/xz.1:2549
3863
#: ../src/xz/xz.1:2765
3651
msgid ""
3864
msgid ""
3652
"The option B<-T1> for B<xz> is there to force it to single-threaded mode, "
3865
"The option B<-T1> for B<xz> is there to force it to single-threaded mode, "
3653
"because B<xargs>(1)  is used to control the amount of parallelization."
3866
"because B<xargs>(1)  is used to control the amount of parallelization."
3654
msgstr ""
3867
msgstr ""
3655
3868
3656
#. type: SS
3869
#. type: SS
3657
#: ../src/xz/xz.1:2550
3870
#: ../src/xz/xz.1:2766
3658
#, no-wrap
3871
#, no-wrap
3659
msgid "Robot mode"
3872
msgid "Robot mode"
3660
msgstr ""
3873
msgstr ""
3661
3874
3662
#. type: Plain text
3875
#. type: Plain text
3663
#: ../src/xz/xz.1:2553
3876
#: ../src/xz/xz.1:2769
3664
msgid ""
3877
msgid ""
3665
"Calculate how many bytes have been saved in total after compressing multiple "
3878
"Calculate how many bytes have been saved in total after compressing multiple "
3666
"files:"
3879
"files:"
3667
msgstr ""
3880
msgstr ""
3668
3881
3669
#. type: Plain text
3882
#. type: Plain text
3670
#: ../src/xz/xz.1:2558
3883
#: ../src/xz/xz.1:2774
3671
#, no-wrap
3884
#, no-wrap
3672
msgid "CW<xz --robot --list *.xz | awk '/^totals/{print $5-$4}'>\n"
3885
msgid "CW<xz --robot --list *.xz | awk '/^totals/{print $5-$4}'>\n"
3673
msgstr ""
3886
msgstr ""
3674
3887
3675
#. type: Plain text
3888
#. type: Plain text
3676
#: ../src/xz/xz.1:2573
3889
#: ../src/xz/xz.1:2789
3677
msgid ""
3890
msgid ""
3678
"A script may want to know that it is using new enough B<xz>.  The following "
3891
"A script may want to know that it is using new enough B<xz>.  The following "
3679
"B<sh>(1)  script checks that the version number of the B<xz> tool is at "
3892
"B<sh>(1)  script checks that the version number of the B<xz> tool is at "
Lines 3682-3688 Link Here
3682
msgstr ""
3895
msgstr ""
3683
3896
3684
#. type: Plain text
3897
#. type: Plain text
3685
#: ../src/xz/xz.1:2582
3898
#: ../src/xz/xz.1:2798
3686
#, no-wrap
3899
#, no-wrap
3687
msgid ""
3900
msgid ""
3688
"CW<if ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
3901
"CW<if ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
Lines 3693-3709 Link Here
3693
msgstr ""
3906
msgstr ""
3694
3907
3695
#. type: Plain text
3908
#. type: Plain text
3696
#: ../src/xz/xz.1:2589
3909
#: ../src/xz/xz.1:2805
3697
msgid ""
3910
msgid ""
3698
"Set a memory usage limit for decompression using B<XZ_OPT>, but if a limit "
3911
"Set a memory usage limit for decompression using B<XZ_OPT>, but if a limit "
3699
"has already been set, don't increase it:"
3912
"has already been set, don't increase it:"
3700
msgstr ""
3913
msgstr ""
3701
3914
3702
#. type: Plain text
3915
#. type: Plain text
3703
#: ../src/xz/xz.1:2599
3916
#: ../src/xz/xz.1:2815
3704
#, no-wrap
3917
#, no-wrap
3705
msgid ""
3918
msgid ""
3706
"CW<NEWLIM=$((123 E<lt>E<lt> 20))  # 123 MiB\n"
3919
"CW<NEWLIM=$((123 E<lt>E<lt> 20))\\ \\ # 123 MiB\n"
3707
"OLDLIM=$(xz --robot --info-memory | cut -f3)\n"
3920
"OLDLIM=$(xz --robot --info-memory | cut -f3)\n"
3708
"if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then\n"
3921
"if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then\n"
3709
"    XZ_OPT=\"$XZ_OPT --memlimit-decompress=$NEWLIM\"\n"
3922
"    XZ_OPT=\"$XZ_OPT --memlimit-decompress=$NEWLIM\"\n"
Lines 3712-3718 Link Here
3712
msgstr ""
3925
msgstr ""
3713
3926
3714
#. type: Plain text
3927
#. type: Plain text
3715
#: ../src/xz/xz.1:2609
3928
#: ../src/xz/xz.1:2825
3716
msgid ""
3929
msgid ""
3717
"The simplest use for custom filter chains is customizing a LZMA2 preset.  "
3930
"The simplest use for custom filter chains is customizing a LZMA2 preset.  "
3718
"This can be useful, because the presets cover only a subset of the "
3931
"This can be useful, because the presets cover only a subset of the "
Lines 3720-3726 Link Here
3720
msgstr ""
3933
msgstr ""
3721
3934
3722
#. type: Plain text
3935
#. type: Plain text
3723
#: ../src/xz/xz.1:2617
3936
#: ../src/xz/xz.1:2833
3724
msgid ""
3937
msgid ""
3725
"The CompCPU columns of the tables from the descriptions of the options B<-0> "
3938
"The CompCPU columns of the tables from the descriptions of the options B<-0> "
3726
"... B<-9> and B<--extreme> are useful when customizing LZMA2 presets.  Here "
3939
"... B<-9> and B<--extreme> are useful when customizing LZMA2 presets.  Here "
Lines 3728-3749 Link Here
3728
msgstr ""
3941
msgstr ""
3729
3942
3730
#. type: Plain text
3943
#. type: Plain text
3731
#: ../src/xz/xz.1:2642
3944
#: ../src/xz/xz.1:2858
3732
msgid ""
3945
msgid ""
3733
"If you know that a file requires somewhat big dictionary (e.g. 32 MiB) to "
3946
"If you know that a file requires somewhat big dictionary (for example, 32\\ "
3734
"compress well, but you want to compress it quicker than B<xz -8> would do, a "
3947
"MiB) to compress well, but you want to compress it quicker than B<xz -8> "
3735
"preset with a low CompCPU value (e.g. 1)  can be modified to use a bigger "
3948
"would do, a preset with a low CompCPU value (for example, 1)  can be "
3736
"dictionary:"
3949
"modified to use a bigger dictionary:"
3737
msgstr ""
3950
msgstr ""
3738
3951
3739
#. type: Plain text
3952
#. type: Plain text
3740
#: ../src/xz/xz.1:2647
3953
#: ../src/xz/xz.1:2863
3741
#, no-wrap
3954
#, no-wrap
3742
msgid "CW<xz --lzma2=preset=1,dict=32MiB foo.tar>\n"
3955
msgid "CW<xz --lzma2=preset=1,dict=32MiB foo.tar>\n"
3743
msgstr ""
3956
msgstr ""
3744
3957
3745
#. type: Plain text
3958
#. type: Plain text
3746
#: ../src/xz/xz.1:2663
3959
#: ../src/xz/xz.1:2879
3747
msgid ""
3960
msgid ""
3748
"With certain files, the above command may be faster than B<xz -6> while "
3961
"With certain files, the above command may be faster than B<xz -6> while "
3749
"compressing significantly better.  However, it must be emphasized that only "
3962
"compressing significantly better.  However, it must be emphasized that only "
Lines 3756-3762 Link Here
3756
msgstr ""
3969
msgstr ""
3757
3970
3758
#. type: Plain text
3971
#. type: Plain text
3759
#: ../src/xz/xz.1:2670
3972
#: ../src/xz/xz.1:2886
3760
msgid ""
3973
msgid ""
3761
"If very high compressor and decompressor memory usage is fine, and the file "
3974
"If very high compressor and decompressor memory usage is fine, and the file "
3762
"being compressed is at least several hundred megabytes, it may be useful to "
3975
"being compressed is at least several hundred megabytes, it may be useful to "
Lines 3764-3776 Link Here
3764
msgstr ""
3977
msgstr ""
3765
3978
3766
#. type: Plain text
3979
#. type: Plain text
3767
#: ../src/xz/xz.1:2675
3980
#: ../src/xz/xz.1:2891
3768
#, no-wrap
3981
#, no-wrap
3769
msgid "CW<xz -vv --lzma2=dict=192MiB big_foo.tar>\n"
3982
msgid "CW<xz -vv --lzma2=dict=192MiB big_foo.tar>\n"
3770
msgstr ""
3983
msgstr ""
3771
3984
3772
#. type: Plain text
3985
#. type: Plain text
3773
#: ../src/xz/xz.1:2688
3986
#: ../src/xz/xz.1:2904
3774
msgid ""
3987
msgid ""
3775
"Using B<-vv> (B<--verbose --verbose>)  like in the above example can be "
3988
"Using B<-vv> (B<--verbose --verbose>)  like in the above example can be "
3776
"useful to see the memory requirements of the compressor and decompressor.  "
3989
"useful to see the memory requirements of the compressor and decompressor.  "
Lines 3779-3834 Link Here
3779
msgstr ""
3992
msgstr ""
3780
3993
3781
#. type: Plain text
3994
#. type: Plain text
3782
#: ../src/xz/xz.1:2701
3995
#: ../src/xz/xz.1:2916
3783
msgid ""
3996
msgid ""
3784
"Sometimes the compression time doesn't matter, but the decompressor memory "
3997
"Sometimes the compression time doesn't matter, but the decompressor memory "
3785
"usage has to be kept low e.g. to make it possible to decompress the file on "
3998
"usage has to be kept low, for example, to make it possible to decompress the "
3786
"an embedded system.  The following command uses B<-6e> (B<-6 --extreme>)  as "
3999
"file on an embedded system.  The following command uses B<-6e> (B<-6 "
3787
"a base and sets the dictionary to only 64\\ KiB.  The resulting file can be "
4000
"--extreme>)  as a base and sets the dictionary to only 64\\ KiB.  The "
3788
"decompressed with XZ Embedded (that's why there is B<--check=crc32>)  using "
4001
"resulting file can be decompressed with XZ Embedded (that's why there is "
3789
"about 100\\ KiB of memory."
4002
"B<--check=crc32>)  using about 100\\ KiB of memory."
3790
msgstr ""
4003
msgstr ""
3791
4004
3792
#. type: Plain text
4005
#. type: Plain text
3793
#: ../src/xz/xz.1:2706
4006
#: ../src/xz/xz.1:2921
3794
#, no-wrap
4007
#, no-wrap
3795
msgid "CW<xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo>\n"
4008
msgid "CW<xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo>\n"
3796
msgstr ""
4009
msgstr ""
3797
4010
3798
#. type: Plain text
4011
#. type: Plain text
3799
#: ../src/xz/xz.1:2729
4012
#: ../src/xz/xz.1:2944
3800
msgid ""
4013
msgid ""
3801
"If you want to squeeze out as many bytes as possible, adjusting the number "
4014
"If you want to squeeze out as many bytes as possible, adjusting the number "
3802
"of literal context bits (I<lc>)  and number of position bits (I<pb>)  can "
4015
"of literal context bits (I<lc>)  and number of position bits (I<pb>)  can "
3803
"sometimes help.  Adjusting the number of literal position bits (I<lp>)  "
4016
"sometimes help.  Adjusting the number of literal position bits (I<lp>)  "
3804
"might help too, but usually I<lc> and I<pb> are more important.  E.g. a "
4017
"might help too, but usually I<lc> and I<pb> are more important.  For "
3805
"source code archive contains mostly US-ASCII text, so something like the "
4018
"example, a source code archive contains mostly US-ASCII text, so something "
3806
"following might give slightly (like 0.1\\ %) smaller file than B<xz -6e> "
4019
"like the following might give slightly (like 0.1\\ %) smaller file than B<xz "
3807
"(try also without B<lc=4>):"
4020
"-6e> (try also without B<lc=4>):"
3808
msgstr ""
4021
msgstr ""
3809
4022
3810
#. type: Plain text
4023
#. type: Plain text
3811
#: ../src/xz/xz.1:2734
4024
#: ../src/xz/xz.1:2949
3812
#, no-wrap
4025
#, no-wrap
3813
msgid "CW<xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar>\n"
4026
msgid "CW<xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar>\n"
3814
msgstr ""
4027
msgstr ""
3815
4028
3816
#. type: Plain text
4029
#. type: Plain text
3817
#: ../src/xz/xz.1:2742
4030
#: ../src/xz/xz.1:2957
3818
msgid ""
4031
msgid ""
3819
"Using another filter together with LZMA2 can improve compression with "
4032
"Using another filter together with LZMA2 can improve compression with "
3820
"certain file types.  E.g. to compress a x86-32 or x86-64 shared library "
4033
"certain file types.  For example, to compress a x86-32 or x86-64 shared "
3821
"using the x86 BCJ filter:"
4034
"library using the x86 BCJ filter:"
3822
msgstr ""
4035
msgstr ""
3823
4036
3824
#. type: Plain text
4037
#. type: Plain text
3825
#: ../src/xz/xz.1:2747
4038
#: ../src/xz/xz.1:2962
3826
#, no-wrap
4039
#, no-wrap
3827
msgid "CW<xz --x86 --lzma2 libfoo.so>\n"
4040
msgid "CW<xz --x86 --lzma2 libfoo.so>\n"
3828
msgstr ""
4041
msgstr ""
3829
4042
3830
#. type: Plain text
4043
#. type: Plain text
3831
#: ../src/xz/xz.1:2761
4044
#: ../src/xz/xz.1:2976
3832
msgid ""
4045
msgid ""
3833
"Note that the order of the filter options is significant.  If B<--x86> is "
4046
"Note that the order of the filter options is significant.  If B<--x86> is "
3834
"specified after B<--lzma2>, B<xz> will give an error, because there cannot "
4047
"specified after B<--lzma2>, B<xz> will give an error, because there cannot "
Lines 3837-3843 Link Here
3837
msgstr ""
4050
msgstr ""
3838
4051
3839
#. type: Plain text
4052
#. type: Plain text
3840
#: ../src/xz/xz.1:2767
4053
#: ../src/xz/xz.1:2982
3841
msgid ""
4054
msgid ""
3842
"The Delta filter together with LZMA2 can give good results with bitmap "
4055
"The Delta filter together with LZMA2 can give good results with bitmap "
3843
"images.  It should usually beat PNG, which has a few more advanced filters "
4056
"images.  It should usually beat PNG, which has a few more advanced filters "
Lines 3845-3899 Link Here
3845
msgstr ""
4058
msgstr ""
3846
4059
3847
#. type: Plain text
4060
#. type: Plain text
3848
#: ../src/xz/xz.1:2777
4061
#: ../src/xz/xz.1:2992
3849
msgid ""
4062
msgid ""
3850
"The image has to be saved in uncompressed format, e.g. as uncompressed "
4063
"The image has to be saved in uncompressed format, for example, as "
3851
"TIFF.  The distance parameter of the Delta filter is set to match the number "
4064
"uncompressed TIFF.  The distance parameter of the Delta filter is set to "
3852
"of bytes per pixel in the image.  E.g. 24-bit RGB bitmap needs B<dist=3>, "
4065
"match the number of bytes per pixel in the image.  For example, 24-bit RGB "
3853
"and it is also good to pass B<pb=0> to LZMA2 to accommodate the three-byte "
4066
"bitmap needs B<dist=3>, and it is also good to pass B<pb=0> to LZMA2 to "
3854
"alignment:"
4067
"accommodate the three-byte alignment:"
3855
msgstr ""
4068
msgstr ""
3856
4069
3857
#. type: Plain text
4070
#. type: Plain text
3858
#: ../src/xz/xz.1:2782
4071
#: ../src/xz/xz.1:2997
3859
#, no-wrap
4072
#, no-wrap
3860
msgid "CW<xz --delta=dist=3 --lzma2=pb=0 foo.tiff>\n"
4073
msgid "CW<xz --delta=dist=3 --lzma2=pb=0 foo.tiff>\n"
3861
msgstr ""
4074
msgstr ""
3862
4075
3863
#. type: Plain text
4076
#. type: Plain text
3864
#: ../src/xz/xz.1:2790
4077
#: ../src/xz/xz.1:3005
3865
msgid ""
4078
msgid ""
3866
"If multiple images have been put into a single archive (e.g.\\& B<.tar>), "
4079
"If multiple images have been put into a single archive (for example, "
3867
"the Delta filter will work on that too as long as all images have the same "
4080
"B<.tar>), the Delta filter will work on that too as long as all images have "
3868
"number of bytes per pixel."
4081
"the same number of bytes per pixel."
3869
msgstr ""
4082
msgstr ""
3870
4083
3871
#. type: SH
4084
#. type: SH
3872
#: ../src/xz/xz.1:2791 ../src/xzdec/xzdec.1:143 ../src/lzmainfo/lzmainfo.1:59 ../src/scripts/xzdiff.1:64 ../src/scripts/xzgrep.1:92 ../src/scripts/xzless.1:65 ../src/scripts/xzmore.1:51
4085
#: ../src/xz/xz.1:3006 ../src/xzdec/xzdec.1:143 ../src/lzmainfo/lzmainfo.1:59
4086
#: ../src/scripts/xzdiff.1:65 ../src/scripts/xzgrep.1:106
4087
#: ../src/scripts/xzless.1:65 ../src/scripts/xzmore.1:51
3873
#, no-wrap
4088
#, no-wrap
3874
msgid "SEE ALSO"
4089
msgid "SEE ALSO"
3875
msgstr ""
4090
msgstr ""
3876
4091
3877
#. type: Plain text
4092
#. type: Plain text
3878
#: ../src/xz/xz.1:2800
4093
#: ../src/xz/xz.1:3015
3879
msgid ""
4094
msgid ""
3880
"B<xzdec>(1), B<xzdiff>(1), B<xzgrep>(1), B<xzless>(1), B<xzmore>(1), "
4095
"B<xzdec>(1), B<xzdiff>(1), B<xzgrep>(1), B<xzless>(1), B<xzmore>(1), "
3881
"B<gzip>(1), B<bzip2>(1), B<7z>(1)"
4096
"B<gzip>(1), B<bzip2>(1), B<7z>(1)"
3882
msgstr ""
4097
msgstr ""
3883
4098
3884
#. type: Plain text
4099
#. type: Plain text
3885
#: ../src/xz/xz.1:2802
4100
#: ../src/xz/xz.1:3017
3886
msgid "XZ Utils: E<lt>https://tukaani.org/xz/E<gt>"
4101
msgid "XZ Utils: E<lt>https://tukaani.org/xz/E<gt>"
3887
msgstr ""
4102
msgstr ""
3888
4103
3889
#. type: Plain text
4104
#. type: Plain text
3890
#: ../src/xz/xz.1:2804 ../src/xzdec/xzdec.1:146
4105
#: ../src/xz/xz.1:3019 ../src/xzdec/xzdec.1:146
3891
msgid "XZ Embedded: E<lt>https://tukaani.org/xz/embedded.htmlE<gt>"
4106
msgid "XZ Embedded: E<lt>https://tukaani.org/xz/embedded.htmlE<gt>"
3892
msgstr ""
4107
msgstr ""
3893
4108
3894
#. type: Plain text
4109
#. type: Plain text
3895
#: ../src/xz/xz.1:2805
4110
#: ../src/xz/xz.1:3020
3896
msgid "LZMA SDK: E<lt>http://7-zip.org/sdk.htmlE<gt>"
4111
msgid "LZMA SDK: E<lt>https://7-zip.org/sdk.htmlE<gt>"
3897
msgstr ""
4112
msgstr ""
3898
4113
3899
#. type: TH
4114
#. type: TH
Lines 4069-4075 Link Here
4069
msgstr ""
4284
msgstr ""
4070
4285
4071
#. type: SH
4286
#. type: SH
4072
#: ../src/lzmainfo/lzmainfo.1:51 ../src/scripts/xzdiff.1:72
4287
#: ../src/lzmainfo/lzmainfo.1:51 ../src/scripts/xzdiff.1:74
4073
#, no-wrap
4288
#, no-wrap
4074
msgid "BUGS"
4289
msgid "BUGS"
4075
msgstr ""
4290
msgstr ""
Lines 4088-4096 Link Here
4088
msgstr ""
4303
msgstr ""
4089
4304
4090
#. type: TH
4305
#. type: TH
4091
#: ../src/scripts/xzdiff.1:9 ../src/scripts/xzgrep.1:9
4306
#: ../src/scripts/xzdiff.1:9
4092
#, no-wrap
4307
#, no-wrap
4093
msgid "2011-03-19"
4308
msgid "2021-06-04"
4094
msgstr ""
4309
msgstr ""
4095
4310
4096
#. type: Plain text
4311
#. type: Plain text
Lines 4119-4152 Link Here
4119
msgstr ""
4334
msgstr ""
4120
4335
4121
#. type: Plain text
4336
#. type: Plain text
4122
#: ../src/scripts/xzdiff.1:58
4337
#: ../src/scripts/xzdiff.1:59
4123
msgid ""
4338
msgid ""
4124
"B<xzcmp> and B<xzdiff> invoke B<cmp>(1)  or B<diff>(1)  on files compressed "
4339
"B<xzcmp> and B<xzdiff> invoke B<cmp>(1)  or B<diff>(1)  on files compressed "
4125
"with B<xz>(1), B<lzma>(1), B<gzip>(1), B<bzip2>(1), or B<lzop>(1).  All "
4340
"with B<xz>(1), B<lzma>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), or "
4126
"options specified are passed directly to B<cmp>(1)  or B<diff>(1).  If only "
4341
"B<zstd>(1).  All options specified are passed directly to B<cmp>(1)  or "
4127
"one file is specified, then the files compared are I<file1> (which must have "
4342
"B<diff>(1).  If only one file is specified, then the files compared are "
4128
"a suffix of a supported compression format) and I<file1> from which the "
4343
"I<file1> (which must have a suffix of a supported compression format) and "
4129
"compression format suffix has been stripped.  If two files are specified, "
4344
"I<file1> from which the compression format suffix has been stripped.  If two "
4130
"then they are uncompressed if necessary and fed to B<cmp>(1)  or "
4345
"files are specified, then they are uncompressed if necessary and fed to "
4131
"B<diff>(1).  The exit status from B<cmp>(1)  or B<diff>(1)  is preserved."
4346
"B<cmp>(1)  or B<diff>(1).  The exit status from B<cmp>(1)  or B<diff>(1)  is "
4347
"preserved unless a decompression error occurs; then exit status is 2."
4132
msgstr ""
4348
msgstr ""
4133
4349
4134
#. type: Plain text
4350
#. type: Plain text
4135
#: ../src/scripts/xzdiff.1:64
4351
#: ../src/scripts/xzdiff.1:65
4136
msgid ""
4352
msgid ""
4137
"The names B<lzcmp> and B<lzdiff> are provided for backward compatibility "
4353
"The names B<lzcmp> and B<lzdiff> are provided for backward compatibility "
4138
"with LZMA Utils."
4354
"with LZMA Utils."
4139
msgstr ""
4355
msgstr ""
4140
4356
4141
#. type: Plain text
4357
#. type: Plain text
4142
#: ../src/scripts/xzdiff.1:72
4358
#: ../src/scripts/xzdiff.1:74
4143
msgid ""
4359
msgid ""
4144
"B<cmp>(1), B<diff>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), "
4360
"B<cmp>(1), B<diff>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), "
4145
"B<zdiff>(1)"
4361
"B<zstd>(1), B<zdiff>(1)"
4146
msgstr ""
4362
msgstr ""
4147
4363
4148
#. type: Plain text
4364
#. type: Plain text
4149
#: ../src/scripts/xzdiff.1:77
4365
#: ../src/scripts/xzdiff.1:79
4150
msgid ""
4366
msgid ""
4151
"Messages from the B<cmp>(1)  or B<diff>(1)  programs refer to temporary "
4367
"Messages from the B<cmp>(1)  or B<diff>(1)  programs refer to temporary "
4152
"filenames instead of those specified."
4368
"filenames instead of those specified."
Lines 4158-4163 Link Here
4158
msgid "XZGREP"
4374
msgid "XZGREP"
4159
msgstr ""
4375
msgstr ""
4160
4376
4377
#. type: TH
4378
#: ../src/scripts/xzgrep.1:9
4379
#, no-wrap
4380
msgid "2022-07-19"
4381
msgstr ""
4382
4161
#. type: Plain text
4383
#. type: Plain text
4162
#: ../src/scripts/xzgrep.1:12
4384
#: ../src/scripts/xzgrep.1:12
4163
msgid "xzgrep - search compressed files for a regular expression"
4385
msgid "xzgrep - search compressed files for a regular expression"
Lines 4165-4239 Link Here
4165
4387
4166
#. type: Plain text
4388
#. type: Plain text
4167
#: ../src/scripts/xzgrep.1:18
4389
#: ../src/scripts/xzgrep.1:18
4168
msgid "B<xzgrep> [I<grep_options>] [B<-e>] I<pattern> I<file>..."
4390
msgid "B<xzgrep> [I<grep_options>] [B<-e>] I<pattern> [I<file...>]"
4169
msgstr ""
4391
msgstr ""
4170
4392
4171
#. type: Plain text
4393
#. type: Plain text
4172
#: ../src/scripts/xzgrep.1:21
4394
#: ../src/scripts/xzgrep.1:21
4173
msgid "B<xzegrep> ..."
4395
msgid "B<xzegrep> \\&..."
4174
msgstr ""
4396
msgstr ""
4175
4397
4176
#. type: Plain text
4398
#. type: Plain text
4177
#: ../src/scripts/xzgrep.1:24
4399
#: ../src/scripts/xzgrep.1:24
4178
msgid "B<xzfgrep> ..."
4400
msgid "B<xzfgrep> \\&..."
4179
msgstr ""
4401
msgstr ""
4180
4402
4181
#. type: Plain text
4403
#. type: Plain text
4182
#: ../src/scripts/xzgrep.1:27
4404
#: ../src/scripts/xzgrep.1:27
4183
msgid "B<lzgrep> ..."
4405
msgid "B<lzgrep> \\&..."
4184
msgstr ""
4406
msgstr ""
4185
4407
4186
#. type: Plain text
4408
#. type: Plain text
4187
#: ../src/scripts/xzgrep.1:30
4409
#: ../src/scripts/xzgrep.1:30
4188
msgid "B<lzegrep> ..."
4410
msgid "B<lzegrep> \\&..."
4189
msgstr ""
4411
msgstr ""
4190
4412
4191
#. type: Plain text
4413
#. type: Plain text
4192
#: ../src/scripts/xzgrep.1:33
4414
#: ../src/scripts/xzgrep.1:33
4193
msgid "B<lzfgrep> ..."
4415
msgid "B<lzfgrep> \\&..."
4194
msgstr ""
4416
msgstr ""
4195
4417
4196
#. type: Plain text
4418
#. type: Plain text
4197
#: ../src/scripts/xzgrep.1:48
4419
#: ../src/scripts/xzgrep.1:49
4198
msgid ""
4420
msgid ""
4199
"B<xzgrep> invokes B<grep>(1)  on I<files> which may be either uncompressed "
4421
"B<xzgrep> invokes B<grep>(1)  on I<files> which may be either uncompressed "
4200
"or compressed with B<xz>(1), B<lzma>(1), B<gzip>(1), B<bzip2>(1), or "
4422
"or compressed with B<xz>(1), B<lzma>(1), B<gzip>(1), B<bzip2>(1), "
4201
"B<lzop>(1).  All options specified are passed directly to B<grep>(1)."
4423
"B<lzop>(1), or B<zstd>(1).  All options specified are passed directly to "
4424
"B<grep>(1)."
4202
msgstr ""
4425
msgstr ""
4203
4426
4204
#. type: Plain text
4427
#. type: Plain text
4205
#: ../src/scripts/xzgrep.1:60
4428
#: ../src/scripts/xzgrep.1:62
4206
msgid ""
4429
msgid ""
4207
"If no I<file> is specified, then standard input is decompressed if necessary "
4430
"If no I<file> is specified, then standard input is decompressed if necessary "
4208
"and fed to B<grep>(1).  When reading from standard input, B<gzip>(1), "
4431
"and fed to B<grep>(1).  When reading from standard input, B<gzip>(1), "
4209
"B<bzip2>(1), and B<lzop>(1)  compressed files are not supported."
4432
"B<bzip2>(1), B<lzop>(1), and B<zstd>(1)  compressed files are not supported."
4210
msgstr ""
4433
msgstr ""
4211
4434
4212
#. type: Plain text
4435
#. type: Plain text
4213
#: ../src/scripts/xzgrep.1:79
4436
#: ../src/scripts/xzgrep.1:81
4214
msgid ""
4437
msgid ""
4215
"If B<xzgrep> is invoked as B<xzegrep> or B<xzfgrep> then B<egrep>(1)  or "
4438
"If B<xzgrep> is invoked as B<xzegrep> or B<xzfgrep> then B<grep -E> or "
4216
"B<fgrep>(1)  is used instead of B<grep>(1).  The same applies to names "
4439
"B<grep -F> is used instead of B<grep>(1).  The same applies to names "
4217
"B<lzgrep>, B<lzegrep>, and B<lzfgrep>, which are provided for backward "
4440
"B<lzgrep>, B<lzegrep>, and B<lzfgrep>, which are provided for backward "
4218
"compatibility with LZMA Utils."
4441
"compatibility with LZMA Utils."
4219
msgstr ""
4442
msgstr ""
4220
4443
4444
#. type: Plain text
4445
#: ../src/scripts/xzgrep.1:86
4446
msgid ""
4447
"At least one match was found from at least one of the input files.  No "
4448
"errors occurred."
4449
msgstr ""
4450
4451
#. type: Plain text
4452
#: ../src/scripts/xzgrep.1:90
4453
msgid "No matches were found from any of the input files.  No errors occurred."
4454
msgstr ""
4455
4221
#. type: TP
4456
#. type: TP
4222
#: ../src/scripts/xzgrep.1:81
4457
#: ../src/scripts/xzgrep.1:90
4223
#, no-wrap
4458
#, no-wrap
4459
msgid "E<gt>1"
4460
msgstr ""
4461
4462
#. type: Plain text
4463
#: ../src/scripts/xzgrep.1:94
4464
msgid "One or more errors occurred.  It is unknown if matches were found."
4465
msgstr ""
4466
4467
#. type: TP
4468
#: ../src/scripts/xzgrep.1:95
4469
#, no-wrap
4224
msgid "B<GREP>"
4470
msgid "B<GREP>"
4225
msgstr ""
4471
msgstr ""
4226
4472
4227
#. type: Plain text
4473
#. type: Plain text
4228
#: ../src/scripts/xzgrep.1:92
4474
#: ../src/scripts/xzgrep.1:106
4229
msgid ""
4475
msgid ""
4230
"If the B<GREP> environment variable is set, B<xzgrep> uses it instead of "
4476
"If the B<GREP> environment variable is set, B<xzgrep> uses it instead of "
4231
"B<grep>(1), B<egrep>(1), or B<fgrep>(1)."
4477
"B<grep>(1), B<grep -E>, or B<grep -F>."
4232
msgstr ""
4478
msgstr ""
4233
4479
4234
#. type: Plain text
4480
#. type: Plain text
4235
#: ../src/scripts/xzgrep.1:98
4481
#: ../src/scripts/xzgrep.1:113
4236
msgid "B<grep>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zgrep>(1)"
4482
msgid ""
4483
"B<grep>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zstd>(1), "
4484
"B<zgrep>(1)"
4237
msgstr ""
4485
msgstr ""
4238
4486
4239
#. type: TH
4487
#. type: TH
(-)xz-5.2.5/src/Makefile.in (-5 / +8 lines)
Lines 1-7 Link Here
1
# Makefile.in generated by automake 1.16.1 from Makefile.am.
1
# Makefile.in generated by automake 1.16.5 from Makefile.am.
2
# @configure_input@
2
# @configure_input@
3
3
4
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
4
# Copyright (C) 1994-2021 Free Software Foundation, Inc.
5
5
6
# This Makefile.in is free software; the Free Software Foundation
6
# This Makefile.in is free software; the Free Software Foundation
7
# gives unlimited permission to copy and/or distribute it,
7
# gives unlimited permission to copy and/or distribute it,
Lines 168-175 Link Here
168
  unique=`for i in $$list; do \
168
  unique=`for i in $$list; do \
169
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
169
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
170
  done | $(am__uniquify_input)`
170
  done | $(am__uniquify_input)`
171
ETAGS = etags
172
CTAGS = ctags
173
DIST_SUBDIRS = liblzma xzdec xz lzmainfo scripts
171
DIST_SUBDIRS = liblzma xzdec xz lzmainfo scripts
174
am__DIST_COMMON = $(srcdir)/Makefile.in
172
am__DIST_COMMON = $(srcdir)/Makefile.in
175
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
173
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
Lines 218-223 Link Here
218
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
216
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
219
CPP = @CPP@
217
CPP = @CPP@
220
CPPFLAGS = @CPPFLAGS@
218
CPPFLAGS = @CPPFLAGS@
219
CSCOPE = @CSCOPE@
220
CTAGS = @CTAGS@
221
CYGPATH_W = @CYGPATH_W@
221
CYGPATH_W = @CYGPATH_W@
222
DEFS = @DEFS@
222
DEFS = @DEFS@
223
DEPDIR = @DEPDIR@
223
DEPDIR = @DEPDIR@
Lines 228-235 Link Here
228
ECHO_N = @ECHO_N@
228
ECHO_N = @ECHO_N@
229
ECHO_T = @ECHO_T@
229
ECHO_T = @ECHO_T@
230
EGREP = @EGREP@
230
EGREP = @EGREP@
231
ETAGS = @ETAGS@
231
EXEEXT = @EXEEXT@
232
EXEEXT = @EXEEXT@
232
FGREP = @FGREP@
233
FGREP = @FGREP@
234
FILECMD = @FILECMD@
233
GETOPT_H = @GETOPT_H@
235
GETOPT_H = @GETOPT_H@
234
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
236
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
235
GMSGFMT = @GMSGFMT@
237
GMSGFMT = @GMSGFMT@
Lines 282-287 Link Here
282
PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@
284
PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@
283
PTHREAD_CC = @PTHREAD_CC@
285
PTHREAD_CC = @PTHREAD_CC@
284
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
286
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
287
PTHREAD_CXX = @PTHREAD_CXX@
285
PTHREAD_LIBS = @PTHREAD_LIBS@
288
PTHREAD_LIBS = @PTHREAD_LIBS@
286
RANLIB = @RANLIB@
289
RANLIB = @RANLIB@
287
RC = @RC@
290
RC = @RC@
Lines 340-345 Link Here
340
prefix = @prefix@
343
prefix = @prefix@
341
program_transform_name = @program_transform_name@
344
program_transform_name = @program_transform_name@
342
psdir = @psdir@
345
psdir = @psdir@
346
runstatedir = @runstatedir@
343
sbindir = @sbindir@
347
sbindir = @sbindir@
344
sharedstatedir = @sharedstatedir@
348
sharedstatedir = @sharedstatedir@
345
srcdir = @srcdir@
349
srcdir = @srcdir@
Lines 510-516 Link Here
510
514
511
distclean-tags:
515
distclean-tags:
512
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
516
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
513
514
distdir: $(BUILT_SOURCES)
517
distdir: $(BUILT_SOURCES)
515
	$(MAKE) $(AM_MAKEFLAGS) distdir-am
518
	$(MAKE) $(AM_MAKEFLAGS) distdir-am
516
519
(-)xz-5.2.5/src/common/common_w32res.rc (-1 / +3 lines)
Lines 6-12 Link Here
6
 */
6
 */
7
7
8
#include <winresrc.h>
8
#include <winresrc.h>
9
#include "config.h"
9
#ifdef HAVE_CONFIG_H
10
# include "config.h"
11
#endif
10
#define LZMA_H_INTERNAL
12
#define LZMA_H_INTERNAL
11
#define LZMA_H_INTERNAL_RC
13
#define LZMA_H_INTERNAL_RC
12
#include "lzma/version.h"
14
#include "lzma/version.h"
(-)xz-5.2.5/src/common/mythread.h (-8 / +15 lines)
Lines 100-111 Link Here
100
// Using pthreads //
100
// Using pthreads //
101
////////////////////
101
////////////////////
102
102
103
#include <sys/time.h>
104
#include <pthread.h>
103
#include <pthread.h>
105
#include <signal.h>
104
#include <signal.h>
106
#include <time.h>
105
#include <time.h>
107
#include <errno.h>
106
#include <errno.h>
108
107
108
// If clock_gettime() isn't available, use gettimeofday() from <sys/time.h>
109
// as a fallback. gettimeofday() is in SUSv2 and thus is supported on all
110
// relevant POSIX systems.
111
#ifndef HAVE_CLOCK_GETTIME
112
#	include <sys/time.h>
113
#endif
114
109
#define MYTHREAD_RET_TYPE void *
115
#define MYTHREAD_RET_TYPE void *
110
#define MYTHREAD_RET_VALUE NULL
116
#define MYTHREAD_RET_VALUE NULL
111
117
Lines 219-226 Link Here
219
mythread_cond_init(mythread_cond *mycond)
225
mythread_cond_init(mythread_cond *mycond)
220
{
226
{
221
#ifdef HAVE_CLOCK_GETTIME
227
#ifdef HAVE_CLOCK_GETTIME
222
	// NOTE: HAVE_DECL_CLOCK_MONOTONIC is always defined to 0 or 1.
228
#	if defined(HAVE_PTHREAD_CONDATTR_SETCLOCK) && \
223
#	if defined(HAVE_PTHREAD_CONDATTR_SETCLOCK) && HAVE_DECL_CLOCK_MONOTONIC
229
		defined(HAVE_CLOCK_MONOTONIC)
224
	struct timespec ts;
230
	struct timespec ts;
225
	pthread_condattr_t condattr;
231
	pthread_condattr_t condattr;
226
232
Lines 294-301 Link Here
294
mythread_condtime_set(mythread_condtime *condtime, const mythread_cond *cond,
300
mythread_condtime_set(mythread_condtime *condtime, const mythread_cond *cond,
295
		uint32_t timeout_ms)
301
		uint32_t timeout_ms)
296
{
302
{
297
	condtime->tv_sec = timeout_ms / 1000;
303
	condtime->tv_sec = (time_t)(timeout_ms / 1000);
298
	condtime->tv_nsec = (timeout_ms % 1000) * 1000000;
304
	condtime->tv_nsec = (long)((timeout_ms % 1000) * 1000000);
299
305
300
#ifdef HAVE_CLOCK_GETTIME
306
#ifdef HAVE_CLOCK_GETTIME
301
	struct timespec now;
307
	struct timespec now;
Lines 370-379 Link Here
370
		BOOL pending_; \
376
		BOOL pending_; \
371
		if (!InitOnceBeginInitialize(&once_, 0, &pending_, NULL)) \
377
		if (!InitOnceBeginInitialize(&once_, 0, &pending_, NULL)) \
372
			abort(); \
378
			abort(); \
373
		if (pending_) \
379
		if (pending_) { \
374
			func(); \
380
			func(); \
375
		if (!InitOnceComplete(&once, 0, NULL)) \
381
			if (!InitOnceComplete(&once, 0, NULL)) \
376
			abort(); \
382
				abort(); \
383
		} \
377
	} while (0)
384
	} while (0)
378
#endif
385
#endif
379
386
(-)xz-5.2.5/src/common/sysdefs.h (-11 / +1 lines)
Lines 127-133 Link Here
127
#include <stdlib.h>
127
#include <stdlib.h>
128
#include <assert.h>
128
#include <assert.h>
129
129
130
// Pre-C99 systems lack stdbool.h. All the code in LZMA Utils must be written
130
// Pre-C99 systems lack stdbool.h. All the code in XZ Utils must be written
131
// so that it works with fake bool type, for example:
131
// so that it works with fake bool type, for example:
132
//
132
//
133
//    bool foo = (flags & 0x100) != 0;
133
//    bool foo = (flags & 0x100) != 0;
Lines 149-165 Link Here
149
#	define __bool_true_false_are_defined 1
149
#	define __bool_true_false_are_defined 1
150
#endif
150
#endif
151
151
152
// string.h should be enough but let's include strings.h and memory.h too if
153
// they exists, since that shouldn't do any harm, but may improve portability.
154
#include <string.h>
152
#include <string.h>
155
156
#ifdef HAVE_STRINGS_H
157
#	include <strings.h>
158
#endif
159
160
#ifdef HAVE_MEMORY_H
161
#	include <memory.h>
162
#endif
163
153
164
// As of MSVC 2013, inline and restrict are supported with
154
// As of MSVC 2013, inline and restrict are supported with
165
// non-standard keywords.
155
// non-standard keywords.
(-)xz-5.2.5/src/common/tuklib_common.h (-1 / +1 lines)
Lines 14-20 Link Here
14
#define TUKLIB_COMMON_H
14
#define TUKLIB_COMMON_H
15
15
16
// The config file may be replaced by a package-specific file.
16
// The config file may be replaced by a package-specific file.
17
// It should include at least stddef.h, inttypes.h, and limits.h.
17
// It should include at least stddef.h, stdbool.h, inttypes.h, and limits.h.
18
#include "tuklib_config.h"
18
#include "tuklib_config.h"
19
19
20
// TUKLIB_SYMBOL_PREFIX is prefixed to all symbols exported by
20
// TUKLIB_SYMBOL_PREFIX is prefixed to all symbols exported by
(-)xz-5.2.5/src/common/tuklib_config.h (+3 lines)
Lines 1-7 Link Here
1
// If config.h isn't available, assume that the headers required by
2
// tuklib_common.h are available. This is required by crc32_tablegen.c.
1
#ifdef HAVE_CONFIG_H
3
#ifdef HAVE_CONFIG_H
2
#	include "sysdefs.h"
4
#	include "sysdefs.h"
3
#else
5
#else
4
#	include <stddef.h>
6
#	include <stddef.h>
7
#	include <stdbool.h>
5
#	include <inttypes.h>
8
#	include <inttypes.h>
6
#	include <limits.h>
9
#	include <limits.h>
7
#endif
10
#endif
(-)xz-5.2.5/src/common/tuklib_cpucores.c (+9 lines)
Lines 72-78 Link Here
72
	}
72
	}
73
73
74
#elif defined(TUKLIB_CPUCORES_SYSCTL)
74
#elif defined(TUKLIB_CPUCORES_SYSCTL)
75
	// On OpenBSD HW_NCPUONLINE tells the number of processor cores that
76
	// are online so it is preferred over HW_NCPU which also counts cores
77
	// that aren't currently available. The number of cores online is
78
	// often less than HW_NCPU because OpenBSD disables simultaneous
79
	// multi-threading (SMT) by default.
80
#	ifdef HW_NCPUONLINE
81
	int name[2] = { CTL_HW, HW_NCPUONLINE };
82
#	else
75
	int name[2] = { CTL_HW, HW_NCPU };
83
	int name[2] = { CTL_HW, HW_NCPU };
84
#	endif
76
	int cpus;
85
	int cpus;
77
	size_t cpus_size = sizeof(cpus);
86
	size_t cpus_size = sizeof(cpus);
78
	if (sysctl(name, 2, &cpus, &cpus_size, NULL, 0) != -1
87
	if (sysctl(name, 2, &cpus, &cpus_size, NULL, 0) != -1
(-)xz-5.2.5/src/common/tuklib_integer.h (-5 / +53 lines)
Lines 17-24 Link Here
17
///   - Byte swapping: bswapXX(num)
17
///   - Byte swapping: bswapXX(num)
18
///   - Byte order conversions to/from native (byteswaps if Y isn't
18
///   - Byte order conversions to/from native (byteswaps if Y isn't
19
///     the native endianness): convXXYe(num)
19
///     the native endianness): convXXYe(num)
20
///   - Unaligned reads (16/32-bit only): readXXYe(ptr)
20
///   - Unaligned reads: readXXYe(ptr)
21
///   - Unaligned writes (16/32-bit only): writeXXYe(ptr, num)
21
///   - Unaligned writes: writeXXYe(ptr, num)
22
///   - Aligned reads: aligned_readXXYe(ptr)
22
///   - Aligned reads: aligned_readXXYe(ptr)
23
///   - Aligned writes: aligned_writeXXYe(ptr, num)
23
///   - Aligned writes: aligned_writeXXYe(ptr, num)
24
///
24
///
Lines 52-57 Link Here
52
// and such functions.
52
// and such functions.
53
#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500)
53
#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500)
54
#	include <immintrin.h>
54
#	include <immintrin.h>
55
// Only include <intrin.h> when it is needed. GCC and Clang can both
56
// use __builtin's, so we only need Windows instrincs when using MSVC.
57
// GCC and Clang can set _MSC_VER on Windows, so we need to exclude these
58
// cases explicitly.
59
#elif defined(_MSC_VER) && !TUKLIB_GNUC_REQ(3, 4) && !defined(__clang__)
60
#	include <intrin.h>
55
#endif
61
#endif
56
62
57
63
Lines 343-348 Link Here
343
}
349
}
344
350
345
351
352
static inline uint64_t
353
read64be(const uint8_t *buf)
354
{
355
#if defined(WORDS_BIGENDIAN) || defined(TUKLIB_FAST_UNALIGNED_ACCESS)
356
	uint64_t num = read64ne(buf);
357
	return conv64be(num);
358
#else
359
	uint64_t num = (uint64_t)buf[0] << 56;
360
	num |= (uint64_t)buf[1] << 48;
361
	num |= (uint64_t)buf[2] << 40;
362
	num |= (uint64_t)buf[3] << 32;
363
	num |= (uint64_t)buf[4] << 24;
364
	num |= (uint64_t)buf[5] << 16;
365
	num |= (uint64_t)buf[6] << 8;
366
	num |= (uint64_t)buf[7];
367
	return num;
368
#endif
369
}
370
371
372
static inline uint64_t
373
read64le(const uint8_t *buf)
374
{
375
#if !defined(WORDS_BIGENDIAN) || defined(TUKLIB_FAST_UNALIGNED_ACCESS)
376
	uint64_t num = read64ne(buf);
377
	return conv64le(num);
378
#else
379
	uint64_t num = (uint64_t)buf[0];
380
	num |= (uint64_t)buf[1] << 8;
381
	num |= (uint64_t)buf[2] << 16;
382
	num |= (uint64_t)buf[3] << 24;
383
	num |= (uint64_t)buf[4] << 32;
384
	num |= (uint64_t)buf[5] << 40;
385
	num |= (uint64_t)buf[6] << 48;
386
	num |= (uint64_t)buf[7] << 56;
387
	return num;
388
#endif
389
}
390
391
346
// NOTE: Possible byte swapping must be done in a macro to allow the compiler
392
// NOTE: Possible byte swapping must be done in a macro to allow the compiler
347
// to optimize byte swapping of constants when using glibc's or *BSD's
393
// to optimize byte swapping of constants when using glibc's or *BSD's
348
// byte swapping macros. The actual write is done in an inline function
394
// byte swapping macros. The actual write is done in an inline function
Lines 350-360 Link Here
350
#if defined(WORDS_BIGENDIAN) || defined(TUKLIB_FAST_UNALIGNED_ACCESS)
396
#if defined(WORDS_BIGENDIAN) || defined(TUKLIB_FAST_UNALIGNED_ACCESS)
351
#	define write16be(buf, num) write16ne(buf, conv16be(num))
397
#	define write16be(buf, num) write16ne(buf, conv16be(num))
352
#	define write32be(buf, num) write32ne(buf, conv32be(num))
398
#	define write32be(buf, num) write32ne(buf, conv32be(num))
399
#	define write64be(buf, num) write64ne(buf, conv64be(num))
353
#endif
400
#endif
354
401
355
#if !defined(WORDS_BIGENDIAN) || defined(TUKLIB_FAST_UNALIGNED_ACCESS)
402
#if !defined(WORDS_BIGENDIAN) || defined(TUKLIB_FAST_UNALIGNED_ACCESS)
356
#	define write16le(buf, num) write16ne(buf, conv16le(num))
403
#	define write16le(buf, num) write16ne(buf, conv16le(num))
357
#	define write32le(buf, num) write32ne(buf, conv32le(num))
404
#	define write32le(buf, num) write32ne(buf, conv32le(num))
405
#	define write64le(buf, num) write64ne(buf, conv64le(num))
358
#endif
406
#endif
359
407
360
408
Lines 588-594 Link Here
588
#if defined(__INTEL_COMPILER)
636
#if defined(__INTEL_COMPILER)
589
	return _bit_scan_reverse(n);
637
	return _bit_scan_reverse(n);
590
638
591
#elif TUKLIB_GNUC_REQ(3, 4) && UINT_MAX == UINT32_MAX
639
#elif (TUKLIB_GNUC_REQ(3, 4) || defined(__clang__)) && UINT_MAX == UINT32_MAX
592
	// GCC >= 3.4 has __builtin_clz(), which gives good results on
640
	// GCC >= 3.4 has __builtin_clz(), which gives good results on
593
	// multiple architectures. On x86, __builtin_clz() ^ 31U becomes
641
	// multiple architectures. On x86, __builtin_clz() ^ 31U becomes
594
	// either plain BSR (so the XOR gets optimized away) or LZCNT and
642
	// either plain BSR (so the XOR gets optimized away) or LZCNT and
Lines 642-648 Link Here
642
#if defined(__INTEL_COMPILER)
690
#if defined(__INTEL_COMPILER)
643
	return _bit_scan_reverse(n) ^ 31U;
691
	return _bit_scan_reverse(n) ^ 31U;
644
692
645
#elif TUKLIB_GNUC_REQ(3, 4) && UINT_MAX == UINT32_MAX
693
#elif (TUKLIB_GNUC_REQ(3, 4) || defined(__clang__)) && UINT_MAX == UINT32_MAX
646
	return (uint32_t)__builtin_clz(n);
694
	return (uint32_t)__builtin_clz(n);
647
695
648
#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
696
#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
Lines 694-700 Link Here
694
#if defined(__INTEL_COMPILER)
742
#if defined(__INTEL_COMPILER)
695
	return _bit_scan_forward(n);
743
	return _bit_scan_forward(n);
696
744
697
#elif TUKLIB_GNUC_REQ(3, 4) && UINT_MAX >= UINT32_MAX
745
#elif (TUKLIB_GNUC_REQ(3, 4) || defined(__clang__)) && UINT_MAX >= UINT32_MAX
698
	return (uint32_t)__builtin_ctz(n);
746
	return (uint32_t)__builtin_ctz(n);
699
747
700
#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
748
#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
(-)xz-5.2.5/src/common/tuklib_mbstr_fw.c (-1 / +1 lines)
Lines 27-31 Link Here
27
	if (width < (size_t)columns_min)
27
	if (width < (size_t)columns_min)
28
		len += (size_t)columns_min - width;
28
		len += (size_t)columns_min - width;
29
29
30
	return len;
30
	return (int)len;
31
}
31
}
(-)xz-5.2.5/src/common/tuklib_physmem.c (-1 / +19 lines)
Lines 73-78 Link Here
73
#endif
73
#endif
74
74
75
75
76
// With GCC >= 8.1 with -Wextra and Clang >= 13 with -Wcast-function-type
77
// will warn about the Windows-specific code.
78
#if defined(__has_warning)
79
#	if __has_warning("-Wcast-function-type")
80
#		define CAN_DISABLE_WCAST_FUNCTION_TYPE 1
81
#	endif
82
#elif TUKLIB_GNUC_REQ(8,1)
83
#	define CAN_DISABLE_WCAST_FUNCTION_TYPE 1
84
#endif
85
86
76
extern uint64_t
87
extern uint64_t
77
tuklib_physmem(void)
88
tuklib_physmem(void)
78
{
89
{
Lines 84-94 Link Here
84
		// supports reporting values greater than 4 GiB. To keep the
95
		// supports reporting values greater than 4 GiB. To keep the
85
		// code working also on older Windows versions, use
96
		// code working also on older Windows versions, use
86
		// GlobalMemoryStatusEx() conditionally.
97
		// GlobalMemoryStatusEx() conditionally.
87
		HMODULE kernel32 = GetModuleHandle("kernel32.dll");
98
		HMODULE kernel32 = GetModuleHandle(TEXT("kernel32.dll"));
88
		if (kernel32 != NULL) {
99
		if (kernel32 != NULL) {
89
			typedef BOOL (WINAPI *gmse_type)(LPMEMORYSTATUSEX);
100
			typedef BOOL (WINAPI *gmse_type)(LPMEMORYSTATUSEX);
101
#ifdef CAN_DISABLE_WCAST_FUNCTION_TYPE
102
#	pragma GCC diagnostic push
103
#	pragma GCC diagnostic ignored "-Wcast-function-type"
104
#endif
90
			gmse_type gmse = (gmse_type)GetProcAddress(
105
			gmse_type gmse = (gmse_type)GetProcAddress(
91
					kernel32, "GlobalMemoryStatusEx");
106
					kernel32, "GlobalMemoryStatusEx");
107
#ifdef CAN_DISABLE_WCAST_FUNCTION_TYPE
108
#	pragma GCC diagnostic pop
109
#endif
92
			if (gmse != NULL) {
110
			if (gmse != NULL) {
93
				MEMORYSTATUSEX meminfo;
111
				MEMORYSTATUSEX meminfo;
94
				meminfo.dwLength = sizeof(meminfo);
112
				meminfo.dwLength = sizeof(meminfo);
(-)xz-5.2.5/src/common/tuklib_progname.c (-1 / +1 lines)
Lines 14-20 Link Here
14
#include <string.h>
14
#include <string.h>
15
15
16
16
17
#if !HAVE_DECL_PROGRAM_INVOCATION_NAME
17
#ifndef HAVE_PROGRAM_INVOCATION_NAME
18
char *progname = NULL;
18
char *progname = NULL;
19
#endif
19
#endif
20
20
(-)xz-5.2.5/src/common/tuklib_progname.h (-1 / +1 lines)
Lines 18-24 Link Here
18
18
19
TUKLIB_DECLS_BEGIN
19
TUKLIB_DECLS_BEGIN
20
20
21
#if HAVE_DECL_PROGRAM_INVOCATION_NAME
21
#ifdef HAVE_PROGRAM_INVOCATION_NAME
22
#	define progname program_invocation_name
22
#	define progname program_invocation_name
23
#else
23
#else
24
#	define progname TUKLIB_SYMBOL(tuklib_progname)
24
#	define progname TUKLIB_SYMBOL(tuklib_progname)
(-)xz-5.2.5/src/liblzma/Makefile.am (-4 / +8 lines)
Lines 24-35 Link Here
24
	-I$(top_srcdir)/src/liblzma/simple \
24
	-I$(top_srcdir)/src/liblzma/simple \
25
	-I$(top_srcdir)/src/common \
25
	-I$(top_srcdir)/src/common \
26
	-DTUKLIB_SYMBOL_PREFIX=lzma_
26
	-DTUKLIB_SYMBOL_PREFIX=lzma_
27
liblzma_la_LDFLAGS = -no-undefined -version-info 7:5:2
27
liblzma_la_LDFLAGS = -no-undefined -version-info 9:3:4
28
28
29
EXTRA_DIST += liblzma.map validate_map.sh
29
EXTRA_DIST += liblzma_generic.map liblzma_linux.map validate_map.sh
30
if COND_SYMVERS
30
if COND_SYMVERS_GENERIC
31
liblzma_la_LDFLAGS += \
31
liblzma_la_LDFLAGS += \
32
	-Wl,--version-script=$(top_srcdir)/src/liblzma/liblzma.map
32
	-Wl,--version-script=$(top_srcdir)/src/liblzma/liblzma_generic.map
33
endif
34
if COND_SYMVERS_LINUX
35
liblzma_la_LDFLAGS += \
36
	-Wl,--version-script=$(top_srcdir)/src/liblzma/liblzma_linux.map
33
endif
37
endif
34
38
35
liblzma_la_SOURCES += ../common/tuklib_physmem.c
39
liblzma_la_SOURCES += ../common/tuklib_physmem.c
(-)xz-5.2.5/src/liblzma/Makefile.in (-130 / +249 lines)
Lines 1-7 Link Here
1
# Makefile.in generated by automake 1.16.1 from Makefile.am.
1
# Makefile.in generated by automake 1.16.5 from Makefile.am.
2
# @configure_input@
2
# @configure_input@
3
3
4
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
4
# Copyright (C) 1994-2021 Free Software Foundation, Inc.
5
5
6
# This Makefile.in is free software; the Free Software Foundation
6
# This Makefile.in is free software; the Free Software Foundation
7
# gives unlimited permission to copy and/or distribute it,
7
# gives unlimited permission to copy and/or distribute it,
Lines 89-100 Link Here
89
POST_UNINSTALL = :
89
POST_UNINSTALL = :
90
build_triplet = @build@
90
build_triplet = @build@
91
host_triplet = @host@
91
host_triplet = @host@
92
@COND_SYMVERS_TRUE@am__append_1 = \
92
@COND_SYMVERS_GENERIC_TRUE@am__append_1 = \
93
@COND_SYMVERS_TRUE@	-Wl,--version-script=$(top_srcdir)/src/liblzma/liblzma.map
93
@COND_SYMVERS_GENERIC_TRUE@	-Wl,--version-script=$(top_srcdir)/src/liblzma/liblzma_generic.map
94
94
95
@COND_THREADS_TRUE@am__append_2 = ../common/tuklib_cpucores.c
95
@COND_SYMVERS_LINUX_TRUE@am__append_2 = \
96
@COND_THREADS_TRUE@am__append_3 = common/hardware_cputhreads.c
96
@COND_SYMVERS_LINUX_TRUE@	-Wl,--version-script=$(top_srcdir)/src/liblzma/liblzma_linux.map
97
@COND_MAIN_ENCODER_TRUE@am__append_4 = \
97
98
@COND_THREADS_TRUE@am__append_3 = ../common/tuklib_cpucores.c
99
@COND_THREADS_TRUE@am__append_4 = \
100
@COND_THREADS_TRUE@	common/hardware_cputhreads.c \
101
@COND_THREADS_TRUE@	common/outqueue.c \
102
@COND_THREADS_TRUE@	common/outqueue.h
103
104
@COND_MAIN_ENCODER_TRUE@am__append_5 = \
98
@COND_MAIN_ENCODER_TRUE@	common/alone_encoder.c \
105
@COND_MAIN_ENCODER_TRUE@	common/alone_encoder.c \
99
@COND_MAIN_ENCODER_TRUE@	common/block_buffer_encoder.c \
106
@COND_MAIN_ENCODER_TRUE@	common/block_buffer_encoder.c \
100
@COND_MAIN_ENCODER_TRUE@	common/block_buffer_encoder.h \
107
@COND_MAIN_ENCODER_TRUE@	common/block_buffer_encoder.h \
Lines 115-126 Link Here
115
@COND_MAIN_ENCODER_TRUE@	common/stream_flags_encoder.c \
122
@COND_MAIN_ENCODER_TRUE@	common/stream_flags_encoder.c \
116
@COND_MAIN_ENCODER_TRUE@	common/vli_encoder.c
123
@COND_MAIN_ENCODER_TRUE@	common/vli_encoder.c
117
124
118
@COND_MAIN_ENCODER_TRUE@@COND_THREADS_TRUE@am__append_5 = \
125
@COND_MAIN_ENCODER_TRUE@@COND_THREADS_TRUE@am__append_6 = \
119
@COND_MAIN_ENCODER_TRUE@@COND_THREADS_TRUE@	common/outqueue.c \
120
@COND_MAIN_ENCODER_TRUE@@COND_THREADS_TRUE@	common/outqueue.h \
121
@COND_MAIN_ENCODER_TRUE@@COND_THREADS_TRUE@	common/stream_encoder_mt.c
126
@COND_MAIN_ENCODER_TRUE@@COND_THREADS_TRUE@	common/stream_encoder_mt.c
122
127
123
@COND_MAIN_DECODER_TRUE@am__append_6 = \
128
@COND_MAIN_ENCODER_TRUE@@COND_MICROLZMA_TRUE@am__append_7 = \
129
@COND_MAIN_ENCODER_TRUE@@COND_MICROLZMA_TRUE@	common/microlzma_encoder.c
130
131
@COND_MAIN_DECODER_TRUE@am__append_8 = \
124
@COND_MAIN_DECODER_TRUE@	common/alone_decoder.c \
132
@COND_MAIN_DECODER_TRUE@	common/alone_decoder.c \
125
@COND_MAIN_DECODER_TRUE@	common/alone_decoder.h \
133
@COND_MAIN_DECODER_TRUE@	common/alone_decoder.h \
126
@COND_MAIN_DECODER_TRUE@	common/auto_decoder.c \
134
@COND_MAIN_DECODER_TRUE@	common/auto_decoder.c \
Lines 129-139 Link Here
129
@COND_MAIN_DECODER_TRUE@	common/block_decoder.h \
137
@COND_MAIN_DECODER_TRUE@	common/block_decoder.h \
130
@COND_MAIN_DECODER_TRUE@	common/block_header_decoder.c \
138
@COND_MAIN_DECODER_TRUE@	common/block_header_decoder.c \
131
@COND_MAIN_DECODER_TRUE@	common/easy_decoder_memusage.c \
139
@COND_MAIN_DECODER_TRUE@	common/easy_decoder_memusage.c \
140
@COND_MAIN_DECODER_TRUE@	common/file_info.c \
132
@COND_MAIN_DECODER_TRUE@	common/filter_buffer_decoder.c \
141
@COND_MAIN_DECODER_TRUE@	common/filter_buffer_decoder.c \
133
@COND_MAIN_DECODER_TRUE@	common/filter_decoder.c \
142
@COND_MAIN_DECODER_TRUE@	common/filter_decoder.c \
134
@COND_MAIN_DECODER_TRUE@	common/filter_decoder.h \
143
@COND_MAIN_DECODER_TRUE@	common/filter_decoder.h \
135
@COND_MAIN_DECODER_TRUE@	common/filter_flags_decoder.c \
144
@COND_MAIN_DECODER_TRUE@	common/filter_flags_decoder.c \
136
@COND_MAIN_DECODER_TRUE@	common/index_decoder.c \
145
@COND_MAIN_DECODER_TRUE@	common/index_decoder.c \
146
@COND_MAIN_DECODER_TRUE@	common/index_decoder.h \
137
@COND_MAIN_DECODER_TRUE@	common/index_hash.c \
147
@COND_MAIN_DECODER_TRUE@	common/index_hash.c \
138
@COND_MAIN_DECODER_TRUE@	common/stream_buffer_decoder.c \
148
@COND_MAIN_DECODER_TRUE@	common/stream_buffer_decoder.c \
139
@COND_MAIN_DECODER_TRUE@	common/stream_decoder.c \
149
@COND_MAIN_DECODER_TRUE@	common/stream_decoder.c \
Lines 141-179 Link Here
141
@COND_MAIN_DECODER_TRUE@	common/stream_flags_decoder.c \
151
@COND_MAIN_DECODER_TRUE@	common/stream_flags_decoder.c \
142
@COND_MAIN_DECODER_TRUE@	common/vli_decoder.c
152
@COND_MAIN_DECODER_TRUE@	common/vli_decoder.c
143
153
144
@COND_CHECK_CRC32_TRUE@@COND_SMALL_TRUE@am__append_7 = check/crc32_small.c
154
@COND_MAIN_DECODER_TRUE@@COND_THREADS_TRUE@am__append_9 = \
145
@COND_CHECK_CRC32_TRUE@@COND_SMALL_FALSE@am__append_8 = \
155
@COND_MAIN_DECODER_TRUE@@COND_THREADS_TRUE@	common/stream_decoder_mt.c
156
157
@COND_MAIN_DECODER_TRUE@@COND_MICROLZMA_TRUE@am__append_10 = \
158
@COND_MAIN_DECODER_TRUE@@COND_MICROLZMA_TRUE@	common/microlzma_decoder.c
159
160
@COND_LZIP_DECODER_TRUE@@COND_MAIN_DECODER_TRUE@am__append_11 = \
161
@COND_LZIP_DECODER_TRUE@@COND_MAIN_DECODER_TRUE@	common/lzip_decoder.c \
162
@COND_LZIP_DECODER_TRUE@@COND_MAIN_DECODER_TRUE@	common/lzip_decoder.h
163
164
@COND_CHECK_CRC32_TRUE@@COND_SMALL_TRUE@am__append_12 = check/crc32_small.c
165
@COND_CHECK_CRC32_TRUE@@COND_SMALL_FALSE@am__append_13 = \
146
@COND_CHECK_CRC32_TRUE@@COND_SMALL_FALSE@	check/crc32_table.c \
166
@COND_CHECK_CRC32_TRUE@@COND_SMALL_FALSE@	check/crc32_table.c \
147
@COND_CHECK_CRC32_TRUE@@COND_SMALL_FALSE@	check/crc32_table_le.h \
167
@COND_CHECK_CRC32_TRUE@@COND_SMALL_FALSE@	check/crc32_table_le.h \
148
@COND_CHECK_CRC32_TRUE@@COND_SMALL_FALSE@	check/crc32_table_be.h
168
@COND_CHECK_CRC32_TRUE@@COND_SMALL_FALSE@	check/crc32_table_be.h
149
169
150
@COND_ASM_X86_TRUE@@COND_CHECK_CRC32_TRUE@@COND_SMALL_FALSE@am__append_9 = check/crc32_x86.S
170
@COND_ASM_X86_TRUE@@COND_CHECK_CRC32_TRUE@@COND_SMALL_FALSE@am__append_14 = check/crc32_x86.S
151
@COND_ASM_X86_FALSE@@COND_CHECK_CRC32_TRUE@@COND_SMALL_FALSE@am__append_10 = check/crc32_fast.c
171
@COND_ASM_X86_FALSE@@COND_CHECK_CRC32_TRUE@@COND_SMALL_FALSE@am__append_15 = check/crc32_fast.c
152
@COND_CHECK_CRC64_TRUE@@COND_SMALL_TRUE@am__append_11 = check/crc64_small.c
172
@COND_CHECK_CRC64_TRUE@@COND_SMALL_TRUE@am__append_16 = check/crc64_small.c
153
@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@am__append_12 = \
173
@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@am__append_17 = \
154
@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@	check/crc64_table.c \
174
@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@	check/crc64_table.c \
155
@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@	check/crc64_table_le.h \
175
@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@	check/crc64_table_le.h \
156
@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@	check/crc64_table_be.h
176
@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@	check/crc64_table_be.h
157
177
158
@COND_ASM_X86_TRUE@@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@am__append_13 = check/crc64_x86.S
178
@COND_ASM_X86_TRUE@@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@am__append_18 = check/crc64_x86.S
159
@COND_ASM_X86_FALSE@@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@am__append_14 = check/crc64_fast.c
179
@COND_ASM_X86_FALSE@@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@am__append_19 = check/crc64_fast.c
160
@COND_CHECK_SHA256_TRUE@@COND_INTERNAL_SHA256_TRUE@am__append_15 = check/sha256.c
180
@COND_CHECK_SHA256_TRUE@@COND_INTERNAL_SHA256_TRUE@am__append_20 = check/sha256.c
161
@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@am__append_16 = \
181
@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@am__append_21 = \
162
@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@	lz/lz_encoder.c \
182
@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@	lz/lz_encoder.c \
163
@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@	lz/lz_encoder.h \
183
@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@	lz/lz_encoder.h \
164
@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@	lz/lz_encoder_hash.h \
184
@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@	lz/lz_encoder_hash.h \
165
@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@	lz/lz_encoder_hash_table.h \
185
@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@	lz/lz_encoder_hash_table.h \
166
@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@	lz/lz_encoder_mf.c
186
@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@	lz/lz_encoder_mf.c
167
187
168
@COND_DECODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@am__append_17 = \
188
@COND_DECODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@am__append_22 = \
169
@COND_DECODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@	lz/lz_decoder.c \
189
@COND_DECODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@	lz/lz_decoder.c \
170
@COND_DECODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@	lz/lz_decoder.h
190
@COND_DECODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@	lz/lz_decoder.h
171
191
172
@COND_FILTER_LZMA1_TRUE@am__append_18 = lzma/fastpos_tablegen.c \
192
@COND_FILTER_LZMA1_TRUE@am__append_23 = lzma/fastpos_tablegen.c \
173
@COND_FILTER_LZMA1_TRUE@	rangecoder/price_tablegen.c
193
@COND_FILTER_LZMA1_TRUE@	rangecoder/price_tablegen.c
174
@COND_FILTER_LZMA1_TRUE@am__append_19 = lzma/lzma_common.h \
194
@COND_FILTER_LZMA1_TRUE@am__append_24 = \
195
@COND_FILTER_LZMA1_TRUE@	lzma/lzma_common.h \
175
@COND_FILTER_LZMA1_TRUE@	lzma/lzma_encoder_presets.c
196
@COND_FILTER_LZMA1_TRUE@	lzma/lzma_encoder_presets.c
176
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@am__append_20 = \
197
198
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@am__append_25 = \
177
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	lzma/fastpos.h \
199
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	lzma/fastpos.h \
178
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	lzma/lzma_encoder.h \
200
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	lzma/lzma_encoder.h \
179
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	lzma/lzma_encoder.c \
201
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	lzma/lzma_encoder.c \
Lines 181-242 Link Here
181
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	lzma/lzma_encoder_optimum_fast.c \
203
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	lzma/lzma_encoder_optimum_fast.c \
182
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	lzma/lzma_encoder_optimum_normal.c
204
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	lzma/lzma_encoder_optimum_normal.c
183
205
184
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@@COND_SMALL_FALSE@am__append_21 = lzma/fastpos_table.c
206
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@@COND_SMALL_FALSE@am__append_26 = lzma/fastpos_table.c
185
@COND_DECODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@am__append_22 = \
207
@COND_DECODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@am__append_27 = \
186
@COND_DECODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	lzma/lzma_decoder.c \
208
@COND_DECODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	lzma/lzma_decoder.c \
187
@COND_DECODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	lzma/lzma_decoder.h
209
@COND_DECODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	lzma/lzma_decoder.h
188
210
189
@COND_ENCODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@am__append_23 = \
211
@COND_ENCODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@am__append_28 = \
190
@COND_ENCODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@	lzma/lzma2_encoder.c \
212
@COND_ENCODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@	lzma/lzma2_encoder.c \
191
@COND_ENCODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@	lzma/lzma2_encoder.h
213
@COND_ENCODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@	lzma/lzma2_encoder.h
192
214
193
@COND_DECODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@am__append_24 = \
215
@COND_DECODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@am__append_29 = \
194
@COND_DECODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@	lzma/lzma2_decoder.c \
216
@COND_DECODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@	lzma/lzma2_decoder.c \
195
@COND_DECODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@	lzma/lzma2_decoder.h
217
@COND_DECODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@	lzma/lzma2_decoder.h
196
218
197
@COND_FILTER_LZMA1_TRUE@am__append_25 = rangecoder/range_common.h
219
@COND_FILTER_LZMA1_TRUE@am__append_30 = rangecoder/range_common.h
198
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@am__append_26 = \
220
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@am__append_31 = \
199
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	rangecoder/range_encoder.h \
221
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	rangecoder/range_encoder.h \
200
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	rangecoder/price.h \
222
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	rangecoder/price.h \
201
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	rangecoder/price_table.c
223
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	rangecoder/price_table.c
202
224
203
@COND_DECODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@am__append_27 = rangecoder/range_decoder.h
225
@COND_DECODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@am__append_32 = rangecoder/range_decoder.h
204
@COND_FILTER_DELTA_TRUE@am__append_28 = \
226
@COND_FILTER_DELTA_TRUE@am__append_33 = \
205
@COND_FILTER_DELTA_TRUE@	delta/delta_common.c \
227
@COND_FILTER_DELTA_TRUE@	delta/delta_common.c \
206
@COND_FILTER_DELTA_TRUE@	delta/delta_common.h \
228
@COND_FILTER_DELTA_TRUE@	delta/delta_common.h \
207
@COND_FILTER_DELTA_TRUE@	delta/delta_private.h
229
@COND_FILTER_DELTA_TRUE@	delta/delta_private.h
208
230
209
@COND_ENCODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@am__append_29 = \
231
@COND_ENCODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@am__append_34 = \
210
@COND_ENCODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@	delta/delta_encoder.c \
232
@COND_ENCODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@	delta/delta_encoder.c \
211
@COND_ENCODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@	delta/delta_encoder.h
233
@COND_ENCODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@	delta/delta_encoder.h
212
234
213
@COND_DECODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@am__append_30 = \
235
@COND_DECODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@am__append_35 = \
214
@COND_DECODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@	delta/delta_decoder.c \
236
@COND_DECODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@	delta/delta_decoder.c \
215
@COND_DECODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@	delta/delta_decoder.h
237
@COND_DECODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@	delta/delta_decoder.h
216
238
217
@COND_FILTER_SIMPLE_TRUE@am__append_31 = \
239
@COND_FILTER_SIMPLE_TRUE@am__append_36 = \
218
@COND_FILTER_SIMPLE_TRUE@	simple/simple_coder.c \
240
@COND_FILTER_SIMPLE_TRUE@	simple/simple_coder.c \
219
@COND_FILTER_SIMPLE_TRUE@	simple/simple_coder.h \
241
@COND_FILTER_SIMPLE_TRUE@	simple/simple_coder.h \
220
@COND_FILTER_SIMPLE_TRUE@	simple/simple_private.h
242
@COND_FILTER_SIMPLE_TRUE@	simple/simple_private.h
221
243
222
@COND_ENCODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@am__append_32 = \
244
@COND_ENCODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@am__append_37 = \
223
@COND_ENCODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@	simple/simple_encoder.c \
245
@COND_ENCODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@	simple/simple_encoder.c \
224
@COND_ENCODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@	simple/simple_encoder.h
246
@COND_ENCODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@	simple/simple_encoder.h
225
247
226
@COND_DECODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@am__append_33 = \
248
@COND_DECODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@am__append_38 = \
227
@COND_DECODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@	simple/simple_decoder.c \
249
@COND_DECODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@	simple/simple_decoder.c \
228
@COND_DECODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@	simple/simple_decoder.h
250
@COND_DECODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@	simple/simple_decoder.h
229
251
230
@COND_FILTER_SIMPLE_TRUE@@COND_FILTER_X86_TRUE@am__append_34 = simple/x86.c
252
@COND_FILTER_SIMPLE_TRUE@@COND_FILTER_X86_TRUE@am__append_39 = simple/x86.c
231
@COND_FILTER_POWERPC_TRUE@@COND_FILTER_SIMPLE_TRUE@am__append_35 = simple/powerpc.c
253
@COND_FILTER_POWERPC_TRUE@@COND_FILTER_SIMPLE_TRUE@am__append_40 = simple/powerpc.c
232
@COND_FILTER_IA64_TRUE@@COND_FILTER_SIMPLE_TRUE@am__append_36 = simple/ia64.c
254
@COND_FILTER_IA64_TRUE@@COND_FILTER_SIMPLE_TRUE@am__append_41 = simple/ia64.c
233
@COND_FILTER_ARM_TRUE@@COND_FILTER_SIMPLE_TRUE@am__append_37 = simple/arm.c
255
@COND_FILTER_ARM_TRUE@@COND_FILTER_SIMPLE_TRUE@am__append_42 = simple/arm.c
234
@COND_FILTER_ARMTHUMB_TRUE@@COND_FILTER_SIMPLE_TRUE@am__append_38 = simple/armthumb.c
256
@COND_FILTER_ARMTHUMB_TRUE@@COND_FILTER_SIMPLE_TRUE@am__append_43 = simple/armthumb.c
235
@COND_FILTER_SIMPLE_TRUE@@COND_FILTER_SPARC_TRUE@am__append_39 = simple/sparc.c
257
@COND_FILTER_ARM64_TRUE@@COND_FILTER_SIMPLE_TRUE@am__append_44 = simple/arm64.c
236
@COND_W32_TRUE@am__append_40 = liblzma.def liblzma.def.in empty.c
258
@COND_FILTER_SIMPLE_TRUE@@COND_FILTER_SPARC_TRUE@am__append_45 = simple/sparc.c
237
@COND_W32_TRUE@am__append_41 = liblzma_w32res.rc
259
@COND_W32_TRUE@am__append_46 = liblzma.def liblzma.def.in empty.c
238
@COND_W32_TRUE@am__append_42 = -Xlinker --output-def -Xlinker liblzma.def.in
260
@COND_W32_TRUE@am__append_47 = liblzma_w32res.rc
239
@COND_SHARED_TRUE@@COND_W32_TRUE@am__append_43 = liblzma.def
261
@COND_W32_TRUE@am__append_48 = -Xlinker --output-def -Xlinker liblzma.def.in
262
@COND_SHARED_TRUE@@COND_W32_TRUE@am__append_49 = liblzma.def
240
subdir = src/liblzma
263
subdir = src/liblzma
241
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
264
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
242
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_capsicum.m4 \
265
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_capsicum.m4 \
Lines 300-307 Link Here
300
	common/easy_preset.h common/filter_common.c \
323
	common/easy_preset.h common/filter_common.c \
301
	common/filter_common.h common/hardware_physmem.c \
324
	common/filter_common.h common/hardware_physmem.c \
302
	common/index.c common/index.h common/stream_flags_common.c \
325
	common/index.c common/index.h common/stream_flags_common.c \
303
	common/stream_flags_common.h common/vli_size.c \
326
	common/stream_flags_common.h common/string_conversion.c \
304
	common/hardware_cputhreads.c common/alone_encoder.c \
327
	common/vli_size.c common/hardware_cputhreads.c \
328
	common/outqueue.c common/outqueue.h common/alone_encoder.c \
305
	common/block_buffer_encoder.c common/block_buffer_encoder.h \
329
	common/block_buffer_encoder.c common/block_buffer_encoder.h \
306
	common/block_encoder.c common/block_encoder.h \
330
	common/block_encoder.c common/block_encoder.h \
307
	common/block_header_encoder.c common/easy_buffer_encoder.c \
331
	common/block_header_encoder.c common/easy_buffer_encoder.c \
Lines 311-327 Link Here
311
	common/index_encoder.c common/index_encoder.h \
335
	common/index_encoder.c common/index_encoder.h \
312
	common/stream_buffer_encoder.c common/stream_encoder.c \
336
	common/stream_buffer_encoder.c common/stream_encoder.c \
313
	common/stream_flags_encoder.c common/vli_encoder.c \
337
	common/stream_flags_encoder.c common/vli_encoder.c \
314
	common/outqueue.c common/outqueue.h common/stream_encoder_mt.c \
338
	common/stream_encoder_mt.c common/microlzma_encoder.c \
315
	common/alone_decoder.c common/alone_decoder.h \
339
	common/alone_decoder.c common/alone_decoder.h \
316
	common/auto_decoder.c common/block_buffer_decoder.c \
340
	common/auto_decoder.c common/block_buffer_decoder.c \
317
	common/block_decoder.c common/block_decoder.h \
341
	common/block_decoder.c common/block_decoder.h \
318
	common/block_header_decoder.c common/easy_decoder_memusage.c \
342
	common/block_header_decoder.c common/easy_decoder_memusage.c \
319
	common/filter_buffer_decoder.c common/filter_decoder.c \
343
	common/file_info.c common/filter_buffer_decoder.c \
320
	common/filter_decoder.h common/filter_flags_decoder.c \
344
	common/filter_decoder.c common/filter_decoder.h \
321
	common/index_decoder.c common/index_hash.c \
345
	common/filter_flags_decoder.c common/index_decoder.c \
346
	common/index_decoder.h common/index_hash.c \
322
	common/stream_buffer_decoder.c common/stream_decoder.c \
347
	common/stream_buffer_decoder.c common/stream_decoder.c \
323
	common/stream_decoder.h common/stream_flags_decoder.c \
348
	common/stream_decoder.h common/stream_flags_decoder.c \
324
	common/vli_decoder.c check/check.c check/check.h \
349
	common/vli_decoder.c common/stream_decoder_mt.c \
350
	common/microlzma_decoder.c common/lzip_decoder.c \
351
	common/lzip_decoder.h check/check.c check/check.h \
325
	check/crc_macros.h check/crc32_small.c check/crc32_table.c \
352
	check/crc_macros.h check/crc32_small.c check/crc32_table.c \
326
	check/crc32_table_le.h check/crc32_table_be.h \
353
	check/crc32_table_le.h check/crc32_table_be.h \
327
	check/crc32_x86.S check/crc32_fast.c check/crc64_small.c \
354
	check/crc32_x86.S check/crc32_fast.c check/crc64_small.c \
Lines 346-355 Link Here
346
	simple/simple_private.h simple/simple_encoder.c \
373
	simple/simple_private.h simple/simple_encoder.c \
347
	simple/simple_encoder.h simple/simple_decoder.c \
374
	simple/simple_encoder.h simple/simple_decoder.c \
348
	simple/simple_decoder.h simple/x86.c simple/powerpc.c \
375
	simple/simple_decoder.h simple/x86.c simple/powerpc.c \
349
	simple/ia64.c simple/arm.c simple/armthumb.c simple/sparc.c \
376
	simple/ia64.c simple/arm.c simple/armthumb.c simple/arm64.c \
350
	liblzma_w32res.rc
377
	simple/sparc.c liblzma_w32res.rc
351
@COND_THREADS_TRUE@am__objects_1 = liblzma_la-tuklib_cpucores.lo
378
@COND_THREADS_TRUE@am__objects_1 = liblzma_la-tuklib_cpucores.lo
352
@COND_THREADS_TRUE@am__objects_2 = liblzma_la-hardware_cputhreads.lo
379
@COND_THREADS_TRUE@am__objects_2 = liblzma_la-hardware_cputhreads.lo \
380
@COND_THREADS_TRUE@	liblzma_la-outqueue.lo
353
@COND_MAIN_ENCODER_TRUE@am__objects_3 = liblzma_la-alone_encoder.lo \
381
@COND_MAIN_ENCODER_TRUE@am__objects_3 = liblzma_la-alone_encoder.lo \
354
@COND_MAIN_ENCODER_TRUE@	liblzma_la-block_buffer_encoder.lo \
382
@COND_MAIN_ENCODER_TRUE@	liblzma_la-block_buffer_encoder.lo \
355
@COND_MAIN_ENCODER_TRUE@	liblzma_la-block_encoder.lo \
383
@COND_MAIN_ENCODER_TRUE@	liblzma_la-block_encoder.lo \
Lines 365-378 Link Here
365
@COND_MAIN_ENCODER_TRUE@	liblzma_la-stream_encoder.lo \
393
@COND_MAIN_ENCODER_TRUE@	liblzma_la-stream_encoder.lo \
366
@COND_MAIN_ENCODER_TRUE@	liblzma_la-stream_flags_encoder.lo \
394
@COND_MAIN_ENCODER_TRUE@	liblzma_la-stream_flags_encoder.lo \
367
@COND_MAIN_ENCODER_TRUE@	liblzma_la-vli_encoder.lo
395
@COND_MAIN_ENCODER_TRUE@	liblzma_la-vli_encoder.lo
368
@COND_MAIN_ENCODER_TRUE@@COND_THREADS_TRUE@am__objects_4 = liblzma_la-outqueue.lo \
396
@COND_MAIN_ENCODER_TRUE@@COND_THREADS_TRUE@am__objects_4 = liblzma_la-stream_encoder_mt.lo
369
@COND_MAIN_ENCODER_TRUE@@COND_THREADS_TRUE@	liblzma_la-stream_encoder_mt.lo
397
@COND_MAIN_ENCODER_TRUE@@COND_MICROLZMA_TRUE@am__objects_5 = liblzma_la-microlzma_encoder.lo
370
@COND_MAIN_DECODER_TRUE@am__objects_5 = liblzma_la-alone_decoder.lo \
398
@COND_MAIN_DECODER_TRUE@am__objects_6 = liblzma_la-alone_decoder.lo \
371
@COND_MAIN_DECODER_TRUE@	liblzma_la-auto_decoder.lo \
399
@COND_MAIN_DECODER_TRUE@	liblzma_la-auto_decoder.lo \
372
@COND_MAIN_DECODER_TRUE@	liblzma_la-block_buffer_decoder.lo \
400
@COND_MAIN_DECODER_TRUE@	liblzma_la-block_buffer_decoder.lo \
373
@COND_MAIN_DECODER_TRUE@	liblzma_la-block_decoder.lo \
401
@COND_MAIN_DECODER_TRUE@	liblzma_la-block_decoder.lo \
374
@COND_MAIN_DECODER_TRUE@	liblzma_la-block_header_decoder.lo \
402
@COND_MAIN_DECODER_TRUE@	liblzma_la-block_header_decoder.lo \
375
@COND_MAIN_DECODER_TRUE@	liblzma_la-easy_decoder_memusage.lo \
403
@COND_MAIN_DECODER_TRUE@	liblzma_la-easy_decoder_memusage.lo \
404
@COND_MAIN_DECODER_TRUE@	liblzma_la-file_info.lo \
376
@COND_MAIN_DECODER_TRUE@	liblzma_la-filter_buffer_decoder.lo \
405
@COND_MAIN_DECODER_TRUE@	liblzma_la-filter_buffer_decoder.lo \
377
@COND_MAIN_DECODER_TRUE@	liblzma_la-filter_decoder.lo \
406
@COND_MAIN_DECODER_TRUE@	liblzma_la-filter_decoder.lo \
378
@COND_MAIN_DECODER_TRUE@	liblzma_la-filter_flags_decoder.lo \
407
@COND_MAIN_DECODER_TRUE@	liblzma_la-filter_flags_decoder.lo \
Lines 382-441 Link Here
382
@COND_MAIN_DECODER_TRUE@	liblzma_la-stream_decoder.lo \
411
@COND_MAIN_DECODER_TRUE@	liblzma_la-stream_decoder.lo \
383
@COND_MAIN_DECODER_TRUE@	liblzma_la-stream_flags_decoder.lo \
412
@COND_MAIN_DECODER_TRUE@	liblzma_la-stream_flags_decoder.lo \
384
@COND_MAIN_DECODER_TRUE@	liblzma_la-vli_decoder.lo
413
@COND_MAIN_DECODER_TRUE@	liblzma_la-vli_decoder.lo
385
@COND_CHECK_CRC32_TRUE@@COND_SMALL_TRUE@am__objects_6 = liblzma_la-crc32_small.lo
414
@COND_MAIN_DECODER_TRUE@@COND_THREADS_TRUE@am__objects_7 = liblzma_la-stream_decoder_mt.lo
386
@COND_CHECK_CRC32_TRUE@@COND_SMALL_FALSE@am__objects_7 = liblzma_la-crc32_table.lo
415
@COND_MAIN_DECODER_TRUE@@COND_MICROLZMA_TRUE@am__objects_8 = liblzma_la-microlzma_decoder.lo
387
@COND_ASM_X86_TRUE@@COND_CHECK_CRC32_TRUE@@COND_SMALL_FALSE@am__objects_8 = liblzma_la-crc32_x86.lo
416
@COND_LZIP_DECODER_TRUE@@COND_MAIN_DECODER_TRUE@am__objects_9 = liblzma_la-lzip_decoder.lo
388
@COND_ASM_X86_FALSE@@COND_CHECK_CRC32_TRUE@@COND_SMALL_FALSE@am__objects_9 = liblzma_la-crc32_fast.lo
417
@COND_CHECK_CRC32_TRUE@@COND_SMALL_TRUE@am__objects_10 = liblzma_la-crc32_small.lo
389
@COND_CHECK_CRC64_TRUE@@COND_SMALL_TRUE@am__objects_10 = liblzma_la-crc64_small.lo
418
@COND_CHECK_CRC32_TRUE@@COND_SMALL_FALSE@am__objects_11 = liblzma_la-crc32_table.lo
390
@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@am__objects_11 = liblzma_la-crc64_table.lo
419
@COND_ASM_X86_TRUE@@COND_CHECK_CRC32_TRUE@@COND_SMALL_FALSE@am__objects_12 = liblzma_la-crc32_x86.lo
391
@COND_ASM_X86_TRUE@@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@am__objects_12 = liblzma_la-crc64_x86.lo
420
@COND_ASM_X86_FALSE@@COND_CHECK_CRC32_TRUE@@COND_SMALL_FALSE@am__objects_13 = liblzma_la-crc32_fast.lo
392
@COND_ASM_X86_FALSE@@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@am__objects_13 = liblzma_la-crc64_fast.lo
421
@COND_CHECK_CRC64_TRUE@@COND_SMALL_TRUE@am__objects_14 = liblzma_la-crc64_small.lo
393
@COND_CHECK_SHA256_TRUE@@COND_INTERNAL_SHA256_TRUE@am__objects_14 = liblzma_la-sha256.lo
422
@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@am__objects_15 = liblzma_la-crc64_table.lo
394
@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@am__objects_15 = liblzma_la-lz_encoder.lo \
423
@COND_ASM_X86_TRUE@@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@am__objects_16 = liblzma_la-crc64_x86.lo
424
@COND_ASM_X86_FALSE@@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@am__objects_17 = liblzma_la-crc64_fast.lo
425
@COND_CHECK_SHA256_TRUE@@COND_INTERNAL_SHA256_TRUE@am__objects_18 = liblzma_la-sha256.lo
426
@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@am__objects_19 = liblzma_la-lz_encoder.lo \
395
@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@	liblzma_la-lz_encoder_mf.lo
427
@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@	liblzma_la-lz_encoder_mf.lo
396
@COND_DECODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@am__objects_16 = liblzma_la-lz_decoder.lo
428
@COND_DECODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@am__objects_20 = liblzma_la-lz_decoder.lo
397
@COND_FILTER_LZMA1_TRUE@am__objects_17 =  \
429
@COND_FILTER_LZMA1_TRUE@am__objects_21 =  \
398
@COND_FILTER_LZMA1_TRUE@	liblzma_la-lzma_encoder_presets.lo
430
@COND_FILTER_LZMA1_TRUE@	liblzma_la-lzma_encoder_presets.lo
399
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@am__objects_18 = liblzma_la-lzma_encoder.lo \
431
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@am__objects_22 = liblzma_la-lzma_encoder.lo \
400
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	liblzma_la-lzma_encoder_optimum_fast.lo \
432
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	liblzma_la-lzma_encoder_optimum_fast.lo \
401
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	liblzma_la-lzma_encoder_optimum_normal.lo
433
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@	liblzma_la-lzma_encoder_optimum_normal.lo
402
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@@COND_SMALL_FALSE@am__objects_19 = liblzma_la-fastpos_table.lo
434
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@@COND_SMALL_FALSE@am__objects_23 = liblzma_la-fastpos_table.lo
403
@COND_DECODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@am__objects_20 = liblzma_la-lzma_decoder.lo
435
@COND_DECODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@am__objects_24 = liblzma_la-lzma_decoder.lo
404
@COND_ENCODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@am__objects_21 = liblzma_la-lzma2_encoder.lo
436
@COND_ENCODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@am__objects_25 = liblzma_la-lzma2_encoder.lo
405
@COND_DECODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@am__objects_22 = liblzma_la-lzma2_decoder.lo
437
@COND_DECODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@am__objects_26 = liblzma_la-lzma2_decoder.lo
406
am__objects_23 =
438
am__objects_27 =
407
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@am__objects_24 = liblzma_la-price_table.lo
439
@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@am__objects_28 = liblzma_la-price_table.lo
408
@COND_FILTER_DELTA_TRUE@am__objects_25 = liblzma_la-delta_common.lo
440
@COND_FILTER_DELTA_TRUE@am__objects_29 = liblzma_la-delta_common.lo
409
@COND_ENCODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@am__objects_26 = liblzma_la-delta_encoder.lo
441
@COND_ENCODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@am__objects_30 = liblzma_la-delta_encoder.lo
410
@COND_DECODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@am__objects_27 = liblzma_la-delta_decoder.lo
442
@COND_DECODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@am__objects_31 = liblzma_la-delta_decoder.lo
411
@COND_FILTER_SIMPLE_TRUE@am__objects_28 = liblzma_la-simple_coder.lo
443
@COND_FILTER_SIMPLE_TRUE@am__objects_32 = liblzma_la-simple_coder.lo
412
@COND_ENCODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@am__objects_29 = liblzma_la-simple_encoder.lo
444
@COND_ENCODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@am__objects_33 = liblzma_la-simple_encoder.lo
413
@COND_DECODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@am__objects_30 = liblzma_la-simple_decoder.lo
445
@COND_DECODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@am__objects_34 = liblzma_la-simple_decoder.lo
414
@COND_FILTER_SIMPLE_TRUE@@COND_FILTER_X86_TRUE@am__objects_31 = liblzma_la-x86.lo
446
@COND_FILTER_SIMPLE_TRUE@@COND_FILTER_X86_TRUE@am__objects_35 = liblzma_la-x86.lo
415
@COND_FILTER_POWERPC_TRUE@@COND_FILTER_SIMPLE_TRUE@am__objects_32 = liblzma_la-powerpc.lo
447
@COND_FILTER_POWERPC_TRUE@@COND_FILTER_SIMPLE_TRUE@am__objects_36 = liblzma_la-powerpc.lo
416
@COND_FILTER_IA64_TRUE@@COND_FILTER_SIMPLE_TRUE@am__objects_33 = liblzma_la-ia64.lo
448
@COND_FILTER_IA64_TRUE@@COND_FILTER_SIMPLE_TRUE@am__objects_37 = liblzma_la-ia64.lo
417
@COND_FILTER_ARM_TRUE@@COND_FILTER_SIMPLE_TRUE@am__objects_34 = liblzma_la-arm.lo
449
@COND_FILTER_ARM_TRUE@@COND_FILTER_SIMPLE_TRUE@am__objects_38 = liblzma_la-arm.lo
418
@COND_FILTER_ARMTHUMB_TRUE@@COND_FILTER_SIMPLE_TRUE@am__objects_35 = liblzma_la-armthumb.lo
450
@COND_FILTER_ARMTHUMB_TRUE@@COND_FILTER_SIMPLE_TRUE@am__objects_39 = liblzma_la-armthumb.lo
419
@COND_FILTER_SIMPLE_TRUE@@COND_FILTER_SPARC_TRUE@am__objects_36 = liblzma_la-sparc.lo
451
@COND_FILTER_ARM64_TRUE@@COND_FILTER_SIMPLE_TRUE@am__objects_40 = liblzma_la-arm64.lo
420
@COND_W32_TRUE@am__objects_37 = liblzma_w32res.lo
452
@COND_FILTER_SIMPLE_TRUE@@COND_FILTER_SPARC_TRUE@am__objects_41 = liblzma_la-sparc.lo
453
@COND_W32_TRUE@am__objects_42 = liblzma_w32res.lo
421
am_liblzma_la_OBJECTS = liblzma_la-tuklib_physmem.lo $(am__objects_1) \
454
am_liblzma_la_OBJECTS = liblzma_la-tuklib_physmem.lo $(am__objects_1) \
422
	liblzma_la-common.lo liblzma_la-block_util.lo \
455
	liblzma_la-common.lo liblzma_la-block_util.lo \
423
	liblzma_la-easy_preset.lo liblzma_la-filter_common.lo \
456
	liblzma_la-easy_preset.lo liblzma_la-filter_common.lo \
424
	liblzma_la-hardware_physmem.lo liblzma_la-index.lo \
457
	liblzma_la-hardware_physmem.lo liblzma_la-index.lo \
425
	liblzma_la-stream_flags_common.lo liblzma_la-vli_size.lo \
458
	liblzma_la-stream_flags_common.lo \
459
	liblzma_la-string_conversion.lo liblzma_la-vli_size.lo \
426
	$(am__objects_2) $(am__objects_3) $(am__objects_4) \
460
	$(am__objects_2) $(am__objects_3) $(am__objects_4) \
427
	$(am__objects_5) liblzma_la-check.lo $(am__objects_6) \
461
	$(am__objects_5) $(am__objects_6) $(am__objects_7) \
428
	$(am__objects_7) $(am__objects_8) $(am__objects_9) \
462
	$(am__objects_8) $(am__objects_9) liblzma_la-check.lo \
429
	$(am__objects_10) $(am__objects_11) $(am__objects_12) \
463
	$(am__objects_10) $(am__objects_11) $(am__objects_12) \
430
	$(am__objects_13) $(am__objects_14) $(am__objects_15) \
464
	$(am__objects_13) $(am__objects_14) $(am__objects_15) \
431
	$(am__objects_16) $(am__objects_17) $(am__objects_18) \
465
	$(am__objects_16) $(am__objects_17) $(am__objects_18) \
432
	$(am__objects_19) $(am__objects_20) $(am__objects_21) \
466
	$(am__objects_19) $(am__objects_20) $(am__objects_21) \
433
	$(am__objects_22) $(am__objects_23) $(am__objects_24) \
467
	$(am__objects_22) $(am__objects_23) $(am__objects_24) \
434
	$(am__objects_23) $(am__objects_25) $(am__objects_26) \
468
	$(am__objects_25) $(am__objects_26) $(am__objects_27) \
435
	$(am__objects_27) $(am__objects_28) $(am__objects_29) \
469
	$(am__objects_28) $(am__objects_27) $(am__objects_29) \
436
	$(am__objects_30) $(am__objects_31) $(am__objects_32) \
470
	$(am__objects_30) $(am__objects_31) $(am__objects_32) \
437
	$(am__objects_33) $(am__objects_34) $(am__objects_35) \
471
	$(am__objects_33) $(am__objects_34) $(am__objects_35) \
438
	$(am__objects_36) $(am__objects_37)
472
	$(am__objects_36) $(am__objects_37) $(am__objects_38) \
473
	$(am__objects_39) $(am__objects_40) $(am__objects_41) \
474
	$(am__objects_42)
439
liblzma_la_OBJECTS = $(am_liblzma_la_OBJECTS)
475
liblzma_la_OBJECTS = $(am_liblzma_la_OBJECTS)
440
AM_V_lt = $(am__v_lt_@AM_V@)
476
AM_V_lt = $(am__v_lt_@AM_V@)
441
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
477
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
Lines 462-467 Link Here
462
am__depfiles_remade = ./$(DEPDIR)/liblzma_la-alone_decoder.Plo \
498
am__depfiles_remade = ./$(DEPDIR)/liblzma_la-alone_decoder.Plo \
463
	./$(DEPDIR)/liblzma_la-alone_encoder.Plo \
499
	./$(DEPDIR)/liblzma_la-alone_encoder.Plo \
464
	./$(DEPDIR)/liblzma_la-arm.Plo \
500
	./$(DEPDIR)/liblzma_la-arm.Plo \
501
	./$(DEPDIR)/liblzma_la-arm64.Plo \
465
	./$(DEPDIR)/liblzma_la-armthumb.Plo \
502
	./$(DEPDIR)/liblzma_la-armthumb.Plo \
466
	./$(DEPDIR)/liblzma_la-auto_decoder.Plo \
503
	./$(DEPDIR)/liblzma_la-auto_decoder.Plo \
467
	./$(DEPDIR)/liblzma_la-block_buffer_decoder.Plo \
504
	./$(DEPDIR)/liblzma_la-block_buffer_decoder.Plo \
Lines 490-495 Link Here
490
	./$(DEPDIR)/liblzma_la-easy_encoder_memusage.Plo \
527
	./$(DEPDIR)/liblzma_la-easy_encoder_memusage.Plo \
491
	./$(DEPDIR)/liblzma_la-easy_preset.Plo \
528
	./$(DEPDIR)/liblzma_la-easy_preset.Plo \
492
	./$(DEPDIR)/liblzma_la-fastpos_table.Plo \
529
	./$(DEPDIR)/liblzma_la-fastpos_table.Plo \
530
	./$(DEPDIR)/liblzma_la-file_info.Plo \
493
	./$(DEPDIR)/liblzma_la-filter_buffer_decoder.Plo \
531
	./$(DEPDIR)/liblzma_la-filter_buffer_decoder.Plo \
494
	./$(DEPDIR)/liblzma_la-filter_buffer_encoder.Plo \
532
	./$(DEPDIR)/liblzma_la-filter_buffer_encoder.Plo \
495
	./$(DEPDIR)/liblzma_la-filter_common.Plo \
533
	./$(DEPDIR)/liblzma_la-filter_common.Plo \
Lines 507-512 Link Here
507
	./$(DEPDIR)/liblzma_la-lz_decoder.Plo \
545
	./$(DEPDIR)/liblzma_la-lz_decoder.Plo \
508
	./$(DEPDIR)/liblzma_la-lz_encoder.Plo \
546
	./$(DEPDIR)/liblzma_la-lz_encoder.Plo \
509
	./$(DEPDIR)/liblzma_la-lz_encoder_mf.Plo \
547
	./$(DEPDIR)/liblzma_la-lz_encoder_mf.Plo \
548
	./$(DEPDIR)/liblzma_la-lzip_decoder.Plo \
510
	./$(DEPDIR)/liblzma_la-lzma2_decoder.Plo \
549
	./$(DEPDIR)/liblzma_la-lzma2_decoder.Plo \
511
	./$(DEPDIR)/liblzma_la-lzma2_encoder.Plo \
550
	./$(DEPDIR)/liblzma_la-lzma2_encoder.Plo \
512
	./$(DEPDIR)/liblzma_la-lzma_decoder.Plo \
551
	./$(DEPDIR)/liblzma_la-lzma_decoder.Plo \
Lines 514-519 Link Here
514
	./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_fast.Plo \
553
	./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_fast.Plo \
515
	./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_normal.Plo \
554
	./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_normal.Plo \
516
	./$(DEPDIR)/liblzma_la-lzma_encoder_presets.Plo \
555
	./$(DEPDIR)/liblzma_la-lzma_encoder_presets.Plo \
556
	./$(DEPDIR)/liblzma_la-microlzma_decoder.Plo \
557
	./$(DEPDIR)/liblzma_la-microlzma_encoder.Plo \
517
	./$(DEPDIR)/liblzma_la-outqueue.Plo \
558
	./$(DEPDIR)/liblzma_la-outqueue.Plo \
518
	./$(DEPDIR)/liblzma_la-powerpc.Plo \
559
	./$(DEPDIR)/liblzma_la-powerpc.Plo \
519
	./$(DEPDIR)/liblzma_la-price_table.Plo \
560
	./$(DEPDIR)/liblzma_la-price_table.Plo \
Lines 525-535 Link Here
525
	./$(DEPDIR)/liblzma_la-stream_buffer_decoder.Plo \
566
	./$(DEPDIR)/liblzma_la-stream_buffer_decoder.Plo \
526
	./$(DEPDIR)/liblzma_la-stream_buffer_encoder.Plo \
567
	./$(DEPDIR)/liblzma_la-stream_buffer_encoder.Plo \
527
	./$(DEPDIR)/liblzma_la-stream_decoder.Plo \
568
	./$(DEPDIR)/liblzma_la-stream_decoder.Plo \
569
	./$(DEPDIR)/liblzma_la-stream_decoder_mt.Plo \
528
	./$(DEPDIR)/liblzma_la-stream_encoder.Plo \
570
	./$(DEPDIR)/liblzma_la-stream_encoder.Plo \
529
	./$(DEPDIR)/liblzma_la-stream_encoder_mt.Plo \
571
	./$(DEPDIR)/liblzma_la-stream_encoder_mt.Plo \
530
	./$(DEPDIR)/liblzma_la-stream_flags_common.Plo \
572
	./$(DEPDIR)/liblzma_la-stream_flags_common.Plo \
531
	./$(DEPDIR)/liblzma_la-stream_flags_decoder.Plo \
573
	./$(DEPDIR)/liblzma_la-stream_flags_decoder.Plo \
532
	./$(DEPDIR)/liblzma_la-stream_flags_encoder.Plo \
574
	./$(DEPDIR)/liblzma_la-stream_flags_encoder.Plo \
575
	./$(DEPDIR)/liblzma_la-string_conversion.Plo \
533
	./$(DEPDIR)/liblzma_la-tuklib_cpucores.Plo \
576
	./$(DEPDIR)/liblzma_la-tuklib_cpucores.Plo \
534
	./$(DEPDIR)/liblzma_la-tuklib_physmem.Plo \
577
	./$(DEPDIR)/liblzma_la-tuklib_physmem.Plo \
535
	./$(DEPDIR)/liblzma_la-vli_decoder.Plo \
578
	./$(DEPDIR)/liblzma_la-vli_decoder.Plo \
Lines 606-613 Link Here
606
  unique=`for i in $$list; do \
649
  unique=`for i in $$list; do \
607
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
650
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
608
  done | $(am__uniquify_input)`
651
  done | $(am__uniquify_input)`
609
ETAGS = etags
610
CTAGS = ctags
611
DIST_SUBDIRS = $(SUBDIRS)
652
DIST_SUBDIRS = $(SUBDIRS)
612
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/check/Makefile.inc \
653
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/check/Makefile.inc \
613
	$(srcdir)/common/Makefile.inc $(srcdir)/delta/Makefile.inc \
654
	$(srcdir)/common/Makefile.inc $(srcdir)/delta/Makefile.inc \
Lines 660-665 Link Here
660
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
701
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
661
CPP = @CPP@
702
CPP = @CPP@
662
CPPFLAGS = @CPPFLAGS@
703
CPPFLAGS = @CPPFLAGS@
704
CSCOPE = @CSCOPE@
705
CTAGS = @CTAGS@
663
CYGPATH_W = @CYGPATH_W@
706
CYGPATH_W = @CYGPATH_W@
664
DEFS = @DEFS@
707
DEFS = @DEFS@
665
DEPDIR = @DEPDIR@
708
DEPDIR = @DEPDIR@
Lines 670-677 Link Here
670
ECHO_N = @ECHO_N@
713
ECHO_N = @ECHO_N@
671
ECHO_T = @ECHO_T@
714
ECHO_T = @ECHO_T@
672
EGREP = @EGREP@
715
EGREP = @EGREP@
716
ETAGS = @ETAGS@
673
EXEEXT = @EXEEXT@
717
EXEEXT = @EXEEXT@
674
FGREP = @FGREP@
718
FGREP = @FGREP@
719
FILECMD = @FILECMD@
675
GETOPT_H = @GETOPT_H@
720
GETOPT_H = @GETOPT_H@
676
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
721
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
677
GMSGFMT = @GMSGFMT@
722
GMSGFMT = @GMSGFMT@
Lines 724-729 Link Here
724
PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@
769
PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@
725
PTHREAD_CC = @PTHREAD_CC@
770
PTHREAD_CC = @PTHREAD_CC@
726
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
771
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
772
PTHREAD_CXX = @PTHREAD_CXX@
727
PTHREAD_LIBS = @PTHREAD_LIBS@
773
PTHREAD_LIBS = @PTHREAD_LIBS@
728
RANLIB = @RANLIB@
774
RANLIB = @RANLIB@
729
RC = @RC@
775
RC = @RC@
Lines 782-787 Link Here
782
prefix = @prefix@
828
prefix = @prefix@
783
program_transform_name = @program_transform_name@
829
program_transform_name = @program_transform_name@
784
psdir = @psdir@
830
psdir = @psdir@
831
runstatedir = @runstatedir@
785
sbindir = @sbindir@
832
sbindir = @sbindir@
786
sharedstatedir = @sharedstatedir@
833
sharedstatedir = @sharedstatedir@
787
srcdir = @srcdir@
834
srcdir = @srcdir@
Lines 792-822 Link Here
792
top_srcdir = @top_srcdir@
839
top_srcdir = @top_srcdir@
793
xz = @xz@
840
xz = @xz@
794
SUBDIRS = api
841
SUBDIRS = api
795
EXTRA_DIST = liblzma.map validate_map.sh check/crc32_tablegen.c \
842
EXTRA_DIST = liblzma_generic.map liblzma_linux.map validate_map.sh \
796
	check/crc64_tablegen.c $(am__append_18) liblzma.pc.in
843
	check/crc32_tablegen.c check/crc64_tablegen.c $(am__append_23) \
797
CLEANFILES = $(am__append_40)
844
	liblzma.pc.in
798
doc_DATA = $(am__append_43)
845
CLEANFILES = $(am__append_46)
846
doc_DATA = $(am__append_49)
799
lib_LTLIBRARIES = liblzma.la
847
lib_LTLIBRARIES = liblzma.la
800
liblzma_la_SOURCES = ../common/tuklib_physmem.c $(am__append_2) \
848
liblzma_la_SOURCES = ../common/tuklib_physmem.c $(am__append_3) \
801
	common/common.c common/common.h common/memcmplen.h \
849
	common/common.c common/common.h common/memcmplen.h \
802
	common/block_util.c common/easy_preset.c common/easy_preset.h \
850
	common/block_util.c common/easy_preset.c common/easy_preset.h \
803
	common/filter_common.c common/filter_common.h \
851
	common/filter_common.c common/filter_common.h \
804
	common/hardware_physmem.c common/index.c common/index.h \
852
	common/hardware_physmem.c common/index.c common/index.h \
805
	common/stream_flags_common.c common/stream_flags_common.h \
853
	common/stream_flags_common.c common/stream_flags_common.h \
806
	common/vli_size.c $(am__append_3) $(am__append_4) \
854
	common/string_conversion.c common/vli_size.c $(am__append_4) \
807
	$(am__append_5) $(am__append_6) check/check.c check/check.h \
855
	$(am__append_5) $(am__append_6) $(am__append_7) \
808
	check/crc_macros.h $(am__append_7) $(am__append_8) \
856
	$(am__append_8) $(am__append_9) $(am__append_10) \
809
	$(am__append_9) $(am__append_10) $(am__append_11) \
857
	$(am__append_11) check/check.c check/check.h \
810
	$(am__append_12) $(am__append_13) $(am__append_14) \
858
	check/crc_macros.h $(am__append_12) $(am__append_13) \
811
	$(am__append_15) $(am__append_16) $(am__append_17) \
859
	$(am__append_14) $(am__append_15) $(am__append_16) \
812
	$(am__append_19) $(am__append_20) $(am__append_21) \
860
	$(am__append_17) $(am__append_18) $(am__append_19) \
813
	$(am__append_22) $(am__append_23) $(am__append_24) \
861
	$(am__append_20) $(am__append_21) $(am__append_22) \
814
	$(am__append_25) $(am__append_26) $(am__append_27) \
862
	$(am__append_24) $(am__append_25) $(am__append_26) \
815
	$(am__append_28) $(am__append_29) $(am__append_30) \
863
	$(am__append_27) $(am__append_28) $(am__append_29) \
816
	$(am__append_31) $(am__append_32) $(am__append_33) \
864
	$(am__append_30) $(am__append_31) $(am__append_32) \
817
	$(am__append_34) $(am__append_35) $(am__append_36) \
865
	$(am__append_33) $(am__append_34) $(am__append_35) \
818
	$(am__append_37) $(am__append_38) $(am__append_39) \
866
	$(am__append_36) $(am__append_37) $(am__append_38) \
819
	$(am__append_41)
867
	$(am__append_39) $(am__append_40) $(am__append_41) \
868
	$(am__append_42) $(am__append_43) $(am__append_44) \
869
	$(am__append_45) $(am__append_47)
820
liblzma_la_CPPFLAGS = \
870
liblzma_la_CPPFLAGS = \
821
	-I$(top_srcdir)/src/liblzma/api \
871
	-I$(top_srcdir)/src/liblzma/api \
822
	-I$(top_srcdir)/src/liblzma/common \
872
	-I$(top_srcdir)/src/liblzma/common \
Lines 829-836 Link Here
829
	-I$(top_srcdir)/src/common \
879
	-I$(top_srcdir)/src/common \
830
	-DTUKLIB_SYMBOL_PREFIX=lzma_
880
	-DTUKLIB_SYMBOL_PREFIX=lzma_
831
881
832
liblzma_la_LDFLAGS = -no-undefined -version-info 7:5:2 $(am__append_1) \
882
liblzma_la_LDFLAGS = -no-undefined -version-info 9:3:4 $(am__append_1) \
833
	$(am__append_42)
883
	$(am__append_2) $(am__append_48)
834
pkgconfigdir = $(libdir)/pkgconfig
884
pkgconfigdir = $(libdir)/pkgconfig
835
pkgconfig_DATA = liblzma.pc
885
pkgconfig_DATA = liblzma.pc
836
pc_verbose = $(pc_verbose_@AM_V@)
886
pc_verbose = $(pc_verbose_@AM_V@)
Lines 918-923 Link Here
918
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-alone_decoder.Plo@am__quote@ # am--include-marker
968
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-alone_decoder.Plo@am__quote@ # am--include-marker
919
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-alone_encoder.Plo@am__quote@ # am--include-marker
969
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-alone_encoder.Plo@am__quote@ # am--include-marker
920
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-arm.Plo@am__quote@ # am--include-marker
970
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-arm.Plo@am__quote@ # am--include-marker
971
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-arm64.Plo@am__quote@ # am--include-marker
921
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-armthumb.Plo@am__quote@ # am--include-marker
972
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-armthumb.Plo@am__quote@ # am--include-marker
922
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-auto_decoder.Plo@am__quote@ # am--include-marker
973
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-auto_decoder.Plo@am__quote@ # am--include-marker
923
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-block_buffer_decoder.Plo@am__quote@ # am--include-marker
974
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-block_buffer_decoder.Plo@am__quote@ # am--include-marker
Lines 946-951 Link Here
946
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-easy_encoder_memusage.Plo@am__quote@ # am--include-marker
997
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-easy_encoder_memusage.Plo@am__quote@ # am--include-marker
947
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-easy_preset.Plo@am__quote@ # am--include-marker
998
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-easy_preset.Plo@am__quote@ # am--include-marker
948
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-fastpos_table.Plo@am__quote@ # am--include-marker
999
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-fastpos_table.Plo@am__quote@ # am--include-marker
1000
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-file_info.Plo@am__quote@ # am--include-marker
949
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_buffer_decoder.Plo@am__quote@ # am--include-marker
1001
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_buffer_decoder.Plo@am__quote@ # am--include-marker
950
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_buffer_encoder.Plo@am__quote@ # am--include-marker
1002
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_buffer_encoder.Plo@am__quote@ # am--include-marker
951
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_common.Plo@am__quote@ # am--include-marker
1003
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_common.Plo@am__quote@ # am--include-marker
Lines 963-968 Link Here
963
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lz_decoder.Plo@am__quote@ # am--include-marker
1015
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lz_decoder.Plo@am__quote@ # am--include-marker
964
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lz_encoder.Plo@am__quote@ # am--include-marker
1016
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lz_encoder.Plo@am__quote@ # am--include-marker
965
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lz_encoder_mf.Plo@am__quote@ # am--include-marker
1017
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lz_encoder_mf.Plo@am__quote@ # am--include-marker
1018
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzip_decoder.Plo@am__quote@ # am--include-marker
966
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma2_decoder.Plo@am__quote@ # am--include-marker
1019
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma2_decoder.Plo@am__quote@ # am--include-marker
967
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma2_encoder.Plo@am__quote@ # am--include-marker
1020
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma2_encoder.Plo@am__quote@ # am--include-marker
968
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma_decoder.Plo@am__quote@ # am--include-marker
1021
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma_decoder.Plo@am__quote@ # am--include-marker
Lines 970-975 Link Here
970
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_fast.Plo@am__quote@ # am--include-marker
1023
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_fast.Plo@am__quote@ # am--include-marker
971
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_normal.Plo@am__quote@ # am--include-marker
1024
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_normal.Plo@am__quote@ # am--include-marker
972
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma_encoder_presets.Plo@am__quote@ # am--include-marker
1025
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma_encoder_presets.Plo@am__quote@ # am--include-marker
1026
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-microlzma_decoder.Plo@am__quote@ # am--include-marker
1027
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-microlzma_encoder.Plo@am__quote@ # am--include-marker
973
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-outqueue.Plo@am__quote@ # am--include-marker
1028
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-outqueue.Plo@am__quote@ # am--include-marker
974
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-powerpc.Plo@am__quote@ # am--include-marker
1029
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-powerpc.Plo@am__quote@ # am--include-marker
975
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-price_table.Plo@am__quote@ # am--include-marker
1030
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-price_table.Plo@am__quote@ # am--include-marker
Lines 981-991 Link Here
981
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_buffer_decoder.Plo@am__quote@ # am--include-marker
1036
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_buffer_decoder.Plo@am__quote@ # am--include-marker
982
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_buffer_encoder.Plo@am__quote@ # am--include-marker
1037
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_buffer_encoder.Plo@am__quote@ # am--include-marker
983
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_decoder.Plo@am__quote@ # am--include-marker
1038
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_decoder.Plo@am__quote@ # am--include-marker
1039
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_decoder_mt.Plo@am__quote@ # am--include-marker
984
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_encoder.Plo@am__quote@ # am--include-marker
1040
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_encoder.Plo@am__quote@ # am--include-marker
985
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_encoder_mt.Plo@am__quote@ # am--include-marker
1041
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_encoder_mt.Plo@am__quote@ # am--include-marker
986
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_flags_common.Plo@am__quote@ # am--include-marker
1042
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_flags_common.Plo@am__quote@ # am--include-marker
987
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_flags_decoder.Plo@am__quote@ # am--include-marker
1043
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_flags_decoder.Plo@am__quote@ # am--include-marker
988
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_flags_encoder.Plo@am__quote@ # am--include-marker
1044
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_flags_encoder.Plo@am__quote@ # am--include-marker
1045
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-string_conversion.Plo@am__quote@ # am--include-marker
989
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-tuklib_cpucores.Plo@am__quote@ # am--include-marker
1046
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-tuklib_cpucores.Plo@am__quote@ # am--include-marker
990
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-tuklib_physmem.Plo@am__quote@ # am--include-marker
1047
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-tuklib_physmem.Plo@am__quote@ # am--include-marker
991
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-vli_decoder.Plo@am__quote@ # am--include-marker
1048
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-vli_decoder.Plo@am__quote@ # am--include-marker
Lines 1118-1123 Link Here
1118
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1175
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1119
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-stream_flags_common.lo `test -f 'common/stream_flags_common.c' || echo '$(srcdir)/'`common/stream_flags_common.c
1176
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-stream_flags_common.lo `test -f 'common/stream_flags_common.c' || echo '$(srcdir)/'`common/stream_flags_common.c
1120
1177
1178
liblzma_la-string_conversion.lo: common/string_conversion.c
1179
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-string_conversion.lo -MD -MP -MF $(DEPDIR)/liblzma_la-string_conversion.Tpo -c -o liblzma_la-string_conversion.lo `test -f 'common/string_conversion.c' || echo '$(srcdir)/'`common/string_conversion.c
1180
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-string_conversion.Tpo $(DEPDIR)/liblzma_la-string_conversion.Plo
1181
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='common/string_conversion.c' object='liblzma_la-string_conversion.lo' libtool=yes @AMDEPBACKSLASH@
1182
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1183
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-string_conversion.lo `test -f 'common/string_conversion.c' || echo '$(srcdir)/'`common/string_conversion.c
1184
1121
liblzma_la-vli_size.lo: common/vli_size.c
1185
liblzma_la-vli_size.lo: common/vli_size.c
1122
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-vli_size.lo -MD -MP -MF $(DEPDIR)/liblzma_la-vli_size.Tpo -c -o liblzma_la-vli_size.lo `test -f 'common/vli_size.c' || echo '$(srcdir)/'`common/vli_size.c
1186
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-vli_size.lo -MD -MP -MF $(DEPDIR)/liblzma_la-vli_size.Tpo -c -o liblzma_la-vli_size.lo `test -f 'common/vli_size.c' || echo '$(srcdir)/'`common/vli_size.c
1123
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-vli_size.Tpo $(DEPDIR)/liblzma_la-vli_size.Plo
1187
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-vli_size.Tpo $(DEPDIR)/liblzma_la-vli_size.Plo
Lines 1132-1137 Link Here
1132
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1196
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1133
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-hardware_cputhreads.lo `test -f 'common/hardware_cputhreads.c' || echo '$(srcdir)/'`common/hardware_cputhreads.c
1197
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-hardware_cputhreads.lo `test -f 'common/hardware_cputhreads.c' || echo '$(srcdir)/'`common/hardware_cputhreads.c
1134
1198
1199
liblzma_la-outqueue.lo: common/outqueue.c
1200
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-outqueue.lo -MD -MP -MF $(DEPDIR)/liblzma_la-outqueue.Tpo -c -o liblzma_la-outqueue.lo `test -f 'common/outqueue.c' || echo '$(srcdir)/'`common/outqueue.c
1201
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-outqueue.Tpo $(DEPDIR)/liblzma_la-outqueue.Plo
1202
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='common/outqueue.c' object='liblzma_la-outqueue.lo' libtool=yes @AMDEPBACKSLASH@
1203
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1204
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-outqueue.lo `test -f 'common/outqueue.c' || echo '$(srcdir)/'`common/outqueue.c
1205
1135
liblzma_la-alone_encoder.lo: common/alone_encoder.c
1206
liblzma_la-alone_encoder.lo: common/alone_encoder.c
1136
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-alone_encoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-alone_encoder.Tpo -c -o liblzma_la-alone_encoder.lo `test -f 'common/alone_encoder.c' || echo '$(srcdir)/'`common/alone_encoder.c
1207
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-alone_encoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-alone_encoder.Tpo -c -o liblzma_la-alone_encoder.lo `test -f 'common/alone_encoder.c' || echo '$(srcdir)/'`common/alone_encoder.c
1137
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-alone_encoder.Tpo $(DEPDIR)/liblzma_la-alone_encoder.Plo
1208
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-alone_encoder.Tpo $(DEPDIR)/liblzma_la-alone_encoder.Plo
Lines 1237-1249 Link Here
1237
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1308
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1238
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-vli_encoder.lo `test -f 'common/vli_encoder.c' || echo '$(srcdir)/'`common/vli_encoder.c
1309
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-vli_encoder.lo `test -f 'common/vli_encoder.c' || echo '$(srcdir)/'`common/vli_encoder.c
1239
1310
1240
liblzma_la-outqueue.lo: common/outqueue.c
1241
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-outqueue.lo -MD -MP -MF $(DEPDIR)/liblzma_la-outqueue.Tpo -c -o liblzma_la-outqueue.lo `test -f 'common/outqueue.c' || echo '$(srcdir)/'`common/outqueue.c
1242
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-outqueue.Tpo $(DEPDIR)/liblzma_la-outqueue.Plo
1243
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='common/outqueue.c' object='liblzma_la-outqueue.lo' libtool=yes @AMDEPBACKSLASH@
1244
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1245
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-outqueue.lo `test -f 'common/outqueue.c' || echo '$(srcdir)/'`common/outqueue.c
1246
1247
liblzma_la-stream_encoder_mt.lo: common/stream_encoder_mt.c
1311
liblzma_la-stream_encoder_mt.lo: common/stream_encoder_mt.c
1248
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-stream_encoder_mt.lo -MD -MP -MF $(DEPDIR)/liblzma_la-stream_encoder_mt.Tpo -c -o liblzma_la-stream_encoder_mt.lo `test -f 'common/stream_encoder_mt.c' || echo '$(srcdir)/'`common/stream_encoder_mt.c
1312
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-stream_encoder_mt.lo -MD -MP -MF $(DEPDIR)/liblzma_la-stream_encoder_mt.Tpo -c -o liblzma_la-stream_encoder_mt.lo `test -f 'common/stream_encoder_mt.c' || echo '$(srcdir)/'`common/stream_encoder_mt.c
1249
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-stream_encoder_mt.Tpo $(DEPDIR)/liblzma_la-stream_encoder_mt.Plo
1313
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-stream_encoder_mt.Tpo $(DEPDIR)/liblzma_la-stream_encoder_mt.Plo
Lines 1251-1256 Link Here
1251
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1315
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1252
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-stream_encoder_mt.lo `test -f 'common/stream_encoder_mt.c' || echo '$(srcdir)/'`common/stream_encoder_mt.c
1316
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-stream_encoder_mt.lo `test -f 'common/stream_encoder_mt.c' || echo '$(srcdir)/'`common/stream_encoder_mt.c
1253
1317
1318
liblzma_la-microlzma_encoder.lo: common/microlzma_encoder.c
1319
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-microlzma_encoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-microlzma_encoder.Tpo -c -o liblzma_la-microlzma_encoder.lo `test -f 'common/microlzma_encoder.c' || echo '$(srcdir)/'`common/microlzma_encoder.c
1320
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-microlzma_encoder.Tpo $(DEPDIR)/liblzma_la-microlzma_encoder.Plo
1321
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='common/microlzma_encoder.c' object='liblzma_la-microlzma_encoder.lo' libtool=yes @AMDEPBACKSLASH@
1322
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1323
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-microlzma_encoder.lo `test -f 'common/microlzma_encoder.c' || echo '$(srcdir)/'`common/microlzma_encoder.c
1324
1254
liblzma_la-alone_decoder.lo: common/alone_decoder.c
1325
liblzma_la-alone_decoder.lo: common/alone_decoder.c
1255
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-alone_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-alone_decoder.Tpo -c -o liblzma_la-alone_decoder.lo `test -f 'common/alone_decoder.c' || echo '$(srcdir)/'`common/alone_decoder.c
1326
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-alone_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-alone_decoder.Tpo -c -o liblzma_la-alone_decoder.lo `test -f 'common/alone_decoder.c' || echo '$(srcdir)/'`common/alone_decoder.c
1256
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-alone_decoder.Tpo $(DEPDIR)/liblzma_la-alone_decoder.Plo
1327
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-alone_decoder.Tpo $(DEPDIR)/liblzma_la-alone_decoder.Plo
Lines 1293-1298 Link Here
1293
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1364
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1294
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-easy_decoder_memusage.lo `test -f 'common/easy_decoder_memusage.c' || echo '$(srcdir)/'`common/easy_decoder_memusage.c
1365
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-easy_decoder_memusage.lo `test -f 'common/easy_decoder_memusage.c' || echo '$(srcdir)/'`common/easy_decoder_memusage.c
1295
1366
1367
liblzma_la-file_info.lo: common/file_info.c
1368
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-file_info.lo -MD -MP -MF $(DEPDIR)/liblzma_la-file_info.Tpo -c -o liblzma_la-file_info.lo `test -f 'common/file_info.c' || echo '$(srcdir)/'`common/file_info.c
1369
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-file_info.Tpo $(DEPDIR)/liblzma_la-file_info.Plo
1370
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='common/file_info.c' object='liblzma_la-file_info.lo' libtool=yes @AMDEPBACKSLASH@
1371
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1372
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-file_info.lo `test -f 'common/file_info.c' || echo '$(srcdir)/'`common/file_info.c
1373
1296
liblzma_la-filter_buffer_decoder.lo: common/filter_buffer_decoder.c
1374
liblzma_la-filter_buffer_decoder.lo: common/filter_buffer_decoder.c
1297
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-filter_buffer_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-filter_buffer_decoder.Tpo -c -o liblzma_la-filter_buffer_decoder.lo `test -f 'common/filter_buffer_decoder.c' || echo '$(srcdir)/'`common/filter_buffer_decoder.c
1375
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-filter_buffer_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-filter_buffer_decoder.Tpo -c -o liblzma_la-filter_buffer_decoder.lo `test -f 'common/filter_buffer_decoder.c' || echo '$(srcdir)/'`common/filter_buffer_decoder.c
1298
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-filter_buffer_decoder.Tpo $(DEPDIR)/liblzma_la-filter_buffer_decoder.Plo
1376
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-filter_buffer_decoder.Tpo $(DEPDIR)/liblzma_la-filter_buffer_decoder.Plo
Lines 1356-1361 Link Here
1356
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1434
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1357
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-vli_decoder.lo `test -f 'common/vli_decoder.c' || echo '$(srcdir)/'`common/vli_decoder.c
1435
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-vli_decoder.lo `test -f 'common/vli_decoder.c' || echo '$(srcdir)/'`common/vli_decoder.c
1358
1436
1437
liblzma_la-stream_decoder_mt.lo: common/stream_decoder_mt.c
1438
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-stream_decoder_mt.lo -MD -MP -MF $(DEPDIR)/liblzma_la-stream_decoder_mt.Tpo -c -o liblzma_la-stream_decoder_mt.lo `test -f 'common/stream_decoder_mt.c' || echo '$(srcdir)/'`common/stream_decoder_mt.c
1439
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-stream_decoder_mt.Tpo $(DEPDIR)/liblzma_la-stream_decoder_mt.Plo
1440
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='common/stream_decoder_mt.c' object='liblzma_la-stream_decoder_mt.lo' libtool=yes @AMDEPBACKSLASH@
1441
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1442
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-stream_decoder_mt.lo `test -f 'common/stream_decoder_mt.c' || echo '$(srcdir)/'`common/stream_decoder_mt.c
1443
1444
liblzma_la-microlzma_decoder.lo: common/microlzma_decoder.c
1445
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-microlzma_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-microlzma_decoder.Tpo -c -o liblzma_la-microlzma_decoder.lo `test -f 'common/microlzma_decoder.c' || echo '$(srcdir)/'`common/microlzma_decoder.c
1446
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-microlzma_decoder.Tpo $(DEPDIR)/liblzma_la-microlzma_decoder.Plo
1447
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='common/microlzma_decoder.c' object='liblzma_la-microlzma_decoder.lo' libtool=yes @AMDEPBACKSLASH@
1448
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1449
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-microlzma_decoder.lo `test -f 'common/microlzma_decoder.c' || echo '$(srcdir)/'`common/microlzma_decoder.c
1450
1451
liblzma_la-lzip_decoder.lo: common/lzip_decoder.c
1452
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-lzip_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-lzip_decoder.Tpo -c -o liblzma_la-lzip_decoder.lo `test -f 'common/lzip_decoder.c' || echo '$(srcdir)/'`common/lzip_decoder.c
1453
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-lzip_decoder.Tpo $(DEPDIR)/liblzma_la-lzip_decoder.Plo
1454
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='common/lzip_decoder.c' object='liblzma_la-lzip_decoder.lo' libtool=yes @AMDEPBACKSLASH@
1455
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1456
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-lzip_decoder.lo `test -f 'common/lzip_decoder.c' || echo '$(srcdir)/'`common/lzip_decoder.c
1457
1359
liblzma_la-check.lo: check/check.c
1458
liblzma_la-check.lo: check/check.c
1360
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-check.lo -MD -MP -MF $(DEPDIR)/liblzma_la-check.Tpo -c -o liblzma_la-check.lo `test -f 'check/check.c' || echo '$(srcdir)/'`check/check.c
1459
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-check.lo -MD -MP -MF $(DEPDIR)/liblzma_la-check.Tpo -c -o liblzma_la-check.lo `test -f 'check/check.c' || echo '$(srcdir)/'`check/check.c
1361
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-check.Tpo $(DEPDIR)/liblzma_la-check.Plo
1460
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-check.Tpo $(DEPDIR)/liblzma_la-check.Plo
Lines 1573-1578 Link Here
1573
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1672
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1574
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-armthumb.lo `test -f 'simple/armthumb.c' || echo '$(srcdir)/'`simple/armthumb.c
1673
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-armthumb.lo `test -f 'simple/armthumb.c' || echo '$(srcdir)/'`simple/armthumb.c
1575
1674
1675
liblzma_la-arm64.lo: simple/arm64.c
1676
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-arm64.lo -MD -MP -MF $(DEPDIR)/liblzma_la-arm64.Tpo -c -o liblzma_la-arm64.lo `test -f 'simple/arm64.c' || echo '$(srcdir)/'`simple/arm64.c
1677
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-arm64.Tpo $(DEPDIR)/liblzma_la-arm64.Plo
1678
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='simple/arm64.c' object='liblzma_la-arm64.lo' libtool=yes @AMDEPBACKSLASH@
1679
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1680
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-arm64.lo `test -f 'simple/arm64.c' || echo '$(srcdir)/'`simple/arm64.c
1681
1576
liblzma_la-sparc.lo: simple/sparc.c
1682
liblzma_la-sparc.lo: simple/sparc.c
1577
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-sparc.lo -MD -MP -MF $(DEPDIR)/liblzma_la-sparc.Tpo -c -o liblzma_la-sparc.lo `test -f 'simple/sparc.c' || echo '$(srcdir)/'`simple/sparc.c
1683
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-sparc.lo -MD -MP -MF $(DEPDIR)/liblzma_la-sparc.Tpo -c -o liblzma_la-sparc.lo `test -f 'simple/sparc.c' || echo '$(srcdir)/'`simple/sparc.c
1578
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-sparc.Tpo $(DEPDIR)/liblzma_la-sparc.Plo
1684
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-sparc.Tpo $(DEPDIR)/liblzma_la-sparc.Plo
Lines 1726-1732 Link Here
1726
1832
1727
distclean-tags:
1833
distclean-tags:
1728
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
1834
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
1729
1730
distdir: $(BUILT_SOURCES)
1835
distdir: $(BUILT_SOURCES)
1731
	$(MAKE) $(AM_MAKEFLAGS) distdir-am
1836
	$(MAKE) $(AM_MAKEFLAGS) distdir-am
1732
1837
Lines 1833-1838 Link Here
1833
		-rm -f ./$(DEPDIR)/liblzma_la-alone_decoder.Plo
1938
		-rm -f ./$(DEPDIR)/liblzma_la-alone_decoder.Plo
1834
	-rm -f ./$(DEPDIR)/liblzma_la-alone_encoder.Plo
1939
	-rm -f ./$(DEPDIR)/liblzma_la-alone_encoder.Plo
1835
	-rm -f ./$(DEPDIR)/liblzma_la-arm.Plo
1940
	-rm -f ./$(DEPDIR)/liblzma_la-arm.Plo
1941
	-rm -f ./$(DEPDIR)/liblzma_la-arm64.Plo
1836
	-rm -f ./$(DEPDIR)/liblzma_la-armthumb.Plo
1942
	-rm -f ./$(DEPDIR)/liblzma_la-armthumb.Plo
1837
	-rm -f ./$(DEPDIR)/liblzma_la-auto_decoder.Plo
1943
	-rm -f ./$(DEPDIR)/liblzma_la-auto_decoder.Plo
1838
	-rm -f ./$(DEPDIR)/liblzma_la-block_buffer_decoder.Plo
1944
	-rm -f ./$(DEPDIR)/liblzma_la-block_buffer_decoder.Plo
Lines 1861-1866 Link Here
1861
	-rm -f ./$(DEPDIR)/liblzma_la-easy_encoder_memusage.Plo
1967
	-rm -f ./$(DEPDIR)/liblzma_la-easy_encoder_memusage.Plo
1862
	-rm -f ./$(DEPDIR)/liblzma_la-easy_preset.Plo
1968
	-rm -f ./$(DEPDIR)/liblzma_la-easy_preset.Plo
1863
	-rm -f ./$(DEPDIR)/liblzma_la-fastpos_table.Plo
1969
	-rm -f ./$(DEPDIR)/liblzma_la-fastpos_table.Plo
1970
	-rm -f ./$(DEPDIR)/liblzma_la-file_info.Plo
1864
	-rm -f ./$(DEPDIR)/liblzma_la-filter_buffer_decoder.Plo
1971
	-rm -f ./$(DEPDIR)/liblzma_la-filter_buffer_decoder.Plo
1865
	-rm -f ./$(DEPDIR)/liblzma_la-filter_buffer_encoder.Plo
1972
	-rm -f ./$(DEPDIR)/liblzma_la-filter_buffer_encoder.Plo
1866
	-rm -f ./$(DEPDIR)/liblzma_la-filter_common.Plo
1973
	-rm -f ./$(DEPDIR)/liblzma_la-filter_common.Plo
Lines 1878-1883 Link Here
1878
	-rm -f ./$(DEPDIR)/liblzma_la-lz_decoder.Plo
1985
	-rm -f ./$(DEPDIR)/liblzma_la-lz_decoder.Plo
1879
	-rm -f ./$(DEPDIR)/liblzma_la-lz_encoder.Plo
1986
	-rm -f ./$(DEPDIR)/liblzma_la-lz_encoder.Plo
1880
	-rm -f ./$(DEPDIR)/liblzma_la-lz_encoder_mf.Plo
1987
	-rm -f ./$(DEPDIR)/liblzma_la-lz_encoder_mf.Plo
1988
	-rm -f ./$(DEPDIR)/liblzma_la-lzip_decoder.Plo
1881
	-rm -f ./$(DEPDIR)/liblzma_la-lzma2_decoder.Plo
1989
	-rm -f ./$(DEPDIR)/liblzma_la-lzma2_decoder.Plo
1882
	-rm -f ./$(DEPDIR)/liblzma_la-lzma2_encoder.Plo
1990
	-rm -f ./$(DEPDIR)/liblzma_la-lzma2_encoder.Plo
1883
	-rm -f ./$(DEPDIR)/liblzma_la-lzma_decoder.Plo
1991
	-rm -f ./$(DEPDIR)/liblzma_la-lzma_decoder.Plo
Lines 1885-1890 Link Here
1885
	-rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_fast.Plo
1993
	-rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_fast.Plo
1886
	-rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_normal.Plo
1994
	-rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_normal.Plo
1887
	-rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_presets.Plo
1995
	-rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_presets.Plo
1996
	-rm -f ./$(DEPDIR)/liblzma_la-microlzma_decoder.Plo
1997
	-rm -f ./$(DEPDIR)/liblzma_la-microlzma_encoder.Plo
1888
	-rm -f ./$(DEPDIR)/liblzma_la-outqueue.Plo
1998
	-rm -f ./$(DEPDIR)/liblzma_la-outqueue.Plo
1889
	-rm -f ./$(DEPDIR)/liblzma_la-powerpc.Plo
1999
	-rm -f ./$(DEPDIR)/liblzma_la-powerpc.Plo
1890
	-rm -f ./$(DEPDIR)/liblzma_la-price_table.Plo
2000
	-rm -f ./$(DEPDIR)/liblzma_la-price_table.Plo
Lines 1896-1906 Link Here
1896
	-rm -f ./$(DEPDIR)/liblzma_la-stream_buffer_decoder.Plo
2006
	-rm -f ./$(DEPDIR)/liblzma_la-stream_buffer_decoder.Plo
1897
	-rm -f ./$(DEPDIR)/liblzma_la-stream_buffer_encoder.Plo
2007
	-rm -f ./$(DEPDIR)/liblzma_la-stream_buffer_encoder.Plo
1898
	-rm -f ./$(DEPDIR)/liblzma_la-stream_decoder.Plo
2008
	-rm -f ./$(DEPDIR)/liblzma_la-stream_decoder.Plo
2009
	-rm -f ./$(DEPDIR)/liblzma_la-stream_decoder_mt.Plo
1899
	-rm -f ./$(DEPDIR)/liblzma_la-stream_encoder.Plo
2010
	-rm -f ./$(DEPDIR)/liblzma_la-stream_encoder.Plo
1900
	-rm -f ./$(DEPDIR)/liblzma_la-stream_encoder_mt.Plo
2011
	-rm -f ./$(DEPDIR)/liblzma_la-stream_encoder_mt.Plo
1901
	-rm -f ./$(DEPDIR)/liblzma_la-stream_flags_common.Plo
2012
	-rm -f ./$(DEPDIR)/liblzma_la-stream_flags_common.Plo
1902
	-rm -f ./$(DEPDIR)/liblzma_la-stream_flags_decoder.Plo
2013
	-rm -f ./$(DEPDIR)/liblzma_la-stream_flags_decoder.Plo
1903
	-rm -f ./$(DEPDIR)/liblzma_la-stream_flags_encoder.Plo
2014
	-rm -f ./$(DEPDIR)/liblzma_la-stream_flags_encoder.Plo
2015
	-rm -f ./$(DEPDIR)/liblzma_la-string_conversion.Plo
1904
	-rm -f ./$(DEPDIR)/liblzma_la-tuklib_cpucores.Plo
2016
	-rm -f ./$(DEPDIR)/liblzma_la-tuklib_cpucores.Plo
1905
	-rm -f ./$(DEPDIR)/liblzma_la-tuklib_physmem.Plo
2017
	-rm -f ./$(DEPDIR)/liblzma_la-tuklib_physmem.Plo
1906
	-rm -f ./$(DEPDIR)/liblzma_la-vli_decoder.Plo
2018
	-rm -f ./$(DEPDIR)/liblzma_la-vli_decoder.Plo
Lines 1955-1960 Link Here
1955
		-rm -f ./$(DEPDIR)/liblzma_la-alone_decoder.Plo
2067
		-rm -f ./$(DEPDIR)/liblzma_la-alone_decoder.Plo
1956
	-rm -f ./$(DEPDIR)/liblzma_la-alone_encoder.Plo
2068
	-rm -f ./$(DEPDIR)/liblzma_la-alone_encoder.Plo
1957
	-rm -f ./$(DEPDIR)/liblzma_la-arm.Plo
2069
	-rm -f ./$(DEPDIR)/liblzma_la-arm.Plo
2070
	-rm -f ./$(DEPDIR)/liblzma_la-arm64.Plo
1958
	-rm -f ./$(DEPDIR)/liblzma_la-armthumb.Plo
2071
	-rm -f ./$(DEPDIR)/liblzma_la-armthumb.Plo
1959
	-rm -f ./$(DEPDIR)/liblzma_la-auto_decoder.Plo
2072
	-rm -f ./$(DEPDIR)/liblzma_la-auto_decoder.Plo
1960
	-rm -f ./$(DEPDIR)/liblzma_la-block_buffer_decoder.Plo
2073
	-rm -f ./$(DEPDIR)/liblzma_la-block_buffer_decoder.Plo
Lines 1983-1988 Link Here
1983
	-rm -f ./$(DEPDIR)/liblzma_la-easy_encoder_memusage.Plo
2096
	-rm -f ./$(DEPDIR)/liblzma_la-easy_encoder_memusage.Plo
1984
	-rm -f ./$(DEPDIR)/liblzma_la-easy_preset.Plo
2097
	-rm -f ./$(DEPDIR)/liblzma_la-easy_preset.Plo
1985
	-rm -f ./$(DEPDIR)/liblzma_la-fastpos_table.Plo
2098
	-rm -f ./$(DEPDIR)/liblzma_la-fastpos_table.Plo
2099
	-rm -f ./$(DEPDIR)/liblzma_la-file_info.Plo
1986
	-rm -f ./$(DEPDIR)/liblzma_la-filter_buffer_decoder.Plo
2100
	-rm -f ./$(DEPDIR)/liblzma_la-filter_buffer_decoder.Plo
1987
	-rm -f ./$(DEPDIR)/liblzma_la-filter_buffer_encoder.Plo
2101
	-rm -f ./$(DEPDIR)/liblzma_la-filter_buffer_encoder.Plo
1988
	-rm -f ./$(DEPDIR)/liblzma_la-filter_common.Plo
2102
	-rm -f ./$(DEPDIR)/liblzma_la-filter_common.Plo
Lines 2000-2005 Link Here
2000
	-rm -f ./$(DEPDIR)/liblzma_la-lz_decoder.Plo
2114
	-rm -f ./$(DEPDIR)/liblzma_la-lz_decoder.Plo
2001
	-rm -f ./$(DEPDIR)/liblzma_la-lz_encoder.Plo
2115
	-rm -f ./$(DEPDIR)/liblzma_la-lz_encoder.Plo
2002
	-rm -f ./$(DEPDIR)/liblzma_la-lz_encoder_mf.Plo
2116
	-rm -f ./$(DEPDIR)/liblzma_la-lz_encoder_mf.Plo
2117
	-rm -f ./$(DEPDIR)/liblzma_la-lzip_decoder.Plo
2003
	-rm -f ./$(DEPDIR)/liblzma_la-lzma2_decoder.Plo
2118
	-rm -f ./$(DEPDIR)/liblzma_la-lzma2_decoder.Plo
2004
	-rm -f ./$(DEPDIR)/liblzma_la-lzma2_encoder.Plo
2119
	-rm -f ./$(DEPDIR)/liblzma_la-lzma2_encoder.Plo
2005
	-rm -f ./$(DEPDIR)/liblzma_la-lzma_decoder.Plo
2120
	-rm -f ./$(DEPDIR)/liblzma_la-lzma_decoder.Plo
Lines 2007-2012 Link Here
2007
	-rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_fast.Plo
2122
	-rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_fast.Plo
2008
	-rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_normal.Plo
2123
	-rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_normal.Plo
2009
	-rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_presets.Plo
2124
	-rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_presets.Plo
2125
	-rm -f ./$(DEPDIR)/liblzma_la-microlzma_decoder.Plo
2126
	-rm -f ./$(DEPDIR)/liblzma_la-microlzma_encoder.Plo
2010
	-rm -f ./$(DEPDIR)/liblzma_la-outqueue.Plo
2127
	-rm -f ./$(DEPDIR)/liblzma_la-outqueue.Plo
2011
	-rm -f ./$(DEPDIR)/liblzma_la-powerpc.Plo
2128
	-rm -f ./$(DEPDIR)/liblzma_la-powerpc.Plo
2012
	-rm -f ./$(DEPDIR)/liblzma_la-price_table.Plo
2129
	-rm -f ./$(DEPDIR)/liblzma_la-price_table.Plo
Lines 2018-2028 Link Here
2018
	-rm -f ./$(DEPDIR)/liblzma_la-stream_buffer_decoder.Plo
2135
	-rm -f ./$(DEPDIR)/liblzma_la-stream_buffer_decoder.Plo
2019
	-rm -f ./$(DEPDIR)/liblzma_la-stream_buffer_encoder.Plo
2136
	-rm -f ./$(DEPDIR)/liblzma_la-stream_buffer_encoder.Plo
2020
	-rm -f ./$(DEPDIR)/liblzma_la-stream_decoder.Plo
2137
	-rm -f ./$(DEPDIR)/liblzma_la-stream_decoder.Plo
2138
	-rm -f ./$(DEPDIR)/liblzma_la-stream_decoder_mt.Plo
2021
	-rm -f ./$(DEPDIR)/liblzma_la-stream_encoder.Plo
2139
	-rm -f ./$(DEPDIR)/liblzma_la-stream_encoder.Plo
2022
	-rm -f ./$(DEPDIR)/liblzma_la-stream_encoder_mt.Plo
2140
	-rm -f ./$(DEPDIR)/liblzma_la-stream_encoder_mt.Plo
2023
	-rm -f ./$(DEPDIR)/liblzma_la-stream_flags_common.Plo
2141
	-rm -f ./$(DEPDIR)/liblzma_la-stream_flags_common.Plo
2024
	-rm -f ./$(DEPDIR)/liblzma_la-stream_flags_decoder.Plo
2142
	-rm -f ./$(DEPDIR)/liblzma_la-stream_flags_decoder.Plo
2025
	-rm -f ./$(DEPDIR)/liblzma_la-stream_flags_encoder.Plo
2143
	-rm -f ./$(DEPDIR)/liblzma_la-stream_flags_encoder.Plo
2144
	-rm -f ./$(DEPDIR)/liblzma_la-string_conversion.Plo
2026
	-rm -f ./$(DEPDIR)/liblzma_la-tuklib_cpucores.Plo
2145
	-rm -f ./$(DEPDIR)/liblzma_la-tuklib_cpucores.Plo
2027
	-rm -f ./$(DEPDIR)/liblzma_la-tuklib_physmem.Plo
2146
	-rm -f ./$(DEPDIR)/liblzma_la-tuklib_physmem.Plo
2028
	-rm -f ./$(DEPDIR)/liblzma_la-vli_decoder.Plo
2147
	-rm -f ./$(DEPDIR)/liblzma_la-vli_decoder.Plo
(-)xz-5.2.5/src/liblzma/api/Makefile.in (-5 / +8 lines)
Lines 1-7 Link Here
1
# Makefile.in generated by automake 1.16.1 from Makefile.am.
1
# Makefile.in generated by automake 1.16.5 from Makefile.am.
2
# @configure_input@
2
# @configure_input@
3
3
4
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
4
# Copyright (C) 1994-2021 Free Software Foundation, Inc.
5
5
6
# This Makefile.in is free software; the Free Software Foundation
6
# This Makefile.in is free software; the Free Software Foundation
7
# gives unlimited permission to copy and/or distribute it,
7
# gives unlimited permission to copy and/or distribute it,
Lines 180-187 Link Here
180
  unique=`for i in $$list; do \
180
  unique=`for i in $$list; do \
181
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
181
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
182
  done | $(am__uniquify_input)`
182
  done | $(am__uniquify_input)`
183
ETAGS = etags
184
CTAGS = ctags
185
am__DIST_COMMON = $(srcdir)/Makefile.in
183
am__DIST_COMMON = $(srcdir)/Makefile.in
186
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
184
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
187
ACLOCAL = @ACLOCAL@
185
ACLOCAL = @ACLOCAL@
Lines 204-209 Link Here
204
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
202
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
205
CPP = @CPP@
203
CPP = @CPP@
206
CPPFLAGS = @CPPFLAGS@
204
CPPFLAGS = @CPPFLAGS@
205
CSCOPE = @CSCOPE@
206
CTAGS = @CTAGS@
207
CYGPATH_W = @CYGPATH_W@
207
CYGPATH_W = @CYGPATH_W@
208
DEFS = @DEFS@
208
DEFS = @DEFS@
209
DEPDIR = @DEPDIR@
209
DEPDIR = @DEPDIR@
Lines 214-221 Link Here
214
ECHO_N = @ECHO_N@
214
ECHO_N = @ECHO_N@
215
ECHO_T = @ECHO_T@
215
ECHO_T = @ECHO_T@
216
EGREP = @EGREP@
216
EGREP = @EGREP@
217
ETAGS = @ETAGS@
217
EXEEXT = @EXEEXT@
218
EXEEXT = @EXEEXT@
218
FGREP = @FGREP@
219
FGREP = @FGREP@
220
FILECMD = @FILECMD@
219
GETOPT_H = @GETOPT_H@
221
GETOPT_H = @GETOPT_H@
220
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
222
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
221
GMSGFMT = @GMSGFMT@
223
GMSGFMT = @GMSGFMT@
Lines 268-273 Link Here
268
PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@
270
PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@
269
PTHREAD_CC = @PTHREAD_CC@
271
PTHREAD_CC = @PTHREAD_CC@
270
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
272
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
273
PTHREAD_CXX = @PTHREAD_CXX@
271
PTHREAD_LIBS = @PTHREAD_LIBS@
274
PTHREAD_LIBS = @PTHREAD_LIBS@
272
RANLIB = @RANLIB@
275
RANLIB = @RANLIB@
273
RC = @RC@
276
RC = @RC@
Lines 326-331 Link Here
326
prefix = @prefix@
329
prefix = @prefix@
327
program_transform_name = @program_transform_name@
330
program_transform_name = @program_transform_name@
328
psdir = @psdir@
331
psdir = @psdir@
332
runstatedir = @runstatedir@
329
sbindir = @sbindir@
333
sbindir = @sbindir@
330
sharedstatedir = @sharedstatedir@
334
sharedstatedir = @sharedstatedir@
331
srcdir = @srcdir@
335
srcdir = @srcdir@
Lines 466-472 Link Here
466
470
467
distclean-tags:
471
distclean-tags:
468
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
472
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
469
470
distdir: $(BUILT_SOURCES)
473
distdir: $(BUILT_SOURCES)
471
	$(MAKE) $(AM_MAKEFLAGS) distdir-am
474
	$(MAKE) $(AM_MAKEFLAGS) distdir-am
472
475
(-)xz-5.2.5/src/liblzma/api/lzma/base.h (-10 / +99 lines)
Lines 1-6 Link Here
1
/**
1
/**
2
 * \file        lzma/base.h
2
 * \file        lzma/base.h
3
 * \brief       Data types and functions used in many places in liblzma API
3
 * \brief       Data types and functions used in many places in liblzma API
4
 * \note        Never include this file directly. Use <lzma.h> instead.
4
 */
5
 */
5
6
6
/*
7
/*
Lines 8-15 Link Here
8
 *
9
 *
9
 * This file has been put into the public domain.
10
 * This file has been put into the public domain.
10
 * You can do whatever you want with this file.
11
 * You can do whatever you want with this file.
11
 *
12
 * See ../lzma.h for information about liblzma as a whole.
13
 */
12
 */
14
13
15
#ifndef LZMA_H_INTERNAL
14
#ifndef LZMA_H_INTERNAL
Lines 138-150 Link Here
138
		 */
137
		 */
139
138
140
	LZMA_MEMLIMIT_ERROR     = 6,
139
	LZMA_MEMLIMIT_ERROR     = 6,
141
		/**
140
		/**<
142
		 * \brief       Memory usage limit was reached
141
		 * \brief       Memory usage limit was reached
143
		 *
142
		 *
144
		 * Decoder would need more memory than allowed by the
143
		 * Decoder would need more memory than allowed by the
145
		 * specified memory usage limit. To continue decoding,
144
		 * specified memory usage limit. To continue decoding,
146
		 * the memory usage limit has to be increased with
145
		 * the memory usage limit has to be increased with
147
		 * lzma_memlimit_set().
146
		 * lzma_memlimit_set().
147
		 *
148
		 * liblzma 5.2.6 and earlier had a bug in single-threaded .xz
149
		 * decoder (lzma_stream_decoder()) which made it impossible
150
		 * to continue decoding after LZMA_MEMLIMIT_ERROR even if
151
		 * the limit was increased using lzma_memlimit_set().
152
		 * Other decoders worked correctly.
148
		 */
153
		 */
149
154
150
	LZMA_FORMAT_ERROR       = 7,
155
	LZMA_FORMAT_ERROR       = 7,
Lines 234-239 Link Here
234
		 * can be a sign of a bug in liblzma. See the documentation
239
		 * can be a sign of a bug in liblzma. See the documentation
235
		 * how to report bugs.
240
		 * how to report bugs.
236
		 */
241
		 */
242
243
	LZMA_SEEK_NEEDED        = 12,
244
		/**<
245
		 * \brief       Request to change the input file position
246
		 *
247
		 * Some coders can do random access in the input file. The
248
		 * initialization functions of these coders take the file size
249
		 * as an argument. No other coders can return LZMA_SEEK_NEEDED.
250
		 *
251
		 * When this value is returned, the application must seek to
252
		 * the file position given in lzma_stream.seek_pos. This value
253
		 * is guaranteed to never exceed the file size that was
254
		 * specified at the coder initialization.
255
		 *
256
		 * After seeking the application should read new input and
257
		 * pass it normally via lzma_stream.next_in and .avail_in.
258
		 */
259
260
	/*
261
	 * These eumerations may be used internally by liblzma
262
	 * but they will never be returned to applications.
263
	 */
264
	LZMA_RET_INTERNAL1      = 101,
265
	LZMA_RET_INTERNAL2      = 102,
266
	LZMA_RET_INTERNAL3      = 103,
267
	LZMA_RET_INTERNAL4      = 104,
268
	LZMA_RET_INTERNAL5      = 105,
269
	LZMA_RET_INTERNAL6      = 106,
270
	LZMA_RET_INTERNAL7      = 107,
271
	LZMA_RET_INTERNAL8      = 108
237
} lzma_ret;
272
} lzma_ret;
238
273
239
274
Lines 241-247 Link Here
241
 * \brief       The `action' argument for lzma_code()
276
 * \brief       The `action' argument for lzma_code()
242
 *
277
 *
243
 * After the first use of LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, LZMA_FULL_BARRIER,
278
 * After the first use of LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, LZMA_FULL_BARRIER,
244
 * or LZMA_FINISH, the same `action' must is used until lzma_code() returns
279
 * or LZMA_FINISH, the same `action' must be used until lzma_code() returns
245
 * LZMA_STREAM_END. Also, the amount of input (that is, strm->avail_in) must
280
 * LZMA_STREAM_END. Also, the amount of input (that is, strm->avail_in) must
246
 * not be modified by the application until lzma_code() returns
281
 * not be modified by the application until lzma_code() returns
247
 * LZMA_STREAM_END. Changing the `action' or modifying the amount of input
282
 * LZMA_STREAM_END. Changing the `action' or modifying the amount of input
Lines 447-453 Link Here
447
 *
482
 *
448
 * The lzma_stream structure is used for
483
 * The lzma_stream structure is used for
449
 *  - passing pointers to input and output buffers to liblzma;
484
 *  - passing pointers to input and output buffers to liblzma;
450
 *  - defining custom memory hander functions; and
485
 *  - defining custom memory handler functions; and
451
 *  - holding a pointer to coder-specific internal data structures.
486
 *  - holding a pointer to coder-specific internal data structures.
452
 *
487
 *
453
 * Typical usage:
488
 * Typical usage:
Lines 510-524 Link Here
510
	 * you should not touch these, because the names of these variables
545
	 * you should not touch these, because the names of these variables
511
	 * may change.
546
	 * may change.
512
	 */
547
	 */
548
549
	/** \private     Reserved member. */
513
	void *reserved_ptr1;
550
	void *reserved_ptr1;
551
552
	/** \private     Reserved member. */
514
	void *reserved_ptr2;
553
	void *reserved_ptr2;
554
555
	/** \private     Reserved member. */
515
	void *reserved_ptr3;
556
	void *reserved_ptr3;
557
558
	/** \private     Reserved member. */
516
	void *reserved_ptr4;
559
	void *reserved_ptr4;
517
	uint64_t reserved_int1;
560
561
	/**
562
	 * \brief       New seek input position for LZMA_SEEK_NEEDED
563
	 *
564
	 * When lzma_code() returns LZMA_SEEK_NEEDED, the new input position
565
	 * needed by liblzma will be available seek_pos. The value is
566
	 * guaranteed to not exceed the file size that was specified when
567
	 * this lzma_stream was initialized.
568
	 *
569
	 * In all other situations the value of this variable is undefined.
570
	 */
571
	uint64_t seek_pos;
572
573
	/** \private     Reserved member. */
518
	uint64_t reserved_int2;
574
	uint64_t reserved_int2;
575
576
	/** \private     Reserved member. */
519
	size_t reserved_int3;
577
	size_t reserved_int3;
578
579
	/** \private     Reserved member. */
520
	size_t reserved_int4;
580
	size_t reserved_int4;
581
582
	/** \private     Reserved member. */
521
	lzma_reserved_enum reserved_enum1;
583
	lzma_reserved_enum reserved_enum1;
584
585
	/** \private     Reserved member. */
522
	lzma_reserved_enum reserved_enum2;
586
	lzma_reserved_enum reserved_enum2;
523
587
524
} lzma_stream;
588
} lzma_stream;
Lines 559-564 Link Here
559
 *
623
 *
560
 * See the description of the coder-specific initialization function to find
624
 * See the description of the coder-specific initialization function to find
561
 * out what `action' values are supported by the coder.
625
 * out what `action' values are supported by the coder.
626
 *
627
 * \param       strm    Pointer to lzma_stream that is at least initialized
628
 *                      with LZMA_STREAM_INIT.
629
 * \param       action  Action for this function to take. Must be a valid
630
 *                      lzma_action enum value.
631
 *
632
 * \return      Any valid lzma_ret. See the lzma_ret enum description for more
633
 *              information.
562
 */
634
 */
563
extern LZMA_API(lzma_ret) lzma_code(lzma_stream *strm, lzma_action action)
635
extern LZMA_API(lzma_ret) lzma_code(lzma_stream *strm, lzma_action action)
564
		lzma_nothrow lzma_attr_warn_unused_result;
636
		lzma_nothrow lzma_attr_warn_unused_result;
Lines 567-581 Link Here
567
/**
639
/**
568
 * \brief       Free memory allocated for the coder data structures
640
 * \brief       Free memory allocated for the coder data structures
569
 *
641
 *
570
 * \param       strm    Pointer to lzma_stream that is at least initialized
571
 *                      with LZMA_STREAM_INIT.
572
 *
573
 * After lzma_end(strm), strm->internal is guaranteed to be NULL. No other
642
 * After lzma_end(strm), strm->internal is guaranteed to be NULL. No other
574
 * members of the lzma_stream structure are touched.
643
 * members of the lzma_stream structure are touched.
575
 *
644
 *
576
 * \note        zlib indicates an error if application end()s unfinished
645
 * \note        zlib indicates an error if application end()s unfinished
577
 *              stream structure. liblzma doesn't do this, and assumes that
646
 *              stream structure. liblzma doesn't do this, and assumes that
578
 *              application knows what it is doing.
647
 *              application knows what it is doing.
648
 *
649
 * \param       strm    Pointer to lzma_stream that is at least initialized
650
 *                      with LZMA_STREAM_INIT.
579
 */
651
 */
580
extern LZMA_API(void) lzma_end(lzma_stream *strm) lzma_nothrow;
652
extern LZMA_API(void) lzma_end(lzma_stream *strm) lzma_nothrow;
581
653
Lines 594-599 Link Here
594
 * mode by taking into account the progress made by each thread. In
666
 * mode by taking into account the progress made by each thread. In
595
 * single-threaded mode *progress_in and *progress_out are set to
667
 * single-threaded mode *progress_in and *progress_out are set to
596
 * strm->total_in and strm->total_out, respectively.
668
 * strm->total_in and strm->total_out, respectively.
669
 *
670
 * \param       strm          Pointer to lzma_stream that is at least
671
 *                            initialized with LZMA_STREAM_INIT.
672
 * \param[out]  progress_in   Pointer to the number of input bytes processed.
673
 * \param[out]  progress_out  Pointer to the number of output bytes processed.
597
 */
674
 */
598
extern LZMA_API(void) lzma_get_progress(lzma_stream *strm,
675
extern LZMA_API(void) lzma_get_progress(lzma_stream *strm,
599
		uint64_t *progress_in, uint64_t *progress_out) lzma_nothrow;
676
		uint64_t *progress_in, uint64_t *progress_out) lzma_nothrow;
Lines 612-617 Link Here
612
 * this may give misleading information if decoding .xz Streams that have
689
 * this may give misleading information if decoding .xz Streams that have
613
 * multiple Blocks, because each Block can have different memory requirements.
690
 * multiple Blocks, because each Block can have different memory requirements.
614
 *
691
 *
692
 * \param       strm    Pointer to lzma_stream that is at least initialized
693
 *                      with LZMA_STREAM_INIT.
694
 *
615
 * \return      How much memory is currently allocated for the filter
695
 * \return      How much memory is currently allocated for the filter
616
 *              decoders. If no filter chain is currently allocated,
696
 *              decoders. If no filter chain is currently allocated,
617
 *              some non-zero value is still returned, which is less than
697
 *              some non-zero value is still returned, which is less than
Lines 631-636 Link Here
631
 * This function is supported only when *strm has been initialized with
711
 * This function is supported only when *strm has been initialized with
632
 * a function that takes a memlimit argument.
712
 * a function that takes a memlimit argument.
633
 *
713
 *
714
 * \param       strm    Pointer to lzma_stream that is at least initialized
715
 *                      with LZMA_STREAM_INIT.
716
 *
634
 * \return      On success, the current memory usage limit is returned
717
 * \return      On success, the current memory usage limit is returned
635
 *              (always non-zero). On error, zero is returned.
718
 *              (always non-zero). On error, zero is returned.
636
 */
719
 */
Lines 649-655 Link Here
649
 * return LZMA_OK. Later versions treat 0 as if 1 had been specified (so
732
 * return LZMA_OK. Later versions treat 0 as if 1 had been specified (so
650
 * lzma_memlimit_get() will return 1 even if you specify 0 here).
733
 * lzma_memlimit_get() will return 1 even if you specify 0 here).
651
 *
734
 *
652
 * \return      - LZMA_OK: New memory usage limit successfully set.
735
 * liblzma 5.2.6 and earlier had a bug in single-threaded .xz decoder
736
 * (lzma_stream_decoder()) which made it impossible to continue decoding
737
 * after LZMA_MEMLIMIT_ERROR even if the limit was increased using
738
 * lzma_memlimit_set(). Other decoders worked correctly.
739
 *
740
 * \return      Possible lzma_ret values:
741
 *              - LZMA_OK: New memory usage limit successfully set.
653
 *              - LZMA_MEMLIMIT_ERROR: The new limit is too small.
742
 *              - LZMA_MEMLIMIT_ERROR: The new limit is too small.
654
 *                The limit was not changed.
743
 *                The limit was not changed.
655
 *              - LZMA_PROG_ERROR: Invalid arguments, e.g. *strm doesn't
744
 *              - LZMA_PROG_ERROR: Invalid arguments, e.g. *strm doesn't
(-)xz-5.2.5/src/liblzma/api/lzma/bcj.h (-20 / +24 lines)
Lines 1-6 Link Here
1
/**
1
/**
2
 * \file        lzma/bcj.h
2
 * \file        lzma/bcj.h
3
 * \brief       Branch/Call/Jump conversion filters
3
 * \brief       Branch/Call/Jump conversion filters
4
 * \note        Never include this file directly. Use <lzma.h> instead.
4
 */
5
 */
5
6
6
/*
7
/*
Lines 8-15 Link Here
8
 *
9
 *
9
 * This file has been put into the public domain.
10
 * This file has been put into the public domain.
10
 * You can do whatever you want with this file.
11
 * You can do whatever you want with this file.
11
 *
12
 * See ../lzma.h for information about liblzma as a whole.
13
 */
12
 */
14
13
15
#ifndef LZMA_H_INTERNAL
14
#ifndef LZMA_H_INTERNAL
Lines 19-53 Link Here
19
18
20
/* Filter IDs for lzma_filter.id */
19
/* Filter IDs for lzma_filter.id */
21
20
21
/**
22
 * \brief       Filter for x86 binaries
23
 */
22
#define LZMA_FILTER_X86         LZMA_VLI_C(0x04)
24
#define LZMA_FILTER_X86         LZMA_VLI_C(0x04)
23
	/**<
24
	 * Filter for x86 binaries
25
	 */
26
25
26
/**
27
 * \brief       Filter for Big endian PowerPC binaries
28
 */
27
#define LZMA_FILTER_POWERPC     LZMA_VLI_C(0x05)
29
#define LZMA_FILTER_POWERPC     LZMA_VLI_C(0x05)
28
	/**<
29
	 * Filter for Big endian PowerPC binaries
30
	 */
31
30
31
/**
32
 * \brief       Filter for IA-64 (Itanium) binaries
33
 */
32
#define LZMA_FILTER_IA64        LZMA_VLI_C(0x06)
34
#define LZMA_FILTER_IA64        LZMA_VLI_C(0x06)
33
	/**<
34
	 * Filter for IA-64 (Itanium) binaries.
35
	 */
36
35
36
/**
37
 * \brief       Filter for ARM binaries
38
 */
37
#define LZMA_FILTER_ARM         LZMA_VLI_C(0x07)
39
#define LZMA_FILTER_ARM         LZMA_VLI_C(0x07)
38
	/**<
39
	 * Filter for ARM binaries.
40
	 */
41
40
41
/**
42
 * \brief       Filter for ARM-Thumb binaries
43
 */
42
#define LZMA_FILTER_ARMTHUMB    LZMA_VLI_C(0x08)
44
#define LZMA_FILTER_ARMTHUMB    LZMA_VLI_C(0x08)
43
	/**<
44
	 * Filter for ARM-Thumb binaries.
45
	 */
46
45
46
/**
47
 * \brief       Filter for SPARC binaries
48
 */
47
#define LZMA_FILTER_SPARC       LZMA_VLI_C(0x09)
49
#define LZMA_FILTER_SPARC       LZMA_VLI_C(0x09)
48
	/**<
50
49
	 * Filter for SPARC binaries.
51
/**
50
	 */
52
 * \brief       Filter for ARM64 binaries
53
 */
54
#define LZMA_FILTER_ARM64       LZMA_VLI_C(0x0A)
51
55
52
56
53
/**
57
/**
(-)xz-5.2.5/src/liblzma/api/lzma/block.h (-33 / +147 lines)
Lines 1-6 Link Here
1
/**
1
/**
2
 * \file        lzma/block.h
2
 * \file        lzma/block.h
3
 * \brief       .xz Block handling
3
 * \brief       .xz Block handling
4
 * \note        Never include this file directly. Use <lzma.h> instead.
4
 */
5
 */
5
6
6
/*
7
/*
Lines 8-15 Link Here
8
 *
9
 *
9
 * This file has been put into the public domain.
10
 * This file has been put into the public domain.
10
 * You can do whatever you want with this file.
11
 * You can do whatever you want with this file.
11
 *
12
 * See ../lzma.h for information about liblzma as a whole.
13
 */
12
 */
14
13
15
#ifndef LZMA_H_INTERNAL
14
#ifndef LZMA_H_INTERNAL
Lines 32-50 Link Here
32
	 * \brief       Block format version
31
	 * \brief       Block format version
33
	 *
32
	 *
34
	 * To prevent API and ABI breakages when new features are needed,
33
	 * To prevent API and ABI breakages when new features are needed,
35
	 * a version number is used to indicate which fields in this
34
	 * a version number is used to indicate which members in this
36
	 * structure are in use:
35
	 * structure are in use:
37
	 *   - liblzma >= 5.0.0: version = 0 is supported.
36
	 *   - liblzma >= 5.0.0: version = 0 is supported.
38
	 *   - liblzma >= 5.1.4beta: Support for version = 1 was added,
37
	 *   - liblzma >= 5.1.4beta: Support for version = 1 was added,
39
	 *     which adds the ignore_check field.
38
	 *     which adds the ignore_check member.
40
	 *
39
	 *
41
	 * If version is greater than one, most Block related functions
40
	 * If version is greater than one, most Block related functions
42
	 * will return LZMA_OPTIONS_ERROR (lzma_block_header_decode() works
41
	 * will return LZMA_OPTIONS_ERROR (lzma_block_header_decode() works
43
	 * with any version value).
42
	 * with any version value).
44
	 *
43
	 *
45
	 * Read by:
44
	 * Read by:
46
	 *  - All functions that take pointer to lzma_block as argument,
45
	 *  - lzma_block_header_size()
47
	 *    including lzma_block_header_decode().
46
	 *  - lzma_block_header_encode()
47
	 *  - lzma_block_header_decode()
48
	 *  - lzma_block_compressed_size()
49
	 *  - lzma_block_unpadded_size()
50
	 *  - lzma_block_total_size()
51
	 *  - lzma_block_encoder()
52
	 *  - lzma_block_decoder()
53
	 *  - lzma_block_buffer_encode()
54
	 *  - lzma_block_uncomp_encode()
55
	 *  - lzma_block_buffer_decode()
48
	 *
56
	 *
49
	 * Written by:
57
	 * Written by:
50
	 *  - lzma_block_header_decode()
58
	 *  - lzma_block_header_decode()
Lines 52-58 Link Here
52
	uint32_t version;
60
	uint32_t version;
53
61
54
	/**
62
	/**
55
	 * \brief       Size of the Block Header field
63
	 * \brief       Size of the Block Header field in bytes
56
	 *
64
	 *
57
	 * This is always a multiple of four.
65
	 * This is always a multiple of four.
58
	 *
66
	 *
Lines 68-73 Link Here
68
	 * Written by:
76
	 * Written by:
69
	 *  - lzma_block_header_size()
77
	 *  - lzma_block_header_size()
70
	 *  - lzma_block_buffer_encode()
78
	 *  - lzma_block_buffer_encode()
79
	 *  - lzma_block_uncomp_encode()
71
	 */
80
	 */
72
	uint32_t header_size;
81
	uint32_t header_size;
73
#	define LZMA_BLOCK_HEADER_SIZE_MIN 8
82
#	define LZMA_BLOCK_HEADER_SIZE_MIN 8
Lines 143-148 Link Here
143
	 *  - lzma_block_encoder()
152
	 *  - lzma_block_encoder()
144
	 *  - lzma_block_decoder()
153
	 *  - lzma_block_decoder()
145
	 *  - lzma_block_buffer_encode()
154
	 *  - lzma_block_buffer_encode()
155
	 *  - lzma_block_uncomp_encode()
146
	 *  - lzma_block_buffer_decode()
156
	 *  - lzma_block_buffer_decode()
147
	 */
157
	 */
148
	lzma_vli compressed_size;
158
	lzma_vli compressed_size;
Lines 167-172 Link Here
167
	 *  - lzma_block_encoder()
177
	 *  - lzma_block_encoder()
168
	 *  - lzma_block_decoder()
178
	 *  - lzma_block_decoder()
169
	 *  - lzma_block_buffer_encode()
179
	 *  - lzma_block_buffer_encode()
180
	 *  - lzma_block_uncomp_encode()
170
	 *  - lzma_block_buffer_decode()
181
	 *  - lzma_block_buffer_decode()
171
	 */
182
	 */
172
	lzma_vli uncompressed_size;
183
	lzma_vli uncompressed_size;
Lines 212-217 Link Here
212
	 *  - lzma_block_encoder()
223
	 *  - lzma_block_encoder()
213
	 *  - lzma_block_decoder()
224
	 *  - lzma_block_decoder()
214
	 *  - lzma_block_buffer_encode()
225
	 *  - lzma_block_buffer_encode()
226
	 *  - lzma_block_uncomp_encode()
215
	 *  - lzma_block_buffer_decode()
227
	 *  - lzma_block_buffer_decode()
216
	 */
228
	 */
217
	uint8_t raw_check[LZMA_CHECK_SIZE_MAX];
229
	uint8_t raw_check[LZMA_CHECK_SIZE_MAX];
Lines 223-248 Link Here
223
	 * with the currently supported options, so it is safe to leave these
235
	 * with the currently supported options, so it is safe to leave these
224
	 * uninitialized.
236
	 * uninitialized.
225
	 */
237
	 */
238
239
	/** \private     Reserved member. */
226
	void *reserved_ptr1;
240
	void *reserved_ptr1;
241
242
	/** \private     Reserved member. */
227
	void *reserved_ptr2;
243
	void *reserved_ptr2;
244
245
	/** \private     Reserved member. */
228
	void *reserved_ptr3;
246
	void *reserved_ptr3;
247
248
	/** \private     Reserved member. */
229
	uint32_t reserved_int1;
249
	uint32_t reserved_int1;
250
251
	/** \private     Reserved member. */
230
	uint32_t reserved_int2;
252
	uint32_t reserved_int2;
253
254
	/** \private     Reserved member. */
231
	lzma_vli reserved_int3;
255
	lzma_vli reserved_int3;
256
257
	/** \private     Reserved member. */
232
	lzma_vli reserved_int4;
258
	lzma_vli reserved_int4;
259
260
	/** \private     Reserved member. */
233
	lzma_vli reserved_int5;
261
	lzma_vli reserved_int5;
262
263
	/** \private     Reserved member. */
234
	lzma_vli reserved_int6;
264
	lzma_vli reserved_int6;
265
266
	/** \private     Reserved member. */
235
	lzma_vli reserved_int7;
267
	lzma_vli reserved_int7;
268
269
	/** \private     Reserved member. */
236
	lzma_vli reserved_int8;
270
	lzma_vli reserved_int8;
271
272
	/** \private     Reserved member. */
237
	lzma_reserved_enum reserved_enum1;
273
	lzma_reserved_enum reserved_enum1;
274
275
	/** \private     Reserved member. */
238
	lzma_reserved_enum reserved_enum2;
276
	lzma_reserved_enum reserved_enum2;
277
278
	/** \private     Reserved member. */
239
	lzma_reserved_enum reserved_enum3;
279
	lzma_reserved_enum reserved_enum3;
280
281
	/** \private     Reserved member. */
240
	lzma_reserved_enum reserved_enum4;
282
	lzma_reserved_enum reserved_enum4;
241
283
242
	/**
284
	/**
243
	 * \brief       A flag to Block decoder to not verify the Check field
285
	 * \brief       A flag to Block decoder to not verify the Check field
244
	 *
286
	 *
245
	 * This field is supported by liblzma >= 5.1.4beta if .version >= 1.
287
	 * This member is supported by liblzma >= 5.1.4beta if .version >= 1.
246
	 *
288
	 *
247
	 * If this is set to true, the integrity check won't be calculated
289
	 * If this is set to true, the integrity check won't be calculated
248
	 * and verified. Unless you know what you are doing, you should
290
	 * and verified. Unless you know what you are doing, you should
Lines 260-271 Link Here
260
	 */
302
	 */
261
	lzma_bool ignore_check;
303
	lzma_bool ignore_check;
262
304
305
	/** \private     Reserved member. */
263
	lzma_bool reserved_bool2;
306
	lzma_bool reserved_bool2;
307
308
	/** \private     Reserved member. */
264
	lzma_bool reserved_bool3;
309
	lzma_bool reserved_bool3;
310
311
	/** \private     Reserved member. */
265
	lzma_bool reserved_bool4;
312
	lzma_bool reserved_bool4;
313
314
	/** \private     Reserved member. */
266
	lzma_bool reserved_bool5;
315
	lzma_bool reserved_bool5;
316
317
	/** \private     Reserved member. */
267
	lzma_bool reserved_bool6;
318
	lzma_bool reserved_bool6;
319
320
	/** \private     Reserved member. */
268
	lzma_bool reserved_bool7;
321
	lzma_bool reserved_bool7;
322
323
	/** \private     Reserved member. */
269
	lzma_bool reserved_bool8;
324
	lzma_bool reserved_bool8;
270
325
271
} lzma_block;
326
} lzma_block;
Lines 280-286 Link Here
280
 * Note that if the first byte is 0x00, it indicates beginning of Index; use
335
 * Note that if the first byte is 0x00, it indicates beginning of Index; use
281
 * this macro only when the byte is not 0x00.
336
 * this macro only when the byte is not 0x00.
282
 *
337
 *
283
 * There is no encoding macro, because Block Header encoder is enough for that.
338
 * There is no encoding macro because lzma_block_header_size() and
339
 * lzma_block_header_encode() should be used.
284
 */
340
 */
285
#define lzma_block_header_size_decode(b) (((uint32_t)(b) + 1) * 4)
341
#define lzma_block_header_size_decode(b) (((uint32_t)(b) + 1) * 4)
286
342
Lines 294-310 Link Here
294
 * four and doesn't exceed LZMA_BLOCK_HEADER_SIZE_MAX. Increasing header_size
350
 * four and doesn't exceed LZMA_BLOCK_HEADER_SIZE_MAX. Increasing header_size
295
 * just means that lzma_block_header_encode() will add Header Padding.
351
 * just means that lzma_block_header_encode() will add Header Padding.
296
 *
352
 *
297
 * \return      - LZMA_OK: Size calculated successfully and stored to
298
 *                block->header_size.
299
 *              - LZMA_OPTIONS_ERROR: Unsupported version, filters or
300
 *                filter options.
301
 *              - LZMA_PROG_ERROR: Invalid values like compressed_size == 0.
302
 *
303
 * \note        This doesn't check that all the options are valid i.e. this
353
 * \note        This doesn't check that all the options are valid i.e. this
304
 *              may return LZMA_OK even if lzma_block_header_encode() or
354
 *              may return LZMA_OK even if lzma_block_header_encode() or
305
 *              lzma_block_encoder() would fail. If you want to validate the
355
 *              lzma_block_encoder() would fail. If you want to validate the
306
 *              filter chain, consider using lzma_memlimit_encoder() which as
356
 *              filter chain, consider using lzma_memlimit_encoder() which as
307
 *              a side-effect validates the filter chain.
357
 *              a side-effect validates the filter chain.
358
 *
359
 * \param       block   Block options
360
 *
361
 * \return      Possible lzma_ret values:
362
 *              - LZMA_OK: Size calculated successfully and stored to
363
 *                block->header_size.
364
 *              - LZMA_OPTIONS_ERROR: Unsupported version, filters or
365
 *                filter options.
366
 *              - LZMA_PROG_ERROR: Invalid values like compressed_size == 0.
308
 */
367
 */
309
extern LZMA_API(lzma_ret) lzma_block_header_size(lzma_block *block)
368
extern LZMA_API(lzma_ret) lzma_block_header_size(lzma_block *block)
310
		lzma_nothrow lzma_attr_warn_unused_result;
369
		lzma_nothrow lzma_attr_warn_unused_result;
Lines 318-328 Link Here
318
 * lzma_block_header_size() is used, the Block Header will be padded to the
377
 * lzma_block_header_size() is used, the Block Header will be padded to the
319
 * specified size.
378
 * specified size.
320
 *
379
 *
321
 * \param       out         Beginning of the output buffer. This must be
322
 *                          at least block->header_size bytes.
323
 * \param       block       Block options to be encoded.
380
 * \param       block       Block options to be encoded.
381
 * \param[out]  out         Beginning of the output buffer. This must be
382
 *                          at least block->header_size bytes.
324
 *
383
 *
325
 * \return      - LZMA_OK: Encoding was successful. block->header_size
384
 * \return      Possible lzma_ret values:
385
 *              - LZMA_OK: Encoding was successful. block->header_size
326
 *                bytes were written to output buffer.
386
 *                bytes were written to output buffer.
327
 *              - LZMA_OPTIONS_ERROR: Invalid or unsupported options.
387
 *              - LZMA_OPTIONS_ERROR: Invalid or unsupported options.
328
 *              - LZMA_PROG_ERROR: Invalid arguments, for example
388
 *              - LZMA_PROG_ERROR: Invalid arguments, for example
Lines 354-367 Link Here
354
 * block->filters must have been allocated, but they don't need to be
414
 * block->filters must have been allocated, but they don't need to be
355
 * initialized (possible existing filter options are not freed).
415
 * initialized (possible existing filter options are not freed).
356
 *
416
 *
357
 * \param       block       Destination for Block options.
417
 * \param[out]  block       Destination for Block options
358
 * \param       allocator   lzma_allocator for custom allocator functions.
418
 * \param       allocator   lzma_allocator for custom allocator functions.
359
 *                          Set to NULL to use malloc() (and also free()
419
 *                          Set to NULL to use malloc() (and also free()
360
 *                          if an error occurs).
420
 *                          if an error occurs).
361
 * \param       in          Beginning of the input buffer. This must be
421
 * \param       in          Beginning of the input buffer. This must be
362
 *                          at least block->header_size bytes.
422
 *                          at least block->header_size bytes.
363
 *
423
 *
364
 * \return      - LZMA_OK: Decoding was successful. block->header_size
424
 * \return      Possible lzma_ret values:
425
 *              - LZMA_OK: Decoding was successful. block->header_size
365
 *                bytes were read from the input buffer.
426
 *                bytes were read from the input buffer.
366
 *              - LZMA_OPTIONS_ERROR: The Block Header specifies some
427
 *              - LZMA_OPTIONS_ERROR: The Block Header specifies some
367
 *                unsupported options such as unsupported filters. This can
428
 *                unsupported options such as unsupported filters. This can
Lines 398-404 Link Here
398
 *              field so that it can properly validate Compressed Size if it
459
 *              field so that it can properly validate Compressed Size if it
399
 *              was present in Block Header.
460
 *              was present in Block Header.
400
 *
461
 *
401
 * \return      - LZMA_OK: block->compressed_size was set successfully.
462
 * \param       block           Block options: block->header_size must
463
 *                              already be set with lzma_block_header_size().
464
 * \param       unpadded_size   Unpadded Size from the Index field in bytes
465
 *
466
 * \return      Possible lzma_ret values:
467
 *              - LZMA_OK: block->compressed_size was set successfully.
402
 *              - LZMA_DATA_ERROR: unpadded_size is too small compared to
468
 *              - LZMA_DATA_ERROR: unpadded_size is too small compared to
403
 *                block->header_size and lzma_check_size(block->check).
469
 *                block->header_size and lzma_check_size(block->check).
404
 *              - LZMA_PROG_ERROR: Some values are invalid. For example,
470
 *              - LZMA_PROG_ERROR: Some values are invalid. For example,
Lines 419-424 Link Here
419
 * Compressed Size, and size of the Check field. This is where this function
485
 * Compressed Size, and size of the Check field. This is where this function
420
 * is needed.
486
 * is needed.
421
 *
487
 *
488
 * \param       block   Block options: block->header_size must already be
489
 *                      set with lzma_block_header_size().
490
 *
422
 * \return      Unpadded Size on success, or zero on error.
491
 * \return      Unpadded Size on success, or zero on error.
423
 */
492
 */
424
extern LZMA_API(lzma_vli) lzma_block_unpadded_size(const lzma_block *block)
493
extern LZMA_API(lzma_vli) lzma_block_unpadded_size(const lzma_block *block)
Lines 431-436 Link Here
431
 * This is equivalent to lzma_block_unpadded_size() except that the returned
500
 * This is equivalent to lzma_block_unpadded_size() except that the returned
432
 * value includes the size of the Block Padding field.
501
 * value includes the size of the Block Padding field.
433
 *
502
 *
503
 * \param       block   Block options: block->header_size must already be
504
 *                      set with lzma_block_header_size().
505
 *
434
 * \return      On success, total encoded size of the Block. On error,
506
 * \return      On success, total encoded size of the Block. On error,
435
 *              zero is returned.
507
 *              zero is returned.
436
 */
508
 */
Lines 444-450 Link Here
444
 * Valid actions for lzma_code() are LZMA_RUN, LZMA_SYNC_FLUSH (only if the
516
 * Valid actions for lzma_code() are LZMA_RUN, LZMA_SYNC_FLUSH (only if the
445
 * filter chain supports it), and LZMA_FINISH.
517
 * filter chain supports it), and LZMA_FINISH.
446
 *
518
 *
447
 * \return      - LZMA_OK: All good, continue with lzma_code().
519
 * The Block encoder encodes the Block Data, Block Padding, and Check value.
520
 * It does NOT encode the Block Header which can be encoded with
521
 * lzma_block_header_encode().
522
 *
523
 * \param       strm    Pointer to lzma_stream that is at least initialized
524
 *                      with LZMA_STREAM_INIT.
525
 * \param       block   Block options: block->version, block->check,
526
 *                      and block->filters must have been initialized.
527
 *
528
 * \return      Possible lzma_ret values:
529
 *              - LZMA_OK: All good, continue with lzma_code().
448
 *              - LZMA_MEM_ERROR
530
 *              - LZMA_MEM_ERROR
449
 *              - LZMA_OPTIONS_ERROR
531
 *              - LZMA_OPTIONS_ERROR
450
 *              - LZMA_UNSUPPORTED_CHECK: block->check specifies a Check ID
532
 *              - LZMA_UNSUPPORTED_CHECK: block->check specifies a Check ID
Lines 463-472 Link Here
463
 * Valid actions for lzma_code() are LZMA_RUN and LZMA_FINISH. Using
545
 * Valid actions for lzma_code() are LZMA_RUN and LZMA_FINISH. Using
464
 * LZMA_FINISH is not required. It is supported only for convenience.
546
 * LZMA_FINISH is not required. It is supported only for convenience.
465
 *
547
 *
466
 * \return      - LZMA_OK: All good, continue with lzma_code().
548
 * The Block decoder decodes the Block Data, Block Padding, and Check value.
467
 *              - LZMA_UNSUPPORTED_CHECK: Initialization was successful, but
549
 * It does NOT decode the Block Header which can be decoded with
468
 *                the given Check ID is not supported, thus Check will be
550
 * lzma_block_header_decode().
469
 *                ignored.
551
 *
552
 * \param       strm    Pointer to lzma_stream that is at least initialized
553
 *                      with LZMA_STREAM_INIT.
554
 * \param       block   Block options
555
 *
556
 * \return      Possible lzma_ret values:
557
 *              - LZMA_OK: All good, continue with lzma_code().
470
 *              - LZMA_PROG_ERROR
558
 *              - LZMA_PROG_ERROR
471
 *              - LZMA_MEM_ERROR
559
 *              - LZMA_MEM_ERROR
472
 */
560
 */
Lines 480-485 Link Here
480
 *
568
 *
481
 * This is equivalent to lzma_stream_buffer_bound() but for .xz Blocks.
569
 * This is equivalent to lzma_stream_buffer_bound() but for .xz Blocks.
482
 * See the documentation of lzma_stream_buffer_bound().
570
 * See the documentation of lzma_stream_buffer_bound().
571
 *
572
 * \param       uncompressed_size   Size of the data to be encoded with the
573
 *                                  single-call Block encoder.
574
 *
575
 * \return      Maximum output size in bytes for single-call Block encoding.
483
 */
576
 */
484
extern LZMA_API(size_t) lzma_block_buffer_bound(size_t uncompressed_size)
577
extern LZMA_API(size_t) lzma_block_buffer_bound(size_t uncompressed_size)
485
		lzma_nothrow;
578
		lzma_nothrow;
Lines 508-520 Link Here
508
 *                          Set to NULL to use malloc() and free().
601
 *                          Set to NULL to use malloc() and free().
509
 * \param       in          Beginning of the input buffer
602
 * \param       in          Beginning of the input buffer
510
 * \param       in_size     Size of the input buffer
603
 * \param       in_size     Size of the input buffer
511
 * \param       out         Beginning of the output buffer
604
 * \param[out]  out         Beginning of the output buffer
512
 * \param       out_pos     The next byte will be written to out[*out_pos].
605
 * \param[out]  out_pos     The next byte will be written to out[*out_pos].
513
 *                          *out_pos is updated only if encoding succeeds.
606
 *                          *out_pos is updated only if encoding succeeds.
514
 * \param       out_size    Size of the out buffer; the first byte into
607
 * \param       out_size    Size of the out buffer; the first byte into
515
 *                          which no data is written to is out[out_size].
608
 *                          which no data is written to is out[out_size].
516
 *
609
 *
517
 * \return      - LZMA_OK: Encoding was successful.
610
 * \return      Possible lzma_ret values:
611
 *              - LZMA_OK: Encoding was successful.
518
 *              - LZMA_BUF_ERROR: Not enough output buffer space.
612
 *              - LZMA_BUF_ERROR: Not enough output buffer space.
519
 *              - LZMA_UNSUPPORTED_CHECK
613
 *              - LZMA_UNSUPPORTED_CHECK
520
 *              - LZMA_OPTIONS_ERROR
614
 *              - LZMA_OPTIONS_ERROR
Lines 540-545 Link Here
540
 * Since the data won't be compressed, this function ignores block->filters.
634
 * Since the data won't be compressed, this function ignores block->filters.
541
 * This function doesn't take lzma_allocator because this function doesn't
635
 * This function doesn't take lzma_allocator because this function doesn't
542
 * allocate any memory from the heap.
636
 * allocate any memory from the heap.
637
 *
638
 * \param       block       Block options: block->version, block->check,
639
 *                          and block->filters must have been initialized.
640
 * \param       in          Beginning of the input buffer
641
 * \param       in_size     Size of the input buffer
642
 * \param[out]  out         Beginning of the output buffer
643
 * \param[out]  out_pos     The next byte will be written to out[*out_pos].
644
 *                          *out_pos is updated only if encoding succeeds.
645
 * \param       out_size    Size of the out buffer; the first byte into
646
 *                          which no data is written to is out[out_size].
647
 *
648
 * \return      Possible lzma_ret values:
649
 *              - LZMA_OK: Encoding was successful.
650
 *              - LZMA_BUF_ERROR: Not enough output buffer space.
651
 *              - LZMA_UNSUPPORTED_CHECK
652
 *              - LZMA_OPTIONS_ERROR
653
 *              - LZMA_MEM_ERROR
654
 *              - LZMA_DATA_ERROR
655
 *              - LZMA_PROG_ERROR
543
 */
656
 */
544
extern LZMA_API(lzma_ret) lzma_block_uncomp_encode(lzma_block *block,
657
extern LZMA_API(lzma_ret) lzma_block_uncomp_encode(lzma_block *block,
545
		const uint8_t *in, size_t in_size,
658
		const uint8_t *in, size_t in_size,
Lines 553-559 Link Here
553
 * This is single-call equivalent of lzma_block_decoder(), and requires that
666
 * This is single-call equivalent of lzma_block_decoder(), and requires that
554
 * the caller has already decoded Block Header and checked its memory usage.
667
 * the caller has already decoded Block Header and checked its memory usage.
555
 *
668
 *
556
 * \param       block       Block options just like with lzma_block_decoder().
669
 * \param       block       Block options
557
 * \param       allocator   lzma_allocator for custom allocator functions.
670
 * \param       allocator   lzma_allocator for custom allocator functions.
558
 *                          Set to NULL to use malloc() and free().
671
 *                          Set to NULL to use malloc() and free().
559
 * \param       in          Beginning of the input buffer
672
 * \param       in          Beginning of the input buffer
Lines 561-573 Link Here
561
 *                          *in_pos is updated only if decoding succeeds.
674
 *                          *in_pos is updated only if decoding succeeds.
562
 * \param       in_size     Size of the input buffer; the first byte that
675
 * \param       in_size     Size of the input buffer; the first byte that
563
 *                          won't be read is in[in_size].
676
 *                          won't be read is in[in_size].
564
 * \param       out         Beginning of the output buffer
677
 * \param[out]  out         Beginning of the output buffer
565
 * \param       out_pos     The next byte will be written to out[*out_pos].
678
 * \param[out]  out_pos     The next byte will be written to out[*out_pos].
566
 *                          *out_pos is updated only if encoding succeeds.
679
 *                          *out_pos is updated only if encoding succeeds.
567
 * \param       out_size    Size of the out buffer; the first byte into
680
 * \param       out_size    Size of the out buffer; the first byte into
568
 *                          which no data is written to is out[out_size].
681
 *                          which no data is written to is out[out_size].
569
 *
682
 *
570
 * \return      - LZMA_OK: Decoding was successful.
683
 * \return      Possible lzma_ret values:
684
 *              - LZMA_OK: Decoding was successful.
571
 *              - LZMA_OPTIONS_ERROR
685
 *              - LZMA_OPTIONS_ERROR
572
 *              - LZMA_DATA_ERROR
686
 *              - LZMA_DATA_ERROR
573
 *              - LZMA_MEM_ERROR
687
 *              - LZMA_MEM_ERROR
(-)xz-5.2.5/src/liblzma/api/lzma/check.h (-15 / +29 lines)
Lines 1-6 Link Here
1
/**
1
/**
2
 * \file        lzma/check.h
2
 * \file        lzma/check.h
3
 * \brief       Integrity checks
3
 * \brief       Integrity checks
4
 * \note        Never include this file directly. Use <lzma.h> instead.
4
 */
5
 */
5
6
6
/*
7
/*
Lines 8-15 Link Here
8
 *
9
 *
9
 * This file has been put into the public domain.
10
 * This file has been put into the public domain.
10
 * You can do whatever you want with this file.
11
 * You can do whatever you want with this file.
11
 *
12
 * See ../lzma.h for information about liblzma as a whole.
13
 */
12
 */
14
13
15
#ifndef LZMA_H_INTERNAL
14
#ifndef LZMA_H_INTERNAL
Lines 71-82 Link Here
71
/**
70
/**
72
 * \brief       Test if the given Check ID is supported
71
 * \brief       Test if the given Check ID is supported
73
 *
72
 *
74
 * Return true if the given Check ID is supported by this liblzma build.
73
 * LZMA_CHECK_NONE and LZMA_CHECK_CRC32 are always supported (even if
75
 * Otherwise false is returned. It is safe to call this with a value that
74
 * liblzma is built with limited features).
76
 * is not in the range [0, 15]; in that case the return value is always false.
77
 *
75
 *
78
 * You can assume that LZMA_CHECK_NONE and LZMA_CHECK_CRC32 are always
76
 * \note        It is safe to call this with a value that is not in the
79
 * supported (even if liblzma is built with limited features).
77
 *              range [0, 15]; in that case the return value is always false.
78
 *
79
 * \param       check   Check ID
80
 *
81
 * \return      lzma_bool:
82
 *              - true if Check ID is supported by this liblzma build.
83
 *              - false otherwise.
80
 */
84
 */
81
extern LZMA_API(lzma_bool) lzma_check_is_supported(lzma_check check)
85
extern LZMA_API(lzma_bool) lzma_check_is_supported(lzma_check check)
82
		lzma_nothrow lzma_attr_const;
86
		lzma_nothrow lzma_attr_const;
Lines 90-96 Link Here
90
 * the Check field with the specified Check ID. The values are:
94
 * the Check field with the specified Check ID. The values are:
91
 * { 0, 4, 4, 4, 8, 8, 8, 16, 16, 16, 32, 32, 32, 64, 64, 64 }
95
 * { 0, 4, 4, 4, 8, 8, 8, 16, 16, 16, 32, 32, 32, 64, 64, 64 }
92
 *
96
 *
93
 * If the argument is not in the range [0, 15], UINT32_MAX is returned.
97
 * \param       check   Check ID
98
 *
99
 * \return      Size of the Check field in bytes. If the argument is not in
100
 *              the range [0, 15], UINT32_MAX is returned.
94
 */
101
 */
95
extern LZMA_API(uint32_t) lzma_check_size(lzma_check check)
102
extern LZMA_API(uint32_t) lzma_check_size(lzma_check check)
96
		lzma_nothrow lzma_attr_const;
103
		lzma_nothrow lzma_attr_const;
Lines 126-150 Link Here
126
 *
133
 *
127
 * Calculate CRC64 using the polynomial from the ECMA-182 standard.
134
 * Calculate CRC64 using the polynomial from the ECMA-182 standard.
128
 *
135
 *
129
 * This function is used similarly to lzma_crc32(). See its documentation.
136
 * This function is used similarly to lzma_crc32().
137
 *
138
 * \param       buf     Pointer to the input buffer
139
 * \param       size    Size of the input buffer
140
 * \param       crc     Previously returned CRC value. This is used to
141
 *                      calculate the CRC of a big buffer in smaller chunks.
142
 *                      Set to zero when starting a new calculation.
143
 *
144
 * \return      Updated CRC value, which can be passed to this function
145
 *              again to continue CRC calculation.
130
 */
146
 */
131
extern LZMA_API(uint64_t) lzma_crc64(
147
extern LZMA_API(uint64_t) lzma_crc64(
132
		const uint8_t *buf, size_t size, uint64_t crc)
148
		const uint8_t *buf, size_t size, uint64_t crc)
133
		lzma_nothrow lzma_attr_pure;
149
		lzma_nothrow lzma_attr_pure;
134
150
135
151
136
/*
137
 * SHA-256 functions are currently not exported to public API.
138
 * Contact Lasse Collin if you think it should be.
139
 */
140
141
142
/**
152
/**
143
 * \brief       Get the type of the integrity check
153
 * \brief       Get the type of the integrity check
144
 *
154
 *
145
 * This function can be called only immediately after lzma_code() has
155
 * This function can be called only immediately after lzma_code() has
146
 * returned LZMA_NO_CHECK, LZMA_UNSUPPORTED_CHECK, or LZMA_GET_CHECK.
156
 * returned LZMA_NO_CHECK, LZMA_UNSUPPORTED_CHECK, or LZMA_GET_CHECK.
147
 * Calling this function in any other situation has undefined behavior.
157
 * Calling this function in any other situation has undefined behavior.
158
 *
159
 * \param       strm    Pointer to lzma_stream meeting the above conditions.
160
 *
161
 * \return      Check ID in the lzma_stream, or undefined if called improperly.
148
 */
162
 */
149
extern LZMA_API(lzma_check) lzma_get_check(const lzma_stream *strm)
163
extern LZMA_API(lzma_check) lzma_get_check(const lzma_stream *strm)
150
		lzma_nothrow;
164
		lzma_nothrow;
(-)xz-5.2.5/src/liblzma/api/lzma/container.h (-70 / +405 lines)
Lines 1-6 Link Here
1
/**
1
/**
2
 * \file        lzma/container.h
2
 * \file        lzma/container.h
3
 * \brief       File formats
3
 * \brief       File formats
4
 * \note        Never include this file directly. Use <lzma.h> instead.
4
 */
5
 */
5
6
6
/*
7
/*
Lines 8-15 Link Here
8
 *
9
 *
9
 * This file has been put into the public domain.
10
 * This file has been put into the public domain.
10
 * You can do whatever you want with this file.
11
 * You can do whatever you want with this file.
11
 *
12
 * See ../lzma.h for information about liblzma as a whole.
13
 */
12
 */
14
13
15
#ifndef LZMA_H_INTERNAL
14
#ifndef LZMA_H_INTERNAL
Lines 51-57 Link Here
51
 *
50
 *
52
 * This flag modifies the preset to make the encoding significantly slower
51
 * This flag modifies the preset to make the encoding significantly slower
53
 * while improving the compression ratio only marginally. This is useful
52
 * while improving the compression ratio only marginally. This is useful
54
 * when you don't mind wasting time to get as small result as possible.
53
 * when you don't mind spending time to get as small result as possible.
55
 *
54
 *
56
 * This flag doesn't affect the memory usage requirements of the decoder (at
55
 * This flag doesn't affect the memory usage requirements of the decoder (at
57
 * least not significantly). The memory usage of the encoder may be increased
56
 * least not significantly). The memory usage of the encoder may be increased
Lines 69-75 Link Here
69
	 *
68
	 *
70
	 * Set this to zero if no flags are wanted.
69
	 * Set this to zero if no flags are wanted.
71
	 *
70
	 *
72
	 * No flags are currently supported.
71
	 * Encoder: No flags are currently supported.
72
	 *
73
	 * Decoder: Bitwise-or of zero or more of the decoder flags:
74
	 * - LZMA_TELL_NO_CHECK
75
	 * - LZMA_TELL_UNSUPPORTED_CHECK
76
	 * - LZMA_TELL_ANY_CHECK
77
	 * - LZMA_IGNORE_CHECK
78
	 * - LZMA_CONCATENATED
79
	 * - LZMA_FAIL_FAST
73
	 */
80
	 */
74
	uint32_t flags;
81
	uint32_t flags;
75
82
Lines 79-85 Link Here
79
	uint32_t threads;
86
	uint32_t threads;
80
87
81
	/**
88
	/**
82
	 * \brief       Maximum uncompressed size of a Block
89
	 * \brief       Encoder only: Maximum uncompressed size of a Block
83
	 *
90
	 *
84
	 * The encoder will start a new .xz Block every block_size bytes.
91
	 * The encoder will start a new .xz Block every block_size bytes.
85
	 * Using LZMA_FULL_FLUSH or LZMA_FULL_BARRIER with lzma_code()
92
	 * Using LZMA_FULL_FLUSH or LZMA_FULL_BARRIER with lzma_code()
Lines 106-112 Link Here
106
	/**
113
	/**
107
	 * \brief       Timeout to allow lzma_code() to return early
114
	 * \brief       Timeout to allow lzma_code() to return early
108
	 *
115
	 *
109
	 * Multithreading can make liblzma to consume input and produce
116
	 * Multithreading can make liblzma consume input and produce
110
	 * output in a very bursty way: it may first read a lot of input
117
	 * output in a very bursty way: it may first read a lot of input
111
	 * to fill internal buffers, then no input or output occurs for
118
	 * to fill internal buffers, then no input or output occurs for
112
	 * a while.
119
	 * a while.
Lines 123-141 Link Here
123
	 * LZMA_OK. Reasonable values are 100 ms or more. The xz command
130
	 * LZMA_OK. Reasonable values are 100 ms or more. The xz command
124
	 * line tool uses 300 ms.
131
	 * line tool uses 300 ms.
125
	 *
132
	 *
126
	 * If long blocking times are fine for you, set timeout to a special
133
	 * If long blocking times are acceptable, set timeout to a special
127
	 * value of 0, which will disable the timeout mechanism and will make
134
	 * value of 0. This will disable the timeout mechanism and will make
128
	 * lzma_code() block until all the input is consumed or the output
135
	 * lzma_code() block until all the input is consumed or the output
129
	 * buffer has been filled.
136
	 * buffer has been filled.
130
	 *
137
	 *
131
	 * \note        Even with a timeout, lzma_code() might sometimes take
138
	 * \note        Even with a timeout, lzma_code() might sometimes take
132
	 *              somewhat long time to return. No timing guarantees
139
	 *              a long time to return. No timing guarantees are made.
133
	 *              are made.
134
	 */
140
	 */
135
	uint32_t timeout;
141
	uint32_t timeout;
136
142
137
	/**
143
	/**
138
	 * \brief       Compression preset (level and possible flags)
144
	 * \brief       Encoder only: Compression preset
139
	 *
145
	 *
140
	 * The preset is set just like with lzma_easy_encoder().
146
	 * The preset is set just like with lzma_easy_encoder().
141
	 * The preset is ignored if filters below is non-NULL.
147
	 * The preset is ignored if filters below is non-NULL.
Lines 143-149 Link Here
143
	uint32_t preset;
149
	uint32_t preset;
144
150
145
	/**
151
	/**
146
	 * \brief       Filter chain (alternative to a preset)
152
	 * \brief       Encoder only: Filter chain (alternative to a preset)
147
	 *
153
	 *
148
	 * If this is NULL, the preset above is used. Otherwise the preset
154
	 * If this is NULL, the preset above is used. Otherwise the preset
149
	 * is ignored and the filter chain specified here is used.
155
	 * is ignored and the filter chain specified here is used.
Lines 151-157 Link Here
151
	const lzma_filter *filters;
157
	const lzma_filter *filters;
152
158
153
	/**
159
	/**
154
	 * \brief       Integrity check type
160
	 * \brief       Encoder only: Integrity check type
155
	 *
161
	 *
156
	 * See check.h for available checks. The xz command line tool
162
	 * See check.h for available checks. The xz command line tool
157
	 * defaults to LZMA_CHECK_CRC64, which is a good choice if you
163
	 * defaults to LZMA_CHECK_CRC64, which is a good choice if you
Lines 166-185 Link Here
166
	 * with the currently supported options, so it is safe to leave these
172
	 * with the currently supported options, so it is safe to leave these
167
	 * uninitialized.
173
	 * uninitialized.
168
	 */
174
	 */
175
	/** \private     Reserved member. */
169
	lzma_reserved_enum reserved_enum1;
176
	lzma_reserved_enum reserved_enum1;
177
178
	/** \private     Reserved member. */
170
	lzma_reserved_enum reserved_enum2;
179
	lzma_reserved_enum reserved_enum2;
180
181
	/** \private     Reserved member. */
171
	lzma_reserved_enum reserved_enum3;
182
	lzma_reserved_enum reserved_enum3;
183
184
	/** \private     Reserved member. */
172
	uint32_t reserved_int1;
185
	uint32_t reserved_int1;
186
187
	/** \private     Reserved member. */
173
	uint32_t reserved_int2;
188
	uint32_t reserved_int2;
189
190
	/** \private     Reserved member. */
174
	uint32_t reserved_int3;
191
	uint32_t reserved_int3;
192
193
	/** \private     Reserved member. */
175
	uint32_t reserved_int4;
194
	uint32_t reserved_int4;
176
	uint64_t reserved_int5;
195
177
	uint64_t reserved_int6;
196
	/**
197
	 * \brief       Memory usage limit to reduce the number of threads
198
	 *
199
	 * Encoder: Ignored.
200
	 *
201
	 * Decoder:
202
	 *
203
	 * If the number of threads has been set so high that more than
204
	 * memlimit_threading bytes of memory would be needed, the number
205
	 * of threads will be reduced so that the memory usage will not exceed
206
	 * memlimit_threading bytes. However, if memlimit_threading cannot
207
	 * be met even in single-threaded mode, then decoding will continue
208
	 * in single-threaded mode and memlimit_threading may be exceeded
209
	 * even by a large amount. That is, memlimit_threading will never make
210
	 * lzma_code() return LZMA_MEMLIMIT_ERROR. To truly cap the memory
211
	 * usage, see memlimit_stop below.
212
	 *
213
	 * Setting memlimit_threading to UINT64_MAX or a similar huge value
214
	 * means that liblzma is allowed to keep the whole compressed file
215
	 * and the whole uncompressed file in memory in addition to the memory
216
	 * needed by the decompressor data structures used by each thread!
217
	 * In other words, a reasonable value limit must be set here or it
218
	 * will cause problems sooner or later. If you have no idea what
219
	 * a reasonable value could be, try lzma_physmem() / 4 as a starting
220
	 * point. Setting this limit will never prevent decompression of
221
	 * a file; this will only reduce the number of threads.
222
	 *
223
	 * If memlimit_threading is greater than memlimit_stop, then the value
224
	 * of memlimit_stop will be used for both.
225
	 */
226
	uint64_t memlimit_threading;
227
228
	/**
229
	 * \brief       Memory usage limit that should never be exceeded
230
	 *
231
	 * Encoder: Ignored.
232
	 *
233
	 * Decoder: If decompressing will need more than this amount of
234
	 * memory even in the single-threaded mode, then lzma_code() will
235
	 * return LZMA_MEMLIMIT_ERROR.
236
	 */
237
	uint64_t memlimit_stop;
238
239
	/** \private     Reserved member. */
178
	uint64_t reserved_int7;
240
	uint64_t reserved_int7;
241
242
	/** \private     Reserved member. */
179
	uint64_t reserved_int8;
243
	uint64_t reserved_int8;
244
245
	/** \private     Reserved member. */
180
	void *reserved_ptr1;
246
	void *reserved_ptr1;
247
248
	/** \private     Reserved member. */
181
	void *reserved_ptr2;
249
	void *reserved_ptr2;
250
251
	/** \private     Reserved member. */
182
	void *reserved_ptr3;
252
	void *reserved_ptr3;
253
254
	/** \private     Reserved member. */
183
	void *reserved_ptr4;
255
	void *reserved_ptr4;
184
256
185
} lzma_mt;
257
} lzma_mt;
Lines 193-200 Link Here
193
 * \param       preset  Compression preset (level and possible flags)
265
 * \param       preset  Compression preset (level and possible flags)
194
 *
266
 *
195
 * \return      Number of bytes of memory required for the given
267
 * \return      Number of bytes of memory required for the given
196
 *              preset when encoding. If an error occurs, for example
268
 *              preset when encoding or UINT64_MAX on error.
197
 *              due to unsupported preset, UINT64_MAX is returned.
198
 */
269
 */
199
extern LZMA_API(uint64_t) lzma_easy_encoder_memusage(uint32_t preset)
270
extern LZMA_API(uint64_t) lzma_easy_encoder_memusage(uint32_t preset)
200
		lzma_nothrow lzma_attr_pure;
271
		lzma_nothrow lzma_attr_pure;
Lines 208-216 Link Here
208
 * \param       preset  Compression preset (level and possible flags)
279
 * \param       preset  Compression preset (level and possible flags)
209
 *
280
 *
210
 * \return      Number of bytes of memory required to decompress a file
281
 * \return      Number of bytes of memory required to decompress a file
211
 *              that was compressed using the given preset. If an error
282
 *              that was compressed using the given preset or UINT64_MAX
212
 *              occurs, for example due to unsupported preset, UINT64_MAX
283
 *              on error.
213
 *              is returned.
214
 */
284
 */
215
extern LZMA_API(uint64_t) lzma_easy_decoder_memusage(uint32_t preset)
285
extern LZMA_API(uint64_t) lzma_easy_decoder_memusage(uint32_t preset)
216
		lzma_nothrow lzma_attr_pure;
286
		lzma_nothrow lzma_attr_pure;
Lines 220-227 Link Here
220
 * \brief       Initialize .xz Stream encoder using a preset number
290
 * \brief       Initialize .xz Stream encoder using a preset number
221
 *
291
 *
222
 * This function is intended for those who just want to use the basic features
292
 * This function is intended for those who just want to use the basic features
223
 * if liblzma (that is, most developers out there).
293
 * of liblzma (that is, most developers out there).
224
 *
294
 *
295
 * If initialization fails (return value is not LZMA_OK), all the memory
296
 * allocated for *strm by liblzma is always freed. Thus, there is no need
297
 * to call lzma_end() after failed initialization.
298
 *
299
 * If initialization succeeds, use lzma_code() to do the actual encoding.
300
 * Valid values for `action' (the second argument of lzma_code()) are
301
 * LZMA_RUN, LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, and LZMA_FINISH. In future,
302
 * there may be compression levels or flags that don't support LZMA_SYNC_FLUSH.
303
 *
225
 * \param       strm    Pointer to lzma_stream that is at least initialized
304
 * \param       strm    Pointer to lzma_stream that is at least initialized
226
 *                      with LZMA_STREAM_INIT.
305
 *                      with LZMA_STREAM_INIT.
227
 * \param       preset  Compression preset to use. A preset consist of level
306
 * \param       preset  Compression preset to use. A preset consist of level
Lines 236-242 Link Here
236
 *                      unsure. LZMA_CHECK_CRC32 is good too as long as the
315
 *                      unsure. LZMA_CHECK_CRC32 is good too as long as the
237
 *                      uncompressed file is not many gigabytes.
316
 *                      uncompressed file is not many gigabytes.
238
 *
317
 *
239
 * \return      - LZMA_OK: Initialization succeeded. Use lzma_code() to
318
 * \return      Possible lzma_ret values:
319
 *              - LZMA_OK: Initialization succeeded. Use lzma_code() to
240
 *                encode your data.
320
 *                encode your data.
241
 *              - LZMA_MEM_ERROR: Memory allocation failed.
321
 *              - LZMA_MEM_ERROR: Memory allocation failed.
242
 *              - LZMA_OPTIONS_ERROR: The given compression preset is not
322
 *              - LZMA_OPTIONS_ERROR: The given compression preset is not
Lines 245-259 Link Here
245
 *                supported by this liblzma build.
325
 *                supported by this liblzma build.
246
 *              - LZMA_PROG_ERROR: One or more of the parameters have values
326
 *              - LZMA_PROG_ERROR: One or more of the parameters have values
247
 *                that will never be valid. For example, strm == NULL.
327
 *                that will never be valid. For example, strm == NULL.
248
 *
249
 * If initialization fails (return value is not LZMA_OK), all the memory
250
 * allocated for *strm by liblzma is always freed. Thus, there is no need
251
 * to call lzma_end() after failed initialization.
252
 *
253
 * If initialization succeeds, use lzma_code() to do the actual encoding.
254
 * Valid values for `action' (the second argument of lzma_code()) are
255
 * LZMA_RUN, LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, and LZMA_FINISH. In future,
256
 * there may be compression levels or flags that don't support LZMA_SYNC_FLUSH.
257
 */
328
 */
258
extern LZMA_API(lzma_ret) lzma_easy_encoder(
329
extern LZMA_API(lzma_ret) lzma_easy_encoder(
259
		lzma_stream *strm, uint32_t preset, lzma_check check)
330
		lzma_stream *strm, uint32_t preset, lzma_check check)
Lines 274-286 Link Here
274
 *                          Set to NULL to use malloc() and free().
345
 *                          Set to NULL to use malloc() and free().
275
 * \param       in          Beginning of the input buffer
346
 * \param       in          Beginning of the input buffer
276
 * \param       in_size     Size of the input buffer
347
 * \param       in_size     Size of the input buffer
277
 * \param       out         Beginning of the output buffer
348
 * \param[out]  out         Beginning of the output buffer
278
 * \param       out_pos     The next byte will be written to out[*out_pos].
349
 * \param[out]  out_pos     The next byte will be written to out[*out_pos].
279
 *                          *out_pos is updated only if encoding succeeds.
350
 *                          *out_pos is updated only if encoding succeeds.
280
 * \param       out_size    Size of the out buffer; the first byte into
351
 * \param       out_size    Size of the out buffer; the first byte into
281
 *                          which no data is written to is out[out_size].
352
 *                          which no data is written to is out[out_size].
282
 *
353
 *
283
 * \return      - LZMA_OK: Encoding was successful.
354
 * \return      Possible lzma_ret values:
355
 *              - LZMA_OK: Encoding was successful.
284
 *              - LZMA_BUF_ERROR: Not enough output buffer space.
356
 *              - LZMA_BUF_ERROR: Not enough output buffer space.
285
 *              - LZMA_UNSUPPORTED_CHECK
357
 *              - LZMA_UNSUPPORTED_CHECK
286
 *              - LZMA_OPTIONS_ERROR
358
 *              - LZMA_OPTIONS_ERROR
Lines 298-311 Link Here
298
/**
370
/**
299
 * \brief       Initialize .xz Stream encoder using a custom filter chain
371
 * \brief       Initialize .xz Stream encoder using a custom filter chain
300
 *
372
 *
301
 * \param       strm    Pointer to properly prepared lzma_stream
373
 * \param       strm    Pointer to lzma_stream that is at least initialized
302
 * \param       filters Array of filters. This must be terminated with
374
 *                      with LZMA_STREAM_INIT.
303
 *                      filters[n].id = LZMA_VLI_UNKNOWN. See filter.h for
375
 * \param       filters Array of filters terminated with
304
 *                      more information.
376
 *                      .id == LZMA_VLI_UNKNOWN. See filters.h for more
377
 *                      information.
305
 * \param       check   Type of the integrity check to calculate from
378
 * \param       check   Type of the integrity check to calculate from
306
 *                      uncompressed data.
379
 *                      uncompressed data.
307
 *
380
 *
308
 * \return      - LZMA_OK: Initialization was successful.
381
 * \return      Possible lzma_ret values:
382
 *              - LZMA_OK: Initialization was successful.
309
 *              - LZMA_MEM_ERROR
383
 *              - LZMA_MEM_ERROR
310
 *              - LZMA_UNSUPPORTED_CHECK
384
 *              - LZMA_UNSUPPORTED_CHECK
311
 *              - LZMA_OPTIONS_ERROR
385
 *              - LZMA_OPTIONS_ERROR
Lines 345-354 Link Here
345
 * LZMA_FULL_BARRIER, and LZMA_FINISH. Support for LZMA_SYNC_FLUSH might be
419
 * LZMA_FULL_BARRIER, and LZMA_FINISH. Support for LZMA_SYNC_FLUSH might be
346
 * added in the future.
420
 * added in the future.
347
 *
421
 *
348
 * \param       strm    Pointer to properly prepared lzma_stream
422
 * \param       strm    Pointer to lzma_stream that is at least initialized
423
 *                      with LZMA_STREAM_INIT.
349
 * \param       options Pointer to multithreaded compression options
424
 * \param       options Pointer to multithreaded compression options
350
 *
425
 *
351
 * \return      - LZMA_OK
426
 * \return      Possible lzma_ret values:
427
 *              - LZMA_OK
352
 *              - LZMA_MEM_ERROR
428
 *              - LZMA_MEM_ERROR
353
 *              - LZMA_UNSUPPORTED_CHECK
429
 *              - LZMA_UNSUPPORTED_CHECK
354
 *              - LZMA_OPTIONS_ERROR
430
 *              - LZMA_OPTIONS_ERROR
Lines 374-380 Link Here
374
 * No kind of flushing is supported, because the file format doesn't make
450
 * No kind of flushing is supported, because the file format doesn't make
375
 * it possible.
451
 * it possible.
376
 *
452
 *
377
 * \return      - LZMA_OK
453
 * \param       strm    Pointer to lzma_stream that is at least initialized
454
 *                      with LZMA_STREAM_INIT.
455
 * \param       options Pointer to encoder options
456
 *
457
 * \return      Possible lzma_ret values:
458
 *              - LZMA_OK
378
 *              - LZMA_MEM_ERROR
459
 *              - LZMA_MEM_ERROR
379
 *              - LZMA_OPTIONS_ERROR
460
 *              - LZMA_OPTIONS_ERROR
380
 *              - LZMA_PROG_ERROR
461
 *              - LZMA_PROG_ERROR
Lines 405-410 Link Here
405
 *              will) have larger maximum expansion when encoding
486
 *              will) have larger maximum expansion when encoding
406
 *              uncompressible data. Currently there is no function to
487
 *              uncompressible data. Currently there is no function to
407
 *              calculate the maximum expansion of multi-call encoding.
488
 *              calculate the maximum expansion of multi-call encoding.
489
 *
490
 * \param       uncompressed_size   Size in bytes of the uncompressed
491
 *                                  input data
492
 *
493
 * \return      Maximum number of bytes needed to store the compressed data.
408
 */
494
 */
409
extern LZMA_API(size_t) lzma_stream_buffer_bound(size_t uncompressed_size)
495
extern LZMA_API(size_t) lzma_stream_buffer_bound(size_t uncompressed_size)
410
		lzma_nothrow;
496
		lzma_nothrow;
Lines 413-434 Link Here
413
/**
499
/**
414
 * \brief       Single-call .xz Stream encoder
500
 * \brief       Single-call .xz Stream encoder
415
 *
501
 *
416
 * \param       filters     Array of filters. This must be terminated with
502
 * \param       filters     Array of filters terminated with
417
 *                          filters[n].id = LZMA_VLI_UNKNOWN. See filter.h
503
 *                          .id == LZMA_VLI_UNKNOWN. See filters.h for more
418
 *                          for more information.
504
 *                          information.
419
 * \param       check       Type of the integrity check to calculate from
505
 * \param       check       Type of the integrity check to calculate from
420
 *                          uncompressed data.
506
 *                          uncompressed data.
421
 * \param       allocator   lzma_allocator for custom allocator functions.
507
 * \param       allocator   lzma_allocator for custom allocator functions.
422
 *                          Set to NULL to use malloc() and free().
508
 *                          Set to NULL to use malloc() and free().
423
 * \param       in          Beginning of the input buffer
509
 * \param       in          Beginning of the input buffer
424
 * \param       in_size     Size of the input buffer
510
 * \param       in_size     Size of the input buffer
425
 * \param       out         Beginning of the output buffer
511
 * \param[out]  out         Beginning of the output buffer
426
 * \param       out_pos     The next byte will be written to out[*out_pos].
512
 * \param[out]  out_pos     The next byte will be written to out[*out_pos].
427
 *                          *out_pos is updated only if encoding succeeds.
513
 *                          *out_pos is updated only if encoding succeeds.
428
 * \param       out_size    Size of the out buffer; the first byte into
514
 * \param       out_size    Size of the out buffer; the first byte into
429
 *                          which no data is written to is out[out_size].
515
 *                          which no data is written to is out[out_size].
430
 *
516
 *
431
 * \return      - LZMA_OK: Encoding was successful.
517
 * \return      Possible lzma_ret values:
518
 *              - LZMA_OK: Encoding was successful.
432
 *              - LZMA_BUF_ERROR: Not enough output buffer space.
519
 *              - LZMA_BUF_ERROR: Not enough output buffer space.
433
 *              - LZMA_UNSUPPORTED_CHECK
520
 *              - LZMA_UNSUPPORTED_CHECK
434
 *              - LZMA_OPTIONS_ERROR
521
 *              - LZMA_OPTIONS_ERROR
Lines 444-449 Link Here
444
		lzma_nothrow lzma_attr_warn_unused_result;
531
		lzma_nothrow lzma_attr_warn_unused_result;
445
532
446
533
534
/**
535
 * \brief       MicroLZMA encoder
536
 *
537
 * The MicroLZMA format is a raw LZMA stream whose first byte (always 0x00)
538
 * has been replaced with bitwise-negation of the LZMA properties (lc/lp/pb).
539
 * This encoding ensures that the first byte of MicroLZMA stream is never
540
 * 0x00. There is no end of payload marker and thus the uncompressed size
541
 * must be stored separately. For the best error detection the dictionary
542
 * size should be stored separately as well but alternatively one may use
543
 * the uncompressed size as the dictionary size when decoding.
544
 *
545
 * With the MicroLZMA encoder, lzma_code() behaves slightly unusually.
546
 * The action argument must be LZMA_FINISH and the return value will never be
547
 * LZMA_OK. Thus the encoding is always done with a single lzma_code() after
548
 * the initialization. The benefit of the combination of initialization
549
 * function and lzma_code() is that memory allocations can be re-used for
550
 * better performance.
551
 *
552
 * lzma_code() will try to encode as much input as is possible to fit into
553
 * the given output buffer. If not all input can be encoded, the stream will
554
 * be finished without encoding all the input. The caller must check both
555
 * input and output buffer usage after lzma_code() (total_in and total_out
556
 * in lzma_stream can be convenient). Often lzma_code() can fill the output
557
 * buffer completely if there is a lot of input, but sometimes a few bytes
558
 * may remain unused because the next LZMA symbol would require more space.
559
 *
560
 * lzma_stream.avail_out must be at least 6. Otherwise LZMA_PROG_ERROR
561
 * will be returned.
562
 *
563
 * The LZMA dictionary should be reasonably low to speed up the encoder
564
 * re-initialization. A good value is bigger than the resulting
565
 * uncompressed size of most of the output chunks. For example, if output
566
 * size is 4 KiB, dictionary size of 32 KiB or 64 KiB is good. If the
567
 * data compresses extremely well, even 128 KiB may be useful.
568
 *
569
 * The MicroLZMA format and this encoder variant were made with the EROFS
570
 * file system in mind. This format may be convenient in other embedded
571
 * uses too where many small streams are needed. XZ Embedded includes a
572
 * decoder for this format.
573
 *
574
 * \param       strm    Pointer to lzma_stream that is at least initialized
575
 *                      with LZMA_STREAM_INIT.
576
 * \param       options Pointer to encoder options
577
 *
578
 * \return      Possible lzma_ret values:
579
 *              - LZMA_STREAM_END: All good. Check the amounts of input used
580
 *                and output produced. Store the amount of input used
581
 *                (uncompressed size) as it needs to be known to decompress
582
 *                the data.
583
 *              - LZMA_OPTIONS_ERROR
584
 *              - LZMA_MEM_ERROR
585
 *              - LZMA_PROG_ERROR: In addition to the generic reasons for this
586
 *                error code, this may also be returned if there isn't enough
587
 *                output space (6 bytes) to create a valid MicroLZMA stream.
588
 */
589
extern LZMA_API(lzma_ret) lzma_microlzma_encoder(
590
		lzma_stream *strm, const lzma_options_lzma *options);
591
592
447
/************
593
/************
448
 * Decoding *
594
 * Decoding *
449
 ************/
595
 ************/
Lines 501-508 Link Here
501
/**
647
/**
502
 * This flag enables decoding of concatenated files with file formats that
648
 * This flag enables decoding of concatenated files with file formats that
503
 * allow concatenating compressed files as is. From the formats currently
649
 * allow concatenating compressed files as is. From the formats currently
504
 * supported by liblzma, only the .xz format allows concatenated files.
650
 * supported by liblzma, only the .xz and .lz formats allow concatenated
505
 * Concatenated files are not allowed with the legacy .lzma format.
651
 * files. Concatenated files are not allowed with the legacy .lzma format.
506
 *
652
 *
507
 * This flag also affects the usage of the `action' argument for lzma_code().
653
 * This flag also affects the usage of the `action' argument for lzma_code().
508
 * When LZMA_CONCATENATED is used, lzma_code() won't return LZMA_STREAM_END
654
 * When LZMA_CONCATENATED is used, lzma_code() won't return LZMA_STREAM_END
Lines 516-524 Link Here
516
662
517
663
518
/**
664
/**
665
 * This flag makes the threaded decoder report errors (like LZMA_DATA_ERROR)
666
 * as soon as they are detected. This saves time when the application has no
667
 * interest in a partially decompressed truncated or corrupt file. Note that
668
 * due to timing randomness, if the same truncated or corrupt input is
669
 * decompressed multiple times with this flag, a different amount of output
670
 * may be produced by different runs, and even the error code might vary.
671
 *
672
 * When using LZMA_FAIL_FAST, it is recommended to use LZMA_FINISH to tell
673
 * the decoder when no more input will be coming because it can help fast
674
 * detection and reporting of truncated files. Note that in this situation
675
 * truncated files might be diagnosed with LZMA_DATA_ERROR instead of
676
 * LZMA_OK or LZMA_BUF_ERROR!
677
 *
678
 * Without this flag the threaded decoder will provide as much output as
679
 * possible at first and then report the pending error. This default behavior
680
 * matches the single-threaded decoder and provides repeatable behavior
681
 * with truncated or corrupt input. There are a few special cases where the
682
 * behavior can still differ like memory allocation failures (LZMA_MEM_ERROR).
683
 *
684
 * Single-threaded decoders currently ignore this flag.
685
 *
686
 * Support for this flag was added in liblzma 5.3.3alpha. Note that in older
687
 * versions this flag isn't supported (LZMA_OPTIONS_ERROR) even by functions
688
 * that ignore this flag in newer liblzma versions.
689
 */
690
#define LZMA_FAIL_FAST                  UINT32_C(0x20)
691
692
693
/**
519
 * \brief       Initialize .xz Stream decoder
694
 * \brief       Initialize .xz Stream decoder
520
 *
695
 *
521
 * \param       strm        Pointer to properly prepared lzma_stream
696
 * \param       strm        Pointer to lzma_stream that is at least initialized
697
 *                          with LZMA_STREAM_INIT.
522
 * \param       memlimit    Memory usage limit as bytes. Use UINT64_MAX
698
 * \param       memlimit    Memory usage limit as bytes. Use UINT64_MAX
523
 *                          to effectively disable the limiter. liblzma
699
 *                          to effectively disable the limiter. liblzma
524
 *                          5.2.3 and earlier don't allow 0 here and return
700
 *                          5.2.3 and earlier don't allow 0 here and return
Lines 526-534 Link Here
526
 *                          had been specified.
702
 *                          had been specified.
527
 * \param       flags       Bitwise-or of zero or more of the decoder flags:
703
 * \param       flags       Bitwise-or of zero or more of the decoder flags:
528
 *                          LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK,
704
 *                          LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK,
529
 *                          LZMA_TELL_ANY_CHECK, LZMA_CONCATENATED
705
 *                          LZMA_TELL_ANY_CHECK, LZMA_IGNORE_CHECK,
706
 *                          LZMA_CONCATENATED, LZMA_FAIL_FAST
530
 *
707
 *
531
 * \return      - LZMA_OK: Initialization was successful.
708
 * \return      Possible lzma_ret values:
709
 *              - LZMA_OK: Initialization was successful.
532
 *              - LZMA_MEM_ERROR: Cannot allocate memory.
710
 *              - LZMA_MEM_ERROR: Cannot allocate memory.
533
 *              - LZMA_OPTIONS_ERROR: Unsupported flags
711
 *              - LZMA_OPTIONS_ERROR: Unsupported flags
534
 *              - LZMA_PROG_ERROR
712
 *              - LZMA_PROG_ERROR
Lines 539-559 Link Here
539
717
540
718
541
/**
719
/**
542
 * \brief       Decode .xz Streams and .lzma files with autodetection
720
 * \brief       Initialize multithreaded .xz Stream decoder
543
 *
721
 *
544
 * This decoder autodetects between the .xz and .lzma file formats, and
722
 * The decoder can decode multiple Blocks in parallel. This requires that each
545
 * calls lzma_stream_decoder() or lzma_alone_decoder() once the type
723
 * Block Header contains the Compressed Size and Uncompressed size fields
546
 * of the input file has been detected.
724
 * which are added by the multi-threaded encoder, see lzma_stream_encoder_mt().
547
 *
725
 *
548
 * \param       strm        Pointer to properly prepared lzma_stream
726
 * A Stream with one Block will only utilize one thread. A Stream with multiple
727
 * Blocks but without size information in Block Headers will be processed in
728
 * single-threaded mode in the same way as done by lzma_stream_decoder().
729
 * Concatenated Streams are processed one Stream at a time; no inter-Stream
730
 * parallelization is done.
731
 *
732
 * This function behaves like lzma_stream_decoder() when options->threads == 1
733
 * and options->memlimit_threading <= 1.
734
 *
735
 * \param       strm        Pointer to lzma_stream that is at least initialized
736
 *                          with LZMA_STREAM_INIT.
737
 * \param       options     Pointer to multithreaded compression options
738
 *
739
 * \return      Possible lzma_ret values:
740
 *              - LZMA_OK: Initialization was successful.
741
 *              - LZMA_MEM_ERROR: Cannot allocate memory.
742
 *              - LZMA_MEMLIMIT_ERROR: Memory usage limit was reached.
743
 *              - LZMA_OPTIONS_ERROR: Unsupported flags.
744
 *              - LZMA_PROG_ERROR
745
 */
746
extern LZMA_API(lzma_ret) lzma_stream_decoder_mt(
747
		lzma_stream *strm, const lzma_mt *options)
748
		lzma_nothrow lzma_attr_warn_unused_result;
749
750
751
/**
752
 * \brief       Decode .xz, .lzma, and .lz (lzip) files with autodetection
753
 *
754
 * This decoder autodetects between the .xz, .lzma, and .lz file formats,
755
 * and calls lzma_stream_decoder(), lzma_alone_decoder(), or
756
 * lzma_lzip_decoder() once the type of the input file has been detected.
757
 *
758
 * Support for .lz was added in 5.4.0.
759
 *
760
 * If the flag LZMA_CONCATENATED is used and the input is a .lzma file:
761
 * For historical reasons concatenated .lzma files aren't supported.
762
 * If there is trailing data after one .lzma stream, lzma_code() will
763
 * return LZMA_DATA_ERROR. (lzma_alone_decoder() doesn't have such a check
764
 * as it doesn't support any decoder flags. It will return LZMA_STREAM_END
765
 * after one .lzma stream.)
766
 *
767
  * \param       strm       Pointer to lzma_stream that is at least initialized
768
 *                          with LZMA_STREAM_INIT.
549
 * \param       memlimit    Memory usage limit as bytes. Use UINT64_MAX
769
 * \param       memlimit    Memory usage limit as bytes. Use UINT64_MAX
550
 *                          to effectively disable the limiter. liblzma
770
 *                          to effectively disable the limiter. liblzma
551
 *                          5.2.3 and earlier don't allow 0 here and return
771
 *                          5.2.3 and earlier don't allow 0 here and return
552
 *                          LZMA_PROG_ERROR; later versions treat 0 as if 1
772
 *                          LZMA_PROG_ERROR; later versions treat 0 as if 1
553
 *                          had been specified.
773
 *                          had been specified.
554
 * \param       flags       Bitwise-or of flags, or zero for no flags.
774
 * \param       flags       Bitwise-or of zero or more of the decoder flags:
775
 *                          LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK,
776
 *                          LZMA_TELL_ANY_CHECK, LZMA_IGNORE_CHECK,
777
 *                          LZMA_CONCATENATED, LZMA_FAIL_FAST
555
 *
778
 *
556
 * \return      - LZMA_OK: Initialization was successful.
779
 * \return      Possible lzma_ret values:
780
 *              - LZMA_OK: Initialization was successful.
557
 *              - LZMA_MEM_ERROR: Cannot allocate memory.
781
 *              - LZMA_MEM_ERROR: Cannot allocate memory.
558
 *              - LZMA_OPTIONS_ERROR: Unsupported flags
782
 *              - LZMA_OPTIONS_ERROR: Unsupported flags
559
 *              - LZMA_PROG_ERROR
783
 *              - LZMA_PROG_ERROR
Lines 566-583 Link Here
566
/**
790
/**
567
 * \brief       Initialize .lzma decoder (legacy file format)
791
 * \brief       Initialize .lzma decoder (legacy file format)
568
 *
792
 *
569
 * \param       strm        Pointer to properly prepared lzma_stream
793
 * Valid `action' arguments to lzma_code() are LZMA_RUN and LZMA_FINISH.
794
 * There is no need to use LZMA_FINISH, but it's allowed because it may
795
 * simplify certain types of applications.
796
 *
797
 * \param       strm        Pointer to lzma_stream that is at least initialized
798
 *                          with LZMA_STREAM_INIT.
570
 * \param       memlimit    Memory usage limit as bytes. Use UINT64_MAX
799
 * \param       memlimit    Memory usage limit as bytes. Use UINT64_MAX
571
 *                          to effectively disable the limiter. liblzma
800
 *                          to effectively disable the limiter. liblzma
572
 *                          5.2.3 and earlier don't allow 0 here and return
801
 *                          5.2.3 and earlier don't allow 0 here and return
573
 *                          LZMA_PROG_ERROR; later versions treat 0 as if 1
802
 *                          LZMA_PROG_ERROR; later versions treat 0 as if 1
574
 *                          had been specified.
803
 *                          had been specified.
575
 *
804
 *
576
 * Valid `action' arguments to lzma_code() are LZMA_RUN and LZMA_FINISH.
805
 * \return      Possible lzma_ret values:
577
 * There is no need to use LZMA_FINISH, but it's allowed because it may
806
 *              - LZMA_OK
578
 * simplify certain types of applications.
579
 *
580
 * \return      - LZMA_OK
581
 *              - LZMA_MEM_ERROR
807
 *              - LZMA_MEM_ERROR
582
 *              - LZMA_PROG_ERROR
808
 *              - LZMA_PROG_ERROR
583
 */
809
 */
Lines 587-592 Link Here
587
813
588
814
589
/**
815
/**
816
 * \brief       Initialize .lz (lzip) decoder (a foreign file format)
817
 *
818
 * This decoder supports the .lz format version 0 and the unextended .lz
819
 * format version 1:
820
 *
821
 *   - Files in the format version 0 were produced by lzip 1.3 and older.
822
 *     Such files aren't common but may be found from file archives
823
 *     as a few source packages were released in this format. People
824
 *     might have old personal files in this format too. Decompression
825
 *     support for the format version 0 was removed in lzip 1.18.
826
 *
827
 *   - lzip 1.3 added decompression support for .lz format version 1 files.
828
 *     Compression support was added in lzip 1.4. In lzip 1.6 the .lz format
829
 *     version 1 was extended to support the Sync Flush marker. This extension
830
 *     is not supported by liblzma. lzma_code() will return LZMA_DATA_ERROR
831
 *     at the location of the Sync Flush marker. In practice files with
832
 *     the Sync Flush marker are very rare and thus liblzma can decompress
833
 *     almost all .lz files.
834
 *
835
 * Just like with lzma_stream_decoder() for .xz files, LZMA_CONCATENATED
836
 * should be used when decompressing normal standalone .lz files.
837
 *
838
 * The .lz format allows putting non-.lz data at the end of a file after at
839
 * least one valid .lz member. That is, one can append custom data at the end
840
 * of a .lz file and the decoder is required to ignore it. In liblzma this
841
 * is relevant only when LZMA_CONCATENATED is used. In that case lzma_code()
842
 * will return LZMA_STREAM_END and leave lzma_stream.next_in pointing to
843
 * the first byte of the non-.lz data. An exception to this is if the first
844
 * 1-3 bytes of the non-.lz data are identical to the .lz magic bytes
845
 * (0x4C, 0x5A, 0x49, 0x50; "LZIP" in US-ASCII). In such a case the 1-3 bytes
846
 * will have been ignored by lzma_code(). If one wishes to locate the non-.lz
847
 * data reliably, one must ensure that the first byte isn't 0x4C. Actually
848
 * one should ensure that none of the first four bytes of trailing data are
849
 * equal to the magic bytes because lzip >= 1.20 requires it by default.
850
 *
851
 * \param       strm        Pointer to lzma_stream that is at least initialized
852
 *                          with LZMA_STREAM_INIT.
853
 * \param       memlimit    Memory usage limit as bytes. Use UINT64_MAX
854
 *                          to effectively disable the limiter.
855
 * \param       flags       Bitwise-or of flags, or zero for no flags.
856
 *                          All decoder flags listed above are supported
857
 *                          although only LZMA_CONCATENATED and (in very rare
858
 *                          cases) LZMA_IGNORE_CHECK are actually useful.
859
 *                          LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK,
860
 *                          and LZMA_FAIL_FAST do nothing. LZMA_TELL_ANY_CHECK
861
 *                          is supported for consistency only as CRC32 is
862
 *                          always used in the .lz format.
863
 *
864
 * \return      Possible lzma_ret values:
865
 *              - LZMA_OK: Initialization was successful.
866
 *              - LZMA_MEM_ERROR: Cannot allocate memory.
867
 *              - LZMA_OPTIONS_ERROR: Unsupported flags
868
 *              - LZMA_PROG_ERROR
869
 */
870
extern LZMA_API(lzma_ret) lzma_lzip_decoder(
871
		lzma_stream *strm, uint64_t memlimit, uint32_t flags)
872
		lzma_nothrow lzma_attr_warn_unused_result;
873
874
875
/**
590
 * \brief       Single-call .xz Stream decoder
876
 * \brief       Single-call .xz Stream decoder
591
 *
877
 *
592
 * \param       memlimit    Pointer to how much memory the decoder is allowed
878
 * \param       memlimit    Pointer to how much memory the decoder is allowed
Lines 595-601 Link Here
595
 *                          returned.
881
 *                          returned.
596
 * \param       flags       Bitwise-or of zero or more of the decoder flags:
882
 * \param       flags       Bitwise-or of zero or more of the decoder flags:
597
 *                          LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK,
883
 *                          LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK,
598
 *                          LZMA_CONCATENATED. Note that LZMA_TELL_ANY_CHECK
884
 *                          LZMA_IGNORE_CHECK, LZMA_CONCATENATED,
885
 *                          LZMA_FAIL_FAST. Note that LZMA_TELL_ANY_CHECK
599
 *                          is not allowed and will return LZMA_PROG_ERROR.
886
 *                          is not allowed and will return LZMA_PROG_ERROR.
600
 * \param       allocator   lzma_allocator for custom allocator functions.
887
 * \param       allocator   lzma_allocator for custom allocator functions.
601
 *                          Set to NULL to use malloc() and free().
888
 *                          Set to NULL to use malloc() and free().
Lines 604-616 Link Here
604
 *                          *in_pos is updated only if decoding succeeds.
891
 *                          *in_pos is updated only if decoding succeeds.
605
 * \param       in_size     Size of the input buffer; the first byte that
892
 * \param       in_size     Size of the input buffer; the first byte that
606
 *                          won't be read is in[in_size].
893
 *                          won't be read is in[in_size].
607
 * \param       out         Beginning of the output buffer
894
 * \param[out]  out         Beginning of the output buffer
608
 * \param       out_pos     The next byte will be written to out[*out_pos].
895
 * \param[out]  out_pos     The next byte will be written to out[*out_pos].
609
 *                          *out_pos is updated only if decoding succeeds.
896
 *                          *out_pos is updated only if decoding succeeds.
610
 * \param       out_size    Size of the out buffer; the first byte into
897
 * \param       out_size    Size of the out buffer; the first byte into
611
 *                          which no data is written to is out[out_size].
898
 *                          which no data is written to is out[out_size].
612
 *
899
 *
613
 * \return      - LZMA_OK: Decoding was successful.
900
 * \return      Possible lzma_ret values:
901
 *              - LZMA_OK: Decoding was successful.
614
 *              - LZMA_FORMAT_ERROR
902
 *              - LZMA_FORMAT_ERROR
615
 *              - LZMA_OPTIONS_ERROR
903
 *              - LZMA_OPTIONS_ERROR
616
 *              - LZMA_DATA_ERROR
904
 *              - LZMA_DATA_ERROR
Lines 630-632 Link Here
630
		const uint8_t *in, size_t *in_pos, size_t in_size,
918
		const uint8_t *in, size_t *in_pos, size_t in_size,
631
		uint8_t *out, size_t *out_pos, size_t out_size)
919
		uint8_t *out, size_t *out_pos, size_t out_size)
632
		lzma_nothrow lzma_attr_warn_unused_result;
920
		lzma_nothrow lzma_attr_warn_unused_result;
921
922
923
/**
924
 * \brief       MicroLZMA decoder
925
 *
926
 * See lzma_microlzma_encoder() for more information.
927
 *
928
 * The lzma_code() usage with this decoder is completely normal. The
929
 * special behavior of lzma_code() applies to lzma_microlzma_encoder() only.
930
 *
931
 * \param       strm        Pointer to lzma_stream that is at least initialized
932
 *                          with LZMA_STREAM_INIT.
933
 * \param       comp_size   Compressed size of the MicroLZMA stream.
934
 *                          The caller must somehow know this exactly.
935
 * \param       uncomp_size Uncompressed size of the MicroLZMA stream.
936
 *                          If the exact uncompressed size isn't known, this
937
 *                          can be set to a value that is at most as big as
938
 *                          the exact uncompressed size would be, but then the
939
 *                          next argument uncomp_size_is_exact must be false.
940
 * \param       uncomp_size_is_exact
941
 *                          If true, uncomp_size must be exactly correct.
942
 *                          This will improve error detection at the end of
943
 *                          the stream. If the exact uncompressed size isn't
944
 *                          known, this must be false. uncomp_size must still
945
 *                          be at most as big as the exact uncompressed size
946
 *                          is. Setting this to false when the exact size is
947
 *                          known will work but error detection at the end of
948
 *                          the stream will be weaker.
949
 * \param       dict_size   LZMA dictionary size that was used when
950
 *                          compressing the data. It is OK to use a bigger
951
 *                          value too but liblzma will then allocate more
952
 *                          memory than would actually be required and error
953
 *                          detection will be slightly worse. (Note that with
954
 *                          the implementation in XZ Embedded it doesn't
955
 *                          affect the memory usage if one specifies bigger
956
 *                          dictionary than actually required.)
957
 *
958
 * \return      Possible lzma_ret values:
959
 *              - LZMA_OK
960
 *              - LZMA_MEM_ERROR
961
 *              - LZMA_OPTIONS_ERROR
962
 *              - LZMA_PROG_ERROR
963
 */
964
extern LZMA_API(lzma_ret) lzma_microlzma_decoder(
965
		lzma_stream *strm, uint64_t comp_size,
966
		uint64_t uncomp_size, lzma_bool uncomp_size_is_exact,
967
		uint32_t dict_size);
(-)xz-5.2.5/src/liblzma/api/lzma/delta.h (-2 / +21 lines)
Lines 1-6 Link Here
1
/**
1
/**
2
 * \file        lzma/delta.h
2
 * \file        lzma/delta.h
3
 * \brief       Delta filter
3
 * \brief       Delta filter
4
 * \note        Never include this file directly. Use <lzma.h> instead.
4
 */
5
 */
5
6
6
/*
7
/*
Lines 8-15 Link Here
8
 *
9
 *
9
 * This file has been put into the public domain.
10
 * This file has been put into the public domain.
10
 * You can do whatever you want with this file.
11
 * You can do whatever you want with this file.
11
 *
12
 * See ../lzma.h for information about liblzma as a whole.
13
 */
12
 */
14
13
15
#ifndef LZMA_H_INTERNAL
14
#ifndef LZMA_H_INTERNAL
Lines 57-63 Link Here
57
	 *  - 24-bit RGB image data: distance = 3 bytes
56
	 *  - 24-bit RGB image data: distance = 3 bytes
58
	 */
57
	 */
59
	uint32_t dist;
58
	uint32_t dist;
59
60
	/**
61
	 * \brief       Minimum value for lzma_options_delta.dist.
62
	 */
60
#	define LZMA_DELTA_DIST_MIN 1
63
#	define LZMA_DELTA_DIST_MIN 1
64
65
	/**
66
	 * \brief       Maximum value for lzma_options_delta.dist.
67
	 */
61
#	define LZMA_DELTA_DIST_MAX 256
68
#	define LZMA_DELTA_DIST_MAX 256
62
69
63
	/*
70
	/*
Lines 67-77 Link Here
67
	 * when type is LZMA_DELTA_TYPE_BYTE, so it is safe to leave these
74
	 * when type is LZMA_DELTA_TYPE_BYTE, so it is safe to leave these
68
	 * uninitialized.
75
	 * uninitialized.
69
	 */
76
	 */
77
78
	/** \private     Reserved member. */
70
	uint32_t reserved_int1;
79
	uint32_t reserved_int1;
80
81
	/** \private     Reserved member. */
71
	uint32_t reserved_int2;
82
	uint32_t reserved_int2;
83
84
	/** \private     Reserved member. */
72
	uint32_t reserved_int3;
85
	uint32_t reserved_int3;
86
87
	/** \private     Reserved member. */
73
	uint32_t reserved_int4;
88
	uint32_t reserved_int4;
89
90
	/** \private     Reserved member. */
74
	void *reserved_ptr1;
91
	void *reserved_ptr1;
92
93
	/** \private     Reserved member. */
75
	void *reserved_ptr2;
94
	void *reserved_ptr2;
76
95
77
} lzma_options_delta;
96
} lzma_options_delta;
(-)xz-5.2.5/src/liblzma/api/lzma/filter.h (-83 / +427 lines)
Lines 1-6 Link Here
1
/**
1
/**
2
 * \file        lzma/filter.h
2
 * \file        lzma/filter.h
3
 * \brief       Common filter related types and functions
3
 * \brief       Common filter related types and functions
4
 * \note        Never include this file directly. Use <lzma.h> instead.
4
 */
5
 */
5
6
6
/*
7
/*
Lines 8-15 Link Here
8
 *
9
 *
9
 * This file has been put into the public domain.
10
 * This file has been put into the public domain.
10
 * You can do whatever you want with this file.
11
 * You can do whatever you want with this file.
11
 *
12
 * See ../lzma.h for information about liblzma as a whole.
13
 */
12
 */
14
13
15
#ifndef LZMA_H_INTERNAL
14
#ifndef LZMA_H_INTERNAL
Lines 29-35 Link Here
29
/**
28
/**
30
 * \brief       Filter options
29
 * \brief       Filter options
31
 *
30
 *
32
 * This structure is used to pass Filter ID and a pointer filter's
31
 * This structure is used to pass a Filter ID and a pointer to the filter's
33
 * options to liblzma. A few functions work with a single lzma_filter
32
 * options to liblzma. A few functions work with a single lzma_filter
34
 * structure, while most functions expect a filter chain.
33
 * structure, while most functions expect a filter chain.
35
 *
34
 *
Lines 37-44 Link Here
37
 * The array is terminated with .id = LZMA_VLI_UNKNOWN. Thus, the filter
36
 * The array is terminated with .id = LZMA_VLI_UNKNOWN. Thus, the filter
38
 * array must have LZMA_FILTERS_MAX + 1 elements (that is, five) to
37
 * array must have LZMA_FILTERS_MAX + 1 elements (that is, five) to
39
 * be able to hold any arbitrary filter chain. This is important when
38
 * be able to hold any arbitrary filter chain. This is important when
40
 * using lzma_block_header_decode() from block.h, because too small
39
 * using lzma_block_header_decode() from block.h, because a filter array
41
 * array would make liblzma write past the end of the filters array.
40
 * that is too small would make liblzma write past the end of the array.
42
 */
41
 */
43
typedef struct {
42
typedef struct {
44
	/**
43
	/**
Lines 68-79 Link Here
68
/**
67
/**
69
 * \brief       Test if the given Filter ID is supported for encoding
68
 * \brief       Test if the given Filter ID is supported for encoding
70
 *
69
 *
71
 * Return true if the give Filter ID is supported for encoding by this
70
 * \param       id      Filter ID
72
 * liblzma build. Otherwise false is returned.
73
 *
71
 *
74
 * There is no way to list which filters are available in this particular
72
 * \return      lzma_bool:
75
 * liblzma version and build. It would be useless, because the application
73
 *              - true if the Filter ID is supported for encoding by this
76
 * couldn't know what kind of options the filter would need.
74
 *                liblzma build.
75
  *             - false otherwise.
77
 */
76
 */
78
extern LZMA_API(lzma_bool) lzma_filter_encoder_is_supported(lzma_vli id)
77
extern LZMA_API(lzma_bool) lzma_filter_encoder_is_supported(lzma_vli id)
79
		lzma_nothrow lzma_attr_const;
78
		lzma_nothrow lzma_attr_const;
Lines 82-89 Link Here
82
/**
81
/**
83
 * \brief       Test if the given Filter ID is supported for decoding
82
 * \brief       Test if the given Filter ID is supported for decoding
84
 *
83
 *
85
 * Return true if the give Filter ID is supported for decoding by this
84
 * \param       id      Filter ID
86
 * liblzma build. Otherwise false is returned.
85
 *
86
 * \return      lzma_bool:
87
 *              - true if the Filter ID is supported for decoding by this
88
 *                liblzma build.
89
 *              - false otherwise.
87
 */
90
 */
88
extern LZMA_API(lzma_bool) lzma_filter_decoder_is_supported(lzma_vli id)
91
extern LZMA_API(lzma_bool) lzma_filter_decoder_is_supported(lzma_vli id)
89
		lzma_nothrow lzma_attr_const;
92
		lzma_nothrow lzma_attr_const;
Lines 108-116 Link Here
108
 * need to be initialized by the caller in any way.
111
 * need to be initialized by the caller in any way.
109
 *
112
 *
110
 * If an error occurs, memory possibly already allocated by this function
113
 * If an error occurs, memory possibly already allocated by this function
111
 * is always freed.
114
 * is always freed. liblzma versions older than 5.2.7 may modify the dest
115
 * array and leave its contents in an undefined state if an error occurs.
116
 * liblzma 5.2.7 and newer only modify the dest array when returning LZMA_OK.
112
 *
117
 *
113
 * \return      - LZMA_OK
118
 * \param       src         Array of filters terminated with
119
 *                          .id == LZMA_VLI_UNKNOWN.
120
 * \param[out]  dest        Destination filter array
121
 * \param       allocator   lzma_allocator for custom allocator functions.
122
 *                          Set to NULL to use malloc() and free().
123
 *
124
 * \return      Possible lzma_ret values:
125
 *              - LZMA_OK
114
 *              - LZMA_MEM_ERROR
126
 *              - LZMA_MEM_ERROR
115
 *              - LZMA_OPTIONS_ERROR: Unsupported Filter ID and its options
127
 *              - LZMA_OPTIONS_ERROR: Unsupported Filter ID and its options
116
 *                is not NULL.
128
 *                is not NULL.
Lines 118-127 Link Here
118
 */
130
 */
119
extern LZMA_API(lzma_ret) lzma_filters_copy(
131
extern LZMA_API(lzma_ret) lzma_filters_copy(
120
		const lzma_filter *src, lzma_filter *dest,
132
		const lzma_filter *src, lzma_filter *dest,
121
		const lzma_allocator *allocator) lzma_nothrow;
133
		const lzma_allocator *allocator)
134
		lzma_nothrow lzma_attr_warn_unused_result;
122
135
123
136
124
/**
137
/**
138
 * \brief       Free the options in the array of lzma_filter structures
139
 *
140
 * This frees the filter chain options. The filters array itself is not freed.
141
 *
142
 * The filters array must have at most LZMA_FILTERS_MAX + 1 elements
143
 * including the terminating element which must have .id = LZMA_VLI_UNKNOWN.
144
 * For all elements before the terminating element:
145
 *   - options will be freed using the given lzma_allocator or,
146
 *     if allocator is NULL, using free().
147
 *   - options will be set to NULL.
148
 *   - id will be set to LZMA_VLI_UNKNOWN.
149
 *
150
 * If filters is NULL, this does nothing. Again, this never frees the
151
 * filters array itself.
152
 *
153
 * \param       filters     Array of filters terminated with
154
 *                          .id == LZMA_VLI_UNKNOWN.
155
 * \param       allocator   lzma_allocator for custom allocator functions.
156
 *                          Set to NULL to use malloc() and free().
157
 */
158
extern LZMA_API(void) lzma_filters_free(
159
		lzma_filter *filters, const lzma_allocator *allocator)
160
		lzma_nothrow;
161
162
163
/**
125
 * \brief       Calculate approximate memory requirements for raw encoder
164
 * \brief       Calculate approximate memory requirements for raw encoder
126
 *
165
 *
127
 * This function can be used to calculate the memory requirements for
166
 * This function can be used to calculate the memory requirements for
Lines 132-140 Link Here
132
 *                          .id == LZMA_VLI_UNKNOWN.
171
 *                          .id == LZMA_VLI_UNKNOWN.
133
 *
172
 *
134
 * \return      Number of bytes of memory required for the given
173
 * \return      Number of bytes of memory required for the given
135
 *              filter chain when encoding. If an error occurs,
174
 *              filter chain when encoding or UINT64_MAX on error.
136
 *              for example due to unsupported filter chain,
137
 *              UINT64_MAX is returned.
138
 */
175
 */
139
extern LZMA_API(uint64_t) lzma_raw_encoder_memusage(const lzma_filter *filters)
176
extern LZMA_API(uint64_t) lzma_raw_encoder_memusage(const lzma_filter *filters)
140
		lzma_nothrow lzma_attr_pure;
177
		lzma_nothrow lzma_attr_pure;
Lines 151-159 Link Here
151
 *                          .id == LZMA_VLI_UNKNOWN.
188
 *                          .id == LZMA_VLI_UNKNOWN.
152
 *
189
 *
153
 * \return      Number of bytes of memory required for the given
190
 * \return      Number of bytes of memory required for the given
154
 *              filter chain when decoding. If an error occurs,
191
 *              filter chain when decoding or UINT64_MAX on error.
155
 *              for example due to unsupported filter chain,
156
 *              UINT64_MAX is returned.
157
 */
192
 */
158
extern LZMA_API(uint64_t) lzma_raw_decoder_memusage(const lzma_filter *filters)
193
extern LZMA_API(uint64_t) lzma_raw_decoder_memusage(const lzma_filter *filters)
159
		lzma_nothrow lzma_attr_pure;
194
		lzma_nothrow lzma_attr_pure;
Lines 164-177 Link Here
164
 *
199
 *
165
 * This function may be useful when implementing custom file formats.
200
 * This function may be useful when implementing custom file formats.
166
 *
201
 *
167
 * \param       strm    Pointer to properly prepared lzma_stream
168
 * \param       filters Array of lzma_filter structures. The end of the
169
 *                      array must be marked with .id = LZMA_VLI_UNKNOWN.
170
 *
171
 * The `action' with lzma_code() can be LZMA_RUN, LZMA_SYNC_FLUSH (if the
202
 * The `action' with lzma_code() can be LZMA_RUN, LZMA_SYNC_FLUSH (if the
172
 * filter chain supports it), or LZMA_FINISH.
203
 * filter chain supports it), or LZMA_FINISH.
173
 *
204
 *
174
 * \return      - LZMA_OK
205
 * \param       strm      Pointer to lzma_stream that is at least
206
 *                        initialized with LZMA_STREAM_INIT.
207
 * \param       filters   Array of filters terminated with
208
 *                        .id == LZMA_VLI_UNKNOWN.
209
 *
210
 * \return      Possible lzma_ret values:
211
 *              - LZMA_OK
175
 *              - LZMA_MEM_ERROR
212
 *              - LZMA_MEM_ERROR
176
 *              - LZMA_OPTIONS_ERROR
213
 *              - LZMA_OPTIONS_ERROR
177
 *              - LZMA_PROG_ERROR
214
 *              - LZMA_PROG_ERROR
Lines 189-195 Link Here
189
 * The `action' with lzma_code() can be LZMA_RUN or LZMA_FINISH. Using
226
 * The `action' with lzma_code() can be LZMA_RUN or LZMA_FINISH. Using
190
 * LZMA_FINISH is not required, it is supported just for convenience.
227
 * LZMA_FINISH is not required, it is supported just for convenience.
191
 *
228
 *
192
 * \return      - LZMA_OK
229
 * \param       strm      Pointer to lzma_stream that is at least
230
 *                        initialized with LZMA_STREAM_INIT.
231
 * \param       filters   Array of filters terminated with
232
 *                        .id == LZMA_VLI_UNKNOWN.
233
 *
234
 * \return      Possible lzma_ret values:
235
 *              - LZMA_OK
193
 *              - LZMA_MEM_ERROR
236
 *              - LZMA_MEM_ERROR
194
 *              - LZMA_OPTIONS_ERROR
237
 *              - LZMA_OPTIONS_ERROR
195
 *              - LZMA_PROG_ERROR
238
 *              - LZMA_PROG_ERROR
Lines 202-225 Link Here
202
/**
245
/**
203
 * \brief       Update the filter chain in the encoder
246
 * \brief       Update the filter chain in the encoder
204
 *
247
 *
205
 * This function is for advanced users only. This function has two slightly
248
 * This function may be called after lzma_code() has returned LZMA_STREAM_END
206
 * different purposes:
249
 * when LZMA_FULL_BARRIER, LZMA_FULL_FLUSH, or LZMA_SYNC_FLUSH was used:
207
 *
250
 *
208
 *  - After LZMA_FULL_FLUSH when using Stream encoder: Set a new filter
251
 *  - After LZMA_FULL_BARRIER or LZMA_FULL_FLUSH: Single-threaded .xz Stream
209
 *    chain, which will be used starting from the next Block.
252
 *    encoder (lzma_stream_encoder()) and (since liblzma 5.4.0) multi-threaded
253
 *    Stream encoder (lzma_stream_encoder_mt()) allow setting a new filter
254
 *    chain to be used for the next Block(s).
210
 *
255
 *
211
 *  - After LZMA_SYNC_FLUSH using Raw, Block, or Stream encoder: Change
256
 *  - After LZMA_SYNC_FLUSH: Raw encoder (lzma_raw_encoder()),
212
 *    the filter-specific options in the middle of encoding. The actual
257
 *    Block encocder (lzma_block_encoder()), and single-threaded .xz Stream
213
 *    filters in the chain (Filter IDs) cannot be changed. In the future,
258
 *    encoder (lzma_stream_encoder()) allow changing certain filter-specific
214
 *    it might become possible to change the filter options without
259
 *    options in the middle of encoding. The actual filters in the chain
215
 *    using LZMA_SYNC_FLUSH.
260
 *    (Filter IDs) must not be changed! Currently only the lc, lp, and pb
261
 *    options of LZMA2 (not LZMA1) can be changed this way.
216
 *
262
 *
217
 * While rarely useful, this function may be called also when no data has
263
 *  - In the future some filters might allow changing some of their options
218
 * been compressed yet. In that case, this function will behave as if
264
 *    without any barrier or flushing but currently such filters don't exist.
219
 * LZMA_FULL_FLUSH (Stream encoder) or LZMA_SYNC_FLUSH (Raw or Block
265
 *
266
 * This function may also be called when no data has been compressed yet
267
 * although this is rarely useful. In that case, this function will behave
268
 * as if LZMA_FULL_FLUSH (Stream encoders) or LZMA_SYNC_FLUSH (Raw or Block
220
 * encoder) had been used right before calling this function.
269
 * encoder) had been used right before calling this function.
221
 *
270
 *
222
 * \return      - LZMA_OK
271
 * \param       strm      Pointer to lzma_stream that is at least
272
 *                        initialized with LZMA_STREAM_INIT.
273
 * \param       filters   Array of filters terminated with
274
 *                        .id == LZMA_VLI_UNKNOWN.
275
 *
276
 * \return      Possible lzma_ret values:
277
 *              - LZMA_OK
223
 *              - LZMA_MEM_ERROR
278
 *              - LZMA_MEM_ERROR
224
 *              - LZMA_MEMLIMIT_ERROR
279
 *              - LZMA_MEMLIMIT_ERROR
225
 *              - LZMA_OPTIONS_ERROR
280
 *              - LZMA_OPTIONS_ERROR
Lines 232-260 Link Here
232
/**
287
/**
233
 * \brief       Single-call raw encoder
288
 * \brief       Single-call raw encoder
234
 *
289
 *
235
 * \param       filters     Array of lzma_filter structures. The end of the
290
 * \note        There is no function to calculate how big output buffer
236
 *                          array must be marked with .id = LZMA_VLI_UNKNOWN.
291
 *              would surely be big enough. (lzma_stream_buffer_bound()
292
 *              works only for lzma_stream_buffer_encode(); raw encoder
293
 *              won't necessarily meet that bound.)
294
 *
295
 * \param       filters     Array of filters terminated with
296
 *                          .id == LZMA_VLI_UNKNOWN.
237
 * \param       allocator   lzma_allocator for custom allocator functions.
297
 * \param       allocator   lzma_allocator for custom allocator functions.
238
 *                          Set to NULL to use malloc() and free().
298
 *                          Set to NULL to use malloc() and free().
239
 * \param       in          Beginning of the input buffer
299
 * \param       in          Beginning of the input buffer
240
 * \param       in_size     Size of the input buffer
300
 * \param       in_size     Size of the input buffer
241
 * \param       out         Beginning of the output buffer
301
 * \param[out]  out         Beginning of the output buffer
242
 * \param       out_pos     The next byte will be written to out[*out_pos].
302
 * \param[out]  out_pos     The next byte will be written to out[*out_pos].
243
 *                          *out_pos is updated only if encoding succeeds.
303
 *                          *out_pos is updated only if encoding succeeds.
244
 * \param       out_size    Size of the out buffer; the first byte into
304
 * \param       out_size    Size of the out buffer; the first byte into
245
 *                          which no data is written to is out[out_size].
305
 *                          which no data is written to is out[out_size].
246
 *
306
 *
247
 * \return      - LZMA_OK: Encoding was successful.
307
 * \return      Possible lzma_ret values:
308
 *              - LZMA_OK: Encoding was successful.
248
 *              - LZMA_BUF_ERROR: Not enough output buffer space.
309
 *              - LZMA_BUF_ERROR: Not enough output buffer space.
249
 *              - LZMA_OPTIONS_ERROR
310
 *              - LZMA_OPTIONS_ERROR
250
 *              - LZMA_MEM_ERROR
311
 *              - LZMA_MEM_ERROR
251
 *              - LZMA_DATA_ERROR
312
 *              - LZMA_DATA_ERROR
252
 *              - LZMA_PROG_ERROR
313
 *              - LZMA_PROG_ERROR
253
 *
254
 * \note        There is no function to calculate how big output buffer
255
 *              would surely be big enough. (lzma_stream_buffer_bound()
256
 *              works only for lzma_stream_buffer_encode(); raw encoder
257
 *              won't necessarily meet that bound.)
258
 */
314
 */
259
extern LZMA_API(lzma_ret) lzma_raw_buffer_encode(
315
extern LZMA_API(lzma_ret) lzma_raw_buffer_encode(
260
		const lzma_filter *filters, const lzma_allocator *allocator,
316
		const lzma_filter *filters, const lzma_allocator *allocator,
Lines 265-272 Link Here
265
/**
321
/**
266
 * \brief       Single-call raw decoder
322
 * \brief       Single-call raw decoder
267
 *
323
 *
268
 * \param       filters     Array of lzma_filter structures. The end of the
324
 * \param       filters     Array of filters terminated with
269
 *                          array must be marked with .id = LZMA_VLI_UNKNOWN.
325
 *                          .id == LZMA_VLI_UNKNOWN.
270
 * \param       allocator   lzma_allocator for custom allocator functions.
326
 * \param       allocator   lzma_allocator for custom allocator functions.
271
 *                          Set to NULL to use malloc() and free().
327
 *                          Set to NULL to use malloc() and free().
272
 * \param       in          Beginning of the input buffer
328
 * \param       in          Beginning of the input buffer
Lines 274-284 Link Here
274
 *                          *in_pos is updated only if decoding succeeds.
330
 *                          *in_pos is updated only if decoding succeeds.
275
 * \param       in_size     Size of the input buffer; the first byte that
331
 * \param       in_size     Size of the input buffer; the first byte that
276
 *                          won't be read is in[in_size].
332
 *                          won't be read is in[in_size].
277
 * \param       out         Beginning of the output buffer
333
 * \param[out]  out         Beginning of the output buffer
278
 * \param       out_pos     The next byte will be written to out[*out_pos].
334
 * \param[out]  out_pos     The next byte will be written to out[*out_pos].
279
 *                          *out_pos is updated only if encoding succeeds.
335
 *                          *out_pos is updated only if encoding succeeds.
280
 * \param       out_size    Size of the out buffer; the first byte into
336
 * \param       out_size    Size of the out buffer; the first byte into
281
 *                          which no data is written to is out[out_size].
337
 *                          which no data is written to is out[out_size].
338
 *
339
 * \return      Possible lzma_ret values:
340
 *              - LZMA_OK: Decoding was successful.
341
 *              - LZMA_BUF_ERROR: Not enough output buffer space.
342
 *              - LZMA_OPTIONS_ERROR
343
 *              - LZMA_MEM_ERROR
344
 *              - LZMA_DATA_ERROR
345
 *              - LZMA_PROG_ERROR
282
 */
346
 */
283
extern LZMA_API(lzma_ret) lzma_raw_buffer_decode(
347
extern LZMA_API(lzma_ret) lzma_raw_buffer_decode(
284
		const lzma_filter *filters, const lzma_allocator *allocator,
348
		const lzma_filter *filters, const lzma_allocator *allocator,
Lines 292-309 Link Here
292
 * This function may be useful when implementing custom file formats
356
 * This function may be useful when implementing custom file formats
293
 * using the raw encoder and decoder.
357
 * using the raw encoder and decoder.
294
 *
358
 *
295
 * \param       size    Pointer to uint32_t to hold the size of the properties
359
 * \note        This function validates the Filter ID, but does not
360
 *              necessarily validate the options. Thus, it is possible
361
 *              that this returns LZMA_OK while the following call to
362
 *              lzma_properties_encode() returns LZMA_OPTIONS_ERROR.
363
 *
364
 * \param[out]  size    Pointer to uint32_t to hold the size of the properties
296
 * \param       filter  Filter ID and options (the size of the properties may
365
 * \param       filter  Filter ID and options (the size of the properties may
297
 *                      vary depending on the options)
366
 *                      vary depending on the options)
298
 *
367
 *
299
 * \return      - LZMA_OK
368
 * \return      Possible lzma_ret values:
369
 *              - LZMA_OK
300
 *              - LZMA_OPTIONS_ERROR
370
 *              - LZMA_OPTIONS_ERROR
301
 *              - LZMA_PROG_ERROR
371
 *              - LZMA_PROG_ERROR
302
 *
303
 * \note        This function validates the Filter ID, but does not
304
 *              necessarily validate the options. Thus, it is possible
305
 *              that this returns LZMA_OK while the following call to
306
 *              lzma_properties_encode() returns LZMA_OPTIONS_ERROR.
307
 */
372
 */
308
extern LZMA_API(lzma_ret) lzma_properties_size(
373
extern LZMA_API(lzma_ret) lzma_properties_size(
309
		uint32_t *size, const lzma_filter *filter) lzma_nothrow;
374
		uint32_t *size, const lzma_filter *filter) lzma_nothrow;
Lines 312-326 Link Here
312
/**
377
/**
313
 * \brief       Encode the Filter Properties field
378
 * \brief       Encode the Filter Properties field
314
 *
379
 *
315
 * \param       filter  Filter ID and options
316
 * \param       props   Buffer to hold the encoded options. The size of
317
 *                      buffer must have been already determined with
318
 *                      lzma_properties_size().
319
 *
320
 * \return      - LZMA_OK
321
 *              - LZMA_OPTIONS_ERROR
322
 *              - LZMA_PROG_ERROR
323
 *
324
 * \note        Even this function won't validate more options than actually
380
 * \note        Even this function won't validate more options than actually
325
 *              necessary. Thus, it is possible that encoding the properties
381
 *              necessary. Thus, it is possible that encoding the properties
326
 *              succeeds but using the same options to initialize the encoder
382
 *              succeeds but using the same options to initialize the encoder
Lines 330-335 Link Here
330
 *              of the Filter Properties field is zero, calling
386
 *              of the Filter Properties field is zero, calling
331
 *              lzma_properties_encode() is not required, but it
387
 *              lzma_properties_encode() is not required, but it
332
 *              won't do any harm either.
388
 *              won't do any harm either.
389
 *
390
 * \param       filter  Filter ID and options
391
 * \param[out]  props   Buffer to hold the encoded options. The size of
392
 *                      the buffer must have been already determined with
393
 *                      lzma_properties_size().
394
 *
395
 * \return      Possible lzma_ret values:
396
 *              - LZMA_OK
397
 *              - LZMA_PROG_ERROR
333
 */
398
 */
334
extern LZMA_API(lzma_ret) lzma_properties_encode(
399
extern LZMA_API(lzma_ret) lzma_properties_encode(
335
		const lzma_filter *filter, uint8_t *props) lzma_nothrow;
400
		const lzma_filter *filter, uint8_t *props) lzma_nothrow;
Lines 345-359 Link Here
345
 *                          it's application's responsibility to free it when
410
 *                          it's application's responsibility to free it when
346
 *                          appropriate. filter->options is set to NULL if
411
 *                          appropriate. filter->options is set to NULL if
347
 *                          there are no properties or if an error occurs.
412
 *                          there are no properties or if an error occurs.
348
 * \param       allocator   Custom memory allocator used to allocate the
413
 * \param       allocator   lzma_allocator for custom allocator functions.
349
 *                          options. Set to NULL to use the default malloc(),
414
 *                          Set to NULL to use malloc() and free().
350
 *                          and in case of an error, also free().
415
 *                          and in case of an error, also free().
351
 * \param       props       Input buffer containing the properties.
416
 * \param       props       Input buffer containing the properties.
352
 * \param       props_size  Size of the properties. This must be the exact
417
 * \param       props_size  Size of the properties. This must be the exact
353
 *                          size; giving too much or too little input will
418
 *                          size; giving too much or too little input will
354
 *                          return LZMA_OPTIONS_ERROR.
419
 *                          return LZMA_OPTIONS_ERROR.
355
 *
420
 *
356
 * \return      - LZMA_OK
421
 * \return      Possible lzma_ret values:
422
 *              - LZMA_OK
357
 *              - LZMA_OPTIONS_ERROR
423
 *              - LZMA_OPTIONS_ERROR
358
 *              - LZMA_MEM_ERROR
424
 *              - LZMA_MEM_ERROR
359
 */
425
 */
Lines 368-385 Link Here
368
 * Knowing the size of Filter Flags is useful to know when allocating
434
 * Knowing the size of Filter Flags is useful to know when allocating
369
 * memory to hold the encoded Filter Flags.
435
 * memory to hold the encoded Filter Flags.
370
 *
436
 *
371
 * \param       size    Pointer to integer to hold the calculated size
437
 * \note        If you need to calculate size of List of Filter Flags,
438
 *              you need to loop over every lzma_filter entry.
439
 *
440
 * \param[out]  size    Pointer to integer to hold the calculated size
372
 * \param       filter  Filter ID and associated options whose encoded
441
 * \param       filter  Filter ID and associated options whose encoded
373
 *                      size is to be calculated
442
 *                      size is to be calculated
374
 *
443
 *
375
 * \return      - LZMA_OK: *size set successfully. Note that this doesn't
444
 * \return      Possible lzma_ret values:
445
 *              - LZMA_OK: *size set successfully. Note that this doesn't
376
 *                guarantee that filter->options is valid, thus
446
 *                guarantee that filter->options is valid, thus
377
 *                lzma_filter_flags_encode() may still fail.
447
 *                lzma_filter_flags_encode() may still fail.
378
 *              - LZMA_OPTIONS_ERROR: Unknown Filter ID or unsupported options.
448
 *              - LZMA_OPTIONS_ERROR: Unknown Filter ID or unsupported options.
379
 *              - LZMA_PROG_ERROR: Invalid options
449
 *              - LZMA_PROG_ERROR: Invalid options
380
 *
381
 * \note        If you need to calculate size of List of Filter Flags,
382
 *              you need to loop over every lzma_filter entry.
383
 */
450
 */
384
extern LZMA_API(lzma_ret) lzma_filter_flags_size(
451
extern LZMA_API(lzma_ret) lzma_filter_flags_size(
385
		uint32_t *size, const lzma_filter *filter)
452
		uint32_t *size, const lzma_filter *filter)
Lines 393-404 Link Here
393
 * This is due to how this function is used internally by liblzma.
460
 * This is due to how this function is used internally by liblzma.
394
 *
461
 *
395
 * \param       filter      Filter ID and options to be encoded
462
 * \param       filter      Filter ID and options to be encoded
396
 * \param       out         Beginning of the output buffer
463
 * \param[out]  out         Beginning of the output buffer
397
 * \param       out_pos     out[*out_pos] is the next write position. This
464
 * \param[out]  out_pos     out[*out_pos] is the next write position. This
398
 *                          is updated by the encoder.
465
 *                          is updated by the encoder.
399
 * \param       out_size    out[out_size] is the first byte to not write.
466
 * \param       out_size    out[out_size] is the first byte to not write.
400
 *
467
 *
401
 * \return      - LZMA_OK: Encoding was successful.
468
 * \return      Possible lzma_ret values:
469
 *              - LZMA_OK: Encoding was successful.
402
 *              - LZMA_OPTIONS_ERROR: Invalid or unsupported options.
470
 *              - LZMA_OPTIONS_ERROR: Invalid or unsupported options.
403
 *              - LZMA_PROG_ERROR: Invalid options or not enough output
471
 *              - LZMA_PROG_ERROR: Invalid options or not enough output
404
 *                buffer space (you should have checked it with
472
 *                buffer space (you should have checked it with
Lines 413-426 Link Here
413
 * \brief       Decode Filter Flags from given buffer
481
 * \brief       Decode Filter Flags from given buffer
414
 *
482
 *
415
 * The decoded result is stored into *filter. The old value of
483
 * The decoded result is stored into *filter. The old value of
416
 * filter->options is not free()d.
484
 * filter->options is not free()d. If anything other than LZMA_OK
485
 * is returned, filter->options is set to NULL.
417
 *
486
 *
418
 * \return      - LZMA_OK
487
 * \param[out]  filter      Destination filter. The decoded Filter ID will
488
 *                          be stored in filter->id. If options are needed
489
 *                          they will be allocated and the pointer will be
490
 *                          stored in filter->options.
491
 * \param       allocator   lzma_allocator for custom allocator functions.
492
 *                          Set to NULL to use malloc() and free().
493
 * \param       in          Beginning of the input buffer
494
 * \param[out]  in_pos      The next byte will be read from in[*in_pos].
495
 *                          *in_pos is updated only if decoding succeeds.
496
 * \param       in_size     Size of the input buffer; the first byte that
497
 *                          won't be read is in[in_size].
498
 *
499
 * \return      Possible lzma_ret values:
500
 *              - LZMA_OK
419
 *              - LZMA_OPTIONS_ERROR
501
 *              - LZMA_OPTIONS_ERROR
420
 *              - LZMA_MEM_ERROR
502
 *              - LZMA_MEM_ERROR
503
 *              - LZMA_DATA_ERROR
421
 *              - LZMA_PROG_ERROR
504
 *              - LZMA_PROG_ERROR
422
 */
505
 */
423
extern LZMA_API(lzma_ret) lzma_filter_flags_decode(
506
extern LZMA_API(lzma_ret) lzma_filter_flags_decode(
424
		lzma_filter *filter, const lzma_allocator *allocator,
507
		lzma_filter *filter, const lzma_allocator *allocator,
425
		const uint8_t *in, size_t *in_pos, size_t in_size)
508
		const uint8_t *in, size_t *in_pos, size_t in_size)
509
		lzma_nothrow lzma_attr_warn_unused_result;
510
511
512
/***********
513
 * Strings *
514
 ***********/
515
516
/**
517
 * \brief       Allow or show all filters
518
 *
519
 * By default only the filters supported in the .xz format are accept by
520
 * lzma_str_to_filters() or shown by lzma_str_list_filters().
521
 */
522
#define LZMA_STR_ALL_FILTERS    UINT32_C(0x01)
523
524
525
/**
526
 * \brief       Do not validate the filter chain in lzma_str_to_filters()
527
 *
528
 * By default lzma_str_to_filters() can return an error if the filter chain
529
 * as a whole isn't usable in the .xz format or in the raw encoder or decoder.
530
 * With this flag, this validation is skipped. This flag doesn't affect the
531
 * handling of the individual filter options. To allow non-.xz filters also
532
 * LZMA_STR_ALL_FILTERS is needed.
533
 */
534
#define LZMA_STR_NO_VALIDATION  UINT32_C(0x02)
535
536
537
/**
538
 * \brief       Stringify encoder options
539
 *
540
 * Show the filter-specific options that the encoder will use.
541
 * This may be useful for verbose diagnostic messages.
542
 *
543
 * Note that if options were decoded from .xz headers then the encoder options
544
 * may be undefined. This flag shouldn't be used in such a situation.
545
 */
546
#define LZMA_STR_ENCODER        UINT32_C(0x10)
547
548
549
/**
550
 * \brief       Stringify decoder options
551
 *
552
 * Show the filter-specific options that the decoder will use.
553
 * This may be useful for showing what filter options were decoded
554
 * from file headers.
555
 */
556
#define LZMA_STR_DECODER        UINT32_C(0x20)
557
558
559
/**
560
 * \brief       Produce xz-compatible getopt_long() syntax
561
 *
562
 * That is, "delta:dist=2 lzma2:dict=4MiB,pb=1,lp=1" becomes
563
 * "--delta=dist=2 --lzma2=dict=4MiB,pb=1,lp=1".
564
 *
565
 * This syntax is compatible with xz 5.0.0 as long as the filters and
566
 * their options are supported too.
567
 */
568
#define LZMA_STR_GETOPT_LONG    UINT32_C(0x40)
569
570
571
/**
572
 * \brief       Use two dashes "--" instead of a space to separate filters
573
 *
574
 * That is, "delta:dist=2 lzma2:pb=1,lp=1" becomes
575
 * "delta:dist=2--lzma2:pb=1,lp=1". This looks slightly odd but this
576
 * kind of strings should be usable on the command line without quoting.
577
 * However, it is possible that future versions with new filter options
578
 * might produce strings that require shell quoting anyway as the exact
579
 * set of possible characters isn't frozen for now.
580
 *
581
 * It is guaranteed that the single quote (') will never be used in
582
 * filter chain strings (even if LZMA_STR_NO_SPACES isn't used).
583
 */
584
#define LZMA_STR_NO_SPACES      UINT32_C(0x80)
585
586
587
/**
588
 * \brief       Convert a string to a filter chain
589
 *
590
 * This tries to make it easier to write applications that allow users
591
 * to set custom compression options. This only handles the filter
592
 * configuration (including presets) but not the number of threads,
593
 * block size, check type, or memory limits.
594
 *
595
 * The input string can be either a preset or a filter chain. Presets
596
 * begin with a digit 0-9 and may be followed by zero or more flags
597
 * which are lower-case letters. Currently only "e" is supported, matching
598
 * LZMA_PRESET_EXTREME. For partial xz command line syntax compatibility,
599
 * a preset string may start with a single dash "-".
600
 *
601
 * A filter chain consists of one or more "filtername:opt1=value1,opt2=value2"
602
 * strings separated by one or more spaces. Leading and trailing spaces are
603
 * ignored. All names and values must be lower-case. Extra commas in the
604
 * option list are ignored. The order of filters is significant: when
605
 * encoding, the uncompressed input data goes to the leftmost filter first.
606
 * Normally "lzma2" is the last filter in the chain.
607
 *
608
 * If one wishes to avoid spaces, for example, to avoid shell quoting,
609
 * it is possible to use two dashes "--" instead of spaces to separate
610
 * the filters.
611
 *
612
 * For xz command line compatibility, each filter may be prefixed with
613
 * two dashes "--" and the colon ":" separating the filter name from
614
 * the options may be replaced with an equals sign "=".
615
 *
616
 * By default, only filters that can be used in the .xz format are accepted.
617
 * To allow all filters (LZMA1) use the flag LZMA_STR_ALL_FILTERS.
618
 *
619
 * By default, very basic validation is done for the filter chain as a whole,
620
 * for example, that LZMA2 is only used as the last filter in the chain.
621
 * The validation isn't perfect though and it's possible that this function
622
 * succeeds but using the filter chain for encoding or decoding will still
623
 * result in LZMA_OPTIONS_ERROR. To disable this validation, use the flag
624
 * LZMA_STR_NO_VALIDATION.
625
 *
626
 * The available filter names and their options are available via
627
 * lzma_str_list_filters(). See the xz man page for the description
628
 * of filter names and options.
629
 *
630
 * For command line applications, below is an example how an error message
631
 * can be displayed. Note the use of an empty string for the field width.
632
 * If "^" was used there it would create an off-by-one error except at
633
 * the very beginning of the line.
634
 *
635
 * \code{.c}
636
 * const char *str = ...; // From user
637
 * lzma_filter filters[LZMA_FILTERS_MAX + 1];
638
 * int pos;
639
 * const char *msg = lzma_str_to_filters(str, &pos, filters, 0, NULL);
640
 * if (msg != NULL) {
641
 *     printf("%s: Error in XZ compression options:\n", argv[0]);
642
 *     printf("%s: %s\n", argv[0], str);
643
 *     printf("%s: %*s^\n", argv[0], errpos, "");
644
 *     printf("%s: %s\n", argv[0], msg);
645
 * }
646
 * \endcode
647
 *
648
 * \param       str         User-supplied string describing a preset or
649
 *                          a filter chain. If a default value is needed and
650
 *                          you don't know what would be good, use "6" since
651
 *                          that is the default preset in xz too.
652
 * \param[out]  error_pos   If this isn't NULL, this value will be set on
653
 *                          both success and on all errors. This tells the
654
 *                          location of the error in the string. This is
655
 *                          an int to make it straightforward to use this
656
 *                          as printf() field width. The value is guaranteed
657
 *                          to be in the range [0, INT_MAX] even if strlen(str)
658
 *                          somehow was greater than INT_MAX.
659
 * \param[out]  filters     An array of lzma_filter structures. There must
660
 *                          be LZMA_FILTERS_MAX + 1 (that is, five) elements
661
 *                          in the array. The old contents are ignored so it
662
 *                          doesn't need to be initialized. This array is
663
 *                          modified only if this function returns NULL.
664
 *                          Once the allocated filter options are no longer
665
 *                          needed, lzma_filters_free() can be used to free the
666
 *                          options (it doesn't free the filters array itself).
667
 * \param       flags       Bitwise-or of zero or more of the flags
668
 *                          LZMA_STR_ALL_FILTERS and LZMA_STR_NO_VALIDATION.
669
 * \param       allocator   lzma_allocator for custom allocator functions.
670
 *                          Set to NULL to use malloc() and free().
671
 *
672
 * \return      On success, NULL is returned. On error, a statically-allocated
673
 *              error message is returned which together with the error_pos
674
 *              should give some idea what is wrong.
675
 */
676
extern LZMA_API(const char *) lzma_str_to_filters(
677
		const char *str, int *error_pos, lzma_filter *filters,
678
		uint32_t flags, const lzma_allocator *allocator)
679
		lzma_nothrow lzma_attr_warn_unused_result;
680
681
682
/**
683
 * \brief       Convert a filter chain to a string
684
 *
685
 * Use cases:
686
 *
687
 *   - Verbose output showing the full encoder options to the user
688
 *     (use LZMA_STR_ENCODER in flags)
689
 *
690
 *   - Showing the filters and options that are required to decode a file
691
 *     (use LZMA_STR_DECODER in flags)
692
 *
693
 *   - Showing the filter names without any options in informational messages
694
 *     where the technical details aren't important (no flags). In this case
695
 *     the .options in the filters array are ignored and may be NULL even if
696
 *     a filter has a mandatory options structure.
697
 *
698
 * Note that even if the filter chain was specified using a preset,
699
 * the resulting filter chain isn't reversed to a preset. So if you
700
 * specify "6" to lzma_str_to_filters() then lzma_str_from_filters()
701
 * will produce a string containing "lzma2".
702
 *
703
 * \param[out]  str         On success *str will be set to point to an
704
 *                          allocated string describing the given filter
705
 *                          chain. Old value is ignored. On error *str is
706
 *                          always set to NULL.
707
 * \param       filters     Array of filters terminated with
708
 *                          .id == LZMA_VLI_UNKNOWN.
709
 * \param       flags       Bitwise-or of zero or more of the flags
710
 *                          LZMA_STR_ENCODER, LZMA_STR_DECODER,
711
 *                          LZMA_STR_GETOPT_LONG, and LZMA_STR_NO_SPACES.
712
 * \param       allocator   lzma_allocator for custom allocator functions.
713
 *                          Set to NULL to use malloc() and free().
714
 *
715
 * \return      Possible lzma_ret values:
716
 *              - LZMA_OK
717
 *              - LZMA_OPTIONS_ERROR: Empty filter chain
718
 *                (filters[0].id == LZMA_VLI_UNKNOWN) or the filter chain
719
 *                includes a Filter ID that is not supported by this function.
720
 *              - LZMA_MEM_ERROR
721
 *              - LZMA_PROG_ERROR
722
 */
723
extern LZMA_API(lzma_ret) lzma_str_from_filters(
724
		char **str, const lzma_filter *filters, uint32_t flags,
725
		const lzma_allocator *allocator)
726
		lzma_nothrow lzma_attr_warn_unused_result;
727
728
729
/**
730
 * \brief       List available filters and/or their options (for help message)
731
 *
732
 * If a filter_id is given then only one line is created which contains the
733
 * filter name. If LZMA_STR_ENCODER or LZMA_STR_DECODER is used then the
734
 * options required for encoding or decoding are listed on the same line too.
735
 *
736
 * If filter_id is LZMA_VLI_UNKNOWN then all supported .xz-compatible filters
737
 * are listed:
738
 *
739
 *   - If neither LZMA_STR_ENCODER nor LZMA_STR_DECODER is used then
740
 *     the supported filter names are listed on a single line separated
741
 *     by spaces.
742
 *
743
 *   - If LZMA_STR_ENCODER or LZMA_STR_DECODER is used then filters and
744
 *     the supported options are listed one filter per line. There won't
745
 *     be a newline after the last filter.
746
 *
747
 *   - If LZMA_STR_ALL_FILTERS is used then the list will include also
748
 *     those filters that cannot be used in the .xz format (LZMA1).
749
 *
750
 * \param       str         On success *str will be set to point to an
751
 *                          allocated string listing the filters and options.
752
 *                          Old value is ignored. On error *str is always set
753
 *                          to NULL.
754
 * \param       filter_id   Filter ID or LZMA_VLI_UNKNOWN.
755
 * \param       flags       Bitwise-or of zero or more of the flags
756
 *                          LZMA_STR_ALL_FILTERS, LZMA_STR_ENCODER,
757
 *                          LZMA_STR_DECODER, and LZMA_STR_GETOPT_LONG.
758
 * \param       allocator   lzma_allocator for custom allocator functions.
759
 *                          Set to NULL to use malloc() and free().
760
 *
761
 * \return      Possible lzma_ret values:
762
 *              - LZMA_OK
763
 *              - LZMA_OPTIONS_ERROR: Unsupported filter_id or flags
764
 *              - LZMA_MEM_ERROR
765
 *              - LZMA_PROG_ERROR
766
 */
767
extern LZMA_API(lzma_ret) lzma_str_list_filters(
768
		char **str, lzma_vli filter_id, uint32_t flags,
769
		const lzma_allocator *allocator)
426
		lzma_nothrow lzma_attr_warn_unused_result;
770
		lzma_nothrow lzma_attr_warn_unused_result;
(-)xz-5.2.5/src/liblzma/api/lzma/hardware.h (-3 / +2 lines)
Lines 1-6 Link Here
1
/**
1
/**
2
 * \file        lzma/hardware.h
2
 * \file        lzma/hardware.h
3
 * \brief       Hardware information
3
 * \brief       Hardware information
4
 * \note        Never include this file directly. Use <lzma.h> instead.
4
 *
5
 *
5
 * Since liblzma can consume a lot of system resources, it also provides
6
 * Since liblzma can consume a lot of system resources, it also provides
6
 * ways to limit the resource usage. Applications linking against liblzma
7
 * ways to limit the resource usage. Applications linking against liblzma
Lines 25-32 Link Here
25
 *
26
 *
26
 * This file has been put into the public domain.
27
 * This file has been put into the public domain.
27
 * You can do whatever you want with this file.
28
 * You can do whatever you want with this file.
28
 *
29
 * See ../lzma.h for information about liblzma as a whole.
30
 */
29
 */
31
30
32
#ifndef LZMA_H_INTERNAL
31
#ifndef LZMA_H_INTERNAL
Lines 57-63 Link Here
57
 * If the hardware supports more than one thread per CPU core, the number
56
 * If the hardware supports more than one thread per CPU core, the number
58
 * of hardware threads is returned if that information is available.
57
 * of hardware threads is returned if that information is available.
59
 *
58
 *
60
 * \brief       On success, the number of available CPU threads or cores is
59
 * \return      On success, the number of available CPU threads or cores is
61
 *              returned. If this information isn't available or an error
60
 *              returned. If this information isn't available or an error
62
 *              occurs, zero is returned.
61
 *              occurs, zero is returned.
63
 */
62
 */
(-)xz-5.2.5/src/liblzma/api/lzma/index.h (-46 / +220 lines)
Lines 1-6 Link Here
1
/**
1
/**
2
 * \file        lzma/index.h
2
 * \file        lzma/index.h
3
 * \brief       Handling of .xz Index and related information
3
 * \brief       Handling of .xz Index and related information
4
 * \note        Never include this file directly. Use <lzma.h> instead.
4
 */
5
 */
5
6
6
/*
7
/*
Lines 8-15 Link Here
8
 *
9
 *
9
 * This file has been put into the public domain.
10
 * This file has been put into the public domain.
10
 * You can do whatever you want with this file.
11
 * You can do whatever you want with this file.
11
 *
12
 * See ../lzma.h for information about liblzma as a whole.
13
 */
12
 */
14
13
15
#ifndef LZMA_H_INTERNAL
14
#ifndef LZMA_H_INTERNAL
Lines 50-57 Link Here
50
		 */
49
		 */
51
		const lzma_stream_flags *flags;
50
		const lzma_stream_flags *flags;
52
51
52
		/** \private     Reserved member. */
53
		const void *reserved_ptr1;
53
		const void *reserved_ptr1;
54
55
		/** \private     Reserved member. */
54
		const void *reserved_ptr2;
56
		const void *reserved_ptr2;
57
58
		/** \private     Reserved member. */
55
		const void *reserved_ptr3;
59
		const void *reserved_ptr3;
56
60
57
		/**
61
		/**
Lines 107-115 Link Here
107
		 */
111
		 */
108
		lzma_vli padding;
112
		lzma_vli padding;
109
113
114
115
		/** \private     Reserved member. */
110
		lzma_vli reserved_vli1;
116
		lzma_vli reserved_vli1;
117
118
		/** \private     Reserved member. */
111
		lzma_vli reserved_vli2;
119
		lzma_vli reserved_vli2;
120
121
		/** \private     Reserved member. */
112
		lzma_vli reserved_vli3;
122
		lzma_vli reserved_vli3;
123
124
		/** \private     Reserved member. */
113
		lzma_vli reserved_vli4;
125
		lzma_vli reserved_vli4;
114
	} stream;
126
	} stream;
115
127
Lines 196-220 Link Here
196
		 */
208
		 */
197
		lzma_vli total_size;
209
		lzma_vli total_size;
198
210
211
		/** \private     Reserved member. */
199
		lzma_vli reserved_vli1;
212
		lzma_vli reserved_vli1;
213
214
		/** \private     Reserved member. */
200
		lzma_vli reserved_vli2;
215
		lzma_vli reserved_vli2;
216
217
		/** \private     Reserved member. */
201
		lzma_vli reserved_vli3;
218
		lzma_vli reserved_vli3;
219
220
		/** \private     Reserved member. */
202
		lzma_vli reserved_vli4;
221
		lzma_vli reserved_vli4;
203
222
223
		/** \private     Reserved member. */
204
		const void *reserved_ptr1;
224
		const void *reserved_ptr1;
225
226
		/** \private     Reserved member. */
205
		const void *reserved_ptr2;
227
		const void *reserved_ptr2;
228
229
		/** \private     Reserved member. */
206
		const void *reserved_ptr3;
230
		const void *reserved_ptr3;
231
232
		/** \private     Reserved member. */
207
		const void *reserved_ptr4;
233
		const void *reserved_ptr4;
208
	} block;
234
	} block;
209
235
210
	/*
236
	/**
237
	 * \private     Internal struct.
238
	 *
211
	 * Internal data which is used to store the state of the iterator.
239
	 * Internal data which is used to store the state of the iterator.
212
	 * The exact format may vary between liblzma versions, so don't
240
	 * The exact format may vary between liblzma versions, so don't
213
	 * touch these in any way.
241
	 * touch these in any way.
214
	 */
242
	 */
215
	union {
243
	union {
244
		/** \private     Internal member. */
216
		const void *p;
245
		const void *p;
246
247
		/** \private     Internal member. */
217
		size_t s;
248
		size_t s;
249
250
		/** \private     Internal member. */
218
		lzma_vli v;
251
		lzma_vli v;
219
	} internal[6];
252
	} internal[6];
220
} lzma_index_iter;
253
} lzma_index_iter;
Lines 272-287 Link Here
272
 * \brief       Calculate memory usage of lzma_index
305
 * \brief       Calculate memory usage of lzma_index
273
 *
306
 *
274
 * On disk, the size of the Index field depends on both the number of Records
307
 * On disk, the size of the Index field depends on both the number of Records
275
 * stored and how big values the Records store (due to variable-length integer
308
 * stored and the size of the Records (due to variable-length integer
276
 * encoding). When the Index is kept in lzma_index structure, the memory usage
309
 * encoding). When the Index is kept in lzma_index structure, the memory usage
277
 * depends only on the number of Records/Blocks stored in the Index(es), and
310
 * depends only on the number of Records/Blocks stored in the Index(es), and
278
 * in case of concatenated lzma_indexes, the number of Streams. The size in
311
 * in case of concatenated lzma_indexes, the number of Streams. The size in
279
 * RAM is almost always significantly bigger than in the encoded form on disk.
312
 * RAM is almost always significantly bigger than in the encoded form on disk.
280
 *
313
 *
281
 * This function calculates an approximate amount of memory needed hold
314
 * This function calculates an approximate amount of memory needed to hold
282
 * the given number of Streams and Blocks in lzma_index structure. This
315
 * the given number of Streams and Blocks in lzma_index structure. This
283
 * value may vary between CPU architectures and also between liblzma versions
316
 * value may vary between CPU architectures and also between liblzma versions
284
 * if the internal implementation is modified.
317
 * if the internal implementation is modified.
318
 *
319
 * \param       streams Number of Streams
320
 * \param       blocks  Number of Blocks
321
 *
322
 * \return      Approximate memory in bytes needed in a lzma_index structure.
285
 */
323
 */
286
extern LZMA_API(uint64_t) lzma_index_memusage(
324
extern LZMA_API(uint64_t) lzma_index_memusage(
287
		lzma_vli streams, lzma_vli blocks) lzma_nothrow;
325
		lzma_vli streams, lzma_vli blocks) lzma_nothrow;
Lines 292-297 Link Here
292
 *
330
 *
293
 * This is a shorthand for lzma_index_memusage(lzma_index_stream_count(i),
331
 * This is a shorthand for lzma_index_memusage(lzma_index_stream_count(i),
294
 * lzma_index_block_count(i)).
332
 * lzma_index_block_count(i)).
333
 *
334
 * \param       i   Pointer to lzma_index structure
335
 *
336
 * \return      Approximate memory in bytes used by the lzma_index structure.
295
 */
337
 */
296
extern LZMA_API(uint64_t) lzma_index_memused(const lzma_index *i)
338
extern LZMA_API(uint64_t) lzma_index_memused(const lzma_index *i)
297
		lzma_nothrow;
339
		lzma_nothrow;
Lines 300-305 Link Here
300
/**
342
/**
301
 * \brief       Allocate and initialize a new lzma_index structure
343
 * \brief       Allocate and initialize a new lzma_index structure
302
 *
344
 *
345
 * \param       allocator   lzma_allocator for custom allocator functions.
346
 *                          Set to NULL to use malloc() and free().
347
 *
303
 * \return      On success, a pointer to an empty initialized lzma_index is
348
 * \return      On success, a pointer to an empty initialized lzma_index is
304
 *              returned. If allocation fails, NULL is returned.
349
 *              returned. If allocation fails, NULL is returned.
305
 */
350
 */
Lines 311-316 Link Here
311
 * \brief       Deallocate lzma_index
356
 * \brief       Deallocate lzma_index
312
 *
357
 *
313
 * If i is NULL, this does nothing.
358
 * If i is NULL, this does nothing.
359
 *
360
 * \param       i           Pointer to lzma_index structure to deallocate
361
 * \param       allocator   lzma_allocator for custom allocator functions.
362
 *                          Set to NULL to use malloc() and free().
314
 */
363
 */
315
extern LZMA_API(void) lzma_index_end(
364
extern LZMA_API(void) lzma_index_end(
316
		lzma_index *i, const lzma_allocator *allocator) lzma_nothrow;
365
		lzma_index *i, const lzma_allocator *allocator) lzma_nothrow;
Lines 320-327 Link Here
320
 * \brief       Add a new Block to lzma_index
369
 * \brief       Add a new Block to lzma_index
321
 *
370
 *
322
 * \param       i                 Pointer to a lzma_index structure
371
 * \param       i                 Pointer to a lzma_index structure
323
 * \param       allocator         Pointer to lzma_allocator, or NULL to
372
 * \param       allocator         lzma_allocator for custom allocator
324
 *                                use malloc()
373
 *                                functions. Set to NULL to use malloc()
374
 *                                and free().
325
 * \param       unpadded_size     Unpadded Size of a Block. This can be
375
 * \param       unpadded_size     Unpadded Size of a Block. This can be
326
 *                                calculated with lzma_block_unpadded_size()
376
 *                                calculated with lzma_block_unpadded_size()
327
 *                                after encoding or decoding the Block.
377
 *                                after encoding or decoding the Block.
Lines 334-340 Link Here
334
 * lzma_index_append() it is possible to read the next Block with
384
 * lzma_index_append() it is possible to read the next Block with
335
 * an existing iterator.
385
 * an existing iterator.
336
 *
386
 *
337
 * \return      - LZMA_OK
387
 * \return      Possible lzma_ret values:
388
 *              - LZMA_OK
338
 *              - LZMA_MEM_ERROR
389
 *              - LZMA_MEM_ERROR
339
 *              - LZMA_DATA_ERROR: Compressed or uncompressed size of the
390
 *              - LZMA_DATA_ERROR: Compressed or uncompressed size of the
340
 *                Stream or size of the Index field would grow too big.
391
 *                Stream or size of the Index field would grow too big.
Lines 354-364 Link Here
354
 * lzma_index, because to decode Blocks, knowing the integrity check type
405
 * lzma_index, because to decode Blocks, knowing the integrity check type
355
 * is needed.
406
 * is needed.
356
 *
407
 *
357
 * The given Stream Flags are copied into internal preallocated structure
408
 * \param       i              Pointer to lzma_index structure
358
 * in the lzma_index, thus the caller doesn't need to keep the *stream_flags
409
 * \param       stream_flags   Pointer to lzma_stream_flags structure. This
359
 * available after calling this function.
410
 *                             is copied into the internal preallocated
411
 *                             structure, so the caller doesn't need to keep
412
 *                             the flags' data available after calling this
413
 *                             function.
360
 *
414
 *
361
 * \return      - LZMA_OK
415
 * \return      Possible lzma_ret values:
416
 *              - LZMA_OK
362
 *              - LZMA_OPTIONS_ERROR: Unsupported stream_flags->version.
417
 *              - LZMA_OPTIONS_ERROR: Unsupported stream_flags->version.
363
 *              - LZMA_PROG_ERROR
418
 *              - LZMA_PROG_ERROR
364
 */
419
 */
Lines 376-381 Link Here
376
 * showing the Check types to the user.
431
 * showing the Check types to the user.
377
 *
432
 *
378
 * The bitmask is 1 << check_id, e.g. CRC32 is 1 << 1 and SHA-256 is 1 << 10.
433
 * The bitmask is 1 << check_id, e.g. CRC32 is 1 << 1 and SHA-256 is 1 << 10.
434
 *
435
 * \param       i   Pointer to lzma_index structure
436
 *
437
 * \return      Bitmask indicating which Check types are used in the lzma_index
379
 */
438
 */
380
extern LZMA_API(uint32_t) lzma_index_checks(const lzma_index *i)
439
extern LZMA_API(uint32_t) lzma_index_checks(const lzma_index *i)
381
		lzma_nothrow lzma_attr_pure;
440
		lzma_nothrow lzma_attr_pure;
Lines 390-396 Link Here
390
 *
449
 *
391
 * By default, the amount of Stream Padding is assumed to be zero bytes.
450
 * By default, the amount of Stream Padding is assumed to be zero bytes.
392
 *
451
 *
393
 * \return      - LZMA_OK
452
 * \return      Possible lzma_ret values:
453
 *              - LZMA_OK
394
 *              - LZMA_DATA_ERROR: The file size would grow too big.
454
 *              - LZMA_DATA_ERROR: The file size would grow too big.
395
 *              - LZMA_PROG_ERROR
455
 *              - LZMA_PROG_ERROR
396
 */
456
 */
Lines 401-406 Link Here
401
461
402
/**
462
/**
403
 * \brief       Get the number of Streams
463
 * \brief       Get the number of Streams
464
 *
465
 * \param       i   Pointer to lzma_index structure
466
 *
467
 * \return      Number of Streams in the lzma_index
404
 */
468
 */
405
extern LZMA_API(lzma_vli) lzma_index_stream_count(const lzma_index *i)
469
extern LZMA_API(lzma_vli) lzma_index_stream_count(const lzma_index *i)
406
		lzma_nothrow lzma_attr_pure;
470
		lzma_nothrow lzma_attr_pure;
Lines 411-416 Link Here
411
 *
475
 *
412
 * This returns the total number of Blocks in lzma_index. To get number
476
 * This returns the total number of Blocks in lzma_index. To get number
413
 * of Blocks in individual Streams, use lzma_index_iter.
477
 * of Blocks in individual Streams, use lzma_index_iter.
478
 *
479
 * \param       i   Pointer to lzma_index structure
480
 *
481
 * \return      Number of blocks in the lzma_index
414
 */
482
 */
415
extern LZMA_API(lzma_vli) lzma_index_block_count(const lzma_index *i)
483
extern LZMA_API(lzma_vli) lzma_index_block_count(const lzma_index *i)
416
		lzma_nothrow lzma_attr_pure;
484
		lzma_nothrow lzma_attr_pure;
Lines 420-425 Link Here
420
 * \brief       Get the size of the Index field as bytes
488
 * \brief       Get the size of the Index field as bytes
421
 *
489
 *
422
 * This is needed to verify the Backward Size field in the Stream Footer.
490
 * This is needed to verify the Backward Size field in the Stream Footer.
491
 *
492
 * \param       i   Pointer to lzma_index structure
493
 *
494
 * \return      Size in bytes of the Index
423
 */
495
 */
424
extern LZMA_API(lzma_vli) lzma_index_size(const lzma_index *i)
496
extern LZMA_API(lzma_vli) lzma_index_size(const lzma_index *i)
425
		lzma_nothrow lzma_attr_pure;
497
		lzma_nothrow lzma_attr_pure;
Lines 431-436 Link Here
431
 * If multiple lzma_indexes have been combined, this works as if the Blocks
503
 * If multiple lzma_indexes have been combined, this works as if the Blocks
432
 * were in a single Stream. This is useful if you are going to combine
504
 * were in a single Stream. This is useful if you are going to combine
433
 * Blocks from multiple Streams into a single new Stream.
505
 * Blocks from multiple Streams into a single new Stream.
506
 *
507
 * \param       i   Pointer to lzma_index structure
508
 *
509
 * \return      Size in bytes of the Stream (if all Blocks are combined
510
 *              into one Stream).
434
 */
511
 */
435
extern LZMA_API(lzma_vli) lzma_index_stream_size(const lzma_index *i)
512
extern LZMA_API(lzma_vli) lzma_index_stream_size(const lzma_index *i)
436
		lzma_nothrow lzma_attr_pure;
513
		lzma_nothrow lzma_attr_pure;
Lines 441-446 Link Here
441
 *
518
 *
442
 * This doesn't include the Stream Header, Stream Footer, Stream Padding,
519
 * This doesn't include the Stream Header, Stream Footer, Stream Padding,
443
 * or Index fields.
520
 * or Index fields.
521
 *
522
 * \param       i   Pointer to lzma_index structure
523
 *
524
 * \return      Size in bytes of all Blocks in the Stream(s)
444
 */
525
 */
445
extern LZMA_API(lzma_vli) lzma_index_total_size(const lzma_index *i)
526
extern LZMA_API(lzma_vli) lzma_index_total_size(const lzma_index *i)
446
		lzma_nothrow lzma_attr_pure;
527
		lzma_nothrow lzma_attr_pure;
Lines 453-458 Link Here
453
 * no Stream Padding, this function is identical to lzma_index_stream_size().
534
 * no Stream Padding, this function is identical to lzma_index_stream_size().
454
 * If multiple lzma_indexes have been combined, this includes also the headers
535
 * If multiple lzma_indexes have been combined, this includes also the headers
455
 * of each separate Stream and the possible Stream Padding fields.
536
 * of each separate Stream and the possible Stream Padding fields.
537
 *
538
 * \param       i   Pointer to lzma_index structure
539
 *
540
 * \return      Total size of the .xz file in bytes
456
 */
541
 */
457
extern LZMA_API(lzma_vli) lzma_index_file_size(const lzma_index *i)
542
extern LZMA_API(lzma_vli) lzma_index_file_size(const lzma_index *i)
458
		lzma_nothrow lzma_attr_pure;
543
		lzma_nothrow lzma_attr_pure;
Lines 460-465 Link Here
460
545
461
/**
546
/**
462
 * \brief       Get the uncompressed size of the file
547
 * \brief       Get the uncompressed size of the file
548
 *
549
 * \param       i   Pointer to lzma_index structure
550
 *
551
 * \return      Size in bytes of the uncompressed data in the file
463
 */
552
 */
464
extern LZMA_API(lzma_vli) lzma_index_uncompressed_size(const lzma_index *i)
553
extern LZMA_API(lzma_vli) lzma_index_uncompressed_size(const lzma_index *i)
465
		lzma_nothrow lzma_attr_pure;
554
		lzma_nothrow lzma_attr_pure;
Lines 468-476 Link Here
468
/**
557
/**
469
 * \brief       Initialize an iterator
558
 * \brief       Initialize an iterator
470
 *
559
 *
471
 * \param       iter    Pointer to a lzma_index_iter structure
472
 * \param       i       lzma_index to which the iterator will be associated
473
 *
474
 * This function associates the iterator with the given lzma_index, and calls
560
 * This function associates the iterator with the given lzma_index, and calls
475
 * lzma_index_iter_rewind() on the iterator.
561
 * lzma_index_iter_rewind() on the iterator.
476
 *
562
 *
Lines 483-488 Link Here
483
 *
569
 *
484
 * It is safe to make copies of an initialized lzma_index_iter, for example,
570
 * It is safe to make copies of an initialized lzma_index_iter, for example,
485
 * to easily restart reading at some particular position.
571
 * to easily restart reading at some particular position.
572
 *
573
 * \param       iter    Pointer to a lzma_index_iter structure
574
 * \param       i       lzma_index to which the iterator will be associated
486
 */
575
 */
487
extern LZMA_API(void) lzma_index_iter_init(
576
extern LZMA_API(void) lzma_index_iter_init(
488
		lzma_index_iter *iter, const lzma_index *i) lzma_nothrow;
577
		lzma_index_iter *iter, const lzma_index *i) lzma_nothrow;
Lines 493-498 Link Here
493
 *
582
 *
494
 * Rewind the iterator so that next call to lzma_index_iter_next() will
583
 * Rewind the iterator so that next call to lzma_index_iter_next() will
495
 * return the first Block or Stream.
584
 * return the first Block or Stream.
585
 *
586
 * \param       iter    Pointer to a lzma_index_iter structure
496
 */
587
 */
497
extern LZMA_API(void) lzma_index_iter_rewind(lzma_index_iter *iter)
588
extern LZMA_API(void) lzma_index_iter_rewind(lzma_index_iter *iter)
498
		lzma_nothrow;
589
		lzma_nothrow;
Lines 505-515 Link Here
505
 * \param       mode    Specify what kind of information the caller wants
596
 * \param       mode    Specify what kind of information the caller wants
506
 *                      to get. See lzma_index_iter_mode for details.
597
 *                      to get. See lzma_index_iter_mode for details.
507
 *
598
 *
508
 * \return      If next Block or Stream matching the mode was found, *iter
599
 * \return      lzma_bool:
509
 *              is updated and this function returns false. If no Block or
600
 *              - true if no Block or Stream matching the mode is found.
510
 *              Stream matching the mode is found, *iter is not modified
601
 *                *iter is not updated (failure).
511
 *              and this function returns true. If mode is set to an unknown
602
 *              - false if the next Block or Stream matching the mode was
512
 *              value, *iter is not modified and this function returns true.
603
 *                found. *iter is updated (success).
513
 */
604
 */
514
extern LZMA_API(lzma_bool) lzma_index_iter_next(
605
extern LZMA_API(lzma_bool) lzma_index_iter_next(
515
		lzma_index_iter *iter, lzma_index_iter_mode mode)
606
		lzma_index_iter *iter, lzma_index_iter_mode mode)
Lines 523-543 Link Here
523
 * the Index field(s) and use lzma_index_iter_locate() to do random-access
614
 * the Index field(s) and use lzma_index_iter_locate() to do random-access
524
 * reading with granularity of Block size.
615
 * reading with granularity of Block size.
525
 *
616
 *
526
 * \param       iter    Iterator that was earlier initialized with
527
 *                      lzma_index_iter_init().
528
 * \param       target  Uncompressed target offset which the caller would
529
 *                      like to locate from the Stream
530
 *
531
 * If the target is smaller than the uncompressed size of the Stream (can be
617
 * If the target is smaller than the uncompressed size of the Stream (can be
532
 * checked with lzma_index_uncompressed_size()):
618
 * checked with lzma_index_uncompressed_size()):
533
 *  - Information about the Stream and Block containing the requested
619
 *  - Information about the Stream and Block containing the requested
534
 *    uncompressed offset is stored into *iter.
620
 *    uncompressed offset is stored into *iter.
535
 *  - Internal state of the iterator is adjusted so that
621
 *  - Internal state of the iterator is adjusted so that
536
 *    lzma_index_iter_next() can be used to read subsequent Blocks or Streams.
622
 *    lzma_index_iter_next() can be used to read subsequent Blocks or Streams.
537
 *  - This function returns false.
538
 *
623
 *
539
 * If target is greater than the uncompressed size of the Stream, *iter
624
 * If the target is greater than the uncompressed size of the Stream, *iter
540
 * is not modified, and this function returns true.
625
 * is not modified.
626
 *
627
 * \param       iter    Iterator that was earlier initialized with
628
 *                      lzma_index_iter_init().
629
 * \param       target  Uncompressed target offset which the caller would
630
 *                      like to locate from the Stream
631
 *
632
 * \return      lzma_bool:
633
 *              - true if the target is greater than or equal to the
634
 *                uncompressed size of the Stream (failure)
635
 *              - false if the target is smaller than the uncompressed size
636
 *                of the Stream (success)
541
 */
637
 */
542
extern LZMA_API(lzma_bool) lzma_index_iter_locate(
638
extern LZMA_API(lzma_bool) lzma_index_iter_locate(
543
		lzma_index_iter *iter, lzma_vli target) lzma_nothrow;
639
		lzma_index_iter *iter, lzma_vli target) lzma_nothrow;
Lines 550-564 Link Here
550
 * multi-Stream .xz file, or when combining multiple Streams into single
646
 * multi-Stream .xz file, or when combining multiple Streams into single
551
 * Stream.
647
 * Stream.
552
 *
648
 *
553
 * \param       dest      lzma_index after which src is appended
649
 * \param[out]  dest      lzma_index after which src is appended
554
 * \param       src       lzma_index to be appended after dest. If this
650
 * \param       src       lzma_index to be appended after dest. If this
555
 *                        function succeeds, the memory allocated for src
651
 *                        function succeeds, the memory allocated for src
556
 *                        is freed or moved to be part of dest, and all
652
 *                        is freed or moved to be part of dest, and all
557
 *                        iterators pointing to src will become invalid.
653
 *                        iterators pointing to src will become invalid.
558
 * \param       allocator Custom memory allocator; can be NULL to use
654
* \param       allocator  lzma_allocator for custom allocator functions.
559
 *                        malloc() and free().
655
 *                        Set to NULL to use malloc() and free().
560
 *
656
 *
561
 * \return      - LZMA_OK: lzma_indexes were concatenated successfully.
657
 * \return      Possible lzma_ret values:
658
 *              - LZMA_OK: lzma_indexes were concatenated successfully.
562
 *                src is now a dangling pointer.
659
 *                src is now a dangling pointer.
563
 *              - LZMA_DATA_ERROR: *dest would grow too big.
660
 *              - LZMA_DATA_ERROR: *dest would grow too big.
564
 *              - LZMA_MEM_ERROR
661
 *              - LZMA_MEM_ERROR
Lines 572-577 Link Here
572
/**
669
/**
573
 * \brief       Duplicate lzma_index
670
 * \brief       Duplicate lzma_index
574
 *
671
 *
672
 * \param       i         Pointer to lzma_index structure to be duplicated
673
 * \param       allocator lzma_allocator for custom allocator functions.
674
 *                        Set to NULL to use malloc() and free().
675
 *
575
 * \return      A copy of the lzma_index, or NULL if memory allocation failed.
676
 * \return      A copy of the lzma_index, or NULL if memory allocation failed.
576
 */
677
 */
577
extern LZMA_API(lzma_index *) lzma_index_dup(
678
extern LZMA_API(lzma_index *) lzma_index_dup(
Lines 588-594 Link Here
588
 * The valid `action' values for lzma_code() are LZMA_RUN and LZMA_FINISH.
689
 * The valid `action' values for lzma_code() are LZMA_RUN and LZMA_FINISH.
589
 * It is enough to use only one of them (you can choose freely).
690
 * It is enough to use only one of them (you can choose freely).
590
 *
691
 *
591
 * \return      - LZMA_OK: Initialization succeeded, continue with lzma_code().
692
 * \return      Possible lzma_ret values:
693
 *              - LZMA_OK: Initialization succeeded, continue with lzma_code().
592
 *              - LZMA_MEM_ERROR
694
 *              - LZMA_MEM_ERROR
593
 *              - LZMA_PROG_ERROR
695
 *              - LZMA_PROG_ERROR
594
 */
696
 */
Lines 601-607 Link Here
601
 * \brief       Initialize .xz Index decoder
703
 * \brief       Initialize .xz Index decoder
602
 *
704
 *
603
 * \param       strm        Pointer to properly prepared lzma_stream
705
 * \param       strm        Pointer to properly prepared lzma_stream
604
 * \param       i           The decoded Index will be made available via
706
 * \param[out]  i           The decoded Index will be made available via
605
 *                          this pointer. Initially this function will
707
 *                          this pointer. Initially this function will
606
 *                          set *i to NULL (the old value is ignored). If
708
 *                          set *i to NULL (the old value is ignored). If
607
 *                          decoding succeeds (lzma_code() returns
709
 *                          decoding succeeds (lzma_code() returns
Lines 617-627 Link Here
617
 * There is no need to use LZMA_FINISH, but it's allowed because it may
719
 * There is no need to use LZMA_FINISH, but it's allowed because it may
618
 * simplify certain types of applications.
720
 * simplify certain types of applications.
619
 *
721
 *
620
 * \return      - LZMA_OK: Initialization succeeded, continue with lzma_code().
722
 * \return      Possible lzma_ret values:
723
 *              - LZMA_OK: Initialization succeeded, continue with lzma_code().
621
 *              - LZMA_MEM_ERROR
724
 *              - LZMA_MEM_ERROR
622
 *              - LZMA_PROG_ERROR
725
 *              - LZMA_PROG_ERROR
623
 *
726
 *
624
 *              liblzma 5.2.3 and older list also LZMA_MEMLIMIT_ERROR here
727
 * \note        liblzma 5.2.3 and older list also LZMA_MEMLIMIT_ERROR here
625
 *              but that error code has never been possible from this
728
 *              but that error code has never been possible from this
626
 *              initialization function.
729
 *              initialization function.
627
 */
730
 */
Lines 633-653 Link Here
633
/**
736
/**
634
 * \brief       Single-call .xz Index encoder
737
 * \brief       Single-call .xz Index encoder
635
 *
738
 *
739
 * \note        This function doesn't take allocator argument since all
740
 *              the internal data is allocated on stack.
741
 *
636
 * \param       i         lzma_index to be encoded
742
 * \param       i         lzma_index to be encoded
637
 * \param       out       Beginning of the output buffer
743
 * \param[out]  out       Beginning of the output buffer
638
 * \param       out_pos   The next byte will be written to out[*out_pos].
744
 * \param[out]  out_pos   The next byte will be written to out[*out_pos].
639
 *                        *out_pos is updated only if encoding succeeds.
745
 *                        *out_pos is updated only if encoding succeeds.
640
 * \param       out_size  Size of the out buffer; the first byte into
746
 * \param       out_size  Size of the out buffer; the first byte into
641
 *                        which no data is written to is out[out_size].
747
 *                        which no data is written to is out[out_size].
642
 *
748
 *
643
 * \return      - LZMA_OK: Encoding was successful.
749
 * \return      Possible lzma_ret values:
750
 *              - LZMA_OK: Encoding was successful.
644
 *              - LZMA_BUF_ERROR: Output buffer is too small. Use
751
 *              - LZMA_BUF_ERROR: Output buffer is too small. Use
645
 *                lzma_index_size() to find out how much output
752
 *                lzma_index_size() to find out how much output
646
 *                space is needed.
753
 *                space is needed.
647
 *              - LZMA_PROG_ERROR
754
 *              - LZMA_PROG_ERROR
648
 *
755
 *
649
 * \note        This function doesn't take allocator argument since all
650
 *              the internal data is allocated on stack.
651
 */
756
 */
652
extern LZMA_API(lzma_ret) lzma_index_buffer_encode(const lzma_index *i,
757
extern LZMA_API(lzma_ret) lzma_index_buffer_encode(const lzma_index *i,
653
		uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow;
758
		uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow;
Lines 656-679 Link Here
656
/**
761
/**
657
 * \brief       Single-call .xz Index decoder
762
 * \brief       Single-call .xz Index decoder
658
 *
763
 *
659
 * \param       i           If decoding succeeds, *i will point to a new
764
 * \param[out]  i           If decoding succeeds, *i will point to a new
660
 *                          lzma_index, which the application has to
765
 *                          lzma_index, which the application has to
661
 *                          later free with lzma_index_end(). If an error
766
 *                          later free with lzma_index_end(). If an error
662
 *                          occurs, *i will be NULL. The old value of *i
767
 *                          occurs, *i will be NULL. The old value of *i
663
 *                          is always ignored and thus doesn't need to be
768
 *                          is always ignored and thus doesn't need to be
664
 *                          initialized by the caller.
769
 *                          initialized by the caller.
665
 * \param       memlimit    Pointer to how much memory the resulting
770
 * \param[out]  memlimit    Pointer to how much memory the resulting
666
 *                          lzma_index is allowed to require. The value
771
 *                          lzma_index is allowed to require. The value
667
 *                          pointed by this pointer is modified if and only
772
 *                          pointed by this pointer is modified if and only
668
 *                          if LZMA_MEMLIMIT_ERROR is returned.
773
 *                          if LZMA_MEMLIMIT_ERROR is returned.
669
 * \param       allocator   Pointer to lzma_allocator, or NULL to use malloc()
774
  * \param      allocator   lzma_allocator for custom allocator functions.
775
 *                          Set to NULL to use malloc() and free().
670
 * \param       in          Beginning of the input buffer
776
 * \param       in          Beginning of the input buffer
671
 * \param       in_pos      The next byte will be read from in[*in_pos].
777
 * \param       in_pos      The next byte will be read from in[*in_pos].
672
 *                          *in_pos is updated only if decoding succeeds.
778
 *                          *in_pos is updated only if decoding succeeds.
673
 * \param       in_size     Size of the input buffer; the first byte that
779
 * \param       in_size     Size of the input buffer; the first byte that
674
 *                          won't be read is in[in_size].
780
 *                          won't be read is in[in_size].
675
 *
781
 *
676
 * \return      - LZMA_OK: Decoding was successful.
782
 * \return      Possible lzma_ret values:
783
 *              - LZMA_OK: Decoding was successful.
677
 *              - LZMA_MEM_ERROR
784
 *              - LZMA_MEM_ERROR
678
 *              - LZMA_MEMLIMIT_ERROR: Memory usage limit was reached.
785
 *              - LZMA_MEMLIMIT_ERROR: Memory usage limit was reached.
679
 *                The minimum required memlimit value was stored to *memlimit.
786
 *                The minimum required memlimit value was stored to *memlimit.
Lines 683-686 Link Here
683
extern LZMA_API(lzma_ret) lzma_index_buffer_decode(lzma_index **i,
790
extern LZMA_API(lzma_ret) lzma_index_buffer_decode(lzma_index **i,
684
		uint64_t *memlimit, const lzma_allocator *allocator,
791
		uint64_t *memlimit, const lzma_allocator *allocator,
685
		const uint8_t *in, size_t *in_pos, size_t in_size)
792
		const uint8_t *in, size_t *in_pos, size_t in_size)
793
		lzma_nothrow;
794
795
796
/**
797
 * \brief       Initialize a .xz file information decoder
798
 *
799
 * This decoder decodes the Stream Header, Stream Footer, Index, and
800
 * Stream Padding field(s) from the input .xz file and stores the resulting
801
 * combined index in *dest_index. This information can be used to get the
802
 * uncompressed file size with lzma_index_uncompressed_size(*dest_index) or,
803
 * for example, to implement random access reading by locating the Blocks
804
 * in the Streams.
805
 *
806
 * To get the required information from the .xz file, lzma_code() may ask
807
 * the application to seek in the input file by returning LZMA_SEEK_NEEDED
808
 * and having the target file position specified in lzma_stream.seek_pos.
809
 * The number of seeks required depends on the input file and how big buffers
810
 * the application provides. When possible, the decoder will seek backward
811
 * and forward in the given buffer to avoid useless seek requests. Thus, if
812
 * the application provides the whole file at once, no external seeking will
813
 * be required (that is, lzma_code() won't return LZMA_SEEK_NEEDED).
814
 *
815
 * The value in lzma_stream.total_in can be used to estimate how much data
816
 * liblzma had to read to get the file information. However, due to seeking
817
 * and the way total_in is updated, the value of total_in will be somewhat
818
 * inaccurate (a little too big). Thus, total_in is a good estimate but don't
819
 * expect to see the same exact value for the same file if you change the
820
 * input buffer size or switch to a different liblzma version.
821
 *
822
 * Valid `action' arguments to lzma_code() are LZMA_RUN and LZMA_FINISH.
823
 * You only need to use LZMA_RUN; LZMA_FINISH is only supported because it
824
 * might be convenient for some applications. If you use LZMA_FINISH and if
825
 * lzma_code() asks the application to seek, remember to reset `action' back
826
 * to LZMA_RUN unless you hit the end of the file again.
827
 *
828
 * Possible return values from lzma_code():
829
 *   - LZMA_OK: All OK so far, more input needed
830
 *   - LZMA_SEEK_NEEDED: Provide more input starting from the absolute
831
 *     file position strm->seek_pos
832
 *   - LZMA_STREAM_END: Decoding was successful, *dest_index has been set
833
 *   - LZMA_FORMAT_ERROR: The input file is not in the .xz format (the
834
 *     expected magic bytes were not found from the beginning of the file)
835
 *   - LZMA_OPTIONS_ERROR: File looks valid but contains headers that aren't
836
 *     supported by this version of liblzma
837
 *   - LZMA_DATA_ERROR: File is corrupt
838
 *   - LZMA_BUF_ERROR
839
 *   - LZMA_MEM_ERROR
840
 *   - LZMA_MEMLIMIT_ERROR
841
 *   - LZMA_PROG_ERROR
842
 *
843
 * \param       strm        Pointer to a properly prepared lzma_stream
844
 * \param[out]  dest_index  Pointer to a pointer where the decoder will put
845
 *                          the decoded lzma_index. The old value
846
 *                          of *dest_index is ignored (not freed).
847
 * \param       memlimit    How much memory the resulting lzma_index is
848
 *                          allowed to require. Use UINT64_MAX to
849
 *                          effectively disable the limiter.
850
 * \param       file_size   Size of the input .xz file
851
 *
852
 * \return      Possible lzma_ret values:
853
 *              - LZMA_OK
854
 *              - LZMA_MEM_ERROR
855
 *              - LZMA_PROG_ERROR
856
 */
857
extern LZMA_API(lzma_ret) lzma_file_info_decoder(
858
		lzma_stream *strm, lzma_index **dest_index,
859
		uint64_t memlimit, uint64_t file_size)
686
		lzma_nothrow;
860
		lzma_nothrow;
(-)xz-5.2.5/src/liblzma/api/lzma/index_hash.h (-12 / +29 lines)
Lines 1-6 Link Here
1
/**
1
/**
2
 * \file        lzma/index_hash.h
2
 * \file        lzma/index_hash.h
3
 * \brief       Validate Index by using a hash function
3
 * \brief       Validate Index by using a hash function
4
 * \note        Never include this file directly. Use <lzma.h> instead.
4
 *
5
 *
5
 * Hashing makes it possible to use constant amount of memory to validate
6
 * Hashing makes it possible to use constant amount of memory to validate
6
 * Index of arbitrary size.
7
 * Index of arbitrary size.
Lines 11-18 Link Here
11
 *
12
 *
12
 * This file has been put into the public domain.
13
 * This file has been put into the public domain.
13
 * You can do whatever you want with this file.
14
 * You can do whatever you want with this file.
14
 *
15
 * See ../lzma.h for information about liblzma as a whole.
16
 */
15
 */
17
16
18
#ifndef LZMA_H_INTERNAL
17
#ifndef LZMA_H_INTERNAL
Lines 28-40 Link Here
28
/**
27
/**
29
 * \brief       Allocate and initialize a new lzma_index_hash structure
28
 * \brief       Allocate and initialize a new lzma_index_hash structure
30
 *
29
 *
31
 * If index_hash is NULL, a new lzma_index_hash structure is allocated,
30
 * If index_hash is NULL, this function allocates and initializes a new
32
 * initialized, and a pointer to it returned. If allocation fails, NULL
31
 * lzma_index_hash structure and returns a pointer to it. If allocation
33
 * is returned.
32
 * fails, NULL is returned.
34
 *
33
 *
35
 * If index_hash is non-NULL, it is reinitialized and the same pointer
34
 * If index_hash is non-NULL, this function reinitializes the lzma_index_hash
36
 * returned. In this case, return value cannot be NULL or a different
35
 * structure and returns the same pointer. In this case, return value cannot
37
 * pointer than the index_hash that was given as an argument.
36
 * be NULL or a different pointer than the index_hash that was given as
37
 * an argument.
38
 *
39
 * \param       index_hash  Pointer to a lzma_index_hash structure or NULL.
40
 * \param       allocator   lzma_allocator for custom allocator functions.
41
 *                          Set to NULL to use malloc() and free().
42
 *
43
 * \return      Initialized lzma_index_hash structure on success or
44
 *              NULL on failure.
38
 */
45
 */
39
extern LZMA_API(lzma_index_hash *) lzma_index_hash_init(
46
extern LZMA_API(lzma_index_hash *) lzma_index_hash_init(
40
		lzma_index_hash *index_hash, const lzma_allocator *allocator)
47
		lzma_index_hash *index_hash, const lzma_allocator *allocator)
Lines 43-48 Link Here
43
50
44
/**
51
/**
45
 * \brief       Deallocate lzma_index_hash structure
52
 * \brief       Deallocate lzma_index_hash structure
53
 *
54
 * \param       index_hash  Pointer to a lzma_index_hash structure to free.
55
 * \param       allocator   lzma_allocator for custom allocator functions.
56
 *                          Set to NULL to use malloc() and free().
46
 */
57
 */
47
extern LZMA_API(void) lzma_index_hash_end(
58
extern LZMA_API(void) lzma_index_hash_end(
48
		lzma_index_hash *index_hash, const lzma_allocator *allocator)
59
		lzma_index_hash *index_hash, const lzma_allocator *allocator)
Lines 52-62 Link Here
52
/**
63
/**
53
 * \brief       Add a new Record to an Index hash
64
 * \brief       Add a new Record to an Index hash
54
 *
65
 *
55
 * \param       index             Pointer to a lzma_index_hash structure
66
 * \param       index_hash        Pointer to a lzma_index_hash structure
56
 * \param       unpadded_size     Unpadded Size of a Block
67
 * \param       unpadded_size     Unpadded Size of a Block
57
 * \param       uncompressed_size Uncompressed Size of a Block
68
 * \param       uncompressed_size Uncompressed Size of a Block
58
 *
69
 *
59
 * \return      - LZMA_OK
70
 * \return      Possible lzma_ret values:
71
 *              - LZMA_OK
60
 *              - LZMA_DATA_ERROR: Compressed or uncompressed size of the
72
 *              - LZMA_DATA_ERROR: Compressed or uncompressed size of the
61
 *                Stream or size of the Index field would grow too big.
73
 *                Stream or size of the Index field would grow too big.
62
 *              - LZMA_PROG_ERROR: Invalid arguments or this function is being
74
 *              - LZMA_PROG_ERROR: Invalid arguments or this function is being
Lines 81-90 Link Here
81
 *
93
 *
82
 * \param       index_hash      Pointer to a lzma_index_hash structure
94
 * \param       index_hash      Pointer to a lzma_index_hash structure
83
 * \param       in              Pointer to the beginning of the input buffer
95
 * \param       in              Pointer to the beginning of the input buffer
84
 * \param       in_pos          in[*in_pos] is the next byte to process
96
 * \param[out]  in_pos          in[*in_pos] is the next byte to process
85
 * \param       in_size         in[in_size] is the first byte not to process
97
 * \param       in_size         in[in_size] is the first byte not to process
86
 *
98
 *
87
 * \return      - LZMA_OK: So far good, but more input is needed.
99
 * \return      Possible lzma_ret values:
100
 *              - LZMA_OK: So far good, but more input is needed.
88
 *              - LZMA_STREAM_END: Index decoded successfully and it matches
101
 *              - LZMA_STREAM_END: Index decoded successfully and it matches
89
 *                the Records given with lzma_index_hash_append().
102
 *                the Records given with lzma_index_hash_append().
90
 *              - LZMA_DATA_ERROR: Index is corrupt or doesn't match the
103
 *              - LZMA_DATA_ERROR: Index is corrupt or doesn't match the
Lines 101-106 Link Here
101
 * \brief       Get the size of the Index field as bytes
114
 * \brief       Get the size of the Index field as bytes
102
 *
115
 *
103
 * This is needed to verify the Backward Size field in the Stream Footer.
116
 * This is needed to verify the Backward Size field in the Stream Footer.
117
 *
118
 * \param       index_hash      Pointer to a lzma_index_hash structure
119
 *
120
 * \return      Size of the Index field in bytes.
104
 */
121
 */
105
extern LZMA_API(lzma_vli) lzma_index_hash_size(
122
extern LZMA_API(lzma_vli) lzma_index_hash_size(
106
		const lzma_index_hash *index_hash)
123
		const lzma_index_hash *index_hash)
(-)xz-5.2.5/src/liblzma/api/lzma/lzma12.h (-19 / +168 lines)
Lines 1-6 Link Here
1
/**
1
/**
2
 * \file        lzma/lzma12.h
2
 * \file        lzma/lzma12.h
3
 * \brief       LZMA1 and LZMA2 filters
3
 * \brief       LZMA1 and LZMA2 filters
4
 * \note        Never include this file directly. Use <lzma.h> instead.
4
 */
5
 */
5
6
6
/*
7
/*
Lines 8-15 Link Here
8
 *
9
 *
9
 * This file has been put into the public domain.
10
 * This file has been put into the public domain.
10
 * You can do whatever you want with this file.
11
 * You can do whatever you want with this file.
11
 *
12
 * See ../lzma.h for information about liblzma as a whole.
13
 */
12
 */
14
13
15
#ifndef LZMA_H_INTERNAL
14
#ifndef LZMA_H_INTERNAL
Lines 18-35 Link Here
18
17
19
18
20
/**
19
/**
21
 * \brief       LZMA1 Filter ID
20
 * \brief       LZMA1 Filter ID (for raw encoder/decoder only, not in .xz)
22
 *
21
 *
23
 * LZMA1 is the very same thing as what was called just LZMA in LZMA Utils,
22
 * LZMA1 is the very same thing as what was called just LZMA in LZMA Utils,
24
 * 7-Zip, and LZMA SDK. It's called LZMA1 here to prevent developers from
23
 * 7-Zip, and LZMA SDK. It's called LZMA1 here to prevent developers from
25
 * accidentally using LZMA when they actually want LZMA2.
24
 * accidentally using LZMA when they actually want LZMA2.
26
 *
27
 * LZMA1 shouldn't be used for new applications unless you _really_ know
28
 * what you are doing. LZMA2 is almost always a better choice.
29
 */
25
 */
30
#define LZMA_FILTER_LZMA1       LZMA_VLI_C(0x4000000000000001)
26
#define LZMA_FILTER_LZMA1       LZMA_VLI_C(0x4000000000000001)
31
27
32
/**
28
/**
29
 * \brief       LZMA1 Filter ID with extended options (for raw encoder/decoder)
30
 *
31
 * This is like LZMA_FILTER_LZMA1 but with this ID a few extra options
32
 * are supported in the lzma_options_lzma structure:
33
 *
34
 *   - A flag to tell the encoder if the end of payload marker (EOPM) alias
35
 *     end of stream (EOS) marker must be written at the end of the stream.
36
 *     In contrast, LZMA_FILTER_LZMA1 always writes the end marker.
37
 *
38
 *   - Decoder needs to be told the uncompressed size of the stream
39
 *     or that it is unknown (using the special value UINT64_MAX).
40
 *     If the size is known, a flag can be set to allow the presence of
41
 *     the end marker anyway. In contrast, LZMA_FILTER_LZMA1 always
42
 *     behaves as if the uncompressed size was unknown.
43
 *
44
 * This allows handling file formats where LZMA1 streams are used but where
45
 * the end marker isn't allowed or where it might not (always) be present.
46
 * This extended LZMA1 functionality is provided as a Filter ID for raw
47
 * encoder and decoder instead of adding new encoder and decoder initialization
48
 * functions because this way it is possible to also use extra filters,
49
 * for example, LZMA_FILTER_X86 in a filter chain with LZMA_FILTER_LZMA1EXT,
50
 * which might be needed to handle some file formats.
51
 */
52
#define LZMA_FILTER_LZMA1EXT    LZMA_VLI_C(0x4000000000000002)
53
54
/**
33
 * \brief       LZMA2 Filter ID
55
 * \brief       LZMA2 Filter ID
34
 *
56
 *
35
 * Usually you want this instead of LZMA1. Compared to LZMA1, LZMA2 adds
57
 * Usually you want this instead of LZMA1. Compared to LZMA1, LZMA2 adds
Lines 114-129 Link Here
114
/**
136
/**
115
 * \brief       Test if given match finder is supported
137
 * \brief       Test if given match finder is supported
116
 *
138
 *
117
 * Return true if the given match finder is supported by this liblzma build.
139
 * It is safe to call this with a value that isn't listed in
118
 * Otherwise false is returned. It is safe to call this with a value that
140
 * lzma_match_finder enumeration; the return value will be false.
119
 * isn't listed in lzma_match_finder enumeration; the return value will be
120
 * false.
121
 *
141
 *
122
 * There is no way to list which match finders are available in this
142
 * There is no way to list which match finders are available in this
123
 * particular liblzma version and build. It would be useless, because
143
 * particular liblzma version and build. It would be useless, because
124
 * a new match finder, which the application developer wasn't aware,
144
 * a new match finder, which the application developer wasn't aware,
125
 * could require giving additional options to the encoder that the older
145
 * could require giving additional options to the encoder that the older
126
 * match finders don't need.
146
 * match finders don't need.
147
 *
148
 * \param       match_finder    Match finder ID
149
 *
150
 * \return      lzma_bool:
151
 *              - true if the match finder is supported by this liblzma build.
152
 *              - false otherwise.
127
 */
153
 */
128
extern LZMA_API(lzma_bool) lzma_mf_is_supported(lzma_match_finder match_finder)
154
extern LZMA_API(lzma_bool) lzma_mf_is_supported(lzma_match_finder match_finder)
129
		lzma_nothrow lzma_attr_const;
155
		lzma_nothrow lzma_attr_const;
Lines 158-171 Link Here
158
/**
184
/**
159
 * \brief       Test if given compression mode is supported
185
 * \brief       Test if given compression mode is supported
160
 *
186
 *
161
 * Return true if the given compression mode is supported by this liblzma
187
 * It is safe to call this with a value that isn't listed in lzma_mode
162
 * build. Otherwise false is returned. It is safe to call this with a value
188
 * enumeration; the return value will be false.
163
 * that isn't listed in lzma_mode enumeration; the return value will be false.
164
 *
189
 *
165
 * There is no way to list which modes are available in this particular
190
 * There is no way to list which modes are available in this particular
166
 * liblzma version and build. It would be useless, because a new compression
191
 * liblzma version and build. It would be useless, because a new compression
167
 * mode, which the application developer wasn't aware, could require giving
192
 * mode, which the application developer wasn't aware, could require giving
168
 * additional options to the encoder that the older modes don't need.
193
 * additional options to the encoder that the older modes don't need.
194
 *
195
 * \param       mode    Mode ID.
196
 *
197
 * \return      lzma_bool:
198
 *              - true if the compression mode is supported by this liblzma
199
 *                build.
200
 *              - false otherwise.
169
 */
201
 */
170
extern LZMA_API(lzma_bool) lzma_mode_is_supported(lzma_mode mode)
202
extern LZMA_API(lzma_bool) lzma_mode_is_supported(lzma_mode mode)
171
		lzma_nothrow lzma_attr_const;
203
		lzma_nothrow lzma_attr_const;
Lines 374-379 Link Here
374
	 */
406
	 */
375
	uint32_t depth;
407
	uint32_t depth;
376
408
409
	/**
410
	 * \brief       For LZMA_FILTER_LZMA1EXT: Extended flags
411
	 *
412
	 * This is used only with LZMA_FILTER_LZMA1EXT.
413
	 *
414
	 * Currently only one flag is supported, LZMA_LZMA1EXT_ALLOW_EOPM:
415
	 *
416
	 *   - Encoder: If the flag is set, then end marker is written just
417
	 *     like it is with LZMA_FILTER_LZMA1. Without this flag the
418
	 *     end marker isn't written and the application has to store
419
	 *     the uncompressed size somewhere outside the compressed stream.
420
	 *     To decompress streams without the end marker, the appliation
421
	 *     has to set the correct uncompressed size in ext_size_low and
422
	 *     ext_size_high.
423
	 *
424
	 *   - Decoder: If the uncompressed size in ext_size_low and
425
	 *     ext_size_high is set to the special value UINT64_MAX
426
	 *     (indicating unknown uncompressed size) then this flag is
427
	 *     ignored and the end marker must always be present, that is,
428
	 *     the behavior is identical to LZMA_FILTER_LZMA1.
429
	 *
430
	 *     Otherwise, if this flag isn't set, then the input stream
431
	 *     must not have the end marker; if the end marker is detected
432
	 *     then it will result in LZMA_DATA_ERROR. This is useful when
433
	 *     it is known that the stream must not have the end marker and
434
	 *     strict validation is wanted.
435
	 *
436
	 *     If this flag is set, then it is autodetected if the end marker
437
	 *     is present after the specified number of uncompressed bytes
438
	 *     has been decompressed (ext_size_low and ext_size_high). The
439
	 *     end marker isn't allowed in any other position. This behavior
440
	 *     is useful when uncompressed size is known but the end marker
441
	 *     may or may not be present. This is the case, for example,
442
	 *     in .7z files (valid .7z files that have the end marker in
443
	 *     LZMA1 streams are rare but they do exist).
444
	 */
445
	uint32_t ext_flags;
446
#	define LZMA_LZMA1EXT_ALLOW_EOPM   UINT32_C(0x01)
447
448
	/**
449
	 * \brief       For LZMA_FILTER_LZMA1EXT: Uncompressed size (low bits)
450
	 *
451
	 * The 64-bit uncompressed size is needed for decompression with
452
	 * LZMA_FILTER_LZMA1EXT. The size is ignored by the encoder.
453
	 *
454
	 * The special value UINT64_MAX indicates that the uncompressed size
455
	 * is unknown and that the end of payload marker (also known as
456
	 * end of stream marker) must be present to indicate the end of
457
	 * the LZMA1 stream. Any other value indicates the expected
458
	 * uncompressed size of the LZMA1 stream. (If LZMA1 was used together
459
	 * with filters that change the size of the data then the uncompressed
460
	 * size of the LZMA1 stream could be different than the final
461
	 * uncompressed size of the filtered stream.)
462
	 *
463
	 * ext_size_low holds the least significant 32 bits of the
464
	 * uncompressed size. The most significant 32 bits must be set
465
	 * in ext_size_high. The macro lzma_ext_size_set(opt_lzma, u64size)
466
	 * can be used to set these members.
467
	 *
468
	 * The 64-bit uncompressed size is split into two uint32_t variables
469
	 * because there were no reserved uint64_t members and using the
470
	 * same options structure for LZMA_FILTER_LZMA1, LZMA_FILTER_LZMA1EXT,
471
	 * and LZMA_FILTER_LZMA2 was otherwise more convenient than having
472
	 * a new options structure for LZMA_FILTER_LZMA1EXT. (Replacing two
473
	 * uint32_t members with one uint64_t changes the ABI on some systems
474
	 * as the alignment of this struct can increase from 4 bytes to 8.)
475
	 */
476
	uint32_t ext_size_low;
477
478
	/**
479
	 * \brief       For LZMA_FILTER_LZMA1EXT: Uncompressed size (high bits)
480
	 *
481
	 * This holds the most significant 32 bits of the uncompressed size.
482
	 */
483
	uint32_t ext_size_high;
484
377
	/*
485
	/*
378
	 * Reserved space to allow possible future extensions without
486
	 * Reserved space to allow possible future extensions without
379
	 * breaking the ABI. You should not touch these, because the names
487
	 * breaking the ABI. You should not touch these, because the names
Lines 381-405 Link Here
381
	 * with the currently supported options, so it is safe to leave these
489
	 * with the currently supported options, so it is safe to leave these
382
	 * uninitialized.
490
	 * uninitialized.
383
	 */
491
	 */
384
	uint32_t reserved_int1;
492
385
	uint32_t reserved_int2;
493
	/** \private     Reserved member. */
386
	uint32_t reserved_int3;
387
	uint32_t reserved_int4;
494
	uint32_t reserved_int4;
495
496
	/** \private     Reserved member. */
388
	uint32_t reserved_int5;
497
	uint32_t reserved_int5;
498
499
	/** \private     Reserved member. */
389
	uint32_t reserved_int6;
500
	uint32_t reserved_int6;
501
502
	/** \private     Reserved member. */
390
	uint32_t reserved_int7;
503
	uint32_t reserved_int7;
504
505
	/** \private     Reserved member. */
391
	uint32_t reserved_int8;
506
	uint32_t reserved_int8;
507
508
	/** \private     Reserved member. */
392
	lzma_reserved_enum reserved_enum1;
509
	lzma_reserved_enum reserved_enum1;
510
511
	/** \private     Reserved member. */
393
	lzma_reserved_enum reserved_enum2;
512
	lzma_reserved_enum reserved_enum2;
513
514
	/** \private     Reserved member. */
394
	lzma_reserved_enum reserved_enum3;
515
	lzma_reserved_enum reserved_enum3;
516
517
	/** \private     Reserved member. */
395
	lzma_reserved_enum reserved_enum4;
518
	lzma_reserved_enum reserved_enum4;
519
520
	/** \private     Reserved member. */
396
	void *reserved_ptr1;
521
	void *reserved_ptr1;
522
523
	/** \private     Reserved member. */
397
	void *reserved_ptr2;
524
	void *reserved_ptr2;
398
525
399
} lzma_options_lzma;
526
} lzma_options_lzma;
400
527
401
528
402
/**
529
/**
530
 * \brief       Macro to set the 64-bit uncompressed size in ext_size_*
531
 *
532
 * This might be convenient when decoding using LZMA_FILTER_LZMA1EXT.
533
 * This isn't used with LZMA_FILTER_LZMA1 or LZMA_FILTER_LZMA2.
534
 */
535
#define lzma_set_ext_size(opt_lzma2, u64size) \
536
do { \
537
	(opt_lzma2).ext_size_low = (uint32_t)(u64size); \
538
	(opt_lzma2).ext_size_high = (uint32_t)((uint64_t)(u64size) >> 32); \
539
} while (0)
540
541
542
/**
403
 * \brief       Set a compression preset to lzma_options_lzma structure
543
 * \brief       Set a compression preset to lzma_options_lzma structure
404
 *
544
 *
405
 * 0 is the fastest and 9 is the slowest. These match the switches -0 .. -9
545
 * 0 is the fastest and 9 is the slowest. These match the switches -0 .. -9
Lines 408-420 Link Here
408
 * The flags are defined in container.h, because the flags are used also
548
 * The flags are defined in container.h, because the flags are used also
409
 * with lzma_easy_encoder().
549
 * with lzma_easy_encoder().
410
 *
550
 *
411
 * The preset values are subject to changes between liblzma versions.
551
 * The preset levels are subject to changes between liblzma versions.
412
 *
552
 *
413
 * This function is available only if LZMA1 or LZMA2 encoder has been enabled
553
 * This function is available only if LZMA1 or LZMA2 encoder has been enabled
414
 * when building liblzma.
554
 * when building liblzma.
415
 *
555
 *
416
 * \return      On success, false is returned. If the preset is not
556
 * If features (like certain match finders) have been disabled at build time,
417
 *              supported, true is returned.
557
 * then the function may return success (false) even though the resulting
558
 * LZMA1/LZMA2 options may not be usable for encoder initialization
559
 * (LZMA_OPTIONS_ERROR).
560
 *
561
 * \param[out]  options Pointer to LZMA1 or LZMA2 options to be filled
562
 * \param       preset  Preset level bitwse-ORed with preset flags
563
 *
564
 * \return      lzma_bool:
565
 *              - true if the preset is not supported (failure).
566
 *              - false otherwise (success).
418
 */
567
 */
419
extern LZMA_API(lzma_bool) lzma_lzma_preset(
568
extern LZMA_API(lzma_bool) lzma_lzma_preset(
420
		lzma_options_lzma *options, uint32_t preset) lzma_nothrow;
569
		lzma_options_lzma *options, uint32_t preset) lzma_nothrow;
(-)xz-5.2.5/src/liblzma/api/lzma/stream_flags.h (-33 / +76 lines)
Lines 1-6 Link Here
1
/**
1
/**
2
 * \file        lzma/stream_flags.h
2
 * \file        lzma/stream_flags.h
3
 * \brief       .xz Stream Header and Stream Footer encoder and decoder
3
 * \brief       .xz Stream Header and Stream Footer encoder and decoder
4
 * \note        Never include this file directly. Use <lzma.h> instead.
4
 */
5
 */
5
6
6
/*
7
/*
Lines 8-15 Link Here
8
 *
9
 *
9
 * This file has been put into the public domain.
10
 * This file has been put into the public domain.
10
 * You can do whatever you want with this file.
11
 * You can do whatever you want with this file.
11
 *
12
 * See ../lzma.h for information about liblzma as a whole.
13
 */
12
 */
14
13
15
#ifndef LZMA_H_INTERNAL
14
#ifndef LZMA_H_INTERNAL
Lines 36-42 Link Here
36
	 *
35
	 *
37
	 * To prevent API and ABI breakages if new features are needed in
36
	 * To prevent API and ABI breakages if new features are needed in
38
	 * Stream Header or Stream Footer, a version number is used to
37
	 * Stream Header or Stream Footer, a version number is used to
39
	 * indicate which fields in this structure are in use. For now,
38
	 * indicate which members in this structure are in use. For now,
40
	 * version must always be zero. With non-zero version, the
39
	 * version must always be zero. With non-zero version, the
41
	 * lzma_stream_header_encode() and lzma_stream_footer_encode()
40
	 * lzma_stream_header_encode() and lzma_stream_footer_encode()
42
	 * will return LZMA_OPTIONS_ERROR.
41
	 * will return LZMA_OPTIONS_ERROR.
Lines 67-73 Link Here
67
	 * Footer have been decoded.
66
	 * Footer have been decoded.
68
	 */
67
	 */
69
	lzma_vli backward_size;
68
	lzma_vli backward_size;
69
70
	/**
71
	 * \brief       Minimum value for lzma_stream_flags.backward_size
72
	 */
70
#	define LZMA_BACKWARD_SIZE_MIN 4
73
#	define LZMA_BACKWARD_SIZE_MIN 4
74
75
	/**
76
	 * \brief       Maximum value for lzma_stream_flags.backward_size
77
	 */
71
#	define LZMA_BACKWARD_SIZE_MAX (LZMA_VLI_C(1) << 34)
78
#	define LZMA_BACKWARD_SIZE_MAX (LZMA_VLI_C(1) << 34)
72
79
73
	/**
80
	/**
Lines 87-105 Link Here
87
	 * is just two bytes plus Backward Size of four bytes. But it's
94
	 * is just two bytes plus Backward Size of four bytes. But it's
88
	 * nice to have the proper types when they are needed.)
95
	 * nice to have the proper types when they are needed.)
89
	 */
96
	 */
97
98
	/** \private     Reserved member. */
90
	lzma_reserved_enum reserved_enum1;
99
	lzma_reserved_enum reserved_enum1;
100
101
	/** \private     Reserved member. */
91
	lzma_reserved_enum reserved_enum2;
102
	lzma_reserved_enum reserved_enum2;
103
104
	/** \private     Reserved member. */
92
	lzma_reserved_enum reserved_enum3;
105
	lzma_reserved_enum reserved_enum3;
106
107
	/** \private     Reserved member. */
93
	lzma_reserved_enum reserved_enum4;
108
	lzma_reserved_enum reserved_enum4;
109
110
	/** \private     Reserved member. */
94
	lzma_bool reserved_bool1;
111
	lzma_bool reserved_bool1;
112
113
	/** \private     Reserved member. */
95
	lzma_bool reserved_bool2;
114
	lzma_bool reserved_bool2;
115
116
	/** \private     Reserved member. */
96
	lzma_bool reserved_bool3;
117
	lzma_bool reserved_bool3;
118
119
	/** \private     Reserved member. */
97
	lzma_bool reserved_bool4;
120
	lzma_bool reserved_bool4;
121
122
	/** \private     Reserved member. */
98
	lzma_bool reserved_bool5;
123
	lzma_bool reserved_bool5;
124
125
	/** \private     Reserved member. */
99
	lzma_bool reserved_bool6;
126
	lzma_bool reserved_bool6;
127
128
	/** \private     Reserved member. */
100
	lzma_bool reserved_bool7;
129
	lzma_bool reserved_bool7;
130
131
	/** \private     Reserved member. */
101
	lzma_bool reserved_bool8;
132
	lzma_bool reserved_bool8;
133
134
	/** \private     Reserved member. */
102
	uint32_t reserved_int1;
135
	uint32_t reserved_int1;
136
137
	/** \private     Reserved member. */
103
	uint32_t reserved_int2;
138
	uint32_t reserved_int2;
104
139
105
} lzma_stream_flags;
140
} lzma_stream_flags;
Lines 111-120 Link Here
111
 * \param       options     Stream Header options to be encoded.
146
 * \param       options     Stream Header options to be encoded.
112
 *                          options->backward_size is ignored and doesn't
147
 *                          options->backward_size is ignored and doesn't
113
 *                          need to be initialized.
148
 *                          need to be initialized.
114
 * \param       out         Beginning of the output buffer of
149
 * \param[out]  out         Beginning of the output buffer of
115
 *                          LZMA_STREAM_HEADER_SIZE bytes.
150
 *                          LZMA_STREAM_HEADER_SIZE bytes.
116
 *
151
 *
117
 * \return      - LZMA_OK: Encoding was successful.
152
 * \return      Possible lzma_ret values:
153
 *              - LZMA_OK: Encoding was successful.
118
 *              - LZMA_OPTIONS_ERROR: options->version is not supported by
154
 *              - LZMA_OPTIONS_ERROR: options->version is not supported by
119
 *                this liblzma version.
155
 *                this liblzma version.
120
 *              - LZMA_PROG_ERROR: Invalid options.
156
 *              - LZMA_PROG_ERROR: Invalid options.
Lines 128-137 Link Here
128
 * \brief       Encode Stream Footer
164
 * \brief       Encode Stream Footer
129
 *
165
 *
130
 * \param       options     Stream Footer options to be encoded.
166
 * \param       options     Stream Footer options to be encoded.
131
 * \param       out         Beginning of the output buffer of
167
 * \param[out]  out         Beginning of the output buffer of
132
 *                          LZMA_STREAM_HEADER_SIZE bytes.
168
 *                          LZMA_STREAM_HEADER_SIZE bytes.
133
 *
169
 *
134
 * \return      - LZMA_OK: Encoding was successful.
170
 * \return      Possible lzma_ret values:
171
 *              - LZMA_OK: Encoding was successful.
135
 *              - LZMA_OPTIONS_ERROR: options->version is not supported by
172
 *              - LZMA_OPTIONS_ERROR: options->version is not supported by
136
 *                this liblzma version.
173
 *                this liblzma version.
137
 *              - LZMA_PROG_ERROR: Invalid options.
174
 *              - LZMA_PROG_ERROR: Invalid options.
Lines 144-175 Link Here
144
/**
181
/**
145
 * \brief       Decode Stream Header
182
 * \brief       Decode Stream Header
146
 *
183
 *
147
 * \param       options     Target for the decoded Stream Header options.
148
 * \param       in          Beginning of the input buffer of
149
 *                          LZMA_STREAM_HEADER_SIZE bytes.
150
 *
151
 * options->backward_size is always set to LZMA_VLI_UNKNOWN. This is to
184
 * options->backward_size is always set to LZMA_VLI_UNKNOWN. This is to
152
 * help comparing Stream Flags from Stream Header and Stream Footer with
185
 * help comparing Stream Flags from Stream Header and Stream Footer with
153
 * lzma_stream_flags_compare().
186
 * lzma_stream_flags_compare().
154
 *
187
 *
155
 * \return      - LZMA_OK: Decoding was successful.
156
 *              - LZMA_FORMAT_ERROR: Magic bytes don't match, thus the given
157
 *                buffer cannot be Stream Header.
158
 *              - LZMA_DATA_ERROR: CRC32 doesn't match, thus the header
159
 *                is corrupt.
160
 *              - LZMA_OPTIONS_ERROR: Unsupported options are present
161
 *                in the header.
162
 *
163
 * \note        When decoding .xz files that contain multiple Streams, it may
188
 * \note        When decoding .xz files that contain multiple Streams, it may
164
 *              make sense to print "file format not recognized" only if
189
 *              make sense to print "file format not recognized" only if
165
 *              decoding of the Stream Header of the _first_ Stream gives
190
 *              decoding of the Stream Header of the \a first Stream gives
166
 *              LZMA_FORMAT_ERROR. If non-first Stream Header gives
191
 *              LZMA_FORMAT_ERROR. If non-first Stream Header gives
167
 *              LZMA_FORMAT_ERROR, the message used for LZMA_DATA_ERROR is
192
 *              LZMA_FORMAT_ERROR, the message used for LZMA_DATA_ERROR is
168
 *              probably more appropriate.
193
 *              probably more appropriate.
194
 *              For example, the Stream decoder in liblzma uses
195
 *              LZMA_DATA_ERROR if LZMA_FORMAT_ERROR is returned by
196
 *              lzma_stream_header_decode() when decoding non-first Stream.
169
 *
197
 *
170
 *              For example, Stream decoder in liblzma uses LZMA_DATA_ERROR if
198
 * \param[out]  options     Target for the decoded Stream Header options.
171
 *              LZMA_FORMAT_ERROR is returned by lzma_stream_header_decode()
199
 * \param       in          Beginning of the input buffer of
172
 *              when decoding non-first Stream.
200
 *                          LZMA_STREAM_HEADER_SIZE bytes.
201
 *
202
 *
203
 * \return      Possible lzma_ret values:
204
 *              - LZMA_OK: Decoding was successful.
205
 *              - LZMA_FORMAT_ERROR: Magic bytes don't match, thus the given
206
 *                buffer cannot be Stream Header.
207
 *              - LZMA_DATA_ERROR: CRC32 doesn't match, thus the header
208
 *                is corrupt.
209
 *              - LZMA_OPTIONS_ERROR: Unsupported options are present
210
 *                in the header.
173
 */
211
 */
174
extern LZMA_API(lzma_ret) lzma_stream_header_decode(
212
extern LZMA_API(lzma_ret) lzma_stream_header_decode(
175
		lzma_stream_flags *options, const uint8_t *in)
213
		lzma_stream_flags *options, const uint8_t *in)
Lines 179-202 Link Here
179
/**
217
/**
180
 * \brief       Decode Stream Footer
218
 * \brief       Decode Stream Footer
181
 *
219
 *
182
 * \param       options     Target for the decoded Stream Header options.
220
 * \note        If Stream Header was already decoded successfully, but
221
 *              decoding Stream Footer returns LZMA_FORMAT_ERROR, the
222
 *              application should probably report some other error message
223
 *              than "file format not recognized". The file likely
224
 *              is corrupt (possibly truncated). The Stream decoder in liblzma
225
 *              uses LZMA_DATA_ERROR in this situation.
226
 *
227
 * \param[out]  options     Target for the decoded Stream Footer options.
183
 * \param       in          Beginning of the input buffer of
228
 * \param       in          Beginning of the input buffer of
184
 *                          LZMA_STREAM_HEADER_SIZE bytes.
229
 *                          LZMA_STREAM_HEADER_SIZE bytes.
185
 *
230
 *
186
 * \return      - LZMA_OK: Decoding was successful.
231
 * \return      Possible lzma_ret values:
232
 *              - LZMA_OK: Decoding was successful.
187
 *              - LZMA_FORMAT_ERROR: Magic bytes don't match, thus the given
233
 *              - LZMA_FORMAT_ERROR: Magic bytes don't match, thus the given
188
 *                buffer cannot be Stream Footer.
234
 *                buffer cannot be Stream Footer.
189
 *              - LZMA_DATA_ERROR: CRC32 doesn't match, thus the Stream Footer
235
 *              - LZMA_DATA_ERROR: CRC32 doesn't match, thus the Stream Footer
190
 *                is corrupt.
236
 *                is corrupt.
191
 *              - LZMA_OPTIONS_ERROR: Unsupported options are present
237
 *              - LZMA_OPTIONS_ERROR: Unsupported options are present
192
 *                in Stream Footer.
238
 *                in Stream Footer.
193
 *
194
 * \note        If Stream Header was already decoded successfully, but
195
 *              decoding Stream Footer returns LZMA_FORMAT_ERROR, the
196
 *              application should probably report some other error message
197
 *              than "file format not recognized", since the file more likely
198
 *              is corrupt (possibly truncated). Stream decoder in liblzma
199
 *              uses LZMA_DATA_ERROR in this situation.
200
 */
239
 */
201
extern LZMA_API(lzma_ret) lzma_stream_footer_decode(
240
extern LZMA_API(lzma_ret) lzma_stream_footer_decode(
202
		lzma_stream_flags *options, const uint8_t *in)
241
		lzma_stream_flags *options, const uint8_t *in)
Lines 209-215 Link Here
209
 * backward_size values are compared only if both are not
248
 * backward_size values are compared only if both are not
210
 * LZMA_VLI_UNKNOWN.
249
 * LZMA_VLI_UNKNOWN.
211
 *
250
 *
212
 * \return      - LZMA_OK: Both are equal. If either had backward_size set
251
 * \param       a       Pointer to lzma_stream_flags structure
252
 * \param       b       Pointer to lzma_stream_flags structure
253
 *
254
 * \return      Possible lzma_ret values:
255
 *              - LZMA_OK: Both are equal. If either had backward_size set
213
 *                to LZMA_VLI_UNKNOWN, backward_size values were not
256
 *                to LZMA_VLI_UNKNOWN, backward_size values were not
214
 *                compared or validated.
257
 *                compared or validated.
215
 *              - LZMA_DATA_ERROR: The structures differ.
258
 *              - LZMA_DATA_ERROR: The structures differ.
(-)xz-5.2.5/src/liblzma/api/lzma/version.h (-11 / +25 lines)
Lines 1-6 Link Here
1
/**
1
/**
2
 * \file        lzma/version.h
2
 * \file        lzma/version.h
3
 * \brief       Version number
3
 * \brief       Version number
4
 * \note        Never include this file directly. Use <lzma.h> instead.
4
 */
5
 */
5
6
6
/*
7
/*
Lines 8-15 Link Here
8
 *
9
 *
9
 * This file has been put into the public domain.
10
 * This file has been put into the public domain.
10
 * You can do whatever you want with this file.
11
 * You can do whatever you want with this file.
11
 *
12
 * See ../lzma.h for information about liblzma as a whole.
13
 */
12
 */
14
13
15
#ifndef LZMA_H_INTERNAL
14
#ifndef LZMA_H_INTERNAL
Lines 17-30 Link Here
17
#endif
16
#endif
18
17
19
18
20
/*
19
/** \brief Major version number of the liblzma release. */
21
 * Version number split into components
22
 */
23
#define LZMA_VERSION_MAJOR 5
20
#define LZMA_VERSION_MAJOR 5
24
#define LZMA_VERSION_MINOR 2
21
25
#define LZMA_VERSION_PATCH 5
22
/** \brief Minor version number of the liblzma release. */
23
#define LZMA_VERSION_MINOR 4
24
25
/** \brief Patch version number of the liblzma release. */
26
#define LZMA_VERSION_PATCH 3
27
28
/**
29
 * \brief Version stability marker
30
 *
31
 * This will always be one of three values:
32
 *   - LZMA_VERSION_STABILITY_ALPHA
33
 *   - LZMA_VERSION_STABILITY_BETA
34
 *   - LZMA_VERSION_STABILITY_STABLE
35
 */
26
#define LZMA_VERSION_STABILITY LZMA_VERSION_STABILITY_STABLE
36
#define LZMA_VERSION_STABILITY LZMA_VERSION_STABILITY_STABLE
27
37
38
/** \brief Commit version number of the liblzma release */
28
#ifndef LZMA_VERSION_COMMIT
39
#ifndef LZMA_VERSION_COMMIT
29
#	define LZMA_VERSION_COMMIT ""
40
#	define LZMA_VERSION_COMMIT ""
30
#endif
41
#endif
Lines 101-109 Link Here
101
/**
112
/**
102
 * \brief       Run-time version number as an integer
113
 * \brief       Run-time version number as an integer
103
 *
114
 *
104
 * Return the value of LZMA_VERSION macro at the compile time of liblzma.
115
 * This allows an application to compare if it was built against the same,
105
 * This allows the application to compare if it was built against the same,
106
 * older, or newer version of liblzma that is currently running.
116
 * older, or newer version of liblzma that is currently running.
117
 *
118
 * \return The value of LZMA_VERSION macro at the compile time of liblzma
107
 */
119
 */
108
extern LZMA_API(uint32_t) lzma_version_number(void)
120
extern LZMA_API(uint32_t) lzma_version_number(void)
109
		lzma_nothrow lzma_attr_const;
121
		lzma_nothrow lzma_attr_const;
Lines 112-119 Link Here
112
/**
124
/**
113
 * \brief       Run-time version as a string
125
 * \brief       Run-time version as a string
114
 *
126
 *
115
 * This function may be useful if you want to display which version of
127
 * This function may be useful to display which version of liblzma an
116
 * liblzma your application is currently using.
128
 * application is currently using.
129
 *
130
 * \return      Run-time version of liblzma
117
 */
131
 */
118
extern LZMA_API(const char *) lzma_version_string(void)
132
extern LZMA_API(const char *) lzma_version_string(void)
119
		lzma_nothrow lzma_attr_const;
133
		lzma_nothrow lzma_attr_const;
(-)xz-5.2.5/src/liblzma/api/lzma/vli.h (-9 / +11 lines)
Lines 1-6 Link Here
1
/**
1
/**
2
 * \file        lzma/vli.h
2
 * \file        lzma/vli.h
3
 * \brief       Variable-length integer handling
3
 * \brief       Variable-length integer handling
4
 * \note        Never include this file directly. Use <lzma.h> instead.
4
 *
5
 *
5
 * In the .xz format, most integers are encoded in a variable-length
6
 * In the .xz format, most integers are encoded in a variable-length
6
 * representation, which is sometimes called little endian base-128 encoding.
7
 * representation, which is sometimes called little endian base-128 encoding.
Lines 19-26 Link Here
19
 *
20
 *
20
 * This file has been put into the public domain.
21
 * This file has been put into the public domain.
21
 * You can do whatever you want with this file.
22
 * You can do whatever you want with this file.
22
 *
23
 * See ../lzma.h for information about liblzma as a whole.
24
 */
23
 */
25
24
26
#ifndef LZMA_H_INTERNAL
25
#ifndef LZMA_H_INTERNAL
Lines 70-76 Link Here
70
 * for example in the uncompressed_size and compressed_size variables.
69
 * for example in the uncompressed_size and compressed_size variables.
71
 *
70
 *
72
 * \return      True if the integer is representable as VLI or if it
71
 * \return      True if the integer is representable as VLI or if it
73
 *              indicates unknown value.
72
 *              indicates unknown value. False if the integer cannot be
73
 *              represented as VLI.
74
 */
74
 */
75
#define lzma_vli_is_valid(vli) \
75
#define lzma_vli_is_valid(vli) \
76
	((vli) <= LZMA_VLI_MAX || (vli) == LZMA_VLI_UNKNOWN)
76
	((vli) <= LZMA_VLI_MAX || (vli) == LZMA_VLI_UNKNOWN)
Lines 86-97 Link Here
86
 * integer has been encoded.
86
 * integer has been encoded.
87
 *
87
 *
88
 * \param       vli       Integer to be encoded
88
 * \param       vli       Integer to be encoded
89
 * \param       vli_pos   How many VLI-encoded bytes have already been written
89
 * \param[out]  vli_pos   How many VLI-encoded bytes have already been written
90
 *                        out. When starting to encode a new integer in
90
 *                        out. When starting to encode a new integer in
91
 *                        multi-call mode, *vli_pos must be set to zero.
91
 *                        multi-call mode, *vli_pos must be set to zero.
92
 *                        To use single-call encoding, set vli_pos to NULL.
92
 *                        To use single-call encoding, set vli_pos to NULL.
93
 * \param       out       Beginning of the output buffer
93
 * \param[out]  out       Beginning of the output buffer
94
 * \param       out_pos   The next byte will be written to out[*out_pos].
94
 * \param[out]  out_pos   The next byte will be written to out[*out_pos].
95
 * \param       out_size  Size of the out buffer; the first byte into
95
 * \param       out_size  Size of the out buffer; the first byte into
96
 *                        which no data is written to is out[out_size].
96
 *                        which no data is written to is out[out_size].
97
 *
97
 *
Lines 121-135 Link Here
121
 *
121
 *
122
 * Like lzma_vli_encode(), this function has single-call and multi-call modes.
122
 * Like lzma_vli_encode(), this function has single-call and multi-call modes.
123
 *
123
 *
124
 * \param       vli       Pointer to decoded integer. The decoder will
124
 * \param[out]  vli       Pointer to decoded integer. The decoder will
125
 *                        initialize it to zero when *vli_pos == 0, so
125
 *                        initialize it to zero when *vli_pos == 0, so
126
 *                        application isn't required to initialize *vli.
126
 *                        application isn't required to initialize *vli.
127
 * \param       vli_pos   How many bytes have already been decoded. When
127
 * \param[out]  vli_pos   How many bytes have already been decoded. When
128
 *                        starting to decode a new integer in multi-call
128
 *                        starting to decode a new integer in multi-call
129
 *                        mode, *vli_pos must be initialized to zero. To
129
 *                        mode, *vli_pos must be initialized to zero. To
130
 *                        use single-call decoding, set vli_pos to NULL.
130
 *                        use single-call decoding, set vli_pos to NULL.
131
 * \param       in        Beginning of the input buffer
131
 * \param       in        Beginning of the input buffer
132
 * \param       in_pos    The next byte will be read from in[*in_pos].
132
 * \param[out]  in_pos    The next byte will be read from in[*in_pos].
133
 * \param       in_size   Size of the input buffer; the first byte that
133
 * \param       in_size   Size of the input buffer; the first byte that
134
 *                        won't be read is in[in_size].
134
 *                        won't be read is in[in_size].
135
 *
135
 *
Lines 158-163 Link Here
158
158
159
/**
159
/**
160
 * \brief       Get the number of bytes required to encode a VLI
160
 * \brief       Get the number of bytes required to encode a VLI
161
 *
162
 * \param       vli       Integer whose encoded size is to be determined
161
 *
163
 *
162
 * \return      Number of bytes on success (1-9). If vli isn't valid,
164
 * \return      Number of bytes on success (1-9). If vli isn't valid,
163
 *              zero is returned.
165
 *              zero is returned.
(-)xz-5.2.5/src/liblzma/api/lzma.h (-6 / +8 lines)
Lines 1-22 Link Here
1
/**
1
/**
2
 * \file        api/lzma.h
2
 * \file        api/lzma.h
3
 * \brief       The public API of liblzma data compression library
3
 * \brief       The public API of liblzma data compression library
4
 * \mainpage
4
 *
5
 *
5
 * liblzma is a public domain general-purpose data compression library with
6
 * liblzma is a public domain general-purpose data compression library with
6
 * a zlib-like API. The native file format is .xz, but also the old .lzma
7
 * a zlib-like API. The native file format is .xz, but also the old .lzma
7
 * format and raw (no headers) streams are supported. Multiple compression
8
 * format and raw (no headers) streams are supported. Multiple compression
8
 * algorithms (filters) are supported. Currently LZMA2 is the primary filter.
9
 * algorithms (filters) are supported. Currently LZMA2 is the primary filter.
9
 *
10
 *
10
 * liblzma is part of XZ Utils <http://tukaani.org/xz/>. XZ Utils includes
11
 * liblzma is part of XZ Utils <https://tukaani.org/xz/>. XZ Utils includes
11
 * a gzip-like command line tool named xz and some other tools. XZ Utils
12
 * a gzip-like command line tool named xz and some other tools. XZ Utils
12
 * is developed and maintained by Lasse Collin.
13
 * is developed and maintained by Lasse Collin and Jia Tan.
13
 *
14
 *
14
 * Major parts of liblzma are based on Igor Pavlov's public domain LZMA SDK
15
 * Major parts of liblzma are based on Igor Pavlov's public domain LZMA SDK
15
 * <http://7-zip.org/sdk.html>.
16
 * <https://7-zip.org/sdk.html>.
16
 *
17
 *
17
 * The SHA-256 implementation is based on the public domain code found from
18
 * The SHA-256 implementation is based on the public domain code found from
18
 * 7-Zip <http://7-zip.org/>, which has a modified version of the public
19
 * 7-Zip <https://7-zip.org/>, which has a modified version of the public
19
 * domain SHA-256 code found from Crypto++ <http://www.cryptopp.com/>.
20
 * domain SHA-256 code found from Crypto++ <https://www.cryptopp.com/>.
20
 * The SHA-256 code in Crypto++ was written by Kevin Springle and Wei Dai.
21
 * The SHA-256 code in Crypto++ was written by Kevin Springle and Wei Dai.
21
 */
22
 */
22
23
Lines 219-225 Link Here
219
 */
220
 */
220
#ifndef lzma_nothrow
221
#ifndef lzma_nothrow
221
#	if defined(__cplusplus)
222
#	if defined(__cplusplus)
222
#		if __cplusplus >= 201103L
223
#		if __cplusplus >= 201103L || (defined(_MSVC_LANG) \
224
				&& _MSVC_LANG >= 201103L)
223
#			define lzma_nothrow noexcept
225
#			define lzma_nothrow noexcept
224
#		else
226
#		else
225
#			define lzma_nothrow throw()
227
#			define lzma_nothrow throw()
(-)xz-5.2.5/src/liblzma/check/check.h (-4 lines)
Lines 108-117 Link Here
108
108
109
109
110
/// \brief      Initialize *check depending on type
110
/// \brief      Initialize *check depending on type
111
///
112
/// \return     LZMA_OK on success. LZMA_UNSUPPORTED_CHECK if the type is not
113
///             supported by the current version or build of liblzma.
114
///             LZMA_PROG_ERROR if type > LZMA_CHECK_ID_MAX.
115
extern void lzma_check_init(lzma_check_state *check, lzma_check type);
111
extern void lzma_check_init(lzma_check_state *check, lzma_check type);
116
112
117
/// Update the check state
113
/// Update the check state
(-)xz-5.2.5/src/liblzma/check/crc32_small.c (+7 lines)
Lines 16-21 Link Here
16
uint32_t lzma_crc32_table[1][256];
16
uint32_t lzma_crc32_table[1][256];
17
17
18
18
19
#ifdef HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR
20
__attribute__((__constructor__))
21
#endif
19
static void
22
static void
20
crc32_init(void)
23
crc32_init(void)
21
{
24
{
Lines 37-54 Link Here
37
}
40
}
38
41
39
42
43
#ifndef HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR
40
extern void
44
extern void
41
lzma_crc32_init(void)
45
lzma_crc32_init(void)
42
{
46
{
43
	mythread_once(crc32_init);
47
	mythread_once(crc32_init);
44
	return;
48
	return;
45
}
49
}
50
#endif
46
51
47
52
48
extern LZMA_API(uint32_t)
53
extern LZMA_API(uint32_t)
49
lzma_crc32(const uint8_t *buf, size_t size, uint32_t crc)
54
lzma_crc32(const uint8_t *buf, size_t size, uint32_t crc)
50
{
55
{
56
#ifndef HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR
51
	lzma_crc32_init();
57
	lzma_crc32_init();
58
#endif
52
59
53
	crc = ~crc;
60
	crc = ~crc;
54
61
(-)xz-5.2.5/src/liblzma/check/crc32_x86.S (-3 / +12 lines)
Lines 51-56 Link Here
51
 * extern uint32_t lzma_crc32(const uint8_t *buf, size_t size, uint32_t crc);
51
 * extern uint32_t lzma_crc32(const uint8_t *buf, size_t size, uint32_t crc);
52
 */
52
 */
53
53
54
/* When Intel CET is enabled, include <cet.h> in assembly code to mark
55
   Intel CET support.  */
56
#ifdef __CET__
57
# include <cet.h>
58
#else
59
# define _CET_ENDBR
60
#endif
61
54
/*
62
/*
55
 * On some systems, the functions need to be prefixed. The prefix is
63
 * On some systems, the functions need to be prefixed. The prefix is
56
 * usually an underscore.
64
 * usually an underscore.
Lines 83-88 Link Here
83
91
84
	ALIGN(4, 16)
92
	ALIGN(4, 16)
85
LZMA_CRC32:
93
LZMA_CRC32:
94
	_CET_ENDBR
86
	/*
95
	/*
87
	 * Register usage:
96
	 * Register usage:
88
	 * %eax crc
97
	 * %eax crc
Lines 195-201 Link Here
195
204
196
	/*
205
	/*
197
	 * Read the next four bytes, for which the CRC is calculated
206
	 * Read the next four bytes, for which the CRC is calculated
198
	 * on the next interation of the loop.
207
	 * on the next iteration of the loop.
199
	 */
208
	 */
200
	movl	12(%esi), %ecx
209
	movl	12(%esi), %ecx
201
210
Lines 296-304 Link Here
296
305
297
/*
306
/*
298
 * This is needed to support non-executable stack. It's ugly to
307
 * This is needed to support non-executable stack. It's ugly to
299
 * use __linux__ here, but I don't know a way to detect when
308
 * use __FreeBSD__ and __linux__ here, but I don't know a way to detect when
300
 * we are using GNU assembler.
309
 * we are using GNU assembler.
301
 */
310
 */
302
#if defined(__ELF__) && defined(__linux__)
311
#if defined(__ELF__) && (defined(__FreeBSD__) || defined(__linux__))
303
	.section	.note.GNU-stack,"",@progbits
312
	.section	.note.GNU-stack,"",@progbits
304
#endif
313
#endif
(-)xz-5.2.5/src/liblzma/check/crc64_fast.c (-7 / +465 lines)
Lines 3-13 Link Here
3
/// \file       crc64.c
3
/// \file       crc64.c
4
/// \brief      CRC64 calculation
4
/// \brief      CRC64 calculation
5
///
5
///
6
/// Calculate the CRC64 using the slice-by-four algorithm. This is the same
6
/// There are two methods in this file. crc64_generic uses the
7
/// idea that is used in crc32_fast.c, but for CRC64 we use only four tables
7
/// the slice-by-four algorithm. This is the same idea that is
8
/// used in crc32_fast.c, but for CRC64 we use only four tables
8
/// instead of eight to avoid increasing CPU cache usage.
9
/// instead of eight to avoid increasing CPU cache usage.
10
///
11
/// crc64_clmul uses 32/64-bit x86 SSSE3, SSE4.1, and CLMUL instructions.
12
/// It was derived from
13
/// https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/fast-crc-computation-generic-polynomials-pclmulqdq-paper.pdf
14
/// and the public domain code from https://github.com/rawrunprotected/crc
15
/// (URLs were checked on 2022-11-07).
16
///
17
/// FIXME: Builds for 32-bit x86 use crc64_x86.S by default instead
18
/// of this file and thus CLMUL version isn't available on 32-bit x86
19
/// unless configured with --disable-assembler. Even then the lookup table
20
/// isn't omitted in crc64_table.c since it doesn't know that assembly
21
/// code has been disabled.
9
//
22
//
10
//  Author:     Lasse Collin
23
//  Authors:    Lasse Collin
24
//              Ilya Kurdyukov
11
//
25
//
12
//  This file has been put into the public domain.
26
//  This file has been put into the public domain.
13
//  You can do whatever you want with this file.
27
//  You can do whatever you want with this file.
Lines 15-20 Link Here
15
///////////////////////////////////////////////////////////////////////////////
29
///////////////////////////////////////////////////////////////////////////////
16
30
17
#include "check.h"
31
#include "check.h"
32
33
#undef CRC_GENERIC
34
#undef CRC_CLMUL
35
#undef CRC_USE_GENERIC_FOR_SMALL_INPUTS
36
37
// If CLMUL cannot be used then only the generic slice-by-four is built.
38
#if !defined(HAVE_USABLE_CLMUL)
39
#	define CRC_GENERIC 1
40
41
// If CLMUL is allowed unconditionally in the compiler options then the
42
// generic version can be omitted. Note that this doesn't work with MSVC
43
// as I don't know how to detect the features here.
44
//
45
// NOTE: Keep this this in sync with crc64_table.c.
46
#elif (defined(__SSSE3__) && defined(__SSE4_1__) && defined(__PCLMUL__)) \
47
		|| (defined(__e2k__) && __iset__ >= 6)
48
#	define CRC_CLMUL 1
49
50
// Otherwise build both and detect at runtime which version to use.
51
#else
52
#	define CRC_GENERIC 1
53
#	define CRC_CLMUL 1
54
55
/*
56
	// The generic code is much faster with 1-8-byte inputs and has
57
	// similar performance up to 16 bytes  at least in microbenchmarks
58
	// (it depends on input buffer alignment too). If both versions are
59
	// built, this #define will use the generic version for inputs up to
60
	// 16 bytes and CLMUL for bigger inputs. It saves a little in code
61
	// size since the special cases for 0-16-byte inputs will be omitted
62
	// from the CLMUL code.
63
#	define CRC_USE_GENERIC_FOR_SMALL_INPUTS 1
64
*/
65
66
#	if defined(_MSC_VER)
67
#		include <intrin.h>
68
#	elif defined(HAVE_CPUID_H)
69
#		include <cpuid.h>
70
#	endif
71
#endif
72
73
74
/////////////////////////////////
75
// Generic slice-by-four CRC64 //
76
/////////////////////////////////
77
78
#ifdef CRC_GENERIC
79
18
#include "crc_macros.h"
80
#include "crc_macros.h"
19
81
20
82
Lines 26-33 Link Here
26
88
27
89
28
// See the comments in crc32_fast.c. They aren't duplicated here.
90
// See the comments in crc32_fast.c. They aren't duplicated here.
29
extern LZMA_API(uint64_t)
91
static uint64_t
30
lzma_crc64(const uint8_t *buf, size_t size, uint64_t crc)
92
crc64_generic(const uint8_t *buf, size_t size, uint64_t crc)
31
{
93
{
32
	crc = ~crc;
94
	crc = ~crc;
33
95
Lines 46-55 Link Here
46
108
47
		while (buf < limit) {
109
		while (buf < limit) {
48
#ifdef WORDS_BIGENDIAN
110
#ifdef WORDS_BIGENDIAN
49
			const uint32_t tmp = (crc >> 32)
111
			const uint32_t tmp = (uint32_t)(crc >> 32)
50
					^ aligned_read32ne(buf);
112
					^ aligned_read32ne(buf);
51
#else
113
#else
52
			const uint32_t tmp = crc ^ aligned_read32ne(buf);
114
			const uint32_t tmp = (uint32_t)crc
115
					^ aligned_read32ne(buf);
53
#endif
116
#endif
54
			buf += 4;
117
			buf += 4;
55
118
Lines 69-72 Link Here
69
#endif
132
#endif
70
133
71
	return ~crc;
134
	return ~crc;
135
}
136
#endif
137
138
139
/////////////////////
140
// x86 CLMUL CRC64 //
141
/////////////////////
142
143
#ifdef CRC_CLMUL
144
145
#include <immintrin.h>
146
147
148
/*
149
// These functions were used to generate the constants
150
// at the top of crc64_clmul().
151
static uint64_t
152
calc_lo(uint64_t poly)
153
{
154
	uint64_t a = poly;
155
	uint64_t b = 0;
156
157
	for (unsigned i = 0; i < 64; ++i) {
158
		b = (b >> 1) | (a << 63);
159
		a = (a >> 1) ^ (a & 1 ? poly : 0);
160
	}
161
162
	return b;
163
}
164
165
static uint64_t
166
calc_hi(uint64_t poly, uint64_t a)
167
{
168
	for (unsigned i = 0; i < 64; ++i)
169
		a = (a >> 1) ^ (a & 1 ? poly : 0);
170
171
	return a;
172
}
173
*/
174
175
176
#define MASK_L(in, mask, r) \
177
	r = _mm_shuffle_epi8(in, mask)
178
179
#define MASK_H(in, mask, r) \
180
	r = _mm_shuffle_epi8(in, _mm_xor_si128(mask, vsign))
181
182
#define MASK_LH(in, mask, low, high) \
183
	MASK_L(in, mask, low); \
184
	MASK_H(in, mask, high)
185
186
187
// MSVC (VS2015 - VS2022) produces bad 32-bit x86 code from the CLMUL CRC
188
// code when optimizations are enabled (release build). According to the bug
189
// report, the ebx register is corrupted and the calculated result is wrong.
190
// Trying to workaround the problem with "__asm mov ebx, ebx" didn't help.
191
// The following pragma works and performance is still good. x86-64 builds
192
// aren't affected by this problem.
193
//
194
// NOTE: Another pragma after the function restores the optimizations.
195
// If the #if condition here is updated, the other one must be updated too.
196
#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && !defined(__clang__) \
197
		&& defined(_M_IX86)
198
#	pragma optimize("g", off)
199
#endif
200
201
// EDG-based compilers (Intel's classic compiler and compiler for E2K) can
202
// define __GNUC__ but the attribute must not be used with them.
203
// The new Clang-based ICX needs the attribute.
204
//
205
// NOTE: Build systems check for this too, keep them in sync with this.
206
#if (defined(__GNUC__) || defined(__clang__)) && !defined(__EDG__)
207
__attribute__((__target__("ssse3,sse4.1,pclmul")))
208
#endif
209
static uint64_t
210
crc64_clmul(const uint8_t *buf, size_t size, uint64_t crc)
211
{
212
	// The prototypes of the intrinsics use signed types while most of
213
	// the values are treated as unsigned here. These warnings in this
214
	// function have been checked and found to be harmless so silence them.
215
#if TUKLIB_GNUC_REQ(4, 6) || defined(__clang__)
216
#	pragma GCC diagnostic push
217
#	pragma GCC diagnostic ignored "-Wsign-conversion"
218
#	pragma GCC diagnostic ignored "-Wconversion"
219
#endif
220
221
#ifndef CRC_USE_GENERIC_FOR_SMALL_INPUTS
222
	// The code assumes that there is at least one byte of input.
223
	if (size == 0)
224
		return crc;
225
#endif
226
227
	// const uint64_t poly = 0xc96c5795d7870f42; // CRC polynomial
228
	const uint64_t p  = 0x92d8af2baf0e1e85; // (poly << 1) | 1
229
	const uint64_t mu = 0x9c3e466c172963d5; // (calc_lo(poly) << 1) | 1
230
	const uint64_t k2 = 0xdabe95afc7875f40; // calc_hi(poly, 1)
231
	const uint64_t k1 = 0xe05dd497ca393ae4; // calc_hi(poly, k2)
232
	const __m128i vfold0 = _mm_set_epi64x(p, mu);
233
	const __m128i vfold1 = _mm_set_epi64x(k2, k1);
234
235
	// Create a vector with 8-bit values 0 to 15. This is used to
236
	// construct control masks for _mm_blendv_epi8 and _mm_shuffle_epi8.
237
	const __m128i vramp = _mm_setr_epi32(
238
			0x03020100, 0x07060504, 0x0b0a0908, 0x0f0e0d0c);
239
240
	// This is used to inverse the control mask of _mm_shuffle_epi8
241
	// so that bytes that wouldn't be picked with the original mask
242
	// will be picked and vice versa.
243
	const __m128i vsign = _mm_set1_epi8(0x80);
244
245
	// Memory addresses A to D and the distances between them:
246
	//
247
	//     A           B     C         D
248
	//     [skip_start][size][skip_end]
249
	//     [     size2      ]
250
	//
251
	// A and D are 16-byte aligned. B and C are 1-byte aligned.
252
	// skip_start and skip_end are 0-15 bytes. size is at least 1 byte.
253
	//
254
	// A = aligned_buf will initially point to this address.
255
	// B = The address pointed by the caller-supplied buf.
256
	// C = buf + size == aligned_buf + size2
257
	// D = buf + size + skip_end == aligned_buf + size2 + skip_end
258
	const size_t skip_start = (size_t)((uintptr_t)buf & 15);
259
	const size_t skip_end = (size_t)((0U - (uintptr_t)(buf + size)) & 15);
260
	const __m128i *aligned_buf = (const __m128i *)(
261
			(uintptr_t)buf & ~(uintptr_t)15);
262
263
	// If size2 <= 16 then the whole input fits into a single 16-byte
264
	// vector. If size2 > 16 then at least two 16-byte vectors must
265
	// be processed. If size2 > 16 && size <= 16 then there is only
266
	// one 16-byte vector's worth of input but it is unaligned in memory.
267
	//
268
	// NOTE: There is no integer overflow here if the arguments are valid.
269
	// If this overflowed, buf + size would too.
270
	size_t size2 = skip_start + size;
271
272
	// Masks to be used with _mm_blendv_epi8 and _mm_shuffle_epi8:
273
	// The first skip_start or skip_end bytes in the vectors will have
274
	// the high bit (0x80) set. _mm_blendv_epi8 and _mm_shuffle_epi8
275
	// will produce zeros for these positions. (Bitwise-xor of these
276
	// masks with vsign will produce the opposite behavior.)
277
	const __m128i mask_start
278
			= _mm_sub_epi8(vramp, _mm_set1_epi8(skip_start));
279
	const __m128i mask_end = _mm_sub_epi8(vramp, _mm_set1_epi8(skip_end));
280
281
	// Get the first 1-16 bytes into data0. If loading less than 16 bytes,
282
	// the bytes are loaded to the high bits of the vector and the least
283
	// significant positions are filled with zeros.
284
	const __m128i data0 = _mm_blendv_epi8(_mm_load_si128(aligned_buf),
285
			_mm_setzero_si128(), mask_start);
286
	++aligned_buf;
287
288
#if defined(__i386__) || defined(_M_IX86)
289
	const __m128i initial_crc = _mm_set_epi64x(0, ~crc);
290
#else
291
	// GCC and Clang would produce good code with _mm_set_epi64x
292
	// but MSVC needs _mm_cvtsi64_si128 on x86-64.
293
	const __m128i initial_crc = _mm_cvtsi64_si128(~crc);
294
#endif
295
296
	__m128i v0, v1, v2, v3;
297
298
#ifndef CRC_USE_GENERIC_FOR_SMALL_INPUTS
299
	if (size <= 16) {
300
		// Right-shift initial_crc by 1-16 bytes based on "size"
301
		// and store the result in v1 (high bytes) and v0 (low bytes).
302
		//
303
		// NOTE: The highest 8 bytes of initial_crc are zeros so
304
		// v1 will be filled with zeros if size >= 8. The highest 8
305
		// bytes of v1 will always become zeros.
306
		//
307
		// [      v1      ][      v0      ]
308
		//  [ initial_crc  ]                  size == 1
309
		//   [ initial_crc  ]                 size == 2
310
		//                [ initial_crc  ]    size == 15
311
		//                 [ initial_crc  ]   size == 16 (all in v0)
312
		const __m128i mask_low = _mm_add_epi8(
313
				vramp, _mm_set1_epi8(size - 16));
314
		MASK_LH(initial_crc, mask_low, v0, v1);
315
316
		if (size2 <= 16) {
317
			// There are 1-16 bytes of input and it is all
318
			// in data0. Copy the input bytes to v3. If there
319
			// are fewer than 16 bytes, the low bytes in v3
320
			// will be filled with zeros. That is, the input
321
			// bytes are stored to the same position as
322
			// (part of) initial_crc is in v0.
323
			MASK_L(data0, mask_end, v3);
324
		} else {
325
			// There are 2-16 bytes of input but not all bytes
326
			// are in data0.
327
			const __m128i data1 = _mm_load_si128(aligned_buf);
328
329
			// Collect the 2-16 input bytes from data0 and data1
330
			// to v2 and v3, and bitwise-xor them with the
331
			// low bits of initial_crc in v0. Note that the
332
			// the second xor is below this else-block as it
333
			// is shared with the other branch.
334
			MASK_H(data0, mask_end, v2);
335
			MASK_L(data1, mask_end, v3);
336
			v0 = _mm_xor_si128(v0, v2);
337
		}
338
339
		v0 = _mm_xor_si128(v0, v3);
340
		v1 = _mm_alignr_epi8(v1, v0, 8);
341
	} else
342
#endif
343
	{
344
		const __m128i data1 = _mm_load_si128(aligned_buf);
345
		MASK_LH(initial_crc, mask_start, v0, v1);
346
		v0 = _mm_xor_si128(v0, data0);
347
		v1 = _mm_xor_si128(v1, data1);
348
349
#define FOLD \
350
	v1 = _mm_xor_si128(v1, _mm_clmulepi64_si128(v0, vfold1, 0x00)); \
351
	v0 = _mm_xor_si128(v1, _mm_clmulepi64_si128(v0, vfold1, 0x11));
352
353
		while (size2 > 32) {
354
			++aligned_buf;
355
			size2 -= 16;
356
			FOLD
357
			v1 = _mm_load_si128(aligned_buf);
358
		}
359
360
		if (size2 < 32) {
361
			MASK_H(v0, mask_end, v2);
362
			MASK_L(v0, mask_end, v0);
363
			MASK_L(v1, mask_end, v3);
364
			v1 = _mm_or_si128(v2, v3);
365
		}
366
367
		FOLD
368
		v1 = _mm_srli_si128(v0, 8);
369
#undef FOLD
370
	}
371
372
	v1 = _mm_xor_si128(_mm_clmulepi64_si128(v0, vfold1, 0x10), v1);
373
	v0 = _mm_clmulepi64_si128(v1, vfold0, 0x00);
374
	v2 = _mm_clmulepi64_si128(v0, vfold0, 0x10);
375
	v0 = _mm_xor_si128(_mm_xor_si128(v2, _mm_slli_si128(v0, 8)), v1);
376
377
#if defined(__i386__) || defined(_M_IX86)
378
	return ~(((uint64_t)(uint32_t)_mm_extract_epi32(v0, 3) << 32) |
379
			(uint64_t)(uint32_t)_mm_extract_epi32(v0, 2));
380
#else
381
	return ~(uint64_t)_mm_extract_epi64(v0, 1);
382
#endif
383
384
#if TUKLIB_GNUC_REQ(4, 6) || defined(__clang__)
385
#	pragma GCC diagnostic pop
386
#endif
387
}
388
#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && !defined(__clang__) \
389
		&& defined(_M_IX86)
390
#	pragma optimize("", on)
391
#endif
392
#endif
393
394
395
////////////////////////
396
// Detect CPU support //
397
////////////////////////
398
399
#if defined(CRC_GENERIC) && defined(CRC_CLMUL)
400
static inline bool
401
is_clmul_supported(void)
402
{
403
	int success = 1;
404
	uint32_t r[4]; // eax, ebx, ecx, edx
405
406
#if defined(_MSC_VER)
407
	// This needs <intrin.h> with MSVC. ICC has it as a built-in
408
	// on all platforms.
409
	__cpuid(r, 1);
410
#elif defined(HAVE_CPUID_H)
411
	// Compared to just using __asm__ to run CPUID, this also checks
412
	// that CPUID is supported and saves and restores ebx as that is
413
	// needed with GCC < 5 with position-independent code (PIC).
414
	success = __get_cpuid(1, &r[0], &r[1], &r[2], &r[3]);
415
#else
416
	// Just a fallback that shouldn't be needed.
417
	__asm__("cpuid\n\t"
418
			: "=a"(r[0]), "=b"(r[1]), "=c"(r[2]), "=d"(r[3])
419
			: "a"(1), "c"(0));
420
#endif
421
422
	// Returns true if these are supported:
423
	// CLMUL (bit 1 in ecx)
424
	// SSSE3 (bit 9 in ecx)
425
	// SSE4.1 (bit 19 in ecx)
426
	const uint32_t ecx_mask = (1 << 1) | (1 << 9) | (1 << 19);
427
	return success && (r[2] & ecx_mask) == ecx_mask;
428
429
	// Alternative methods that weren't used:
430
	//   - ICC's _may_i_use_cpu_feature: the other methods should work too.
431
	//   - GCC >= 6 / Clang / ICX __builtin_cpu_supports("pclmul")
432
	//
433
	// CPUID decding is needed with MSVC anyway and older GCC. This keeps
434
	// the feature checks in the build system simpler too. The nice thing
435
	// about __builtin_cpu_supports would be that it generates very short
436
	// code as is it only reads a variable set at startup but a few bytes
437
	// doesn't matter here.
438
}
439
440
441
#ifdef HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR
442
#	define CRC64_FUNC_INIT
443
#	define CRC64_SET_FUNC_ATTR __attribute__((__constructor__))
444
#else
445
#	define CRC64_FUNC_INIT = &crc64_dispatch
446
#	define CRC64_SET_FUNC_ATTR
447
static uint64_t crc64_dispatch(const uint8_t *buf, size_t size, uint64_t crc);
448
#endif
449
450
451
// Pointer to the the selected CRC64 method.
452
static uint64_t (*crc64_func)(const uint8_t *buf, size_t size, uint64_t crc)
453
		CRC64_FUNC_INIT;
454
455
456
CRC64_SET_FUNC_ATTR
457
static void
458
crc64_set_func(void)
459
{
460
	crc64_func = is_clmul_supported() ? &crc64_clmul : &crc64_generic;
461
	return;
462
}
463
464
465
#ifndef HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR
466
static uint64_t
467
crc64_dispatch(const uint8_t *buf, size_t size, uint64_t crc)
468
{
469
	// When __attribute__((__constructor__)) isn't supported, set the
470
	// function pointer without any locking. If multiple threads run
471
	// the detection code in parallel, they will all end up setting
472
	// the pointer to the same value. This avoids the use of
473
	// mythread_once() on every call to lzma_crc64() but this likely
474
	// isn't strictly standards compliant. Let's change it if it breaks.
475
	crc64_set_func();
476
	return crc64_func(buf, size, crc);
477
}
478
#endif
479
#endif
480
481
482
extern LZMA_API(uint64_t)
483
lzma_crc64(const uint8_t *buf, size_t size, uint64_t crc)
484
{
485
#if defined(CRC_GENERIC) && defined(CRC_CLMUL)
486
	// If CLMUL is available, it is the best for non-tiny inputs,
487
	// being over twice as fast as the generic slice-by-four version.
488
	// However, for size <= 16 it's different. In the extreme case
489
	// of size == 1 the generic version can be five times faster.
490
	// At size >= 8 the CLMUL starts to become reasonable. It
491
	// varies depending on the alignment of buf too.
492
	//
493
	// The above doesn't include the overhead of mythread_once().
494
	// At least on x86-64 GNU/Linux, pthread_once() is very fast but
495
	// it still makes lzma_crc64(buf, 1, crc) 50-100 % slower. When
496
	// size reaches 12-16 bytes the overhead becomes negligible.
497
	//
498
	// So using the generic version for size <= 16 may give better
499
	// performance with tiny inputs but if such inputs happen rarely
500
	// it's not so obvious because then the lookup table of the
501
	// generic version may not be in the processor cache.
502
#ifdef CRC_USE_GENERIC_FOR_SMALL_INPUTS
503
	if (size <= 16)
504
		return crc64_generic(buf, size, crc);
505
#endif
506
507
/*
508
#ifndef HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR
509
	// See crc64_dispatch(). This would be the alternative which uses
510
	// locking and doesn't use crc64_dispatch(). Note that on Windows
511
	// this method needs Vista threads.
512
	mythread_once(crc64_set_func);
513
#endif
514
*/
515
516
	return crc64_func(buf, size, crc);
517
518
#elif defined(CRC_CLMUL)
519
	// If CLMUL is used unconditionally without runtime CPU detection
520
	// then omitting the generic version and its 8 KiB lookup table
521
	// makes the library smaller.
522
	//
523
	// FIXME: Lookup table isn't currently omitted on 32-bit x86,
524
	// see crc64_table.c.
525
	return crc64_clmul(buf, size, crc);
526
527
#else
528
	return crc64_generic(buf, size, crc);
529
#endif
72
}
530
}
(-)xz-5.2.5/src/liblzma/check/crc64_small.c (+5 lines)
Lines 16-21 Link Here
16
static uint64_t crc64_table[256];
16
static uint64_t crc64_table[256];
17
17
18
18
19
#ifdef HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR
20
__attribute__((__constructor__))
21
#endif
19
static void
22
static void
20
crc64_init(void)
23
crc64_init(void)
21
{
24
{
Lines 40-46 Link Here
40
extern LZMA_API(uint64_t)
43
extern LZMA_API(uint64_t)
41
lzma_crc64(const uint8_t *buf, size_t size, uint64_t crc)
44
lzma_crc64(const uint8_t *buf, size_t size, uint64_t crc)
42
{
45
{
46
#ifndef HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR
43
	mythread_once(crc64_init);
47
	mythread_once(crc64_init);
48
#endif
44
49
45
	crc = ~crc;
50
	crc = ~crc;
46
51
(-)xz-5.2.5/src/liblzma/check/crc64_table.c (-4 / +17 lines)
Lines 12-22 Link Here
12
12
13
#include "common.h"
13
#include "common.h"
14
14
15
16
// FIXME: Compared to crc64_fast.c this has to check for __x86_64__ too
17
// so that in 32-bit builds crc64_x86.S won't break due to a missing table.
18
#if (defined(__x86_64__) && defined(__SSSE3__) \
19
			&& defined(__SSE4_1__) && defined(__PCLMUL__)) \
20
		|| (defined(__e2k__) && __iset__ >= 6)
21
// No table needed but something has to be exported to keep some toolchains
22
// happy. Also use a declaration to silence compiler warnings.
23
extern const char lzma_crc64_dummy;
24
const char lzma_crc64_dummy;
25
26
#else
15
// Having the declaration here silences clang -Wmissing-variable-declarations.
27
// Having the declaration here silences clang -Wmissing-variable-declarations.
16
extern const uint64_t lzma_crc64_table[4][256];
28
extern const uint64_t lzma_crc64_table[4][256];
17
29
18
#ifdef WORDS_BIGENDIAN
30
#	if defined(WORDS_BIGENDIAN)
19
#	include "crc64_table_be.h"
31
#		include "crc64_table_be.h"
20
#else
32
#	else
21
#	include "crc64_table_le.h"
33
#		include "crc64_table_le.h"
34
#	endif
22
#endif
35
#endif
(-)xz-5.2.5/src/liblzma/check/crc64_x86.S (-2 / +11 lines)
Lines 41-46 Link Here
41
 * extern uint64_t lzma_crc64(const uint8_t *buf, size_t size, uint64_t crc);
41
 * extern uint64_t lzma_crc64(const uint8_t *buf, size_t size, uint64_t crc);
42
 */
42
 */
43
43
44
/* When Intel CET is enabled, include <cet.h> in assembly code to mark
45
   Intel CET support.  */
46
#ifdef __CET__
47
# include <cet.h>
48
#else
49
# define _CET_ENDBR
50
#endif
51
44
/*
52
/*
45
 * On some systems, the functions need to be prefixed. The prefix is
53
 * On some systems, the functions need to be prefixed. The prefix is
46
 * usually an underscore.
54
 * usually an underscore.
Lines 73-78 Link Here
73
81
74
	ALIGN(4, 16)
82
	ALIGN(4, 16)
75
LZMA_CRC64:
83
LZMA_CRC64:
84
	_CET_ENDBR
76
	/*
85
	/*
77
	 * Register usage:
86
	 * Register usage:
78
	 * %eax crc LSB
87
	 * %eax crc LSB
Lines 279-287 Link Here
279
288
280
/*
289
/*
281
 * This is needed to support non-executable stack. It's ugly to
290
 * This is needed to support non-executable stack. It's ugly to
282
 * use __linux__ here, but I don't know a way to detect when
291
 * use __FreeBSD__ and __linux__ here, but I don't know a way to detect when
283
 * we are using GNU assembler.
292
 * we are using GNU assembler.
284
 */
293
 */
285
#if defined(__ELF__) && defined(__linux__)
294
#if defined(__ELF__) && (defined(__FreeBSD__) || defined(__linux__))
286
	.section	.note.GNU-stack,"",@progbits
295
	.section	.note.GNU-stack,"",@progbits
287
#endif
296
#endif
(-)xz-5.2.5/src/liblzma/check/sha256.c (-1 / +1 lines)
Lines 8-14 Link Here
8
///             conditionally to keep the code working on older boxes.
8
///             conditionally to keep the code working on older boxes.
9
//
9
//
10
//  This code is based on the code found from 7-Zip, which has a modified
10
//  This code is based on the code found from 7-Zip, which has a modified
11
//  version of the SHA-256 found from Crypto++ <http://www.cryptopp.com/>.
11
//  version of the SHA-256 found from Crypto++ <https://www.cryptopp.com/>.
12
//  The code was modified a little to fit into liblzma.
12
//  The code was modified a little to fit into liblzma.
13
//
13
//
14
//  Authors:    Kevin Springle
14
//  Authors:    Kevin Springle
(-)xz-5.2.5/src/liblzma/common/Makefile.inc (-3 / +28 lines)
Lines 19-28 Link Here
19
	common/index.h \
19
	common/index.h \
20
	common/stream_flags_common.c \
20
	common/stream_flags_common.c \
21
	common/stream_flags_common.h \
21
	common/stream_flags_common.h \
22
	common/string_conversion.c \
22
	common/vli_size.c
23
	common/vli_size.c
23
24
24
if COND_THREADS
25
if COND_THREADS
25
liblzma_la_SOURCES += common/hardware_cputhreads.c
26
liblzma_la_SOURCES += \
27
	common/hardware_cputhreads.c \
28
	common/outqueue.c \
29
	common/outqueue.h
26
endif
30
endif
27
31
28
if COND_MAIN_ENCODER
32
if COND_MAIN_ENCODER
Lines 49-59 Link Here
49
53
50
if COND_THREADS
54
if COND_THREADS
51
liblzma_la_SOURCES += \
55
liblzma_la_SOURCES += \
52
	common/outqueue.c \
53
	common/outqueue.h \
54
	common/stream_encoder_mt.c
56
	common/stream_encoder_mt.c
55
endif
57
endif
58
59
if COND_MICROLZMA
60
liblzma_la_SOURCES += \
61
	common/microlzma_encoder.c
56
endif
62
endif
63
endif
57
64
58
if COND_MAIN_DECODER
65
if COND_MAIN_DECODER
59
liblzma_la_SOURCES += \
66
liblzma_la_SOURCES += \
Lines 65-79 Link Here
65
	common/block_decoder.h \
72
	common/block_decoder.h \
66
	common/block_header_decoder.c \
73
	common/block_header_decoder.c \
67
	common/easy_decoder_memusage.c \
74
	common/easy_decoder_memusage.c \
75
	common/file_info.c \
68
	common/filter_buffer_decoder.c \
76
	common/filter_buffer_decoder.c \
69
	common/filter_decoder.c \
77
	common/filter_decoder.c \
70
	common/filter_decoder.h \
78
	common/filter_decoder.h \
71
	common/filter_flags_decoder.c \
79
	common/filter_flags_decoder.c \
72
	common/index_decoder.c \
80
	common/index_decoder.c \
81
	common/index_decoder.h \
73
	common/index_hash.c \
82
	common/index_hash.c \
74
	common/stream_buffer_decoder.c \
83
	common/stream_buffer_decoder.c \
75
	common/stream_decoder.c \
84
	common/stream_decoder.c \
76
	common/stream_decoder.h \
85
	common/stream_decoder.h \
77
	common/stream_flags_decoder.c \
86
	common/stream_flags_decoder.c \
78
	common/vli_decoder.c
87
	common/vli_decoder.c
88
89
if COND_THREADS
90
liblzma_la_SOURCES += \
91
	common/stream_decoder_mt.c
92
endif
93
94
if COND_MICROLZMA
95
liblzma_la_SOURCES += \
96
	common/microlzma_decoder.c
97
endif
98
99
if COND_LZIP_DECODER
100
liblzma_la_SOURCES += \
101
	common/lzip_decoder.c \
102
	common/lzip_decoder.h
103
endif
79
endif
104
endif
(-)xz-5.2.5/src/liblzma/common/alone_decoder.c (-8 / +15 lines)
Lines 110-121 Link Here
110
		// Another hack to ditch false positives: Assume that
110
		// Another hack to ditch false positives: Assume that
111
		// if the uncompressed size is known, it must be less
111
		// if the uncompressed size is known, it must be less
112
		// than 256 GiB.
112
		// than 256 GiB.
113
		//
114
		// FIXME? Without picky we allow > LZMA_VLI_MAX which doesn't
115
		// really matter in this specific situation (> LZMA_VLI_MAX is
116
		// safe in the LZMA decoder) but it's somewhat weird still.
113
		if (coder->picky
117
		if (coder->picky
114
				&& coder->uncompressed_size != LZMA_VLI_UNKNOWN
118
				&& coder->uncompressed_size != LZMA_VLI_UNKNOWN
115
				&& coder->uncompressed_size
119
				&& coder->uncompressed_size
116
					>= (LZMA_VLI_C(1) << 38))
120
					>= (LZMA_VLI_C(1) << 38))
117
			return LZMA_FORMAT_ERROR;
121
			return LZMA_FORMAT_ERROR;
118
122
123
		// Use LZMA_FILTER_LZMA1EXT features to specify the
124
		// uncompressed size and that the end marker is allowed
125
		// even when the uncompressed size is known. Both .lzma
126
		// header and LZMA1EXT use UINT64_MAX indicate that size
127
		// is unknown.
128
		coder->options.ext_flags = LZMA_LZMA1EXT_ALLOW_EOPM;
129
		lzma_set_ext_size(coder->options, coder->uncompressed_size);
130
119
		// Calculate the memory usage so that it is ready
131
		// Calculate the memory usage so that it is ready
120
		// for SEQ_CODER_INIT.
132
		// for SEQ_CODER_INIT.
121
		coder->memusage = lzma_lzma_decoder_memusage(&coder->options)
133
		coder->memusage = lzma_lzma_decoder_memusage(&coder->options)
Lines 132-137 Link Here
132
144
133
		lzma_filter_info filters[2] = {
145
		lzma_filter_info filters[2] = {
134
			{
146
			{
147
				.id = LZMA_FILTER_LZMA1EXT,
135
				.init = &lzma_lzma_decoder_init,
148
				.init = &lzma_lzma_decoder_init,
136
				.options = &coder->options,
149
				.options = &coder->options,
137
			}, {
150
			}, {
Lines 139-152 Link Here
139
			}
152
			}
140
		};
153
		};
141
154
142
		const lzma_ret ret = lzma_next_filter_init(&coder->next,
155
		return_if_error(lzma_next_filter_init(&coder->next,
143
				allocator, filters);
156
				allocator, filters));
144
		if (ret != LZMA_OK)
145
			return ret;
146
147
		// Use a hack to set the uncompressed size.
148
		lzma_lz_decoder_uncompressed(coder->next.coder,
149
				coder->uncompressed_size);
150
157
151
		coder->sequence = SEQ_CODE;
158
		coder->sequence = SEQ_CODE;
152
		break;
159
		break;
(-)xz-5.2.5/src/liblzma/common/alone_encoder.c (-11 / +1 lines)
Lines 75-81 Link Here
75
}
75
}
76
76
77
77
78
// At least for now, this is not used by any internal function.
79
static lzma_ret
78
static lzma_ret
80
alone_encoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
79
alone_encoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
81
		const lzma_options_lzma *options)
80
		const lzma_options_lzma *options)
Lines 129-134 Link Here
129
	// Initialize the LZMA encoder.
128
	// Initialize the LZMA encoder.
130
	const lzma_filter_info filters[2] = {
129
	const lzma_filter_info filters[2] = {
131
		{
130
		{
131
			.id = LZMA_FILTER_LZMA1,
132
			.init = &lzma_lzma_encoder_init,
132
			.init = &lzma_lzma_encoder_init,
133
			.options = (void *)(options),
133
			.options = (void *)(options),
134
		}, {
134
		}, {
Lines 138-153 Link Here
138
138
139
	return lzma_next_filter_init(&coder->next, allocator, filters);
139
	return lzma_next_filter_init(&coder->next, allocator, filters);
140
}
140
}
141
142
143
/*
144
extern lzma_ret
145
lzma_alone_encoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
146
		const lzma_options_alone *options)
147
{
148
	lzma_next_coder_init(&alone_encoder_init, next, allocator, options);
149
}
150
*/
151
141
152
142
153
extern LZMA_API(lzma_ret)
143
extern LZMA_API(lzma_ret)
(-)xz-5.2.5/src/liblzma/common/auto_decoder.c (-8 / +19 lines)
Lines 1-7 Link Here
1
///////////////////////////////////////////////////////////////////////////////
1
///////////////////////////////////////////////////////////////////////////////
2
//
2
//
3
/// \file       auto_decoder.c
3
/// \file       auto_decoder.c
4
/// \brief      Autodetect between .xz Stream and .lzma (LZMA_Alone) formats
4
/// \brief      Autodetect between .xz, .lzma (LZMA_Alone), and .lz (lzip)
5
//
5
//
6
//  Author:     Lasse Collin
6
//  Author:     Lasse Collin
7
//
7
//
Lines 12-21 Link Here
12
12
13
#include "stream_decoder.h"
13
#include "stream_decoder.h"
14
#include "alone_decoder.h"
14
#include "alone_decoder.h"
15
#ifdef HAVE_LZIP_DECODER
16
#	include "lzip_decoder.h"
17
#endif
15
18
16
19
17
typedef struct {
20
typedef struct {
18
	/// Stream decoder or LZMA_Alone decoder
21
	/// .xz Stream decoder, LZMA_Alone decoder, or lzip decoder
19
	lzma_next_coder next;
22
	lzma_next_coder next;
20
23
21
	uint64_t memlimit;
24
	uint64_t memlimit;
Lines 46-59 Link Here
46
		// SEQ_CODE even if we return some LZMA_*_CHECK.
49
		// SEQ_CODE even if we return some LZMA_*_CHECK.
47
		coder->sequence = SEQ_CODE;
50
		coder->sequence = SEQ_CODE;
48
51
49
		// Detect the file format. For now this is simple, since if
52
		// Detect the file format. .xz files start with 0xFD which
50
		// it doesn't start with 0xFD (the first magic byte of the
53
		// cannot be the first byte of .lzma (LZMA_Alone) format.
51
		// new format), it has to be LZMA_Alone, or something that
54
		// The .lz format starts with 0x4C which could be the
52
		// we don't support at all.
55
		// first byte of a .lzma file but luckily it would mean
56
		// lc/lp/pb being 4/3/1 which liblzma doesn't support because
57
		// lc + lp > 4. So using just 0x4C to detect .lz is OK here.
53
		if (in[*in_pos] == 0xFD) {
58
		if (in[*in_pos] == 0xFD) {
54
			return_if_error(lzma_stream_decoder_init(
59
			return_if_error(lzma_stream_decoder_init(
55
					&coder->next, allocator,
60
					&coder->next, allocator,
56
					coder->memlimit, coder->flags));
61
					coder->memlimit, coder->flags));
62
#ifdef HAVE_LZIP_DECODER
63
		} else if (in[*in_pos] == 0x4C) {
64
			return_if_error(lzma_lzip_decoder_init(
65
					&coder->next, allocator,
66
					coder->memlimit, coder->flags));
67
#endif
57
		} else {
68
		} else {
58
			return_if_error(lzma_alone_decoder_init(&coder->next,
69
			return_if_error(lzma_alone_decoder_init(&coder->next,
59
					allocator, coder->memlimit, true));
70
					allocator, coder->memlimit, true));
Lines 86-93 Link Here
86
	// Fall through
97
	// Fall through
87
98
88
	case SEQ_FINISH:
99
	case SEQ_FINISH:
89
		// When LZMA_DECODE_CONCATENATED was used and we were decoding
100
		// When LZMA_CONCATENATED was used and we were decoding
90
		// LZMA_Alone file, we need to check check that there is no
101
		// a LZMA_Alone file, we need to check that there is no
91
		// trailing garbage and wait for LZMA_FINISH.
102
		// trailing garbage and wait for LZMA_FINISH.
92
		if (*in_pos < in_size)
103
		if (*in_pos < in_size)
93
			return LZMA_DATA_ERROR;
104
			return LZMA_DATA_ERROR;
(-)xz-5.2.5/src/liblzma/common/block_buffer_encoder.c (+18 lines)
Lines 325-330 Link Here
325
}
325
}
326
326
327
327
328
#ifdef HAVE_SYMBOL_VERSIONS_LINUX
329
// This is for compatibility with binaries linked against liblzma that
330
// has been patched with xz-5.2.2-compat-libs.patch from RHEL/CentOS 7.
331
LZMA_SYMVER_API("lzma_block_uncomp_encode@XZ_5.2.2",
332
	lzma_ret, lzma_block_uncomp_encode_522)(lzma_block *block,
333
		const uint8_t *in, size_t in_size,
334
		uint8_t *out, size_t *out_pos, size_t out_size)
335
		lzma_nothrow lzma_attr_warn_unused_result
336
		__attribute__((__alias__("lzma_block_uncomp_encode_52")));
337
338
LZMA_SYMVER_API("lzma_block_uncomp_encode@@XZ_5.2",
339
	lzma_ret, lzma_block_uncomp_encode_52)(lzma_block *block,
340
		const uint8_t *in, size_t in_size,
341
		uint8_t *out, size_t *out_pos, size_t out_size)
342
		lzma_nothrow lzma_attr_warn_unused_result;
343
344
#define lzma_block_uncomp_encode lzma_block_uncomp_encode_52
345
#endif
328
extern LZMA_API(lzma_ret)
346
extern LZMA_API(lzma_ret)
329
lzma_block_uncomp_encode(lzma_block *block,
347
lzma_block_uncomp_encode(lzma_block *block,
330
		const uint8_t *in, size_t in_size,
348
		const uint8_t *in, size_t in_size,
(-)xz-5.2.5/src/liblzma/common/block_decoder.c (-26 / +58 lines)
Lines 40-45 Link Here
40
	/// is unknown.
40
	/// is unknown.
41
	lzma_vli compressed_limit;
41
	lzma_vli compressed_limit;
42
42
43
	/// Maximum allowed Uncompressed Size.
44
	lzma_vli uncompressed_limit;
45
43
	/// Position when reading the Check field
46
	/// Position when reading the Check field
44
	size_t check_pos;
47
	size_t check_pos;
45
48
Lines 52-72 Link Here
52
55
53
56
54
static inline bool
57
static inline bool
55
update_size(lzma_vli *size, lzma_vli add, lzma_vli limit)
56
{
57
	if (limit > LZMA_VLI_MAX)
58
		limit = LZMA_VLI_MAX;
59
60
	if (limit < *size || limit - *size < add)
61
		return true;
62
63
	*size += add;
64
65
	return false;
66
}
67
68
69
static inline bool
70
is_size_valid(lzma_vli size, lzma_vli reference)
58
is_size_valid(lzma_vli size, lzma_vli reference)
71
{
59
{
72
	return reference == LZMA_VLI_UNKNOWN || reference == size;
60
	return reference == LZMA_VLI_UNKNOWN || reference == size;
Lines 86-108 Link Here
86
		const size_t in_start = *in_pos;
74
		const size_t in_start = *in_pos;
87
		const size_t out_start = *out_pos;
75
		const size_t out_start = *out_pos;
88
76
77
		// Limit the amount of input and output space that we give
78
		// to the raw decoder based on the information we have
79
		// (or don't have) from Block Header.
80
		const size_t in_stop = *in_pos + (size_t)my_min(
81
			in_size - *in_pos,
82
			coder->compressed_limit - coder->compressed_size);
83
		const size_t out_stop = *out_pos + (size_t)my_min(
84
			out_size - *out_pos,
85
			coder->uncompressed_limit - coder->uncompressed_size);
86
89
		const lzma_ret ret = coder->next.code(coder->next.coder,
87
		const lzma_ret ret = coder->next.code(coder->next.coder,
90
				allocator, in, in_pos, in_size,
88
				allocator, in, in_pos, in_stop,
91
				out, out_pos, out_size, action);
89
				out, out_pos, out_stop, action);
92
90
93
		const size_t in_used = *in_pos - in_start;
91
		const size_t in_used = *in_pos - in_start;
94
		const size_t out_used = *out_pos - out_start;
92
		const size_t out_used = *out_pos - out_start;
95
93
96
		// NOTE: We compare to compressed_limit here, which prevents
94
		// Because we have limited the input and output sizes,
97
		// the total size of the Block growing past LZMA_VLI_MAX.
95
		// we know that these cannot grow too big or overflow.
98
		if (update_size(&coder->compressed_size, in_used,
96
		coder->compressed_size += in_used;
99
					coder->compressed_limit)
97
		coder->uncompressed_size += out_used;
100
				|| update_size(&coder->uncompressed_size,
101
					out_used,
102
					coder->block->uncompressed_size))
103
			return LZMA_DATA_ERROR;
104
98
105
		if (!coder->ignore_check)
99
		if (ret == LZMA_OK) {
100
			const bool comp_done = coder->compressed_size
101
					== coder->block->compressed_size;
102
			const bool uncomp_done = coder->uncompressed_size
103
					== coder->block->uncompressed_size;
104
105
			// If both input and output amounts match the sizes
106
			// in Block Header but we still got LZMA_OK instead
107
			// of LZMA_STREAM_END, the file is broken.
108
			if (comp_done && uncomp_done)
109
				return LZMA_DATA_ERROR;
110
111
			// If the decoder has consumed all the input that it
112
			// needs but it still couldn't fill the output buffer
113
			// or return LZMA_STREAM_END, the file is broken.
114
			if (comp_done && *out_pos < out_size)
115
				return LZMA_DATA_ERROR;
116
117
			// If the decoder has produced all the output but
118
			// it still didn't return LZMA_STREAM_END or consume
119
			// more input (for example, detecting an end of
120
			// payload marker may need more input but produce
121
			// no output) the file is broken.
122
			if (uncomp_done && *in_pos < in_size)
123
				return LZMA_DATA_ERROR;
124
		}
125
126
		// Don't waste time updating the integrity check if it will be
127
		// ignored. Also skip it if no new output was produced. This
128
		// avoids null pointer + 0 (undefined behavior) when out == 0.
129
		if (!coder->ignore_check && out_used > 0)
106
			lzma_check_update(&coder->check, coder->block->check,
130
			lzma_check_update(&coder->check, coder->block->check,
107
					out + out_start, out_used);
131
					out + out_start, out_used);
108
132
Lines 229-234 Link Here
229
					- block->header_size
253
					- block->header_size
230
					- lzma_check_size(block->check)
254
					- lzma_check_size(block->check)
231
				: block->compressed_size;
255
				: block->compressed_size;
256
257
	// With Uncompressed Size this is simpler. If Block Header lacks
258
	// the size info, then LZMA_VLI_MAX is the maximum possible
259
	// Uncompressed Size.
260
	coder->uncompressed_limit
261
			= block->uncompressed_size == LZMA_VLI_UNKNOWN
262
				? LZMA_VLI_MAX
263
				: block->uncompressed_size;
232
264
233
	// Initialize the check. It's caller's problem if the Check ID is not
265
	// Initialize the check. It's caller's problem if the Check ID is not
234
	// supported, and the Block decoder cannot verify the Check field.
266
	// supported, and the Block decoder cannot verify the Check field.
(-)xz-5.2.5/src/liblzma/common/block_encoder.c (-2 / +6 lines)
Lines 77-84 Link Here
77
		// checked it at the beginning of this function.
77
		// checked it at the beginning of this function.
78
		coder->uncompressed_size += in_used;
78
		coder->uncompressed_size += in_used;
79
79
80
		lzma_check_update(&coder->check, coder->block->check,
80
		// Call lzma_check_update() only if input was consumed. This
81
				in + in_start, in_used);
81
		// avoids null pointer + 0 (undefined behavior) when in == 0.
82
		if (in_used > 0)
83
			lzma_check_update(&coder->check, coder->block->check,
84
					in + in_start, in_used);
82
85
83
		if (ret != LZMA_STREAM_END || action == LZMA_SYNC_FLUSH)
86
		if (ret != LZMA_STREAM_END || action == LZMA_SYNC_FLUSH)
84
			return ret;
87
			return ret;
Lines 217-222 Link Here
217
	lzma_next_strm_init(lzma_block_encoder_init, strm, block);
220
	lzma_next_strm_init(lzma_block_encoder_init, strm, block);
218
221
219
	strm->internal->supported_actions[LZMA_RUN] = true;
222
	strm->internal->supported_actions[LZMA_RUN] = true;
223
	strm->internal->supported_actions[LZMA_SYNC_FLUSH] = true;
220
	strm->internal->supported_actions[LZMA_FINISH] = true;
224
	strm->internal->supported_actions[LZMA_FINISH] = true;
221
225
222
	return LZMA_OK;
226
	return LZMA_OK;
(-)xz-5.2.5/src/liblzma/common/block_header_decoder.c (-19 / +10 lines)
Lines 14-35 Link Here
14
#include "check.h"
14
#include "check.h"
15
15
16
16
17
static void
18
free_properties(lzma_block *block, const lzma_allocator *allocator)
19
{
20
	// Free allocated filter options. The last array member is not
21
	// touched after the initialization in the beginning of
22
	// lzma_block_header_decode(), so we don't need to touch that here.
23
	for (size_t i = 0; i < LZMA_FILTERS_MAX; ++i) {
24
		lzma_free(block->filters[i].options, allocator);
25
		block->filters[i].id = LZMA_VLI_UNKNOWN;
26
		block->filters[i].options = NULL;
27
	}
28
29
	return;
30
}
31
32
33
extern LZMA_API(lzma_ret)
17
extern LZMA_API(lzma_ret)
34
lzma_block_header_decode(lzma_block *block,
18
lzma_block_header_decode(lzma_block *block,
35
		const lzma_allocator *allocator, const uint8_t *in)
19
		const lzma_allocator *allocator, const uint8_t *in)
Lines 39-44 Link Here
39
	// are invalid or over 63 bits, or if the header is too small
23
	// are invalid or over 63 bits, or if the header is too small
40
	// to contain the claimed information.
24
	// to contain the claimed information.
41
25
26
	// Catch unexpected NULL pointers.
27
	if (block == NULL || block->filters == NULL || in == NULL)
28
		return LZMA_PROG_ERROR;
29
42
	// Initialize the filter options array. This way the caller can
30
	// Initialize the filter options array. This way the caller can
43
	// safely free() the options even if an error occurs in this function.
31
	// safely free() the options even if an error occurs in this function.
44
	for (size_t i = 0; i <= LZMA_FILTERS_MAX; ++i) {
32
	for (size_t i = 0; i <= LZMA_FILTERS_MAX; ++i) {
Lines 67-74 Link Here
67
	const size_t in_size = block->header_size - 4;
55
	const size_t in_size = block->header_size - 4;
68
56
69
	// Verify CRC32
57
	// Verify CRC32
70
	if (lzma_crc32(in, in_size, 0) != read32le(in + in_size))
58
	if (lzma_crc32(in, in_size, 0) != read32le(in + in_size)) {
59
#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
71
		return LZMA_DATA_ERROR;
60
		return LZMA_DATA_ERROR;
61
#endif
62
	}
72
63
73
	// Check for unsupported flags.
64
	// Check for unsupported flags.
74
	if (in[1] & 0x3C)
65
	if (in[1] & 0x3C)
Lines 104-110 Link Here
104
				&block->filters[i], allocator,
95
				&block->filters[i], allocator,
105
				in, &in_pos, in_size);
96
				in, &in_pos, in_size);
106
		if (ret != LZMA_OK) {
97
		if (ret != LZMA_OK) {
107
			free_properties(block, allocator);
98
			lzma_filters_free(block->filters, allocator);
108
			return ret;
99
			return ret;
109
		}
100
		}
110
	}
101
	}
Lines 112-118 Link Here
112
	// Padding
103
	// Padding
113
	while (in_pos < in_size) {
104
	while (in_pos < in_size) {
114
		if (in[in_pos++] != 0x00) {
105
		if (in[in_pos++] != 0x00) {
115
			free_properties(block, allocator);
106
			lzma_filters_free(block->filters, allocator);
116
107
117
			// Possibly some new field present so use
108
			// Possibly some new field present so use
118
			// LZMA_OPTIONS_ERROR instead of LZMA_DATA_ERROR.
109
			// LZMA_OPTIONS_ERROR instead of LZMA_DATA_ERROR.
(-)xz-5.2.5/src/liblzma/common/common.c (-10 / +40 lines)
Lines 211-217 Link Here
211
			|| strm->reserved_ptr2 != NULL
211
			|| strm->reserved_ptr2 != NULL
212
			|| strm->reserved_ptr3 != NULL
212
			|| strm->reserved_ptr3 != NULL
213
			|| strm->reserved_ptr4 != NULL
213
			|| strm->reserved_ptr4 != NULL
214
			|| strm->reserved_int1 != 0
215
			|| strm->reserved_int2 != 0
214
			|| strm->reserved_int2 != 0
216
			|| strm->reserved_int3 != 0
215
			|| strm->reserved_int3 != 0
217
			|| strm->reserved_int4 != 0
216
			|| strm->reserved_int4 != 0
Lines 289-307 Link Here
289
			strm->next_in, &in_pos, strm->avail_in,
288
			strm->next_in, &in_pos, strm->avail_in,
290
			strm->next_out, &out_pos, strm->avail_out, action);
289
			strm->next_out, &out_pos, strm->avail_out, action);
291
290
292
	strm->next_in += in_pos;
291
	// Updating next_in and next_out has to be skipped when they are NULL
293
	strm->avail_in -= in_pos;
292
	// to avoid null pointer + 0 (undefined behavior). Do this by checking
294
	strm->total_in += in_pos;
293
	// in_pos > 0 and out_pos > 0 because this way NULL + non-zero (a bug)
294
	// will get caught one way or other.
295
	if (in_pos > 0) {
296
		strm->next_in += in_pos;
297
		strm->avail_in -= in_pos;
298
		strm->total_in += in_pos;
299
	}
295
300
296
	strm->next_out += out_pos;
301
	if (out_pos > 0) {
297
	strm->avail_out -= out_pos;
302
		strm->next_out += out_pos;
298
	strm->total_out += out_pos;
303
		strm->avail_out -= out_pos;
304
		strm->total_out += out_pos;
305
	}
299
306
300
	strm->internal->avail_in = strm->avail_in;
307
	strm->internal->avail_in = strm->avail_in;
301
308
302
	// Cast is needed to silence a warning about LZMA_TIMED_OUT, which
309
	switch (ret) {
303
	// isn't part of lzma_ret enumeration.
304
	switch ((unsigned int)(ret)) {
305
	case LZMA_OK:
310
	case LZMA_OK:
306
		// Don't return LZMA_BUF_ERROR when it happens the first time.
311
		// Don't return LZMA_BUF_ERROR when it happens the first time.
307
		// This is to avoid returning LZMA_BUF_ERROR when avail_out
312
		// This is to avoid returning LZMA_BUF_ERROR when avail_out
Lines 322-327 Link Here
322
		ret = LZMA_OK;
327
		ret = LZMA_OK;
323
		break;
328
		break;
324
329
330
	case LZMA_SEEK_NEEDED:
331
		strm->internal->allow_buf_error = false;
332
333
		// If LZMA_FINISH was used, reset it back to the
334
		// LZMA_RUN-based state so that new input can be supplied
335
		// by the application.
336
		if (strm->internal->sequence == ISEQ_FINISH)
337
			strm->internal->sequence = ISEQ_RUN;
338
339
		break;
340
325
	case LZMA_STREAM_END:
341
	case LZMA_STREAM_END:
326
		if (strm->internal->sequence == ISEQ_SYNC_FLUSH
342
		if (strm->internal->sequence == ISEQ_SYNC_FLUSH
327
				|| strm->internal->sequence == ISEQ_FULL_FLUSH
343
				|| strm->internal->sequence == ISEQ_FULL_FLUSH
Lines 366-371 Link Here
366
}
382
}
367
383
368
384
385
#ifdef HAVE_SYMBOL_VERSIONS_LINUX
386
// This is for compatibility with binaries linked against liblzma that
387
// has been patched with xz-5.2.2-compat-libs.patch from RHEL/CentOS 7.
388
LZMA_SYMVER_API("lzma_get_progress@XZ_5.2.2",
389
	void, lzma_get_progress_522)(lzma_stream *strm,
390
		uint64_t *progress_in, uint64_t *progress_out) lzma_nothrow
391
		__attribute__((__alias__("lzma_get_progress_52")));
392
393
LZMA_SYMVER_API("lzma_get_progress@@XZ_5.2",
394
	void, lzma_get_progress_52)(lzma_stream *strm,
395
		uint64_t *progress_in, uint64_t *progress_out) lzma_nothrow;
396
397
#define lzma_get_progress lzma_get_progress_52
398
#endif
369
extern LZMA_API(void)
399
extern LZMA_API(void)
370
lzma_get_progress(lzma_stream *strm,
400
lzma_get_progress(lzma_stream *strm,
371
		uint64_t *progress_in, uint64_t *progress_out)
401
		uint64_t *progress_in, uint64_t *progress_out)
(-)xz-5.2.5/src/liblzma/common/common.h (-8 / +79 lines)
Lines 34-39 Link Here
34
34
35
#include "lzma.h"
35
#include "lzma.h"
36
36
37
// This is for detecting modern GCC and Clang attributes
38
// like __symver__ in GCC >= 10.
39
#ifdef __has_attribute
40
#	define lzma_has_attribute(attr) __has_attribute(attr)
41
#else
42
#	define lzma_has_attribute(attr) 0
43
#endif
44
45
// The extra symbol versioning in the C files may only be used when
46
// building a shared library. If HAVE_SYMBOL_VERSIONS_LINUX is defined
47
// to 2 then symbol versioning is done only if also PIC is defined.
48
// By default Libtool defines PIC when building a shared library and
49
// doesn't define it when building a static library but it can be
50
// overriden with --with-pic and --without-pic. configure let's rely
51
// on PIC if neither --with-pic or --without-pic was used.
52
#if defined(HAVE_SYMBOL_VERSIONS_LINUX) \
53
		&& (HAVE_SYMBOL_VERSIONS_LINUX == 2 && !defined(PIC))
54
#	undef HAVE_SYMBOL_VERSIONS_LINUX
55
#endif
56
57
#ifdef HAVE_SYMBOL_VERSIONS_LINUX
58
// To keep link-time optimization (LTO, -flto) working with GCC,
59
// the __symver__ attribute must be used instead of __asm__(".symver ...").
60
// Otherwise the symbol versions may be lost, resulting in broken liblzma
61
// that has wrong default versions in the exported symbol list!
62
// The attribute was added in GCC 10; LTO with older GCC is not supported.
63
//
64
// To keep -Wmissing-prototypes happy, use LZMA_SYMVER_API only with function
65
// declarations (including those with __alias__ attribute) and LZMA_API with
66
// the function definitions. This means a little bit of silly copy-and-paste
67
// between declarations and definitions though.
68
//
69
// As of GCC 12.2, the __symver__ attribute supports only @ and @@ but the
70
// very convenient @@@ isn't supported (it's supported by GNU assembler
71
// since 2000). When using @@ instead of @@@, the internal name must not be
72
// the same as the external name to avoid problems in some situations. This
73
// is why "#define foo_52 foo" is needed for the default symbol versions.
74
//
75
// __has_attribute is supported before GCC 10 and it is supported in Clang 14
76
// too (which doesn't support __symver__) so use it to detect if __symver__
77
// is available. This should be far more reliable than looking at compiler
78
// version macros as nowadays especially __GNUC__ is defined by many compilers.
79
#	if lzma_has_attribute(__symver__)
80
#		define LZMA_SYMVER_API(extnamever, type, intname) \
81
			extern __attribute__((__symver__(extnamever))) \
82
					LZMA_API(type) intname
83
#	else
84
#		define LZMA_SYMVER_API(extnamever, type, intname) \
85
			__asm__(".symver " #intname "," extnamever); \
86
			extern LZMA_API(type) intname
87
#	endif
88
#endif
89
37
// These allow helping the compiler in some often-executed branches, whose
90
// These allow helping the compiler in some often-executed branches, whose
38
// result is almost always the same.
91
// result is almost always the same.
39
#ifdef __GNUC__
92
#ifdef __GNUC__
Lines 67-80 Link Here
67
#define LZMA_FILTER_RESERVED_START (LZMA_VLI_C(1) << 62)
120
#define LZMA_FILTER_RESERVED_START (LZMA_VLI_C(1) << 62)
68
121
69
122
70
/// Supported flags that can be passed to lzma_stream_decoder()
123
/// Supported flags that can be passed to lzma_stream_decoder(),
71
/// or lzma_auto_decoder().
124
/// lzma_auto_decoder(), or lzma_stream_decoder_mt().
72
#define LZMA_SUPPORTED_FLAGS \
125
#define LZMA_SUPPORTED_FLAGS \
73
	( LZMA_TELL_NO_CHECK \
126
	( LZMA_TELL_NO_CHECK \
74
	| LZMA_TELL_UNSUPPORTED_CHECK \
127
	| LZMA_TELL_UNSUPPORTED_CHECK \
75
	| LZMA_TELL_ANY_CHECK \
128
	| LZMA_TELL_ANY_CHECK \
76
	| LZMA_IGNORE_CHECK \
129
	| LZMA_IGNORE_CHECK \
77
	| LZMA_CONCATENATED )
130
	| LZMA_CONCATENATED \
131
	| LZMA_FAIL_FAST )
78
132
79
133
80
/// Largest valid lzma_action value as unsigned integer.
134
/// Largest valid lzma_action value as unsigned integer.
Lines 83-93 Link Here
83
137
84
/// Special return value (lzma_ret) to indicate that a timeout was reached
138
/// Special return value (lzma_ret) to indicate that a timeout was reached
85
/// and lzma_code() must not return LZMA_BUF_ERROR. This is converted to
139
/// and lzma_code() must not return LZMA_BUF_ERROR. This is converted to
86
/// LZMA_OK in lzma_code(). This is not in the lzma_ret enumeration because
140
/// LZMA_OK in lzma_code().
87
/// there's no need to have it in the public API.
141
#define LZMA_TIMED_OUT LZMA_RET_INTERNAL1
88
#define LZMA_TIMED_OUT 32
89
142
143
/// Special return value (lzma_ret) for use in stream_decoder_mt.c to
144
/// indicate Index was detected instead of a Block Header.
145
#define LZMA_INDEX_DETECTED LZMA_RET_INTERNAL2
90
146
147
91
typedef struct lzma_next_coder_s lzma_next_coder;
148
typedef struct lzma_next_coder_s lzma_next_coder;
92
149
93
typedef struct lzma_filter_info_s lzma_filter_info;
150
typedef struct lzma_filter_info_s lzma_filter_info;
Lines 118-125 Link Here
118
/// an array of lzma_filter_info structures. This array is used with
175
/// an array of lzma_filter_info structures. This array is used with
119
/// lzma_next_filter_init to initialize the filter chain.
176
/// lzma_next_filter_init to initialize the filter chain.
120
struct lzma_filter_info_s {
177
struct lzma_filter_info_s {
121
	/// Filter ID. This is used only by the encoder
178
	/// Filter ID. This can be used to share the same initiazation
122
	/// with lzma_filters_update().
179
	/// function *and* data structures with different Filter IDs
180
	/// (LZMA_FILTER_LZMA1EXT does it), and also by the encoder
181
	/// with lzma_filters_update() if filter chain is updated
182
	/// in the middle of a raw stream or Block (LZMA_SYNC_FLUSH).
123
	lzma_vli id;
183
	lzma_vli id;
124
184
125
	/// Pointer to function used to initialize the filter.
185
	/// Pointer to function used to initialize the filter.
Lines 173-178 Link Here
173
	lzma_ret (*update)(void *coder, const lzma_allocator *allocator,
233
	lzma_ret (*update)(void *coder, const lzma_allocator *allocator,
174
			const lzma_filter *filters,
234
			const lzma_filter *filters,
175
			const lzma_filter *reversed_filters);
235
			const lzma_filter *reversed_filters);
236
237
	/// Set how many bytes of output this coder may produce at maximum.
238
	/// On success LZMA_OK must be returned.
239
	/// If the filter chain as a whole cannot support this feature,
240
	/// this must return LZMA_OPTIONS_ERROR.
241
	/// If no input has been given to the coder and the requested limit
242
	/// is too small, this must return LZMA_BUF_ERROR. If input has been
243
	/// seen, LZMA_OK is allowed too.
244
	lzma_ret (*set_out_limit)(void *coder, uint64_t *uncomp_size,
245
			uint64_t out_limit);
176
};
246
};
177
247
178
248
Lines 188-193 Link Here
188
		.get_check = NULL, \
258
		.get_check = NULL, \
189
		.memconfig = NULL, \
259
		.memconfig = NULL, \
190
		.update = NULL, \
260
		.update = NULL, \
261
		.set_out_limit = NULL, \
191
	}
262
	}
192
263
193
264
(-)xz-5.2.5/src/liblzma/common/filter_common.c (-10 / +58 lines)
Lines 42-47 Link Here
42
		.last_ok = true,
42
		.last_ok = true,
43
		.changes_size = true,
43
		.changes_size = true,
44
	},
44
	},
45
	{
46
		.id = LZMA_FILTER_LZMA1EXT,
47
		.options_size = sizeof(lzma_options_lzma),
48
		.non_last_ok = false,
49
		.last_ok = true,
50
		.changes_size = true,
51
	},
45
#endif
52
#endif
46
#if defined(HAVE_ENCODER_LZMA2) || defined(HAVE_DECODER_LZMA2)
53
#if defined(HAVE_ENCODER_LZMA2) || defined(HAVE_DECODER_LZMA2)
47
	{
54
	{
Lines 97-102 Link Here
97
		.changes_size = false,
104
		.changes_size = false,
98
	},
105
	},
99
#endif
106
#endif
107
#if defined(HAVE_ENCODER_ARM64) || defined(HAVE_DECODER_ARM64)
108
	{
109
		.id = LZMA_FILTER_ARM64,
110
		.options_size = sizeof(lzma_options_bcj),
111
		.non_last_ok = true,
112
		.last_ok = false,
113
		.changes_size = false,
114
	},
115
#endif
100
#if defined(HAVE_ENCODER_SPARC) || defined(HAVE_DECODER_SPARC)
116
#if defined(HAVE_ENCODER_SPARC) || defined(HAVE_DECODER_SPARC)
101
	{
117
	{
102
		.id = LZMA_FILTER_SPARC,
118
		.id = LZMA_FILTER_SPARC,
Lines 122-133 Link Here
122
138
123
139
124
extern LZMA_API(lzma_ret)
140
extern LZMA_API(lzma_ret)
125
lzma_filters_copy(const lzma_filter *src, lzma_filter *dest,
141
lzma_filters_copy(const lzma_filter *src, lzma_filter *real_dest,
126
		const lzma_allocator *allocator)
142
		const lzma_allocator *allocator)
127
{
143
{
128
	if (src == NULL || dest == NULL)
144
	if (src == NULL || real_dest == NULL)
129
		return LZMA_PROG_ERROR;
145
		return LZMA_PROG_ERROR;
130
146
147
	// Use a temporary destination so that the real destination
148
	// will never be modied if an error occurs.
149
	lzma_filter dest[LZMA_FILTERS_MAX + 1];
150
131
	lzma_ret ret;
151
	lzma_ret ret;
132
	size_t i;
152
	size_t i;
133
	for (i = 0; src[i].id != LZMA_VLI_UNKNOWN; ++i) {
153
	for (i = 0; src[i].id != LZMA_VLI_UNKNOWN; ++i) {
Lines 173-198 Link Here
173
	}
193
	}
174
194
175
	// Terminate the filter array.
195
	// Terminate the filter array.
176
	assert(i <= LZMA_FILTERS_MAX + 1);
196
	assert(i < LZMA_FILTERS_MAX + 1);
177
	dest[i].id = LZMA_VLI_UNKNOWN;
197
	dest[i].id = LZMA_VLI_UNKNOWN;
178
	dest[i].options = NULL;
198
	dest[i].options = NULL;
179
199
200
	// Copy it to the caller-supplied array now that we know that
201
	// no errors occurred.
202
	memcpy(real_dest, dest, (i + 1) * sizeof(lzma_filter));
203
180
	return LZMA_OK;
204
	return LZMA_OK;
181
205
182
error:
206
error:
183
	// Free the options which we have already allocated.
207
	// Free the options which we have already allocated.
184
	while (i-- > 0) {
208
	while (i-- > 0)
185
		lzma_free(dest[i].options, allocator);
209
		lzma_free(dest[i].options, allocator);
186
		dest[i].options = NULL;
187
	}
188
210
189
	return ret;
211
	return ret;
190
}
212
}
191
213
192
214
193
static lzma_ret
215
extern LZMA_API(void)
194
validate_chain(const lzma_filter *filters, size_t *count)
216
lzma_filters_free(lzma_filter *filters, const lzma_allocator *allocator)
195
{
217
{
218
	if (filters == NULL)
219
		return;
220
221
	for (size_t i = 0; filters[i].id != LZMA_VLI_UNKNOWN; ++i) {
222
		if (i == LZMA_FILTERS_MAX) {
223
			// The API says that LZMA_FILTERS_MAX + 1 is the
224
			// maximum allowed size including the terminating
225
			// element. Thus, we should never get here but in
226
			// case there is a bug and we do anyway, don't go
227
			// past the (probable) end of the array.
228
			assert(0);
229
			break;
230
		}
231
232
		lzma_free(filters[i].options, allocator);
233
		filters[i].options = NULL;
234
		filters[i].id = LZMA_VLI_UNKNOWN;
235
	}
236
237
	return;
238
}
239
240
241
extern lzma_ret
242
lzma_validate_chain(const lzma_filter *filters, size_t *count)
243
{
196
	// There must be at least one filter.
244
	// There must be at least one filter.
197
	if (filters == NULL || filters[0].id == LZMA_VLI_UNKNOWN)
245
	if (filters == NULL || filters[0].id == LZMA_VLI_UNKNOWN)
198
		return LZMA_PROG_ERROR;
246
		return LZMA_PROG_ERROR;
Lines 245-251 Link Here
245
{
293
{
246
	// Do some basic validation and get the number of filters.
294
	// Do some basic validation and get the number of filters.
247
	size_t count;
295
	size_t count;
248
	return_if_error(validate_chain(options, &count));
296
	return_if_error(lzma_validate_chain(options, &count));
249
297
250
	// Set the filter functions and copy the options pointer.
298
	// Set the filter functions and copy the options pointer.
251
	lzma_filter_info filters[LZMA_FILTERS_MAX + 1];
299
	lzma_filter_info filters[LZMA_FILTERS_MAX + 1];
Lines 298-304 Link Here
298
	// The chain has to have at least one filter.
346
	// The chain has to have at least one filter.
299
	{
347
	{
300
		size_t tmp;
348
		size_t tmp;
301
		if (validate_chain(filters, &tmp) != LZMA_OK)
349
		if (lzma_validate_chain(filters, &tmp) != LZMA_OK)
302
			return UINT64_MAX;
350
			return UINT64_MAX;
303
	}
351
	}
304
352
(-)xz-5.2.5/src/liblzma/common/filter_common.h (+3 lines)
Lines 35-40 Link Here
35
typedef const lzma_filter_coder *(*lzma_filter_find)(lzma_vli id);
35
typedef const lzma_filter_coder *(*lzma_filter_find)(lzma_vli id);
36
36
37
37
38
extern lzma_ret lzma_validate_chain(const lzma_filter *filters, size_t *count);
39
40
38
extern lzma_ret lzma_raw_coder_init(
41
extern lzma_ret lzma_raw_coder_init(
39
		lzma_next_coder *next, const lzma_allocator *allocator,
42
		lzma_next_coder *next, const lzma_allocator *allocator,
40
		const lzma_filter *filters,
43
		const lzma_filter *filters,
(-)xz-5.2.5/src/liblzma/common/filter_decoder.c (+14 lines)
Lines 50-55 Link Here
50
		.memusage = &lzma_lzma_decoder_memusage,
50
		.memusage = &lzma_lzma_decoder_memusage,
51
		.props_decode = &lzma_lzma_props_decode,
51
		.props_decode = &lzma_lzma_props_decode,
52
	},
52
	},
53
	{
54
		.id = LZMA_FILTER_LZMA1EXT,
55
		.init = &lzma_lzma_decoder_init,
56
		.memusage = &lzma_lzma_decoder_memusage,
57
		.props_decode = &lzma_lzma_props_decode,
58
	},
53
#endif
59
#endif
54
#ifdef HAVE_DECODER_LZMA2
60
#ifdef HAVE_DECODER_LZMA2
55
	{
61
	{
Lines 95-100 Link Here
95
	{
101
	{
96
		.id = LZMA_FILTER_ARMTHUMB,
102
		.id = LZMA_FILTER_ARMTHUMB,
97
		.init = &lzma_simple_armthumb_decoder_init,
103
		.init = &lzma_simple_armthumb_decoder_init,
104
		.memusage = NULL,
105
		.props_decode = &lzma_simple_props_decode,
106
	},
107
#endif
108
#ifdef HAVE_DECODER_ARM64
109
	{
110
		.id = LZMA_FILTER_ARM64,
111
		.init = &lzma_simple_arm64_decoder_init,
98
		.memusage = NULL,
112
		.memusage = NULL,
99
		.props_decode = &lzma_simple_props_decode,
113
		.props_decode = &lzma_simple_props_decode,
100
	},
114
	},
(-)xz-5.2.5/src/liblzma/common/filter_encoder.c (-4 / +26 lines)
Lines 37-45 Link Here
37
	uint64_t (*block_size)(const void *options);
37
	uint64_t (*block_size)(const void *options);
38
38
39
	/// Tells the size of the Filter Properties field. If options are
39
	/// Tells the size of the Filter Properties field. If options are
40
	/// invalid, UINT32_MAX is returned. If this is NULL, props_size_fixed
40
	/// invalid, LZMA_OPTIONS_ERROR is returned and size is set to
41
	/// is used.
41
	/// UINT32_MAX.
42
	lzma_ret (*props_size_get)(uint32_t *size, const void *options);
42
	lzma_ret (*props_size_get)(uint32_t *size, const void *options);
43
44
	/// Some filters will always have the same size Filter Properties
45
	/// field. If props_size_get is NULL, this value is used.
43
	uint32_t props_size_fixed;
46
	uint32_t props_size_fixed;
44
47
45
	/// Encodes Filter Properties.
48
	/// Encodes Filter Properties.
Lines 59-76 Link Here
59
		.id = LZMA_FILTER_LZMA1,
62
		.id = LZMA_FILTER_LZMA1,
60
		.init = &lzma_lzma_encoder_init,
63
		.init = &lzma_lzma_encoder_init,
61
		.memusage = &lzma_lzma_encoder_memusage,
64
		.memusage = &lzma_lzma_encoder_memusage,
62
		.block_size = NULL, // FIXME
65
		.block_size = NULL, // Not needed for LZMA1
63
		.props_size_get = NULL,
66
		.props_size_get = NULL,
64
		.props_size_fixed = 5,
67
		.props_size_fixed = 5,
65
		.props_encode = &lzma_lzma_props_encode,
68
		.props_encode = &lzma_lzma_props_encode,
66
	},
69
	},
70
	{
71
		.id = LZMA_FILTER_LZMA1EXT,
72
		.init = &lzma_lzma_encoder_init,
73
		.memusage = &lzma_lzma_encoder_memusage,
74
		.block_size = NULL, // Not needed for LZMA1
75
		.props_size_get = NULL,
76
		.props_size_fixed = 5,
77
		.props_encode = &lzma_lzma_props_encode,
78
	},
67
#endif
79
#endif
68
#ifdef HAVE_ENCODER_LZMA2
80
#ifdef HAVE_ENCODER_LZMA2
69
	{
81
	{
70
		.id = LZMA_FILTER_LZMA2,
82
		.id = LZMA_FILTER_LZMA2,
71
		.init = &lzma_lzma2_encoder_init,
83
		.init = &lzma_lzma2_encoder_init,
72
		.memusage = &lzma_lzma2_encoder_memusage,
84
		.memusage = &lzma_lzma2_encoder_memusage,
73
		.block_size = &lzma_lzma2_block_size, // FIXME
85
		.block_size = &lzma_lzma2_block_size,
74
		.props_size_get = NULL,
86
		.props_size_get = NULL,
75
		.props_size_fixed = 1,
87
		.props_size_fixed = 1,
76
		.props_encode = &lzma_lzma2_props_encode,
88
		.props_encode = &lzma_lzma2_props_encode,
Lines 120-125 Link Here
120
	{
132
	{
121
		.id = LZMA_FILTER_ARMTHUMB,
133
		.id = LZMA_FILTER_ARMTHUMB,
122
		.init = &lzma_simple_armthumb_encoder_init,
134
		.init = &lzma_simple_armthumb_encoder_init,
135
		.memusage = NULL,
136
		.block_size = NULL,
137
		.props_size_get = &lzma_simple_props_size,
138
		.props_encode = &lzma_simple_props_encode,
139
	},
140
#endif
141
#ifdef HAVE_ENCODER_ARM64
142
	{
143
		.id = LZMA_FILTER_ARM64,
144
		.init = &lzma_simple_arm64_encoder_init,
123
		.memusage = NULL,
145
		.memusage = NULL,
124
		.block_size = NULL,
146
		.block_size = NULL,
125
		.props_size_get = &lzma_simple_props_size,
147
		.props_size_get = &lzma_simple_props_size,
(-)xz-5.2.5/src/liblzma/common/hardware_cputhreads.c (+12 lines)
Lines 15-20 Link Here
15
#include "tuklib_cpucores.h"
15
#include "tuklib_cpucores.h"
16
16
17
17
18
#ifdef HAVE_SYMBOL_VERSIONS_LINUX
19
// This is for compatibility with binaries linked against liblzma that
20
// has been patched with xz-5.2.2-compat-libs.patch from RHEL/CentOS 7.
21
LZMA_SYMVER_API("lzma_cputhreads@XZ_5.2.2",
22
	uint32_t, lzma_cputhreads_522)(void) lzma_nothrow
23
		__attribute__((__alias__("lzma_cputhreads_52")));
24
25
LZMA_SYMVER_API("lzma_cputhreads@@XZ_5.2",
26
	uint32_t, lzma_cputhreads_52)(void) lzma_nothrow;
27
28
#define lzma_cputhreads lzma_cputhreads_52
29
#endif
18
extern LZMA_API(uint32_t)
30
extern LZMA_API(uint32_t)
19
lzma_cputhreads(void)
31
lzma_cputhreads(void)
20
{
32
{
(-)xz-5.2.5/src/liblzma/common/index.c (-2 / +15 lines)
Lines 10-15 Link Here
10
//
10
//
11
///////////////////////////////////////////////////////////////////////////////
11
///////////////////////////////////////////////////////////////////////////////
12
12
13
#include "common.h"
13
#include "index.h"
14
#include "index.h"
14
#include "stream_flags_common.h"
15
#include "stream_flags_common.h"
15
16
Lines 656-661 Link Here
656
	const uint32_t index_list_size_add = lzma_vli_size(unpadded_size)
657
	const uint32_t index_list_size_add = lzma_vli_size(unpadded_size)
657
			+ lzma_vli_size(uncompressed_size);
658
			+ lzma_vli_size(uncompressed_size);
658
659
660
	// Check that uncompressed size will not overflow.
661
	if (uncompressed_base + uncompressed_size > LZMA_VLI_MAX)
662
		return LZMA_DATA_ERROR;
663
659
	// Check that the file size will stay within limits.
664
	// Check that the file size will stay within limits.
660
	if (index_file_size(s->node.compressed_base,
665
	if (index_file_size(s->node.compressed_base,
661
			compressed_base + unpadded_size, s->record_count + 1,
666
			compressed_base + unpadded_size, s->record_count + 1,
Lines 767-772 Link Here
767
lzma_index_cat(lzma_index *restrict dest, lzma_index *restrict src,
772
lzma_index_cat(lzma_index *restrict dest, lzma_index *restrict src,
768
		const lzma_allocator *allocator)
773
		const lzma_allocator *allocator)
769
{
774
{
775
	if (dest == NULL || src == NULL)
776
		return LZMA_PROG_ERROR;
777
770
	const lzma_vli dest_file_size = lzma_index_file_size(dest);
778
	const lzma_vli dest_file_size = lzma_index_file_size(dest);
771
779
772
	// Check that we don't exceed the file size limits.
780
	// Check that we don't exceed the file size limits.
Lines 835-840 Link Here
835
		}
843
		}
836
	}
844
	}
837
845
846
	// dest->checks includes the check types of all except the last Stream
847
	// in dest. Set the bit for the check type of the last Stream now so
848
	// that it won't get lost when Stream(s) from src are appended to dest.
849
	dest->checks = lzma_index_checks(dest);
850
838
	// Add all the Streams from src to dest. Update the base offsets
851
	// Add all the Streams from src to dest. Update the base offsets
839
	// of each Stream from src.
852
	// of each Stream from src.
840
	const index_cat_info info = {
853
	const index_cat_info info = {
Lines 851-857 Link Here
851
	dest->total_size += src->total_size;
864
	dest->total_size += src->total_size;
852
	dest->record_count += src->record_count;
865
	dest->record_count += src->record_count;
853
	dest->index_list_size += src->index_list_size;
866
	dest->index_list_size += src->index_list_size;
854
	dest->checks = lzma_index_checks(dest) | src->checks;
867
	dest->checks |= src->checks;
855
868
856
	// There's nothing else left in src than the base structure.
869
	// There's nothing else left in src than the base structure.
857
	lzma_free(src, allocator);
870
	lzma_free(src, allocator);
Lines 1226-1232 Link Here
1226
1239
1227
	// Use binary search to locate the exact Record. It is the first
1240
	// Use binary search to locate the exact Record. It is the first
1228
	// Record whose uncompressed_sum is greater than target.
1241
	// Record whose uncompressed_sum is greater than target.
1229
	// This is because we want the rightmost Record that fullfills the
1242
	// This is because we want the rightmost Record that fulfills the
1230
	// search criterion. It is possible that there are empty Blocks;
1243
	// search criterion. It is possible that there are empty Blocks;
1231
	// we don't want to return them.
1244
	// we don't want to return them.
1232
	size_t left = 0;
1245
	size_t left = 0;
(-)xz-5.2.5/src/liblzma/common/index.h (-2 / +10 lines)
Lines 2-7 Link Here
2
//
2
//
3
/// \file       index.h
3
/// \file       index.h
4
/// \brief      Handling of Index
4
/// \brief      Handling of Index
5
/// \note       This header file does not include common.h or lzma.h because
6
///             this file is needed by both liblzma internally and by the
7
///             tests. Including common.h will include and define many things
8
///             the tests do not need and prevents issues with header file
9
///             include order. This way, if lzma.h or common.h are not
10
///             included before this file it will break on every OS instead
11
///             of causing more subtle errors.
5
//
12
//
6
//  Author:     Lasse Collin
13
//  Author:     Lasse Collin
7
//
14
//
Lines 13-26 Link Here
13
#ifndef LZMA_INDEX_H
20
#ifndef LZMA_INDEX_H
14
#define LZMA_INDEX_H
21
#define LZMA_INDEX_H
15
22
16
#include "common.h"
17
23
18
19
/// Minimum Unpadded Size
24
/// Minimum Unpadded Size
20
#define UNPADDED_SIZE_MIN LZMA_VLI_C(5)
25
#define UNPADDED_SIZE_MIN LZMA_VLI_C(5)
21
26
22
/// Maximum Unpadded Size
27
/// Maximum Unpadded Size
23
#define UNPADDED_SIZE_MAX (LZMA_VLI_MAX & ~LZMA_VLI_C(3))
28
#define UNPADDED_SIZE_MAX (LZMA_VLI_MAX & ~LZMA_VLI_C(3))
29
30
/// Index Indicator based on xz specification
31
#define INDEX_INDICATOR 0
24
32
25
33
26
/// Get the size of the Index Padding field. This is needed by Index encoder
34
/// Get the size of the Index Padding field. This is needed by Index encoder
(-)xz-5.2.5/src/liblzma/common/index_decoder.c (-10 / +20 lines)
Lines 10-16 Link Here
10
//
10
//
11
///////////////////////////////////////////////////////////////////////////////
11
///////////////////////////////////////////////////////////////////////////////
12
12
13
#include "index.h"
13
#include "index_decoder.h"
14
#include "check.h"
14
#include "check.h"
15
15
16
16
Lines 80-86 Link Here
80
		// format". One could argue that the application should
80
		// format". One could argue that the application should
81
		// verify the Index Indicator before trying to decode the
81
		// verify the Index Indicator before trying to decode the
82
		// Index, but well, I suppose it is simpler this way.
82
		// Index, but well, I suppose it is simpler this way.
83
		if (in[(*in_pos)++] != 0x00)
83
		if (in[(*in_pos)++] != INDEX_INDICATOR)
84
			return LZMA_DATA_ERROR;
84
			return LZMA_DATA_ERROR;
85
85
86
		coder->sequence = SEQ_COUNT;
86
		coder->sequence = SEQ_COUNT;
Lines 180-187 Link Here
180
				return LZMA_OK;
180
				return LZMA_OK;
181
181
182
			if (((coder->crc32 >> (coder->pos * 8)) & 0xFF)
182
			if (((coder->crc32 >> (coder->pos * 8)) & 0xFF)
183
					!= in[(*in_pos)++])
183
					!= in[(*in_pos)++]) {
184
#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
184
				return LZMA_DATA_ERROR;
185
				return LZMA_DATA_ERROR;
186
#endif
187
			}
185
188
186
		} while (++coder->pos < 4);
189
		} while (++coder->pos < 4);
187
190
Lines 200-208 Link Here
200
	}
203
	}
201
204
202
out:
205
out:
203
	// Update the CRC32,
206
	// Update the CRC32.
204
	coder->crc32 = lzma_crc32(in + in_start,
207
	//
205
			*in_pos - in_start, coder->crc32);
208
	// Avoid null pointer + 0 (undefined behavior) in "in + in_start".
209
	// In such a case we had no input and thus in_used == 0.
210
	{
211
		const size_t in_used = *in_pos - in_start;
212
		if (in_used > 0)
213
			coder->crc32 = lzma_crc32(in + in_start,
214
					in_used, coder->crc32);
215
	}
206
216
207
	return ret;
217
	return ret;
208
}
218
}
Lines 265-275 Link Here
265
}
275
}
266
276
267
277
268
static lzma_ret
278
extern lzma_ret
269
index_decoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
279
lzma_index_decoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
270
		lzma_index **i, uint64_t memlimit)
280
		lzma_index **i, uint64_t memlimit)
271
{
281
{
272
	lzma_next_coder_init(&index_decoder_init, next, allocator);
282
	lzma_next_coder_init(&lzma_index_decoder_init, next, allocator);
273
283
274
	if (i == NULL)
284
	if (i == NULL)
275
		return LZMA_PROG_ERROR;
285
		return LZMA_PROG_ERROR;
Lines 296-302 Link Here
296
extern LZMA_API(lzma_ret)
306
extern LZMA_API(lzma_ret)
297
lzma_index_decoder(lzma_stream *strm, lzma_index **i, uint64_t memlimit)
307
lzma_index_decoder(lzma_stream *strm, lzma_index **i, uint64_t memlimit)
298
{
308
{
299
	lzma_next_strm_init(index_decoder_init, strm, i, memlimit);
309
	lzma_next_strm_init(lzma_index_decoder_init, strm, i, memlimit);
300
310
301
	strm->internal->supported_actions[LZMA_RUN] = true;
311
	strm->internal->supported_actions[LZMA_RUN] = true;
302
	strm->internal->supported_actions[LZMA_FINISH] = true;
312
	strm->internal->supported_actions[LZMA_FINISH] = true;
(-)xz-5.2.5/src/liblzma/common/index_encoder.c (-3 / +10 lines)
Lines 65-71 Link Here
65
	while (*out_pos < out_size)
65
	while (*out_pos < out_size)
66
	switch (coder->sequence) {
66
	switch (coder->sequence) {
67
	case SEQ_INDICATOR:
67
	case SEQ_INDICATOR:
68
		out[*out_pos] = 0x00;
68
		out[*out_pos] = INDEX_INDICATOR;
69
		++*out_pos;
69
		++*out_pos;
70
		coder->sequence = SEQ_COUNT;
70
		coder->sequence = SEQ_COUNT;
71
		break;
71
		break;
Lines 153-160 Link Here
153
153
154
out:
154
out:
155
	// Update the CRC32.
155
	// Update the CRC32.
156
	coder->crc32 = lzma_crc32(out + out_start,
156
	//
157
			*out_pos - out_start, coder->crc32);
157
	// Avoid null pointer + 0 (undefined behavior) in "out + out_start".
158
	// In such a case we had no input and thus out_used == 0.
159
	{
160
		const size_t out_used = *out_pos - out_start;
161
		if (out_used > 0)
162
			coder->crc32 = lzma_crc32(out + out_start,
163
					out_used, coder->crc32);
164
	}
158
165
159
	return ret;
166
	return ret;
160
}
167
}
(-)xz-5.2.5/src/liblzma/common/index_hash.c (-12 / +21 lines)
Lines 122-128 Link Here
122
122
123
123
124
/// Updates the sizes and the hash without any validation.
124
/// Updates the sizes and the hash without any validation.
125
static lzma_ret
125
static void
126
hash_append(lzma_index_hash_info *info, lzma_vli unpadded_size,
126
hash_append(lzma_index_hash_info *info, lzma_vli unpadded_size,
127
		lzma_vli uncompressed_size)
127
		lzma_vli uncompressed_size)
128
{
128
{
Lines 136-142 Link Here
136
	lzma_check_update(&info->check, LZMA_CHECK_BEST,
136
	lzma_check_update(&info->check, LZMA_CHECK_BEST,
137
			(const uint8_t *)(sizes), sizeof(sizes));
137
			(const uint8_t *)(sizes), sizeof(sizes));
138
138
139
	return LZMA_OK;
139
	return;
140
}
140
}
141
141
142
142
Lines 145-159 Link Here
145
		lzma_vli uncompressed_size)
145
		lzma_vli uncompressed_size)
146
{
146
{
147
	// Validate the arguments.
147
	// Validate the arguments.
148
	if (index_hash->sequence != SEQ_BLOCK
148
	if (index_hash == NULL || index_hash->sequence != SEQ_BLOCK
149
			|| unpadded_size < UNPADDED_SIZE_MIN
149
			|| unpadded_size < UNPADDED_SIZE_MIN
150
			|| unpadded_size > UNPADDED_SIZE_MAX
150
			|| unpadded_size > UNPADDED_SIZE_MAX
151
			|| uncompressed_size > LZMA_VLI_MAX)
151
			|| uncompressed_size > LZMA_VLI_MAX)
152
		return LZMA_PROG_ERROR;
152
		return LZMA_PROG_ERROR;
153
153
154
	// Update the hash.
154
	// Update the hash.
155
	return_if_error(hash_append(&index_hash->blocks,
155
	hash_append(&index_hash->blocks, unpadded_size, uncompressed_size);
156
			unpadded_size, uncompressed_size));
157
156
158
	// Validate the properties of *info are still in allowed limits.
157
	// Validate the properties of *info are still in allowed limits.
159
	if (index_hash->blocks.blocks_size > LZMA_VLI_MAX
158
	if (index_hash->blocks.blocks_size > LZMA_VLI_MAX
Lines 191-197 Link Here
191
	switch (index_hash->sequence) {
190
	switch (index_hash->sequence) {
192
	case SEQ_BLOCK:
191
	case SEQ_BLOCK:
193
		// Check the Index Indicator is present.
192
		// Check the Index Indicator is present.
194
		if (in[(*in_pos)++] != 0x00)
193
		if (in[(*in_pos)++] != INDEX_INDICATOR)
195
			return LZMA_DATA_ERROR;
194
			return LZMA_DATA_ERROR;
196
195
197
		index_hash->sequence = SEQ_COUNT;
196
		index_hash->sequence = SEQ_COUNT;
Lines 239-247 Link Here
239
			index_hash->sequence = SEQ_UNCOMPRESSED;
238
			index_hash->sequence = SEQ_UNCOMPRESSED;
240
		} else {
239
		} else {
241
			// Update the hash.
240
			// Update the hash.
242
			return_if_error(hash_append(&index_hash->records,
241
			hash_append(&index_hash->records,
243
					index_hash->unpadded_size,
242
					index_hash->unpadded_size,
244
					index_hash->uncompressed_size));
243
					index_hash->uncompressed_size);
245
244
246
			// Verify that we don't go over the known sizes. Note
245
			// Verify that we don't go over the known sizes. Note
247
			// that this validation is simpler than the one used
246
			// that this validation is simpler than the one used
Lines 313-320 Link Here
313
				return LZMA_OK;
312
				return LZMA_OK;
314
313
315
			if (((index_hash->crc32 >> (index_hash->pos * 8))
314
			if (((index_hash->crc32 >> (index_hash->pos * 8))
316
					& 0xFF) != in[(*in_pos)++])
315
					& 0xFF) != in[(*in_pos)++]) {
316
#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
317
				return LZMA_DATA_ERROR;
317
				return LZMA_DATA_ERROR;
318
#endif
319
			}
318
320
319
		} while (++index_hash->pos < 4);
321
		} while (++index_hash->pos < 4);
320
322
Lines 326-334 Link Here
326
	}
328
	}
327
329
328
out:
330
out:
329
	// Update the CRC32,
331
	// Update the CRC32.
330
	index_hash->crc32 = lzma_crc32(in + in_start,
332
	//
331
			*in_pos - in_start, index_hash->crc32);
333
	// Avoid null pointer + 0 (undefined behavior) in "in + in_start".
334
	// In such a case we had no input and thus in_used == 0.
335
	{
336
		const size_t in_used = *in_pos - in_start;
337
		if (in_used > 0)
338
			index_hash->crc32 = lzma_crc32(in + in_start,
339
					in_used, index_hash->crc32);
340
	}
332
341
333
	return ret;
342
	return ret;
334
}
343
}
(-)xz-5.2.5/src/liblzma/common/memcmplen.h (-9 / +16 lines)
Lines 19-25 Link Here
19
#	include <immintrin.h>
19
#	include <immintrin.h>
20
#endif
20
#endif
21
21
22
// Only include <intrin.h> if it is needed. The header is only needed
23
// on Windows when using an MSVC compatible compiler. The Intel compiler
24
// can use the intrinsics without the header file.
25
#if defined(TUKLIB_FAST_UNALIGNED_ACCESS) \
26
		&& (defined(_MSC_VER) \
27
		&& defined(_M_X64) \
28
		&& !defined(__INTEL_COMPILER))
29
#	include <intrin.h>
30
#endif
22
31
32
23
/// Find out how many equal bytes the two buffers have.
33
/// Find out how many equal bytes the two buffers have.
24
///
34
///
25
/// \param      buf1    First buffer
35
/// \param      buf1    First buffer
Lines 51-60 Link Here
51
			|| (defined(__INTEL_COMPILER) && defined(__x86_64__)) \
61
			|| (defined(__INTEL_COMPILER) && defined(__x86_64__)) \
52
			|| (defined(__INTEL_COMPILER) && defined(_M_X64)) \
62
			|| (defined(__INTEL_COMPILER) && defined(_M_X64)) \
53
			|| (defined(_MSC_VER) && defined(_M_X64)))
63
			|| (defined(_MSC_VER) && defined(_M_X64)))
54
	// NOTE: This will use 64-bit unaligned access which
55
	// TUKLIB_FAST_UNALIGNED_ACCESS wasn't meant to permit, but
56
	// it's convenient here at least as long as it's x86-64 only.
57
	//
58
	// I keep this x86-64 only for now since that's where I know this
64
	// I keep this x86-64 only for now since that's where I know this
59
	// to be a good method. This may be fine on other 64-bit CPUs too.
65
	// to be a good method. This may be fine on other 64-bit CPUs too.
60
	// On big endian one should use xor instead of subtraction and switch
66
	// On big endian one should use xor instead of subtraction and switch
Lines 80-91 Link Here
80
86
81
#elif defined(TUKLIB_FAST_UNALIGNED_ACCESS) \
87
#elif defined(TUKLIB_FAST_UNALIGNED_ACCESS) \
82
		&& defined(HAVE__MM_MOVEMASK_EPI8) \
88
		&& defined(HAVE__MM_MOVEMASK_EPI8) \
83
		&& ((defined(__GNUC__) && defined(__SSE2_MATH__)) \
89
		&& (defined(__SSE2__) \
84
			|| (defined(__INTEL_COMPILER) && defined(__SSE2__)) \
85
			|| (defined(_MSC_VER) && defined(_M_IX86_FP) \
90
			|| (defined(_MSC_VER) && defined(_M_IX86_FP) \
86
				&& _M_IX86_FP >= 2))
91
				&& _M_IX86_FP >= 2))
87
	// NOTE: Like above, this will use 128-bit unaligned access which
92
	// NOTE: This will use 128-bit unaligned access which
88
	// TUKLIB_FAST_UNALIGNED_ACCESS wasn't meant to permit.
93
	// TUKLIB_FAST_UNALIGNED_ACCESS wasn't meant to permit,
94
	// but it's convenient here since this is x86-only.
89
	//
95
	//
90
	// SSE2 version for 32-bit and 64-bit x86. On x86-64 the above
96
	// SSE2 version for 32-bit and 64-bit x86. On x86-64 the above
91
	// version is sometimes significantly faster and sometimes
97
	// version is sometimes significantly faster and sometimes
Lines 93-99 Link Here
93
	// version isn't used on x86-64.
99
	// version isn't used on x86-64.
94
#	define LZMA_MEMCMPLEN_EXTRA 16
100
#	define LZMA_MEMCMPLEN_EXTRA 16
95
	while (len < limit) {
101
	while (len < limit) {
96
		const uint32_t x = 0xFFFF ^ _mm_movemask_epi8(_mm_cmpeq_epi8(
102
		const uint32_t x = 0xFFFF ^ (uint32_t)_mm_movemask_epi8(
103
			_mm_cmpeq_epi8(
97
			_mm_loadu_si128((const __m128i *)(buf1 + len)),
104
			_mm_loadu_si128((const __m128i *)(buf1 + len)),
98
			_mm_loadu_si128((const __m128i *)(buf2 + len))));
105
			_mm_loadu_si128((const __m128i *)(buf2 + len))));
99
106
(-)xz-5.2.5/src/liblzma/common/outqueue.c (-95 / +198 lines)
Lines 13-96 Link Here
13
#include "outqueue.h"
13
#include "outqueue.h"
14
14
15
15
16
/// This is to ease integer overflow checking: We may allocate up to
16
/// Get the maximum number of buffers that may be allocated based
17
/// 2 * LZMA_THREADS_MAX buffers and we need some extra memory for other
17
/// on the number of threads. For now this is twice the number of threads.
18
/// data structures (that's the second /2).
18
/// It's a compromise between RAM usage and keeping the worker threads busy
19
#define BUF_SIZE_MAX (UINT64_MAX / LZMA_THREADS_MAX / 2 / 2)
19
/// when buffers finish out of order.
20
#define GET_BUFS_LIMIT(threads) (2 * (threads))
20
21
21
22
22
static lzma_ret
23
extern uint64_t
23
get_options(uint64_t *bufs_alloc_size, uint32_t *bufs_count,
24
lzma_outq_memusage(uint64_t buf_size_max, uint32_t threads)
24
		uint64_t buf_size_max, uint32_t threads)
25
{
25
{
26
	if (threads > LZMA_THREADS_MAX || buf_size_max > BUF_SIZE_MAX)
26
	// This is to ease integer overflow checking: We may allocate up to
27
		return LZMA_OPTIONS_ERROR;
27
	// GET_BUFS_LIMIT(LZMA_THREADS_MAX) buffers and we need some extra
28
28
	// memory for other data structures too (that's the /2).
29
	// The number of buffers is twice the number of threads.
30
	// This wastes RAM but keeps the threads busy when buffers
31
	// finish out of order.
32
	//
29
	//
33
	// NOTE: If this is changed, update BUF_SIZE_MAX too.
30
	// lzma_outq_prealloc_buf() will still accept bigger buffers than this.
34
	*bufs_count = threads * 2;
31
	const uint64_t limit
35
	*bufs_alloc_size = *bufs_count * buf_size_max;
32
			= UINT64_MAX / GET_BUFS_LIMIT(LZMA_THREADS_MAX) / 2;
36
33
37
	return LZMA_OK;
34
	if (threads > LZMA_THREADS_MAX || buf_size_max > limit)
35
		return UINT64_MAX;
36
37
	return GET_BUFS_LIMIT(threads)
38
			* lzma_outq_outbuf_memusage(buf_size_max);
38
}
39
}
39
40
40
41
41
extern uint64_t
42
static void
42
lzma_outq_memusage(uint64_t buf_size_max, uint32_t threads)
43
move_head_to_cache(lzma_outq *outq, const lzma_allocator *allocator)
43
{
44
{
44
	uint64_t bufs_alloc_size;
45
	assert(outq->head != NULL);
45
	uint32_t bufs_count;
46
	assert(outq->tail != NULL);
47
	assert(outq->bufs_in_use > 0);
46
48
47
	if (get_options(&bufs_alloc_size, &bufs_count, buf_size_max, threads)
49
	lzma_outbuf *buf = outq->head;
48
			!= LZMA_OK)
50
	outq->head = buf->next;
49
		return UINT64_MAX;
51
	if (outq->head == NULL)
52
		outq->tail = NULL;
50
53
51
	return sizeof(lzma_outq) + bufs_count * sizeof(lzma_outbuf)
54
	if (outq->cache != NULL && outq->cache->allocated != buf->allocated)
52
			+ bufs_alloc_size;
55
		lzma_outq_clear_cache(outq, allocator);
56
57
	buf->next = outq->cache;
58
	outq->cache = buf;
59
60
	--outq->bufs_in_use;
61
	outq->mem_in_use -= lzma_outq_outbuf_memusage(buf->allocated);
62
63
	return;
53
}
64
}
54
65
55
66
56
extern lzma_ret
67
static void
57
lzma_outq_init(lzma_outq *outq, const lzma_allocator *allocator,
68
free_one_cached_buffer(lzma_outq *outq, const lzma_allocator *allocator)
58
		uint64_t buf_size_max, uint32_t threads)
59
{
69
{
60
	uint64_t bufs_alloc_size;
70
	assert(outq->cache != NULL);
61
	uint32_t bufs_count;
62
71
63
	// Set bufs_count and bufs_alloc_size.
72
	lzma_outbuf *buf = outq->cache;
64
	return_if_error(get_options(&bufs_alloc_size, &bufs_count,
73
	outq->cache = buf->next;
65
			buf_size_max, threads));
66
74
67
	// Allocate memory if needed.
75
	--outq->bufs_allocated;
68
	if (outq->buf_size_max != buf_size_max
76
	outq->mem_allocated -= lzma_outq_outbuf_memusage(buf->allocated);
69
			|| outq->bufs_allocated != bufs_count) {
70
		lzma_outq_end(outq, allocator);
71
77
72
#if SIZE_MAX < UINT64_MAX
78
	lzma_free(buf, allocator);
73
		if (bufs_alloc_size > SIZE_MAX)
79
	return;
74
			return LZMA_MEM_ERROR;
80
}
75
#endif
76
81
77
		outq->bufs = lzma_alloc(bufs_count * sizeof(lzma_outbuf),
78
				allocator);
79
		outq->bufs_mem = lzma_alloc((size_t)(bufs_alloc_size),
80
				allocator);
81
82
82
		if (outq->bufs == NULL || outq->bufs_mem == NULL) {
83
extern void
83
			lzma_outq_end(outq, allocator);
84
lzma_outq_clear_cache(lzma_outq *outq, const lzma_allocator *allocator)
84
			return LZMA_MEM_ERROR;
85
{
85
		}
86
	while (outq->cache != NULL)
86
	}
87
		free_one_cached_buffer(outq, allocator);
87
88
88
	// Initialize the rest of the main structure. Initialization of
89
	return;
89
	// outq->bufs[] is done when they are actually needed.
90
}
90
	outq->buf_size_max = (size_t)(buf_size_max);
91
91
	outq->bufs_allocated = bufs_count;
92
92
	outq->bufs_pos = 0;
93
extern void
93
	outq->bufs_used = 0;
94
lzma_outq_clear_cache2(lzma_outq *outq, const lzma_allocator *allocator,
95
		size_t keep_size)
96
{
97
	if (outq->cache == NULL)
98
		return;
99
100
	// Free all but one.
101
	while (outq->cache->next != NULL)
102
		free_one_cached_buffer(outq, allocator);
103
104
	// Free the last one only if its size doesn't equal to keep_size.
105
	if (outq->cache->allocated != keep_size)
106
		free_one_cached_buffer(outq, allocator);
107
108
	return;
109
}
110
111
112
extern lzma_ret
113
lzma_outq_init(lzma_outq *outq, const lzma_allocator *allocator,
114
		uint32_t threads)
115
{
116
	if (threads > LZMA_THREADS_MAX)
117
		return LZMA_OPTIONS_ERROR;
118
119
	const uint32_t bufs_limit = GET_BUFS_LIMIT(threads);
120
121
	// Clear head/tail.
122
	while (outq->head != NULL)
123
		move_head_to_cache(outq, allocator);
124
125
	// If new buf_limit is lower than the old one, we may need to free
126
	// a few cached buffers.
127
	while (bufs_limit < outq->bufs_allocated)
128
		free_one_cached_buffer(outq, allocator);
129
130
	outq->bufs_limit = bufs_limit;
94
	outq->read_pos = 0;
131
	outq->read_pos = 0;
95
132
96
	return LZMA_OK;
133
	return LZMA_OK;
Lines 100-132 Link Here
100
extern void
137
extern void
101
lzma_outq_end(lzma_outq *outq, const lzma_allocator *allocator)
138
lzma_outq_end(lzma_outq *outq, const lzma_allocator *allocator)
102
{
139
{
103
	lzma_free(outq->bufs, allocator);
140
	while (outq->head != NULL)
104
	outq->bufs = NULL;
141
		move_head_to_cache(outq, allocator);
105
142
106
	lzma_free(outq->bufs_mem, allocator);
143
	lzma_outq_clear_cache(outq, allocator);
107
	outq->bufs_mem = NULL;
108
109
	return;
144
	return;
110
}
145
}
111
146
112
147
113
extern lzma_outbuf *
148
extern lzma_ret
114
lzma_outq_get_buf(lzma_outq *outq)
149
lzma_outq_prealloc_buf(lzma_outq *outq, const lzma_allocator *allocator,
150
		size_t size)
115
{
151
{
116
	// Caller must have checked it with lzma_outq_has_buf().
152
	// Caller must have checked it with lzma_outq_has_buf().
117
	assert(outq->bufs_used < outq->bufs_allocated);
153
	assert(outq->bufs_in_use < outq->bufs_limit);
118
154
119
	// Initialize the new buffer.
155
	// If there already is appropriately-sized buffer in the cache,
120
	lzma_outbuf *buf = &outq->bufs[outq->bufs_pos];
156
	// we need to do nothing.
121
	buf->buf = outq->bufs_mem + outq->bufs_pos * outq->buf_size_max;
157
	if (outq->cache != NULL && outq->cache->allocated == size)
122
	buf->size = 0;
158
		return LZMA_OK;
159
160
	if (size > SIZE_MAX - sizeof(lzma_outbuf))
161
		return LZMA_MEM_ERROR;
162
163
	const size_t alloc_size = lzma_outq_outbuf_memusage(size);
164
165
	// The cache may have buffers but their size is wrong.
166
	lzma_outq_clear_cache(outq, allocator);
167
168
	outq->cache = lzma_alloc(alloc_size, allocator);
169
	if (outq->cache == NULL)
170
		return LZMA_MEM_ERROR;
171
172
	outq->cache->next = NULL;
173
	outq->cache->allocated = size;
174
175
	++outq->bufs_allocated;
176
	outq->mem_allocated += alloc_size;
177
178
	return LZMA_OK;
179
}
180
181
182
extern lzma_outbuf *
183
lzma_outq_get_buf(lzma_outq *outq, void *worker)
184
{
185
	// Caller must have used lzma_outq_prealloc_buf() to ensure these.
186
	assert(outq->bufs_in_use < outq->bufs_limit);
187
	assert(outq->bufs_in_use < outq->bufs_allocated);
188
	assert(outq->cache != NULL);
189
190
	lzma_outbuf *buf = outq->cache;
191
	outq->cache = buf->next;
192
	buf->next = NULL;
193
194
	if (outq->tail != NULL) {
195
		assert(outq->head != NULL);
196
		outq->tail->next = buf;
197
	} else {
198
		assert(outq->head == NULL);
199
		outq->head = buf;
200
	}
201
202
	outq->tail = buf;
203
204
	buf->worker = worker;
123
	buf->finished = false;
205
	buf->finished = false;
206
	buf->finish_ret = LZMA_STREAM_END;
207
	buf->pos = 0;
208
	buf->decoder_in_pos = 0;
124
209
125
	// Update the queue state.
210
	buf->unpadded_size = 0;
126
	if (++outq->bufs_pos == outq->bufs_allocated)
211
	buf->uncompressed_size = 0;
127
		outq->bufs_pos = 0;
128
212
129
	++outq->bufs_used;
213
	++outq->bufs_in_use;
214
	outq->mem_in_use += lzma_outq_outbuf_memusage(buf->allocated);
130
215
131
	return buf;
216
	return buf;
132
}
217
}
Lines 135-184 Link Here
135
extern bool
220
extern bool
136
lzma_outq_is_readable(const lzma_outq *outq)
221
lzma_outq_is_readable(const lzma_outq *outq)
137
{
222
{
138
	uint32_t i = outq->bufs_pos - outq->bufs_used;
223
	if (outq->head == NULL)
139
	if (outq->bufs_pos < outq->bufs_used)
224
		return false;
140
		i += outq->bufs_allocated;
141
225
142
	return outq->bufs[i].finished;
226
	return outq->read_pos < outq->head->pos || outq->head->finished;
143
}
227
}
144
228
145
229
146
extern lzma_ret
230
extern lzma_ret
147
lzma_outq_read(lzma_outq *restrict outq, uint8_t *restrict out,
231
lzma_outq_read(lzma_outq *restrict outq,
148
		size_t *restrict out_pos, size_t out_size,
232
		const lzma_allocator *restrict allocator,
233
		uint8_t *restrict out, size_t *restrict out_pos,
234
		size_t out_size,
149
		lzma_vli *restrict unpadded_size,
235
		lzma_vli *restrict unpadded_size,
150
		lzma_vli *restrict uncompressed_size)
236
		lzma_vli *restrict uncompressed_size)
151
{
237
{
152
	// There must be at least one buffer from which to read.
238
	// There must be at least one buffer from which to read.
153
	if (outq->bufs_used == 0)
239
	if (outq->bufs_in_use == 0)
154
		return LZMA_OK;
240
		return LZMA_OK;
155
241
156
	// Get the buffer.
242
	// Get the buffer.
157
	uint32_t i = outq->bufs_pos - outq->bufs_used;
243
	lzma_outbuf *buf = outq->head;
158
	if (outq->bufs_pos < outq->bufs_used)
159
		i += outq->bufs_allocated;
160
244
161
	lzma_outbuf *buf = &outq->bufs[i];
162
163
	// If it isn't finished yet, we cannot read from it.
164
	if (!buf->finished)
165
		return LZMA_OK;
166
167
	// Copy from the buffer to output.
245
	// Copy from the buffer to output.
168
	lzma_bufcpy(buf->buf, &outq->read_pos, buf->size,
246
	//
247
	// FIXME? In threaded decoder it may be bad to do this copy while
248
	// the mutex is being held.
249
	lzma_bufcpy(buf->buf, &outq->read_pos, buf->pos,
169
			out, out_pos, out_size);
250
			out, out_pos, out_size);
170
251
171
	// Return if we didn't get all the data from the buffer.
252
	// Return if we didn't get all the data from the buffer.
172
	if (outq->read_pos < buf->size)
253
	if (!buf->finished || outq->read_pos < buf->pos)
173
		return LZMA_OK;
254
		return LZMA_OK;
174
255
175
	// The buffer was finished. Tell the caller its size information.
256
	// The buffer was finished. Tell the caller its size information.
176
	*unpadded_size = buf->unpadded_size;
257
	if (unpadded_size != NULL)
177
	*uncompressed_size = buf->uncompressed_size;
258
		*unpadded_size = buf->unpadded_size;
178
259
260
	if (uncompressed_size != NULL)
261
		*uncompressed_size = buf->uncompressed_size;
262
263
	// Remember the return value.
264
	const lzma_ret finish_ret = buf->finish_ret;
265
179
	// Free this buffer for further use.
266
	// Free this buffer for further use.
180
	--outq->bufs_used;
267
	move_head_to_cache(outq, allocator);
181
	outq->read_pos = 0;
268
	outq->read_pos = 0;
182
269
183
	return LZMA_STREAM_END;
270
	return finish_ret;
271
}
272
273
274
extern void
275
lzma_outq_enable_partial_output(lzma_outq *outq,
276
		void (*enable_partial_output)(void *worker))
277
{
278
	if (outq->head != NULL && !outq->head->finished
279
			&& outq->head->worker != NULL) {
280
		enable_partial_output(outq->head->worker);
281
282
		// Set it to NULL since calling it twice is pointless.
283
		outq->head->worker = NULL;
284
	}
285
286
	return;
184
}
287
}
(-)xz-5.2.5/src/liblzma/common/outqueue.h (-38 / +136 lines)
Lines 14-62 Link Here
14
14
15
15
16
/// Output buffer for a single thread
16
/// Output buffer for a single thread
17
typedef struct {
17
typedef struct lzma_outbuf_s lzma_outbuf;
18
	/// Pointer to the output buffer of lzma_outq.buf_size_max bytes
18
struct lzma_outbuf_s {
19
	uint8_t *buf;
19
	/// Pointer to the next buffer. This is used for the cached buffers.
20
	/// The worker thread must not modify this.
21
	lzma_outbuf *next;
20
22
21
	/// Amount of data written to buf
23
	/// This initialized by lzma_outq_get_buf() and
22
	size_t size;
24
	/// is used by lzma_outq_enable_partial_output().
25
	/// The worker thread must not modify this.
26
	void *worker;
23
27
24
	/// Additional size information
28
	/// Amount of memory allocated for buf[].
25
	lzma_vli unpadded_size;
29
	/// The worker thread must not modify this.
26
	lzma_vli uncompressed_size;
30
	size_t allocated;
27
31
32
	/// Writing position in the worker thread or, in other words, the
33
	/// amount of finished data written to buf[] which can be copied out
34
	///
35
	/// \note       This is read by another thread and thus access
36
	///             to this variable needs a mutex.
37
	size_t pos;
38
39
	/// Decompression: Position in the input buffer in the worker thread
40
	/// that matches the output "pos" above. This is used to detect if
41
	/// more output might be possible from the worker thread: if it has
42
	/// consumed all its input, then more output isn't possible.
43
	///
44
	/// \note       This is read by another thread and thus access
45
	///             to this variable needs a mutex.
46
	size_t decoder_in_pos;
47
28
	/// True when no more data will be written into this buffer.
48
	/// True when no more data will be written into this buffer.
29
	///
49
	///
30
	/// \note       This is read by another thread and thus access
50
	/// \note       This is read by another thread and thus access
31
	///             to this variable needs a mutex.
51
	///             to this variable needs a mutex.
32
	bool finished;
52
	bool finished;
33
53
34
} lzma_outbuf;
54
	/// Return value for lzma_outq_read() when the last byte from
55
	/// a finished buffer has been read. Defaults to LZMA_STREAM_END.
56
	/// This must *not* be LZMA_OK. The idea is to allow a decoder to
57
	/// pass an error code to the main thread, setting the code here
58
	/// together with finished = true.
59
	lzma_ret finish_ret;
35
60
61
	/// Additional size information. lzma_outq_read() may read these
62
	/// when "finished" is true.
63
	lzma_vli unpadded_size;
64
	lzma_vli uncompressed_size;
36
65
66
	/// Buffer of "allocated" bytes
67
	uint8_t buf[];
68
};
69
70
37
typedef struct {
71
typedef struct {
38
	/// Array of buffers that are used cyclically.
72
	/// Linked list of buffers in use. The next output byte will be
39
	lzma_outbuf *bufs;
73
	/// read from the head and buffers for the next thread will be
74
	/// appended to the tail. tail->next is always NULL.
75
	lzma_outbuf *head;
76
	lzma_outbuf *tail;
40
77
41
	/// Memory allocated for all the buffers
78
	/// Number of bytes read from head->buf[] in lzma_outq_read()
42
	uint8_t *bufs_mem;
79
	size_t read_pos;
43
80
44
	/// Amount of buffer space available in each buffer
81
	/// Linked list of allocated buffers that aren't currently used.
45
	size_t buf_size_max;
82
	/// This way buffers of similar size can be reused and don't
83
	/// need to be reallocated every time. For simplicity, all
84
	/// cached buffers in the list have the same allocated size.
85
	lzma_outbuf *cache;
46
86
47
	/// Number of buffers allocated
87
	/// Total amount of memory allocated for buffers
48
	uint32_t bufs_allocated;
88
	uint64_t mem_allocated;
49
89
50
	/// Position in the bufs array. The next buffer to be taken
90
	/// Amount of memory used by the buffers that are in use in
51
	/// into use is bufs[bufs_pos].
91
	/// the head...tail linked list.
52
	uint32_t bufs_pos;
92
	uint64_t mem_in_use;
53
93
54
	/// Number of buffers in use
94
	/// Number of buffers in use in the head...tail list. If and only if
55
	uint32_t bufs_used;
95
	/// this is zero, the pointers head and tail above are NULL.
96
	uint32_t bufs_in_use;
56
97
57
	/// Position in the buffer in lzma_outq_read()
98
	/// Number of buffers allocated (in use + cached)
58
	size_t read_pos;
99
	uint32_t bufs_allocated;
59
100
101
	/// Maximum allowed number of allocated buffers
102
	uint32_t bufs_limit;
60
} lzma_outq;
103
} lzma_outq;
61
104
62
105
Lines 76-107 Link Here
76
///                             function knows that there are no previous
119
///                             function knows that there are no previous
77
///                             allocations to free.
120
///                             allocations to free.
78
/// \param      allocator       Pointer to allocator or NULL
121
/// \param      allocator       Pointer to allocator or NULL
79
/// \param      buf_size_max    Maximum amount of data that a single buffer
80
///                             in the queue may need to store.
81
/// \param      threads         Number of buffers that may be in use
122
/// \param      threads         Number of buffers that may be in use
82
///                             concurrently. Note that more than this number
123
///                             concurrently. Note that more than this number
83
///                             of buffers will actually get allocated to
124
///                             of buffers may actually get allocated to
84
///                             improve performance when buffers finish
125
///                             improve performance when buffers finish
85
///                             out of order.
126
///                             out of order. The actual maximum number of
127
///                             allocated buffers is derived from the number
128
///                             of threads.
86
///
129
///
87
/// \return     - LZMA_OK
130
/// \return     - LZMA_OK
88
///             - LZMA_MEM_ERROR
131
///             - LZMA_MEM_ERROR
89
///
132
///
90
extern lzma_ret lzma_outq_init(
133
extern lzma_ret lzma_outq_init(lzma_outq *outq,
91
		lzma_outq *outq, const lzma_allocator *allocator,
134
		const lzma_allocator *allocator, uint32_t threads);
92
		uint64_t buf_size_max, uint32_t threads);
93
135
94
136
95
/// \brief      Free the memory associated with the output queue
137
/// \brief      Free the memory associated with the output queue
96
extern void lzma_outq_end(lzma_outq *outq, const lzma_allocator *allocator);
138
extern void lzma_outq_end(lzma_outq *outq, const lzma_allocator *allocator);
97
139
98
140
141
/// \brief      Free all cached buffers that consume memory but aren't in use
142
extern void lzma_outq_clear_cache(
143
		lzma_outq *outq, const lzma_allocator *allocator);
144
145
146
/// \brief      Like lzma_outq_clear_cache() but might keep one buffer
147
///
148
/// One buffer is not freed if its size is equal to keep_size.
149
/// This is useful if the caller knows that it will soon need a buffer of
150
/// keep_size bytes. This way it won't be freed and immediately reallocated.
151
extern void lzma_outq_clear_cache2(
152
		lzma_outq *outq, const lzma_allocator *allocator,
153
		size_t keep_size);
154
155
156
/// \brief      Preallocate a new buffer into cache
157
///
158
/// Splitting the buffer allocation into a separate function makes it
159
/// possible to ensure that way lzma_outq_get_buf() cannot fail.
160
/// If the preallocated buffer isn't actually used (for example, some
161
/// other error occurs), the caller has to do nothing as the buffer will
162
/// be used later or cleared from the cache when not needed.
163
///
164
/// \return     LZMA_OK on success, LZMA_MEM_ERROR if allocation fails
165
///
166
extern lzma_ret lzma_outq_prealloc_buf(
167
		lzma_outq *outq, const lzma_allocator *allocator, size_t size);
168
169
99
/// \brief      Get a new buffer
170
/// \brief      Get a new buffer
100
///
171
///
101
/// lzma_outq_has_buf() must be used to check that there is a buffer
172
/// lzma_outq_prealloc_buf() must be used to ensure that there is a buffer
102
/// available before calling lzma_outq_get_buf().
173
/// available before calling lzma_outq_get_buf().
103
///
174
///
104
extern lzma_outbuf *lzma_outq_get_buf(lzma_outq *outq);
175
extern lzma_outbuf *lzma_outq_get_buf(lzma_outq *outq, void *worker);
105
176
106
177
107
/// \brief      Test if there is data ready to be read
178
/// \brief      Test if there is data ready to be read
Lines 126-142 Link Here
126
/// \return     - LZMA: All OK. Either no data was available or the buffer
197
/// \return     - LZMA: All OK. Either no data was available or the buffer
127
///               being read didn't become empty yet.
198
///               being read didn't become empty yet.
128
///             - LZMA_STREAM_END: The buffer being read was finished.
199
///             - LZMA_STREAM_END: The buffer being read was finished.
129
///               *unpadded_size and *uncompressed_size were set.
200
///               *unpadded_size and *uncompressed_size were set if they
201
///               were not NULL.
130
///
202
///
131
/// \note       This reads lzma_outbuf.finished variables and thus call
203
/// \note       This reads lzma_outbuf.finished and .pos variables and thus
132
///             to this function needs to be protected with a mutex.
204
///             calls to this function need to be protected with a mutex.
133
///
205
///
134
extern lzma_ret lzma_outq_read(lzma_outq *restrict outq,
206
extern lzma_ret lzma_outq_read(lzma_outq *restrict outq,
207
		const lzma_allocator *restrict allocator,
135
		uint8_t *restrict out, size_t *restrict out_pos,
208
		uint8_t *restrict out, size_t *restrict out_pos,
136
		size_t out_size, lzma_vli *restrict unpadded_size,
209
		size_t out_size, lzma_vli *restrict unpadded_size,
137
		lzma_vli *restrict uncompressed_size);
210
		lzma_vli *restrict uncompressed_size);
138
211
139
212
213
/// \brief      Enable partial output from a worker thread
214
///
215
/// If the buffer at the head of the output queue isn't finished,
216
/// this will call enable_partial_output on the worker associated with
217
/// that output buffer.
218
///
219
/// \note       This reads a lzma_outbuf.finished variable and thus
220
///             calls to this function need to be protected with a mutex.
221
///
222
extern void lzma_outq_enable_partial_output(lzma_outq *outq,
223
		void (*enable_partial_output)(void *worker));
224
225
140
/// \brief      Test if there is at least one buffer free
226
/// \brief      Test if there is at least one buffer free
141
///
227
///
142
/// This must be used before getting a new buffer with lzma_outq_get_buf().
228
/// This must be used before getting a new buffer with lzma_outq_get_buf().
Lines 144-150 Link Here
144
static inline bool
230
static inline bool
145
lzma_outq_has_buf(const lzma_outq *outq)
231
lzma_outq_has_buf(const lzma_outq *outq)
146
{
232
{
147
	return outq->bufs_used < outq->bufs_allocated;
233
	return outq->bufs_in_use < outq->bufs_limit;
148
}
234
}
149
235
150
236
Lines 152-156 Link Here
152
static inline bool
238
static inline bool
153
lzma_outq_is_empty(const lzma_outq *outq)
239
lzma_outq_is_empty(const lzma_outq *outq)
154
{
240
{
155
	return outq->bufs_used == 0;
241
	return outq->bufs_in_use == 0;
242
}
243
244
245
/// \brief      Get the amount of memory needed for a single lzma_outbuf
246
///
247
/// \note       Caller must check that the argument is significantly less
248
///             than SIZE_MAX to avoid an integer overflow!
249
static inline uint64_t
250
lzma_outq_outbuf_memusage(size_t buf_size)
251
{
252
	assert(buf_size <= SIZE_MAX - sizeof(lzma_outbuf));
253
	return sizeof(lzma_outbuf) + buf_size;
156
}
254
}
(-)xz-5.2.5/src/liblzma/common/stream_buffer_encoder.c (+1 lines)
Lines 10-15 Link Here
10
//
10
//
11
///////////////////////////////////////////////////////////////////////////////
11
///////////////////////////////////////////////////////////////////////////////
12
12
13
#include "common.h"
13
#include "index.h"
14
#include "index.h"
14
15
15
16
(-)xz-5.2.5/src/liblzma/common/stream_decoder.c (-14 / +21 lines)
Lines 12-32 Link Here
12
12
13
#include "stream_decoder.h"
13
#include "stream_decoder.h"
14
#include "block_decoder.h"
14
#include "block_decoder.h"
15
#include "index.h"
15
16
16
17
17
typedef struct {
18
typedef struct {
18
	enum {
19
	enum {
19
		SEQ_STREAM_HEADER,
20
		SEQ_STREAM_HEADER,
20
		SEQ_BLOCK_HEADER,
21
		SEQ_BLOCK_HEADER,
21
		SEQ_BLOCK,
22
		SEQ_BLOCK_INIT,
23
		SEQ_BLOCK_RUN,
22
		SEQ_INDEX,
24
		SEQ_INDEX,
23
		SEQ_STREAM_FOOTER,
25
		SEQ_STREAM_FOOTER,
24
		SEQ_STREAM_PADDING,
26
		SEQ_STREAM_PADDING,
25
	} sequence;
27
	} sequence;
26
28
27
	/// Block or Metadata decoder. This takes little memory and the same
29
	/// Block decoder
28
	/// data structure can be used to decode every Block Header, so it's
29
	/// a good idea to have a separate lzma_next_coder structure for it.
30
	lzma_next_coder block_decoder;
30
	lzma_next_coder block_decoder;
31
31
32
	/// Block options decoded by the Block Header decoder and used by
32
	/// Block options decoded by the Block Header decoder and used by
Lines 63-71 Link Here
63
63
64
	/// If true, we will decode concatenated Streams that possibly have
64
	/// If true, we will decode concatenated Streams that possibly have
65
	/// Stream Padding between or after them. LZMA_STREAM_END is returned
65
	/// Stream Padding between or after them. LZMA_STREAM_END is returned
66
	/// once the application isn't giving us any new input, and we aren't
66
	/// once the application isn't giving us any new input (LZMA_FINISH),
67
	/// in the middle of a Stream, and possible Stream Padding is a
67
	/// and we aren't in the middle of a Stream, and possible
68
	/// multiple of four bytes.
68
	/// Stream Padding is a multiple of four bytes.
69
	bool concatenated;
69
	bool concatenated;
70
70
71
	/// When decoding concatenated Streams, this is true as long as we
71
	/// When decoding concatenated Streams, this is true as long as we
Lines 165-171 Link Here
165
165
166
		if (coder->pos == 0) {
166
		if (coder->pos == 0) {
167
			// Detect if it's Index.
167
			// Detect if it's Index.
168
			if (in[*in_pos] == 0x00) {
168
			if (in[*in_pos] == INDEX_INDICATOR) {
169
				coder->sequence = SEQ_INDEX;
169
				coder->sequence = SEQ_INDEX;
170
				break;
170
				break;
171
			}
171
			}
Lines 187-193 Link Here
187
			return LZMA_OK;
187
			return LZMA_OK;
188
188
189
		coder->pos = 0;
189
		coder->pos = 0;
190
		coder->sequence = SEQ_BLOCK_INIT;
191
	}
190
192
193
	// Fall through
194
195
	case SEQ_BLOCK_INIT: {
196
		// Checking memusage and doing the initialization needs
197
		// its own sequence point because we need to be able to
198
		// retry if we return LZMA_MEMLIMIT_ERROR.
199
191
		// Version 1 is needed to support the .ignore_check option.
200
		// Version 1 is needed to support the .ignore_check option.
192
		coder->block_options.version = 1;
201
		coder->block_options.version = 1;
193
202
Lines 235-256 Link Here
235
244
236
		// Free the allocated filter options since they are needed
245
		// Free the allocated filter options since they are needed
237
		// only to initialize the Block decoder.
246
		// only to initialize the Block decoder.
238
		for (size_t i = 0; i < LZMA_FILTERS_MAX; ++i)
247
		lzma_filters_free(filters, allocator);
239
			lzma_free(filters[i].options, allocator);
240
241
		coder->block_options.filters = NULL;
248
		coder->block_options.filters = NULL;
242
249
243
		// Check if memory usage calculation and Block enocoder
250
		// Check if memory usage calculation and Block decoder
244
		// initialization succeeded.
251
		// initialization succeeded.
245
		if (ret != LZMA_OK)
252
		if (ret != LZMA_OK)
246
			return ret;
253
			return ret;
247
254
248
		coder->sequence = SEQ_BLOCK;
255
		coder->sequence = SEQ_BLOCK_RUN;
249
	}
256
	}
250
257
251
	// Fall through
258
	// Fall through
252
259
253
	case SEQ_BLOCK: {
260
	case SEQ_BLOCK_RUN: {
254
		const lzma_ret ret = coder->block_decoder.code(
261
		const lzma_ret ret = coder->block_decoder.code(
255
				coder->block_decoder.coder, allocator,
262
				coder->block_decoder.coder, allocator,
256
				in, in_pos, in_size, out, out_pos, out_size,
263
				in, in_pos, in_size, out, out_pos, out_size,
(-)xz-5.2.5/src/liblzma/common/stream_encoder.c (-13 / +28 lines)
Lines 219-226 Link Here
219
	lzma_next_end(&coder->index_encoder, allocator);
219
	lzma_next_end(&coder->index_encoder, allocator);
220
	lzma_index_end(coder->index, allocator);
220
	lzma_index_end(coder->index, allocator);
221
221
222
	for (size_t i = 0; coder->filters[i].id != LZMA_VLI_UNKNOWN; ++i)
222
	lzma_filters_free(coder->filters, allocator);
223
		lzma_free(coder->filters[i].options, allocator);
224
223
225
	lzma_free(coder, allocator);
224
	lzma_free(coder, allocator);
226
	return;
225
	return;
Lines 233-270 Link Here
233
		const lzma_filter *reversed_filters)
232
		const lzma_filter *reversed_filters)
234
{
233
{
235
	lzma_stream_coder *coder = coder_ptr;
234
	lzma_stream_coder *coder = coder_ptr;
235
	lzma_ret ret;
236
236
237
	// Make a copy to a temporary buffer first. This way it is easier
238
	// to keep the encoder state unchanged if an error occurs with
239
	// lzma_filters_copy().
240
	lzma_filter temp[LZMA_FILTERS_MAX + 1];
241
	return_if_error(lzma_filters_copy(filters, temp, allocator));
242
237
	if (coder->sequence <= SEQ_BLOCK_INIT) {
243
	if (coder->sequence <= SEQ_BLOCK_INIT) {
238
		// There is no incomplete Block waiting to be finished,
244
		// There is no incomplete Block waiting to be finished,
239
		// thus we can change the whole filter chain. Start by
245
		// thus we can change the whole filter chain. Start by
240
		// trying to initialize the Block encoder with the new
246
		// trying to initialize the Block encoder with the new
241
		// chain. This way we detect if the chain is valid.
247
		// chain. This way we detect if the chain is valid.
242
		coder->block_encoder_is_initialized = false;
248
		coder->block_encoder_is_initialized = false;
243
		coder->block_options.filters = (lzma_filter *)(filters);
249
		coder->block_options.filters = temp;
244
		const lzma_ret ret = block_encoder_init(coder, allocator);
250
		ret = block_encoder_init(coder, allocator);
245
		coder->block_options.filters = coder->filters;
251
		coder->block_options.filters = coder->filters;
246
		if (ret != LZMA_OK)
252
		if (ret != LZMA_OK)
247
			return ret;
253
			goto error;
248
254
249
		coder->block_encoder_is_initialized = true;
255
		coder->block_encoder_is_initialized = true;
250
256
251
	} else if (coder->sequence <= SEQ_BLOCK_ENCODE) {
257
	} else if (coder->sequence <= SEQ_BLOCK_ENCODE) {
252
		// We are in the middle of a Block. Try to update only
258
		// We are in the middle of a Block. Try to update only
253
		// the filter-specific options.
259
		// the filter-specific options.
254
		return_if_error(coder->block_encoder.update(
260
		ret = coder->block_encoder.update(
255
				coder->block_encoder.coder, allocator,
261
				coder->block_encoder.coder, allocator,
256
				filters, reversed_filters));
262
				filters, reversed_filters);
263
		if (ret != LZMA_OK)
264
			goto error;
257
	} else {
265
	} else {
258
		// Trying to update the filter chain when we are already
266
		// Trying to update the filter chain when we are already
259
		// encoding Index or Stream Footer.
267
		// encoding Index or Stream Footer.
260
		return LZMA_PROG_ERROR;
268
		ret = LZMA_PROG_ERROR;
269
		goto error;
261
	}
270
	}
262
271
263
	// Free the copy of the old chain and make a copy of the new chain.
272
	// Free the options of the old chain.
264
	for (size_t i = 0; coder->filters[i].id != LZMA_VLI_UNKNOWN; ++i)
273
	lzma_filters_free(coder->filters, allocator);
265
		lzma_free(coder->filters[i].options, allocator);
266
274
267
	return lzma_filters_copy(filters, coder->filters, allocator);
275
	// Copy the new filter chain in place.
276
	memcpy(coder->filters, temp, sizeof(temp));
277
278
	return LZMA_OK;
279
280
error:
281
	lzma_filters_free(temp, allocator);
282
	return ret;
268
}
283
}
269
284
270
285
Lines 319-325 Link Here
319
334
320
	// Initialize the Block encoder. This way we detect unsupported
335
	// Initialize the Block encoder. This way we detect unsupported
321
	// filter chains when initializing the Stream encoder instead of
336
	// filter chains when initializing the Stream encoder instead of
322
	// giving an error after Stream Header has already written out.
337
	// giving an error after Stream Header has already been written out.
323
	return stream_encoder_update(coder, allocator, filters, NULL);
338
	return stream_encoder_update(coder, allocator, filters, NULL);
324
}
339
}
325
340
(-)xz-5.2.5/src/liblzma/common/stream_encoder_mt.c (-37 / +177 lines)
Lines 85-90 Link Here
85
	/// Compression options for this Block
85
	/// Compression options for this Block
86
	lzma_block block_options;
86
	lzma_block block_options;
87
87
88
	/// Filter chain for this thread. By copying the filters array
89
	/// to each thread it is possible to change the filter chain
90
	/// between Blocks using lzma_filters_update().
91
	lzma_filter filters[LZMA_FILTERS_MAX + 1];
92
88
	/// Next structure in the stack of free worker threads.
93
	/// Next structure in the stack of free worker threads.
89
	worker_thread *next;
94
	worker_thread *next;
90
95
Lines 109-118 Link Here
109
	/// LZMA_FULL_FLUSH or LZMA_FULL_BARRIER is used earlier.
114
	/// LZMA_FULL_FLUSH or LZMA_FULL_BARRIER is used earlier.
110
	size_t block_size;
115
	size_t block_size;
111
116
112
	/// The filter chain currently in use
117
	/// The filter chain to use for the next Block.
118
	/// This can be updated using lzma_filters_update()
119
	/// after LZMA_FULL_BARRIER or LZMA_FULL_FLUSH.
113
	lzma_filter filters[LZMA_FILTERS_MAX + 1];
120
	lzma_filter filters[LZMA_FILTERS_MAX + 1];
114
121
122
	/// A copy of filters[] will be put here when attempting to get
123
	/// a new worker thread. This will be copied to a worker thread
124
	/// when a thread becomes free and then this cache is marked as
125
	/// empty by setting [0].id = LZMA_VLI_UNKNOWN. Without this cache
126
	/// the filter options from filters[] would get uselessly copied
127
	/// multiple times (allocated and freed) when waiting for a new free
128
	/// worker thread.
129
	///
130
	/// This is freed if filters[] is updated via lzma_filters_update().
131
	lzma_filter filters_cache[LZMA_FILTERS_MAX + 1];
115
132
133
116
	/// Index to hold sizes of the Blocks
134
	/// Index to hold sizes of the Blocks
117
	lzma_index *index;
135
	lzma_index *index;
118
136
Lines 133-139 Link Here
133
	/// Output buffer queue for compressed data
151
	/// Output buffer queue for compressed data
134
	lzma_outq outq;
152
	lzma_outq outq;
135
153
154
	/// How much memory to allocate for each lzma_outbuf.buf
155
	size_t outbuf_alloc_size;
136
156
157
137
	/// Maximum wait time if cannot use all the input and cannot
158
	/// Maximum wait time if cannot use all the input and cannot
138
	/// fill the output buffer. This is in milliseconds.
159
	/// fill the output buffer. This is in milliseconds.
139
	uint32_t timeout;
160
	uint32_t timeout;
Lines 196-202 Link Here
196
217
197
218
198
static worker_state
219
static worker_state
199
worker_encode(worker_thread *thr, worker_state state)
220
worker_encode(worker_thread *thr, size_t *out_pos, worker_state state)
200
{
221
{
201
	assert(thr->progress_in == 0);
222
	assert(thr->progress_in == 0);
202
	assert(thr->progress_out == 0);
223
	assert(thr->progress_out == 0);
Lines 205-216 Link Here
205
	thr->block_options = (lzma_block){
226
	thr->block_options = (lzma_block){
206
		.version = 0,
227
		.version = 0,
207
		.check = thr->coder->stream_flags.check,
228
		.check = thr->coder->stream_flags.check,
208
		.compressed_size = thr->coder->outq.buf_size_max,
229
		.compressed_size = thr->outbuf->allocated,
209
		.uncompressed_size = thr->coder->block_size,
230
		.uncompressed_size = thr->coder->block_size,
210
231
		.filters = thr->filters,
211
		// TODO: To allow changing the filter chain, the filters
212
		// array must be copied to each worker_thread.
213
		.filters = thr->coder->filters,
214
	};
232
	};
215
233
216
	// Calculate maximum size of the Block Header. This amount is
234
	// Calculate maximum size of the Block Header. This amount is
Lines 234-245 Link Here
234
	size_t in_pos = 0;
252
	size_t in_pos = 0;
235
	size_t in_size = 0;
253
	size_t in_size = 0;
236
254
237
	thr->outbuf->size = thr->block_options.header_size;
255
	*out_pos = thr->block_options.header_size;
238
	const size_t out_size = thr->coder->outq.buf_size_max;
256
	const size_t out_size = thr->outbuf->allocated;
239
257
240
	do {
258
	do {
241
		mythread_sync(thr->mutex) {
259
		mythread_sync(thr->mutex) {
242
			// Store in_pos and out_pos into *thr so that
260
			// Store in_pos and *out_pos into *thr so that
243
			// an application may read them via
261
			// an application may read them via
244
			// lzma_get_progress() to get progress information.
262
			// lzma_get_progress() to get progress information.
245
			//
263
			//
Lines 247-253 Link Here
247
			// finishes. Instead, the final values are taken
265
			// finishes. Instead, the final values are taken
248
			// later from thr->outbuf.
266
			// later from thr->outbuf.
249
			thr->progress_in = in_pos;
267
			thr->progress_in = in_pos;
250
			thr->progress_out = thr->outbuf->size;
268
			thr->progress_out = *out_pos;
251
269
252
			while (in_size == thr->in_size
270
			while (in_size == thr->in_size
253
					&& thr->state == THR_RUN)
271
					&& thr->state == THR_RUN)
Lines 277-284 Link Here
277
		ret = thr->block_encoder.code(
295
		ret = thr->block_encoder.code(
278
				thr->block_encoder.coder, thr->allocator,
296
				thr->block_encoder.coder, thr->allocator,
279
				thr->in, &in_pos, in_limit, thr->outbuf->buf,
297
				thr->in, &in_pos, in_limit, thr->outbuf->buf,
280
				&thr->outbuf->size, out_size, action);
298
				out_pos, out_size, action);
281
	} while (ret == LZMA_OK && thr->outbuf->size < out_size);
299
	} while (ret == LZMA_OK && *out_pos < out_size);
282
300
283
	switch (ret) {
301
	switch (ret) {
284
	case LZMA_STREAM_END:
302
	case LZMA_STREAM_END:
Lines 313-322 Link Here
313
			return state;
331
			return state;
314
332
315
		// Do the encoding. This takes care of the Block Header too.
333
		// Do the encoding. This takes care of the Block Header too.
316
		thr->outbuf->size = 0;
334
		*out_pos = 0;
317
		ret = lzma_block_uncomp_encode(&thr->block_options,
335
		ret = lzma_block_uncomp_encode(&thr->block_options,
318
				thr->in, in_size, thr->outbuf->buf,
336
				thr->in, in_size, thr->outbuf->buf,
319
				&thr->outbuf->size, out_size);
337
				out_pos, out_size);
320
338
321
		// It shouldn't fail.
339
		// It shouldn't fail.
322
		if (ret != LZMA_OK) {
340
		if (ret != LZMA_OK) {
Lines 367-377 Link Here
367
			}
385
			}
368
		}
386
		}
369
387
388
		size_t out_pos = 0;
389
370
		assert(state != THR_IDLE);
390
		assert(state != THR_IDLE);
371
		assert(state != THR_STOP);
391
		assert(state != THR_STOP);
372
392
373
		if (state <= THR_FINISH)
393
		if (state <= THR_FINISH)
374
			state = worker_encode(thr, state);
394
			state = worker_encode(thr, &out_pos, state);
375
395
376
		if (state == THR_EXIT)
396
		if (state == THR_EXIT)
377
			break;
397
			break;
Lines 387-400 Link Here
387
		}
407
		}
388
408
389
		mythread_sync(thr->coder->mutex) {
409
		mythread_sync(thr->coder->mutex) {
390
			// Mark the output buffer as finished if
410
			// If no errors occurred, make the encoded data
391
			// no errors occurred.
411
			// available to be copied out.
392
			thr->outbuf->finished = state == THR_FINISH;
412
			if (state == THR_FINISH) {
413
				thr->outbuf->pos = out_pos;
414
				thr->outbuf->finished = true;
415
			}
393
416
394
			// Update the main progress info.
417
			// Update the main progress info.
395
			thr->coder->progress_in
418
			thr->coder->progress_in
396
					+= thr->outbuf->uncompressed_size;
419
					+= thr->outbuf->uncompressed_size;
397
			thr->coder->progress_out += thr->outbuf->size;
420
			thr->coder->progress_out += out_pos;
398
			thr->progress_in = 0;
421
			thr->progress_in = 0;
399
			thr->progress_out = 0;
422
			thr->progress_out = 0;
400
423
Lines 407-412 Link Here
407
	}
430
	}
408
431
409
	// Exiting, free the resources.
432
	// Exiting, free the resources.
433
	lzma_filters_free(thr->filters, thr->allocator);
434
410
	mythread_mutex_destroy(&thr->mutex);
435
	mythread_mutex_destroy(&thr->mutex);
411
	mythread_cond_destroy(&thr->cond);
436
	mythread_cond_destroy(&thr->cond);
412
437
Lines 490-495 Link Here
490
	thr->progress_in = 0;
515
	thr->progress_in = 0;
491
	thr->progress_out = 0;
516
	thr->progress_out = 0;
492
	thr->block_encoder = LZMA_NEXT_CODER_INIT;
517
	thr->block_encoder = LZMA_NEXT_CODER_INIT;
518
	thr->filters[0].id = LZMA_VLI_UNKNOWN;
493
519
494
	if (mythread_create(&thr->thread_id, &worker_start, thr))
520
	if (mythread_create(&thr->thread_id, &worker_start, thr))
495
		goto error_thread;
521
		goto error_thread;
Lines 519-524 Link Here
519
	if (!lzma_outq_has_buf(&coder->outq))
545
	if (!lzma_outq_has_buf(&coder->outq))
520
		return LZMA_OK;
546
		return LZMA_OK;
521
547
548
	// That's also true if we cannot allocate memory for the output
549
	// buffer in the output queue.
550
	return_if_error(lzma_outq_prealloc_buf(&coder->outq, allocator,
551
			coder->outbuf_alloc_size));
552
553
	// Make a thread-specific copy of the filter chain. Put it in
554
	// the cache array first so that if we cannot get a new thread yet,
555
	// the allocation is ready when we try again.
556
	if (coder->filters_cache[0].id == LZMA_VLI_UNKNOWN)
557
		return_if_error(lzma_filters_copy(
558
			coder->filters, coder->filters_cache, allocator));
559
522
	// If there is a free structure on the stack, use it.
560
	// If there is a free structure on the stack, use it.
523
	mythread_sync(coder->mutex) {
561
	mythread_sync(coder->mutex) {
524
		if (coder->threads_free != NULL) {
562
		if (coder->threads_free != NULL) {
Lines 541-547 Link Here
541
	mythread_sync(coder->thr->mutex) {
579
	mythread_sync(coder->thr->mutex) {
542
		coder->thr->state = THR_RUN;
580
		coder->thr->state = THR_RUN;
543
		coder->thr->in_size = 0;
581
		coder->thr->in_size = 0;
544
		coder->thr->outbuf = lzma_outq_get_buf(&coder->outq);
582
		coder->thr->outbuf = lzma_outq_get_buf(&coder->outq, NULL);
583
584
		// Free the old thread-specific filter options and replace
585
		// them with the already-allocated new options from
586
		// coder->filters_cache[]. Then mark the cache as empty.
587
		lzma_filters_free(coder->thr->filters, allocator);
588
		memcpy(coder->thr->filters, coder->filters_cache,
589
				sizeof(coder->filters_cache));
590
		coder->filters_cache[0].id = LZMA_VLI_UNKNOWN;
591
545
		mythread_cond_signal(&coder->thr->cond);
592
		mythread_cond_signal(&coder->thr->cond);
546
	}
593
	}
547
594
Lines 598-604 Link Here
598
		}
645
		}
599
646
600
		if (block_error) {
647
		if (block_error) {
601
			lzma_ret ret;
648
			lzma_ret ret = LZMA_OK; // Init to silence a warning.
602
649
603
			mythread_sync(coder->mutex) {
650
			mythread_sync(coder->mutex) {
604
				ret = coder->thread_error;
651
				ret = coder->thread_error;
Lines 627-635 Link Here
627
		// to true here and calculate the absolute time when
674
		// to true here and calculate the absolute time when
628
		// we must return if there's nothing to do.
675
		// we must return if there's nothing to do.
629
		//
676
		//
630
		// The idea of *has_blocked is to avoid unneeded calls
677
		// This way if we block multiple times for short moments
631
		// to mythread_condtime_set(), which may do a syscall
678
		// less than "timeout" milliseconds, we will return once
632
		// depending on the operating system.
679
		// "timeout" amount of time has passed since the *first*
680
		// blocking occurred. If the absolute time was calculated
681
		// again every time we block, "timeout" would effectively
682
		// be meaningless if we never consecutively block longer
683
		// than "timeout" ms.
633
		*has_blocked = true;
684
		*has_blocked = true;
634
		mythread_condtime_set(wait_abs, &coder->cond, coder->timeout);
685
		mythread_condtime_set(wait_abs, &coder->cond, coder->timeout);
635
	}
686
	}
Lines 704-710 Link Here
704
				}
755
				}
705
756
706
				// Try to read compressed data to out[].
757
				// Try to read compressed data to out[].
707
				ret = lzma_outq_read(&coder->outq,
758
				ret = lzma_outq_read(&coder->outq, allocator,
708
						out, out_pos, out_size,
759
						out, out_pos, out_size,
709
						&unpadded_size,
760
						&unpadded_size,
710
						&uncompressed_size);
761
						&uncompressed_size);
Lines 715-720 Link Here
715
				ret = lzma_index_append(coder->index,
766
				ret = lzma_index_append(coder->index,
716
						allocator, unpadded_size,
767
						allocator, unpadded_size,
717
						uncompressed_size);
768
						uncompressed_size);
769
				if (ret != LZMA_OK) {
770
					threads_stop(coder, false);
771
					return ret;
772
				}
718
773
719
				// If we didn't fill the output buffer yet,
774
				// If we didn't fill the output buffer yet,
720
				// try to read more data. Maybe the next
775
				// try to read more data. Maybe the next
Lines 724-731 Link Here
724
			}
779
			}
725
780
726
			if (ret != LZMA_OK) {
781
			if (ret != LZMA_OK) {
727
				// coder->thread_error was set or
782
				// coder->thread_error was set.
728
				// lzma_index_append() failed.
729
				threads_stop(coder, false);
783
				threads_stop(coder, false);
730
				return ret;
784
				return ret;
731
			}
785
			}
Lines 846-853 Link Here
846
	threads_end(coder, allocator);
900
	threads_end(coder, allocator);
847
	lzma_outq_end(&coder->outq, allocator);
901
	lzma_outq_end(&coder->outq, allocator);
848
902
849
	for (size_t i = 0; coder->filters[i].id != LZMA_VLI_UNKNOWN; ++i)
903
	lzma_filters_free(coder->filters, allocator);
850
		lzma_free(coder->filters[i].options, allocator);
904
	lzma_filters_free(coder->filters_cache, allocator);
851
905
852
	lzma_next_end(&coder->index_encoder, allocator);
906
	lzma_next_end(&coder->index_encoder, allocator);
853
	lzma_index_end(coder->index, allocator);
907
	lzma_index_end(coder->index, allocator);
Lines 860-865 Link Here
860
}
914
}
861
915
862
916
917
static lzma_ret
918
stream_encoder_mt_update(void *coder_ptr, const lzma_allocator *allocator,
919
		const lzma_filter *filters,
920
		const lzma_filter *reversed_filters
921
			lzma_attribute((__unused__)))
922
{
923
	lzma_stream_coder *coder = coder_ptr;
924
925
	// Applications shouldn't attempt to change the options when
926
	// we are already encoding the Index or Stream Footer.
927
	if (coder->sequence > SEQ_BLOCK)
928
		return LZMA_PROG_ERROR;
929
930
	// For now the threaded encoder doesn't support changing
931
	// the options in the middle of a Block.
932
	if (coder->thr != NULL)
933
		return LZMA_PROG_ERROR;
934
935
	// Check if the filter chain seems mostly valid. See the comment
936
	// in stream_encoder_mt_init().
937
	if (lzma_raw_encoder_memusage(filters) == UINT64_MAX)
938
		return LZMA_OPTIONS_ERROR;
939
940
	// Make a copy to a temporary buffer first. This way the encoder
941
	// state stays unchanged if an error occurs in lzma_filters_copy().
942
	lzma_filter temp[LZMA_FILTERS_MAX + 1];
943
	return_if_error(lzma_filters_copy(filters, temp, allocator));
944
945
	// Free the options of the old chain as well as the cache.
946
	lzma_filters_free(coder->filters, allocator);
947
	lzma_filters_free(coder->filters_cache, allocator);
948
949
	// Copy the new filter chain in place.
950
	memcpy(coder->filters, temp, sizeof(temp));
951
952
	return LZMA_OK;
953
}
954
955
863
/// Options handling for lzma_stream_encoder_mt_init() and
956
/// Options handling for lzma_stream_encoder_mt_init() and
864
/// lzma_stream_encoder_mt_memusage()
957
/// lzma_stream_encoder_mt_memusage()
865
static lzma_ret
958
static lzma_ret
Lines 951-964 Link Here
951
			&block_size, &outbuf_size_max));
1044
			&block_size, &outbuf_size_max));
952
1045
953
#if SIZE_MAX < UINT64_MAX
1046
#if SIZE_MAX < UINT64_MAX
954
	if (block_size > SIZE_MAX)
1047
	if (block_size > SIZE_MAX || outbuf_size_max > SIZE_MAX)
955
		return LZMA_MEM_ERROR;
1048
		return LZMA_MEM_ERROR;
956
#endif
1049
#endif
957
1050
958
	// Validate the filter chain so that we can give an error in this
1051
	// Validate the filter chain so that we can give an error in this
959
	// function instead of delaying it to the first call to lzma_code().
1052
	// function instead of delaying it to the first call to lzma_code().
960
	// The memory usage calculation verifies the filter chain as
1053
	// The memory usage calculation verifies the filter chain as
961
	// a side effect so we take advantage of that.
1054
	// a side effect so we take advantage of that. It's not a perfect
1055
	// check though as raw encoder allows LZMA1 too but such problems
1056
	// will be caught eventually with Block Header encoder.
962
	if (lzma_raw_encoder_memusage(filters) == UINT64_MAX)
1057
	if (lzma_raw_encoder_memusage(filters) == UINT64_MAX)
963
		return LZMA_OPTIONS_ERROR;
1058
		return LZMA_OPTIONS_ERROR;
964
1059
Lines 998-1006 Link Here
998
		next->code = &stream_encode_mt;
1093
		next->code = &stream_encode_mt;
999
		next->end = &stream_encoder_mt_end;
1094
		next->end = &stream_encoder_mt_end;
1000
		next->get_progress = &get_progress;
1095
		next->get_progress = &get_progress;
1001
// 		next->update = &stream_encoder_mt_update;
1096
		next->update = &stream_encoder_mt_update;
1002
1097
1003
		coder->filters[0].id = LZMA_VLI_UNKNOWN;
1098
		coder->filters[0].id = LZMA_VLI_UNKNOWN;
1099
		coder->filters_cache[0].id = LZMA_VLI_UNKNOWN;
1004
		coder->index_encoder = LZMA_NEXT_CODER_INIT;
1100
		coder->index_encoder = LZMA_NEXT_CODER_INIT;
1005
		coder->index = NULL;
1101
		coder->index = NULL;
1006
		memzero(&coder->outq, sizeof(coder->outq));
1102
		memzero(&coder->outq, sizeof(coder->outq));
Lines 1012-1017 Link Here
1012
	// Basic initializations
1108
	// Basic initializations
1013
	coder->sequence = SEQ_STREAM_HEADER;
1109
	coder->sequence = SEQ_STREAM_HEADER;
1014
	coder->block_size = (size_t)(block_size);
1110
	coder->block_size = (size_t)(block_size);
1111
	coder->outbuf_alloc_size = (size_t)(outbuf_size_max);
1015
	coder->thread_error = LZMA_OK;
1112
	coder->thread_error = LZMA_OK;
1016
	coder->thr = NULL;
1113
	coder->thr = NULL;
1017
1114
Lines 1041-1055 Link Here
1041
1138
1042
	// Output queue
1139
	// Output queue
1043
	return_if_error(lzma_outq_init(&coder->outq, allocator,
1140
	return_if_error(lzma_outq_init(&coder->outq, allocator,
1044
			outbuf_size_max, options->threads));
1141
			options->threads));
1045
1142
1046
	// Timeout
1143
	// Timeout
1047
	coder->timeout = options->timeout;
1144
	coder->timeout = options->timeout;
1048
1145
1049
	// Free the old filter chain and copy the new one.
1146
	// Free the old filter chain and the cache.
1050
	for (size_t i = 0; coder->filters[i].id != LZMA_VLI_UNKNOWN; ++i)
1147
	lzma_filters_free(coder->filters, allocator);
1051
		lzma_free(coder->filters[i].options, allocator);
1148
	lzma_filters_free(coder->filters_cache, allocator);
1052
1149
1150
	// Copy the new filter chain.
1053
	return_if_error(lzma_filters_copy(
1151
	return_if_error(lzma_filters_copy(
1054
			filters, coder->filters, allocator));
1152
			filters, coder->filters, allocator));
1055
1153
Lines 1075-1080 Link Here
1075
}
1173
}
1076
1174
1077
1175
1176
#ifdef HAVE_SYMBOL_VERSIONS_LINUX
1177
// These are for compatibility with binaries linked against liblzma that
1178
// has been patched with xz-5.2.2-compat-libs.patch from RHEL/CentOS 7.
1179
// Actually that patch didn't create lzma_stream_encoder_mt@XZ_5.2.2
1180
// but it has been added here anyway since someone might misread the
1181
// RHEL patch and think both @XZ_5.1.2alpha and @XZ_5.2.2 exist.
1182
LZMA_SYMVER_API("lzma_stream_encoder_mt@XZ_5.1.2alpha",
1183
	lzma_ret, lzma_stream_encoder_mt_512a)(
1184
		lzma_stream *strm, const lzma_mt *options)
1185
		lzma_nothrow lzma_attr_warn_unused_result
1186
		__attribute__((__alias__("lzma_stream_encoder_mt_52")));
1187
1188
LZMA_SYMVER_API("lzma_stream_encoder_mt@XZ_5.2.2",
1189
	lzma_ret, lzma_stream_encoder_mt_522)(
1190
		lzma_stream *strm, const lzma_mt *options)
1191
		lzma_nothrow lzma_attr_warn_unused_result
1192
		__attribute__((__alias__("lzma_stream_encoder_mt_52")));
1193
1194
LZMA_SYMVER_API("lzma_stream_encoder_mt@@XZ_5.2",
1195
	lzma_ret, lzma_stream_encoder_mt_52)(
1196
		lzma_stream *strm, const lzma_mt *options)
1197
		lzma_nothrow lzma_attr_warn_unused_result;
1198
1199
#define lzma_stream_encoder_mt lzma_stream_encoder_mt_52
1200
#endif
1078
extern LZMA_API(lzma_ret)
1201
extern LZMA_API(lzma_ret)
1079
lzma_stream_encoder_mt(lzma_stream *strm, const lzma_mt *options)
1202
lzma_stream_encoder_mt(lzma_stream *strm, const lzma_mt *options)
1080
{
1203
{
Lines 1090-1095 Link Here
1090
}
1213
}
1091
1214
1092
1215
1216
#ifdef HAVE_SYMBOL_VERSIONS_LINUX
1217
LZMA_SYMVER_API("lzma_stream_encoder_mt_memusage@XZ_5.1.2alpha",
1218
	uint64_t, lzma_stream_encoder_mt_memusage_512a)(
1219
	const lzma_mt *options) lzma_nothrow lzma_attr_pure
1220
	__attribute__((__alias__("lzma_stream_encoder_mt_memusage_52")));
1221
1222
LZMA_SYMVER_API("lzma_stream_encoder_mt_memusage@XZ_5.2.2",
1223
	uint64_t, lzma_stream_encoder_mt_memusage_522)(
1224
	const lzma_mt *options) lzma_nothrow lzma_attr_pure
1225
	__attribute__((__alias__("lzma_stream_encoder_mt_memusage_52")));
1226
1227
LZMA_SYMVER_API("lzma_stream_encoder_mt_memusage@@XZ_5.2",
1228
	uint64_t, lzma_stream_encoder_mt_memusage_52)(
1229
	const lzma_mt *options) lzma_nothrow lzma_attr_pure;
1230
1231
#define lzma_stream_encoder_mt_memusage lzma_stream_encoder_mt_memusage_52
1232
#endif
1093
// This function name is a monster but it's consistent with the older
1233
// This function name is a monster but it's consistent with the older
1094
// monster names. :-( 31 chars is the max that C99 requires so in that
1234
// monster names. :-( 31 chars is the max that C99 requires so in that
1095
// sense it's not too long. ;-)
1235
// sense it's not too long. ;-)
(-)xz-5.2.5/src/liblzma/common/stream_flags_decoder.c (-2 / +8 lines)
Lines 39-46 Link Here
39
	const uint32_t crc = lzma_crc32(in + sizeof(lzma_header_magic),
39
	const uint32_t crc = lzma_crc32(in + sizeof(lzma_header_magic),
40
			LZMA_STREAM_FLAGS_SIZE, 0);
40
			LZMA_STREAM_FLAGS_SIZE, 0);
41
	if (crc != read32le(in + sizeof(lzma_header_magic)
41
	if (crc != read32le(in + sizeof(lzma_header_magic)
42
			+ LZMA_STREAM_FLAGS_SIZE))
42
			+ LZMA_STREAM_FLAGS_SIZE)) {
43
#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
43
		return LZMA_DATA_ERROR;
44
		return LZMA_DATA_ERROR;
45
#endif
46
	}
44
47
45
	// Stream Flags
48
	// Stream Flags
46
	if (stream_flags_decode(options, in + sizeof(lzma_header_magic)))
49
	if (stream_flags_decode(options, in + sizeof(lzma_header_magic)))
Lines 67-74 Link Here
67
	// CRC32
70
	// CRC32
68
	const uint32_t crc = lzma_crc32(in + sizeof(uint32_t),
71
	const uint32_t crc = lzma_crc32(in + sizeof(uint32_t),
69
			sizeof(uint32_t) + LZMA_STREAM_FLAGS_SIZE, 0);
72
			sizeof(uint32_t) + LZMA_STREAM_FLAGS_SIZE, 0);
70
	if (crc != read32le(in))
73
	if (crc != read32le(in)) {
74
#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
71
		return LZMA_DATA_ERROR;
75
		return LZMA_DATA_ERROR;
76
#endif
77
	}
72
78
73
	// Stream Flags
79
	// Stream Flags
74
	if (stream_flags_decode(options, in + sizeof(uint32_t) * 2))
80
	if (stream_flags_decode(options, in + sizeof(uint32_t) * 2))
(-)xz-5.2.5/src/liblzma/delta/delta_decoder.c (-1 / +6 lines)
Lines 42-48 Link Here
42
			in, in_pos, in_size, out, out_pos, out_size,
42
			in, in_pos, in_size, out, out_pos, out_size,
43
			action);
43
			action);
44
44
45
	decode_buffer(coder, out + out_start, *out_pos - out_start);
45
	// out might be NULL. In that case size == 0. Null pointer + 0 is
46
	// undefined behavior so skip the call in that case as it would
47
	// do nothing anyway.
48
	const size_t size = *out_pos - out_start;
49
	if (size > 0)
50
		decode_buffer(coder, out + out_start, size);
46
51
47
	return ret;
52
	return ret;
48
}
53
}
(-)xz-5.2.5/src/liblzma/delta/delta_encoder.c (-2 / +10 lines)
Lines 63-69 Link Here
63
		const size_t out_avail = out_size - *out_pos;
63
		const size_t out_avail = out_size - *out_pos;
64
		const size_t size = my_min(in_avail, out_avail);
64
		const size_t size = my_min(in_avail, out_avail);
65
65
66
		copy_and_encode(coder, in + *in_pos, out + *out_pos, size);
66
		// in and out might be NULL. In such cases size == 0.
67
		// Null pointer + 0 is undefined behavior so skip
68
		// the call in that case as it would do nothing anyway.
69
		if (size > 0)
70
			copy_and_encode(coder, in + *in_pos, out + *out_pos,
71
					size);
67
72
68
		*in_pos += size;
73
		*in_pos += size;
69
		*out_pos += size;
74
		*out_pos += size;
Lines 78-84 Link Here
78
				in, in_pos, in_size, out, out_pos, out_size,
83
				in, in_pos, in_size, out, out_pos, out_size,
79
				action);
84
				action);
80
85
81
		encode_in_place(coder, out + out_start, *out_pos - out_start);
86
		// Like above, avoid null pointer + 0.
87
		const size_t size = *out_pos - out_start;
88
		if (size > 0)
89
			encode_in_place(coder, out + out_start, size);
82
	}
90
	}
83
91
84
	return ret;
92
	return ret;
(-)xz-5.2.5/src/liblzma/lz/lz_decoder.c (-10 / +3 lines)
Lines 212-218 Link Here
212
lzma_lz_decoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
212
lzma_lz_decoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
213
		const lzma_filter_info *filters,
213
		const lzma_filter_info *filters,
214
		lzma_ret (*lz_init)(lzma_lz_decoder *lz,
214
		lzma_ret (*lz_init)(lzma_lz_decoder *lz,
215
			const lzma_allocator *allocator, const void *options,
215
			const lzma_allocator *allocator,
216
			lzma_vli id, const void *options,
216
			lzma_lz_options *lz_options))
217
			lzma_lz_options *lz_options))
217
{
218
{
218
	// Allocate the base structure if it isn't already allocated.
219
	// Allocate the base structure if it isn't already allocated.
Lines 236-242 Link Here
236
	// us the dictionary size.
237
	// us the dictionary size.
237
	lzma_lz_options lz_options;
238
	lzma_lz_options lz_options;
238
	return_if_error(lz_init(&coder->lz, allocator,
239
	return_if_error(lz_init(&coder->lz, allocator,
239
			filters[0].options, &lz_options));
240
			filters[0].id, filters[0].options, &lz_options));
240
241
241
	// If the dictionary size is very small, increase it to 4096 bytes.
242
	// If the dictionary size is very small, increase it to 4096 bytes.
242
	// This is to prevent constant wrapping of the dictionary, which
243
	// This is to prevent constant wrapping of the dictionary, which
Lines 300-311 Link Here
300
lzma_lz_decoder_memusage(size_t dictionary_size)
301
lzma_lz_decoder_memusage(size_t dictionary_size)
301
{
302
{
302
	return sizeof(lzma_coder) + (uint64_t)(dictionary_size);
303
	return sizeof(lzma_coder) + (uint64_t)(dictionary_size);
303
}
304
305
306
extern void
307
lzma_lz_decoder_uncompressed(void *coder_ptr, lzma_vli uncompressed_size)
308
{
309
	lzma_coder *coder = coder_ptr;
310
	coder->lz.set_uncompressed(coder->lz.coder, uncompressed_size);
311
}
304
}
(-)xz-5.2.5/src/liblzma/lz/lz_decoder.h (-6 / +6 lines)
Lines 62-69 Link Here
62
62
63
	void (*reset)(void *coder, const void *options);
63
	void (*reset)(void *coder, const void *options);
64
64
65
	/// Set the uncompressed size
65
	/// Set the uncompressed size. If uncompressed_size == LZMA_VLI_UNKNOWN
66
	void (*set_uncompressed)(void *coder, lzma_vli uncompressed_size);
66
	/// then allow_eopm will always be true.
67
	void (*set_uncompressed)(void *coder, lzma_vli uncompressed_size,
68
			bool allow_eopm);
67
69
68
	/// Free allocated resources
70
	/// Free allocated resources
69
	void (*end)(void *coder, const lzma_allocator *allocator);
71
	void (*end)(void *coder, const lzma_allocator *allocator);
Lines 85-97 Link Here
85
		const lzma_allocator *allocator,
87
		const lzma_allocator *allocator,
86
		const lzma_filter_info *filters,
88
		const lzma_filter_info *filters,
87
		lzma_ret (*lz_init)(lzma_lz_decoder *lz,
89
		lzma_ret (*lz_init)(lzma_lz_decoder *lz,
88
			const lzma_allocator *allocator, const void *options,
90
			const lzma_allocator *allocator,
91
			lzma_vli id, const void *options,
89
			lzma_lz_options *lz_options));
92
			lzma_lz_options *lz_options));
90
93
91
extern uint64_t lzma_lz_decoder_memusage(size_t dictionary_size);
94
extern uint64_t lzma_lz_decoder_memusage(size_t dictionary_size);
92
93
extern void lzma_lz_decoder_uncompressed(
94
		void *coder, lzma_vli uncompressed_size);
95
95
96
96
97
//////////////////////
97
//////////////////////
(-)xz-5.2.5/src/liblzma/lz/lz_encoder.c (-26 / +43 lines)
Lines 293-303 Link Here
293
		return true;
293
		return true;
294
	}
294
	}
295
295
296
	// Calculate the sizes of mf->hash and mf->son and check that
296
	// Calculate the sizes of mf->hash and mf->son.
297
	// nice_len is big enough for the selected match finder.
297
	//
298
	const uint32_t hash_bytes = lz_options->match_finder & 0x0F;
298
	// NOTE: Since 5.3.5beta the LZMA encoder ensures that nice_len
299
	if (hash_bytes > mf->nice_len)
299
	// is big enough for the selected match finder. This makes it
300
		return true;
300
	// easier for applications as nice_len = 2 will always be accepted
301
	// even though the effective value can be slightly bigger.
302
	const uint32_t hash_bytes
303
			= mf_get_hash_bytes(lz_options->match_finder);
304
	assert(hash_bytes <= mf->nice_len);
301
305
302
	const bool is_bt = (lz_options->match_finder & 0x10) != 0;
306
	const bool is_bt = (lz_options->match_finder & 0x10) != 0;
303
	uint32_t hs;
307
	uint32_t hs;
Lines 521-534 Link Here
521
}
525
}
522
526
523
527
528
static lzma_ret
529
lz_encoder_set_out_limit(void *coder_ptr, uint64_t *uncomp_size,
530
		uint64_t out_limit)
531
{
532
	lzma_coder *coder = coder_ptr;
533
534
	// This is supported only if there are no other filters chained.
535
	if (coder->next.code == NULL && coder->lz.set_out_limit != NULL)
536
		return coder->lz.set_out_limit(
537
				coder->lz.coder, uncomp_size, out_limit);
538
539
	return LZMA_OPTIONS_ERROR;
540
}
541
542
524
extern lzma_ret
543
extern lzma_ret
525
lzma_lz_encoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
544
lzma_lz_encoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
526
		const lzma_filter_info *filters,
545
		const lzma_filter_info *filters,
527
		lzma_ret (*lz_init)(lzma_lz_encoder *lz,
546
		lzma_ret (*lz_init)(lzma_lz_encoder *lz,
528
			const lzma_allocator *allocator, const void *options,
547
			const lzma_allocator *allocator,
548
			lzma_vli id, const void *options,
529
			lzma_lz_options *lz_options))
549
			lzma_lz_options *lz_options))
530
{
550
{
531
#ifdef HAVE_SMALL
551
#if defined(HAVE_SMALL) && !defined(HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR)
532
	// We need that the CRC32 table has been initialized.
552
	// We need that the CRC32 table has been initialized.
533
	lzma_crc32_init();
553
	lzma_crc32_init();
534
#endif
554
#endif
Lines 544-549 Link Here
544
		next->code = &lz_encode;
564
		next->code = &lz_encode;
545
		next->end = &lz_encoder_end;
565
		next->end = &lz_encoder_end;
546
		next->update = &lz_encoder_update;
566
		next->update = &lz_encoder_update;
567
		next->set_out_limit = &lz_encoder_set_out_limit;
547
568
548
		coder->lz.coder = NULL;
569
		coder->lz.coder = NULL;
549
		coder->lz.code = NULL;
570
		coder->lz.code = NULL;
Lines 565-571 Link Here
565
	// Initialize the LZ-based encoder.
586
	// Initialize the LZ-based encoder.
566
	lzma_lz_options lz_options;
587
	lzma_lz_options lz_options;
567
	return_if_error(lz_init(&coder->lz, allocator,
588
	return_if_error(lz_init(&coder->lz, allocator,
568
			filters[0].options, &lz_options));
589
			filters[0].id, filters[0].options, &lz_options));
569
590
570
	// Setup the size information into coder->mf and deallocate
591
	// Setup the size information into coder->mf and deallocate
571
	// old buffers if they have wrong size.
592
	// old buffers if they have wrong size.
Lines 585-616 Link Here
585
extern LZMA_API(lzma_bool)
606
extern LZMA_API(lzma_bool)
586
lzma_mf_is_supported(lzma_match_finder mf)
607
lzma_mf_is_supported(lzma_match_finder mf)
587
{
608
{
588
	bool ret = false;
609
	switch (mf) {
589
590
#ifdef HAVE_MF_HC3
610
#ifdef HAVE_MF_HC3
591
	if (mf == LZMA_MF_HC3)
611
	case LZMA_MF_HC3:
592
		ret = true;
612
		return true;
593
#endif
613
#endif
594
595
#ifdef HAVE_MF_HC4
614
#ifdef HAVE_MF_HC4
596
	if (mf == LZMA_MF_HC4)
615
	case LZMA_MF_HC4:
597
		ret = true;
616
		return true;
598
#endif
617
#endif
599
600
#ifdef HAVE_MF_BT2
618
#ifdef HAVE_MF_BT2
601
	if (mf == LZMA_MF_BT2)
619
	case LZMA_MF_BT2:
602
		ret = true;
620
		return true;
603
#endif
621
#endif
604
605
#ifdef HAVE_MF_BT3
622
#ifdef HAVE_MF_BT3
606
	if (mf == LZMA_MF_BT3)
623
	case LZMA_MF_BT3:
607
		ret = true;
624
		return true;
608
#endif
625
#endif
609
610
#ifdef HAVE_MF_BT4
626
#ifdef HAVE_MF_BT4
611
	if (mf == LZMA_MF_BT4)
627
	case LZMA_MF_BT4:
612
		ret = true;
628
		return true;
613
#endif
629
#endif
614
630
	default:
615
	return ret;
631
		return false;
632
	}
616
}
633
}
(-)xz-5.2.5/src/liblzma/lz/lz_encoder.h (-1 / +15 lines)
Lines 204-209 Link Here
204
	/// Update the options in the middle of the encoding.
204
	/// Update the options in the middle of the encoding.
205
	lzma_ret (*options_update)(void *coder, const lzma_filter *filter);
205
	lzma_ret (*options_update)(void *coder, const lzma_filter *filter);
206
206
207
	/// Set maximum allowed output size
208
	lzma_ret (*set_out_limit)(void *coder, uint64_t *uncomp_size,
209
			uint64_t out_limit);
210
207
} lzma_lz_encoder;
211
} lzma_lz_encoder;
208
212
209
213
Lines 216-221 Link Here
216
// are called `read ahead'.
220
// are called `read ahead'.
217
221
218
222
223
/// Get how many bytes the match finder hashes in its initial step.
224
/// This is also the minimum nice_len value with the match finder.
225
static inline uint32_t
226
mf_get_hash_bytes(lzma_match_finder match_finder)
227
{
228
	return (uint32_t)match_finder & 0x0F;
229
}
230
231
219
/// Get pointer to the first byte not ran through the match finder
232
/// Get pointer to the first byte not ran through the match finder
220
static inline const uint8_t *
233
static inline const uint8_t *
221
mf_ptr(const lzma_mf *mf)
234
mf_ptr(const lzma_mf *mf)
Lines 298-304 Link Here
298
		lzma_next_coder *next, const lzma_allocator *allocator,
311
		lzma_next_coder *next, const lzma_allocator *allocator,
299
		const lzma_filter_info *filters,
312
		const lzma_filter_info *filters,
300
		lzma_ret (*lz_init)(lzma_lz_encoder *lz,
313
		lzma_ret (*lz_init)(lzma_lz_encoder *lz,
301
			const lzma_allocator *allocator, const void *options,
314
			const lzma_allocator *allocator,
315
			lzma_vli id, const void *options,
302
			lzma_lz_options *lz_options));
316
			lzma_lz_options *lz_options));
303
317
304
318
(-)xz-5.2.5/src/liblzma/lz/lz_encoder_mf.c (-5 / +6 lines)
Lines 220-229 Link Here
220
/// of matches found.
220
/// of matches found.
221
#define call_find(func, len_best) \
221
#define call_find(func, len_best) \
222
do { \
222
do { \
223
	matches_count = func(len_limit, pos, cur, cur_match, mf->depth, \
223
	matches_count = (uint32_t)(func(len_limit, pos, cur, cur_match, \
224
				mf->son, mf->cyclic_pos, mf->cyclic_size, \
224
				mf->depth, mf->son, \
225
				mf->cyclic_pos, mf->cyclic_size, \
225
				matches + matches_count, len_best) \
226
				matches + matches_count, len_best) \
226
			- matches; \
227
			- matches); \
227
	move_pos(mf); \
228
	move_pos(mf); \
228
	return matches_count; \
229
	return matches_count; \
229
} while (0)
230
} while (0)
Lines 242-249 Link Here
242
/// \param      cur_match       Start position of the current match candidate
243
/// \param      cur_match       Start position of the current match candidate
243
/// \param      depth           Maximum length of the hash chain
244
/// \param      depth           Maximum length of the hash chain
244
/// \param      son             lzma_mf.son (contains the hash chain)
245
/// \param      son             lzma_mf.son (contains the hash chain)
245
/// \param      cyclic_pos
246
/// \param      cyclic_pos      lzma_mf.cyclic_pos
246
/// \param      cyclic_size
247
/// \param      cyclic_size     lzma_mf_cyclic_size
247
/// \param      matches         Array to hold the matches.
248
/// \param      matches         Array to hold the matches.
248
/// \param      len_best        The length of the longest match found so far.
249
/// \param      len_best        The length of the longest match found so far.
249
static lzma_match *
250
static lzma_match *
(-)xz-5.2.5/src/liblzma/lzma/Makefile.inc (-4 / +1 lines)
Lines 7-18 Link Here
7
7
8
EXTRA_DIST += lzma/fastpos_tablegen.c
8
EXTRA_DIST += lzma/fastpos_tablegen.c
9
9
10
liblzma_la_SOURCES += lzma/lzma_common.h
11
12
if COND_FILTER_LZMA1
13
liblzma_la_SOURCES += \
10
liblzma_la_SOURCES += \
11
	lzma/lzma_common.h \
14
	lzma/lzma_encoder_presets.c
12
	lzma/lzma_encoder_presets.c
15
endif
16
13
17
if COND_ENCODER_LZMA1
14
if COND_ENCODER_LZMA1
18
liblzma_la_SOURCES += \
15
liblzma_la_SOURCES += \
(-)xz-5.2.5/src/liblzma/lzma/lzma2_decoder.c (-2 / +3 lines)
Lines 139-145 Link Here
139
		coder->uncompressed_size += in[(*in_pos)++] + 1U;
139
		coder->uncompressed_size += in[(*in_pos)++] + 1U;
140
		coder->sequence = SEQ_COMPRESSED_0;
140
		coder->sequence = SEQ_COMPRESSED_0;
141
		coder->lzma.set_uncompressed(coder->lzma.coder,
141
		coder->lzma.set_uncompressed(coder->lzma.coder,
142
				coder->uncompressed_size);
142
				coder->uncompressed_size, false);
143
		break;
143
		break;
144
144
145
	case SEQ_COMPRESSED_0:
145
	case SEQ_COMPRESSED_0:
Lines 226-232 Link Here
226
226
227
static lzma_ret
227
static lzma_ret
228
lzma2_decoder_init(lzma_lz_decoder *lz, const lzma_allocator *allocator,
228
lzma2_decoder_init(lzma_lz_decoder *lz, const lzma_allocator *allocator,
229
		const void *opt, lzma_lz_options *lz_options)
229
		lzma_vli id lzma_attribute((__unused__)), const void *opt,
230
		lzma_lz_options *lz_options)
230
{
231
{
231
	lzma_lzma2_coder *coder = lz->coder;
232
	lzma_lzma2_coder *coder = lz->coder;
232
	if (coder == NULL) {
233
	if (coder == NULL) {
(-)xz-5.2.5/src/liblzma/lzma/lzma2_encoder.c (-2 / +6 lines)
Lines 310-316 Link Here
310
310
311
static lzma_ret
311
static lzma_ret
312
lzma2_encoder_init(lzma_lz_encoder *lz, const lzma_allocator *allocator,
312
lzma2_encoder_init(lzma_lz_encoder *lz, const lzma_allocator *allocator,
313
		const void *options, lzma_lz_options *lz_options)
313
		lzma_vli id lzma_attribute((__unused__)), const void *options,
314
		lzma_lz_options *lz_options)
314
{
315
{
315
	if (options == NULL)
316
	if (options == NULL)
316
		return LZMA_PROG_ERROR;
317
		return LZMA_PROG_ERROR;
Lines 340-346 Link Here
340
341
341
	// Initialize LZMA encoder
342
	// Initialize LZMA encoder
342
	return_if_error(lzma_lzma_encoder_create(&coder->lzma, allocator,
343
	return_if_error(lzma_lzma_encoder_create(&coder->lzma, allocator,
343
			&coder->opt_cur, lz_options));
344
			LZMA_FILTER_LZMA2, &coder->opt_cur, lz_options));
344
345
345
	// Make sure that we will always have enough history available in
346
	// Make sure that we will always have enough history available in
346
	// case we need to use uncompressed chunks. They are used when the
347
	// case we need to use uncompressed chunks. They are used when the
Lines 378-383 Link Here
378
extern lzma_ret
379
extern lzma_ret
379
lzma_lzma2_props_encode(const void *options, uint8_t *out)
380
lzma_lzma2_props_encode(const void *options, uint8_t *out)
380
{
381
{
382
	if (options == NULL)
383
		return LZMA_PROG_ERROR;
384
381
	const lzma_options_lzma *const opt = options;
385
	const lzma_options_lzma *const opt = options;
382
	uint32_t d = my_max(opt->dict_size, LZMA_DICT_SIZE_MIN);
386
	uint32_t d = my_max(opt->dict_size, LZMA_DICT_SIZE_MIN);
383
387
(-)xz-5.2.5/src/liblzma/lzma/lzma_decoder.c (-32 / +101 lines)
Lines 238-243 Link Here
238
	/// payload marker is expected.
238
	/// payload marker is expected.
239
	lzma_vli uncompressed_size;
239
	lzma_vli uncompressed_size;
240
240
241
	/// True if end of payload marker (EOPM) is allowed even when
242
	/// uncompressed_size is known; false if EOPM must not be present.
243
	/// This is ignored if uncompressed_size == LZMA_VLI_UNKNOWN.
244
	bool allow_eopm;
245
241
	////////////////////////////////
246
	////////////////////////////////
242
	// State of incomplete symbol //
247
	// State of incomplete symbol //
243
	////////////////////////////////
248
	////////////////////////////////
Lines 343-354 Link Here
343
348
344
	lzma_ret ret = LZMA_OK;
349
	lzma_ret ret = LZMA_OK;
345
350
346
	// If uncompressed size is known, there must be no end of payload
351
	// This is true when the next LZMA symbol is allowed to be EOPM.
347
	// marker.
352
	// That is, if this is false, then EOPM is considered
348
	const bool no_eopm = coder->uncompressed_size
353
	// an invalid symbol and we will return LZMA_DATA_ERROR.
349
			!= LZMA_VLI_UNKNOWN;
354
	//
350
	if (no_eopm && coder->uncompressed_size < dict.limit - dict.pos)
355
	// EOPM is always required (not just allowed) when
356
	// the uncompressed size isn't known. When uncompressed size
357
	// is known, eopm_is_valid may be set to true later.
358
	bool eopm_is_valid = coder->uncompressed_size == LZMA_VLI_UNKNOWN;
359
360
	// If uncompressed size is known and there is enough output space
361
	// to decode all the data, limit the available buffer space so that
362
	// the main loop won't try to decode past the end of the stream.
363
	bool might_finish_without_eopm = false;
364
	if (coder->uncompressed_size != LZMA_VLI_UNKNOWN
365
			&& coder->uncompressed_size <= dict.limit - dict.pos) {
351
		dict.limit = dict.pos + (size_t)(coder->uncompressed_size);
366
		dict.limit = dict.pos + (size_t)(coder->uncompressed_size);
367
		might_finish_without_eopm = true;
368
	}
352
369
353
	// The main decoder loop. The "switch" is used to restart the decoder at
370
	// The main decoder loop. The "switch" is used to restart the decoder at
354
	// correct location. Once restarted, the "switch" is no longer used.
371
	// correct location. Once restarted, the "switch" is no longer used.
Lines 361-369 Link Here
361
378
362
	case SEQ_NORMALIZE:
379
	case SEQ_NORMALIZE:
363
	case SEQ_IS_MATCH:
380
	case SEQ_IS_MATCH:
364
		if (unlikely(no_eopm && dict.pos == dict.limit))
381
		if (unlikely(might_finish_without_eopm
365
			break;
382
				&& dict.pos == dict.limit)) {
383
			// In rare cases there is a useless byte that needs
384
			// to be read anyway.
385
			rc_normalize(SEQ_NORMALIZE);
366
386
387
			// If the range decoder state is such that we can
388
			// be at the end of the LZMA stream, then the
389
			// decoding is finished.
390
			if (rc_is_finished(rc)) {
391
				ret = LZMA_STREAM_END;
392
				goto out;
393
			}
394
395
			// If the caller hasn't allowed EOPM to be present
396
			// together with known uncompressed size, then the
397
			// LZMA stream is corrupt.
398
			if (!coder->allow_eopm) {
399
				ret = LZMA_DATA_ERROR;
400
				goto out;
401
			}
402
403
			// Otherwise continue decoding with the expectation
404
			// that the next LZMA symbol is EOPM.
405
			eopm_is_valid = true;
406
		}
407
367
		rc_if_0(coder->is_match[state][pos_state], SEQ_IS_MATCH) {
408
		rc_if_0(coder->is_match[state][pos_state], SEQ_IS_MATCH) {
368
			rc_update_0(coder->is_match[state][pos_state]);
409
			rc_update_0(coder->is_match[state][pos_state]);
369
410
Lines 658-668 Link Here
658
699
659
					if (rep0 == UINT32_MAX) {
700
					if (rep0 == UINT32_MAX) {
660
						// End of payload marker was
701
						// End of payload marker was
661
						// found. It must not be
702
						// found. It may only be
662
						// present if uncompressed
703
						// present if
663
						// size is known.
704
						//   - uncompressed size is
664
						if (coder->uncompressed_size
705
						//     unknown or
665
						!= LZMA_VLI_UNKNOWN) {
706
						//   - after known uncompressed
707
						//     size amount of bytes has
708
						//     been decompressed and
709
						//     caller has indicated
710
						//     that EOPM might be used
711
						//     (it's not allowed in
712
						//     LZMA2).
713
						if (!eopm_is_valid) {
666
							ret = LZMA_DATA_ERROR;
714
							ret = LZMA_DATA_ERROR;
667
							goto out;
715
							goto out;
668
						}
716
						}
Lines 671-677 Link Here
671
						// LZMA1 stream with
719
						// LZMA1 stream with
672
						// end-of-payload marker.
720
						// end-of-payload marker.
673
						rc_normalize(SEQ_EOPM);
721
						rc_normalize(SEQ_EOPM);
674
						ret = LZMA_STREAM_END;
722
						ret = rc_is_finished(rc)
723
							? LZMA_STREAM_END
724
							: LZMA_DATA_ERROR;
675
						goto out;
725
						goto out;
676
					}
726
					}
677
				}
727
				}
Lines 793-801 Link Here
793
		}
843
		}
794
	}
844
	}
795
845
796
	rc_normalize(SEQ_NORMALIZE);
797
	coder->sequence = SEQ_IS_MATCH;
798
799
out:
846
out:
800
	// Save state
847
	// Save state
801
848
Lines 822-845 Link Here
822
	if (coder->uncompressed_size != LZMA_VLI_UNKNOWN) {
869
	if (coder->uncompressed_size != LZMA_VLI_UNKNOWN) {
823
		coder->uncompressed_size -= dict.pos - dict_start;
870
		coder->uncompressed_size -= dict.pos - dict_start;
824
871
825
		// Since there cannot be end of payload marker if the
872
		// If we have gotten all the output but the decoder wants
826
		// uncompressed size was known, we check here if we
873
		// to write more output, the file is corrupt. There are
827
		// finished decoding.
874
		// three SEQ values where output is produced.
828
		if (coder->uncompressed_size == 0 && ret == LZMA_OK
875
		if (coder->uncompressed_size == 0 && ret == LZMA_OK
829
				&& coder->sequence != SEQ_NORMALIZE)
876
				&& (coder->sequence == SEQ_LITERAL_WRITE
830
			ret = coder->sequence == SEQ_IS_MATCH
877
					|| coder->sequence == SEQ_SHORTREP
831
					? LZMA_STREAM_END : LZMA_DATA_ERROR;
878
					|| coder->sequence == SEQ_COPY))
879
			ret = LZMA_DATA_ERROR;
832
	}
880
	}
833
881
834
	// We can do an additional check in the range decoder to catch some
835
	// corrupted files.
836
	if (ret == LZMA_STREAM_END) {
882
	if (ret == LZMA_STREAM_END) {
837
		if (!rc_is_finished(coder->rc))
838
			ret = LZMA_DATA_ERROR;
839
840
		// Reset the range decoder so that it is ready to reinitialize
883
		// Reset the range decoder so that it is ready to reinitialize
841
		// for a new LZMA2 chunk.
884
		// for a new LZMA2 chunk.
842
		rc_reset(coder->rc);
885
		rc_reset(coder->rc);
886
		coder->sequence = SEQ_IS_MATCH;
843
	}
887
	}
844
888
845
	return ret;
889
	return ret;
Lines 848-857 Link Here
848
892
849
893
850
static void
894
static void
851
lzma_decoder_uncompressed(void *coder_ptr, lzma_vli uncompressed_size)
895
lzma_decoder_uncompressed(void *coder_ptr, lzma_vli uncompressed_size,
896
		bool allow_eopm)
852
{
897
{
853
	lzma_lzma1_decoder *coder = coder_ptr;
898
	lzma_lzma1_decoder *coder = coder_ptr;
854
	coder->uncompressed_size = uncompressed_size;
899
	coder->uncompressed_size = uncompressed_size;
900
	coder->allow_eopm = allow_eopm;
855
}
901
}
856
902
857
903
Lines 940-946 Link Here
940
986
941
extern lzma_ret
987
extern lzma_ret
942
lzma_lzma_decoder_create(lzma_lz_decoder *lz, const lzma_allocator *allocator,
988
lzma_lzma_decoder_create(lzma_lz_decoder *lz, const lzma_allocator *allocator,
943
		const void *opt, lzma_lz_options *lz_options)
989
		const lzma_options_lzma *options, lzma_lz_options *lz_options)
944
{
990
{
945
	if (lz->coder == NULL) {
991
	if (lz->coder == NULL) {
946
		lz->coder = lzma_alloc(sizeof(lzma_lzma1_decoder), allocator);
992
		lz->coder = lzma_alloc(sizeof(lzma_lzma1_decoder), allocator);
Lines 954-960 Link Here
954
1000
955
	// All dictionary sizes are OK here. LZ decoder will take care of
1001
	// All dictionary sizes are OK here. LZ decoder will take care of
956
	// the special cases.
1002
	// the special cases.
957
	const lzma_options_lzma *options = opt;
958
	lz_options->dict_size = options->dict_size;
1003
	lz_options->dict_size = options->dict_size;
959
	lz_options->preset_dict = options->preset_dict;
1004
	lz_options->preset_dict = options->preset_dict;
960
	lz_options->preset_dict_size = options->preset_dict_size;
1005
	lz_options->preset_dict_size = options->preset_dict_size;
Lines 968-983 Link Here
968
/// the LZ initialization).
1013
/// the LZ initialization).
969
static lzma_ret
1014
static lzma_ret
970
lzma_decoder_init(lzma_lz_decoder *lz, const lzma_allocator *allocator,
1015
lzma_decoder_init(lzma_lz_decoder *lz, const lzma_allocator *allocator,
971
		const void *options, lzma_lz_options *lz_options)
1016
		lzma_vli id, const void *options, lzma_lz_options *lz_options)
972
{
1017
{
973
	if (!is_lclppb_valid(options))
1018
	if (!is_lclppb_valid(options))
974
		return LZMA_PROG_ERROR;
1019
		return LZMA_PROG_ERROR;
975
1020
1021
	lzma_vli uncomp_size = LZMA_VLI_UNKNOWN;
1022
	bool allow_eopm = true;
1023
1024
	if (id == LZMA_FILTER_LZMA1EXT) {
1025
		const lzma_options_lzma *opt = options;
1026
1027
		// Only one flag is supported.
1028
		if (opt->ext_flags & ~LZMA_LZMA1EXT_ALLOW_EOPM)
1029
			return LZMA_OPTIONS_ERROR;
1030
1031
		// FIXME? Using lzma_vli instead of uint64_t is weird because
1032
		// this has nothing to do with .xz headers and variable-length
1033
		// integer encoding. On the other hand, using LZMA_VLI_UNKNOWN
1034
		// instead of UINT64_MAX is clearer when unknown size is
1035
		// meant. A problem with using lzma_vli is that now we
1036
		// allow > LZMA_VLI_MAX which is fine in this file but
1037
		// it's still confusing. Note that alone_decoder.c also
1038
		// allows > LZMA_VLI_MAX when setting uncompressed size.
1039
		uncomp_size = opt->ext_size_low
1040
				+ ((uint64_t)(opt->ext_size_high) << 32);
1041
		allow_eopm = (opt->ext_flags & LZMA_LZMA1EXT_ALLOW_EOPM) != 0
1042
				|| uncomp_size == LZMA_VLI_UNKNOWN;
1043
	}
1044
976
	return_if_error(lzma_lzma_decoder_create(
1045
	return_if_error(lzma_lzma_decoder_create(
977
			lz, allocator, options, lz_options));
1046
			lz, allocator, options, lz_options));
978
1047
979
	lzma_decoder_reset(lz->coder, options);
1048
	lzma_decoder_reset(lz->coder, options);
980
	lzma_decoder_uncompressed(lz->coder, LZMA_VLI_UNKNOWN);
1049
	lzma_decoder_uncompressed(lz->coder, uncomp_size, allow_eopm);
981
1050
982
	return LZMA_OK;
1051
	return LZMA_OK;
983
}
1052
}
(-)xz-5.2.5/src/liblzma/lzma/lzma_decoder.h (-1 / +1 lines)
Lines 42-48 Link Here
42
/// LZMA2 decoders.
42
/// LZMA2 decoders.
43
extern lzma_ret lzma_lzma_decoder_create(
43
extern lzma_ret lzma_lzma_decoder_create(
44
		lzma_lz_decoder *lz, const lzma_allocator *allocator,
44
		lzma_lz_decoder *lz, const lzma_allocator *allocator,
45
		const void *opt, lzma_lz_options *lz_options);
45
		const lzma_options_lzma *opt, lzma_lz_options *lz_options);
46
46
47
/// Gets memory usage without validating lc/lp/pb. This is used by LZMA2
47
/// Gets memory usage without validating lc/lp/pb. This is used by LZMA2
48
/// decoder, because raw LZMA2 decoding doesn't need lc/lp/pb.
48
/// decoder, because raw LZMA2 decoding doesn't need lc/lp/pb.
(-)xz-5.2.5/src/liblzma/lzma/lzma_encoder.c (-44 / +151 lines)
Lines 268-273 Link Here
268
encode_init(lzma_lzma1_encoder *coder, lzma_mf *mf)
268
encode_init(lzma_lzma1_encoder *coder, lzma_mf *mf)
269
{
269
{
270
	assert(mf_position(mf) == 0);
270
	assert(mf_position(mf) == 0);
271
	assert(coder->uncomp_size == 0);
271
272
272
	if (mf->read_pos == mf->read_limit) {
273
	if (mf->read_pos == mf->read_limit) {
273
		if (mf->action == LZMA_RUN)
274
		if (mf->action == LZMA_RUN)
Lines 283-288 Link Here
283
		mf->read_ahead = 0;
284
		mf->read_ahead = 0;
284
		rc_bit(&coder->rc, &coder->is_match[0][0], 0);
285
		rc_bit(&coder->rc, &coder->is_match[0][0], 0);
285
		rc_bittree(&coder->rc, coder->literal[0], 8, mf->buffer[0]);
286
		rc_bittree(&coder->rc, coder->literal[0], 8, mf->buffer[0]);
287
		++coder->uncomp_size;
286
	}
288
	}
287
289
288
	// Initialization is done (except if empty file).
290
	// Initialization is done (except if empty file).
Lines 317-337 Link Here
317
	if (!coder->is_initialized && !encode_init(coder, mf))
319
	if (!coder->is_initialized && !encode_init(coder, mf))
318
		return LZMA_OK;
320
		return LZMA_OK;
319
321
320
	// Get the lowest bits of the uncompressed offset from the LZ layer.
322
	// Encode pending output bytes from the range encoder.
321
	uint32_t position = mf_position(mf);
323
	// At the start of the stream, encode_init() encodes one literal.
324
	// Later there can be pending output only with LZMA1 because LZMA2
325
	// ensures that there is always enough output space. Thus when using
326
	// LZMA2, rc_encode() calls in this function will always return false.
327
	if (rc_encode(&coder->rc, out, out_pos, out_size)) {
328
		// We don't get here with LZMA2.
329
		assert(limit == UINT32_MAX);
330
		return LZMA_OK;
331
	}
322
332
323
	while (true) {
333
	// If the range encoder was flushed in an earlier call to this
324
		// Encode pending bits, if any. Calling this before encoding
334
	// function but there wasn't enough output buffer space, those
325
		// the next symbol is needed only with plain LZMA, since
335
	// bytes would have now been encoded by the above rc_encode() call
326
		// LZMA2 always provides big enough buffer to flush
336
	// and the stream has now been finished. This can only happen with
327
		// everything out from the range encoder. For the same reason,
337
	// LZMA1 as LZMA2 always provides enough output buffer space.
328
		// rc_encode() never returns true when this function is used
338
	if (coder->is_flushed) {
329
		// as part of LZMA2 encoder.
339
		assert(limit == UINT32_MAX);
330
		if (rc_encode(&coder->rc, out, out_pos, out_size)) {
340
		return LZMA_STREAM_END;
331
			assert(limit == UINT32_MAX);
341
	}
332
			return LZMA_OK;
333
		}
334
342
343
	while (true) {
335
		// With LZMA2 we need to take care that compressed size of
344
		// With LZMA2 we need to take care that compressed size of
336
		// a chunk doesn't get too big.
345
		// a chunk doesn't get too big.
337
		// FIXME? Check if this could be improved.
346
		// FIXME? Check if this could be improved.
Lines 365-402 Link Here
365
		if (coder->fast_mode)
374
		if (coder->fast_mode)
366
			lzma_lzma_optimum_fast(coder, mf, &back, &len);
375
			lzma_lzma_optimum_fast(coder, mf, &back, &len);
367
		else
376
		else
368
			lzma_lzma_optimum_normal(
377
			lzma_lzma_optimum_normal(coder, mf, &back, &len,
369
					coder, mf, &back, &len, position);
378
					(uint32_t)(coder->uncomp_size));
370
379
371
		encode_symbol(coder, mf, back, len, position);
380
		encode_symbol(coder, mf, back, len,
381
				(uint32_t)(coder->uncomp_size));
372
382
373
		position += len;
383
		// If output size limiting is active (out_limit != 0), check
374
	}
384
		// if encoding this LZMA symbol would make the output size
385
		// exceed the specified limit.
386
		if (coder->out_limit != 0 && rc_encode_dummy(
387
				&coder->rc, coder->out_limit)) {
388
			// The most recent LZMA symbol would make the output
389
			// too big. Throw it away.
390
			rc_forget(&coder->rc);
375
391
376
	if (!coder->is_flushed) {
392
			// FIXME: Tell the LZ layer to not read more input as
377
		coder->is_flushed = true;
393
			// it would be waste of time. This doesn't matter if
394
			// output-size-limited encoding is done with a single
395
			// call though.
378
396
379
		// We don't support encoding plain LZMA streams without EOPM,
397
			break;
380
		// and LZMA2 doesn't use EOPM at LZMA level.
398
		}
381
		if (limit == UINT32_MAX)
382
			encode_eopm(coder, position);
383
399
384
		// Flush the remaining bytes from the range encoder.
400
		// This symbol will be encoded so update the uncompressed size.
385
		rc_flush(&coder->rc);
401
		coder->uncomp_size += len;
386
402
387
		// Copy the remaining bytes to the output buffer. If there
403
		// Encode the LZMA symbol.
388
		// isn't enough output space, we will copy out the remaining
389
		// bytes on the next call to this function by using
390
		// the rc_encode() call in the encoding loop above.
391
		if (rc_encode(&coder->rc, out, out_pos, out_size)) {
404
		if (rc_encode(&coder->rc, out, out_pos, out_size)) {
405
			// Once again, this can only happen with LZMA1.
392
			assert(limit == UINT32_MAX);
406
			assert(limit == UINT32_MAX);
393
			return LZMA_OK;
407
			return LZMA_OK;
394
		}
408
		}
395
	}
409
	}
396
410
397
	// Make it ready for the next LZMA2 chunk.
411
	// Make the uncompressed size available to the application.
398
	coder->is_flushed = false;
412
	if (coder->uncomp_size_ptr != NULL)
413
		*coder->uncomp_size_ptr = coder->uncomp_size;
399
414
415
	// LZMA2 doesn't use EOPM at LZMA level.
416
	//
417
	// Plain LZMA streams without EOPM aren't supported except when
418
	// output size limiting is enabled.
419
	if (coder->use_eopm)
420
		encode_eopm(coder, (uint32_t)(coder->uncomp_size));
421
422
	// Flush the remaining bytes from the range encoder.
423
	rc_flush(&coder->rc);
424
425
	// Copy the remaining bytes to the output buffer. If there
426
	// isn't enough output space, we will copy out the remaining
427
	// bytes on the next call to this function.
428
	if (rc_encode(&coder->rc, out, out_pos, out_size)) {
429
		// This cannot happen with LZMA2.
430
		assert(limit == UINT32_MAX);
431
432
		coder->is_flushed = true;
433
		return LZMA_OK;
434
	}
435
400
	return LZMA_STREAM_END;
436
	return LZMA_STREAM_END;
401
}
437
}
402
438
Lines 414-419 Link Here
414
}
450
}
415
451
416
452
453
static lzma_ret
454
lzma_lzma_set_out_limit(
455
		void *coder_ptr, uint64_t *uncomp_size, uint64_t out_limit)
456
{
457
	// Minimum output size is 5 bytes but that cannot hold any output
458
	// so we use 6 bytes.
459
	if (out_limit < 6)
460
		return LZMA_BUF_ERROR;
461
462
	lzma_lzma1_encoder *coder = coder_ptr;
463
	coder->out_limit = out_limit;
464
	coder->uncomp_size_ptr = uncomp_size;
465
	coder->use_eopm = false;
466
	return LZMA_OK;
467
}
468
469
417
////////////////////
470
////////////////////
418
// Initialization //
471
// Initialization //
419
////////////////////
472
////////////////////
Lines 440-446 Link Here
440
	lz_options->dict_size = options->dict_size;
493
	lz_options->dict_size = options->dict_size;
441
	lz_options->after_size = LOOP_INPUT_MAX;
494
	lz_options->after_size = LOOP_INPUT_MAX;
442
	lz_options->match_len_max = MATCH_LEN_MAX;
495
	lz_options->match_len_max = MATCH_LEN_MAX;
443
	lz_options->nice_len = options->nice_len;
496
	lz_options->nice_len = my_max(mf_get_hash_bytes(options->mf),
497
				options->nice_len);
444
	lz_options->match_finder = options->mf;
498
	lz_options->match_finder = options->mf;
445
	lz_options->depth = options->depth;
499
	lz_options->depth = options->depth;
446
	lz_options->preset_dict = options->preset_dict;
500
	lz_options->preset_dict = options->preset_dict;
Lines 546-555 Link Here
546
600
547
601
548
extern lzma_ret
602
extern lzma_ret
549
lzma_lzma_encoder_create(void **coder_ptr,
603
lzma_lzma_encoder_create(void **coder_ptr, const lzma_allocator *allocator,
550
		const lzma_allocator *allocator,
604
		lzma_vli id, const lzma_options_lzma *options,
551
		const lzma_options_lzma *options, lzma_lz_options *lz_options)
605
		lzma_lz_options *lz_options)
552
{
606
{
607
	assert(id == LZMA_FILTER_LZMA1 || id == LZMA_FILTER_LZMA1EXT
608
			|| id == LZMA_FILTER_LZMA2);
609
553
	// Allocate lzma_lzma1_encoder if it wasn't already allocated.
610
	// Allocate lzma_lzma1_encoder if it wasn't already allocated.
554
	if (*coder_ptr == NULL) {
611
	if (*coder_ptr == NULL) {
555
		*coder_ptr = lzma_alloc(sizeof(lzma_lzma1_encoder), allocator);
612
		*coder_ptr = lzma_alloc(sizeof(lzma_lzma1_encoder), allocator);
Lines 559-568 Link Here
559
616
560
	lzma_lzma1_encoder *coder = *coder_ptr;
617
	lzma_lzma1_encoder *coder = *coder_ptr;
561
618
562
	// Set compression mode. We haven't validates the options yet,
619
	// Set compression mode. Note that we haven't validated the options
563
	// but it's OK here, since nothing bad happens with invalid
620
	// yet. Invalid options will get rejected by lzma_lzma_encoder_reset()
564
	// options in the code below, and they will get rejected by
621
	// call at the end of this function.
565
	// lzma_lzma_encoder_reset() call at the end of this function.
566
	switch (options->mode) {
622
	switch (options->mode) {
567
		case LZMA_MODE_FAST:
623
		case LZMA_MODE_FAST:
568
			coder->fast_mode = true;
624
			coder->fast_mode = true;
Lines 573-578 Link Here
573
629
574
			// Set dist_table_size.
630
			// Set dist_table_size.
575
			// Round the dictionary size up to next 2^n.
631
			// Round the dictionary size up to next 2^n.
632
			//
633
			// Currently the maximum encoder dictionary size
634
			// is 1.5 GiB due to lz_encoder.c and here we need
635
			// to be below 2 GiB to make the rounded up value
636
			// fit in an uint32_t and avoid an infite while-loop
637
			// (and undefined behavior due to a too large shift).
638
			// So do the same check as in LZ encoder,
639
			// limiting to 1.5 GiB.
640
			if (options->dict_size > (UINT32_C(1) << 30)
641
					+ (UINT32_C(1) << 29))
642
				return LZMA_OPTIONS_ERROR;
643
576
			uint32_t log_size = 0;
644
			uint32_t log_size = 0;
577
			while ((UINT32_C(1) << log_size) < options->dict_size)
645
			while ((UINT32_C(1) << log_size) < options->dict_size)
578
				++log_size;
646
				++log_size;
Lines 580-589 Link Here
580
			coder->dist_table_size = log_size * 2;
648
			coder->dist_table_size = log_size * 2;
581
649
582
			// Length encoders' price table size
650
			// Length encoders' price table size
651
			const uint32_t nice_len = my_max(
652
					mf_get_hash_bytes(options->mf),
653
					options->nice_len);
654
583
			coder->match_len_encoder.table_size
655
			coder->match_len_encoder.table_size
584
				= options->nice_len + 1 - MATCH_LEN_MIN;
656
					= nice_len + 1 - MATCH_LEN_MIN;
585
			coder->rep_len_encoder.table_size
657
			coder->rep_len_encoder.table_size
586
				= options->nice_len + 1 - MATCH_LEN_MIN;
658
					= nice_len + 1 - MATCH_LEN_MIN;
587
			break;
659
			break;
588
		}
660
		}
589
661
Lines 598-604 Link Here
598
	coder->is_initialized = options->preset_dict != NULL
670
	coder->is_initialized = options->preset_dict != NULL
599
			&& options->preset_dict_size > 0;
671
			&& options->preset_dict_size > 0;
600
	coder->is_flushed = false;
672
	coder->is_flushed = false;
673
	coder->uncomp_size = 0;
674
	coder->uncomp_size_ptr = NULL;
601
675
676
	// Output size limitting is disabled by default.
677
	coder->out_limit = 0;
678
679
	// Determine if end marker is wanted:
680
	//   - It is never used with LZMA2.
681
	//   - It is always used with LZMA_FILTER_LZMA1 (unless
682
	//     lzma_lzma_set_out_limit() is called later).
683
	//   - LZMA_FILTER_LZMA1EXT has a flag for it in the options.
684
	coder->use_eopm = (id == LZMA_FILTER_LZMA1);
685
	if (id == LZMA_FILTER_LZMA1EXT) {
686
		// Check if unsupported flags are present.
687
		if (options->ext_flags & ~LZMA_LZMA1EXT_ALLOW_EOPM)
688
			return LZMA_OPTIONS_ERROR;
689
690
		coder->use_eopm = (options->ext_flags
691
				& LZMA_LZMA1EXT_ALLOW_EOPM) != 0;
692
693
		// TODO? As long as there are no filters that change the size
694
		// of the data, it is enough to look at lzma_stream.total_in
695
		// after encoding has been finished to know the uncompressed
696
		// size of the LZMA1 stream. But in the future there could be
697
		// filters that change the size of the data and then total_in
698
		// doesn't work as the LZMA1 stream size might be different
699
		// due to another filter in the chain. The problem is simple
700
		// to solve: Add another flag to ext_flags and then set
701
		// coder->uncomp_size_ptr to the address stored in
702
		// lzma_options_lzma.reserved_ptr2 (or _ptr1).
703
	}
704
602
	set_lz_options(lz_options, options);
705
	set_lz_options(lz_options, options);
603
706
604
	return lzma_lzma_encoder_reset(coder, options);
707
	return lzma_lzma_encoder_reset(coder, options);
Lines 607-617 Link Here
607
710
608
static lzma_ret
711
static lzma_ret
609
lzma_encoder_init(lzma_lz_encoder *lz, const lzma_allocator *allocator,
712
lzma_encoder_init(lzma_lz_encoder *lz, const lzma_allocator *allocator,
610
		const void *options, lzma_lz_options *lz_options)
713
		lzma_vli id, const void *options, lzma_lz_options *lz_options)
611
{
714
{
612
	lz->code = &lzma_encode;
715
	lz->code = &lzma_encode;
716
	lz->set_out_limit = &lzma_lzma_set_out_limit;
613
	return lzma_lzma_encoder_create(
717
	return lzma_lzma_encoder_create(
614
			&lz->coder, allocator, options, lz_options);
718
			&lz->coder, allocator, id, options, lz_options);
615
}
719
}
616
720
617
721
Lines 658-663 Link Here
658
extern lzma_ret
762
extern lzma_ret
659
lzma_lzma_props_encode(const void *options, uint8_t *out)
763
lzma_lzma_props_encode(const void *options, uint8_t *out)
660
{
764
{
765
	if (options == NULL)
766
		return LZMA_PROG_ERROR;
767
661
	const lzma_options_lzma *const opt = options;
768
	const lzma_options_lzma *const opt = options;
662
769
663
	if (lzma_lzma_lclppb_encode(opt, out))
770
	if (lzma_lzma_lclppb_encode(opt, out))
(-)xz-5.2.5/src/liblzma/lzma/lzma_encoder.h (-1 / +2 lines)
Lines 40-46 Link Here
40
/// Initializes raw LZMA encoder; this is used by LZMA2.
40
/// Initializes raw LZMA encoder; this is used by LZMA2.
41
extern lzma_ret lzma_lzma_encoder_create(
41
extern lzma_ret lzma_lzma_encoder_create(
42
		void **coder_ptr, const lzma_allocator *allocator,
42
		void **coder_ptr, const lzma_allocator *allocator,
43
		const lzma_options_lzma *options, lzma_lz_options *lz_options);
43
		lzma_vli id, const lzma_options_lzma *options,
44
		lzma_lz_options *lz_options);
44
45
45
46
46
/// Resets an already initialized LZMA encoder; this is used by LZMA2.
47
/// Resets an already initialized LZMA encoder; this is used by LZMA2.
(-)xz-5.2.5/src/liblzma/lzma/lzma_encoder_private.h (+15 lines)
Lines 72-77 Link Here
72
	/// Range encoder
72
	/// Range encoder
73
	lzma_range_encoder rc;
73
	lzma_range_encoder rc;
74
74
75
	/// Uncompressed size (doesn't include possible preset dictionary)
76
	uint64_t uncomp_size;
77
78
	/// If non-zero, produce at most this much output.
79
	/// Some input may then be missing from the output.
80
	uint64_t out_limit;
81
82
	/// If the above out_limit is non-zero, *uncomp_size_ptr is set to
83
	/// the amount of uncompressed data that we were able to fit
84
	/// in the output buffer.
85
	uint64_t *uncomp_size_ptr;
86
75
	/// State
87
	/// State
76
	lzma_lzma_state state;
88
	lzma_lzma_state state;
77
89
Lines 98-103 Link Here
98
	/// True if the range encoder has been flushed, but not all bytes
110
	/// True if the range encoder has been flushed, but not all bytes
99
	/// have been written to the output buffer yet.
111
	/// have been written to the output buffer yet.
100
	bool is_flushed;
112
	bool is_flushed;
113
114
	/// True if end of payload marker will be written.
115
	bool use_eopm;
101
116
102
	uint32_t pos_mask;         ///< (1 << pos_bits) - 1
117
	uint32_t pos_mask;         ///< (1 << pos_bits) - 1
103
	uint32_t literal_context_bits;
118
	uint32_t literal_context_bits;
(-)xz-5.2.5/src/liblzma/rangecoder/range_encoder.h (-2 / +121 lines)
Lines 19-27 Link Here
19
19
20
20
21
/// Maximum number of symbols that can be put pending into lzma_range_encoder
21
/// Maximum number of symbols that can be put pending into lzma_range_encoder
22
/// structure between calls to lzma_rc_encode(). For LZMA, 52+5 is enough
22
/// structure between calls to lzma_rc_encode(). For LZMA, 48+5 is enough
23
/// (match with big distance and length followed by range encoder flush).
23
/// (match with big distance and length followed by range encoder flush).
24
#define RC_SYMBOLS_MAX 58
24
#define RC_SYMBOLS_MAX 53
25
25
26
26
27
typedef struct {
27
typedef struct {
Lines 30-35 Link Here
30
	uint32_t range;
30
	uint32_t range;
31
	uint8_t cache;
31
	uint8_t cache;
32
32
33
	/// Number of bytes written out by rc_encode() -> rc_shift_low()
34
	uint64_t out_total;
35
33
	/// Number of symbols in the tables
36
	/// Number of symbols in the tables
34
	size_t count;
37
	size_t count;
35
38
Lines 58-69 Link Here
58
	rc->cache_size = 1;
61
	rc->cache_size = 1;
59
	rc->range = UINT32_MAX;
62
	rc->range = UINT32_MAX;
60
	rc->cache = 0;
63
	rc->cache = 0;
64
	rc->out_total = 0;
61
	rc->count = 0;
65
	rc->count = 0;
62
	rc->pos = 0;
66
	rc->pos = 0;
63
}
67
}
64
68
65
69
66
static inline void
70
static inline void
71
rc_forget(lzma_range_encoder *rc)
72
{
73
	// This must not be called when rc_encode() is partially done.
74
	assert(rc->pos == 0);
75
	rc->count = 0;
76
}
77
78
79
static inline void
67
rc_bit(lzma_range_encoder *rc, probability *prob, uint32_t bit)
80
rc_bit(lzma_range_encoder *rc, probability *prob, uint32_t bit)
68
{
81
{
69
	rc->symbols[rc->count] = bit;
82
	rc->symbols[rc->count] = bit;
Lines 132-137 Link Here
132
145
133
			out[*out_pos] = rc->cache + (uint8_t)(rc->low >> 32);
146
			out[*out_pos] = rc->cache + (uint8_t)(rc->low >> 32);
134
			++*out_pos;
147
			++*out_pos;
148
			++rc->out_total;
135
			rc->cache = 0xFF;
149
			rc->cache = 0xFF;
136
150
137
		} while (--rc->cache_size != 0);
151
		} while (--rc->cache_size != 0);
Lines 146-152 Link Here
146
}
160
}
147
161
148
162
163
// NOTE: The last two arguments are uint64_t instead of size_t because in
164
// the dummy version these refer to the size of the whole range-encoded
165
// output stream, not just to the currently available output buffer space.
149
static inline bool
166
static inline bool
167
rc_shift_low_dummy(uint64_t *low, uint64_t *cache_size, uint8_t *cache,
168
		uint64_t *out_pos, uint64_t out_size)
169
{
170
	if ((uint32_t)(*low) < (uint32_t)(0xFF000000)
171
			|| (uint32_t)(*low >> 32) != 0) {
172
		do {
173
			if (*out_pos == out_size)
174
				return true;
175
176
			++*out_pos;
177
			*cache = 0xFF;
178
179
		} while (--*cache_size != 0);
180
181
		*cache = (*low >> 24) & 0xFF;
182
	}
183
184
	++*cache_size;
185
	*low = (*low & 0x00FFFFFF) << RC_SHIFT_BITS;
186
187
	return false;
188
}
189
190
191
static inline bool
150
rc_encode(lzma_range_encoder *rc,
192
rc_encode(lzma_range_encoder *rc,
151
		uint8_t *out, size_t *out_pos, size_t out_size)
193
		uint8_t *out, size_t *out_pos, size_t out_size)
152
{
194
{
Lines 217-222 Link Here
217
259
218
	rc->count = 0;
260
	rc->count = 0;
219
	rc->pos = 0;
261
	rc->pos = 0;
262
263
	return false;
264
}
265
266
267
static inline bool
268
rc_encode_dummy(const lzma_range_encoder *rc, uint64_t out_limit)
269
{
270
	assert(rc->count <= RC_SYMBOLS_MAX);
271
272
	uint64_t low = rc->low;
273
	uint64_t cache_size = rc->cache_size;
274
	uint32_t range = rc->range;
275
	uint8_t cache = rc->cache;
276
	uint64_t out_pos = rc->out_total;
277
278
	size_t pos = rc->pos;
279
280
	while (true) {
281
		// Normalize
282
		if (range < RC_TOP_VALUE) {
283
			if (rc_shift_low_dummy(&low, &cache_size, &cache,
284
					&out_pos, out_limit))
285
				return true;
286
287
			range <<= RC_SHIFT_BITS;
288
		}
289
290
		// This check is here because the normalization above must
291
		// be done before flushing the last bytes.
292
		if (pos == rc->count)
293
			break;
294
295
		// Encode a bit
296
		switch (rc->symbols[pos]) {
297
		case RC_BIT_0: {
298
			probability prob = *rc->probs[pos];
299
			range = (range >> RC_BIT_MODEL_TOTAL_BITS)
300
					* prob;
301
			break;
302
		}
303
304
		case RC_BIT_1: {
305
			probability prob = *rc->probs[pos];
306
			const uint32_t bound = prob * (range
307
					>> RC_BIT_MODEL_TOTAL_BITS);
308
			low += bound;
309
			range -= bound;
310
			break;
311
		}
312
313
		case RC_DIRECT_0:
314
			range >>= 1;
315
			break;
316
317
		case RC_DIRECT_1:
318
			range >>= 1;
319
			low += range;
320
			break;
321
322
		case RC_FLUSH:
323
		default:
324
			assert(0);
325
			break;
326
		}
327
328
		++pos;
329
	}
330
331
	// Flush the last bytes. This isn't in rc->symbols[] so we do
332
	// it after the above loop to take into account the size of
333
	// the flushing that will be done at the end of the stream.
334
	for (pos = 0; pos < 5; ++pos) {
335
		if (rc_shift_low_dummy(&low, &cache_size,
336
				&cache, &out_pos, out_limit))
337
			return true;
338
	}
220
339
221
	return false;
340
	return false;
222
}
341
}
(-)xz-5.2.5/src/liblzma/simple/Makefile.inc (+4 lines)
Lines 42-47 Link Here
42
liblzma_la_SOURCES += simple/armthumb.c
42
liblzma_la_SOURCES += simple/armthumb.c
43
endif
43
endif
44
44
45
if COND_FILTER_ARM64
46
liblzma_la_SOURCES += simple/arm64.c
47
endif
48
45
if COND_FILTER_SPARC
49
if COND_FILTER_SPARC
46
liblzma_la_SOURCES += simple/sparc.c
50
liblzma_la_SOURCES += simple/sparc.c
47
endif
51
endif
(-)xz-5.2.5/src/liblzma/simple/arm.c (+4 lines)
Lines 53-58 Link Here
53
}
53
}
54
54
55
55
56
#ifdef HAVE_ENCODER_ARM
56
extern lzma_ret
57
extern lzma_ret
57
lzma_simple_arm_encoder_init(lzma_next_coder *next,
58
lzma_simple_arm_encoder_init(lzma_next_coder *next,
58
		const lzma_allocator *allocator,
59
		const lzma_allocator *allocator,
Lines 60-67 Link Here
60
{
61
{
61
	return arm_coder_init(next, allocator, filters, true);
62
	return arm_coder_init(next, allocator, filters, true);
62
}
63
}
64
#endif
63
65
64
66
67
#ifdef HAVE_DECODER_ARM
65
extern lzma_ret
68
extern lzma_ret
66
lzma_simple_arm_decoder_init(lzma_next_coder *next,
69
lzma_simple_arm_decoder_init(lzma_next_coder *next,
67
		const lzma_allocator *allocator,
70
		const lzma_allocator *allocator,
Lines 69-71 Link Here
69
{
72
{
70
	return arm_coder_init(next, allocator, filters, false);
73
	return arm_coder_init(next, allocator, filters, false);
71
}
74
}
75
#endif
(-)xz-5.2.5/src/liblzma/simple/armthumb.c (+4 lines)
Lines 58-63 Link Here
58
}
58
}
59
59
60
60
61
#ifdef HAVE_ENCODER_ARMTHUMB
61
extern lzma_ret
62
extern lzma_ret
62
lzma_simple_armthumb_encoder_init(lzma_next_coder *next,
63
lzma_simple_armthumb_encoder_init(lzma_next_coder *next,
63
		const lzma_allocator *allocator,
64
		const lzma_allocator *allocator,
Lines 65-72 Link Here
65
{
66
{
66
	return armthumb_coder_init(next, allocator, filters, true);
67
	return armthumb_coder_init(next, allocator, filters, true);
67
}
68
}
69
#endif
68
70
69
71
72
#ifdef HAVE_DECODER_ARMTHUMB
70
extern lzma_ret
73
extern lzma_ret
71
lzma_simple_armthumb_decoder_init(lzma_next_coder *next,
74
lzma_simple_armthumb_decoder_init(lzma_next_coder *next,
72
		const lzma_allocator *allocator,
75
		const lzma_allocator *allocator,
Lines 74-76 Link Here
74
{
77
{
75
	return armthumb_coder_init(next, allocator, filters, false);
78
	return armthumb_coder_init(next, allocator, filters, false);
76
}
79
}
80
#endif
(-)xz-5.2.5/src/liblzma/simple/ia64.c (+4 lines)
Lines 94-99 Link Here
94
}
94
}
95
95
96
96
97
#ifdef HAVE_ENCODER_IA64
97
extern lzma_ret
98
extern lzma_ret
98
lzma_simple_ia64_encoder_init(lzma_next_coder *next,
99
lzma_simple_ia64_encoder_init(lzma_next_coder *next,
99
		const lzma_allocator *allocator,
100
		const lzma_allocator *allocator,
Lines 101-108 Link Here
101
{
102
{
102
	return ia64_coder_init(next, allocator, filters, true);
103
	return ia64_coder_init(next, allocator, filters, true);
103
}
104
}
105
#endif
104
106
105
107
108
#ifdef HAVE_DECODER_IA64
106
extern lzma_ret
109
extern lzma_ret
107
lzma_simple_ia64_decoder_init(lzma_next_coder *next,
110
lzma_simple_ia64_decoder_init(lzma_next_coder *next,
108
		const lzma_allocator *allocator,
111
		const lzma_allocator *allocator,
Lines 110-112 Link Here
110
{
113
{
111
	return ia64_coder_init(next, allocator, filters, false);
114
	return ia64_coder_init(next, allocator, filters, false);
112
}
115
}
116
#endif
(-)xz-5.2.5/src/liblzma/simple/powerpc.c (+4 lines)
Lines 58-63 Link Here
58
}
58
}
59
59
60
60
61
#ifdef HAVE_ENCODER_POWERPC
61
extern lzma_ret
62
extern lzma_ret
62
lzma_simple_powerpc_encoder_init(lzma_next_coder *next,
63
lzma_simple_powerpc_encoder_init(lzma_next_coder *next,
63
		const lzma_allocator *allocator,
64
		const lzma_allocator *allocator,
Lines 65-72 Link Here
65
{
66
{
66
	return powerpc_coder_init(next, allocator, filters, true);
67
	return powerpc_coder_init(next, allocator, filters, true);
67
}
68
}
69
#endif
68
70
69
71
72
#ifdef HAVE_DECODER_POWERPC
70
extern lzma_ret
73
extern lzma_ret
71
lzma_simple_powerpc_decoder_init(lzma_next_coder *next,
74
lzma_simple_powerpc_decoder_init(lzma_next_coder *next,
72
		const lzma_allocator *allocator,
75
		const lzma_allocator *allocator,
Lines 74-76 Link Here
74
{
77
{
75
	return powerpc_coder_init(next, allocator, filters, false);
78
	return powerpc_coder_init(next, allocator, filters, false);
76
}
79
}
80
#endif
(-)xz-5.2.5/src/liblzma/simple/simple_coder.c (-2 / +4 lines)
Lines 139-147 Link Here
139
				return ret;
139
				return ret;
140
		}
140
		}
141
141
142
		// Filter out[].
142
		// Filter out[] unless there is nothing to filter.
143
		// This way we avoid null pointer + 0 (undefined behavior)
144
		// when out == NULL.
143
		const size_t size = *out_pos - out_start;
145
		const size_t size = *out_pos - out_start;
144
		const size_t filtered = call_filter(
146
		const size_t filtered = size == 0 ? 0 : call_filter(
145
				coder, out + out_start, size);
147
				coder, out + out_start, size);
146
148
147
		const size_t unfiltered = size - filtered;
149
		const size_t unfiltered = size - filtered;
(-)xz-5.2.5/src/liblzma/simple/simple_coder.h (+9 lines)
Lines 61-66 Link Here
61
		const lzma_filter_info *filters);
61
		const lzma_filter_info *filters);
62
62
63
63
64
extern lzma_ret lzma_simple_arm64_encoder_init(lzma_next_coder *next,
65
               const lzma_allocator *allocator,
66
               const lzma_filter_info *filters);
67
68
extern lzma_ret lzma_simple_arm64_decoder_init(lzma_next_coder *next,
69
               const lzma_allocator *allocator,
70
               const lzma_filter_info *filters);
71
72
64
extern lzma_ret lzma_simple_sparc_encoder_init(lzma_next_coder *next,
73
extern lzma_ret lzma_simple_sparc_encoder_init(lzma_next_coder *next,
65
		const lzma_allocator *allocator,
74
		const lzma_allocator *allocator,
66
		const lzma_filter_info *filters);
75
		const lzma_filter_info *filters);
(-)xz-5.2.5/src/liblzma/simple/sparc.c (+4 lines)
Lines 65-70 Link Here
65
}
65
}
66
66
67
67
68
#ifdef HAVE_ENCODER_SPARC
68
extern lzma_ret
69
extern lzma_ret
69
lzma_simple_sparc_encoder_init(lzma_next_coder *next,
70
lzma_simple_sparc_encoder_init(lzma_next_coder *next,
70
		const lzma_allocator *allocator,
71
		const lzma_allocator *allocator,
Lines 72-79 Link Here
72
{
73
{
73
	return sparc_coder_init(next, allocator, filters, true);
74
	return sparc_coder_init(next, allocator, filters, true);
74
}
75
}
76
#endif
75
77
76
78
79
#ifdef HAVE_DECODER_SPARC
77
extern lzma_ret
80
extern lzma_ret
78
lzma_simple_sparc_decoder_init(lzma_next_coder *next,
81
lzma_simple_sparc_decoder_init(lzma_next_coder *next,
79
		const lzma_allocator *allocator,
82
		const lzma_allocator *allocator,
Lines 81-83 Link Here
81
{
84
{
82
	return sparc_coder_init(next, allocator, filters, false);
85
	return sparc_coder_init(next, allocator, filters, false);
83
}
86
}
87
#endif
(-)xz-5.2.5/src/liblzma/simple/x86.c (+4 lines)
Lines 141-146 Link Here
141
}
141
}
142
142
143
143
144
#ifdef HAVE_ENCODER_X86
144
extern lzma_ret
145
extern lzma_ret
145
lzma_simple_x86_encoder_init(lzma_next_coder *next,
146
lzma_simple_x86_encoder_init(lzma_next_coder *next,
146
		const lzma_allocator *allocator,
147
		const lzma_allocator *allocator,
Lines 148-155 Link Here
148
{
149
{
149
	return x86_coder_init(next, allocator, filters, true);
150
	return x86_coder_init(next, allocator, filters, true);
150
}
151
}
152
#endif
151
153
152
154
155
#ifdef HAVE_DECODER_X86
153
extern lzma_ret
156
extern lzma_ret
154
lzma_simple_x86_decoder_init(lzma_next_coder *next,
157
lzma_simple_x86_decoder_init(lzma_next_coder *next,
155
		const lzma_allocator *allocator,
158
		const lzma_allocator *allocator,
Lines 157-159 Link Here
157
{
160
{
158
	return x86_coder_init(next, allocator, filters, false);
161
	return x86_coder_init(next, allocator, filters, false);
159
}
162
}
163
#endif
(-)xz-5.2.5/src/liblzma/validate_map.sh (-8 / +105 lines)
Lines 2-9 Link Here
2
2
3
###############################################################################
3
###############################################################################
4
#
4
#
5
# Check liblzma.map for certain types of errors
5
# Check liblzma_*.map for certain types of errors.
6
#
6
#
7
# liblzma_generic.map is for FreeBSD and Solaris and possibly others
8
# except GNU/Linux.
9
#
10
# liblzma_linux.map is for GNU/Linux only. This and the matching extra code
11
# in the .c files make liblzma >= 5.2.7 compatible with binaries that were
12
# linked against ill-patched liblzma in RHEL/CentOS 7. By providing the
13
# compatibility in official XZ Utils release will hopefully prevent people
14
# from further copying the broken patch to other places when they want
15
# compatibility with binaries linked on RHEL/CentOS 7. The long version
16
# of the story:
17
#
18
#     RHEL/CentOS 7 shipped with 5.1.2alpha, including the threaded
19
#     encoder that is behind #ifdef LZMA_UNSTABLE in the API headers.
20
#     In 5.1.2alpha these symbols are under XZ_5.1.2alpha in liblzma.map.
21
#     API/ABI compatibility tracking isn't done between development
22
#     releases so newer releases didn't have XZ_5.1.2alpha anymore.
23
#
24
#     Later RHEL/CentOS 7 updated xz to 5.2.2 but they wanted to keep
25
#     the exported symbols compatible with 5.1.2alpha. After checking
26
#     the ABI changes it turned out that >= 5.2.0 ABI is backward
27
#     compatible with the threaded encoder functions from 5.1.2alpha
28
#     (but not vice versa as fixes and extensions to these functions
29
#     were made between 5.1.2alpha and 5.2.0).
30
#
31
#     In RHEL/CentOS 7, XZ Utils 5.2.2 was patched with
32
#     xz-5.2.2-compat-libs.patch to modify liblzma.map:
33
#
34
#       - XZ_5.1.2alpha was added with lzma_stream_encoder_mt and
35
#         lzma_stream_encoder_mt_memusage. This matched XZ Utils 5.1.2alpha.
36
#
37
#       - XZ_5.2 was replaced with XZ_5.2.2. It is clear that this was
38
#         an error; the intention was to keep using XZ_5.2 (XZ_5.2.2
39
#         has never been used in XZ Utils). So XZ_5.2.2 lists all
40
#         symbols that were listed under XZ_5.2 before the patch.
41
#         lzma_stream_encoder_mt and _mt_memusage are included too so
42
#         they are listed both here and under XZ_5.1.2alpha.
43
#
44
#     The patch didn't add any __asm__(".symver ...") lines to the .c
45
#     files. Thus the resulting liblzma.so exports the threaded encoder
46
#     functions under XZ_5.1.2alpha only. Listing the two functions
47
#     also under XZ_5.2.2 in liblzma.map has no effect without
48
#     matching .symver lines.
49
#
50
#     The lack of XZ_5.2 in RHEL/CentOS 7 means that binaries linked
51
#     against unpatched XZ Utils 5.2.x won't run on RHEL/CentOS 7.
52
#     This is unfortunate but this alone isn't too bad as the problem
53
#     is contained within RHEL/CentOS 7 and doesn't affect users
54
#     of other distributions. It could also be fixed internally in
55
#     RHEL/CentOS 7.
56
#
57
#     The second problem is more serious: In XZ Utils 5.2.2 the API
58
#     headers don't have #ifdef LZMA_UNSTABLE for obvious reasons.
59
#     This is true in RHEL/CentOS 7 version too. Thus now programs
60
#     using new APIs can be compiled without an extra #define. However,
61
#     the programs end up depending on symbol version XZ_5.1.2alpha
62
#     (and possibly also XZ_5.2.2) instead of XZ_5.2 as they would
63
#     with an unpatched XZ Utils 5.2.2. This means that such binaries
64
#     won't run on other distributions shipping XZ Utils >= 5.2.0 as
65
#     they don't provide XZ_5.1.2alpha or XZ_5.2.2; they only provide
66
#     XZ_5.2 (and XZ_5.0). (This includes RHEL/CentOS 8 as the patch
67
#     luckily isn't included there anymore with XZ Utils 5.2.4.)
68
#
69
#     Binaries built by RHEL/CentOS 7 users get distributed and then
70
#     people wonder why they don't run on some other distribution.
71
#     Seems that people have found out about the patch and been copying
72
#     it to some build scripts, seemingly curing the symptoms but
73
#     actually spreading the illness further and outside RHEL/CentOS 7.
74
#     Adding compatibility in an official XZ Utils release should work
75
#     as a vaccine against this ill patch and stop it from spreading.
76
#     The vaccine is kept GNU/Linux-only as other OSes should be immune
77
#     (hopefully it hasn't spread via some build script to other OSes).
78
#
7
# Author: Lasse Collin
79
# Author: Lasse Collin
8
#
80
#
9
# This file has been put into the public domain.
81
# This file has been put into the public domain.
Lines 18-28 Link Here
18
90
19
cd "$(dirname "$0")"
91
cd "$(dirname "$0")"
20
92
21
# Get the list of symbols that aren't defined in liblzma.map.
93
# Get the list of symbols that aren't defined in liblzma_generic.map.
22
SYMS=$(sed -n 's/^extern LZMA_API([^)]*) \([a-z0-9_]*\)(.*$/\1;/p' \
94
SYMS=$(sed -n 's/^extern LZMA_API([^)]*) \([a-z0-9_]*\)(.*$/\1;/p' \
23
		api/lzma/*.h \
95
		api/lzma/*.h \
24
	| sort \
96
	| sort \
25
	| grep -Fve "$(sed '/[{}:*]/d;/^$/d;s/^	//' liblzma.map)")
97
	| grep -Fve "$(sed '/[{}:*]/d;/^$/d;s/^	//' liblzma_generic.map)")
26
98
27
# Check that there are no old alpha or beta versions listed.
99
# Check that there are no old alpha or beta versions listed.
28
VER=$(cd ../.. && sh build-aux/version.sh)
100
VER=$(cd ../.. && sh build-aux/version.sh)
Lines 30-50 Link Here
30
case $VER in
102
case $VER in
31
	*alpha | *beta)
103
	*alpha | *beta)
32
		NAMES=$(sed -n 's/^.*XZ_\([^ ]*\)\(alpha\|beta\) .*$/\1\2/p' \
104
		NAMES=$(sed -n 's/^.*XZ_\([^ ]*\)\(alpha\|beta\) .*$/\1\2/p' \
33
			liblzma.map | grep -Fv "$VER")
105
			liblzma_generic.map | grep -Fv "$VER")
34
		;;
106
		;;
35
esac
107
esac
36
108
37
# Check for duplicate lines. It can catch missing dependencies.
109
# Check for duplicate lines. It can catch missing dependencies.
38
DUPS=$(sort liblzma.map | sed '/^$/d;/^global:$/d' | uniq -d)
110
DUPS=$(sort liblzma_generic.map | sed '/^$/d;/^global:$/d' | uniq -d)
39
111
112
# Check that liblzma_linux.map is in sync with liblzma_generic.map.
113
# The RHEL/CentOS 7 compatibility symbols are in a fixed location
114
# so it makes it easy to remove them for comparison with liblzma_generic.map.
115
#
116
# NOTE: Putting XZ_5.2 before the compatibility symbols XZ_5.1.2alpha
117
# and XZ_5.2.2 in liblzma_linux.map is important: If liblzma_linux.map is
118
# incorrectly used without #define HAVE_SYMBOL_VERSIONS_LINUX, only the first
119
# occurrence of each function name will be used from liblzma_linux.map;
120
# the rest are ignored by the linker. Thus having XZ_5.2 before the
121
# compatibility symbols means that @@XZ_5.2 will be used for the symbols
122
# listed under XZ_5.2 {...} and the same function names later in
123
# the file under XZ_5.1.2alpha {...} and XZ_5.2.2 {...} will be
124
# ignored (@XZ_5.1.2alpha or @XZ_5.2.2 won't be added at all when
125
# the #define HAVE_SYMBOL_VERSIONS_LINUX isn't used).
126
IN_SYNC=
127
if ! sed '109,123d' liblzma_linux.map \
128
		| cmp -s - liblzma_generic.map; then
129
	IN_SYNC=no
130
fi
131
40
# Print error messages if needed.
132
# Print error messages if needed.
41
if test -n "$SYMS$NAMES$DUPS"; then
133
if test -n "$SYMS$NAMES$DUPS$IN_SYNC"; then
42
	echo
134
	echo
43
	echo 'validate_map.sh found problems from liblzma.map:'
135
	echo 'validate_map.sh found problems from liblzma_*.map:'
44
	echo
136
	echo
45
137
46
	if test -n "$SYMS"; then
138
	if test -n "$SYMS"; then
47
		echo 'liblzma.map lacks the following symbols:'
139
		echo 'liblzma_generic.map lacks the following symbols:'
48
		echo "$SYMS"
140
		echo "$SYMS"
49
		echo
141
		echo
50
	fi
142
	fi
Lines 58-63 Link Here
58
	if test -n "$DUPS"; then
150
	if test -n "$DUPS"; then
59
		echo 'Duplicate lines:'
151
		echo 'Duplicate lines:'
60
		echo "$DUPS"
152
		echo "$DUPS"
153
		echo
154
	fi
155
156
	if test -n "$IN_SYNC"; then
157
		echo "liblzma_generic.map and liblzma_linux.map aren't in sync"
61
		echo
158
		echo
62
	fi
159
	fi
63
160
(-)xz-5.2.5/src/lzmainfo/Makefile.in (-5 / +8 lines)
Lines 1-7 Link Here
1
# Makefile.in generated by automake 1.16.1 from Makefile.am.
1
# Makefile.in generated by automake 1.16.5 from Makefile.am.
2
# @configure_input@
2
# @configure_input@
3
3
4
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
4
# Copyright (C) 1994-2021 Free Software Foundation, Inc.
5
5
6
# This Makefile.in is free software; the Free Software Foundation
6
# This Makefile.in is free software; the Free Software Foundation
7
# gives unlimited permission to copy and/or distribute it,
7
# gives unlimited permission to copy and/or distribute it,
Lines 224-231 Link Here
224
  unique=`for i in $$list; do \
224
  unique=`for i in $$list; do \
225
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
225
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
226
  done | $(am__uniquify_input)`
226
  done | $(am__uniquify_input)`
227
ETAGS = etags
228
CTAGS = ctags
229
am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \
227
am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \
230
	$(top_srcdir)/build-aux/depcomp
228
	$(top_srcdir)/build-aux/depcomp
231
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
229
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
Lines 249-254 Link Here
249
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
247
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
250
CPP = @CPP@
248
CPP = @CPP@
251
CPPFLAGS = @CPPFLAGS@
249
CPPFLAGS = @CPPFLAGS@
250
CSCOPE = @CSCOPE@
251
CTAGS = @CTAGS@
252
CYGPATH_W = @CYGPATH_W@
252
CYGPATH_W = @CYGPATH_W@
253
DEFS = @DEFS@
253
DEFS = @DEFS@
254
DEPDIR = @DEPDIR@
254
DEPDIR = @DEPDIR@
Lines 259-266 Link Here
259
ECHO_N = @ECHO_N@
259
ECHO_N = @ECHO_N@
260
ECHO_T = @ECHO_T@
260
ECHO_T = @ECHO_T@
261
EGREP = @EGREP@
261
EGREP = @EGREP@
262
ETAGS = @ETAGS@
262
EXEEXT = @EXEEXT@
263
EXEEXT = @EXEEXT@
263
FGREP = @FGREP@
264
FGREP = @FGREP@
265
FILECMD = @FILECMD@
264
GETOPT_H = @GETOPT_H@
266
GETOPT_H = @GETOPT_H@
265
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
267
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
266
GMSGFMT = @GMSGFMT@
268
GMSGFMT = @GMSGFMT@
Lines 313-318 Link Here
313
PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@
315
PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@
314
PTHREAD_CC = @PTHREAD_CC@
316
PTHREAD_CC = @PTHREAD_CC@
315
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
317
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
318
PTHREAD_CXX = @PTHREAD_CXX@
316
PTHREAD_LIBS = @PTHREAD_LIBS@
319
PTHREAD_LIBS = @PTHREAD_LIBS@
317
RANLIB = @RANLIB@
320
RANLIB = @RANLIB@
318
RC = @RC@
321
RC = @RC@
Lines 371-376 Link Here
371
prefix = @prefix@
374
prefix = @prefix@
372
program_transform_name = @program_transform_name@
375
program_transform_name = @program_transform_name@
373
psdir = @psdir@
376
psdir = @psdir@
377
runstatedir = @runstatedir@
374
sbindir = @sbindir@
378
sbindir = @sbindir@
375
sharedstatedir = @sharedstatedir@
379
sharedstatedir = @sharedstatedir@
376
srcdir = @srcdir@
380
srcdir = @srcdir@
Lines 657-663 Link Here
657
661
658
distclean-tags:
662
distclean-tags:
659
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
663
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
660
661
distdir: $(BUILT_SOURCES)
664
distdir: $(BUILT_SOURCES)
662
	$(MAKE) $(AM_MAKEFLAGS) distdir-am
665
	$(MAKE) $(AM_MAKEFLAGS) distdir-am
663
666
(-)xz-5.2.5/src/scripts/Makefile.in (-3 / +8 lines)
Lines 1-7 Link Here
1
# Makefile.in generated by automake 1.16.1 from Makefile.am.
1
# Makefile.in generated by automake 1.16.5 from Makefile.am.
2
# @configure_input@
2
# @configure_input@
3
3
4
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
4
# Copyright (C) 1994-2021 Free Software Foundation, Inc.
5
5
6
# This Makefile.in is free software; the Free Software Foundation
6
# This Makefile.in is free software; the Free Software Foundation
7
# gives unlimited permission to copy and/or distribute it,
7
# gives unlimited permission to copy and/or distribute it,
Lines 199-204 Link Here
199
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
199
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
200
CPP = @CPP@
200
CPP = @CPP@
201
CPPFLAGS = @CPPFLAGS@
201
CPPFLAGS = @CPPFLAGS@
202
CSCOPE = @CSCOPE@
203
CTAGS = @CTAGS@
202
CYGPATH_W = @CYGPATH_W@
204
CYGPATH_W = @CYGPATH_W@
203
DEFS = @DEFS@
205
DEFS = @DEFS@
204
DEPDIR = @DEPDIR@
206
DEPDIR = @DEPDIR@
Lines 209-216 Link Here
209
ECHO_N = @ECHO_N@
211
ECHO_N = @ECHO_N@
210
ECHO_T = @ECHO_T@
212
ECHO_T = @ECHO_T@
211
EGREP = @EGREP@
213
EGREP = @EGREP@
214
ETAGS = @ETAGS@
212
EXEEXT = @EXEEXT@
215
EXEEXT = @EXEEXT@
213
FGREP = @FGREP@
216
FGREP = @FGREP@
217
FILECMD = @FILECMD@
214
GETOPT_H = @GETOPT_H@
218
GETOPT_H = @GETOPT_H@
215
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
219
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
216
GMSGFMT = @GMSGFMT@
220
GMSGFMT = @GMSGFMT@
Lines 263-268 Link Here
263
PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@
267
PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@
264
PTHREAD_CC = @PTHREAD_CC@
268
PTHREAD_CC = @PTHREAD_CC@
265
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
269
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
270
PTHREAD_CXX = @PTHREAD_CXX@
266
PTHREAD_LIBS = @PTHREAD_LIBS@
271
PTHREAD_LIBS = @PTHREAD_LIBS@
267
RANLIB = @RANLIB@
272
RANLIB = @RANLIB@
268
RC = @RC@
273
RC = @RC@
Lines 321-326 Link Here
321
prefix = @prefix@
326
prefix = @prefix@
322
program_transform_name = @program_transform_name@
327
program_transform_name = @program_transform_name@
323
psdir = @psdir@
328
psdir = @psdir@
329
runstatedir = @runstatedir@
324
sbindir = @sbindir@
330
sbindir = @sbindir@
325
sharedstatedir = @sharedstatedir@
331
sharedstatedir = @sharedstatedir@
326
srcdir = @srcdir@
332
srcdir = @srcdir@
Lines 462-468 Link Here
462
ctags CTAGS:
468
ctags CTAGS:
463
469
464
cscope cscopelist:
470
cscope cscopelist:
465
466
471
467
distdir: $(BUILT_SOURCES)
472
distdir: $(BUILT_SOURCES)
468
	$(MAKE) $(AM_MAKEFLAGS) distdir-am
473
	$(MAKE) $(AM_MAKEFLAGS) distdir-am
(-)xz-5.2.5/src/scripts/xzdiff.1 (-3 / +5 lines)
Lines 6-12 Link Here
6
.\"
6
.\"
7
.\" License: GNU GPLv2+
7
.\" License: GNU GPLv2+
8
.\"
8
.\"
9
.TH XZDIFF 1 "2011-03-19" "Tukaani" "XZ Utils"
9
.TH XZDIFF 1 "2021-06-04" "Tukaani" "XZ Utils"
10
.SH NAME
10
.SH NAME
11
xzcmp, xzdiff, lzcmp, lzdiff \- compare compressed files
11
xzcmp, xzdiff, lzcmp, lzdiff \- compare compressed files
12
.SH SYNOPSIS
12
.SH SYNOPSIS
Lines 34-41 Link Here
34
.BR lzma (1),
34
.BR lzma (1),
35
.BR gzip (1),
35
.BR gzip (1),
36
.BR bzip2 (1),
36
.BR bzip2 (1),
37
.BR lzop (1),
37
or
38
or
38
.BR lzop (1).
39
.BR zstd (1).
39
All options specified are passed directly to
40
All options specified are passed directly to
40
.BR cmp (1)
41
.BR cmp (1)
41
or
42
or
Lines 54-60 Link Here
54
.BR cmp (1)
55
.BR cmp (1)
55
or
56
or
56
.BR diff (1)
57
.BR diff (1)
57
is preserved.
58
is preserved unless a decompression error occurs; then exit status is 2.
58
.PP
59
.PP
59
The names
60
The names
60
.B lzcmp
61
.B lzcmp
Lines 68-73 Link Here
68
.BR gzip (1),
69
.BR gzip (1),
69
.BR bzip2 (1),
70
.BR bzip2 (1),
70
.BR lzop (1),
71
.BR lzop (1),
72
.BR zstd (1),
71
.BR zdiff (1)
73
.BR zdiff (1)
72
.SH BUGS
74
.SH BUGS
73
Messages from the
75
Messages from the
(-)xz-5.2.5/src/scripts/xzdiff.in (-25 / +39 lines)
Lines 51-57 Link Here
51
while :; do
51
while :; do
52
  case $1 in
52
  case $1 in
53
    --h*) printf '%s\n' "$usage" || exit 2; exit;;
53
    --h*) printf '%s\n' "$usage" || exit 2; exit;;
54
    --v*) echo "$version" || exit 2; exit;;
54
    --v*) printf '%s\n' "$version" || exit 2; exit;;
55
    --) shift; break;;
55
    --) shift; break;;
56
    -*\'*) cmp="$cmp '"`printf '%sX\n' "$1" | sed "$escape"`;;
56
    -*\'*) cmp="$cmp '"`printf '%sX\n' "$1" | sed "$escape"`;;
57
    -?*) cmp="$cmp '$1'";;
57
    -?*) cmp="$cmp '$1'";;
Lines 65-78 Link Here
65
  test "X$file" = X- || <"$file" || exit 2
65
  test "X$file" = X- || <"$file" || exit 2
66
done
66
done
67
67
68
xz1=$xz
68
# xz needs -qQ to ignore warnings like unsupported check type.
69
xz2=$xz
69
xz1="$xz -qQ"
70
xz2="$xz -qQ"
70
xz_status=0
71
xz_status=0
71
exec 3>&1
72
exec 3>&1
72
73
73
if test $# -eq 1; then
74
if test $# -eq 1; then
74
  case $1 in
75
  case $1 in
75
    *[-.]xz | *[-.]lzma | *.t[lx]z)
76
    *[-.]xz | *[-.]lzma | *[-.]lz | *.t[lx]z)
76
      ;;
77
      ;;
77
    *[-.]bz2 | *.tbz | *.tbz2)
78
    *[-.]bz2 | *.tbz | *.tbz2)
78
      xz1=bzip2;;
79
      xz1=bzip2;;
Lines 80-98 Link Here
80
      xz1=gzip;;
81
      xz1=gzip;;
81
    *[-.]lzo | *.tzo)
82
    *[-.]lzo | *.tzo)
82
      xz1=lzop;;
83
      xz1=lzop;;
84
    *[-.]zst | *.tzst)
85
      xz1='zstd -q';;
83
    *)
86
    *)
84
      echo >&2 "$0: $1: Unknown compressed file name suffix"
87
      printf '%s\n' "$0: $1: Unknown compressed file name suffix" >&2
85
      exit 2;;
88
      exit 2;;
86
  esac
89
  esac
87
  case $1 in
90
  case $1 in
88
    *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *[-.]lzo)
91
    *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *[-.]lz | *[-.]lzo | *[-.]zst)
89
      FILE=`expr "X$1" : 'X\(.*\)[-.][abglmoxzZ2]*$'`;;
92
      FILE=`expr "X$1" : 'X\(.*\)[-.][abglmostxzZ2]*$'`;;
90
    *.t[abglx]z)
93
    *.t[abglx]z)
91
      FILE=`expr "X$1" : 'X\(.*[-.]t\)[abglx]z$'`ar;;
94
      FILE=`expr "X$1" : 'X\(.*[-.]t\)[abglx]z$'`ar;;
92
    *.tbz2)
95
    *.tbz2)
93
      FILE=`expr "X$1" : 'X\(.*[-.]t\)bz2$'`ar;;
96
      FILE=`expr "X$1" : 'X\(.*[-.]t\)bz2$'`ar;;
94
    *.tzo)
97
    *.tzo)
95
      FILE=`expr "X$1" : 'X\(.*[-.]t\)zo$'`ar;;
98
      FILE=`expr "X$1" : 'X\(.*[-.]t\)zo$'`ar;;
99
    *.tzst)
100
      FILE=`expr "X$1" : 'X\(.*[-.]t\)zst$'`ar;;
96
  esac
101
  esac
97
  xz_status=$(
102
  xz_status=$(
98
    exec 4>&1
103
    exec 4>&1
Lines 103-138 Link Here
103
    *[-.]bz2 | *.tbz | *.tbz2) xz1=bzip2;;
108
    *[-.]bz2 | *.tbz | *.tbz2) xz1=bzip2;;
104
    *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) xz1=gzip;;
109
    *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) xz1=gzip;;
105
    *[-.]lzo | *.tzo) xz1=lzop;;
110
    *[-.]lzo | *.tzo) xz1=lzop;;
111
    *[-.]zst | *.tzst) xz1='zstd -q';;
106
  esac
112
  esac
107
  case $2 in
113
  case $2 in
108
    *[-.]bz2 | *.tbz | *.tbz2) xz2=bzip2;;
114
    *[-.]bz2 | *.tbz | *.tbz2) xz2=bzip2;;
109
    *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) xz2=gzip;;
115
    *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) xz2=gzip;;
110
    *[-.]lzo | *.tzo) xz2=lzop;;
116
    *[-.]lzo | *.tzo) xz2=lzop;;
117
    *[-.]zst | *.tzst) xz2='zstd -q';;
111
  esac
118
  esac
112
  case $1 in
119
  case $1 in
113
    *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | -)
120
    *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *[-.]lz | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | *[-.]zst | *.tzst | -)
114
      case "$2" in
121
      case "$2" in
115
        *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | -)
122
        *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *[-.]lz | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | *[-.]zst | *.tzst | -)
116
          if test "$1$2" = --; then
123
          if test "$1$2" = --; then
117
            xz_status=$(
124
            xz_status=$(
118
              exec 4>&1
125
              exec 4>&1
119
              ($xz1 -cdfq - 4>&-; echo $? >&4) 3>&- |
126
              ($xz1 -cdf - 4>&-; echo $? >&4) 3>&- |
120
                eval "$cmp" - - >&3
127
                eval "$cmp" - - >&3
121
            )
128
            )
122
          elif # Reject Solaris 8's buggy /bin/bash 2.03.
129
          elif # Reject Solaris 8's buggy /bin/bash 2.03.
123
              echo X | (echo X | eval "$cmp" /dev/fd/5 - >/dev/null 2>&1) 5<&0; then
130
              echo X | (echo X | eval "$cmp" /dev/fd/5 - >/dev/null 2>&1) 5<&0; then
131
            # NOTE: xz_status will contain two numbers.
124
            xz_status=$(
132
            xz_status=$(
125
              exec 4>&1
133
              exec 4>&1
126
              ($xz1 -cdfq -- "$1" 4>&-; echo $? >&4) 3>&- |
134
              ($xz1 -cdf -- "$1" 4>&-; echo $? >&4) 3>&- |
127
                ( ($xz2 -cdfq -- "$2" 4>&-; echo $? >&4) 3>&- 5<&- </dev/null |
135
                ( ($xz2 -cdf -- "$2" 4>&-; echo $? >&4) 3>&- 5<&- </dev/null |
128
                eval "$cmp" /dev/fd/5 - >&3) 5<&0
136
                eval "$cmp" /dev/fd/5 - >&3) 5<&0
129
            )
137
            )
130
            cmp_status=$?
131
            case $xz_status in
132
              *[1-9]*) xz_status=1;;
133
              *) xz_status=0;;
134
            esac
135
            (exit $cmp_status)
136
          else
138
          else
137
            F=`expr "/$2" : '.*/\(.*\)[-.][ablmotxz2]*$'` || F=$prog
139
            F=`expr "/$2" : '.*/\(.*\)[-.][ablmotxz2]*$'` || F=$prog
138
            tmp=
140
            tmp=
Lines 161-170 Link Here
161
              mkdir -- "${TMPDIR-/tmp}/$prog.$$" || exit 2
163
              mkdir -- "${TMPDIR-/tmp}/$prog.$$" || exit 2
162
              tmp="${TMPDIR-/tmp}/$prog.$$"
164
              tmp="${TMPDIR-/tmp}/$prog.$$"
163
            fi
165
            fi
164
            $xz2 -cdfq -- "$2" > "$tmp/$F" || exit 2
166
            $xz2 -cdf -- "$2" > "$tmp/$F" || exit 2
165
            xz_status=$(
167
            xz_status=$(
166
              exec 4>&1
168
              exec 4>&1
167
              ($xz1 -cdfq -- "$1" 4>&-; echo $? >&4) 3>&- |
169
              ($xz1 -cdf -- "$1" 4>&-; echo $? >&4) 3>&- |
168
                eval "$cmp" - '"$tmp/$F"' >&3
170
                eval "$cmp" - '"$tmp/$F"' >&3
169
            )
171
            )
170
            cmp_status=$?
172
            cmp_status=$?
Lines 175-190 Link Here
175
      *)
177
      *)
176
        xz_status=$(
178
        xz_status=$(
177
          exec 4>&1
179
          exec 4>&1
178
          ($xz1 -cdfq -- "$1" 4>&-; echo $? >&4) 3>&- |
180
          ($xz1 -cdf -- "$1" 4>&-; echo $? >&4) 3>&- |
179
            eval "$cmp" - '"$2"' >&3
181
            eval "$cmp" - '"$2"' >&3
180
        );;
182
        );;
181
    esac;;
183
    esac;;
182
  *)
184
  *)
183
    case "$2" in
185
    case "$2" in
184
      *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | -)
186
      *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *[-.]lz | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | *[-.]zst | *.tzst | -)
185
        xz_status=$(
187
        xz_status=$(
186
          exec 4>&1
188
          exec 4>&1
187
          ($xz2 -cdfq -- "$2" 4>&-; echo $? >&4) 3>&- |
189
          ($xz2 -cdf -- "$2" 4>&-; echo $? >&4) 3>&- |
188
            eval "$cmp" '"$1"' - >&3
190
            eval "$cmp" '"$1"' - >&3
189
         );;
191
         );;
190
      *)
192
      *)
Lines 192-201 Link Here
192
    esac;;
194
    esac;;
193
  esac
195
  esac
194
else
196
else
195
  echo >&2 "$0: Invalid number of operands; try \`${0##*/} --help' for help"
197
  printf '%s\n' "$0: Invalid number of operands; try \`${0##*/} --help' for help" >&2
196
  exit 2
198
  exit 2
197
fi
199
fi
198
200
199
cmp_status=$?
201
cmp_status=$?
200
test "$xz_status" -eq 0 || exit 2
202
for num in $xz_status ; do
203
  # 0 from decompressor means successful decompression. SIGPIPE from
204
  # decompressor is possible when diff or cmp exits before the whole file
205
  # has been decompressed. In that case we want to retain the exit status
206
  # from diff or cmp. Note that using "trap '' PIPE" is not possible
207
  # because gzip changes its behavior (including exit status) if SIGPIPE
208
  # is ignored.
209
  test "$num" -eq 0 && continue
210
  test "$num" -ge 128 \
211
      && test "$(kill -l "$num" 2> /dev/null)" = "PIPE" \
212
      && continue
213
  exit 2
214
done
201
exit $cmp_status
215
exit $cmp_status
(-)xz-5.2.5/src/scripts/xzgrep.1 (-14 / +29 lines)
Lines 6-12 Link Here
6
.\"
6
.\"
7
.\" License: GNU GPLv2+
7
.\" License: GNU GPLv2+
8
.\"
8
.\"
9
.TH XZGREP 1 "2011-03-19" "Tukaani" "XZ Utils"
9
.TH XZGREP 1 "2022-07-19" "Tukaani" "XZ Utils"
10
.SH NAME
10
.SH NAME
11
xzgrep \- search compressed files for a regular expression
11
xzgrep \- search compressed files for a regular expression
12
.SH SYNOPSIS
12
.SH SYNOPSIS
Lines 14-35 Link Here
14
.RI [ grep_options ]
14
.RI [ grep_options ]
15
.RB [ \-e ]
15
.RB [ \-e ]
16
.I pattern
16
.I pattern
17
.IR file "..."
17
.RI [ file... ]
18
.br
18
.br
19
.B xzegrep
19
.B xzegrep
20
.RB ...
20
\&...
21
.br
21
.br
22
.B xzfgrep
22
.B xzfgrep
23
.RB ...
23
\&...
24
.br
24
.br
25
.B lzgrep
25
.B lzgrep
26
.RB ...
26
\&...
27
.br
27
.br
28
.B lzegrep
28
.B lzegrep
29
.RB ...
29
\&...
30
.br
30
.br
31
.B lzfgrep
31
.B lzfgrep
32
.RB ...
32
\&...
33
.SH DESCRIPTION
33
.SH DESCRIPTION
34
.B xzgrep
34
.B xzgrep
35
invokes
35
invokes
Lines 41-48 Link Here
41
.BR lzma (1),
41
.BR lzma (1),
42
.BR gzip (1),
42
.BR gzip (1),
43
.BR bzip2 (1),
43
.BR bzip2 (1),
44
.BR lzop (1),
44
or
45
or
45
.BR lzop (1).
46
.BR zstd (1).
46
All options specified are passed directly to
47
All options specified are passed directly to
47
.BR grep (1).
48
.BR grep (1).
48
.PP
49
.PP
Lines 54-61 Link Here
54
When reading from standard input,
55
When reading from standard input,
55
.BR gzip (1),
56
.BR gzip (1),
56
.BR bzip2 (1),
57
.BR bzip2 (1),
58
.BR lzop (1),
57
and
59
and
58
.BR lzop (1)
60
.BR zstd (1)
59
compressed files are not supported.
61
compressed files are not supported.
60
.PP
62
.PP
61
If
63
If
Lines 65-73 Link Here
65
or
67
or
66
.B xzfgrep
68
.B xzfgrep
67
then
69
then
68
.BR egrep (1)
70
.B grep \-E
69
or
71
or
70
.BR fgrep (1)
72
.B grep \-F
71
is used instead of
73
is used instead of
72
.BR grep (1).
74
.BR grep (1).
73
The same applies to names
75
The same applies to names
Lines 76-82 Link Here
76
and
78
and
77
.BR lzfgrep ,
79
.BR lzfgrep ,
78
which are provided for backward compatibility with LZMA Utils.
80
which are provided for backward compatibility with LZMA Utils.
79
.PP
81
.SH EXIT STATUS
82
.TP
83
0
84
At least one match was found from at least one of the input files.
85
No errors occurred.
86
.TP
87
1
88
No matches were found from any of the input files.
89
No errors occurred.
90
.TP
91
>1
92
One or more errors occurred.
93
It is unknown if matches were found.
80
.SH ENVIRONMENT
94
.SH ENVIRONMENT
81
.TP
95
.TP
82
.B GREP
96
.B GREP
Lines 86-98 Link Here
86
.B xzgrep
100
.B xzgrep
87
uses it instead of
101
uses it instead of
88
.BR grep (1),
102
.BR grep (1),
89
.BR egrep (1),
103
.BR "grep \-E" ,
90
or
104
or
91
.BR fgrep (1).
105
.BR "grep \-F" .
92
.SH "SEE ALSO"
106
.SH "SEE ALSO"
93
.BR grep (1),
107
.BR grep (1),
94
.BR xz (1),
108
.BR xz (1),
95
.BR gzip (1),
109
.BR gzip (1),
96
.BR bzip2 (1),
110
.BR bzip2 (1),
97
.BR lzop (1),
111
.BR lzop (1),
112
.BR zstd (1),
98
.BR zgrep (1)
113
.BR zgrep (1)
(-)xz-5.2.5/src/scripts/xzgrep.in (-44 / +126 lines)
Lines 29-36 Link Here
29
unset GZIP BZIP BZIP2 LZOP
29
unset GZIP BZIP BZIP2 LZOP
30
30
31
case ${0##*/} in
31
case ${0##*/} in
32
  *egrep*) prog=xzegrep; grep=${GREP:-egrep};;
32
  *egrep*) prog=xzegrep; grep=${GREP:-grep -E};;
33
  *fgrep*) prog=xzfgrep; grep=${GREP:-fgrep};;
33
  *fgrep*) prog=xzfgrep; grep=${GREP:-grep -F};;
34
  *)       prog=xzgrep; grep=${GREP:-grep};;
34
  *)       prog=xzgrep; grep=${GREP:-grep};;
35
esac
35
esac
36
36
Lines 57-78 Link Here
57
no_filename=0
57
no_filename=0
58
with_filename=0
58
with_filename=0
59
59
60
# See if -H and --label options are supported (GNU and *BSDs).
61
if test f:x = "$(eval "echo x | $grep -H --label=f x 2> /dev/null")"; then
62
  grep_supports_label=1
63
else
64
  grep_supports_label=0
65
fi
66
60
while test $# -ne 0; do
67
while test $# -ne 0; do
61
  option=$1
68
  option=$1
62
  shift
69
  shift
63
  optarg=
70
  optarg=
64
71
65
  case $option in
72
  case $option in
66
  (-[0123456789abcdhHiIKLlnoqrRsTuUvVwxyzZ]?*)
73
  (-[0123456789abcdEFGhHiIKlLnoPqrRsTuUvVwxyzZ]*[!0123456789]*)
67
    arg2=-\'$(expr "X${option}X" : 'X-.[0-9]*\(.*\)' | sed "$escape")
74
    # Something like -Fiv was specified, that is, $option contains more
75
    # than one option of which the first option (in this example -F)
76
    # doesn't take an argument. Split the first option into a standalone
77
    # argument and continue parsing the rest of the options (in this example,
78
    # replace -Fiv with -iv in the argument list and set option=-F).
79
    #
80
    # If there are digits [0-9] they are treated as if they were a single
81
    # option character because this syntax is an alias for -C for GNU grep.
82
    # For example, "grep -25F" is equivalent to "grep -C25 -F". If only
83
    # digits are specified like "grep -25" we don't get here because the
84
    # above pattern in the case-statement doesn't match such strings.
85
    arg2=-\'$(LC_ALL=C expr "X${option}X" : 'X-.[0-9]*\(.*\)' |
86
                LC_ALL=C sed "$escape")
68
    eval "set -- $arg2 "'${1+"$@"}'
87
    eval "set -- $arg2 "'${1+"$@"}'
69
    option=$(expr "X$option" : 'X\(-.[0-9]*\)');;
88
    option=$(LC_ALL=C expr "X$option" : 'X\(-.[0-9]*\)');;
70
  (--binary-*=* | --[lm]a*=* | --reg*=*)
89
  (--binary-*=* | --[lm]a*=* | --reg*=*)
90
    # These options require an argument and an argument has been provided
91
    # with the --foo=argument syntax. All is good.
71
    ;;
92
    ;;
72
  (-[ABCDefm] | --binary-* | --file | --[lm]a* | --reg*)
93
  (-[ABCDefmX] | --binary-* | --file | --[lm]a* | --reg*)
94
    # These options require an argument which should now be in $1.
95
    # If it isn't, display an error and exit.
73
    case ${1?"$option option requires an argument"} in
96
    case ${1?"$option option requires an argument"} in
74
    (*\'*)
97
    (*\'*)
75
      optarg=" '"$(printf '%sX\n' "$1" | sed "$escape");;
98
      optarg=" '"$(printf '%sX\n' "$1" | LC_ALL=C sed "$escape");;
76
    (*)
99
    (*)
77
      optarg=" '$1'";;
100
      optarg=" '$1'";;
78
    esac
101
    esac
Lines 84-90 Link Here
84
  (*)
107
  (*)
85
    case $option in
108
    case $option in
86
    (*\'*)
109
    (*\'*)
87
      operands="$operands '"$(printf '%sX\n' "$option" | sed "$escape");;
110
      operands="$operands '"$(printf '%sX\n' "$option" |
111
                                LC_ALL=C sed "$escape");;
88
    (*)
112
    (*)
89
      operands="$operands '$option'";;
113
      operands="$operands '$option'";;
90
    esac
114
    esac
Lines 99-105 Link Here
99
  (-[ef]* | --file | --file=* | --reg*)
123
  (-[ef]* | --file | --file=* | --reg*)
100
    have_pat=1;;
124
    have_pat=1;;
101
  (--h | --he | --hel | --help)
125
  (--h | --he | --hel | --help)
102
    echo "$usage" || exit 2
126
    printf '%s\n' "$usage" || exit 2
103
    exit;;
127
    exit;;
104
  (-H | --wi | --wit | --with | --with- | --with-f | --with-fi \
128
  (-H | --wi | --wit | --with | --with- | --with-f | --with-fi \
105
  | --with-fil | --with-file | --with-filen | --with-filena | --with-filenam \
129
  | --with-fil | --with-file | --with-filen | --with-filena | --with-filenam \
Lines 115-127 Link Here
115
  (-h | --no-f*)
139
  (-h | --no-f*)
116
    no_filename=1;;
140
    no_filename=1;;
117
  (-V | --v | --ve | --ver | --vers | --versi | --versio | --version)
141
  (-V | --v | --ve | --ver | --vers | --versi | --versio | --version)
118
    echo "$version" || exit 2
142
    printf '%s\n' "$version" || exit 2
119
    exit;;
143
    exit;;
120
  esac
144
  esac
121
145
122
  case $option in
146
  case $option in
123
  (*\'?*)
147
  (*\'?*)
124
    option=\'$(expr "X${option}X" : 'X\(.*\)' | sed "$escape");;
148
    option=\'$(printf '%sX\n' "$option" | LC_ALL=C sed "$escape");;
125
  (*)
149
  (*)
126
    option="'$option'";;
150
    option="'$option'";;
127
  esac
151
  esac
Lines 129-146 Link Here
129
  grep="$grep $option$optarg"
153
  grep="$grep $option$optarg"
130
done
154
done
131
155
132
if test $files_with_matches -eq 1 || test $files_without_matches -eq 1; then
133
  grep="$grep -q"
134
fi
135
136
eval "set -- $operands "'${1+"$@"}'
156
eval "set -- $operands "'${1+"$@"}'
137
157
138
if test $have_pat -eq 0; then
158
if test $have_pat -eq 0; then
139
  case ${1?"Missing pattern; try \`${0##*/} --help' for help"} in
159
  case ${1?"Missing pattern; try \`${0##*/} --help' for help"} in
140
  (*\'*)
160
  (*\'*)
141
    grep="$grep -- '"$(printf '%sX\n' "$1" | sed "$escape");;
161
    grep="$grep -e '"$(printf '%sX\n' "$1" | LC_ALL=C sed "$escape");;
142
  (*)
162
  (*)
143
    grep="$grep -- '$1'";;
163
    grep="$grep -e '$1'";;
144
  esac
164
  esac
145
  shift
165
  shift
146
fi
166
fi
Lines 156-174 Link Here
156
176
157
for i; do
177
for i; do
158
  case $i in
178
  case $i in
159
    *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) uncompress="gzip -cdfq";;
179
    *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) uncompress="gzip -cdf";;
160
    *[-.]bz2 | *[-.]tbz | *.tbz2) uncompress="bzip2 -cdfq";;
180
    *[-.]bz2 | *[-.]tbz | *.tbz2) uncompress="bzip2 -cdf";;
161
    *[-.]lzo | *[-.]tzo) uncompress="lzop -cdfq";;
181
    *[-.]lzo | *[-.]tzo) uncompress="lzop -cdf";;
162
    *) uncompress="$xz -cdfq";;
182
    *[-.]zst | *[-.]tzst) uncompress="zstd -cdfq";; # zstd needs -q.
183
    *) uncompress="$xz -cdfqQ";; # -qQ to ignore warnings like unsupp. check.
163
  esac
184
  esac
164
  # Fail if xz or grep (or sed) fails.
185
  # xz_status will hold the decompressor's exit status.
186
  # Exit status of grep (and in rare cases, printf or sed) is
187
  # available as the exit status of this assignment command.
165
  xz_status=$(
188
  xz_status=$(
166
    exec 5>&1
189
    exec 5>&1
167
    ($uncompress -- "$i" 5>&-; echo $? >&5) 3>&- |
190
    ($uncompress -- "$i" 5>&-; echo $? >&5) 3>&- |
168
    if test $files_with_matches -eq 1; then
191
    if test $files_with_matches -eq 1; then
169
      eval "$grep" && { printf '%s\n' "$i" || exit 2; }
192
      eval "$grep -q" && { printf '%s\n' "$i" || exit 2; }
170
    elif test $files_without_matches -eq 1; then
193
    elif test $files_without_matches -eq 1; then
171
      eval "$grep" || {
194
      eval "$grep -q" || {
172
        r=$?
195
        r=$?
173
        if test $r -eq 1; then
196
        if test $r -eq 1; then
174
          printf '%s\n' "$i" || r=2
197
          printf '%s\n' "$i" || r=2
Lines 178-216 Link Here
178
    elif test $with_filename -eq 0 &&
201
    elif test $with_filename -eq 0 &&
179
         { test $# -eq 1 || test $no_filename -eq 1; }; then
202
         { test $# -eq 1 || test $no_filename -eq 1; }; then
180
      eval "$grep"
203
      eval "$grep"
204
    elif test $grep_supports_label -eq 1; then
205
      # The grep implementation in use allows us to specify the filename
206
      # that grep will prefix to the output lines. This is faster and
207
      # less prone to security bugs than the fallback method that uses sed.
208
      # This also avoids confusing output with GNU grep >= 3.5 (2020-09-27)
209
      # which prints "binary file matches" to stderr instead of stdout.
210
      #
211
      # If reading from stdin, let grep use whatever name it prefers for
212
      # stdin. With GNU grep it is a locale-specific translated string.
213
      if test "x$i" = "x-"; then
214
        eval "$grep -H"
215
      else
216
        eval "$grep -H --label \"\$i\""
217
      fi
181
    else
218
    else
219
      # Append a colon so that the last character will never be a newline
220
      # which would otherwise get lost in shell command substitution.
221
      i="$i:"
222
223
      # Escape & \ | and newlines only if such characters are present
224
      # (speed optimization).
182
      case $i in
225
      case $i in
183
      (*'
226
      (*'
184
'* | *'&'* | *'\'* | *'|'*)
227
'* | *'&'* | *'\'* | *'|'*)
185
        i=$(printf '%s\n' "$i" |
228
        # If sed fails, set i to a known safe string to ensure that
186
            sed '
229
        # failing sed did not create a half-escaped dangerous string.
187
              $!N
230
        i=$(printf '%s\n' "$i" | LC_ALL=C sed 's/[&\|]/\\&/g; $!s/$/\\/') ||
188
              $s/[&\|]/\\&/g
231
            i='(unknown filename):';;
189
              $s/\n/\\n/g
190
            ');;
191
      esac
232
      esac
192
      sed_script="s|^|$i:|"
193
233
194
      # Fail if grep or sed fails.
234
      # $i already ends with a colon so do not add it here.
235
      sed_script="s|^|$i|"
236
237
      # If grep or sed fails, pick the larger value of the two exit statuses.
238
      # If sed fails, use at least 2 since we use >= 2 to indicate errors.
195
      r=$(
239
      r=$(
196
        exec 4>&1
240
        exec 4>&1
197
        (eval "$grep" 4>&-; echo $? >&4) 3>&- | sed "$sed_script" >&3 4>&-
241
        (eval "$grep" 4>&-; echo $? >&4) 3>&- |
198
      ) || r=2
242
            LC_ALL=C sed "$sed_script" >&3 4>&-
243
      ) || {
244
        sed_status=$?
245
        test "$sed_status" -lt 2 && sed_status=2
246
        test "$r" -lt "$sed_status" && r=$sed_status
247
      }
199
      exit $r
248
      exit $r
200
    fi >&3 5>&-
249
    fi >&3 5>&-
201
  )
250
  )
202
  r=$?
251
  r=$?
203
252
204
  # fail occurred previously, nothing worse can happen
253
  # If grep or sed or other non-decompression command failed with a signal,
205
  test $res -gt 1 && continue
254
  # exit immediately and ignore the possible remaining files.
255
  #
256
  # NOTE: Instead of 128 + signal_number, some shells use
257
  # 256 + signal_number (ksh) or 384 + signal_number (yash).
258
  # This is fine for us since their "exit" and "kill -l" commands take
259
  # this into account. (At least the versions I tried do but there is
260
  # a report of an old ksh variant whose "exit" truncates the exit status
261
  # to 8 bits without any special handling for values indicating a signal.)
262
  test "$r" -ge 128 && exit "$r"
206
263
207
  test "$xz_status" -eq 0 || test "$xz_status" -eq 2 \
264
  if test -z "$xz_status"; then
208
      || test "$(kill -l "$xz_status" 2> /dev/null)" = "PIPE" || r=2
265
    # Something unusual happened, for example, we got a signal and
266
    # the exit status of the decompressor was never echoed and thus
267
    # $xz_status is empty. Exit immediately and ignore the possible
268
    # remaining files.
269
    exit 2
270
  elif test "$xz_status" -ge 128; then
271
    # The decompressor died due to a signal. SIGPIPE is ignored since it can
272
    # occur if grep exits before the whole file has been decompressed (grep -q
273
    # can do that). If the decompressor died with some other signal, exit
274
    # immediately and ignore the possible remaining files.
275
    test "$(kill -l "$xz_status" 2> /dev/null)" != "PIPE" && exit "$xz_status"
276
  elif test "$xz_status" -gt 0; then
277
    # Decompression failed but we will continue with the remaining
278
    # files anwyway. Set exit status to at least 2 to indicate an error.
279
    test "$r" -lt 2 && r=2
280
  fi
209
281
210
  # still no match
282
  # Since res=1 is the initial value, we only need to care about
211
  test $r -eq 1 && continue
283
  # matches (r == 0) and errors (r >= 2) here; r == 1 can be ignored.
212
284
  if test "$r" -ge 2; then
213
  # 0 == match, >=2 == fail
285
    # An error occurred in decompressor, grep, or some other command. Update
214
  res=$r
286
    # res unless a larger error code has been seen with an earlier file.
287
    test "$res" -lt "$r" && res=$r
288
  elif test "$r" -eq 0; then
289
    # grep found a match and no errors occurred. Update res if no errors have
290
    # occurred with earlier files.
291
    test "$res" -eq 1 && res=0
292
  fi
215
done
293
done
216
exit $res
294
295
# 0: At least one file matched and no errors occurred.
296
# 1: No matches were found and no errors occurred.
297
# >=2: Error. It's unknown if matches were found.
298
exit "$res"
(-)xz-5.2.5/src/scripts/xzless.in (-5 / +5 lines)
Lines 33-40 Link Here
33
Report bugs to <@PACKAGE_BUGREPORT@>."
33
Report bugs to <@PACKAGE_BUGREPORT@>."
34
34
35
case $1 in
35
case $1 in
36
	--help)    echo "$usage" || exit 2; exit;;
36
	--help)    printf '%s\n' "$usage" || exit 2; exit;;
37
	--version) echo "$version" || exit 2; exit;;
37
	--version) printf '%s\n' "$version" || exit 2; exit;;
38
esac
38
esac
39
39
40
if test "${LESSMETACHARS+set}" != set; then
40
if test "${LESSMETACHARS+set}" != set; then
Lines 47-58 Link Here
47
	LESSMETACHARS="$space$tab$nl'"';*?"()<>[|&^`#\$%=~'
47
	LESSMETACHARS="$space$tab$nl'"';*?"()<>[|&^`#\$%=~'
48
fi
48
fi
49
49
50
if test "$(less -V | { read _ ver _ && echo ${ver}; })" -ge 429; then
50
if test "$(less -V | { read _ ver _ && echo ${ver%%.*}; })" -ge 429; then
51
	# less 429 or later: LESSOPEN pipe will be used on
51
	# less 429 or later: LESSOPEN pipe will be used on
52
	# standard input if $LESSOPEN begins with |-.
52
	# standard input if $LESSOPEN begins with |-.
53
	LESSOPEN="|-$xz -cdfq -- %s"
53
	LESSOPEN="|-$xz -cdfqQ -- %s"
54
else
54
else
55
	LESSOPEN="|$xz -cdfq -- %s"
55
	LESSOPEN="|$xz -cdfqQ -- %s"
56
fi
56
fi
57
export LESSMETACHARS LESSOPEN
57
export LESSMETACHARS LESSOPEN
58
58
(-)xz-5.2.5/src/scripts/xzmore.in (-6 / +6 lines)
Lines 31-38 Link Here
31
Report bugs to <@PACKAGE_BUGREPORT@>."
31
Report bugs to <@PACKAGE_BUGREPORT@>."
32
32
33
case $1 in
33
case $1 in
34
	--help)    echo "$usage" || exit 2; exit;;
34
	--help)    printf '%s\n' "$usage" || exit 2; exit;;
35
	--version) echo "$version" || exit 2; exit;;
35
	--version) printf '%s\n' "$version" || exit 2; exit;;
36
esac
36
esac
37
37
38
oldtty=`stty -g 2>/dev/null`
38
oldtty=`stty -g 2>/dev/null`
Lines 50-58 Link Here
50
50
51
if test $# = 0; then
51
if test $# = 0; then
52
	if test -t 0; then
52
	if test -t 0; then
53
		echo "$usage"; exit 1
53
		printf '%s\n' "$usage"; exit 1
54
	else
54
	else
55
		$xz -cdfq | eval "${PAGER:-more}"
55
		$xz -cdfqQ | eval "${PAGER:-more}"
56
	fi
56
	fi
57
else
57
else
58
	FIRST=1
58
	FIRST=1
Lines 69-76 Link Here
69
			esac
69
			esac
70
		fi
70
		fi
71
		if test "$ANS" != 's'; then
71
		if test "$ANS" != 's'; then
72
			echo "------> $FILE <------"
72
			printf '%s\n' "------> $FILE <------"
73
			$xz -cdfq -- "$FILE" | eval "${PAGER:-more}"
73
			$xz -cdfqQ -- "$FILE" | eval "${PAGER:-more}"
74
		fi
74
		fi
75
		if test -t 1; then
75
		if test -t 1; then
76
			FIRST=0
76
			FIRST=0
(-)xz-5.2.5/src/xz/Makefile.in (-5 / +8 lines)
Lines 1-7 Link Here
1
# Makefile.in generated by automake 1.16.1 from Makefile.am.
1
# Makefile.in generated by automake 1.16.5 from Makefile.am.
2
# @configure_input@
2
# @configure_input@
3
3
4
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
4
# Copyright (C) 1994-2021 Free Software Foundation, Inc.
5
5
6
# This Makefile.in is free software; the Free Software Foundation
6
# This Makefile.in is free software; the Free Software Foundation
7
# gives unlimited permission to copy and/or distribute it,
7
# gives unlimited permission to copy and/or distribute it,
Lines 246-253 Link Here
246
  unique=`for i in $$list; do \
246
  unique=`for i in $$list; do \
247
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
247
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
248
  done | $(am__uniquify_input)`
248
  done | $(am__uniquify_input)`
249
ETAGS = etags
250
CTAGS = ctags
251
am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \
249
am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \
252
	$(top_srcdir)/build-aux/depcomp
250
	$(top_srcdir)/build-aux/depcomp
253
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
251
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
Lines 271-276 Link Here
271
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
269
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
272
CPP = @CPP@
270
CPP = @CPP@
273
CPPFLAGS = @CPPFLAGS@
271
CPPFLAGS = @CPPFLAGS@
272
CSCOPE = @CSCOPE@
273
CTAGS = @CTAGS@
274
CYGPATH_W = @CYGPATH_W@
274
CYGPATH_W = @CYGPATH_W@
275
DEFS = @DEFS@
275
DEFS = @DEFS@
276
DEPDIR = @DEPDIR@
276
DEPDIR = @DEPDIR@
Lines 281-288 Link Here
281
ECHO_N = @ECHO_N@
281
ECHO_N = @ECHO_N@
282
ECHO_T = @ECHO_T@
282
ECHO_T = @ECHO_T@
283
EGREP = @EGREP@
283
EGREP = @EGREP@
284
ETAGS = @ETAGS@
284
EXEEXT = @EXEEXT@
285
EXEEXT = @EXEEXT@
285
FGREP = @FGREP@
286
FGREP = @FGREP@
287
FILECMD = @FILECMD@
286
GETOPT_H = @GETOPT_H@
288
GETOPT_H = @GETOPT_H@
287
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
289
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
288
GMSGFMT = @GMSGFMT@
290
GMSGFMT = @GMSGFMT@
Lines 335-340 Link Here
335
PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@
337
PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@
336
PTHREAD_CC = @PTHREAD_CC@
338
PTHREAD_CC = @PTHREAD_CC@
337
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
339
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
340
PTHREAD_CXX = @PTHREAD_CXX@
338
PTHREAD_LIBS = @PTHREAD_LIBS@
341
PTHREAD_LIBS = @PTHREAD_LIBS@
339
RANLIB = @RANLIB@
342
RANLIB = @RANLIB@
340
RC = @RC@
343
RC = @RC@
Lines 393-398 Link Here
393
prefix = @prefix@
396
prefix = @prefix@
394
program_transform_name = @program_transform_name@
397
program_transform_name = @program_transform_name@
395
psdir = @psdir@
398
psdir = @psdir@
399
runstatedir = @runstatedir@
396
sbindir = @sbindir@
400
sbindir = @sbindir@
397
sharedstatedir = @sharedstatedir@
401
sharedstatedir = @sharedstatedir@
398
srcdir = @srcdir@
402
srcdir = @srcdir@
Lines 897-903 Link Here
897
901
898
distclean-tags:
902
distclean-tags:
899
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
903
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
900
901
distdir: $(BUILT_SOURCES)
904
distdir: $(BUILT_SOURCES)
902
	$(MAKE) $(AM_MAKEFLAGS) distdir-am
905
	$(MAKE) $(AM_MAKEFLAGS) distdir-am
903
906
(-)xz-5.2.5/src/xz/args.c (-18 / +78 lines)
Lines 29-47 Link Here
29
const char stdin_filename[] = "(stdin)";
29
const char stdin_filename[] = "(stdin)";
30
30
31
31
32
/// Parse and set the memory usage limit for compression and/or decompression.
32
/// Parse and set the memory usage limit for compression, decompression,
33
/// and/or multithreaded decompression.
33
static void
34
static void
34
parse_memlimit(const char *name, const char *name_percentage, char *str,
35
parse_memlimit(const char *name, const char *name_percentage, const char *str,
35
		bool set_compress, bool set_decompress)
36
		bool set_compress, bool set_decompress, bool set_mtdec)
36
{
37
{
37
	bool is_percentage = false;
38
	bool is_percentage = false;
38
	uint64_t value;
39
	uint64_t value;
39
40
40
	const size_t len = strlen(str);
41
	const size_t len = strlen(str);
41
	if (len > 0 && str[len - 1] == '%') {
42
	if (len > 0 && str[len - 1] == '%') {
42
		str[len - 1] = '\0';
43
		// Make a copy so that we can get rid of %.
44
		//
45
		// In the past str wasn't const and we modified it directly
46
		// but that modified argv[] and thus affected what was visible
47
		// in "ps auxf" or similar tools which was confusing. For
48
		// example, --memlimit=50% would show up as --memlimit=50
49
		// since the percent sign was overwritten here.
50
		char *s = xstrdup(str);
51
		s[len - 1] = '\0';
43
		is_percentage = true;
52
		is_percentage = true;
44
		value = str_to_uint64(name_percentage, str, 1, 100);
53
		value = str_to_uint64(name_percentage, s, 1, 100);
54
		free(s);
45
	} else {
55
	} else {
46
		// On 32-bit systems, SIZE_MAX would make more sense than
56
		// On 32-bit systems, SIZE_MAX would make more sense than
47
		// UINT64_MAX. But use UINT64_MAX still so that scripts
57
		// UINT64_MAX. But use UINT64_MAX still so that scripts
Lines 49-63 Link Here
49
		value = str_to_uint64(name, str, 0, UINT64_MAX);
59
		value = str_to_uint64(name, str, 0, UINT64_MAX);
50
	}
60
	}
51
61
52
	hardware_memlimit_set(
62
	hardware_memlimit_set(value, set_compress, set_decompress, set_mtdec,
53
			value, set_compress, set_decompress, is_percentage);
63
			is_percentage);
54
	return;
64
	return;
55
}
65
}
56
66
57
67
58
static void
68
static void
59
parse_block_list(char *str)
69
parse_block_list(const char *str_const)
60
{
70
{
71
	// We need a modifiable string in the for-loop.
72
	char *str_start = xstrdup(str_const);
73
	char *str = str_start;
74
61
	// It must be non-empty and not begin with a comma.
75
	// It must be non-empty and not begin with a comma.
62
	if (str[0] == '\0' || str[0] == ',')
76
	if (str[0] == '\0' || str[0] == ',')
63
		message_fatal(_("%s: Invalid argument to --block-list"), str);
77
		message_fatal(_("%s: Invalid argument to --block-list"), str);
Lines 112-117 Link Here
112
126
113
	// Terminate the array.
127
	// Terminate the array.
114
	opt_block_list[count] = 0;
128
	opt_block_list[count] = 0;
129
130
	free(str_start);
115
	return;
131
	return;
116
}
132
}
117
133
Lines 125-130 Link Here
125
		OPT_IA64,
141
		OPT_IA64,
126
		OPT_ARM,
142
		OPT_ARM,
127
		OPT_ARMTHUMB,
143
		OPT_ARMTHUMB,
144
		OPT_ARM64,
128
		OPT_SPARC,
145
		OPT_SPARC,
129
		OPT_DELTA,
146
		OPT_DELTA,
130
		OPT_LZMA1,
147
		OPT_LZMA1,
Lines 138-143 Link Here
138
		OPT_BLOCK_LIST,
155
		OPT_BLOCK_LIST,
139
		OPT_MEM_COMPRESS,
156
		OPT_MEM_COMPRESS,
140
		OPT_MEM_DECOMPRESS,
157
		OPT_MEM_DECOMPRESS,
158
		OPT_MEM_MT_DECOMPRESS,
141
		OPT_NO_ADJUST,
159
		OPT_NO_ADJUST,
142
		OPT_INFO_MEMORY,
160
		OPT_INFO_MEMORY,
143
		OPT_ROBOT,
161
		OPT_ROBOT,
Lines 176-181 Link Here
176
		{ "block-list",  required_argument, NULL,  OPT_BLOCK_LIST },
194
		{ "block-list",  required_argument, NULL,  OPT_BLOCK_LIST },
177
		{ "memlimit-compress",   required_argument, NULL, OPT_MEM_COMPRESS },
195
		{ "memlimit-compress",   required_argument, NULL, OPT_MEM_COMPRESS },
178
		{ "memlimit-decompress", required_argument, NULL, OPT_MEM_DECOMPRESS },
196
		{ "memlimit-decompress", required_argument, NULL, OPT_MEM_DECOMPRESS },
197
		{ "memlimit-mt-decompress", required_argument, NULL, OPT_MEM_MT_DECOMPRESS },
179
		{ "memlimit",     required_argument, NULL,  'M' },
198
		{ "memlimit",     required_argument, NULL,  'M' },
180
		{ "memory",       required_argument, NULL,  'M' }, // Old alias
199
		{ "memory",       required_argument, NULL,  'M' }, // Old alias
181
		{ "no-adjust",    no_argument,       NULL,  OPT_NO_ADJUST },
200
		{ "no-adjust",    no_argument,       NULL,  OPT_NO_ADJUST },
Lines 194-199 Link Here
194
		{ "ia64",         optional_argument, NULL,  OPT_IA64 },
213
		{ "ia64",         optional_argument, NULL,  OPT_IA64 },
195
		{ "arm",          optional_argument, NULL,  OPT_ARM },
214
		{ "arm",          optional_argument, NULL,  OPT_ARM },
196
		{ "armthumb",     optional_argument, NULL,  OPT_ARMTHUMB },
215
		{ "armthumb",     optional_argument, NULL,  OPT_ARMTHUMB },
216
		{ "arm64",        optional_argument, NULL,  OPT_ARM64 },
197
		{ "sparc",        optional_argument, NULL,  OPT_SPARC },
217
		{ "sparc",        optional_argument, NULL,  OPT_SPARC },
198
		{ "delta",        optional_argument, NULL,  OPT_DELTA },
218
		{ "delta",        optional_argument, NULL,  OPT_DELTA },
199
219
Lines 225-244 Link Here
225
		case OPT_MEM_COMPRESS:
245
		case OPT_MEM_COMPRESS:
226
			parse_memlimit("memlimit-compress",
246
			parse_memlimit("memlimit-compress",
227
					"memlimit-compress%", optarg,
247
					"memlimit-compress%", optarg,
228
					true, false);
248
					true, false, false);
229
			break;
249
			break;
230
250
231
		// --memlimit-decompress
251
		// --memlimit-decompress
232
		case OPT_MEM_DECOMPRESS:
252
		case OPT_MEM_DECOMPRESS:
233
			parse_memlimit("memlimit-decompress",
253
			parse_memlimit("memlimit-decompress",
234
					"memlimit-decompress%", optarg,
254
					"memlimit-decompress%", optarg,
235
					false, true);
255
					false, true, false);
236
			break;
256
			break;
237
257
258
		// --memlimit-mt-decompress
259
		case OPT_MEM_MT_DECOMPRESS:
260
			parse_memlimit("memlimit-mt-decompress",
261
					"memlimit-mt-decompress%", optarg,
262
					false, false, true);
263
			break;
264
238
		// --memlimit
265
		// --memlimit
239
		case 'M':
266
		case 'M':
240
			parse_memlimit("memlimit", "memlimit%", optarg,
267
			parse_memlimit("memlimit", "memlimit%", optarg,
241
					true, true);
268
					true, true, true);
242
			break;
269
			break;
243
270
244
		// --suffix
271
		// --suffix
Lines 246-256 Link Here
246
			suffix_set(optarg);
273
			suffix_set(optarg);
247
			break;
274
			break;
248
275
249
		case 'T':
276
		case 'T': {
277
			// Since xz 5.4.0: Ignore leading '+' first.
278
			const char *s = optarg;
279
			if (optarg[0] == '+')
280
				++s;
281
250
			// The max is from src/liblzma/common/common.h.
282
			// The max is from src/liblzma/common/common.h.
251
			hardware_threads_set(str_to_uint64("threads",
283
			uint32_t t = str_to_uint64("threads", s, 0, 16384);
252
					optarg, 0, 16384));
284
285
			// If leading '+' was used then use multi-threaded
286
			// mode even if exactly one thread was specified.
287
			if (t == 1 && optarg[0] == '+')
288
				t = UINT32_MAX;
289
290
			hardware_threads_set(t);
253
			break;
291
			break;
292
		}
254
293
255
		// --version
294
		// --version
256
		case 'V':
295
		case 'V':
Lines 360-365 Link Here
360
					options_bcj(optarg));
399
					options_bcj(optarg));
361
			break;
400
			break;
362
401
402
		case OPT_ARM64:
403
			coder_add_filter(LZMA_FILTER_ARM64,
404
					options_bcj(optarg));
405
			break;
406
363
		case OPT_SPARC:
407
		case OPT_SPARC:
364
			coder_add_filter(LZMA_FILTER_SPARC,
408
			coder_add_filter(LZMA_FILTER_SPARC,
365
					options_bcj(optarg));
409
					options_bcj(optarg));
Lines 395-402 Link Here
395
				{ "xz",     FORMAT_XZ },
439
				{ "xz",     FORMAT_XZ },
396
				{ "lzma",   FORMAT_LZMA },
440
				{ "lzma",   FORMAT_LZMA },
397
				{ "alone",  FORMAT_LZMA },
441
				{ "alone",  FORMAT_LZMA },
398
				// { "gzip",   FORMAT_GZIP },
442
#ifdef HAVE_LZIP_DECODER
399
				// { "gz",     FORMAT_GZIP },
443
				{ "lzip",   FORMAT_LZIP },
444
#endif
400
				{ "raw",    FORMAT_RAW },
445
				{ "raw",    FORMAT_RAW },
401
			};
446
			};
402
447
Lines 475-481 Link Here
475
						"or `--files0'."));
520
						"or `--files0'."));
476
521
477
			if (optarg == NULL) {
522
			if (optarg == NULL) {
478
				args->files_name = (char *)stdin_filename;
523
				args->files_name = stdin_filename;
479
				args->files_file = stdin;
524
				args->files_file = stdin;
480
			} else {
525
			} else {
481
				args->files_name = optarg;
526
				args->files_name = optarg;
Lines 651-656 Link Here
651
				"at build time"));
696
				"at build time"));
652
#endif
697
#endif
653
698
699
#ifdef HAVE_LZIP_DECODER
700
	if (opt_mode == MODE_COMPRESS && opt_format == FORMAT_LZIP)
701
		message_fatal(_("Compression of lzip files (.lz) "
702
				"is not supported"));
703
#endif
704
654
	// Never remove the source file when the destination is not on disk.
705
	// Never remove the source file when the destination is not on disk.
655
	// In test mode the data is written nowhere, but setting opt_stdout
706
	// In test mode the data is written nowhere, but setting opt_stdout
656
	// will make the rest of the code behave well.
707
	// will make the rest of the code behave well.
Lines 669-676 Link Here
669
	// be done also when uncompressing raw data, since for raw decoding
720
	// be done also when uncompressing raw data, since for raw decoding
670
	// the options given on the command line are used to know what kind
721
	// the options given on the command line are used to know what kind
671
	// of raw data we are supposed to decode.
722
	// of raw data we are supposed to decode.
672
	if (opt_mode == MODE_COMPRESS || opt_format == FORMAT_RAW)
723
	if (opt_mode == MODE_COMPRESS || (opt_format == FORMAT_RAW
724
			&& opt_mode != MODE_LIST))
673
		coder_set_compression_settings();
725
		coder_set_compression_settings();
726
727
	// If raw format is used and a custom suffix is not provided,
728
	// then only stdout mode can be used when compressing or decompressing.
729
	if (opt_format == FORMAT_RAW && !suffix_is_set() && !opt_stdout
730
			&& (opt_mode == MODE_COMPRESS
731
				|| opt_mode == MODE_DECOMPRESS))
732
		message_fatal(_("With --format=raw, --suffix=.SUF is "
733
				"required unless writing to stdout"));
674
734
675
	// If no filenames are given, use stdin.
735
	// If no filenames are given, use stdin.
676
	if (argv[optind] == NULL && args->files_name == NULL) {
736
	if (argv[optind] == NULL && args->files_name == NULL) {
(-)xz-5.2.5/src/xz/args.h (-1 / +1 lines)
Lines 19-25 Link Here
19
19
20
	/// Name of the file from which to read filenames. This is NULL
20
	/// Name of the file from which to read filenames. This is NULL
21
	/// if --files or --files0 was not used.
21
	/// if --files or --files0 was not used.
22
	char *files_name;
22
	const char *files_name;
23
23
24
	/// File opened for reading from which filenames are read. This is
24
	/// File opened for reading from which filenames are read. This is
25
	/// non-NULL only if files_name is non-NULL.
25
	/// non-NULL only if files_name is non-NULL.
(-)xz-5.2.5/src/xz/coder.c (-39 / +203 lines)
Lines 51-57 Link Here
51
/// This becomes false if the --check=CHECK option is used.
51
/// This becomes false if the --check=CHECK option is used.
52
static bool check_default = true;
52
static bool check_default = true;
53
53
54
#if defined(HAVE_ENCODERS) && defined(MYTHREAD_ENABLED)
54
/// Indicates if unconsumed input is allowed to remain after
55
/// decoding has successfully finished. This is set for each file
56
/// in coder_init().
57
static bool allow_trailing_input;
58
59
#ifdef MYTHREAD_ENABLED
55
static lzma_mt mt_options = {
60
static lzma_mt mt_options = {
56
	.flags = 0,
61
	.flags = 0,
57
	.timeout = 300,
62
	.timeout = 300,
Lines 136-141 Link Here
136
extern void
141
extern void
137
coder_set_compression_settings(void)
142
coder_set_compression_settings(void)
138
{
143
{
144
#ifdef HAVE_LZIP_DECODER
145
	// .lz compression isn't supported.
146
	assert(opt_format != FORMAT_LZIP);
147
#endif
148
139
	// The default check type is CRC64, but fallback to CRC32
149
	// The default check type is CRC64, but fallback to CRC32
140
	// if CRC64 isn't supported by the copy of liblzma we are
150
	// if CRC64 isn't supported by the copy of liblzma we are
141
	// using. CRC32 is always supported.
151
	// using. CRC32 is always supported.
Lines 211-217 Link Here
211
			}
221
			}
212
		}
222
		}
213
223
214
		if (hardware_threads_get() > 1) {
224
		if (hardware_threads_is_mt()) {
215
			message(V_WARNING, _("Switching to single-threaded "
225
			message(V_WARNING, _("Switching to single-threaded "
216
					"mode due to --flush-timeout"));
226
					"mode due to --flush-timeout"));
217
			hardware_threads_set(1);
227
			hardware_threads_set(1);
Lines 220-231 Link Here
220
230
221
	// Get the memory usage. Note that if --format=raw was used,
231
	// Get the memory usage. Note that if --format=raw was used,
222
	// we can be decompressing.
232
	// we can be decompressing.
223
	const uint64_t memory_limit = hardware_memlimit_get(opt_mode);
233
	//
234
	// If multithreaded .xz compression is done, this value will be
235
	// replaced.
236
	uint64_t memory_limit = hardware_memlimit_get(opt_mode);
224
	uint64_t memory_usage = UINT64_MAX;
237
	uint64_t memory_usage = UINT64_MAX;
225
	if (opt_mode == MODE_COMPRESS) {
238
	if (opt_mode == MODE_COMPRESS) {
226
#ifdef HAVE_ENCODERS
239
#ifdef HAVE_ENCODERS
227
#	ifdef MYTHREAD_ENABLED
240
#	ifdef MYTHREAD_ENABLED
228
		if (opt_format == FORMAT_XZ && hardware_threads_get() > 1) {
241
		if (opt_format == FORMAT_XZ && hardware_threads_is_mt()) {
242
			memory_limit = hardware_memlimit_mtenc_get();
229
			mt_options.threads = hardware_threads_get();
243
			mt_options.threads = hardware_threads_get();
230
			mt_options.block_size = opt_block_size;
244
			mt_options.block_size = opt_block_size;
231
			mt_options.check = check;
245
			mt_options.check = check;
Lines 269-315 Link Here
269
	if (memory_usage <= memory_limit)
283
	if (memory_usage <= memory_limit)
270
		return;
284
		return;
271
285
272
	// If --no-adjust was used or we didn't find LZMA1 or
286
	// With --format=raw settings are never adjusted to meet
273
	// LZMA2 as the last filter, give an error immediately.
287
	// the memory usage limit.
274
	// --format=raw implies --no-adjust.
288
	if (opt_format == FORMAT_RAW)
275
	if (!opt_auto_adjust || opt_format == FORMAT_RAW)
276
		memlimit_too_small(memory_usage);
289
		memlimit_too_small(memory_usage);
277
290
278
	assert(opt_mode == MODE_COMPRESS);
291
	assert(opt_mode == MODE_COMPRESS);
279
292
280
#ifdef HAVE_ENCODERS
293
#ifdef HAVE_ENCODERS
281
#	ifdef MYTHREAD_ENABLED
294
#	ifdef MYTHREAD_ENABLED
282
	if (opt_format == FORMAT_XZ && mt_options.threads > 1) {
295
	if (opt_format == FORMAT_XZ && hardware_threads_is_mt()) {
283
		// Try to reduce the number of threads before
296
		// Try to reduce the number of threads before
284
		// adjusting the compression settings down.
297
		// adjusting the compression settings down.
285
		do {
298
		while (mt_options.threads > 1) {
286
			// FIXME? The real single-threaded mode has
299
			// Reduce the number of threads by one and check
287
			// lower memory usage, but it's not comparable
300
			// the memory usage.
288
			// because it doesn't write the size info
301
			--mt_options.threads;
289
			// into Block Headers.
290
			if (--mt_options.threads == 0)
291
				memlimit_too_small(memory_usage);
292
293
			memory_usage = lzma_stream_encoder_mt_memusage(
302
			memory_usage = lzma_stream_encoder_mt_memusage(
294
					&mt_options);
303
					&mt_options);
295
			if (memory_usage == UINT64_MAX)
304
			if (memory_usage == UINT64_MAX)
296
				message_bug();
305
				message_bug();
297
306
298
		} while (memory_usage > memory_limit);
307
			if (memory_usage <= memory_limit) {
308
				// The memory usage is now low enough.
309
				message(V_WARNING, _("Reduced the number of "
310
					"threads from %s to %s to not exceed "
311
					"the memory usage limit of %s MiB"),
312
					uint64_to_str(
313
						hardware_threads_get(), 0),
314
					uint64_to_str(mt_options.threads, 1),
315
					uint64_to_str(round_up_to_mib(
316
						memory_limit), 2));
317
				return;
318
			}
319
		}
299
320
300
		message(V_WARNING, _("Adjusted the number of threads "
321
		// If the memory usage limit is only a soft limit (automatic
301
			"from %s to %s to not exceed "
322
		// number of threads and no --memlimit-compress), the limit
302
			"the memory usage limit of %s MiB"),
323
		// is only used to reduce the number of threads and once at
303
			uint64_to_str(hardware_threads_get(), 0),
324
		// just one thread, the limit is completely ignored. This
304
			uint64_to_str(mt_options.threads, 1),
325
		// way -T0 won't use insane amount of memory but at the same
305
			uint64_to_str(round_up_to_mib(
326
		// time the soft limit will never make xz fail and never make
306
				memory_limit), 2));
327
		// xz change settings that would affect the compressed output.
328
		if (hardware_memlimit_mtenc_is_default()) {
329
			message(V_WARNING, _("Reduced the number of threads "
330
				"from %s to one. The automatic memory usage "
331
				"limit of %s MiB is still being exceeded. "
332
				"%s MiB of memory is required. "
333
				"Continuing anyway."),
334
				uint64_to_str(hardware_threads_get(), 0),
335
				uint64_to_str(
336
					round_up_to_mib(memory_limit), 1),
337
				uint64_to_str(
338
					round_up_to_mib(memory_usage), 2));
339
			return;
340
		}
341
342
		// If --no-adjust was used, we cannot drop to single-threaded
343
		// mode since it produces different compressed output.
344
		//
345
		// NOTE: In xz 5.2.x, --no-adjust also prevented reducing
346
		// the number of threads. This changed in 5.3.3alpha.
347
		if (!opt_auto_adjust)
348
			memlimit_too_small(memory_usage);
349
350
		// Switch to single-threaded mode. It uses
351
		// less memory than using one thread in
352
		// the multithreaded mode but the output
353
		// is also different.
354
		hardware_threads_set(1);
355
		memory_usage = lzma_raw_encoder_memusage(filters);
356
		message(V_WARNING, _("Switching to single-threaded mode "
357
			"to not exceed the memory usage limit of %s MiB"),
358
			uint64_to_str(round_up_to_mib(memory_limit), 0));
307
	}
359
	}
308
#	endif
360
#	endif
309
361
310
	if (memory_usage <= memory_limit)
362
	if (memory_usage <= memory_limit)
311
		return;
363
		return;
312
364
365
	// Don't adjust LZMA2 or LZMA1 dictionary size if --no-adjust
366
	// was specified as that would change the compressed output.
367
	if (!opt_auto_adjust)
368
		memlimit_too_small(memory_usage);
369
313
	// Look for the last filter if it is LZMA2 or LZMA1, so we can make
370
	// Look for the last filter if it is LZMA2 or LZMA1, so we can make
314
	// it use less RAM. With other filters we don't know what to do.
371
	// it use less RAM. With other filters we don't know what to do.
315
	size_t i = 0;
372
	size_t i = 0;
Lines 423-429 Link Here
423
480
424
	return true;
481
	return true;
425
}
482
}
483
484
485
#ifdef HAVE_LZIP_DECODER
486
/// Return true if the data in in_buf seems to be in the .lz format.
487
static bool
488
is_format_lzip(void)
489
{
490
	static const uint8_t magic[4] = { 0x4C, 0x5A, 0x49, 0x50 };
491
	return strm.avail_in >= sizeof(magic)
492
			&& memcmp(in_buf.u8, magic, sizeof(magic)) == 0;
493
}
426
#endif
494
#endif
495
#endif
427
496
428
497
429
/// Detect the input file type (for now, this done only when decompressing),
498
/// Detect the input file type (for now, this done only when decompressing),
Lines 436-441 Link Here
436
{
505
{
437
	lzma_ret ret = LZMA_PROG_ERROR;
506
	lzma_ret ret = LZMA_PROG_ERROR;
438
507
508
	// In most cases if there is input left when coding finishes,
509
	// something has gone wrong. Exceptions are --single-stream
510
	// and decoding .lz files which can contain trailing non-.lz data.
511
	// These will be handled later in this function.
512
	allow_trailing_input = false;
513
439
	if (opt_mode == MODE_COMPRESS) {
514
	if (opt_mode == MODE_COMPRESS) {
440
#ifdef HAVE_ENCODERS
515
#ifdef HAVE_ENCODERS
441
		switch (opt_format) {
516
		switch (opt_format) {
Lines 446-452 Link Here
446
521
447
		case FORMAT_XZ:
522
		case FORMAT_XZ:
448
#	ifdef MYTHREAD_ENABLED
523
#	ifdef MYTHREAD_ENABLED
449
			if (hardware_threads_get() > 1)
524
			if (hardware_threads_is_mt())
450
				ret = lzma_stream_encoder_mt(
525
				ret = lzma_stream_encoder_mt(
451
						&strm, &mt_options);
526
						&strm, &mt_options);
452
			else
527
			else
Lines 459-464 Link Here
459
			ret = lzma_alone_encoder(&strm, filters[0].options);
534
			ret = lzma_alone_encoder(&strm, filters[0].options);
460
			break;
535
			break;
461
536
537
#	ifdef HAVE_LZIP_DECODER
538
		case FORMAT_LZIP:
539
			// args.c should disallow this.
540
			assert(0);
541
			ret = LZMA_PROG_ERROR;
542
			break;
543
#	endif
544
462
		case FORMAT_RAW:
545
		case FORMAT_RAW:
463
			ret = lzma_raw_encoder(&strm, filters);
546
			ret = lzma_raw_encoder(&strm, filters);
464
			break;
547
			break;
Lines 475-481 Link Here
475
		else
558
		else
476
			flags |= LZMA_TELL_UNSUPPORTED_CHECK;
559
			flags |= LZMA_TELL_UNSUPPORTED_CHECK;
477
560
478
		if (!opt_single_stream)
561
		if (opt_single_stream)
562
			allow_trailing_input = true;
563
		else
479
			flags |= LZMA_CONCATENATED;
564
			flags |= LZMA_CONCATENATED;
480
565
481
		// We abuse FORMAT_AUTO to indicate unknown file format,
566
		// We abuse FORMAT_AUTO to indicate unknown file format,
Lines 484-491 Link Here
484
569
485
		switch (opt_format) {
570
		switch (opt_format) {
486
		case FORMAT_AUTO:
571
		case FORMAT_AUTO:
572
			// .lz is checked before .lzma since .lzma detection
573
			// is more complicated (no magic bytes).
487
			if (is_format_xz())
574
			if (is_format_xz())
488
				init_format = FORMAT_XZ;
575
				init_format = FORMAT_XZ;
576
#	ifdef HAVE_LZIP_DECODER
577
			else if (is_format_lzip())
578
				init_format = FORMAT_LZIP;
579
#	endif
489
			else if (is_format_lzma())
580
			else if (is_format_lzma())
490
				init_format = FORMAT_LZMA;
581
				init_format = FORMAT_LZMA;
491
			break;
582
			break;
Lines 500-505 Link Here
500
				init_format = FORMAT_LZMA;
591
				init_format = FORMAT_LZMA;
501
			break;
592
			break;
502
593
594
#	ifdef HAVE_LZIP_DECODER
595
		case FORMAT_LZIP:
596
			if (is_format_lzip())
597
				init_format = FORMAT_LZIP;
598
			break;
599
#	endif
600
503
		case FORMAT_RAW:
601
		case FORMAT_RAW:
504
			init_format = FORMAT_RAW;
602
			init_format = FORMAT_RAW;
505
			break;
603
			break;
Lines 513-528 Link Here
513
			// is needed, because we don't want to do use
611
			// is needed, because we don't want to do use
514
			// passthru mode with --test.
612
			// passthru mode with --test.
515
			if (opt_mode == MODE_DECOMPRESS
613
			if (opt_mode == MODE_DECOMPRESS
516
					&& opt_stdout && opt_force)
614
					&& opt_stdout && opt_force) {
615
				// These are needed for progress info.
616
				strm.total_in = 0;
617
				strm.total_out = 0;
517
				return CODER_INIT_PASSTHRU;
618
				return CODER_INIT_PASSTHRU;
619
			}
518
620
519
			ret = LZMA_FORMAT_ERROR;
621
			ret = LZMA_FORMAT_ERROR;
520
			break;
622
			break;
521
623
522
		case FORMAT_XZ:
624
		case FORMAT_XZ:
625
#	ifdef MYTHREAD_ENABLED
626
			mt_options.flags = flags;
627
628
			mt_options.threads = hardware_threads_get();
629
			mt_options.memlimit_stop
630
				= hardware_memlimit_get(MODE_DECOMPRESS);
631
632
			// If single-threaded mode was requested, set the
633
			// memlimit for threading to zero. This forces the
634
			// decoder to use single-threaded mode which matches
635
			// the behavior of lzma_stream_decoder().
636
			//
637
			// Otherwise use the limit for threaded decompression
638
			// which has a sane default (users are still free to
639
			// make it insanely high though).
640
			mt_options.memlimit_threading
641
					= mt_options.threads == 1
642
					? 0 : hardware_memlimit_mtdec_get();
643
644
			ret = lzma_stream_decoder_mt(&strm, &mt_options);
645
#	else
523
			ret = lzma_stream_decoder(&strm,
646
			ret = lzma_stream_decoder(&strm,
524
					hardware_memlimit_get(
647
					hardware_memlimit_get(
525
						MODE_DECOMPRESS), flags);
648
						MODE_DECOMPRESS), flags);
649
#	endif
526
			break;
650
			break;
527
651
528
		case FORMAT_LZMA:
652
		case FORMAT_LZMA:
Lines 531-536 Link Here
531
						MODE_DECOMPRESS));
655
						MODE_DECOMPRESS));
532
			break;
656
			break;
533
657
658
#	ifdef HAVE_LZIP_DECODER
659
		case FORMAT_LZIP:
660
			allow_trailing_input = true;
661
			ret = lzma_lzip_decoder(&strm,
662
					hardware_memlimit_get(
663
						MODE_DECOMPRESS), flags);
664
			break;
665
#	endif
666
534
		case FORMAT_RAW:
667
		case FORMAT_RAW:
535
			// Memory usage has already been checked in
668
			// Memory usage has already been checked in
536
			// coder_set_compression_settings().
669
			// coder_set_compression_settings().
Lines 542-551 Link Here
542
		// memory usage limit in case it happens in the first
675
		// memory usage limit in case it happens in the first
543
		// Block of the first Stream, which is where it very
676
		// Block of the first Stream, which is where it very
544
		// probably will happen if it is going to happen.
677
		// probably will happen if it is going to happen.
678
		//
679
		// This will also catch unsupported check type which
680
		// we treat as a warning only. If there are empty
681
		// concatenated Streams with unsupported check type then
682
		// the message can be shown more than once here. The loop
683
		// is used in case there is first a warning about
684
		// unsupported check type and then the first Block
685
		// would exceed the memlimit.
545
		if (ret == LZMA_OK && init_format != FORMAT_RAW) {
686
		if (ret == LZMA_OK && init_format != FORMAT_RAW) {
546
			strm.next_out = NULL;
687
			strm.next_out = NULL;
547
			strm.avail_out = 0;
688
			strm.avail_out = 0;
548
			ret = lzma_code(&strm, LZMA_RUN);
689
			while ((ret = lzma_code(&strm, LZMA_RUN))
690
					== LZMA_UNSUPPORTED_CHECK)
691
				message_warning("%s: %s", pair->src_name,
692
						message_strm(ret));
693
694
			// With --single-stream lzma_code won't wait for
695
			// LZMA_FINISH and thus it can return LZMA_STREAM_END
696
			// if the file has no uncompressed data inside.
697
			// So treat LZMA_STREAM_END as LZMA_OK here.
698
			// When lzma_code() is called again in coder_normal()
699
			// it will return LZMA_STREAM_END again.
700
			if (ret == LZMA_STREAM_END)
701
				ret = LZMA_OK;
549
		}
702
		}
550
#endif
703
#endif
551
	}
704
	}
Lines 574-580 Link Here
574
{
727
{
575
	if (*next_block_remaining > 0) {
728
	if (*next_block_remaining > 0) {
576
		// The Block at *list_pos has previously been split up.
729
		// The Block at *list_pos has previously been split up.
577
		assert(hardware_threads_get() == 1);
730
		assert(!hardware_threads_is_mt());
578
		assert(opt_block_size > 0);
731
		assert(opt_block_size > 0);
579
		assert(opt_block_list != NULL);
732
		assert(opt_block_list != NULL);
580
733
Lines 602-608 Link Here
602
		// If in single-threaded mode, split up the Block if needed.
755
		// If in single-threaded mode, split up the Block if needed.
603
		// This is not needed in multi-threaded mode because liblzma
756
		// This is not needed in multi-threaded mode because liblzma
604
		// will do this due to how threaded encoding works.
757
		// will do this due to how threaded encoding works.
605
		if (hardware_threads_get() == 1 && opt_block_size > 0
758
		if (!hardware_threads_is_mt() && opt_block_size > 0
606
				&& *block_remaining > opt_block_size) {
759
				&& *block_remaining > opt_block_size) {
607
			*next_block_remaining
760
			*next_block_remaining
608
					= *block_remaining - opt_block_size;
761
					= *block_remaining - opt_block_size;
Lines 662-668 Link Here
662
		// --block-size doesn't do anything here in threaded mode,
815
		// --block-size doesn't do anything here in threaded mode,
663
		// because the threaded encoder will take care of splitting
816
		// because the threaded encoder will take care of splitting
664
		// to fixed-sized Blocks.
817
		// to fixed-sized Blocks.
665
		if (hardware_threads_get() == 1 && opt_block_size > 0)
818
		if (!hardware_threads_is_mt() && opt_block_size > 0)
666
			block_remaining = opt_block_size;
819
			block_remaining = opt_block_size;
667
820
668
		// If --block-list was used, start with the first size.
821
		// If --block-list was used, start with the first size.
Lines 676-682 Link Here
676
		// mode the size info isn't written into Block Headers.
829
		// mode the size info isn't written into Block Headers.
677
		if (opt_block_list != NULL) {
830
		if (opt_block_list != NULL) {
678
			if (block_remaining < opt_block_list[list_pos]) {
831
			if (block_remaining < opt_block_list[list_pos]) {
679
				assert(hardware_threads_get() == 1);
832
				assert(!hardware_threads_is_mt());
680
				next_block_remaining = opt_block_list[list_pos]
833
				next_block_remaining = opt_block_list[list_pos]
681
						- block_remaining;
834
						- block_remaining;
682
			} else {
835
			} else {
Lines 740-746 Link Here
740
			} else {
893
			} else {
741
				// Start a new Block after LZMA_FULL_BARRIER.
894
				// Start a new Block after LZMA_FULL_BARRIER.
742
				if (opt_block_list == NULL) {
895
				if (opt_block_list == NULL) {
743
					assert(hardware_threads_get() == 1);
896
					assert(!hardware_threads_is_mt());
744
					assert(opt_block_size > 0);
897
					assert(opt_block_size > 0);
745
					block_remaining = opt_block_size;
898
					block_remaining = opt_block_size;
746
				} else {
899
				} else {
Lines 756-764 Link Here
756
909
757
		} else if (ret != LZMA_OK) {
910
		} else if (ret != LZMA_OK) {
758
			// Determine if the return value indicates that we
911
			// Determine if the return value indicates that we
759
			// won't continue coding.
912
			// won't continue coding. LZMA_NO_CHECK would be
760
			const bool stop = ret != LZMA_NO_CHECK
913
			// here too if LZMA_TELL_ANY_CHECK was used.
761
					&& ret != LZMA_UNSUPPORTED_CHECK;
914
			const bool stop = ret != LZMA_UNSUPPORTED_CHECK;
762
915
763
			if (stop) {
916
			if (stop) {
764
				// Write the remaining bytes even if something
917
				// Write the remaining bytes even if something
Lines 771-777 Link Here
771
			}
924
			}
772
925
773
			if (ret == LZMA_STREAM_END) {
926
			if (ret == LZMA_STREAM_END) {
774
				if (opt_single_stream) {
927
				if (allow_trailing_input) {
775
					io_fix_src_pos(pair, strm.avail_in);
928
					io_fix_src_pos(pair, strm.avail_in);
776
					success = true;
929
					success = true;
777
					break;
930
					break;
Lines 779-785 Link Here
779
932
780
				// Check that there is no trailing garbage.
933
				// Check that there is no trailing garbage.
781
				// This is needed for LZMA_Alone and raw
934
				// This is needed for LZMA_Alone and raw
782
				// streams.
935
				// streams. This is *not* done with .lz files
936
				// as that format specifically requires
937
				// allowing trailing garbage.
783
				if (strm.avail_in == 0 && !pair->src_eof) {
938
				if (strm.avail_in == 0 && !pair->src_eof) {
784
					// Try reading one more byte.
939
					// Try reading one more byte.
785
					// Hopefully we don't get any more
940
					// Hopefully we don't get any more
Lines 907-912 Link Here
907
				mytime_set_start_time();
1062
				mytime_set_start_time();
908
1063
909
				// Initialize the progress indicator.
1064
				// Initialize the progress indicator.
1065
				//
1066
				// NOTE: When reading from stdin, fstat()
1067
				// isn't called on it and thus src_st.st_size
1068
				// is zero. If stdin pointed to a regular
1069
				// file, it would still be possible to know
1070
				// the file size but then we would also need
1071
				// to take into account the current reading
1072
				// position since with stdin it isn't
1073
				// necessarily at the beginning of the file.
910
				const bool is_passthru = init_ret
1074
				const bool is_passthru = init_ret
911
						== CODER_INIT_PASSTHRU;
1075
						== CODER_INIT_PASSTHRU;
912
				const uint64_t in_size
1076
				const uint64_t in_size
(-)xz-5.2.5/src/xz/coder.h (-2 / +5 lines)
Lines 23-29 Link Here
23
	FORMAT_AUTO,
23
	FORMAT_AUTO,
24
	FORMAT_XZ,
24
	FORMAT_XZ,
25
	FORMAT_LZMA,
25
	FORMAT_LZMA,
26
	// HEADER_GZIP,
26
#ifdef HAVE_LZIP_DECODER
27
	FORMAT_LZIP,
28
#endif
27
	FORMAT_RAW,
29
	FORMAT_RAW,
28
};
30
};
29
31
Lines 64-70 Link Here
64
/// Add a filter to the custom filter chain
66
/// Add a filter to the custom filter chain
65
extern void coder_add_filter(lzma_vli id, void *options);
67
extern void coder_add_filter(lzma_vli id, void *options);
66
68
67
///
69
/// Set and partially validate compression settings. This can also be used
70
/// in decompression or test mode with the raw format.
68
extern void coder_set_compression_settings(void);
71
extern void coder_set_compression_settings(void);
69
72
70
/// Compress or decompress the given file
73
/// Compress or decompress the given file
(-)xz-5.2.5/src/xz/file_io.c (-15 / +77 lines)
Lines 140-146 Link Here
140
	// handler. So ignore the errors and try to avoid warnings with
140
	// handler. So ignore the errors and try to avoid warnings with
141
	// GCC and glibc when _FORTIFY_SOURCE=2 is used.
141
	// GCC and glibc when _FORTIFY_SOURCE=2 is used.
142
	uint8_t b = '\0';
142
	uint8_t b = '\0';
143
	const int ret = write(user_abort_pipe[1], &b, 1);
143
	const ssize_t ret = write(user_abort_pipe[1], &b, 1);
144
	(void)ret;
144
	(void)ret;
145
	return;
145
	return;
146
}
146
}
Lines 192-206 Link Here
192
	// Capsicum needs FreeBSD 10.0 or later.
192
	// Capsicum needs FreeBSD 10.0 or later.
193
	cap_rights_t rights;
193
	cap_rights_t rights;
194
194
195
	if (cap_enter())
196
		goto error;
197
195
	if (cap_rights_limit(src_fd, cap_rights_init(&rights,
198
	if (cap_rights_limit(src_fd, cap_rights_init(&rights,
196
			CAP_EVENT, CAP_FCNTL, CAP_LOOKUP, CAP_READ, CAP_SEEK)))
199
			CAP_EVENT, CAP_FCNTL, CAP_LOOKUP, CAP_READ, CAP_SEEK)))
197
		goto error;
200
		goto error;
198
201
202
	if (src_fd != STDIN_FILENO && cap_rights_limit(
203
			STDIN_FILENO, cap_rights_clear(&rights)))
204
		goto error;
205
199
	if (cap_rights_limit(STDOUT_FILENO, cap_rights_init(&rights,
206
	if (cap_rights_limit(STDOUT_FILENO, cap_rights_init(&rights,
200
			CAP_EVENT, CAP_FCNTL, CAP_FSTAT, CAP_LOOKUP,
207
			CAP_EVENT, CAP_FCNTL, CAP_FSTAT, CAP_LOOKUP,
201
			CAP_WRITE, CAP_SEEK)))
208
			CAP_WRITE, CAP_SEEK)))
202
		goto error;
209
		goto error;
203
210
211
	if (cap_rights_limit(STDERR_FILENO, cap_rights_init(&rights,
212
			CAP_WRITE)))
213
		goto error;
214
204
	if (cap_rights_limit(user_abort_pipe[0], cap_rights_init(&rights,
215
	if (cap_rights_limit(user_abort_pipe[0], cap_rights_init(&rights,
205
			CAP_EVENT)))
216
			CAP_EVENT)))
206
		goto error;
217
		goto error;
Lines 209-217 Link Here
209
			CAP_WRITE)))
220
			CAP_WRITE)))
210
		goto error;
221
		goto error;
211
222
212
	if (cap_enter())
223
#elif defined(HAVE_PLEDGE)
224
	// pledge() was introduced in OpenBSD 5.9.
225
	//
226
	// main() unconditionally calls pledge() with fairly relaxed
227
	// promises which work in all situations. Here we make the
228
	// sandbox more strict.
229
	if (pledge("stdio", ""))
213
		goto error;
230
		goto error;
214
231
232
	(void)src_fd;
233
215
#else
234
#else
216
#	error ENABLE_SANDBOX is defined but no sandboxing method was found.
235
#	error ENABLE_SANDBOX is defined but no sandboxing method was found.
217
#endif
236
#endif
Lines 221-227 Link Here
221
	return;
240
	return;
222
241
223
error:
242
error:
224
	message(V_DEBUG, _("Failed to enable the sandbox"));
243
#ifdef HAVE_CAPSICUM
244
	// If a kernel is configured without capability mode support or
245
	// used in an emulator that does not implement the capability
246
	// system calls, then the Capsicum system calls will fail and set
247
	// errno to ENOSYS. In that case xz will silently run without
248
	// the sandbox.
249
	if (errno == ENOSYS)
250
		return;
251
#endif
252
	message_fatal(_("Failed to enable the sandbox"));
225
}
253
}
226
#endif // ENABLE_SANDBOX
254
#endif // ENABLE_SANDBOX
227
255
Lines 330-343 Link Here
330
		// it is possible that the user has put a new file in place
358
		// it is possible that the user has put a new file in place
331
		// of the original file, and in that case it obviously
359
		// of the original file, and in that case it obviously
332
		// shouldn't be removed.
360
		// shouldn't be removed.
333
		message_error(_("%s: File seems to have been moved, "
361
		message_warning(_("%s: File seems to have been moved, "
334
				"not removing"), name);
362
				"not removing"), name);
335
	else
363
	else
336
#endif
364
#endif
337
		// There's a race condition between lstat() and unlink()
365
		// There's a race condition between lstat() and unlink()
338
		// but at least we have tried to avoid removing wrong file.
366
		// but at least we have tried to avoid removing wrong file.
339
		if (unlink(name))
367
		if (unlink(name))
340
			message_error(_("%s: Cannot remove: %s"),
368
			message_warning(_("%s: Cannot remove: %s"),
341
					name, strerror(errno));
369
					name, strerror(errno));
342
370
343
	return;
371
	return;
Lines 368-374 Link Here
368
396
369
	mode_t mode;
397
	mode_t mode;
370
398
371
	if (fchown(pair->dest_fd, (uid_t)(-1), pair->src_st.st_gid)) {
399
	// With BSD semantics the new dest file may have a group that
400
	// does not belong to the user. If the src file has the same gid
401
	// nothing has to be done. Nevertheless OpenBSD fchown(2) fails
402
	// in this case which seems to be POSIX compliant. As there is
403
	// nothing to do, skip the system call.
404
	if (pair->dest_st.st_gid != pair->src_st.st_gid
405
			&& fchown(pair->dest_fd, (uid_t)(-1),
406
				pair->src_st.st_gid)) {
372
		message_warning(_("%s: Cannot set the file group: %s"),
407
		message_warning(_("%s: Cannot set the file group: %s"),
373
				pair->dest_name, strerror(errno));
408
				pair->dest_name, strerror(errno));
374
		// We can still safely copy some additional permissions:
409
		// We can still safely copy some additional permissions:
Lines 536-543 Link Here
536
	}
571
	}
537
572
538
	// Symlinks are not followed unless writing to stdout or --force
573
	// Symlinks are not followed unless writing to stdout or --force
539
	// was used.
574
	// or --keep was used.
540
	const bool follow_symlinks = opt_stdout || opt_force;
575
	const bool follow_symlinks
576
			= opt_stdout || opt_force || opt_keep_original;
541
577
542
	// We accept only regular files if we are writing the output
578
	// We accept only regular files if we are writing the output
543
	// to disk too. bzip2 allows overriding this with --force but
579
	// to disk too. bzip2 allows overriding this with --force but
Lines 674-680 Link Here
674
	}
710
	}
675
711
676
#ifndef TUKLIB_DOSLIKE
712
#ifndef TUKLIB_DOSLIKE
677
	if (reg_files_only && !opt_force) {
713
	if (reg_files_only && !opt_force && !opt_keep_original) {
678
		if (pair->src_st.st_mode & (S_ISUID | S_ISGID)) {
714
		if (pair->src_st.st_mode & (S_ISUID | S_ISGID)) {
679
			// gzip rejects setuid and setgid files even
715
			// gzip rejects setuid and setgid files even
680
			// when --force was used. bzip2 doesn't check
716
			// when --force was used. bzip2 doesn't check
Lines 683-689 Link Here
683
			// and setgid bits there.
719
			// and setgid bits there.
684
			//
720
			//
685
			// We accept setuid and setgid files if
721
			// We accept setuid and setgid files if
686
			// --force was used. We drop these bits
722
			// --force or --keep was used. We drop these bits
687
			// explicitly in io_copy_attr().
723
			// explicitly in io_copy_attr().
688
			message_warning(_("%s: File has setuid or "
724
			message_warning(_("%s: File has setuid or "
689
					"setgid bit set, skipping"),
725
					"setgid bit set, skipping"),
Lines 740-752 Link Here
740
extern file_pair *
776
extern file_pair *
741
io_open_src(const char *src_name)
777
io_open_src(const char *src_name)
742
{
778
{
743
	if (is_empty_filename(src_name))
779
	if (src_name[0] == '\0') {
780
		message_error(_("Empty filename, skipping"));
744
		return NULL;
781
		return NULL;
782
	}
745
783
746
	// Since we have only one file open at a time, we can use
784
	// Since we have only one file open at a time, we can use
747
	// a statically allocated structure.
785
	// a statically allocated structure.
748
	static file_pair pair;
786
	static file_pair pair;
749
787
788
	// This implicitly also initializes src_st.st_size to zero
789
	// which is expected to be <= 0 by default. fstat() isn't
790
	// called when reading from standard input but src_st.st_size
791
	// is still read.
750
	pair = (file_pair){
792
	pair = (file_pair){
751
		.src_name = src_name,
793
		.src_name = src_name,
752
		.dest_name = NULL,
794
		.dest_name = NULL,
Lines 1183-1197 Link Here
1183
1225
1184
1226
1185
extern bool
1227
extern bool
1186
io_pread(file_pair *pair, io_buf *buf, size_t size, off_t pos)
1228
io_seek_src(file_pair *pair, uint64_t pos)
1187
{
1229
{
1188
	// Using lseek() and read() is more portable than pread() and
1230
	// Caller must not attempt to seek past the end of the input file
1189
	// for us it is as good as real pread().
1231
	// (seeking to 100 in a 100-byte file is seeking to the end of
1190
	if (lseek(pair->src_fd, pos, SEEK_SET) != pos) {
1232
	// the file, not past the end of the file, and thus that is allowed).
1233
	//
1234
	// This also validates that pos can be safely cast to off_t.
1235
	if (pos > (uint64_t)(pair->src_st.st_size))
1236
		message_bug();
1237
1238
	if (lseek(pair->src_fd, (off_t)(pos), SEEK_SET) == -1) {
1191
		message_error(_("%s: Error seeking the file: %s"),
1239
		message_error(_("%s: Error seeking the file: %s"),
1192
				pair->src_name, strerror(errno));
1240
				pair->src_name, strerror(errno));
1193
		return true;
1241
		return true;
1194
	}
1242
	}
1243
1244
	pair->src_eof = false;
1245
1246
	return false;
1247
}
1248
1249
1250
extern bool
1251
io_pread(file_pair *pair, io_buf *buf, size_t size, uint64_t pos)
1252
{
1253
	// Using lseek() and read() is more portable than pread() and
1254
	// for us it is as good as real pread().
1255
	if (io_seek_src(pair, pos))
1256
		return true;
1195
1257
1196
	const size_t amount = io_read(pair, buf, size);
1258
	const size_t amount = io_read(pair, buf, size);
1197
	if (amount == SIZE_MAX)
1259
	if (amount == SIZE_MAX)
(-)xz-5.2.5/src/xz/file_io.h (-1 / +14 lines)
Lines 139-144 Link Here
139
extern void io_fix_src_pos(file_pair *pair, size_t rewind_size);
139
extern void io_fix_src_pos(file_pair *pair, size_t rewind_size);
140
140
141
141
142
/// \brief      Seek to the given absolute position in the source file
143
///
144
/// This calls lseek() and also clears pair->src_eof.
145
///
146
/// \param      pair    Seekable source file
147
/// \param      pos     Offset relative to the beginning of the file,
148
///                     from which the data should be read.
149
///
150
/// \return     On success, false is returned. On error, error message
151
///             is printed and true is returned.
152
extern bool io_seek_src(file_pair *pair, uint64_t pos);
153
154
142
/// \brief      Read from source file from given offset to a buffer
155
/// \brief      Read from source file from given offset to a buffer
143
///
156
///
144
/// This is remotely similar to standard pread(). This uses lseek() though,
157
/// This is remotely similar to standard pread(). This uses lseek() though,
Lines 152-158 Link Here
152
///
165
///
153
/// \return     On success, false is returned. On error, error message
166
/// \return     On success, false is returned. On error, error message
154
///             is printed and true is returned.
167
///             is printed and true is returned.
155
extern bool io_pread(file_pair *pair, io_buf *buf, size_t size, off_t pos);
168
extern bool io_pread(file_pair *pair, io_buf *buf, size_t size, uint64_t pos);
156
169
157
170
158
/// \brief      Writes a buffer to the destination file
171
/// \brief      Writes a buffer to the destination file
(-)xz-5.2.5/src/xz/hardware.c (-27 / +185 lines)
Lines 17-28 Link Here
17
/// the --threads=NUM command line option.
17
/// the --threads=NUM command line option.
18
static uint32_t threads_max = 1;
18
static uint32_t threads_max = 1;
19
19
20
/// True when the number of threads is automatically determined based
21
/// on the available hardware threads.
22
static bool threads_are_automatic = false;
23
24
/// If true, then try to use multi-threaded mode (if memlimit allows)
25
/// even if only one thread was requested explicitly (-T+1).
26
static bool use_mt_mode_with_one_thread = false;
27
20
/// Memory usage limit for compression
28
/// Memory usage limit for compression
21
static uint64_t memlimit_compress;
29
static uint64_t memlimit_compress = 0;
22
30
23
/// Memory usage limit for decompression
31
/// Memory usage limit for decompression
24
static uint64_t memlimit_decompress;
32
static uint64_t memlimit_decompress = 0;
25
33
34
/// Default memory usage for multithreaded modes:
35
///
36
///   - Default value for --memlimit-compress when automatic number of threads
37
///     is used. However, if the limit wouldn't allow even one thread then
38
///     the limit is ignored in coder.c and one thread will be used anyway.
39
///     This mess is a compromise: we wish to prevent -T0 from using too
40
///     many threads but we also don't want xz to give an error due to
41
///     a memlimit that the user didn't explicitly set.
42
///
43
///   - Default value for --memlimit-mt-decompress
44
///
45
/// This value is caluclated in hardware_init() and cannot be changed later.
46
static uint64_t memlimit_mt_default;
47
48
/// Memory usage limit for multithreaded decompression. This is a soft limit:
49
/// if reducing the number of threads to one isn't enough to keep memory
50
/// usage below this limit, then one thread is used and this limit is ignored.
51
/// memlimit_decompress is still obeyed.
52
///
53
/// This can be set with --memlimit-mt-decompress. The default value for
54
/// this is memlimit_mt_default.
55
static uint64_t memlimit_mtdec;
56
26
/// Total amount of physical RAM
57
/// Total amount of physical RAM
27
static uint64_t total_ram;
58
static uint64_t total_ram;
28
59
Lines 30-37 Link Here
30
extern void
61
extern void
31
hardware_threads_set(uint32_t n)
62
hardware_threads_set(uint32_t n)
32
{
63
{
64
	// Reset these to false first and set them to true when appropriate.
65
	threads_are_automatic = false;
66
	use_mt_mode_with_one_thread = false;
67
33
	if (n == 0) {
68
	if (n == 0) {
34
		// Automatic number of threads was requested.
69
		// Automatic number of threads was requested.
70
		// If there is only one hardware thread, multi-threaded
71
		// mode will still be used if memory limit allows.
72
		threads_are_automatic = true;
73
		use_mt_mode_with_one_thread = true;
74
35
		// If threading support was enabled at build time,
75
		// If threading support was enabled at build time,
36
		// use the number of available CPU cores. Otherwise
76
		// use the number of available CPU cores. Otherwise
37
		// use one thread since disabling threading support
77
		// use one thread since disabling threading support
Lines 43-48 Link Here
43
#else
83
#else
44
		threads_max = 1;
84
		threads_max = 1;
45
#endif
85
#endif
86
	} else if (n == UINT32_MAX) {
87
		use_mt_mode_with_one_thread = true;
88
		threads_max = 1;
46
	} else {
89
	} else {
47
		threads_max = n;
90
		threads_max = n;
48
	}
91
	}
Lines 58-66 Link Here
58
}
101
}
59
102
60
103
104
extern bool
105
hardware_threads_is_mt(void)
106
{
107
#ifdef MYTHREAD_ENABLED
108
	return threads_max > 1 || use_mt_mode_with_one_thread;
109
#else
110
	return false;
111
#endif
112
}
113
114
61
extern void
115
extern void
62
hardware_memlimit_set(uint64_t new_memlimit,
116
hardware_memlimit_set(uint64_t new_memlimit,
63
		bool set_compress, bool set_decompress, bool is_percentage)
117
		bool set_compress, bool set_decompress, bool set_mtdec,
118
		bool is_percentage)
64
{
119
{
65
	if (is_percentage) {
120
	if (is_percentage) {
66
		assert(new_memlimit > 0);
121
		assert(new_memlimit > 0);
Lines 91-97 Link Here
91
		// Use a value less than SIZE_MAX so that there's some room
146
		// Use a value less than SIZE_MAX so that there's some room
92
		// for the xz program and so on. Don't use 4000 MiB because
147
		// for the xz program and so on. Don't use 4000 MiB because
93
		// it could look like someone mixed up base-2 and base-10.
148
		// it could look like someone mixed up base-2 and base-10.
149
#ifdef __mips__
150
		// For MIPS32, due to architectural pecularities,
151
		// the limit is even lower.
152
		const uint64_t limit_max = UINT64_C(2000) << 20;
153
#else
94
		const uint64_t limit_max = UINT64_C(4020) << 20;
154
		const uint64_t limit_max = UINT64_C(4020) << 20;
155
#endif
95
156
96
		// UINT64_MAX is a special case for the string "max" so
157
		// UINT64_MAX is a special case for the string "max" so
97
		// that has to be handled specially.
158
		// that has to be handled specially.
Lines 104-109 Link Here
104
	if (set_decompress)
165
	if (set_decompress)
105
		memlimit_decompress = new_memlimit;
166
		memlimit_decompress = new_memlimit;
106
167
168
	if (set_mtdec)
169
		memlimit_mtdec = new_memlimit;
170
107
	return;
171
	return;
108
}
172
}
109
173
Lines 111-142 Link Here
111
extern uint64_t
175
extern uint64_t
112
hardware_memlimit_get(enum operation_mode mode)
176
hardware_memlimit_get(enum operation_mode mode)
113
{
177
{
114
	// Zero is a special value that indicates the default. Currently
178
	// 0 is a special value that indicates the default.
115
	// the default simply disables the limit. Once there is threading
179
	// It disables the limit in single-threaded mode.
116
	// support, this might be a little more complex, because there will
180
	//
117
	// probably be a special case where a user asks for "optimal" number
181
	// NOTE: For multithreaded decompression, this is the hard limit
118
	// of threads instead of a specific number (this might even become
182
	// (memlimit_stop). hardware_memlimit_mtdec_get() gives the
119
	// the default mode). Each thread may use a significant amount of
183
	// soft limit (memlimit_threaded).
120
	// memory. When there are no memory usage limits set, we need some
121
	// default soft limit for calculating the "optimal" number of
122
	// threads.
123
	const uint64_t memlimit = mode == MODE_COMPRESS
184
	const uint64_t memlimit = mode == MODE_COMPRESS
124
			? memlimit_compress : memlimit_decompress;
185
			? memlimit_compress : memlimit_decompress;
125
	return memlimit != 0 ? memlimit : UINT64_MAX;
186
	return memlimit != 0 ? memlimit : UINT64_MAX;
126
}
187
}
127
188
128
189
190
extern uint64_t
191
hardware_memlimit_mtenc_get(void)
192
{
193
	return hardware_memlimit_mtenc_is_default()
194
			? memlimit_mt_default
195
			: hardware_memlimit_get(MODE_COMPRESS);
196
}
197
198
199
extern bool
200
hardware_memlimit_mtenc_is_default(void)
201
{
202
	return memlimit_compress == 0 && threads_are_automatic;
203
}
204
205
206
extern uint64_t
207
hardware_memlimit_mtdec_get(void)
208
{
209
	uint64_t m = memlimit_mtdec != 0
210
			? memlimit_mtdec
211
			: memlimit_mt_default;
212
213
	// Cap the value to memlimit_decompress if it has been specified.
214
	// This is nice for --info-memory. It wouldn't be needed for liblzma
215
	// since it does this anyway.
216
	if (memlimit_decompress != 0 && m > memlimit_decompress)
217
		m = memlimit_decompress;
218
219
	return m;
220
}
221
222
129
/// Helper for hardware_memlimit_show() to print one human-readable info line.
223
/// Helper for hardware_memlimit_show() to print one human-readable info line.
130
static void
224
static void
131
memlimit_show(const char *str, uint64_t value)
225
memlimit_show(const char *str, size_t str_columns, uint64_t value)
132
{
226
{
227
	// Calculate the field width so that str will be padded to take
228
	// str_columns on the terminal.
229
	//
230
	// NOTE: If the string is invalid, this will be -1. Using -1 as
231
	// the field width is fine here so it's not handled specially.
232
	const int fw = tuklib_mbstr_fw(str, (int)(str_columns));
233
133
	// The memory usage limit is considered to be disabled if value
234
	// The memory usage limit is considered to be disabled if value
134
	// is 0 or UINT64_MAX. This might get a bit more complex once there
235
	// is 0 or UINT64_MAX. This might get a bit more complex once there
135
	// is threading support. See the comment in hardware_memlimit_get().
236
	// is threading support. See the comment in hardware_memlimit_get().
136
	if (value == 0 || value == UINT64_MAX)
237
	if (value == 0 || value == UINT64_MAX)
137
		printf("%s %s\n", str, _("Disabled"));
238
		printf("  %-*s  %s\n", fw, str, _("Disabled"));
138
	else
239
	else
139
		printf("%s %s MiB (%s B)\n", str,
240
		printf("  %-*s  %s MiB (%s B)\n", fw, str,
140
				uint64_to_str(round_up_to_mib(value), 0),
241
				uint64_to_str(round_up_to_mib(value), 0),
141
				uint64_to_str(value, 1));
242
				uint64_to_str(value, 1));
142
243
Lines 147-164 Link Here
147
extern void
248
extern void
148
hardware_memlimit_show(void)
249
hardware_memlimit_show(void)
149
{
250
{
251
	uint32_t cputhreads = 1;
252
#ifdef MYTHREAD_ENABLED
253
	cputhreads = lzma_cputhreads();
254
	if (cputhreads == 0)
255
		cputhreads = 1;
256
#endif
257
150
	if (opt_robot) {
258
	if (opt_robot) {
151
		printf("%" PRIu64 "\t%" PRIu64 "\t%" PRIu64 "\n", total_ram,
259
		printf("%" PRIu64 "\t%" PRIu64 "\t%" PRIu64 "\t%" PRIu64
152
				memlimit_compress, memlimit_decompress);
260
				"\t%" PRIu64 "\t%" PRIu32 "\n",
261
				total_ram,
262
				memlimit_compress,
263
				memlimit_decompress,
264
				hardware_memlimit_mtdec_get(),
265
				memlimit_mt_default,
266
				cputhreads);
153
	} else {
267
	} else {
154
		// TRANSLATORS: Test with "xz --info-memory" to see if
268
		const char *msgs[] = {
155
		// the alignment looks nice.
269
			_("Amount of physical memory (RAM):"),
156
		memlimit_show(_("Total amount of physical memory (RAM): "),
270
			_("Number of processor threads:"),
157
				total_ram);
271
			_("Compression:"),
158
		memlimit_show(_("Memory usage limit for compression:    "),
272
			_("Decompression:"),
159
				memlimit_compress);
273
			_("Multi-threaded decompression:"),
160
		memlimit_show(_("Memory usage limit for decompression:  "),
274
			_("Default for -T0:"),
161
				memlimit_decompress);
275
		};
276
277
		size_t width_max = 1;
278
		for (unsigned i = 0; i < ARRAY_SIZE(msgs); ++i) {
279
			size_t w = tuklib_mbstr_width(msgs[i], NULL);
280
281
			// When debugging, catch invalid strings with
282
			// an assertion. Otherwise fallback to 1 so
283
			// that the columns just won't be aligned.
284
			assert(w != (size_t)-1);
285
			if (w == (size_t)-1)
286
				w = 1;
287
288
			if (width_max < w)
289
				width_max = w;
290
		}
291
292
		puts(_("Hardware information:"));
293
		memlimit_show(msgs[0], width_max, total_ram);
294
		printf("  %-*s  %" PRIu32 "\n",
295
				tuklib_mbstr_fw(msgs[1], (int)(width_max)),
296
				msgs[1], cputhreads);
297
298
		putchar('\n');
299
		puts(_("Memory usage limits:"));
300
		memlimit_show(msgs[2], width_max, memlimit_compress);
301
		memlimit_show(msgs[3], width_max, memlimit_decompress);
302
		memlimit_show(msgs[4], width_max,
303
				hardware_memlimit_mtdec_get());
304
		memlimit_show(msgs[5], width_max, memlimit_mt_default);
162
	}
305
	}
163
306
164
	tuklib_exit(E_SUCCESS, E_ERROR, message_verbosity_get() != V_SILENT);
307
	tuklib_exit(E_SUCCESS, E_ERROR, message_verbosity_get() != V_SILENT);
Lines 174-180 Link Here
174
	if (total_ram == 0)
317
	if (total_ram == 0)
175
		total_ram = (uint64_t)(ASSUME_RAM) * 1024 * 1024;
318
		total_ram = (uint64_t)(ASSUME_RAM) * 1024 * 1024;
176
319
177
	// Set the defaults.
320
	// FIXME? There may be better methods to determine the default value.
178
	hardware_memlimit_set(0, true, true, false);
321
	// One Linux-specific suggestion is to use MemAvailable from
322
	// /proc/meminfo as the starting point.
323
	memlimit_mt_default = total_ram / 4;
324
325
#if SIZE_MAX == UINT32_MAX
326
	// A too high value may cause 32-bit xz to run out of address space.
327
	// Use a conservative maximum value here. A few typical address space
328
	// sizes with Linux:
329
	//   - x86-64 with 32-bit xz: 4 GiB
330
	//   - x86: 3 GiB
331
	//   - MIPS32: 2 GiB
332
	const size_t mem_ceiling = 1400U << 20;
333
	if (memlimit_mt_default > mem_ceiling)
334
		memlimit_mt_default = mem_ceiling;
335
#endif
336
179
	return;
337
	return;
180
}
338
}
(-)xz-5.2.5/src/xz/hardware.h (-6 / +43 lines)
Lines 16-37 Link Here
16
16
17
17
18
/// Set the maximum number of worker threads.
18
/// Set the maximum number of worker threads.
19
/// A special value of UINT32_MAX sets one thread in multi-threaded mode.
19
extern void hardware_threads_set(uint32_t threadlimit);
20
extern void hardware_threads_set(uint32_t threadlimit);
20
21
21
/// Get the maximum number of worker threads.
22
/// Get the maximum number of worker threads.
22
extern uint32_t hardware_threads_get(void);
23
extern uint32_t hardware_threads_get(void);
23
24
25
/// Returns true if multithreaded mode should be used for .xz compression.
26
/// This can be true even if the number of threads is one.
27
extern bool hardware_threads_is_mt(void);
24
28
25
/// Set the memory usage limit. There are separate limits for compression
29
26
/// and decompression (the latter includes also --list), one or both can
30
/// Set the memory usage limit. There are separate limits for compression,
27
/// be set with a single call to this function. Zero indicates resetting
31
/// decompression (also includes --list), and multithreaded decompression.
28
/// the limit back to the defaults. The limit can also be set as a percentage
32
/// Any combination of these can be set with a single call to this function.
29
/// of installed RAM; the percentage must be in the range [1, 100].
33
/// Zero indicates resetting the limit back to the defaults.
34
/// The limit can also be set as a percentage of installed RAM; the
35
/// percentage must be in the range [1, 100].
30
extern void hardware_memlimit_set(uint64_t new_memlimit,
36
extern void hardware_memlimit_set(uint64_t new_memlimit,
31
		bool set_compress, bool set_decompress, bool is_percentage);
37
		bool set_compress, bool set_decompress, bool set_mtdec,
38
		bool is_percentage);
32
39
33
/// Get the current memory usage limit for compression or decompression.
40
/// Get the current memory usage limit for compression or decompression.
41
/// This is a hard limit that will not be exceeded. This is obeyed in
42
/// both single-threaded and multithreaded modes.
34
extern uint64_t hardware_memlimit_get(enum operation_mode mode);
43
extern uint64_t hardware_memlimit_get(enum operation_mode mode);
44
45
/// This returns a system-specific default value if all of the following
46
/// conditions are true:
47
///
48
///   - An automatic number of threads was requested (--threads=0).
49
///
50
///   - --memlimit-compress wasn't used or it was reset to the default
51
///     value by setting it to 0.
52
///
53
/// Otherwise this is identical to hardware_memlimit_get(MODE_COMPRESS).
54
///
55
/// The idea is to keep automatic thread count reasonable so that too
56
/// high memory usage is avoided and, with 32-bit xz, running out of
57
/// address space is avoided.
58
extern uint64_t hardware_memlimit_mtenc_get(void);
59
60
/// Returns true if the value returned by hardware_memlimit_mtenc_get() is
61
/// a system-specific default value. coder.c uses this to ignore the default
62
/// memlimit in case it's too small even for a single thread in multithreaded
63
/// mode. This way the default limit will never make xz fail or affect the
64
/// compressed output; it will only make xz reduce the number of threads.
65
extern bool hardware_memlimit_mtenc_is_default(void);
66
67
/// Get the current memory usage limit for multithreaded decompression.
68
/// This is only used to reduce the number of threads. This limit can be
69
/// exceeded if the number of threads are reduce to one. Then the value
70
/// from hardware_memlimit_get() will be honored like in single-threaded mode.
71
extern uint64_t hardware_memlimit_mtdec_get(void);
35
72
36
/// Display the amount of RAM and memory usage limits and exit.
73
/// Display the amount of RAM and memory usage limits and exit.
37
extern void hardware_memlimit_show(void) lzma_attribute((__noreturn__));
74
extern void hardware_memlimit_show(void) lzma_attribute((__noreturn__));
(-)xz-5.2.5/src/xz/list.c (-293 / +418 lines)
Lines 52-74 Link Here
52
	uint64_t memusage;
52
	uint64_t memusage;
53
53
54
	/// The filter chain of this Block in human-readable form
54
	/// The filter chain of this Block in human-readable form
55
	char filter_chain[FILTERS_STR_SIZE];
55
	char *filter_chain;
56
56
57
} block_header_info;
57
} block_header_info;
58
58
59
#define BLOCK_HEADER_INFO_INIT { .filter_chain = NULL }
60
#define block_header_info_end(bhi) free((bhi)->filter_chain)
59
61
62
63
/// Strings ending in a colon. These are used for lines like
64
/// "  Foo:   123 MiB". These are grouped because translated strings
65
/// may have different maximum string length, and we want to pad all
66
/// strings so that the values are aligned nicely.
67
static const char *colon_strs[] = {
68
	N_("Streams:"),
69
	N_("Blocks:"),
70
	N_("Compressed size:"),
71
	N_("Uncompressed size:"),
72
	N_("Ratio:"),
73
	N_("Check:"),
74
	N_("Stream Padding:"),
75
	N_("Memory needed:"),
76
	N_("Sizes in headers:"),
77
	// This won't be aligned because it's so long:
78
	//N_("Minimum XZ Utils version:"),
79
	N_("Number of files:"),
80
};
81
82
/// Enum matching the above strings.
83
enum {
84
	COLON_STR_STREAMS,
85
	COLON_STR_BLOCKS,
86
	COLON_STR_COMPRESSED_SIZE,
87
	COLON_STR_UNCOMPRESSED_SIZE,
88
	COLON_STR_RATIO,
89
	COLON_STR_CHECK,
90
	COLON_STR_STREAM_PADDING,
91
	COLON_STR_MEMORY_NEEDED,
92
	COLON_STR_SIZES_IN_HEADERS,
93
	//COLON_STR_MINIMUM_XZ_VERSION,
94
	COLON_STR_NUMBER_OF_FILES,
95
};
96
97
/// Field widths to use with printf to pad the strings to use the same number
98
/// of columns on a terminal.
99
static int colon_strs_fw[ARRAY_SIZE(colon_strs)];
100
101
/// Convenience macro to get the translated string and its field width
102
/// using a COLON_STR_foo enum.
103
#define COLON_STR(num) colon_strs_fw[num], _(colon_strs[num])
104
105
106
/// Column headings
107
static struct {
108
	/// Table column heading string
109
	const char *str;
110
111
	/// Number of terminal-columns to use for this table-column.
112
	/// If a translated string is longer than the initial value,
113
	/// this value will be increased in init_headings().
114
	int columns;
115
116
	/// Field width to use for printf() to pad "str" to use "columns"
117
	/// number of columns on a terminal. This is calculated in
118
	/// init_headings().
119
	int fw;
120
121
} headings[] = {
122
	{ N_("Stream"), 6, 0 },
123
	{ N_("Block"), 9, 0 },
124
	{ N_("Blocks"), 9, 0 },
125
	{ N_("CompOffset"), 15, 0 },
126
	{ N_("UncompOffset"), 15, 0 },
127
	{ N_("CompSize"), 15, 0 },
128
	{ N_("UncompSize"), 15, 0 },
129
	{ N_("TotalSize"), 15, 0 },
130
	{ N_("Ratio"), 5, 0 },
131
	{ N_("Check"), 10, 0 },
132
	{ N_("CheckVal"), 1, 0 },
133
	{ N_("Padding"), 7, 0 },
134
	{ N_("Header"), 5, 0 },
135
	{ N_("Flags"), 2, 0 },
136
	{ N_("MemUsage"), 7 + 4, 0 }, // +4 is for " MiB"
137
	{ N_("Filters"), 1, 0 },
138
};
139
140
/// Enum matching the above strings.
141
enum {
142
	HEADING_STREAM,
143
	HEADING_BLOCK,
144
	HEADING_BLOCKS,
145
	HEADING_COMPOFFSET,
146
	HEADING_UNCOMPOFFSET,
147
	HEADING_COMPSIZE,
148
	HEADING_UNCOMPSIZE,
149
	HEADING_TOTALSIZE,
150
	HEADING_RATIO,
151
	HEADING_CHECK,
152
	HEADING_CHECKVAL,
153
	HEADING_PADDING,
154
	HEADING_HEADERSIZE,
155
	HEADING_HEADERFLAGS,
156
	HEADING_MEMUSAGE,
157
	HEADING_FILTERS,
158
};
159
160
#define HEADING_STR(num) headings[num].fw, _(headings[num].str)
161
162
60
/// Check ID to string mapping
163
/// Check ID to string mapping
61
static const char check_names[LZMA_CHECK_ID_MAX + 1][12] = {
164
static const char check_names[LZMA_CHECK_ID_MAX + 1][12] = {
62
	// TRANSLATORS: Indicates that there is no integrity check.
165
	// TRANSLATORS: Indicates that there is no integrity check.
63
	// This string is used in tables, so the width must not
166
	// This string is used in tables. In older xz version this
64
	// exceed ten columns with a fixed-width font.
167
	// string was limited to ten columns in a fixed-width font, but
168
	// nowadays there is no strict length restriction anymore.
65
	N_("None"),
169
	N_("None"),
66
	"CRC32",
170
	"CRC32",
67
	// TRANSLATORS: Indicates that integrity check name is not known,
171
	// TRANSLATORS: Indicates that integrity check name is not known,
68
	// but the Check ID is known (here 2). This and other "Unknown-N"
172
	// but the Check ID is known (here 2). In older xz version these
69
	// strings are used in tables, so the width must not exceed ten
173
	// strings were limited to ten columns in a fixed-width font, but
70
	// columns with a fixed-width font. It's OK to omit the dash if
174
	// nowadays there is no strict length restriction anymore.
71
	// you need space for one extra letter, but don't use spaces.
72
	N_("Unknown-2"),
175
	N_("Unknown-2"),
73
	N_("Unknown-3"),
176
	N_("Unknown-3"),
74
	"CRC64",
177
	"CRC64",
Lines 112-117 Link Here
112
} totals = { 0, 0, 0, 0, 0, 0, 0, 0, 50000002, true };
215
} totals = { 0, 0, 0, 0, 0, 0, 0, 0, 50000002, true };
113
216
114
217
218
/// Initialize colon_strs_fw[].
219
static void
220
init_colon_strs(void)
221
{
222
	// Lengths of translated strings as bytes.
223
	size_t lens[ARRAY_SIZE(colon_strs)];
224
225
	// Lengths of translated strings as columns.
226
	size_t widths[ARRAY_SIZE(colon_strs)];
227
228
	// Maximum number of columns needed by a translated string.
229
	size_t width_max = 0;
230
231
	for (unsigned i = 0; i < ARRAY_SIZE(colon_strs); ++i) {
232
		widths[i] = tuklib_mbstr_width(_(colon_strs[i]), &lens[i]);
233
234
		// If debugging is enabled, catch invalid strings with
235
		// an assertion. However, when not debugging, use the
236
		// byte count as the fallback width. This shouldn't
237
		// ever happen unless there is a bad string in the
238
		// translations, but in such case I guess it's better
239
		// to try to print something useful instead of failing
240
		// completely.
241
		assert(widths[i] != (size_t)-1);
242
		if (widths[i] == (size_t)-1)
243
			widths[i] = lens[i];
244
245
		if (widths[i] > width_max)
246
			width_max = widths[i];
247
	}
248
249
	// Calculate the field width for printf("%*s") so that the strings
250
	// will use width_max columns on a terminal.
251
	for (unsigned i = 0; i < ARRAY_SIZE(colon_strs); ++i)
252
		colon_strs_fw[i] = (int)(lens[i] + width_max - widths[i]);
253
254
	return;
255
}
256
257
258
/// Initialize headings[].
259
static void
260
init_headings(void)
261
{
262
	// Before going through the heading strings themselves, treat
263
	// the Check heading specially: Look at the widths of the various
264
	// check names and increase the width of the Check column if needed.
265
	// The width of the heading name "Check" will then be handled normally
266
	// with other heading names in the second loop in this function.
267
	for (unsigned i = 0; i < ARRAY_SIZE(check_names); ++i) {
268
		size_t len;
269
		size_t w = tuklib_mbstr_width(_(check_names[i]), &len);
270
271
		// Error handling like in init_colon_strs().
272
		assert(w != (size_t)-1);
273
		if (w == (size_t)-1)
274
			w = len;
275
276
		// If the translated string is wider than the minimum width
277
		// set at compile time, increase the width.
278
		if ((size_t)(headings[HEADING_CHECK].columns) < w)
279
			headings[HEADING_CHECK].columns = (int)w;
280
	}
281
282
	for (unsigned i = 0; i < ARRAY_SIZE(headings); ++i) {
283
		size_t len;
284
		size_t w = tuklib_mbstr_width(_(headings[i].str), &len);
285
286
		// Error handling like in init_colon_strs().
287
		assert(w != (size_t)-1);
288
		if (w == (size_t)-1)
289
			w = len;
290
291
		// If the translated string is wider than the minimum width
292
		// set at compile time, increase the width.
293
		if ((size_t)(headings[i].columns) < w)
294
			headings[i].columns = (int)w;
295
296
		// Calculate the field width for printf("%*s") so that
297
		// the string uses .columns number of columns on a terminal.
298
		headings[i].fw = (int)(len + (size_t)headings[i].columns - w);
299
	}
300
301
	return;
302
}
303
304
305
/// Initialize the printf field widths that are needed to get nicely aligned
306
/// output with translated strings.
307
static void
308
init_field_widths(void)
309
{
310
	init_colon_strs();
311
	init_headings();
312
	return;
313
}
314
315
115
/// Convert XZ Utils version number to a string.
316
/// Convert XZ Utils version number to a string.
116
static const char *
317
static const char *
117
xz_ver_to_str(uint32_t ver)
318
xz_ver_to_str(uint32_t ver)
Lines 143-151 Link Here
143
///
344
///
144
/// \return     On success, false is returned. On error, true is returned.
345
/// \return     On success, false is returned. On error, true is returned.
145
///
346
///
146
// TODO: This function is pretty big. liblzma should have a function that
147
// takes a callback function to parse the Index(es) from a .xz file to make
148
// it easy for applications.
149
static bool
347
static bool
150
parse_indexes(xz_file_info *xfi, file_pair *pair)
348
parse_indexes(xz_file_info *xfi, file_pair *pair)
151
{
349
{
Lines 161-398 Link Here
161
	}
359
	}
162
360
163
	io_buf buf;
361
	io_buf buf;
164
	lzma_stream_flags header_flags;
165
	lzma_stream_flags footer_flags;
166
	lzma_ret ret;
167
168
	// lzma_stream for the Index decoder
169
	lzma_stream strm = LZMA_STREAM_INIT;
362
	lzma_stream strm = LZMA_STREAM_INIT;
363
	lzma_index *idx = NULL;
170
364
171
	// All Indexes decoded so far
365
	lzma_ret ret = lzma_file_info_decoder(&strm, &idx,
172
	lzma_index *combined_index = NULL;
366
			hardware_memlimit_get(MODE_LIST),
367
			(uint64_t)(pair->src_st.st_size));
368
	if (ret != LZMA_OK) {
369
		message_error("%s: %s", pair->src_name, message_strm(ret));
370
		return true;
371
	}
173
372
174
	// The Index currently being decoded
373
	while (true) {
175
	lzma_index *this_index = NULL;
374
		if (strm.avail_in == 0) {
176
375
			strm.next_in = buf.u8;
177
	// Current position in the file. We parse the file backwards so
376
			strm.avail_in = io_read(pair, &buf, IO_BUFFER_SIZE);
178
	// initialize it to point to the end of the file.
377
			if (strm.avail_in == SIZE_MAX)
179
	off_t pos = pair->src_st.st_size;
378
				goto error;
180
181
	// Each loop iteration decodes one Index.
182
	do {
183
		// Check that there is enough data left to contain at least
184
		// the Stream Header and Stream Footer. This check cannot
185
		// fail in the first pass of this loop.
186
		if (pos < 2 * LZMA_STREAM_HEADER_SIZE) {
187
			message_error("%s: %s", pair->src_name,
188
					message_strm(LZMA_DATA_ERROR));
189
			goto error;
190
		}
379
		}
191
380
192
		pos -= LZMA_STREAM_HEADER_SIZE;
381
		ret = lzma_code(&strm, LZMA_RUN);
193
		lzma_vli stream_padding = 0;
194
382
195
		// Locate the Stream Footer. There may be Stream Padding which
383
		switch (ret) {
196
		// we must skip when reading backwards.
384
		case LZMA_OK:
197
		while (true) {
385
			break;
198
			if (pos < LZMA_STREAM_HEADER_SIZE) {
199
				message_error("%s: %s", pair->src_name,
200
						message_strm(
201
							LZMA_DATA_ERROR));
202
				goto error;
203
			}
204
386
205
			if (io_pread(pair, &buf,
387
		case LZMA_SEEK_NEEDED:
206
					LZMA_STREAM_HEADER_SIZE, pos))
388
			// liblzma won't ask us to seek past the known size
389
			// of the input file.
390
			assert(strm.seek_pos
391
					<= (uint64_t)(pair->src_st.st_size));
392
			if (io_seek_src(pair, strm.seek_pos))
207
				goto error;
393
				goto error;
208
394
209
			// Stream Padding is always a multiple of four bytes.
395
			// avail_in must be zero so that we will read new
210
			int i = 2;
396
			// input.
211
			if (buf.u32[i] != 0)
397
			strm.avail_in = 0;
212
				break;
398
			break;
213
399
214
			// To avoid calling io_pread() for every four bytes
400
		case LZMA_STREAM_END: {
215
			// of Stream Padding, take advantage that we read
401
			lzma_end(&strm);
216
			// 12 bytes (LZMA_STREAM_HEADER_SIZE) already and
402
			xfi->idx = idx;
217
			// check them too before calling io_pread() again.
218
			do {
219
				stream_padding += 4;
220
				pos -= 4;
221
				--i;
222
			} while (i >= 0 && buf.u32[i] == 0);
223
		}
224
403
225
		// Decode the Stream Footer.
404
			// Calculate xfi->stream_padding.
226
		ret = lzma_stream_footer_decode(&footer_flags, buf.u8);
405
			lzma_index_iter iter;
227
		if (ret != LZMA_OK) {
406
			lzma_index_iter_init(&iter, xfi->idx);
228
			message_error("%s: %s", pair->src_name,
407
			while (!lzma_index_iter_next(&iter,
229
					message_strm(ret));
408
					LZMA_INDEX_ITER_STREAM))
230
			goto error;
409
				xfi->stream_padding += iter.stream.padding;
231
		}
232
410
233
		// Check that the Stream Footer doesn't specify something
411
			return false;
234
		// that we don't support. This can only happen if the xz
235
		// version is older than liblzma and liblzma supports
236
		// something new.
237
		//
238
		// It is enough to check Stream Footer. Stream Header must
239
		// match when it is compared against Stream Footer with
240
		// lzma_stream_flags_compare().
241
		if (footer_flags.version != 0) {
242
			message_error("%s: %s", pair->src_name,
243
					message_strm(LZMA_OPTIONS_ERROR));
244
			goto error;
245
		}
412
		}
246
413
247
		// Check that the size of the Index field looks sane.
414
		default:
248
		lzma_vli index_size = footer_flags.backward_size;
249
		if ((lzma_vli)(pos) < index_size + LZMA_STREAM_HEADER_SIZE) {
250
			message_error("%s: %s", pair->src_name,
415
			message_error("%s: %s", pair->src_name,
251
					message_strm(LZMA_DATA_ERROR));
252
			goto error;
253
		}
254
255
		// Set pos to the beginning of the Index.
256
		pos -= index_size;
257
258
		// See how much memory we can use for decoding this Index.
259
		uint64_t memlimit = hardware_memlimit_get(MODE_LIST);
260
		uint64_t memused = 0;
261
		if (combined_index != NULL) {
262
			memused = lzma_index_memused(combined_index);
263
			if (memused > memlimit)
264
				message_bug();
265
266
			memlimit -= memused;
267
		}
268
269
		// Decode the Index.
270
		ret = lzma_index_decoder(&strm, &this_index, memlimit);
271
		if (ret != LZMA_OK) {
272
			message_error("%s: %s", pair->src_name,
273
					message_strm(ret));
416
					message_strm(ret));
274
			goto error;
275
		}
276
417
277
		do {
278
			// Don't give the decoder more input than the
279
			// Index size.
280
			strm.avail_in = my_min(IO_BUFFER_SIZE, index_size);
281
			if (io_pread(pair, &buf, strm.avail_in, pos))
282
				goto error;
283
284
			pos += strm.avail_in;
285
			index_size -= strm.avail_in;
286
287
			strm.next_in = buf.u8;
288
			ret = lzma_code(&strm, LZMA_RUN);
289
290
		} while (ret == LZMA_OK);
291
292
		// If the decoding seems to be successful, check also that
293
		// the Index decoder consumed as much input as indicated
294
		// by the Backward Size field.
295
		if (ret == LZMA_STREAM_END)
296
			if (index_size != 0 || strm.avail_in != 0)
297
				ret = LZMA_DATA_ERROR;
298
299
		if (ret != LZMA_STREAM_END) {
300
			// LZMA_BUFFER_ERROR means that the Index decoder
301
			// would have liked more input than what the Index
302
			// size should be according to Stream Footer.
303
			// The message for LZMA_DATA_ERROR makes more
304
			// sense in that case.
305
			if (ret == LZMA_BUF_ERROR)
306
				ret = LZMA_DATA_ERROR;
307
308
			message_error("%s: %s", pair->src_name,
309
					message_strm(ret));
310
311
			// If the error was too low memory usage limit,
418
			// If the error was too low memory usage limit,
312
			// show also how much memory would have been needed.
419
			// show also how much memory would have been needed.
313
			if (ret == LZMA_MEMLIMIT_ERROR) {
420
			if (ret == LZMA_MEMLIMIT_ERROR)
314
				uint64_t needed = lzma_memusage(&strm);
421
				message_mem_needed(V_ERROR,
315
				if (UINT64_MAX - needed < memused)
422
						lzma_memusage(&strm));
316
					needed = UINT64_MAX;
317
				else
318
					needed += memused;
319
423
320
				message_mem_needed(V_ERROR, needed);
321
			}
322
323
			goto error;
424
			goto error;
324
		}
425
		}
426
	}
325
427
326
		// Decode the Stream Header and check that its Stream Flags
327
		// match the Stream Footer.
328
		pos -= footer_flags.backward_size + LZMA_STREAM_HEADER_SIZE;
329
		if ((lzma_vli)(pos) < lzma_index_total_size(this_index)) {
330
			message_error("%s: %s", pair->src_name,
331
					message_strm(LZMA_DATA_ERROR));
332
			goto error;
333
		}
334
335
		pos -= lzma_index_total_size(this_index);
336
		if (io_pread(pair, &buf, LZMA_STREAM_HEADER_SIZE, pos))
337
			goto error;
338
339
		ret = lzma_stream_header_decode(&header_flags, buf.u8);
340
		if (ret != LZMA_OK) {
341
			message_error("%s: %s", pair->src_name,
342
					message_strm(ret));
343
			goto error;
344
		}
345
346
		ret = lzma_stream_flags_compare(&header_flags, &footer_flags);
347
		if (ret != LZMA_OK) {
348
			message_error("%s: %s", pair->src_name,
349
					message_strm(ret));
350
			goto error;
351
		}
352
353
		// Store the decoded Stream Flags into this_index. This is
354
		// needed so that we can print which Check is used in each
355
		// Stream.
356
		ret = lzma_index_stream_flags(this_index, &footer_flags);
357
		if (ret != LZMA_OK)
358
			message_bug();
359
360
		// Store also the size of the Stream Padding field. It is
361
		// needed to show the offsets of the Streams correctly.
362
		ret = lzma_index_stream_padding(this_index, stream_padding);
363
		if (ret != LZMA_OK)
364
			message_bug();
365
366
		if (combined_index != NULL) {
367
			// Append the earlier decoded Indexes
368
			// after this_index.
369
			ret = lzma_index_cat(
370
					this_index, combined_index, NULL);
371
			if (ret != LZMA_OK) {
372
				message_error("%s: %s", pair->src_name,
373
						message_strm(ret));
374
				goto error;
375
			}
376
		}
377
378
		combined_index = this_index;
379
		this_index = NULL;
380
381
		xfi->stream_padding += stream_padding;
382
383
	} while (pos > 0);
384
385
	lzma_end(&strm);
386
387
	// All OK. Make combined_index available to the caller.
388
	xfi->idx = combined_index;
389
	return false;
390
391
error:
428
error:
392
	// Something went wrong, free the allocated memory.
393
	lzma_end(&strm);
429
	lzma_end(&strm);
394
	lzma_index_end(combined_index, NULL);
395
	lzma_index_end(this_index, NULL);
396
	return true;
430
	return true;
397
}
431
}
398
432
Lines 454-459 Link Here
454
	// Check the Block Flags. These must be done before calling
488
	// Check the Block Flags. These must be done before calling
455
	// lzma_block_compressed_size(), because it overwrites
489
	// lzma_block_compressed_size(), because it overwrites
456
	// block.compressed_size.
490
	// block.compressed_size.
491
	//
492
	// NOTE: If you add new characters here, update the minimum number of
493
	// columns in headings[HEADING_HEADERFLAGS] to match the number of
494
	// characters used here.
457
	bhi->flags[0] = block.compressed_size != LZMA_VLI_UNKNOWN
495
	bhi->flags[0] = block.compressed_size != LZMA_VLI_UNKNOWN
458
			? 'c' : '-';
496
			? 'c' : '-';
459
	bhi->flags[1] = block.uncompressed_size != LZMA_VLI_UNKNOWN
497
	bhi->flags[1] = block.uncompressed_size != LZMA_VLI_UNKNOWN
Lines 488-496 Link Here
488
526
489
	case LZMA_DATA_ERROR:
527
	case LZMA_DATA_ERROR:
490
		// Free the memory allocated by lzma_block_header_decode().
528
		// Free the memory allocated by lzma_block_header_decode().
491
		for (size_t i = 0; filters[i].id != LZMA_VLI_UNKNOWN; ++i)
529
		lzma_filters_free(filters, NULL);
492
			free(filters[i].options);
493
494
		goto data_error;
530
		goto data_error;
495
531
496
	default:
532
	default:
Lines 509-534 Link Here
509
545
510
	// Determine the minimum XZ Utils version that supports this Block.
546
	// Determine the minimum XZ Utils version that supports this Block.
511
	//
547
	//
512
	// Currently the only thing that 5.0.0 doesn't support is empty
548
	//   - ARM64 filter needs 5.4.0.
513
	// LZMA2 Block. This decoder bug was fixed in 5.0.2.
549
	//
514
	{
550
	//   - 5.0.0 doesn't support empty LZMA2 streams and thus empty
551
	//     Blocks that use LZMA2. This decoder bug was fixed in 5.0.2.
552
	if (xfi->min_version < 50040002U) {
553
		for (size_t i = 0; filters[i].id != LZMA_VLI_UNKNOWN; ++i) {
554
			if (filters[i].id == LZMA_FILTER_ARM64) {
555
				xfi->min_version = 50040002U;
556
				break;
557
			}
558
		}
559
	}
560
561
	if (xfi->min_version < 50000022U) {
515
		size_t i = 0;
562
		size_t i = 0;
516
		while (filters[i + 1].id != LZMA_VLI_UNKNOWN)
563
		while (filters[i + 1].id != LZMA_VLI_UNKNOWN)
517
			++i;
564
			++i;
518
565
519
		if (filters[i].id == LZMA_FILTER_LZMA2
566
		if (filters[i].id == LZMA_FILTER_LZMA2
520
				&& iter->block.uncompressed_size == 0
567
				&& iter->block.uncompressed_size == 0)
521
				&& xfi->min_version < 50000022U)
522
			xfi->min_version = 50000022U;
568
			xfi->min_version = 50000022U;
523
	}
569
	}
524
570
525
	// Convert the filter chain to human readable form.
571
	// Convert the filter chain to human readable form.
526
	message_filters_to_str(bhi->filter_chain, filters, false);
572
	const lzma_ret str_ret = lzma_str_from_filters(
573
			&bhi->filter_chain, filters,
574
			LZMA_STR_DECODER | LZMA_STR_GETOPT_LONG, NULL);
527
575
528
	// Free the memory allocated by lzma_block_header_decode().
576
	// Free the memory allocated by lzma_block_header_decode().
529
	for (size_t i = 0; filters[i].id != LZMA_VLI_UNKNOWN; ++i)
577
	lzma_filters_free(filters, NULL);
530
		free(filters[i].options);
531
578
579
	// Check if the stringification succeeded.
580
	if (str_ret != LZMA_OK) {
581
		message_error("%s: %s", pair->src_name, message_strm(str_ret));
582
		return true;
583
	}
584
532
	return false;
585
	return false;
533
586
534
data_error:
587
data_error:
Lines 553-559 Link Here
553
606
554
	// Locate and read the Check field.
607
	// Locate and read the Check field.
555
	const uint32_t size = lzma_check_size(iter->stream.flags->check);
608
	const uint32_t size = lzma_check_size(iter->stream.flags->check);
556
	const off_t offset = iter->block.compressed_file_offset
609
	const uint64_t offset = iter->block.compressed_file_offset
557
			+ iter->block.total_size - size;
610
			+ iter->block.total_size - size;
558
	io_buf buf;
611
	io_buf buf;
559
	if (io_pread(pair, &buf, size, offset))
612
	if (io_pread(pair, &buf, size, offset))
Lines 714-733 Link Here
714
	char checks_str[CHECKS_STR_SIZE];
767
	char checks_str[CHECKS_STR_SIZE];
715
	get_check_names(checks_str, checks, true);
768
	get_check_names(checks_str, checks, true);
716
769
717
	printf(_("  Streams:            %s\n"),
770
	printf("  %-*s %s\n", COLON_STR(COLON_STR_STREAMS),
718
			uint64_to_str(stream_count, 0));
771
			uint64_to_str(stream_count, 0));
719
	printf(_("  Blocks:             %s\n"),
772
	printf("  %-*s %s\n", COLON_STR(COLON_STR_BLOCKS),
720
			uint64_to_str(block_count, 0));
773
			uint64_to_str(block_count, 0));
721
	printf(_("  Compressed size:    %s\n"),
774
	printf("  %-*s %s\n", COLON_STR(COLON_STR_COMPRESSED_SIZE),
722
			uint64_to_nicestr(compressed_size,
775
			uint64_to_nicestr(compressed_size,
723
				NICESTR_B, NICESTR_TIB, true, 0));
776
				NICESTR_B, NICESTR_TIB, true, 0));
724
	printf(_("  Uncompressed size:  %s\n"),
777
	printf("  %-*s %s\n", COLON_STR(COLON_STR_UNCOMPRESSED_SIZE),
725
			uint64_to_nicestr(uncompressed_size,
778
			uint64_to_nicestr(uncompressed_size,
726
				NICESTR_B, NICESTR_TIB, true, 0));
779
				NICESTR_B, NICESTR_TIB, true, 0));
727
	printf(_("  Ratio:              %s\n"),
780
	printf("  %-*s %s\n", COLON_STR(COLON_STR_RATIO),
728
			get_ratio(compressed_size, uncompressed_size));
781
			get_ratio(compressed_size, uncompressed_size));
729
	printf(_("  Check:              %s\n"), checks_str);
782
	printf("  %-*s %s\n", COLON_STR(COLON_STR_CHECK), checks_str);
730
	printf(_("  Stream padding:     %s\n"),
783
	printf("  %-*s %s\n", COLON_STR(COLON_STR_STREAM_PADDING),
731
			uint64_to_nicestr(stream_padding,
784
			uint64_to_nicestr(stream_padding,
732
				NICESTR_B, NICESTR_TIB, true, 0));
785
				NICESTR_B, NICESTR_TIB, true, 0));
733
	return;
786
	return;
Lines 752-764 Link Here
752
805
753
	// Print information about the Streams.
806
	// Print information about the Streams.
754
	//
807
	//
755
	// TRANSLATORS: The second line is column headings. All except
808
	// All except Check are right aligned; Check is left aligned.
756
	// Check are right aligned; Check is left aligned. Test with
809
	// Test with "xz -lv foo.xz".
757
	// "xz -lv foo.xz".
810
	printf("  %s\n    %*s %*s %*s %*s %*s %*s  %*s  %-*s %*s\n",
758
	puts(_("  Streams:\n    Stream    Blocks"
811
			_(colon_strs[COLON_STR_STREAMS]),
759
			"      CompOffset    UncompOffset"
812
			HEADING_STR(HEADING_STREAM),
760
			"        CompSize      UncompSize  Ratio"
813
			HEADING_STR(HEADING_BLOCKS),
761
			"  Check      Padding"));
814
			HEADING_STR(HEADING_COMPOFFSET),
815
			HEADING_STR(HEADING_UNCOMPOFFSET),
816
			HEADING_STR(HEADING_COMPSIZE),
817
			HEADING_STR(HEADING_UNCOMPSIZE),
818
			HEADING_STR(HEADING_RATIO),
819
			HEADING_STR(HEADING_CHECK),
820
			HEADING_STR(HEADING_PADDING));
762
821
763
	lzma_index_iter iter;
822
	lzma_index_iter iter;
764
	lzma_index_iter_init(&iter, xfi->idx);
823
	lzma_index_iter_init(&iter, xfi->idx);
Lines 771-780 Link Here
771
			uint64_to_str(iter.stream.uncompressed_offset, 3),
830
			uint64_to_str(iter.stream.uncompressed_offset, 3),
772
		};
831
		};
773
		printf("    %*s %*s %*s %*s ",
832
		printf("    %*s %*s %*s %*s ",
774
				tuklib_mbstr_fw(cols1[0], 6), cols1[0],
833
			tuklib_mbstr_fw(cols1[0],
775
				tuklib_mbstr_fw(cols1[1], 9), cols1[1],
834
				headings[HEADING_STREAM].columns),
776
				tuklib_mbstr_fw(cols1[2], 15), cols1[2],
835
			cols1[0],
777
				tuklib_mbstr_fw(cols1[3], 15), cols1[3]);
836
			tuklib_mbstr_fw(cols1[1],
837
				headings[HEADING_BLOCKS].columns),
838
			cols1[1],
839
			tuklib_mbstr_fw(cols1[2],
840
				headings[HEADING_COMPOFFSET].columns),
841
			cols1[2],
842
			tuklib_mbstr_fw(cols1[3],
843
				headings[HEADING_UNCOMPOFFSET].columns),
844
			cols1[3]);
778
845
779
		const char *cols2[5] = {
846
		const char *cols2[5] = {
780
			uint64_to_str(iter.stream.compressed_size, 0),
847
			uint64_to_str(iter.stream.compressed_size, 0),
Lines 785-795 Link Here
785
			uint64_to_str(iter.stream.padding, 2),
852
			uint64_to_str(iter.stream.padding, 2),
786
		};
853
		};
787
		printf("%*s %*s  %*s  %-*s %*s\n",
854
		printf("%*s %*s  %*s  %-*s %*s\n",
788
				tuklib_mbstr_fw(cols2[0], 15), cols2[0],
855
			tuklib_mbstr_fw(cols2[0],
789
				tuklib_mbstr_fw(cols2[1], 15), cols2[1],
856
				headings[HEADING_COMPSIZE].columns),
790
				tuklib_mbstr_fw(cols2[2], 5), cols2[2],
857
			cols2[0],
791
				tuklib_mbstr_fw(cols2[3], 10), cols2[3],
858
			tuklib_mbstr_fw(cols2[1],
792
				tuklib_mbstr_fw(cols2[4], 7), cols2[4]);
859
				headings[HEADING_UNCOMPSIZE].columns),
860
			cols2[1],
861
			tuklib_mbstr_fw(cols2[2],
862
				headings[HEADING_RATIO].columns),
863
			cols2[2],
864
			tuklib_mbstr_fw(cols2[3],
865
				headings[HEADING_CHECK].columns),
866
			cols2[3],
867
			tuklib_mbstr_fw(cols2[4],
868
				headings[HEADING_PADDING].columns),
869
			cols2[4]);
793
870
794
		// Update the maximum Check size.
871
		// Update the maximum Check size.
795
		if (lzma_check_size(iter.stream.flags->check) > check_max)
872
		if (lzma_check_size(iter.stream.flags->check) > check_max)
Lines 799-830 Link Here
799
	// Cache the verbosity level to a local variable.
876
	// Cache the verbosity level to a local variable.
800
	const bool detailed = message_verbosity_get() >= V_DEBUG;
877
	const bool detailed = message_verbosity_get() >= V_DEBUG;
801
878
802
	// Information collected from Block Headers
803
	block_header_info bhi;
804
805
	// Print information about the Blocks but only if there is
879
	// Print information about the Blocks but only if there is
806
	// at least one Block.
880
	// at least one Block.
807
	if (lzma_index_block_count(xfi->idx) > 0) {
881
	if (lzma_index_block_count(xfi->idx) > 0) {
808
		// Calculate the width of the CheckVal field.
882
		// Calculate the width of the CheckVal column. This can be
809
		const int checkval_width = my_max(8, 2 * check_max);
883
		// used as is as the field width for printf() when printing
884
		// the actual check value as it is hexadecimal. However, to
885
		// print the column heading, further calculation is needed
886
		// to handle a translated string (it's done a few lines later).
887
		assert(check_max <= LZMA_CHECK_SIZE_MAX);
888
		const int checkval_width = my_max(
889
				headings[HEADING_CHECKVAL].columns,
890
				(int)(2 * check_max));
810
891
811
		// TRANSLATORS: The second line is column headings. All
892
		// All except Check are right aligned; Check is left aligned.
812
		// except Check are right aligned; Check is left aligned.
893
		printf("  %s\n    %*s %*s %*s %*s %*s %*s  %*s  %-*s",
813
		printf(_("  Blocks:\n    Stream     Block"
894
				_(colon_strs[COLON_STR_BLOCKS]),
814
			"      CompOffset    UncompOffset"
895
				HEADING_STR(HEADING_STREAM),
815
			"       TotalSize      UncompSize  Ratio  Check"));
896
				HEADING_STR(HEADING_BLOCK),
897
				HEADING_STR(HEADING_COMPOFFSET),
898
				HEADING_STR(HEADING_UNCOMPOFFSET),
899
				HEADING_STR(HEADING_TOTALSIZE),
900
				HEADING_STR(HEADING_UNCOMPSIZE),
901
				HEADING_STR(HEADING_RATIO),
902
				detailed ? headings[HEADING_CHECK].fw : 1,
903
				_(headings[HEADING_CHECK].str));
816
904
817
		if (detailed) {
905
		if (detailed) {
818
			// TRANSLATORS: These are additional column headings
906
			// CheckVal (Check value), Flags, and Filters are
819
			// for the most verbose listing mode. CheckVal
907
			// left aligned. Block Header Size, CompSize, and
820
			// (Check value), Flags, and Filters are left aligned.
908
			// MemUsage are right aligned. Test with
821
			// Header (Block Header Size), CompSize, and MemUsage
909
			// "xz -lvv foo.xz".
822
			// are right aligned. %*s is replaced with 0-120
910
			printf(" %-*s  %*s  %-*s %*s %*s  %s",
823
			// spaces to make the CheckVal column wide enough.
911
				headings[HEADING_CHECKVAL].fw
824
			// Test with "xz -lvv foo.xz".
912
					+ checkval_width
825
			printf(_("      CheckVal %*s Header  Flags        "
913
					- headings[HEADING_CHECKVAL].columns,
826
					"CompSize    MemUsage  Filters"),
914
				_(headings[HEADING_CHECKVAL].str),
827
					checkval_width - 8, "");
915
				HEADING_STR(HEADING_HEADERSIZE),
916
				HEADING_STR(HEADING_HEADERFLAGS),
917
				HEADING_STR(HEADING_COMPSIZE),
918
				HEADING_STR(HEADING_MEMUSAGE),
919
				_(headings[HEADING_FILTERS].str));
828
		}
920
		}
829
921
830
		putchar('\n');
922
		putchar('\n');
Lines 833-840 Link Here
833
925
834
		// Iterate over the Blocks.
926
		// Iterate over the Blocks.
835
		while (!lzma_index_iter_next(&iter, LZMA_INDEX_ITER_BLOCK)) {
927
		while (!lzma_index_iter_next(&iter, LZMA_INDEX_ITER_BLOCK)) {
928
			// If in detailed mode, collect the information from
929
			// Block Header before starting to print the next line.
930
			block_header_info bhi = BLOCK_HEADER_INFO_INIT;
836
			if (detailed && parse_details(pair, &iter, &bhi, xfi))
931
			if (detailed && parse_details(pair, &iter, &bhi, xfi))
837
					return true;
932
				return true;
838
933
839
			const char *cols1[4] = {
934
			const char *cols1[4] = {
840
				uint64_to_str(iter.stream.number, 0),
935
				uint64_to_str(iter.stream.number, 0),
Lines 846-855 Link Here
846
					iter.block.uncompressed_file_offset, 3)
941
					iter.block.uncompressed_file_offset, 3)
847
			};
942
			};
848
			printf("    %*s %*s %*s %*s ",
943
			printf("    %*s %*s %*s %*s ",
849
				tuklib_mbstr_fw(cols1[0], 6), cols1[0],
944
				tuklib_mbstr_fw(cols1[0],
850
				tuklib_mbstr_fw(cols1[1], 9), cols1[1],
945
					headings[HEADING_STREAM].columns),
851
				tuklib_mbstr_fw(cols1[2], 15), cols1[2],
946
				cols1[0],
852
				tuklib_mbstr_fw(cols1[3], 15), cols1[3]);
947
				tuklib_mbstr_fw(cols1[1],
948
					headings[HEADING_BLOCK].columns),
949
				cols1[1],
950
				tuklib_mbstr_fw(cols1[2],
951
					headings[HEADING_COMPOFFSET].columns),
952
				cols1[2],
953
				tuklib_mbstr_fw(cols1[3], headings[
954
					HEADING_UNCOMPOFFSET].columns),
955
				cols1[3]);
853
956
854
			const char *cols2[4] = {
957
			const char *cols2[4] = {
855
				uint64_to_str(iter.block.total_size, 0),
958
				uint64_to_str(iter.block.total_size, 0),
Lines 860-870 Link Here
860
				_(check_names[iter.stream.flags->check])
963
				_(check_names[iter.stream.flags->check])
861
			};
964
			};
862
			printf("%*s %*s  %*s  %-*s",
965
			printf("%*s %*s  %*s  %-*s",
863
				tuklib_mbstr_fw(cols2[0], 15), cols2[0],
966
				tuklib_mbstr_fw(cols2[0],
864
				tuklib_mbstr_fw(cols2[1], 15), cols2[1],
967
					headings[HEADING_TOTALSIZE].columns),
865
				tuklib_mbstr_fw(cols2[2], 5), cols2[2],
968
				cols2[0],
866
				tuklib_mbstr_fw(cols2[3], detailed ? 11 : 1),
969
				tuklib_mbstr_fw(cols2[1],
867
					cols2[3]);
970
					headings[HEADING_UNCOMPSIZE].columns),
971
				cols2[1],
972
				tuklib_mbstr_fw(cols2[2],
973
					headings[HEADING_RATIO].columns),
974
				cols2[2],
975
				tuklib_mbstr_fw(cols2[3], detailed
976
					? headings[HEADING_CHECK].columns : 1),
977
				cols2[3]);
868
978
869
			if (detailed) {
979
			if (detailed) {
870
				const lzma_vli compressed_size
980
				const lzma_vli compressed_size
Lines 885-909 Link Here
885
				};
995
				};
886
				// Show MiB for memory usage, because it
996
				// Show MiB for memory usage, because it
887
				// is the only size which is not in bytes.
997
				// is the only size which is not in bytes.
888
				printf("%-*s  %*s  %-5s %*s %*s MiB  %s",
998
				printf(" %-*s  %*s  %-*s %*s %*s MiB  %s",
889
					checkval_width, cols3[0],
999
					checkval_width, cols3[0],
890
					tuklib_mbstr_fw(cols3[1], 6), cols3[1],
1000
					tuklib_mbstr_fw(cols3[1], headings[
1001
						HEADING_HEADERSIZE].columns),
1002
					cols3[1],
1003
					tuklib_mbstr_fw(cols3[2], headings[
1004
						HEADING_HEADERFLAGS].columns),
891
					cols3[2],
1005
					cols3[2],
892
					tuklib_mbstr_fw(cols3[3], 15),
1006
					tuklib_mbstr_fw(cols3[3], headings[
893
						cols3[3],
1007
						HEADING_COMPSIZE].columns),
894
					tuklib_mbstr_fw(cols3[4], 7), cols3[4],
1008
					cols3[3],
1009
					tuklib_mbstr_fw(cols3[4], headings[
1010
						HEADING_MEMUSAGE].columns - 4),
1011
					cols3[4],
895
					cols3[5]);
1012
					cols3[5]);
896
			}
1013
			}
897
1014
898
			putchar('\n');
1015
			putchar('\n');
1016
			block_header_info_end(&bhi);
899
		}
1017
		}
900
	}
1018
	}
901
1019
902
	if (detailed) {
1020
	if (detailed) {
903
		printf(_("  Memory needed:      %s MiB\n"), uint64_to_str(
1021
		printf("  %-*s %s MiB\n", COLON_STR(COLON_STR_MEMORY_NEEDED),
1022
				uint64_to_str(
904
				round_up_to_mib(xfi->memusage_max), 0));
1023
				round_up_to_mib(xfi->memusage_max), 0));
905
		printf(_("  Sizes in headers:   %s\n"),
1024
		printf("  %-*s %s\n", COLON_STR(COLON_STR_SIZES_IN_HEADERS),
906
				xfi->all_have_sizes ? _("Yes") : _("No"));
1025
				xfi->all_have_sizes ? _("Yes") : _("No"));
1026
		//printf("  %-*s %s\n", COLON_STR(COLON_STR_MINIMUM_XZ_VERSION),
907
		printf(_("  Minimum XZ Utils version: %s\n"),
1027
		printf(_("  Minimum XZ Utils version: %s\n"),
908
				xz_ver_to_str(xfi->min_version));
1028
				xz_ver_to_str(xfi->min_version));
909
	}
1029
	}
Lines 951-959 Link Here
951
				iter.stream.padding);
1071
				iter.stream.padding);
952
1072
953
		lzma_index_iter_rewind(&iter);
1073
		lzma_index_iter_rewind(&iter);
954
		block_header_info bhi;
955
1074
956
		while (!lzma_index_iter_next(&iter, LZMA_INDEX_ITER_BLOCK)) {
1075
		while (!lzma_index_iter_next(&iter, LZMA_INDEX_ITER_BLOCK)) {
1076
			block_header_info bhi = BLOCK_HEADER_INFO_INIT;
957
			if (message_verbosity_get() >= V_DEBUG
1077
			if (message_verbosity_get() >= V_DEBUG
958
					&& parse_details(
1078
					&& parse_details(
959
						pair, &iter, &bhi, xfi))
1079
						pair, &iter, &bhi, xfi))
Lines 984-989 Link Here
984
						bhi.filter_chain);
1104
						bhi.filter_chain);
985
1105
986
			putchar('\n');
1106
			putchar('\n');
1107
			block_header_info_end(&bhi);
987
		}
1108
		}
988
	}
1109
	}
989
1110
Lines 1068-1084 Link Here
1068
{
1189
{
1069
	putchar('\n');
1190
	putchar('\n');
1070
	puts(_("Totals:"));
1191
	puts(_("Totals:"));
1071
	printf(_("  Number of files:    %s\n"),
1192
	printf("  %-*s %s\n", COLON_STR(COLON_STR_NUMBER_OF_FILES),
1072
			uint64_to_str(totals.files, 0));
1193
			uint64_to_str(totals.files, 0));
1073
	print_adv_helper(totals.streams, totals.blocks,
1194
	print_adv_helper(totals.streams, totals.blocks,
1074
			totals.compressed_size, totals.uncompressed_size,
1195
			totals.compressed_size, totals.uncompressed_size,
1075
			totals.checks, totals.stream_padding);
1196
			totals.checks, totals.stream_padding);
1076
1197
1077
	if (message_verbosity_get() >= V_DEBUG) {
1198
	if (message_verbosity_get() >= V_DEBUG) {
1078
		printf(_("  Memory needed:      %s MiB\n"), uint64_to_str(
1199
		printf("  %-*s %s MiB\n", COLON_STR(COLON_STR_MEMORY_NEEDED),
1200
				uint64_to_str(
1079
				round_up_to_mib(totals.memusage_max), 0));
1201
				round_up_to_mib(totals.memusage_max), 0));
1080
		printf(_("  Sizes in headers:   %s\n"),
1202
		printf("  %-*s %s\n", COLON_STR(COLON_STR_SIZES_IN_HEADERS),
1081
				totals.all_have_sizes ? _("Yes") : _("No"));
1203
				totals.all_have_sizes ? _("Yes") : _("No"));
1204
		//printf("  %-*s %s\n", COLON_STR(COLON_STR_MINIMUM_XZ_VERSION),
1082
		printf(_("  Minimum XZ Utils version: %s\n"),
1205
		printf(_("  Minimum XZ Utils version: %s\n"),
1083
				xz_ver_to_str(totals.min_version));
1206
				xz_ver_to_str(totals.min_version));
1084
	}
1207
	}
Lines 1153-1158 Link Here
1153
				"standard input"));
1276
				"standard input"));
1154
		return;
1277
		return;
1155
	}
1278
	}
1279
1280
	init_field_widths();
1156
1281
1157
	// Unset opt_stdout so that io_open_src() won't accept special files.
1282
	// Unset opt_stdout so that io_open_src() won't accept special files.
1158
	// Set opt_force so that io_open_src() will follow symlinks.
1283
	// Set opt_force so that io_open_src() will follow symlinks.
(-)xz-5.2.5/src/xz/main.c (+14 lines)
Lines 142-147 Link Here
142
int
142
int
143
main(int argc, char **argv)
143
main(int argc, char **argv)
144
{
144
{
145
#ifdef HAVE_PLEDGE
146
	// OpenBSD's pledge(2) sandbox
147
	//
148
	// Unconditionally enable sandboxing with fairly relaxed promises.
149
	// This is still way better than having no sandbox at all. :-)
150
	// More strict promises will be made later in file_io.c if possible.
151
	if (pledge("stdio rpath wpath cpath fattr", "")) {
152
		// Don't translate the string or use message_fatal() as
153
		// those haven't been initialized yet.
154
		fprintf(stderr, "%s: Failed to enable the sandbox\n", argv[0]);
155
		return E_ERROR;
156
	}
157
#endif
158
145
#if defined(_WIN32) && !defined(__CYGWIN__)
159
#if defined(_WIN32) && !defined(__CYGWIN__)
146
	InitializeCriticalSection(&exit_status_cs);
160
	InitializeCriticalSection(&exit_status_cs);
147
#endif
161
#endif
(-)xz-5.2.5/src/xz/message.c (-164 / +38 lines)
Lines 355-365 Link Here
355
	if (elapsed < 3000)
355
	if (elapsed < 3000)
356
		return "";
356
		return "";
357
357
358
	static const char unit[][8] = {
358
	// The first character of KiB/s, MiB/s, or GiB/s:
359
		"KiB/s",
359
	static const char unit[] = { 'K', 'M', 'G' };
360
		"MiB/s",
361
		"GiB/s",
362
	};
363
360
364
	size_t unit_index = 0;
361
	size_t unit_index = 0;
365
362
Lines 381-387 Link Here
381
	//  - 999 KiB/s
378
	//  - 999 KiB/s
382
	// Use big enough buffer to hold e.g. a multibyte decimal point.
379
	// Use big enough buffer to hold e.g. a multibyte decimal point.
383
	static char buf[16];
380
	static char buf[16];
384
	snprintf(buf, sizeof(buf), "%.*f %s",
381
	snprintf(buf, sizeof(buf), "%.*f %ciB/s",
385
			speed > 9.9 ? 0 : 1, speed, unit[unit_index]);
382
			speed > 9.9 ? 0 : 1, speed, unit[unit_index]);
386
	return buf;
383
	return buf;
387
}
384
}
Lines 726-732 Link Here
726
		// This is a translatable string because French needs
723
		// This is a translatable string because French needs
727
		// a space before a colon.
724
		// a space before a colon.
728
		fprintf(stderr, _("%s: "), progname);
725
		fprintf(stderr, _("%s: "), progname);
726
727
#ifdef __clang__
728
#	pragma GCC diagnostic push
729
#	pragma GCC diagnostic ignored "-Wformat-nonliteral"
730
#endif
729
		vfprintf(stderr, fmt, ap);
731
		vfprintf(stderr, fmt, ap);
732
#ifdef __clang__
733
#	pragma GCC diagnostic pop
734
#endif
735
730
		fputc('\n', stderr);
736
		fputc('\n', stderr);
731
737
732
		signals_unblock();
738
		signals_unblock();
Lines 832-837 Link Here
832
	case LZMA_STREAM_END:
838
	case LZMA_STREAM_END:
833
	case LZMA_GET_CHECK:
839
	case LZMA_GET_CHECK:
834
	case LZMA_PROG_ERROR:
840
	case LZMA_PROG_ERROR:
841
	case LZMA_SEEK_NEEDED:
842
	case LZMA_RET_INTERNAL1:
843
	case LZMA_RET_INTERNAL2:
844
	case LZMA_RET_INTERNAL3:
845
	case LZMA_RET_INTERNAL4:
846
	case LZMA_RET_INTERNAL5:
847
	case LZMA_RET_INTERNAL6:
848
	case LZMA_RET_INTERNAL7:
849
	case LZMA_RET_INTERNAL8:
835
		// Without "default", compiler will warn if new constants
850
		// Without "default", compiler will warn if new constants
836
		// are added to lzma_ret, it is not too easy to forget to
851
		// are added to lzma_ret, it is not too easy to forget to
837
		// add the new constants to this function.
852
		// add the new constants to this function.
Lines 894-1060 Link Here
894
}
909
}
895
910
896
911
897
/// \brief      Convert uint32_t to a nice string for --lzma[12]=dict=SIZE
898
///
899
/// The idea is to use KiB or MiB suffix when possible.
900
static const char *
901
uint32_to_optstr(uint32_t num)
902
{
903
	static char buf[16];
904
905
	if ((num & ((UINT32_C(1) << 20) - 1)) == 0)
906
		snprintf(buf, sizeof(buf), "%" PRIu32 "MiB", num >> 20);
907
	else if ((num & ((UINT32_C(1) << 10) - 1)) == 0)
908
		snprintf(buf, sizeof(buf), "%" PRIu32 "KiB", num >> 10);
909
	else
910
		snprintf(buf, sizeof(buf), "%" PRIu32, num);
911
912
	return buf;
913
}
914
915
916
extern void
912
extern void
917
message_filters_to_str(char buf[FILTERS_STR_SIZE],
918
		const lzma_filter *filters, bool all_known)
919
{
920
	char *pos = buf;
921
	size_t left = FILTERS_STR_SIZE;
922
923
	for (size_t i = 0; filters[i].id != LZMA_VLI_UNKNOWN; ++i) {
924
		// Add the dashes for the filter option. A space is
925
		// needed after the first and later filters.
926
		my_snprintf(&pos, &left, "%s", i == 0 ? "--" : " --");
927
928
		switch (filters[i].id) {
929
		case LZMA_FILTER_LZMA1:
930
		case LZMA_FILTER_LZMA2: {
931
			const lzma_options_lzma *opt = filters[i].options;
932
			const char *mode = NULL;
933
			const char *mf = NULL;
934
935
			if (all_known) {
936
				switch (opt->mode) {
937
				case LZMA_MODE_FAST:
938
					mode = "fast";
939
					break;
940
941
				case LZMA_MODE_NORMAL:
942
					mode = "normal";
943
					break;
944
945
				default:
946
					mode = "UNKNOWN";
947
					break;
948
				}
949
950
				switch (opt->mf) {
951
				case LZMA_MF_HC3:
952
					mf = "hc3";
953
					break;
954
955
				case LZMA_MF_HC4:
956
					mf = "hc4";
957
					break;
958
959
				case LZMA_MF_BT2:
960
					mf = "bt2";
961
					break;
962
963
				case LZMA_MF_BT3:
964
					mf = "bt3";
965
					break;
966
967
				case LZMA_MF_BT4:
968
					mf = "bt4";
969
					break;
970
971
				default:
972
					mf = "UNKNOWN";
973
					break;
974
				}
975
			}
976
977
			// Add the filter name and dictionary size, which
978
			// is always known.
979
			my_snprintf(&pos, &left, "lzma%c=dict=%s",
980
					filters[i].id == LZMA_FILTER_LZMA2
981
						? '2' : '1',
982
					uint32_to_optstr(opt->dict_size));
983
984
			// With LZMA1 also lc/lp/pb are known when
985
			// decompressing, but this function is never
986
			// used to print information about .lzma headers.
987
			assert(filters[i].id == LZMA_FILTER_LZMA2
988
					|| all_known);
989
990
			// Print the rest of the options, which are known
991
			// only when compressing.
992
			if (all_known)
993
				my_snprintf(&pos, &left,
994
					",lc=%" PRIu32 ",lp=%" PRIu32
995
					",pb=%" PRIu32
996
					",mode=%s,nice=%" PRIu32 ",mf=%s"
997
					",depth=%" PRIu32,
998
					opt->lc, opt->lp, opt->pb,
999
					mode, opt->nice_len, mf, opt->depth);
1000
			break;
1001
		}
1002
1003
		case LZMA_FILTER_X86:
1004
		case LZMA_FILTER_POWERPC:
1005
		case LZMA_FILTER_IA64:
1006
		case LZMA_FILTER_ARM:
1007
		case LZMA_FILTER_ARMTHUMB:
1008
		case LZMA_FILTER_SPARC: {
1009
			static const char bcj_names[][9] = {
1010
				"x86",
1011
				"powerpc",
1012
				"ia64",
1013
				"arm",
1014
				"armthumb",
1015
				"sparc",
1016
			};
1017
1018
			const lzma_options_bcj *opt = filters[i].options;
1019
			my_snprintf(&pos, &left, "%s", bcj_names[filters[i].id
1020
					- LZMA_FILTER_X86]);
1021
1022
			// Show the start offset only when really needed.
1023
			if (opt != NULL && opt->start_offset != 0)
1024
				my_snprintf(&pos, &left, "=start=%" PRIu32,
1025
						opt->start_offset);
1026
1027
			break;
1028
		}
1029
1030
		case LZMA_FILTER_DELTA: {
1031
			const lzma_options_delta *opt = filters[i].options;
1032
			my_snprintf(&pos, &left, "delta=dist=%" PRIu32,
1033
					opt->dist);
1034
			break;
1035
		}
1036
1037
		default:
1038
			// This should be possible only if liblzma is
1039
			// newer than the xz tool.
1040
			my_snprintf(&pos, &left, "UNKNOWN");
1041
			break;
1042
		}
1043
	}
1044
1045
	return;
1046
}
1047
1048
1049
extern void
1050
message_filters_show(enum message_verbosity v, const lzma_filter *filters)
913
message_filters_show(enum message_verbosity v, const lzma_filter *filters)
1051
{
914
{
1052
	if (v > verbosity)
915
	if (v > verbosity)
1053
		return;
916
		return;
1054
917
1055
	char buf[FILTERS_STR_SIZE];
918
	char *buf;
1056
	message_filters_to_str(buf, filters, true);
919
	const lzma_ret ret = lzma_str_from_filters(&buf, filters,
920
			LZMA_STR_ENCODER | LZMA_STR_GETOPT_LONG, NULL);
921
	if (ret != LZMA_OK)
922
		message_fatal("%s", message_strm(ret));
923
1057
	fprintf(stderr, _("%s: Filter chain: %s\n"), progname, buf);
924
	fprintf(stderr, _("%s: Filter chain: %s\n"), progname, buf);
925
	free(buf);
1058
	return;
926
	return;
1059
}
927
}
1060
928
Lines 1116-1121 Link Here
1116
"  -k, --keep          keep (don't delete) input files\n"
984
"  -k, --keep          keep (don't delete) input files\n"
1117
"  -f, --force         force overwrite of output file and (de)compress links\n"
985
"  -f, --force         force overwrite of output file and (de)compress links\n"
1118
"  -c, --stdout        write to standard output and don't delete input files"));
986
"  -c, --stdout        write to standard output and don't delete input files"));
987
	// NOTE: --to-stdout isn't included above because it's not
988
	// the recommended spelling. It was copied from gzip but other
989
	// compressors with gzip-like syntax don't support it.
1119
990
1120
	if (long_help) {
991
	if (long_help) {
1121
		puts(_(
992
		puts(_(
Lines 1134-1140 Link Here
1134
		puts(_("\n Basic file format and compression options:\n"));
1005
		puts(_("\n Basic file format and compression options:\n"));
1135
		puts(_(
1006
		puts(_(
1136
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
1007
"  -F, --format=FMT    file format to encode or decode; possible values are\n"
1137
"                      `auto' (default), `xz', `lzma', and `raw'\n"
1008
"                      `auto' (default), `xz', `lzma', `lzip', and `raw'\n"
1138
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
1009
"  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
1139
"                      `crc32', `crc64' (default), or `sha256'"));
1010
"                      `crc32', `crc64' (default), or `sha256'"));
1140
		puts(_(
1011
		puts(_(
Lines 1171-1179 Link Here
1171
		puts(_( // xgettext:no-c-format
1042
		puts(_( // xgettext:no-c-format
1172
"      --memlimit-compress=LIMIT\n"
1043
"      --memlimit-compress=LIMIT\n"
1173
"      --memlimit-decompress=LIMIT\n"
1044
"      --memlimit-decompress=LIMIT\n"
1045
"      --memlimit-mt-decompress=LIMIT\n"
1174
"  -M, --memlimit=LIMIT\n"
1046
"  -M, --memlimit=LIMIT\n"
1175
"                      set memory usage limit for compression, decompression,\n"
1047
"                      set memory usage limit for compression, decompression,\n"
1176
"                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"));
1048
"                      threaded decompression, or all of these; LIMIT is in\n"
1049
"                      bytes, % of RAM, or 0 for defaults"));
1177
1050
1178
		puts(_(
1051
		puts(_(
1179
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
1052
"      --no-adjust     if compression settings exceed the memory usage limit,\n"
Lines 1208-1217 Link Here
1208
		puts(_(
1081
		puts(_(
1209
"\n"
1082
"\n"
1210
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
1083
"  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
1084
"  --arm[=OPTS]        ARM BCJ filter\n"
1085
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter\n"
1086
"  --arm64[=OPTS]      ARM64 BCJ filter\n"
1211
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
1087
"  --powerpc[=OPTS]    PowerPC BCJ filter (big endian only)\n"
1212
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
1088
"  --ia64[=OPTS]       IA-64 (Itanium) BCJ filter\n"
1213
"  --arm[=OPTS]        ARM BCJ filter (little endian only)\n"
1214
"  --armthumb[=OPTS]   ARM-Thumb BCJ filter (little endian only)\n"
1215
"  --sparc[=OPTS]      SPARC BCJ filter\n"
1089
"  --sparc[=OPTS]      SPARC BCJ filter\n"
1216
"                      Valid OPTS for all BCJ filters:\n"
1090
"                      Valid OPTS for all BCJ filters:\n"
1217
"                        start=NUM  start offset for conversions (default=0)"));
1091
"                        start=NUM  start offset for conversions (default=0)"));
(-)xz-5.2.5/src/xz/message.h (-16 lines)
Lines 90-111 Link Here
90
extern void message_mem_needed(enum message_verbosity v, uint64_t memusage);
90
extern void message_mem_needed(enum message_verbosity v, uint64_t memusage);
91
91
92
92
93
/// Buffer size for message_filters_to_str()
94
#define FILTERS_STR_SIZE 512
95
96
97
/// \brief      Get the filter chain as a string
98
///
99
/// \param      buf         Pointer to caller allocated buffer to hold
100
///                         the filter chain string
101
/// \param      filters     Pointer to the filter chain
102
/// \param      all_known   If true, all filter options are printed.
103
///                         If false, only the options that get stored
104
///                         into .xz headers are printed.
105
extern void message_filters_to_str(char buf[FILTERS_STR_SIZE],
106
		const lzma_filter *filters, bool all_known);
107
108
109
/// Print the filter chain.
93
/// Print the filter chain.
110
extern void message_filters_show(
94
extern void message_filters_show(
111
		enum message_verbosity v, const lzma_filter *filters);
95
		enum message_verbosity v, const lzma_filter *filters);
(-)xz-5.2.5/src/xz/mytime.c (-3 / +4 lines)
Lines 12-18 Link Here
12
12
13
#include "private.h"
13
#include "private.h"
14
14
15
#if !(defined(HAVE_CLOCK_GETTIME) && HAVE_DECL_CLOCK_MONOTONIC)
15
#if defined(HAVE_CLOCK_GETTIME) && defined(HAVE_CLOCK_MONOTONIC)
16
#	include <time.h>
17
#else
16
#	include <sys/time.h>
18
#	include <sys/time.h>
17
#endif
19
#endif
18
20
Lines 28-35 Link Here
28
static uint64_t
30
static uint64_t
29
mytime_now(void)
31
mytime_now(void)
30
{
32
{
31
	// NOTE: HAVE_DECL_CLOCK_MONOTONIC is always defined to 0 or 1.
33
#if defined(HAVE_CLOCK_GETTIME) && defined(HAVE_CLOCK_MONOTONIC)
32
#if defined(HAVE_CLOCK_GETTIME) && HAVE_DECL_CLOCK_MONOTONIC
33
	// If CLOCK_MONOTONIC was available at compile time but for some
34
	// If CLOCK_MONOTONIC was available at compile time but for some
34
	// reason isn't at runtime, fallback to CLOCK_REALTIME which
35
	// reason isn't at runtime, fallback to CLOCK_REALTIME which
35
	// according to POSIX is mandatory for all implementations.
36
	// according to POSIX is mandatory for all implementations.
(-)xz-5.2.5/src/xz/options.c (-7 / +2 lines)
Lines 49-61 Link Here
49
/// is called, which should update the given value to filter-specific
49
/// is called, which should update the given value to filter-specific
50
/// options structure.
50
/// options structure.
51
///
51
///
52
/// This returns only if no errors occur.
53
///
52
/// \param      str     String containing the options from the command line
54
/// \param      str     String containing the options from the command line
53
/// \param      opts    Filter-specific option map
55
/// \param      opts    Filter-specific option map
54
/// \param      set     Filter-specific function to update filter_options
56
/// \param      set     Filter-specific function to update filter_options
55
/// \param      filter_options  Pointer to filter-specific options structure
57
/// \param      filter_options  Pointer to filter-specific options structure
56
///
58
///
57
/// \return     Returns only if no errors occur.
58
///
59
static void
59
static void
60
parse_options(const char *str, const option_map *opts,
60
parse_options(const char *str, const option_map *opts,
61
		void (*set)(void *filter_options,
61
		void (*set)(void *filter_options,
Lines 353-363 Link Here
353
353
354
	if (options->lc + options->lp > LZMA_LCLP_MAX)
354
	if (options->lc + options->lp > LZMA_LCLP_MAX)
355
		message_fatal(_("The sum of lc and lp must not exceed 4"));
355
		message_fatal(_("The sum of lc and lp must not exceed 4"));
356
357
	const uint32_t nice_len_min = options->mf & 0x0F;
358
	if (options->nice_len < nice_len_min)
359
		message_fatal(_("The selected match finder requires at "
360
				"least nice=%" PRIu32), nice_len_min);
361
356
362
	return options;
357
	return options;
363
}
358
}
(-)xz-5.2.5/src/xz/private.h (-1 / +1 lines)
Lines 45-51 Link Here
45
#	define STDERR_FILENO (fileno(stderr))
45
#	define STDERR_FILENO (fileno(stderr))
46
#endif
46
#endif
47
47
48
#ifdef HAVE_CAPSICUM
48
#if defined(HAVE_CAPSICUM) || defined(HAVE_PLEDGE)
49
#	define ENABLE_SANDBOX 1
49
#	define ENABLE_SANDBOX 1
50
#endif
50
#endif
51
51
(-)xz-5.2.5/src/xz/suffix.c (-29 / +31 lines)
Lines 18-23 Link Here
18
18
19
// For case-insensitive filename suffix on case-insensitive systems
19
// For case-insensitive filename suffix on case-insensitive systems
20
#if defined(TUKLIB_DOSLIKE) || defined(__VMS)
20
#if defined(TUKLIB_DOSLIKE) || defined(__VMS)
21
#	ifdef HAVE_STRINGS_H
22
#		include <strings.h>
23
#	endif
21
#	define strcmp strcasecmp
24
#	define strcmp strcasecmp
22
#endif
25
#endif
23
26
Lines 119-141 Link Here
119
#ifdef __DJGPP__
122
#ifdef __DJGPP__
120
		{ ".lzm",   "" },
123
		{ ".lzm",   "" },
121
#endif
124
#endif
122
		{ ".tlz",   ".tar" },
125
		{ ".tlz",   ".tar" }, // Both .tar.lzma and .tar.lz
123
		// { ".gz",    "" },
126
#ifdef HAVE_LZIP_DECODER
124
		// { ".tgz",   ".tar" },
127
		{ ".lz",    "" },
128
#endif
125
	};
129
	};
126
130
127
	const char *new_suffix = "";
131
	const char *new_suffix = "";
128
	size_t new_len = 0;
132
	size_t new_len = 0;
129
133
130
	if (opt_format == FORMAT_RAW) {
134
	if (opt_format != FORMAT_RAW) {
131
		// Don't check for known suffixes when --format=raw was used.
132
		if (custom_suffix == NULL) {
133
			message_error(_("%s: With --format=raw, "
134
					"--suffix=.SUF is required unless "
135
					"writing to stdout"), src_name);
136
			return NULL;
137
		}
138
	} else {
139
		for (size_t i = 0; i < ARRAY_SIZE(suffixes); ++i) {
135
		for (size_t i = 0; i < ARRAY_SIZE(suffixes); ++i) {
140
			new_len = test_suffix(suffixes[i].compressed,
136
			new_len = test_suffix(suffixes[i].compressed,
141
					src_name, src_len);
137
					src_name, src_len);
Lines 208-219 Link Here
208
#endif
204
#endif
209
			".tlz",
205
			".tlz",
210
			NULL
206
			NULL
211
/*
207
#ifdef HAVE_LZIP_DECODER
208
		// This is needed to keep the table indexing in sync with
209
		// enum format_type from coder.h.
212
		}, {
210
		}, {
213
			".gz",
211
/*
214
			".tgz",
212
			".lz",
215
			NULL
216
*/
213
*/
214
			NULL
215
#endif
217
		}, {
216
		}, {
218
			// --format=raw requires specifying the suffix
217
			// --format=raw requires specifying the suffix
219
			// manually or using stdout.
218
			// manually or using stdout.
Lines 221-228 Link Here
221
		}
220
		}
222
	};
221
	};
223
222
224
	// args.c ensures this.
223
	// args.c ensures these.
225
	assert(opt_format != FORMAT_AUTO);
224
	assert(opt_format != FORMAT_AUTO);
225
#ifdef HAVE_LZIP_DECODER
226
	assert(opt_format != FORMAT_LZIP);
227
#endif
226
228
227
	const size_t format = opt_format - 1;
229
	const size_t format = opt_format - 1;
228
	const char *const *suffixes = all_suffixes[format];
230
	const char *const *suffixes = all_suffixes[format];
Lines 252-266 Link Here
252
		}
254
		}
253
	}
255
	}
254
256
255
	// TODO: Hmm, maybe it would be better to validate this in args.c,
256
	// since the suffix handling when decoding is weird now.
257
	if (opt_format == FORMAT_RAW && custom_suffix == NULL) {
258
		message_error(_("%s: With --format=raw, "
259
				"--suffix=.SUF is required unless "
260
				"writing to stdout"), src_name);
261
		return NULL;
262
	}
263
264
	const char *suffix = custom_suffix != NULL
257
	const char *suffix = custom_suffix != NULL
265
			? custom_suffix : suffixes[0];
258
			? custom_suffix : suffixes[0];
266
	size_t suffix_len = strlen(suffix);
259
	size_t suffix_len = strlen(suffix);
Lines 299-307 Link Here
299
			// xz foo.tar          -> foo.txz
292
			// xz foo.tar          -> foo.txz
300
			// xz -F lzma foo.tar  -> foo.tlz
293
			// xz -F lzma foo.tar  -> foo.tlz
301
			static const char *const tar_suffixes[] = {
294
			static const char *const tar_suffixes[] = {
302
				".txz",
295
				".txz", // .tar.xz
303
				".tlz",
296
				".tlz", // .tar.lzma
304
				// ".tgz",
297
/*
298
				".tlz", // .tar.lz
299
*/
305
			};
300
			};
306
			suffix = tar_suffixes[format];
301
			suffix = tar_suffixes[format];
307
			suffix_len = 4;
302
			suffix_len = 4;
Lines 396-399 Link Here
396
	free(custom_suffix);
391
	free(custom_suffix);
397
	custom_suffix = xstrdup(suffix);
392
	custom_suffix = xstrdup(suffix);
398
	return;
393
	return;
394
}
395
396
397
extern bool
398
suffix_is_set(void)
399
{
400
	return custom_suffix != NULL;
399
}
401
}
(-)xz-5.2.5/src/xz/suffix.h (+8 lines)
Lines 26-28 Link Here
26
/// suffix, thus if this is called multiple times, the old suffixes are freed
26
/// suffix, thus if this is called multiple times, the old suffixes are freed
27
/// and forgotten.
27
/// and forgotten.
28
extern void suffix_set(const char *suffix);
28
extern void suffix_set(const char *suffix);
29
30
31
/// \brief      Check if a custom suffix has been set
32
///
33
/// Returns true if the internal tracking of the suffix string has been set
34
/// and false if the string has not been set. This will keep the suffix
35
/// string encapsulated instead of extern-ing the variable.
36
extern bool suffix_is_set(void);
(-)xz-5.2.5/src/xz/util.c (-12 lines)
Lines 261-278 Link Here
261
261
262
262
263
extern bool
263
extern bool
264
is_empty_filename(const char *filename)
265
{
266
	if (filename[0] == '\0') {
267
		message_error(_("Empty filename, skipping"));
268
		return true;
269
	}
270
271
	return false;
272
}
273
274
275
extern bool
276
is_tty_stdin(void)
264
is_tty_stdin(void)
277
{
265
{
278
	const bool ret = isatty(STDIN_FILENO);
266
	const bool ret = isatty(STDIN_FILENO);
(-)xz-5.2.5/src/xz/util.h (-4 lines)
Lines 105-114 Link Here
105
		lzma_attribute((__format__(__printf__, 3, 4)));
105
		lzma_attribute((__format__(__printf__, 3, 4)));
106
106
107
107
108
/// \brief      Check if filename is empty and print an error message
109
extern bool is_empty_filename(const char *filename);
110
111
112
/// \brief      Test if stdin is a terminal
108
/// \brief      Test if stdin is a terminal
113
///
109
///
114
/// If stdin is a terminal, an error message is printed and exit status set
110
/// If stdin is a terminal, an error message is printed and exit status set
(-)xz-5.2.5/src/xz/xz.1 (-131 / +346 lines)
Lines 5-11 Link Here
5
.\" This file has been put into the public domain.
5
.\" This file has been put into the public domain.
6
.\" You can do whatever you want with this file.
6
.\" You can do whatever you want with this file.
7
.\"
7
.\"
8
.TH XZ 1 "2020-02-01" "Tukaani" "XZ Utils"
8
.TH XZ 1 "2022-12-01" "Tukaani" "XZ Utils"
9
.
9
.
10
.SH NAME
10
.SH NAME
11
xz, unxz, xzcat, lzma, unlzma, lzcat \- Compress or decompress .xz and .lzma files
11
xz, unxz, xzcat, lzma, unlzma, lzcat \- Compress or decompress .xz and .lzma files
Lines 62-67 Link Here
62
format used by LZMA Utils and
62
format used by LZMA Utils and
63
raw compressed streams with no container format headers
63
raw compressed streams with no container format headers
64
are also supported.
64
are also supported.
65
In addition, decompression of the
66
.B .lz
67
format used by
68
.B lzip
69
is supported.
65
.PP
70
.PP
66
.B xz
71
.B xz
67
compresses or decompresses each
72
compresses or decompresses each
Lines 102-110 Link Here
102
is appended to the source filename to get the target filename.
107
is appended to the source filename to get the target filename.
103
.IP \(bu 3
108
.IP \(bu 3
104
When decompressing, the
109
When decompressing, the
105
.B .xz
110
.BR .xz ,
111
.BR .lzma ,
106
or
112
or
107
.B .lzma
113
.B .lz
108
suffix is removed from the filename to get the target filename.
114
suffix is removed from the filename to get the target filename.
109
.B xz
115
.B xz
110
also recognizes the suffixes
116
also recognizes the suffixes
Lines 158-165 Link Here
158
.RB ( .xz ,
164
.RB ( .xz ,
159
.BR .txz ,
165
.BR .txz ,
160
.BR .lzma ,
166
.BR .lzma ,
167
.BR .tlz ,
161
or
168
or
162
.BR .tlz ).
169
.BR .lz ).
163
.PP
170
.PP
164
After successfully compressing or decompressing the
171
After successfully compressing or decompressing the
165
.IR file ,
172
.IR file ,
Lines 183-189 Link Here
183
was specified.
190
was specified.
184
The source
191
The source
185
.I file
192
.I file
186
is never removed if the output is written to standard output.
193
is never removed if the output is written to standard output
194
or if an error occurs.
187
.PP
195
.PP
188
Sending
196
Sending
189
.B SIGINFO
197
.B SIGINFO
Lines 221-227 Link Here
221
has a built-in memory usage limiter, which is disabled by default.
229
has a built-in memory usage limiter, which is disabled by default.
222
While some operating systems provide ways to limit
230
While some operating systems provide ways to limit
223
the memory usage of processes, relying on it
231
the memory usage of processes, relying on it
224
wasn't deemed to be flexible enough (e.g. using
232
wasn't deemed to be flexible enough (for example, using
225
.BR ulimit (1)
233
.BR ulimit (1)
226
to limit virtual memory tends to cripple
234
to limit virtual memory tends to cripple
227
.BR mmap (2)).
235
.BR mmap (2)).
Lines 231-249 Link Here
231
Often it is more convenient to enable the limiter
239
Often it is more convenient to enable the limiter
232
by default by setting the environment variable
240
by default by setting the environment variable
233
.BR XZ_DEFAULTS ,
241
.BR XZ_DEFAULTS ,
234
e.g.\&
242
for example,
235
.BR XZ_DEFAULTS=\-\-memlimit=150MiB .
243
.BR XZ_DEFAULTS=\-\-memlimit=150MiB .
236
It is possible to set the limits separately
244
It is possible to set the limits separately
237
for compression and decompression
245
for compression and decompression by using
238
by using \fB\-\-memlimit\-compress=\fIlimit\fR and
246
.BI \-\-memlimit\-compress= limit
239
\fB\-\-memlimit\-decompress=\fIlimit\fR.
247
and \fB\-\-memlimit\-decompress=\fIlimit\fR.
240
Using these two options outside
248
Using these two options outside
241
.B XZ_DEFAULTS
249
.B XZ_DEFAULTS
242
is rarely useful because a single run of
250
is rarely useful because a single run of
243
.B xz
251
.B xz
244
cannot do both compression and decompression and
252
cannot do both compression and decompression and
245
.BI \-\-memlimit= limit
253
.BI \-\-memlimit= limit
246
(or \fB\-M\fR \fIlimit\fR)
254
(or
255
.B \-M
256
.IR limit )
247
is shorter to type on the command line.
257
is shorter to type on the command line.
248
.PP
258
.PP
249
If the specified memory usage limit is exceeded when decompressing,
259
If the specified memory usage limit is exceeded when decompressing,
Lines 252-262 Link Here
252
If the limit is exceeded when compressing,
262
If the limit is exceeded when compressing,
253
.B xz
263
.B xz
254
will try to scale the settings down so that the limit
264
will try to scale the settings down so that the limit
255
is no longer exceeded (except when using \fB\-\-format=raw\fR
265
is no longer exceeded (except when using
256
or \fB\-\-no\-adjust\fR).
266
.B \-\-format=raw
267
or
268
.BR \-\-no\-adjust ).
257
This way the operation won't fail unless the limit is very small.
269
This way the operation won't fail unless the limit is very small.
258
The scaling of the settings is done in steps that don't
270
The scaling of the settings is done in steps that don't
259
match the compression level presets, e.g. if the limit is
271
match the compression level presets, for example, if the limit is
260
only slightly less than the amount required for
272
only slightly less than the amount required for
261
.BR "xz \-9" ,
273
.BR "xz \-9" ,
262
the settings will be scaled down only a little,
274
the settings will be scaled down only a little,
Lines 276-282 Link Here
276
or after the last part.
288
or after the last part.
277
The padding must consist of null bytes and the size
289
The padding must consist of null bytes and the size
278
of the padding must be a multiple of four bytes.
290
of the padding must be a multiple of four bytes.
279
This can be useful e.g. if the
291
This can be useful, for example, if the
280
.B .xz
292
.B .xz
281
file is stored on a medium that measures file sizes
293
file is stored on a medium that measures file sizes
282
in 512-byte blocks.
294
in 512-byte blocks.
Lines 373-379 Link Here
373
twice, but note that this may be slow, because getting all the extra
385
twice, but note that this may be slow, because getting all the extra
374
information requires many seeks.
386
information requires many seeks.
375
The width of verbose output exceeds
387
The width of verbose output exceeds
376
80 characters, so piping the output to e.g.\&
388
80 characters, so piping the output to, for example,
377
.B "less\ \-S"
389
.B "less\ \-S"
378
may be convenient if the terminal isn't wide enough.
390
may be convenient if the terminal isn't wide enough.
379
.IP ""
391
.IP ""
Lines 388-393 Link Here
388
.TP
400
.TP
389
.BR \-k ", " \-\-keep
401
.BR \-k ", " \-\-keep
390
Don't delete the input files.
402
Don't delete the input files.
403
.IP ""
404
Since
405
.B xz
406
5.2.6,
407
this option also makes
408
.B xz
409
compress or decompress even if the input is
410
a symbolic link to a regular file,
411
has more than one hard link,
412
or has the setuid, setgid, or sticky bit set.
413
The setuid, setgid, and sticky bits are not copied
414
to the target file.
415
In earlier versions this was only done with
416
.BR \-\-force .
391
.TP
417
.TP
392
.BR \-f ", " \-\-force
418
.BR \-f ", " \-\-force
393
This option has several effects:
419
This option has several effects:
Lines 405-411 Link Here
405
.IP \(bu 3
431
.IP \(bu 3
406
When used with
432
When used with
407
.B \-\-decompress
433
.B \-\-decompress
408
.BR \-\-stdout
434
.B \-\-stdout
409
and
435
and
410
.B xz
436
.B xz
411
cannot recognize the type of the source file,
437
cannot recognize the type of the source file,
Lines 488-495 Link Here
488
.BR .xz ,
514
.BR .xz ,
489
.BR .txz ,
515
.BR .txz ,
490
.BR .lzma ,
516
.BR .lzma ,
517
.BR .tlz ,
491
or
518
or
492
.B .tlz
519
.B .lz
493
suffix.
520
suffix.
494
If the source file has the suffix
521
If the source file has the suffix
495
.IR .suf ,
522
.IR .suf ,
Lines 556-561 Link Here
556
.B alone
583
.B alone
557
is provided for backwards compatibility with LZMA Utils.
584
is provided for backwards compatibility with LZMA Utils.
558
.TP
585
.TP
586
.B lzip
587
Accept only
588
.B .lz
589
files when decompressing.
590
Compression is not supported.
591
.IP ""
592
The
593
.B .lz
594
format version 0 and the unextended version 1 are supported.
595
Version 0 files were produced by
596
.B lzip
597
1.3 and older.
598
Such files aren't common but may be found from file archives
599
as a few source packages were released in this format.
600
People might have old personal files in this format too.
601
Decompression support for the format version 0 was removed in
602
.B lzip
603
1.18.
604
.IP ""
605
.B lzip
606
1.4 and later create files in the format version 1.
607
The sync flush marker extension to the format version 1 was added in
608
.B lzip
609
1.6.
610
This extension is rarely used and isn't supported by
611
.B xz
612
(diagnosed as corrupt input).
613
.TP
559
.B raw
614
.B raw
560
Compress or uncompress a raw stream (no headers).
615
Compress or uncompress a raw stream (no headers).
561
This is meant for advanced users only.
616
This is meant for advanced users only.
Lines 670-676 Link Here
670
decompressor memory usage reasonable even for old systems.
725
decompressor memory usage reasonable even for old systems.
671
.B \-6
726
.B \-6
672
is the default, which is usually a good choice
727
is the default, which is usually a good choice
673
e.g. for distributing files that need to be decompressible
728
for distributing files that need to be decompressible
674
even on systems with only 16\ MiB RAM.
729
even on systems with only 16\ MiB RAM.
675
.RB ( \-5e
730
.RB ( \-5e
676
or
731
or
Lines 840-846 Link Here
840
.I size
895
.I size
841
is three times the LZMA2 dictionary size or 1 MiB,
896
is three times the LZMA2 dictionary size or 1 MiB,
842
whichever is more.
897
whichever is more.
843
Typically a good value is 2\-4 times
898
Typically a good value is 2\(en4 times
844
the size of the LZMA2 dictionary or at least 1 MiB.
899
the size of the LZMA2 dictionary or at least 1 MiB.
845
Using
900
Using
846
.I size
901
.I size
Lines 946-960 Link Here
946
If the compression settings exceed the
1001
If the compression settings exceed the
947
.IR limit ,
1002
.IR limit ,
948
.B xz
1003
.B xz
949
will adjust the settings downwards so that
1004
will attempt to adjust the settings downwards so that
950
the limit is no longer exceeded and display a notice that
1005
the limit is no longer exceeded and display a notice that
951
automatic adjustment was done.
1006
automatic adjustment was done.
952
Such adjustments are not made when compressing with
1007
The adjustments are done in this order:
1008
reducing the number of threads,
1009
switching to single-threaded mode
1010
if even one thread in multi-threaded mode exceeds the
1011
.IR limit ,
1012
and finally reducing the LZMA2 dictionary size.
1013
.IP ""
1014
When compressing with
953
.B \-\-format=raw
1015
.B \-\-format=raw
954
or if
1016
or if
955
.B \-\-no\-adjust
1017
.B \-\-no\-adjust
956
has been specified.
1018
has been specified,
957
In those cases, an error is displayed and
1019
only the number of threads may be reduced
1020
since it can be done without affecting the compressed output.
1021
.IP ""
1022
If the
1023
.I limit
1024
cannot be met even with the adjustments described above,
1025
an error is displayed and
958
.B xz
1026
.B xz
959
will exit with exit status 1.
1027
will exit with exit status 1.
960
.IP ""
1028
.IP ""
Lines 993-1012 Link Here
993
to
1061
to
994
.B max
1062
.B max
995
(no memory usage limit).
1063
(no memory usage limit).
996
Once multithreading support has been implemented,
997
there may be a difference between
998
.B 0
999
and
1000
.B max
1001
for the multithreaded case, so it is recommended to use
1002
.B 0
1003
instead of
1004
.B max
1005
until the details have been decided.
1006
.RE
1064
.RE
1007
.IP ""
1065
.IP ""
1008
For 32-bit
1066
For 32-bit
1009
.BR xz
1067
.B xz
1010
there is a special case: if the
1068
there is a special case: if the
1011
.I limit
1069
.I limit
1012
would be over
1070
would be over
Lines 1015-1020 Link Here
1015
.I limit
1073
.I limit
1016
is set to
1074
is set to
1017
.BR "4020\ MiB" .
1075
.BR "4020\ MiB" .
1076
On MIPS32
1077
.B "2000\ MiB"
1078
is used instead.
1018
(The values
1079
(The values
1019
.B 0
1080
.B 0
1020
and
1081
and
Lines 1022-1028 Link Here
1022
aren't affected by this.
1083
aren't affected by this.
1023
A similar feature doesn't exist for decompression.)
1084
A similar feature doesn't exist for decompression.)
1024
This can be helpful when a 32-bit executable has access
1085
This can be helpful when a 32-bit executable has access
1025
to 4\ GiB address space while hopefully doing no harm in other situations.
1086
to 4\ GiB address space (2 GiB on MIPS32)
1087
while hopefully doing no harm in other situations.
1026
.IP ""
1088
.IP ""
1027
See also the section
1089
See also the section
1028
.BR "Memory usage" .
1090
.BR "Memory usage" .
Lines 1041-1055 Link Here
1041
for possible ways to specify the
1103
for possible ways to specify the
1042
.IR limit .
1104
.IR limit .
1043
.TP
1105
.TP
1106
.BI \-\-memlimit\-mt\-decompress= limit
1107
Set a memory usage limit for multi-threaded decompression.
1108
This can only affect the number of threads;
1109
this will never make
1110
.B xz
1111
refuse to decompress a file.
1112
If
1113
.I limit
1114
is too low to allow any multi-threading, the
1115
.I limit
1116
is ignored and
1117
.B xz
1118
will continue in single-threaded mode.
1119
Note that if also
1120
.B \-\-memlimit\-decompress
1121
is used,
1122
it will always apply to both single-threaded and multi-threaded modes,
1123
and so the effective
1124
.I limit
1125
for multi-threading will never be higher than the limit set with
1126
.BR \-\-memlimit\-decompress .
1127
.IP ""
1128
In contrast to the other memory usage limit options,
1129
.BI \-\-memlimit\-mt\-decompress= limit
1130
has a system-specific default
1131
.IR limit .
1132
.B "xz \-\-info\-memory"
1133
can be used to see the current value.
1134
.IP ""
1135
This option and its default value exist
1136
because without any limit the threaded decompressor
1137
could end up allocating an insane amount of memory with some input files.
1138
If the default
1139
.I limit
1140
is too low on your system,
1141
feel free to increase the
1142
.I limit
1143
but never set it to a value larger than the amount of usable RAM
1144
as with appropriate input files
1145
.B xz
1146
will attempt to use that amount of memory
1147
even with a low number of threads.
1148
Running out of memory or swapping
1149
will not improve decompression performance.
1150
.IP ""
1151
See
1152
.BI \-\-memlimit\-compress= limit
1153
for possible ways to specify the
1154
.IR limit .
1155
Setting
1156
.I limit
1157
to
1158
.B 0
1159
resets the
1160
.I limit
1161
to the default system-specific value.
1162
.IP ""
1163
.TP
1044
\fB\-M\fR \fIlimit\fR, \fB\-\-memlimit=\fIlimit\fR, \fB\-\-memory=\fIlimit
1164
\fB\-M\fR \fIlimit\fR, \fB\-\-memlimit=\fIlimit\fR, \fB\-\-memory=\fIlimit
1045
This is equivalent to specifying \fB\-\-memlimit\-compress=\fIlimit
1165
This is equivalent to specifying
1046
\fB\-\-memlimit\-decompress=\fIlimit\fR.
1166
.BI \-\-memlimit\-compress= limit
1167
.BI \-\-memlimit-decompress= limit
1168
\fB\-\-memlimit\-mt\-decompress=\fIlimit\fR.
1047
.TP
1169
.TP
1048
.B \-\-no\-adjust
1170
.B \-\-no\-adjust
1049
Display an error and exit if the compression settings exceed
1171
Display an error and exit if the memory usage limit cannot be
1050
the memory usage limit.
1172
met without adjusting settings that affect the compressed output.
1051
The default is to adjust the settings downwards so
1173
That is, this prevents
1052
that the memory usage limit is not exceeded.
1174
.B xz
1175
from switching the encoder from multi-threaded mode to single-threaded mode
1176
and from reducing the LZMA2 dictionary size.
1177
Even when this option is used the number of threads may be reduced
1178
to meet the memory usage limit as that won't affect the compressed output.
1179
.IP ""
1053
Automatic adjusting is always disabled when creating raw streams
1180
Automatic adjusting is always disabled when creating raw streams
1054
.RB ( \-\-format=raw ).
1181
.RB ( \-\-format=raw ).
1055
.TP
1182
.TP
Lines 1061-1073 Link Here
1061
.B 0
1188
.B 0
1062
makes
1189
makes
1063
.B xz
1190
.B xz
1064
use as many threads as there are CPU cores on the system.
1191
use up to as many threads as the processor(s) on the system support.
1065
The actual number of threads can be less than
1192
The actual number of threads can be fewer than
1066
.I threads
1193
.I threads
1067
if the input file is not big enough
1194
if the input file is not big enough
1068
for threading with the given settings or
1195
for threading with the given settings or
1069
if using more threads would exceed the memory usage limit.
1196
if using more threads would exceed the memory usage limit.
1070
.IP ""
1197
.IP ""
1198
The single-threaded and multi-threaded compressors produce different output.
1199
Single-threaded compressor will give the smallest file size but
1200
only the output from the multi-threaded compressor can be decompressed
1201
using multiple threads.
1202
Setting
1203
.I threads
1204
to
1205
.B 1
1206
will use the single-threaded mode.
1207
Setting
1208
.I threads
1209
to any other value, including
1210
.BR 0 ,
1211
will use the multi-threaded compressor
1212
even if the system supports only one hardware thread.
1213
.RB ( xz
1214
5.2.x
1215
used single-threaded mode in this situation.)
1216
.IP ""
1217
To use multi-threaded mode with only one thread, set
1218
.I threads
1219
to
1220
.BR +1 .
1221
The
1222
.B +
1223
prefix has no effect with values other than
1224
.BR 1 .
1225
A memory usage limit can still make
1226
.B xz
1227
switch to single-threaded mode unless
1228
.B \-\-no\-adjust
1229
is used.
1230
Support for the
1231
.B +
1232
prefix was added in
1233
.B xz
1234
5.4.0.
1235
.IP ""
1236
If an automatic number of threads has been requested and
1237
no memory usage limit has been specified,
1238
then a system-specific default soft limit will be used to possibly
1239
limit the number of threads.
1240
It is a soft limit in sense that it is ignored
1241
if the number of threads becomes one,
1242
thus a soft limit will never stop
1243
.B xz
1244
from compressing or decompressing.
1245
This default soft limit will not make
1246
.B xz
1247
switch from multi-threaded mode to single-threaded mode.
1248
The active limits can be seen with
1249
.BR "xz \-\-info\-memory" .
1250
.IP ""
1071
Currently the only threading method is to split the input into
1251
Currently the only threading method is to split the input into
1072
blocks and compress them independently from each other.
1252
blocks and compress them independently from each other.
1073
The default block size depends on the compression level and
1253
The default block size depends on the compression level and
Lines 1075-1094 Link Here
1075
.BI \-\-block\-size= size
1255
.BI \-\-block\-size= size
1076
option.
1256
option.
1077
.IP ""
1257
.IP ""
1078
Threaded decompression hasn't been implemented yet.
1258
Threaded decompression only works on files that contain
1079
It will only work on files that contain multiple blocks
1259
multiple blocks with size information in block headers.
1080
with size information in block headers.
1260
All large enough files compressed in multi-threaded mode
1081
All files compressed in multi-threaded mode meet this condition,
1261
meet this condition,
1082
but files compressed in single-threaded mode don't even if
1262
but files compressed in single-threaded mode don't even if
1083
.BI \-\-block\-size= size
1263
.BI \-\-block\-size= size
1084
is used.
1264
has been used.
1085
.
1265
.
1086
.SS "Custom compressor filter chains"
1266
.SS "Custom compressor filter chains"
1087
A custom filter chain allows specifying
1267
A custom filter chain allows specifying
1088
the compression settings in detail instead of relying on
1268
the compression settings in detail instead of relying on
1089
the settings associated to the presets.
1269
the settings associated to the presets.
1090
When a custom filter chain is specified,
1270
When a custom filter chain is specified,
1091
preset options (\fB\-0\fR ... \fB\-9\fR and \fB\-\-extreme\fR)
1271
preset options
1272
.RB ( \-0
1273
\&...\&
1274
.B \-9
1275
and
1276
.BR \-\-extreme )
1092
earlier on the command line are forgotten.
1277
earlier on the command line are forgotten.
1093
If a preset option is specified
1278
If a preset option is specified
1094
after one or more custom filter chain options,
1279
after one or more custom filter chain options,
Lines 1172-1178 Link Here
1172
.B 0
1357
.B 0
1173
to
1358
to
1174
.BR 9 ,
1359
.BR 9 ,
1175
matching the command line options \fB\-0\fR ... \fB\-9\fR.
1360
matching the command line options
1361
.B \-0
1362
\&...\&
1363
.BR \-9 .
1176
The only supported modifier is currently
1364
The only supported modifier is currently
1177
.BR e ,
1365
.BR e ,
1178
which matches
1366
which matches
Lines 1253-1259 Link Here
1253
.I lc
1441
.I lc
1254
bits of the previous uncompressed byte correlate
1442
bits of the previous uncompressed byte correlate
1255
with the next byte.
1443
with the next byte.
1256
E.g. in typical English text, an upper-case letter is
1444
For example, in typical English text, an upper-case letter is
1257
often followed by a lower-case letter, and a lower-case
1445
often followed by a lower-case letter, and a lower-case
1258
letter is usually followed by another lower-case letter.
1446
letter is usually followed by another lower-case letter.
1259
In the US-ASCII character set, the highest three bits are 010
1447
In the US-ASCII character set, the highest three bits are 010
Lines 1268-1274 Link Here
1268
.BR lc=4 .
1456
.BR lc=4 .
1269
Sometimes it helps a little, and
1457
Sometimes it helps a little, and
1270
sometimes it makes compression worse.
1458
sometimes it makes compression worse.
1271
If it makes it worse, test e.g.\&
1459
If it makes it worse, test
1272
.B lc=2
1460
.B lc=2
1273
too.
1461
too.
1274
.TP
1462
.TP
Lines 1294-1303 Link Here
1294
.RI (2^ pb =2^2=4),
1482
.RI (2^ pb =2^2=4),
1295
which is often a good choice when there's no better guess.
1483
which is often a good choice when there's no better guess.
1296
.IP ""
1484
.IP ""
1297
When the aligment is known, setting
1485
When the alignment is known, setting
1298
.I pb
1486
.I pb
1299
accordingly may reduce the file size a little.
1487
accordingly may reduce the file size a little.
1300
E.g. with text files having one-byte
1488
For example, with text files having one-byte
1301
alignment (US-ASCII, ISO-8859-*, UTF-8), setting
1489
alignment (US-ASCII, ISO-8859-*, UTF-8), setting
1302
.B pb=0
1490
.B pb=0
1303
can improve compression slightly.
1491
can improve compression slightly.
Lines 1325-1331 Link Here
1325
.IR preset :
1513
.IR preset :
1326
0 uses
1514
0 uses
1327
.BR hc3 ,
1515
.BR hc3 ,
1328
1\-3
1516
1\(en3
1329
use
1517
use
1330
.BR hc4 ,
1518
.BR hc4 ,
1331
and the rest use
1519
and the rest use
Lines 1441-1451 Link Here
1441
.B fast
1629
.B fast
1442
for
1630
for
1443
.I presets
1631
.I presets
1444
0\-3 and
1632
0\(en3 and
1445
.B normal
1633
.B normal
1446
for
1634
for
1447
.I presets
1635
.I presets
1448
4\-9.
1636
4\(en9.
1449
.IP ""
1637
.IP ""
1450
Usually
1638
Usually
1451
.B fast
1639
.B fast
Lines 1464-1470 Link Here
1464
looking for possibly better matches.
1652
looking for possibly better matches.
1465
.IP ""
1653
.IP ""
1466
.I Nice
1654
.I Nice
1467
can be 2\-273 bytes.
1655
can be 2\(en273 bytes.
1468
Higher values tend to give better compression ratio
1656
Higher values tend to give better compression ratio
1469
at the expense of speed.
1657
at the expense of speed.
1470
The default depends on the
1658
The default depends on the
Lines 1482-1488 Link Here
1482
.IP ""
1670
.IP ""
1483
Reasonable
1671
Reasonable
1484
.I depth
1672
.I depth
1485
for Hash Chains is 4\-100 and 16\-1000 for Binary Trees.
1673
for Hash Chains is 4\(en100 and 16\(en1000 for Binary Trees.
1486
Using very high values for
1674
Using very high values for
1487
.I depth
1675
.I depth
1488
can make the encoder extremely slow with some files.
1676
can make the encoder extremely slow with some files.
Lines 1505-1518 Link Here
1505
\fB\-\-x86\fR[\fB=\fIoptions\fR]
1693
\fB\-\-x86\fR[\fB=\fIoptions\fR]
1506
.PD 0
1694
.PD 0
1507
.TP
1695
.TP
1508
\fB\-\-powerpc\fR[\fB=\fIoptions\fR]
1509
.TP
1510
\fB\-\-ia64\fR[\fB=\fIoptions\fR]
1511
.TP
1512
\fB\-\-arm\fR[\fB=\fIoptions\fR]
1696
\fB\-\-arm\fR[\fB=\fIoptions\fR]
1513
.TP
1697
.TP
1514
\fB\-\-armthumb\fR[\fB=\fIoptions\fR]
1698
\fB\-\-armthumb\fR[\fB=\fIoptions\fR]
1515
.TP
1699
.TP
1700
\fB\-\-arm64\fR[\fB=\fIoptions\fR]
1701
.TP
1702
\fB\-\-powerpc\fR[\fB=\fIoptions\fR]
1703
.TP
1704
\fB\-\-ia64\fR[\fB=\fIoptions\fR]
1705
.TP
1516
\fB\-\-sparc\fR[\fB=\fIoptions\fR]
1706
\fB\-\-sparc\fR[\fB=\fIoptions\fR]
1517
.PD
1707
.PD
1518
Add a branch/call/jump (BCJ) filter to the filter chain.
1708
Add a branch/call/jump (BCJ) filter to the filter chain.
Lines 1521-1576 Link Here
1521
.IP ""
1711
.IP ""
1522
A BCJ filter converts relative addresses in
1712
A BCJ filter converts relative addresses in
1523
the machine code to their absolute counterparts.
1713
the machine code to their absolute counterparts.
1524
This doesn't change the size of the data,
1714
This doesn't change the size of the data
1525
but it increases redundancy,
1715
but it increases redundancy,
1526
which can help LZMA2 to produce 0\-15\ % smaller
1716
which can help LZMA2 to produce 0\(en15\ % smaller
1527
.B .xz
1717
.B .xz
1528
file.
1718
file.
1529
The BCJ filters are always reversible,
1719
The BCJ filters are always reversible,
1530
so using a BCJ filter for wrong type of data
1720
so using a BCJ filter for wrong type of data
1531
doesn't cause any data loss, although it may make
1721
doesn't cause any data loss, although it may make
1532
the compression ratio slightly worse.
1722
the compression ratio slightly worse.
1723
The BCJ filters are very fast and
1724
use an insignificant amount of memory.
1533
.IP ""
1725
.IP ""
1534
It is fine to apply a BCJ filter on a whole executable;
1535
there's no need to apply it only on the executable section.
1536
Applying a BCJ filter on an archive that contains both executable
1537
and non-executable files may or may not give good results,
1538
so it generally isn't good to blindly apply a BCJ filter when
1539
compressing binary packages for distribution.
1540
.IP ""
1541
These BCJ filters are very fast and
1542
use insignificant amount of memory.
1543
If a BCJ filter improves compression ratio of a file,
1544
it can improve decompression speed at the same time.
1545
This is because, on the same hardware,
1546
the decompression speed of LZMA2 is roughly
1547
a fixed number of bytes of compressed data per second.
1548
.IP ""
1549
These BCJ filters have known problems related to
1726
These BCJ filters have known problems related to
1550
the compression ratio:
1727
the compression ratio:
1551
.RS
1728
.RS
1552
.IP \(bu 3
1729
.IP \(bu 3
1553
Some types of files containing executable code
1730
Some types of files containing executable code
1554
(e.g. object files, static libraries, and Linux kernel modules)
1731
(for example, object files, static libraries, and Linux kernel modules)
1555
have the addresses in the instructions filled with filler values.
1732
have the addresses in the instructions filled with filler values.
1556
These BCJ filters will still do the address conversion,
1733
These BCJ filters will still do the address conversion,
1557
which will make the compression worse with these files.
1734
which will make the compression worse with these files.
1558
.IP \(bu 3
1735
.IP \(bu 3
1559
Applying a BCJ filter on an archive containing multiple similar
1736
If a BCJ filter is applied on an archive,
1560
executables can make the compression ratio worse than not using
1737
it is possible that it makes the compression ratio
1561
a BCJ filter.
1738
worse than not using a BCJ filter.
1562
This is because the BCJ filter doesn't detect the boundaries
1739
For example, if there are similar or even identical executables
1563
of the executable files, and doesn't reset
1740
then filtering will likely make the files less similar
1564
the address conversion counter for each executable.
1741
and thus compression is worse.
1742
The contents of non-executable files in the same archive can matter too.
1743
In practice one has to try with and without a BCJ filter to see
1744
which is better in each situation.
1565
.RE
1745
.RE
1566
.IP ""
1746
.IP ""
1567
Both of the above problems will be fixed
1568
in the future in a new filter.
1569
The old BCJ filters will still be useful in embedded systems,
1570
because the decoder of the new filter will be bigger
1571
and use more memory.
1572
.IP ""
1573
Different instruction sets have different alignment:
1747
Different instruction sets have different alignment:
1748
the executable file must be aligned to a multiple of
1749
this value in the input data to make the filter work.
1574
.RS
1750
.RS
1575
.RS
1751
.RS
1576
.PP
1752
.PP
Lines 1580-1590 Link Here
1580
l n l.
1756
l n l.
1581
Filter;Alignment;Notes
1757
Filter;Alignment;Notes
1582
x86;1;32-bit or 64-bit x86
1758
x86;1;32-bit or 64-bit x86
1759
ARM;4;
1760
ARM-Thumb;2;
1761
ARM64;4;4096-byte alignment is best
1583
PowerPC;4;Big endian only
1762
PowerPC;4;Big endian only
1584
ARM;4;Little endian only
1763
IA-64;16;Itanium
1585
ARM-Thumb;2;Little endian only
1764
SPARC;4;
1586
IA-64;16;Big or little endian
1587
SPARC;4;Big or little endian
1588
.TE
1765
.TE
1589
.RE
1766
.RE
1590
.RE
1767
.RE
Lines 1595-1600 Link Here
1595
alignment of the selected BCJ filter.
1772
alignment of the selected BCJ filter.
1596
For example, with the IA-64 filter, it's good to set
1773
For example, with the IA-64 filter, it's good to set
1597
.B pb=4
1774
.B pb=4
1775
or even
1776
.B pb=4,lp=4,lc=0
1598
with LZMA2 (2^4=16).
1777
with LZMA2 (2^4=16).
1599
The x86 filter is an exception;
1778
The x86 filter is an exception;
1600
it's usually good to stick to LZMA2's default
1779
it's usually good to stick to LZMA2's default
Lines 1625-1636 Link Here
1625
in the filter chain.
1804
in the filter chain.
1626
.IP ""
1805
.IP ""
1627
Currently only simple byte-wise delta calculation is supported.
1806
Currently only simple byte-wise delta calculation is supported.
1628
It can be useful when compressing e.g. uncompressed bitmap images
1807
It can be useful when compressing, for example, uncompressed bitmap images
1629
or uncompressed PCM audio.
1808
or uncompressed PCM audio.
1630
However, special purpose algorithms may give significantly better
1809
However, special purpose algorithms may give significantly better
1631
results than Delta + LZMA2.
1810
results than Delta + LZMA2.
1632
This is true especially with audio,
1811
This is true especially with audio,
1633
which compresses faster and better e.g. with
1812
which compresses faster and better, for example, with
1634
.BR flac (1).
1813
.BR flac (1).
1635
.IP ""
1814
.IP ""
1636
Supported
1815
Supported
Lines 1642-1648 Link Here
1642
.I distance
1821
.I distance
1643
of the delta calculation in bytes.
1822
of the delta calculation in bytes.
1644
.I distance
1823
.I distance
1645
must be 1\-256.
1824
must be 1\(en256.
1646
The default is 1.
1825
The default is 1.
1647
.IP ""
1826
.IP ""
1648
For example, with
1827
For example, with
Lines 1701-1707 Link Here
1701
.B xz
1880
.B xz
1702
started processing the file.
1881
started processing the file.
1703
The time is shown in a less precise format which
1882
The time is shown in a less precise format which
1704
never has any colons, e.g. 2 min 30 s.
1883
never has any colons, for example, 2 min 30 s.
1705
.RE
1884
.RE
1706
.IP ""
1885
.IP ""
1707
When standard error is not a terminal,
1886
When standard error is not a terminal,
Lines 1714-1720 Link Here
1714
decompressing the file.
1893
decompressing the file.
1715
The speed and elapsed time are included only when
1894
The speed and elapsed time are included only when
1716
the operation took at least a few seconds.
1895
the operation took at least a few seconds.
1717
If the operation didn't finish, e.g. due to user interruption,
1896
If the operation didn't finish, for example, due to user interruption,
1718
also the completion percentage is printed
1897
also the completion percentage is printed
1719
if the size of the input file is known.
1898
if the size of the input file is known.
1720
.TP
1899
.TP
Lines 1740-1747 Link Here
1740
.B "ROBOT MODE"
1919
.B "ROBOT MODE"
1741
for details.
1920
for details.
1742
.TP
1921
.TP
1743
.BR \-\-info\-memory
1922
.B \-\-info\-memory
1744
Display, in human-readable format, how much physical memory (RAM)
1923
Display, in human-readable format, how much physical memory (RAM)
1924
and how many processor threads
1745
.B xz
1925
.B xz
1746
thinks the system has and the memory usage limits for compression
1926
thinks the system has and the memory usage limits for compression
1747
and decompression, and exit successfully.
1927
and decompression, and exit successfully.
Lines 1826-1840 Link Here
1826
.B "xz \-\-robot \-\-info\-memory"
2006
.B "xz \-\-robot \-\-info\-memory"
1827
prints a single line with three tab-separated columns:
2007
prints a single line with three tab-separated columns:
1828
.IP 1. 4
2008
.IP 1. 4
1829
Total amount of physical memory (RAM) in bytes
2009
Total amount of physical memory (RAM) in bytes.
1830
.IP 2. 4
2010
.IP 2. 4
1831
Memory usage limit for compression in bytes.
2011
Memory usage limit for compression in bytes
1832
A special value of zero indicates the default setting,
2012
.RB ( \-\-memlimit\-compress ).
2013
A special value of
2014
.B 0
2015
indicates the default setting
1833
which for single-threaded mode is the same as no limit.
2016
which for single-threaded mode is the same as no limit.
1834
.IP 3. 4
2017
.IP 3. 4
1835
Memory usage limit for decompression in bytes.
2018
Memory usage limit for decompression in bytes
1836
A special value of zero indicates the default setting,
2019
.RB ( \-\-memlimit\-decompress ).
2020
A special value of
2021
.B 0
2022
indicates the default setting
1837
which for single-threaded mode is the same as no limit.
2023
which for single-threaded mode is the same as no limit.
2024
.IP 4. 4
2025
Since
2026
.B xz
2027
5.3.4alpha:
2028
Memory usage for multi-threaded decompression in bytes
2029
.RB ( \-\-memlimit\-mt\-decompress ).
2030
This is never zero because a system-specific default value
2031
shown in the column 5
2032
is used if no limit has been specified explicitly.
2033
This is also never greater than the value in the column 3
2034
even if a larger value has been specified with
2035
.BR \-\-memlimit\-mt\-decompress .
2036
.IP 5. 4
2037
Since
2038
.B xz
2039
5.3.4alpha:
2040
A system-specific default memory usage limit
2041
that is used to limit the number of threads
2042
when compressing with an automatic number of threads
2043
.RB ( \-\-threads=0 )
2044
and no memory usage limit has been specified
2045
.RB ( \-\-memlimit\-compress ).
2046
This is also used as the default value for
2047
.BR \-\-memlimit\-mt\-decompress .
2048
.IP 6. 4
2049
Since
2050
.B xz
2051
5.3.4alpha:
2052
Number of available processor threads.
1838
.PP
2053
.PP
1839
In the future, the output of
2054
In the future, the output of
1840
.B "xz \-\-robot \-\-info\-memory"
2055
.B "xz \-\-robot \-\-info\-memory"
Lines 1916-1923 Link Here
1916
.IP 5. 4
2131
.IP 5. 4
1917
Uncompressed size of the file
2132
Uncompressed size of the file
1918
.IP 6. 4
2133
.IP 6. 4
1919
Compression ratio, for example
2134
Compression ratio, for example,
1920
.BR 0.123.
2135
.BR 0.123 .
1921
If ratio is over 9.999, three dashes
2136
If ratio is over 9.999, three dashes
1922
.RB ( \-\-\- )
2137
.RB ( \-\-\- )
1923
are displayed instead of the ratio.
2138
are displayed instead of the ratio.
Lines 2168-2176 Link Here
2168
when it is not possible to set the options directly on the
2383
when it is not possible to set the options directly on the
2169
.B xz
2384
.B xz
2170
command line.
2385
command line.
2171
This is the case e.g. when
2386
This is the case when
2172
.B xz
2387
.B xz
2173
is run by a script or tool, e.g. GNU
2388
is run by a script or tool, for example, GNU
2174
.BR tar (1):
2389
.BR tar (1):
2175
.RS
2390
.RS
2176
.RS
2391
.RS
Lines 2184-2194 Link Here
2184
.RE
2399
.RE
2185
.IP ""
2400
.IP ""
2186
Scripts may use
2401
Scripts may use
2187
.B XZ_OPT
2402
.BR XZ_OPT ,
2188
e.g. to set script-specific default compression options.
2403
for example, to set script-specific default compression options.
2189
It is still recommended to allow users to override
2404
It is still recommended to allow users to override
2190
.B XZ_OPT
2405
.B XZ_OPT
2191
if that is reasonable, e.g. in
2406
if that is reasonable.
2407
For example, in
2192
.BR sh (1)
2408
.BR sh (1)
2193
scripts one may use something like this:
2409
scripts one may use something like this:
2194
.RS
2410
.RS
Lines 2210-2216 Link Here
2210
.BR lzma ,
2426
.BR lzma ,
2211
.BR unlzma ,
2427
.BR unlzma ,
2212
and
2428
and
2213
.BR lzcat
2429
.B lzcat
2214
as found from LZMA Utils 4.32.x.
2430
as found from LZMA Utils 4.32.x.
2215
In most cases, it is possible to replace
2431
In most cases, it is possible to replace
2216
LZMA Utils with XZ Utils without breaking existing scripts.
2432
LZMA Utils with XZ Utils without breaking existing scripts.
Lines 2284-2290 Link Here
2284
and use end-of-payload marker to indicate
2500
and use end-of-payload marker to indicate
2285
where the decompressor should stop.
2501
where the decompressor should stop.
2286
LZMA Utils uses this method when uncompressed size isn't known,
2502
LZMA Utils uses this method when uncompressed size isn't known,
2287
which is the case for example in pipes.
2503
which is the case, for example, in pipes.
2288
.PP
2504
.PP
2289
.B xz
2505
.B xz
2290
supports decompressing
2506
supports decompressing
Lines 2480-2486 Link Here
2480
with the preset
2696
with the preset
2481
.B \-4e
2697
.B \-4e
2482
.RB ( "\-4 \-\-extreme" ),
2698
.RB ( "\-4 \-\-extreme" ),
2483
which is slower than e.g. the default
2699
which is slower than the default
2484
.BR \-6 ,
2700
.BR \-6 ,
2485
but needs less memory for compression and decompression (48\ MiB
2701
but needs less memory for compression and decompression (48\ MiB
2486
and 5\ MiB, respectively):
2702
and 5\ MiB, respectively):
Lines 2590-2596 Link Here
2590
.PP
2806
.PP
2591
.nf
2807
.nf
2592
.ft CW
2808
.ft CW
2593
NEWLIM=$((123 << 20))  # 123 MiB
2809
NEWLIM=$((123 << 20))\ \ # 123 MiB
2594
OLDLIM=$(xz \-\-robot \-\-info\-memory | cut \-f3)
2810
OLDLIM=$(xz \-\-robot \-\-info\-memory | cut \-f3)
2595
if [ $OLDLIM \-eq 0 \-o $OLDLIM \-gt $NEWLIM ]; then
2811
if [ $OLDLIM \-eq 0 \-o $OLDLIM \-gt $NEWLIM ]; then
2596
    XZ_OPT="$XZ_OPT \-\-memlimit\-decompress=$NEWLIM"
2812
    XZ_OPT="$XZ_OPT \-\-memlimit\-decompress=$NEWLIM"
Lines 2634-2643 Link Here
2634
.RE
2850
.RE
2635
.PP
2851
.PP
2636
If you know that a file requires
2852
If you know that a file requires
2637
somewhat big dictionary (e.g. 32 MiB) to compress well,
2853
somewhat big dictionary (for example, 32\ MiB) to compress well,
2638
but you want to compress it quicker than
2854
but you want to compress it quicker than
2639
.B "xz \-8"
2855
.B "xz \-8"
2640
would do, a preset with a low CompCPU value (e.g. 1)
2856
would do, a preset with a low CompCPU value (for example, 1)
2641
can be modified to use a bigger dictionary:
2857
can be modified to use a bigger dictionary:
2642
.RS
2858
.RS
2643
.PP
2859
.PP
Lines 2687-2695 Link Here
2687
so the above command isn't useful for small files.
2903
so the above command isn't useful for small files.
2688
.PP
2904
.PP
2689
Sometimes the compression time doesn't matter,
2905
Sometimes the compression time doesn't matter,
2690
but the decompressor memory usage has to be kept low
2906
but the decompressor memory usage has to be kept low, for example,
2691
e.g. to make it possible to decompress the file on
2907
to make it possible to decompress the file on an embedded system.
2692
an embedded system.
2693
The following command uses
2908
The following command uses
2694
.B \-6e
2909
.B \-6e
2695
.RB ( "\-6 \-\-extreme" )
2910
.RB ( "\-6 \-\-extreme" )
Lines 2720-2726 Link Here
2720
and
2935
and
2721
.I pb
2936
.I pb
2722
are more important.
2937
are more important.
2723
E.g. a source code archive contains mostly US-ASCII text,
2938
For example, a source code archive contains mostly US-ASCII text,
2724
so something like the following might give
2939
so something like the following might give
2725
slightly (like 0.1\ %) smaller file than
2940
slightly (like 0.1\ %) smaller file than
2726
.B "xz \-6e"
2941
.B "xz \-6e"
Lines 2737-2743 Link Here
2737
.PP
2952
.PP
2738
Using another filter together with LZMA2 can improve
2953
Using another filter together with LZMA2 can improve
2739
compression with certain file types.
2954
compression with certain file types.
2740
E.g. to compress a x86-32 or x86-64 shared library
2955
For example, to compress a x86-32 or x86-64 shared library
2741
using the x86 BCJ filter:
2956
using the x86 BCJ filter:
2742
.RS
2957
.RS
2743
.PP
2958
.PP
Lines 2766-2775 Link Here
2766
delta but uses Deflate for the actual compression.
2981
delta but uses Deflate for the actual compression.
2767
.PP
2982
.PP
2768
The image has to be saved in uncompressed format,
2983
The image has to be saved in uncompressed format,
2769
e.g. as uncompressed TIFF.
2984
for example, as uncompressed TIFF.
2770
The distance parameter of the Delta filter is set
2985
The distance parameter of the Delta filter is set
2771
to match the number of bytes per pixel in the image.
2986
to match the number of bytes per pixel in the image.
2772
E.g. 24-bit RGB bitmap needs
2987
For example, 24-bit RGB bitmap needs
2773
.BR dist=3 ,
2988
.BR dist=3 ,
2774
and it is also good to pass
2989
and it is also good to pass
2775
.B pb=0
2990
.B pb=0
Lines 2783-2789 Link Here
2783
.fi
2998
.fi
2784
.RE
2999
.RE
2785
.PP
3000
.PP
2786
If multiple images have been put into a single archive (e.g.\&
3001
If multiple images have been put into a single archive (for example,
2787
.BR .tar ),
3002
.BR .tar ),
2788
the Delta filter will work on that too as long as all images
3003
the Delta filter will work on that too as long as all images
2789
have the same number of bytes per pixel.
3004
have the same number of bytes per pixel.
Lines 2802-2805 Link Here
2802
.br
3017
.br
2803
XZ Embedded: <https://tukaani.org/xz/embedded.html>
3018
XZ Embedded: <https://tukaani.org/xz/embedded.html>
2804
.br
3019
.br
2805
LZMA SDK: <http://7-zip.org/sdk.html>
3020
LZMA SDK: <https://7-zip.org/sdk.html>
(-)xz-5.2.5/src/xzdec/Makefile.in (-5 / +8 lines)
Lines 1-7 Link Here
1
# Makefile.in generated by automake 1.16.1 from Makefile.am.
1
# Makefile.in generated by automake 1.16.5 from Makefile.am.
2
# @configure_input@
2
# @configure_input@
3
3
4
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
4
# Copyright (C) 1994-2021 Free Software Foundation, Inc.
5
5
6
# This Makefile.in is free software; the Free Software Foundation
6
# This Makefile.in is free software; the Free Software Foundation
7
# gives unlimited permission to copy and/or distribute it,
7
# gives unlimited permission to copy and/or distribute it,
Lines 251-258 Link Here
251
  unique=`for i in $$list; do \
251
  unique=`for i in $$list; do \
252
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
252
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
253
  done | $(am__uniquify_input)`
253
  done | $(am__uniquify_input)`
254
ETAGS = etags
255
CTAGS = ctags
256
am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \
254
am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \
257
	$(top_srcdir)/build-aux/depcomp
255
	$(top_srcdir)/build-aux/depcomp
258
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
256
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
Lines 276-281 Link Here
276
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
274
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
277
CPP = @CPP@
275
CPP = @CPP@
278
CPPFLAGS = @CPPFLAGS@
276
CPPFLAGS = @CPPFLAGS@
277
CSCOPE = @CSCOPE@
278
CTAGS = @CTAGS@
279
CYGPATH_W = @CYGPATH_W@
279
CYGPATH_W = @CYGPATH_W@
280
DEFS = @DEFS@
280
DEFS = @DEFS@
281
DEPDIR = @DEPDIR@
281
DEPDIR = @DEPDIR@
Lines 286-293 Link Here
286
ECHO_N = @ECHO_N@
286
ECHO_N = @ECHO_N@
287
ECHO_T = @ECHO_T@
287
ECHO_T = @ECHO_T@
288
EGREP = @EGREP@
288
EGREP = @EGREP@
289
ETAGS = @ETAGS@
289
EXEEXT = @EXEEXT@
290
EXEEXT = @EXEEXT@
290
FGREP = @FGREP@
291
FGREP = @FGREP@
292
FILECMD = @FILECMD@
291
GETOPT_H = @GETOPT_H@
293
GETOPT_H = @GETOPT_H@
292
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
294
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
293
GMSGFMT = @GMSGFMT@
295
GMSGFMT = @GMSGFMT@
Lines 340-345 Link Here
340
PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@
342
PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@
341
PTHREAD_CC = @PTHREAD_CC@
343
PTHREAD_CC = @PTHREAD_CC@
342
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
344
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
345
PTHREAD_CXX = @PTHREAD_CXX@
343
PTHREAD_LIBS = @PTHREAD_LIBS@
346
PTHREAD_LIBS = @PTHREAD_LIBS@
344
RANLIB = @RANLIB@
347
RANLIB = @RANLIB@
345
RC = @RC@
348
RC = @RC@
Lines 398-403 Link Here
398
prefix = @prefix@
401
prefix = @prefix@
399
program_transform_name = @program_transform_name@
402
program_transform_name = @program_transform_name@
400
psdir = @psdir@
403
psdir = @psdir@
404
runstatedir = @runstatedir@
401
sbindir = @sbindir@
405
sbindir = @sbindir@
402
sharedstatedir = @sharedstatedir@
406
sharedstatedir = @sharedstatedir@
403
srcdir = @srcdir@
407
srcdir = @srcdir@
Lines 739-745 Link Here
739
743
740
distclean-tags:
744
distclean-tags:
741
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
745
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
742
743
distdir: $(BUILT_SOURCES)
746
distdir: $(BUILT_SOURCES)
744
	$(MAKE) $(AM_MAKEFLAGS) distdir-am
747
	$(MAKE) $(AM_MAKEFLAGS) distdir-am
745
748
(-)xz-5.2.5/tests/Makefile.am (-2 / +26 lines)
Lines 7-15 Link Here
7
7
8
EXTRA_DIST = \
8
EXTRA_DIST = \
9
	files \
9
	files \
10
	ossfuzz \
11
	tuktest.h \
10
	tests.h \
12
	tests.h \
11
	test_files.sh \
13
	test_files.sh \
12
	test_compress.sh \
14
	test_compress.sh \
15
	test_compress_prepared_bcj_sparc \
16
	test_compress_prepared_bcj_x86 \
17
	test_compress_generated_abc \
18
	test_compress_generated_random \
19
	test_compress_generated_text \
13
	test_scripts.sh \
20
	test_scripts.sh \
14
	bcj_test.c \
21
	bcj_test.c \
15
	compress_prepared_bcj_sparc \
22
	compress_prepared_bcj_sparc \
Lines 19-24 Link Here
19
AM_CPPFLAGS = \
26
AM_CPPFLAGS = \
20
	-I$(top_srcdir)/src/common \
27
	-I$(top_srcdir)/src/common \
21
	-I$(top_srcdir)/src/liblzma/api \
28
	-I$(top_srcdir)/src/liblzma/api \
29
	-I$(top_srcdir)/src/liblzma \
22
	-I$(top_builddir)/lib
30
	-I$(top_builddir)/lib
23
31
24
LDADD = $(top_builddir)/src/liblzma/liblzma.la
32
LDADD = $(top_builddir)/src/liblzma/liblzma.la
Lines 32-52 Link Here
32
check_PROGRAMS = \
40
check_PROGRAMS = \
33
	create_compress_files \
41
	create_compress_files \
34
	test_check \
42
	test_check \
43
	test_hardware \
35
	test_stream_flags \
44
	test_stream_flags \
36
	test_filter_flags \
45
	test_filter_flags \
46
	test_filter_str \
37
	test_block_header \
47
	test_block_header \
38
	test_index \
48
	test_index \
39
	test_bcj_exact_size
49
	test_index_hash \
50
	test_bcj_exact_size \
51
	test_memlimit \
52
	test_lzip_decoder \
53
	test_vli
40
54
41
TESTS = \
55
TESTS = \
42
	test_check \
56
	test_check \
57
	test_hardware \
43
	test_stream_flags \
58
	test_stream_flags \
44
	test_filter_flags \
59
	test_filter_flags \
60
	test_filter_str \
45
	test_block_header \
61
	test_block_header \
46
	test_index \
62
	test_index \
63
	test_index_hash \
47
	test_bcj_exact_size \
64
	test_bcj_exact_size \
65
	test_memlimit \
66
	test_lzip_decoder \
67
	test_vli \
48
	test_files.sh \
68
	test_files.sh \
49
	test_compress.sh
69
	test_compress_prepared_bcj_sparc \
70
	test_compress_prepared_bcj_x86 \
71
	test_compress_generated_abc \
72
	test_compress_generated_random \
73
	test_compress_generated_text
50
74
51
if COND_SCRIPTS
75
if COND_SCRIPTS
52
TESTS += test_scripts.sh
76
TESTS += test_scripts.sh
(-)xz-5.2.5/tests/Makefile.in (-104 / +588 lines)
Lines 1-7 Link Here
1
# Makefile.in generated by automake 1.16.1 from Makefile.am.
1
# Makefile.in generated by automake 1.16.5 from Makefile.am.
2
# @configure_input@
2
# @configure_input@
3
3
4
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
4
# Copyright (C) 1994-2021 Free Software Foundation, Inc.
5
5
6
# This Makefile.in is free software; the Free Software Foundation
6
# This Makefile.in is free software; the Free Software Foundation
7
# gives unlimited permission to copy and/or distribute it,
7
# gives unlimited permission to copy and/or distribute it,
Lines 89-101 Link Here
89
host_triplet = @host@
89
host_triplet = @host@
90
@COND_GNULIB_TRUE@am__append_1 = $(top_builddir)/lib/libgnu.a
90
@COND_GNULIB_TRUE@am__append_1 = $(top_builddir)/lib/libgnu.a
91
check_PROGRAMS = create_compress_files$(EXEEXT) test_check$(EXEEXT) \
91
check_PROGRAMS = create_compress_files$(EXEEXT) test_check$(EXEEXT) \
92
	test_stream_flags$(EXEEXT) test_filter_flags$(EXEEXT) \
92
	test_hardware$(EXEEXT) test_stream_flags$(EXEEXT) \
93
	test_filter_flags$(EXEEXT) test_filter_str$(EXEEXT) \
93
	test_block_header$(EXEEXT) test_index$(EXEEXT) \
94
	test_block_header$(EXEEXT) test_index$(EXEEXT) \
94
	test_bcj_exact_size$(EXEEXT)
95
	test_index_hash$(EXEEXT) test_bcj_exact_size$(EXEEXT) \
95
TESTS = test_check$(EXEEXT) test_stream_flags$(EXEEXT) \
96
	test_memlimit$(EXEEXT) test_lzip_decoder$(EXEEXT) \
96
	test_filter_flags$(EXEEXT) test_block_header$(EXEEXT) \
97
	test_vli$(EXEEXT)
97
	test_index$(EXEEXT) test_bcj_exact_size$(EXEEXT) test_files.sh \
98
TESTS = test_check$(EXEEXT) test_hardware$(EXEEXT) \
98
	test_compress.sh $(am__append_2)
99
	test_stream_flags$(EXEEXT) test_filter_flags$(EXEEXT) \
100
	test_filter_str$(EXEEXT) test_block_header$(EXEEXT) \
101
	test_index$(EXEEXT) test_index_hash$(EXEEXT) \
102
	test_bcj_exact_size$(EXEEXT) test_memlimit$(EXEEXT) \
103
	test_lzip_decoder$(EXEEXT) test_vli$(EXEEXT) test_files.sh \
104
	test_compress_prepared_bcj_sparc \
105
	test_compress_prepared_bcj_x86 test_compress_generated_abc \
106
	test_compress_generated_random test_compress_generated_text \
107
	$(am__append_2)
99
@COND_SCRIPTS_TRUE@am__append_2 = test_scripts.sh
108
@COND_SCRIPTS_TRUE@am__append_2 = test_scripts.sh
100
subdir = tests
109
subdir = tests
101
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
110
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
Lines 157-173 Link Here
157
test_filter_flags_DEPENDENCIES =  \
166
test_filter_flags_DEPENDENCIES =  \
158
	$(top_builddir)/src/liblzma/liblzma.la $(am__append_1) \
167
	$(top_builddir)/src/liblzma/liblzma.la $(am__append_1) \
159
	$(am__DEPENDENCIES_1)
168
	$(am__DEPENDENCIES_1)
169
test_filter_str_SOURCES = test_filter_str.c
170
test_filter_str_OBJECTS = test_filter_str.$(OBJEXT)
171
test_filter_str_LDADD = $(LDADD)
172
test_filter_str_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \
173
	$(am__append_1) $(am__DEPENDENCIES_1)
174
test_hardware_SOURCES = test_hardware.c
175
test_hardware_OBJECTS = test_hardware.$(OBJEXT)
176
test_hardware_LDADD = $(LDADD)
177
test_hardware_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \
178
	$(am__append_1) $(am__DEPENDENCIES_1)
160
test_index_SOURCES = test_index.c
179
test_index_SOURCES = test_index.c
161
test_index_OBJECTS = test_index.$(OBJEXT)
180
test_index_OBJECTS = test_index.$(OBJEXT)
162
test_index_LDADD = $(LDADD)
181
test_index_LDADD = $(LDADD)
163
test_index_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \
182
test_index_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \
164
	$(am__append_1) $(am__DEPENDENCIES_1)
183
	$(am__append_1) $(am__DEPENDENCIES_1)
184
test_index_hash_SOURCES = test_index_hash.c
185
test_index_hash_OBJECTS = test_index_hash.$(OBJEXT)
186
test_index_hash_LDADD = $(LDADD)
187
test_index_hash_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \
188
	$(am__append_1) $(am__DEPENDENCIES_1)
189
test_lzip_decoder_SOURCES = test_lzip_decoder.c
190
test_lzip_decoder_OBJECTS = test_lzip_decoder.$(OBJEXT)
191
test_lzip_decoder_LDADD = $(LDADD)
192
test_lzip_decoder_DEPENDENCIES =  \
193
	$(top_builddir)/src/liblzma/liblzma.la $(am__append_1) \
194
	$(am__DEPENDENCIES_1)
195
test_memlimit_SOURCES = test_memlimit.c
196
test_memlimit_OBJECTS = test_memlimit.$(OBJEXT)
197
test_memlimit_LDADD = $(LDADD)
198
test_memlimit_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \
199
	$(am__append_1) $(am__DEPENDENCIES_1)
165
test_stream_flags_SOURCES = test_stream_flags.c
200
test_stream_flags_SOURCES = test_stream_flags.c
166
test_stream_flags_OBJECTS = test_stream_flags.$(OBJEXT)
201
test_stream_flags_OBJECTS = test_stream_flags.$(OBJEXT)
167
test_stream_flags_LDADD = $(LDADD)
202
test_stream_flags_LDADD = $(LDADD)
168
test_stream_flags_DEPENDENCIES =  \
203
test_stream_flags_DEPENDENCIES =  \
169
	$(top_builddir)/src/liblzma/liblzma.la $(am__append_1) \
204
	$(top_builddir)/src/liblzma/liblzma.la $(am__append_1) \
170
	$(am__DEPENDENCIES_1)
205
	$(am__DEPENDENCIES_1)
206
test_vli_SOURCES = test_vli.c
207
test_vli_OBJECTS = test_vli.$(OBJEXT)
208
test_vli_LDADD = $(LDADD)
209
test_vli_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \
210
	$(am__append_1) $(am__DEPENDENCIES_1)
171
AM_V_P = $(am__v_P_@AM_V@)
211
AM_V_P = $(am__v_P_@AM_V@)
172
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
212
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
173
am__v_P_0 = false
213
am__v_P_0 = false
Lines 186-193 Link Here
186
am__depfiles_remade = ./$(DEPDIR)/create_compress_files.Po \
226
am__depfiles_remade = ./$(DEPDIR)/create_compress_files.Po \
187
	./$(DEPDIR)/test_bcj_exact_size.Po \
227
	./$(DEPDIR)/test_bcj_exact_size.Po \
188
	./$(DEPDIR)/test_block_header.Po ./$(DEPDIR)/test_check.Po \
228
	./$(DEPDIR)/test_block_header.Po ./$(DEPDIR)/test_check.Po \
189
	./$(DEPDIR)/test_filter_flags.Po ./$(DEPDIR)/test_index.Po \
229
	./$(DEPDIR)/test_filter_flags.Po \
190
	./$(DEPDIR)/test_stream_flags.Po
230
	./$(DEPDIR)/test_filter_str.Po ./$(DEPDIR)/test_hardware.Po \
231
	./$(DEPDIR)/test_index.Po ./$(DEPDIR)/test_index_hash.Po \
232
	./$(DEPDIR)/test_lzip_decoder.Po ./$(DEPDIR)/test_memlimit.Po \
233
	./$(DEPDIR)/test_stream_flags.Po ./$(DEPDIR)/test_vli.Po
191
am__mv = mv -f
234
am__mv = mv -f
192
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
235
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
193
	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
236
	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
Lines 209-218 Link Here
209
am__v_CCLD_1 = 
252
am__v_CCLD_1 = 
210
SOURCES = create_compress_files.c test_bcj_exact_size.c \
253
SOURCES = create_compress_files.c test_bcj_exact_size.c \
211
	test_block_header.c test_check.c test_filter_flags.c \
254
	test_block_header.c test_check.c test_filter_flags.c \
212
	test_index.c test_stream_flags.c
255
	test_filter_str.c test_hardware.c test_index.c \
256
	test_index_hash.c test_lzip_decoder.c test_memlimit.c \
257
	test_stream_flags.c test_vli.c
213
DIST_SOURCES = create_compress_files.c test_bcj_exact_size.c \
258
DIST_SOURCES = create_compress_files.c test_bcj_exact_size.c \
214
	test_block_header.c test_check.c test_filter_flags.c \
259
	test_block_header.c test_check.c test_filter_flags.c \
215
	test_index.c test_stream_flags.c
260
	test_filter_str.c test_hardware.c test_index.c \
261
	test_index_hash.c test_lzip_decoder.c test_memlimit.c \
262
	test_stream_flags.c test_vli.c
216
am__can_run_installinfo = \
263
am__can_run_installinfo = \
217
  case $$AM_UPDATE_INFO_DIR in \
264
  case $$AM_UPDATE_INFO_DIR in \
218
    n|no|NO) false;; \
265
    n|no|NO) false;; \
Lines 235-242 Link Here
235
  unique=`for i in $$list; do \
282
  unique=`for i in $$list; do \
236
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
283
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
237
  done | $(am__uniquify_input)`
284
  done | $(am__uniquify_input)`
238
ETAGS = etags
239
CTAGS = ctags
240
am__tty_colors_dummy = \
285
am__tty_colors_dummy = \
241
  mgn= red= grn= lgn= blu= brg= std=; \
286
  mgn= red= grn= lgn= blu= brg= std=; \
242
  am__color_tests=no
287
  am__color_tests=no
Lines 259-266 Link Here
259
    std='[m'; \
304
    std='[m'; \
260
  fi; \
305
  fi; \
261
}
306
}
307
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
308
am__vpath_adj = case $$p in \
309
    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
310
    *) f=$$p;; \
311
  esac;
312
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
313
am__install_max = 40
314
am__nobase_strip_setup = \
315
  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
316
am__nobase_strip = \
317
  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
318
am__nobase_list = $(am__nobase_strip_setup); \
319
  for p in $$list; do echo "$$p $$p"; done | \
320
  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
321
  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
322
    if (++n[$$2] == $(am__install_max)) \
323
      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
324
    END { for (dir in files) print dir, files[dir] }'
325
am__base_list = \
326
  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
327
  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
328
am__uninstall_files_from_dir = { \
329
  test -z "$$files" \
330
    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
331
    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
332
         $(am__cd) "$$dir" && rm -f $$files; }; \
333
  }
334
am__recheck_rx = ^[ 	]*:recheck:[ 	]*
335
am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
336
am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
337
# A command that, given a newline-separated list of test names on the
338
# standard input, print the name of the tests that are to be re-run
339
# upon "make recheck".
340
am__list_recheck_tests = $(AWK) '{ \
341
  recheck = 1; \
342
  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
343
    { \
344
      if (rc < 0) \
345
        { \
346
          if ((getline line2 < ($$0 ".log")) < 0) \
347
	    recheck = 0; \
348
          break; \
349
        } \
350
      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
351
        { \
352
          recheck = 0; \
353
          break; \
354
        } \
355
      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
356
        { \
357
          break; \
358
        } \
359
    }; \
360
  if (recheck) \
361
    print $$0; \
362
  close ($$0 ".trs"); \
363
  close ($$0 ".log"); \
364
}'
365
# A command that, given a newline-separated list of test names on the
366
# standard input, create the global log from their .trs and .log files.
367
am__create_global_log = $(AWK) ' \
368
function fatal(msg) \
369
{ \
370
  print "fatal: making $@: " msg | "cat >&2"; \
371
  exit 1; \
372
} \
373
function rst_section(header) \
374
{ \
375
  print header; \
376
  len = length(header); \
377
  for (i = 1; i <= len; i = i + 1) \
378
    printf "="; \
379
  printf "\n\n"; \
380
} \
381
{ \
382
  copy_in_global_log = 1; \
383
  global_test_result = "RUN"; \
384
  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
385
    { \
386
      if (rc < 0) \
387
         fatal("failed to read from " $$0 ".trs"); \
388
      if (line ~ /$(am__global_test_result_rx)/) \
389
        { \
390
          sub("$(am__global_test_result_rx)", "", line); \
391
          sub("[ 	]*$$", "", line); \
392
          global_test_result = line; \
393
        } \
394
      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
395
        copy_in_global_log = 0; \
396
    }; \
397
  if (copy_in_global_log) \
398
    { \
399
      rst_section(global_test_result ": " $$0); \
400
      while ((rc = (getline line < ($$0 ".log"))) != 0) \
401
      { \
402
        if (rc < 0) \
403
          fatal("failed to read from " $$0 ".log"); \
404
        print line; \
405
      }; \
406
      printf "\n"; \
407
    }; \
408
  close ($$0 ".trs"); \
409
  close ($$0 ".log"); \
410
}'
411
# Restructured Text title.
412
am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
413
# Solaris 10 'make', and several other traditional 'make' implementations,
414
# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
415
# by disabling -e (using the XSI extension "set +e") if it's set.
416
am__sh_e_setup = case $$- in *e*) set +e;; esac
417
# Default flags passed to test drivers.
418
am__common_driver_flags = \
419
  --color-tests "$$am__color_tests" \
420
  --enable-hard-errors "$$am__enable_hard_errors" \
421
  --expect-failure "$$am__expect_failure"
422
# To be inserted before the command running the test.  Creates the
423
# directory for the log if needed.  Stores in $dir the directory
424
# containing $f, in $tst the test, in $log the log.  Executes the
425
# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
426
# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
427
# will run the test scripts (or their associated LOG_COMPILER, if
428
# thy have one).
429
am__check_pre = \
430
$(am__sh_e_setup);					\
431
$(am__vpath_adj_setup) $(am__vpath_adj)			\
432
$(am__tty_colors);					\
433
srcdir=$(srcdir); export srcdir;			\
434
case "$@" in						\
435
  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
436
    *) am__odir=.;; 					\
437
esac;							\
438
test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
439
  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
440
if test -f "./$$f"; then dir=./;			\
441
elif test -f "$$f"; then dir=;				\
442
else dir="$(srcdir)/"; fi;				\
443
tst=$$dir$$f; log='$@'; 				\
444
if test -n '$(DISABLE_HARD_ERRORS)'; then		\
445
  am__enable_hard_errors=no; 				\
446
else							\
447
  am__enable_hard_errors=yes; 				\
448
fi; 							\
449
case " $(XFAIL_TESTS) " in				\
450
  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
451
    am__expect_failure=yes;;				\
452
  *)							\
453
    am__expect_failure=no;;				\
454
esac; 							\
455
$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
456
# A shell command to get the names of the tests scripts with any registered
457
# extension removed (i.e., equivalently, the names of the test logs, with
458
# the '.log' extension removed).  The result is saved in the shell variable
459
# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
460
# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
461
# since that might cause problem with VPATH rewrites for suffix-less tests.
462
# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
463
am__set_TESTS_bases = \
464
  bases='$(TEST_LOGS)'; \
465
  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
466
  bases=`echo $$bases`
467
AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)'
468
RECHECK_LOGS = $(TEST_LOGS)
469
AM_RECURSIVE_TARGETS = check recheck
470
TEST_SUITE_LOG = test-suite.log
471
TEST_EXTENSIONS = @EXEEXT@ .test
472
LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver
473
LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
474
am__set_b = \
475
  case '$@' in \
476
    */*) \
477
      case '$*' in \
478
        */*) b='$*';; \
479
          *) b=`echo '$@' | sed 's/\.log$$//'`; \
480
       esac;; \
481
    *) \
482
      b='$*';; \
483
  esac
484
am__test_logs1 = $(TESTS:=.log)
485
am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
486
TEST_LOGS = $(am__test_logs2:.test.log=.log)
487
TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver
488
TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
489
	$(TEST_LOG_FLAGS)
262
am__DIST_COMMON = $(srcdir)/Makefile.in \
490
am__DIST_COMMON = $(srcdir)/Makefile.in \
263
	$(top_srcdir)/build-aux/depcomp
491
	$(top_srcdir)/build-aux/depcomp \
492
	$(top_srcdir)/build-aux/test-driver
264
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
493
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
265
ACLOCAL = @ACLOCAL@
494
ACLOCAL = @ACLOCAL@
266
AMTAR = @AMTAR@
495
AMTAR = @AMTAR@
Lines 282-287 Link Here
282
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
511
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
283
CPP = @CPP@
512
CPP = @CPP@
284
CPPFLAGS = @CPPFLAGS@
513
CPPFLAGS = @CPPFLAGS@
514
CSCOPE = @CSCOPE@
515
CTAGS = @CTAGS@
285
CYGPATH_W = @CYGPATH_W@
516
CYGPATH_W = @CYGPATH_W@
286
DEFS = @DEFS@
517
DEFS = @DEFS@
287
DEPDIR = @DEPDIR@
518
DEPDIR = @DEPDIR@
Lines 292-299 Link Here
292
ECHO_N = @ECHO_N@
523
ECHO_N = @ECHO_N@
293
ECHO_T = @ECHO_T@
524
ECHO_T = @ECHO_T@
294
EGREP = @EGREP@
525
EGREP = @EGREP@
526
ETAGS = @ETAGS@
295
EXEEXT = @EXEEXT@
527
EXEEXT = @EXEEXT@
296
FGREP = @FGREP@
528
FGREP = @FGREP@
529
FILECMD = @FILECMD@
297
GETOPT_H = @GETOPT_H@
530
GETOPT_H = @GETOPT_H@
298
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
531
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
299
GMSGFMT = @GMSGFMT@
532
GMSGFMT = @GMSGFMT@
Lines 346-351 Link Here
346
PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@
579
PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@
347
PTHREAD_CC = @PTHREAD_CC@
580
PTHREAD_CC = @PTHREAD_CC@
348
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
581
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
582
PTHREAD_CXX = @PTHREAD_CXX@
349
PTHREAD_LIBS = @PTHREAD_LIBS@
583
PTHREAD_LIBS = @PTHREAD_LIBS@
350
RANLIB = @RANLIB@
584
RANLIB = @RANLIB@
351
RC = @RC@
585
RC = @RC@
Lines 404-409 Link Here
404
prefix = @prefix@
638
prefix = @prefix@
405
program_transform_name = @program_transform_name@
639
program_transform_name = @program_transform_name@
406
psdir = @psdir@
640
psdir = @psdir@
641
runstatedir = @runstatedir@
407
sbindir = @sbindir@
642
sbindir = @sbindir@
408
sharedstatedir = @sharedstatedir@
643
sharedstatedir = @sharedstatedir@
409
srcdir = @srcdir@
644
srcdir = @srcdir@
Lines 415-423 Link Here
415
xz = @xz@
650
xz = @xz@
416
EXTRA_DIST = \
651
EXTRA_DIST = \
417
	files \
652
	files \
653
	ossfuzz \
654
	tuktest.h \
418
	tests.h \
655
	tests.h \
419
	test_files.sh \
656
	test_files.sh \
420
	test_compress.sh \
657
	test_compress.sh \
658
	test_compress_prepared_bcj_sparc \
659
	test_compress_prepared_bcj_x86 \
660
	test_compress_generated_abc \
661
	test_compress_generated_random \
662
	test_compress_generated_text \
421
	test_scripts.sh \
663
	test_scripts.sh \
422
	bcj_test.c \
664
	bcj_test.c \
423
	compress_prepared_bcj_sparc \
665
	compress_prepared_bcj_sparc \
Lines 427-432 Link Here
427
AM_CPPFLAGS = \
669
AM_CPPFLAGS = \
428
	-I$(top_srcdir)/src/common \
670
	-I$(top_srcdir)/src/common \
429
	-I$(top_srcdir)/src/liblzma/api \
671
	-I$(top_srcdir)/src/liblzma/api \
672
	-I$(top_srcdir)/src/liblzma \
430
	-I$(top_builddir)/lib
673
	-I$(top_builddir)/lib
431
674
432
LDADD = $(top_builddir)/src/liblzma/liblzma.la $(am__append_1) \
675
LDADD = $(top_builddir)/src/liblzma/liblzma.la $(am__append_1) \
Lines 434-440 Link Here
434
all: all-am
677
all: all-am
435
678
436
.SUFFIXES:
679
.SUFFIXES:
437
.SUFFIXES: .c .lo .o .obj
680
.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs
438
$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
681
$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
439
	@for dep in $?; do \
682
	@for dep in $?; do \
440
	  case '$(am__configure_deps)' in \
683
	  case '$(am__configure_deps)' in \
Lines 494-507 Link Here
494
	@rm -f test_filter_flags$(EXEEXT)
737
	@rm -f test_filter_flags$(EXEEXT)
495
	$(AM_V_CCLD)$(LINK) $(test_filter_flags_OBJECTS) $(test_filter_flags_LDADD) $(LIBS)
738
	$(AM_V_CCLD)$(LINK) $(test_filter_flags_OBJECTS) $(test_filter_flags_LDADD) $(LIBS)
496
739
740
test_filter_str$(EXEEXT): $(test_filter_str_OBJECTS) $(test_filter_str_DEPENDENCIES) $(EXTRA_test_filter_str_DEPENDENCIES) 
741
	@rm -f test_filter_str$(EXEEXT)
742
	$(AM_V_CCLD)$(LINK) $(test_filter_str_OBJECTS) $(test_filter_str_LDADD) $(LIBS)
743
744
test_hardware$(EXEEXT): $(test_hardware_OBJECTS) $(test_hardware_DEPENDENCIES) $(EXTRA_test_hardware_DEPENDENCIES) 
745
	@rm -f test_hardware$(EXEEXT)
746
	$(AM_V_CCLD)$(LINK) $(test_hardware_OBJECTS) $(test_hardware_LDADD) $(LIBS)
747
497
test_index$(EXEEXT): $(test_index_OBJECTS) $(test_index_DEPENDENCIES) $(EXTRA_test_index_DEPENDENCIES) 
748
test_index$(EXEEXT): $(test_index_OBJECTS) $(test_index_DEPENDENCIES) $(EXTRA_test_index_DEPENDENCIES) 
498
	@rm -f test_index$(EXEEXT)
749
	@rm -f test_index$(EXEEXT)
499
	$(AM_V_CCLD)$(LINK) $(test_index_OBJECTS) $(test_index_LDADD) $(LIBS)
750
	$(AM_V_CCLD)$(LINK) $(test_index_OBJECTS) $(test_index_LDADD) $(LIBS)
500
751
752
test_index_hash$(EXEEXT): $(test_index_hash_OBJECTS) $(test_index_hash_DEPENDENCIES) $(EXTRA_test_index_hash_DEPENDENCIES) 
753
	@rm -f test_index_hash$(EXEEXT)
754
	$(AM_V_CCLD)$(LINK) $(test_index_hash_OBJECTS) $(test_index_hash_LDADD) $(LIBS)
755
756
test_lzip_decoder$(EXEEXT): $(test_lzip_decoder_OBJECTS) $(test_lzip_decoder_DEPENDENCIES) $(EXTRA_test_lzip_decoder_DEPENDENCIES) 
757
	@rm -f test_lzip_decoder$(EXEEXT)
758
	$(AM_V_CCLD)$(LINK) $(test_lzip_decoder_OBJECTS) $(test_lzip_decoder_LDADD) $(LIBS)
759
760
test_memlimit$(EXEEXT): $(test_memlimit_OBJECTS) $(test_memlimit_DEPENDENCIES) $(EXTRA_test_memlimit_DEPENDENCIES) 
761
	@rm -f test_memlimit$(EXEEXT)
762
	$(AM_V_CCLD)$(LINK) $(test_memlimit_OBJECTS) $(test_memlimit_LDADD) $(LIBS)
763
501
test_stream_flags$(EXEEXT): $(test_stream_flags_OBJECTS) $(test_stream_flags_DEPENDENCIES) $(EXTRA_test_stream_flags_DEPENDENCIES) 
764
test_stream_flags$(EXEEXT): $(test_stream_flags_OBJECTS) $(test_stream_flags_DEPENDENCIES) $(EXTRA_test_stream_flags_DEPENDENCIES) 
502
	@rm -f test_stream_flags$(EXEEXT)
765
	@rm -f test_stream_flags$(EXEEXT)
503
	$(AM_V_CCLD)$(LINK) $(test_stream_flags_OBJECTS) $(test_stream_flags_LDADD) $(LIBS)
766
	$(AM_V_CCLD)$(LINK) $(test_stream_flags_OBJECTS) $(test_stream_flags_LDADD) $(LIBS)
504
767
768
test_vli$(EXEEXT): $(test_vli_OBJECTS) $(test_vli_DEPENDENCIES) $(EXTRA_test_vli_DEPENDENCIES) 
769
	@rm -f test_vli$(EXEEXT)
770
	$(AM_V_CCLD)$(LINK) $(test_vli_OBJECTS) $(test_vli_LDADD) $(LIBS)
771
505
mostlyclean-compile:
772
mostlyclean-compile:
506
	-rm -f *.$(OBJEXT)
773
	-rm -f *.$(OBJEXT)
507
774
Lines 513-520 Link Here
513
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_block_header.Po@am__quote@ # am--include-marker
780
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_block_header.Po@am__quote@ # am--include-marker
514
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_check.Po@am__quote@ # am--include-marker
781
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_check.Po@am__quote@ # am--include-marker
515
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_filter_flags.Po@am__quote@ # am--include-marker
782
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_filter_flags.Po@am__quote@ # am--include-marker
783
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_filter_str.Po@am__quote@ # am--include-marker
784
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_hardware.Po@am__quote@ # am--include-marker
516
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_index.Po@am__quote@ # am--include-marker
785
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_index.Po@am__quote@ # am--include-marker
786
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_index_hash.Po@am__quote@ # am--include-marker
787
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_lzip_decoder.Po@am__quote@ # am--include-marker
788
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_memlimit.Po@am__quote@ # am--include-marker
517
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_stream_flags.Po@am__quote@ # am--include-marker
789
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_stream_flags.Po@am__quote@ # am--include-marker
790
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_vli.Po@am__quote@ # am--include-marker
518
791
519
$(am__depfiles_remade):
792
$(am__depfiles_remade):
520
	@$(MKDIR_P) $(@D)
793
	@$(MKDIR_P) $(@D)
Lines 601-699 Link Here
601
distclean-tags:
874
distclean-tags:
602
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
875
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
603
876
604
check-TESTS: $(TESTS)
877
# Recover from deleted '.trs' file; this should ensure that
605
	@failed=0; all=0; xfail=0; xpass=0; skip=0; \
878
# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
606
	srcdir=$(srcdir); export srcdir; \
879
# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
607
	list=' $(TESTS) '; \
880
# to avoid problems with "make -n".
608
	$(am__tty_colors); \
881
.log.trs:
609
	if test -n "$$list"; then \
882
	rm -f $< $@
610
	  for tst in $$list; do \
883
	$(MAKE) $(AM_MAKEFLAGS) $<
611
	    if test -f ./$$tst; then dir=./; \
884
612
	    elif test -f $$tst; then dir=; \
885
# Leading 'am--fnord' is there to ensure the list of targets does not
613
	    else dir="$(srcdir)/"; fi; \
886
# expand to empty, as could happen e.g. with make check TESTS=''.
614
	    if $(TESTS_ENVIRONMENT) $${dir}$$tst $(AM_TESTS_FD_REDIRECT); then \
887
am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
615
	      all=`expr $$all + 1`; \
888
am--force-recheck:
616
	      case " $(XFAIL_TESTS) " in \
889
	@:
617
	      *[\ \	]$$tst[\ \	]*) \
890
618
		xpass=`expr $$xpass + 1`; \
891
$(TEST_SUITE_LOG): $(TEST_LOGS)
619
		failed=`expr $$failed + 1`; \
892
	@$(am__set_TESTS_bases); \
620
		col=$$red; res=XPASS; \
893
	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
621
	      ;; \
894
	redo_bases=`for i in $$bases; do \
622
	      *) \
895
	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
623
		col=$$grn; res=PASS; \
896
	            done`; \
624
	      ;; \
897
	if test -n "$$redo_bases"; then \
625
	      esac; \
898
	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
626
	    elif test $$? -ne 77; then \
899
	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
627
	      all=`expr $$all + 1`; \
900
	  if $(am__make_dryrun); then :; else \
628
	      case " $(XFAIL_TESTS) " in \
901
	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
629
	      *[\ \	]$$tst[\ \	]*) \
630
		xfail=`expr $$xfail + 1`; \
631
		col=$$lgn; res=XFAIL; \
632
	      ;; \
633
	      *) \
634
		failed=`expr $$failed + 1`; \
635
		col=$$red; res=FAIL; \
636
	      ;; \
637
	      esac; \
638
	    else \
639
	      skip=`expr $$skip + 1`; \
640
	      col=$$blu; res=SKIP; \
641
	    fi; \
642
	    echo "$${col}$$res$${std}: $$tst"; \
643
	  done; \
644
	  if test "$$all" -eq 1; then \
645
	    tests="test"; \
646
	    All=""; \
647
	  else \
648
	    tests="tests"; \
649
	    All="All "; \
650
	  fi; \
902
	  fi; \
651
	  if test "$$failed" -eq 0; then \
903
	fi; \
652
	    if test "$$xfail" -eq 0; then \
904
	if test -n "$$am__remaking_logs"; then \
653
	      banner="$$All$$all $$tests passed"; \
905
	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
906
	       "recursion detected" >&2; \
907
	elif test -n "$$redo_logs"; then \
908
	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
909
	fi; \
910
	if $(am__make_dryrun); then :; else \
911
	  st=0;  \
912
	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
913
	  for i in $$redo_bases; do \
914
	    test -f $$i.trs && test -r $$i.trs \
915
	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
916
	    test -f $$i.log && test -r $$i.log \
917
	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
918
	  done; \
919
	  test $$st -eq 0 || exit 1; \
920
	fi
921
	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
922
	ws='[ 	]'; \
923
	results=`for b in $$bases; do echo $$b.trs; done`; \
924
	test -n "$$results" || results=/dev/null; \
925
	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
926
	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
927
	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
928
	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
929
	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
930
	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
931
	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
932
	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
933
	  success=true; \
934
	else \
935
	  success=false; \
936
	fi; \
937
	br='==================='; br=$$br$$br$$br$$br; \
938
	result_count () \
939
	{ \
940
	    if test x"$$1" = x"--maybe-color"; then \
941
	      maybe_colorize=yes; \
942
	    elif test x"$$1" = x"--no-color"; then \
943
	      maybe_colorize=no; \
654
	    else \
944
	    else \
655
	      if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
945
	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
656
	      banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
657
	    fi; \
946
	    fi; \
658
	  else \
947
	    shift; \
659
	    if test "$$xpass" -eq 0; then \
948
	    desc=$$1 count=$$2; \
660
	      banner="$$failed of $$all $$tests failed"; \
949
	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
950
	      color_start=$$3 color_end=$$std; \
661
	    else \
951
	    else \
662
	      if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
952
	      color_start= color_end=; \
663
	      banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
664
	    fi; \
953
	    fi; \
665
	  fi; \
954
	    echo "$${color_start}# $$desc $$count$${color_end}"; \
666
	  dashes="$$banner"; \
955
	}; \
667
	  skipped=""; \
956
	create_testsuite_report () \
668
	  if test "$$skip" -ne 0; then \
957
	{ \
669
	    if test "$$skip" -eq 1; then \
958
	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
670
	      skipped="($$skip test was not run)"; \
959
	  result_count $$1 "PASS: " $$pass  "$$grn"; \
671
	    else \
960
	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
672
	      skipped="($$skip tests were not run)"; \
961
	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
673
	    fi; \
962
	  result_count $$1 "FAIL: " $$fail  "$$red"; \
674
	    test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
963
	  result_count $$1 "XPASS:" $$xpass "$$red"; \
675
	      dashes="$$skipped"; \
964
	  result_count $$1 "ERROR:" $$error "$$mgn"; \
676
	  fi; \
965
	}; \
677
	  report=""; \
966
	{								\
678
	  if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
967
	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
679
	    report="Please report to $(PACKAGE_BUGREPORT)"; \
968
	    $(am__rst_title);						\
680
	    test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
969
	  create_testsuite_report --no-color;				\
681
	      dashes="$$report"; \
970
	  echo;								\
682
	  fi; \
971
	  echo ".. contents:: :depth: 2";				\
683
	  dashes=`echo "$$dashes" | sed s/./=/g`; \
972
	  echo;								\
684
	  if test "$$failed" -eq 0; then \
973
	  for b in $$bases; do echo $$b; done				\
685
	    col="$$grn"; \
974
	    | $(am__create_global_log);					\
686
	  else \
975
	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
687
	    col="$$red"; \
976
	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
688
	  fi; \
977
	if $$success; then						\
689
	  echo "$${col}$$dashes$${std}"; \
978
	  col="$$grn";							\
690
	  echo "$${col}$$banner$${std}"; \
979
	 else								\
691
	  test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \
980
	  col="$$red";							\
692
	  test -z "$$report" || echo "$${col}$$report$${std}"; \
981
	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
693
	  echo "$${col}$$dashes$${std}"; \
982
	fi;								\
694
	  test "$$failed" -eq 0; \
983
	echo "$${col}$$br$${std}"; 					\
695
	else :; fi
984
	echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}";	\
985
	echo "$${col}$$br$${std}"; 					\
986
	create_testsuite_report --maybe-color;				\
987
	echo "$$col$$br$$std";						\
988
	if $$success; then :; else					\
989
	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
990
	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
991
	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
992
	  fi;								\
993
	  echo "$$col$$br$$std";					\
994
	fi;								\
995
	$$success || exit 1
696
996
997
check-TESTS: $(check_PROGRAMS)
998
	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
999
	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
1000
	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
1001
	@set +e; $(am__set_TESTS_bases); \
1002
	log_list=`for i in $$bases; do echo $$i.log; done`; \
1003
	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
1004
	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
1005
	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
1006
	exit $$?;
1007
recheck: all $(check_PROGRAMS)
1008
	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
1009
	@set +e; $(am__set_TESTS_bases); \
1010
	bases=`for i in $$bases; do echo $$i; done \
1011
	         | $(am__list_recheck_tests)` || exit 1; \
1012
	log_list=`for i in $$bases; do echo $$i.log; done`; \
1013
	log_list=`echo $$log_list`; \
1014
	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
1015
	        am__force_recheck=am--force-recheck \
1016
	        TEST_LOGS="$$log_list"; \
1017
	exit $$?
1018
test_check.log: test_check$(EXEEXT)
1019
	@p='test_check$(EXEEXT)'; \
1020
	b='test_check'; \
1021
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
1022
	--log-file $$b.log --trs-file $$b.trs \
1023
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
1024
	"$$tst" $(AM_TESTS_FD_REDIRECT)
1025
test_hardware.log: test_hardware$(EXEEXT)
1026
	@p='test_hardware$(EXEEXT)'; \
1027
	b='test_hardware'; \
1028
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
1029
	--log-file $$b.log --trs-file $$b.trs \
1030
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
1031
	"$$tst" $(AM_TESTS_FD_REDIRECT)
1032
test_stream_flags.log: test_stream_flags$(EXEEXT)
1033
	@p='test_stream_flags$(EXEEXT)'; \
1034
	b='test_stream_flags'; \
1035
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
1036
	--log-file $$b.log --trs-file $$b.trs \
1037
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
1038
	"$$tst" $(AM_TESTS_FD_REDIRECT)
1039
test_filter_flags.log: test_filter_flags$(EXEEXT)
1040
	@p='test_filter_flags$(EXEEXT)'; \
1041
	b='test_filter_flags'; \
1042
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
1043
	--log-file $$b.log --trs-file $$b.trs \
1044
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
1045
	"$$tst" $(AM_TESTS_FD_REDIRECT)
1046
test_filter_str.log: test_filter_str$(EXEEXT)
1047
	@p='test_filter_str$(EXEEXT)'; \
1048
	b='test_filter_str'; \
1049
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
1050
	--log-file $$b.log --trs-file $$b.trs \
1051
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
1052
	"$$tst" $(AM_TESTS_FD_REDIRECT)
1053
test_block_header.log: test_block_header$(EXEEXT)
1054
	@p='test_block_header$(EXEEXT)'; \
1055
	b='test_block_header'; \
1056
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
1057
	--log-file $$b.log --trs-file $$b.trs \
1058
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
1059
	"$$tst" $(AM_TESTS_FD_REDIRECT)
1060
test_index.log: test_index$(EXEEXT)
1061
	@p='test_index$(EXEEXT)'; \
1062
	b='test_index'; \
1063
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
1064
	--log-file $$b.log --trs-file $$b.trs \
1065
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
1066
	"$$tst" $(AM_TESTS_FD_REDIRECT)
1067
test_index_hash.log: test_index_hash$(EXEEXT)
1068
	@p='test_index_hash$(EXEEXT)'; \
1069
	b='test_index_hash'; \
1070
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
1071
	--log-file $$b.log --trs-file $$b.trs \
1072
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
1073
	"$$tst" $(AM_TESTS_FD_REDIRECT)
1074
test_bcj_exact_size.log: test_bcj_exact_size$(EXEEXT)
1075
	@p='test_bcj_exact_size$(EXEEXT)'; \
1076
	b='test_bcj_exact_size'; \
1077
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
1078
	--log-file $$b.log --trs-file $$b.trs \
1079
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
1080
	"$$tst" $(AM_TESTS_FD_REDIRECT)
1081
test_memlimit.log: test_memlimit$(EXEEXT)
1082
	@p='test_memlimit$(EXEEXT)'; \
1083
	b='test_memlimit'; \
1084
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
1085
	--log-file $$b.log --trs-file $$b.trs \
1086
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
1087
	"$$tst" $(AM_TESTS_FD_REDIRECT)
1088
test_lzip_decoder.log: test_lzip_decoder$(EXEEXT)
1089
	@p='test_lzip_decoder$(EXEEXT)'; \
1090
	b='test_lzip_decoder'; \
1091
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
1092
	--log-file $$b.log --trs-file $$b.trs \
1093
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
1094
	"$$tst" $(AM_TESTS_FD_REDIRECT)
1095
test_vli.log: test_vli$(EXEEXT)
1096
	@p='test_vli$(EXEEXT)'; \
1097
	b='test_vli'; \
1098
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
1099
	--log-file $$b.log --trs-file $$b.trs \
1100
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
1101
	"$$tst" $(AM_TESTS_FD_REDIRECT)
1102
test_files.sh.log: test_files.sh
1103
	@p='test_files.sh'; \
1104
	b='test_files.sh'; \
1105
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
1106
	--log-file $$b.log --trs-file $$b.trs \
1107
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
1108
	"$$tst" $(AM_TESTS_FD_REDIRECT)
1109
test_compress_prepared_bcj_sparc.log: test_compress_prepared_bcj_sparc
1110
	@p='test_compress_prepared_bcj_sparc'; \
1111
	b='test_compress_prepared_bcj_sparc'; \
1112
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
1113
	--log-file $$b.log --trs-file $$b.trs \
1114
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
1115
	"$$tst" $(AM_TESTS_FD_REDIRECT)
1116
test_compress_prepared_bcj_x86.log: test_compress_prepared_bcj_x86
1117
	@p='test_compress_prepared_bcj_x86'; \
1118
	b='test_compress_prepared_bcj_x86'; \
1119
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
1120
	--log-file $$b.log --trs-file $$b.trs \
1121
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
1122
	"$$tst" $(AM_TESTS_FD_REDIRECT)
1123
test_compress_generated_abc.log: test_compress_generated_abc
1124
	@p='test_compress_generated_abc'; \
1125
	b='test_compress_generated_abc'; \
1126
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
1127
	--log-file $$b.log --trs-file $$b.trs \
1128
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
1129
	"$$tst" $(AM_TESTS_FD_REDIRECT)
1130
test_compress_generated_random.log: test_compress_generated_random
1131
	@p='test_compress_generated_random'; \
1132
	b='test_compress_generated_random'; \
1133
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
1134
	--log-file $$b.log --trs-file $$b.trs \
1135
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
1136
	"$$tst" $(AM_TESTS_FD_REDIRECT)
1137
test_compress_generated_text.log: test_compress_generated_text
1138
	@p='test_compress_generated_text'; \
1139
	b='test_compress_generated_text'; \
1140
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
1141
	--log-file $$b.log --trs-file $$b.trs \
1142
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
1143
	"$$tst" $(AM_TESTS_FD_REDIRECT)
1144
test_scripts.sh.log: test_scripts.sh
1145
	@p='test_scripts.sh'; \
1146
	b='test_scripts.sh'; \
1147
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
1148
	--log-file $$b.log --trs-file $$b.trs \
1149
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
1150
	"$$tst" $(AM_TESTS_FD_REDIRECT)
1151
.test.log:
1152
	@p='$<'; \
1153
	$(am__set_b); \
1154
	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
1155
	--log-file $$b.log --trs-file $$b.trs \
1156
	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
1157
	"$$tst" $(AM_TESTS_FD_REDIRECT)
1158
@am__EXEEXT_TRUE@.test$(EXEEXT).log:
1159
@am__EXEEXT_TRUE@	@p='$<'; \
1160
@am__EXEEXT_TRUE@	$(am__set_b); \
1161
@am__EXEEXT_TRUE@	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
1162
@am__EXEEXT_TRUE@	--log-file $$b.log --trs-file $$b.trs \
1163
@am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
1164
@am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT)
697
distdir: $(BUILT_SOURCES)
1165
distdir: $(BUILT_SOURCES)
698
	$(MAKE) $(AM_MAKEFLAGS) distdir-am
1166
	$(MAKE) $(AM_MAKEFLAGS) distdir-am
699
1167
Lines 753-758 Link Here
753
	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
1221
	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
754
	fi
1222
	fi
755
mostlyclean-generic:
1223
mostlyclean-generic:
1224
	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
1225
	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
1226
	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
756
1227
757
clean-generic:
1228
clean-generic:
758
1229
Lines 774-781 Link Here
774
	-rm -f ./$(DEPDIR)/test_block_header.Po
1245
	-rm -f ./$(DEPDIR)/test_block_header.Po
775
	-rm -f ./$(DEPDIR)/test_check.Po
1246
	-rm -f ./$(DEPDIR)/test_check.Po
776
	-rm -f ./$(DEPDIR)/test_filter_flags.Po
1247
	-rm -f ./$(DEPDIR)/test_filter_flags.Po
1248
	-rm -f ./$(DEPDIR)/test_filter_str.Po
1249
	-rm -f ./$(DEPDIR)/test_hardware.Po
777
	-rm -f ./$(DEPDIR)/test_index.Po
1250
	-rm -f ./$(DEPDIR)/test_index.Po
1251
	-rm -f ./$(DEPDIR)/test_index_hash.Po
1252
	-rm -f ./$(DEPDIR)/test_lzip_decoder.Po
1253
	-rm -f ./$(DEPDIR)/test_memlimit.Po
778
	-rm -f ./$(DEPDIR)/test_stream_flags.Po
1254
	-rm -f ./$(DEPDIR)/test_stream_flags.Po
1255
	-rm -f ./$(DEPDIR)/test_vli.Po
779
	-rm -f Makefile
1256
	-rm -f Makefile
780
distclean-am: clean-am distclean-compile distclean-generic \
1257
distclean-am: clean-am distclean-compile distclean-generic \
781
	distclean-tags
1258
	distclean-tags
Lines 826-833 Link Here
826
	-rm -f ./$(DEPDIR)/test_block_header.Po
1303
	-rm -f ./$(DEPDIR)/test_block_header.Po
827
	-rm -f ./$(DEPDIR)/test_check.Po
1304
	-rm -f ./$(DEPDIR)/test_check.Po
828
	-rm -f ./$(DEPDIR)/test_filter_flags.Po
1305
	-rm -f ./$(DEPDIR)/test_filter_flags.Po
1306
	-rm -f ./$(DEPDIR)/test_filter_str.Po
1307
	-rm -f ./$(DEPDIR)/test_hardware.Po
829
	-rm -f ./$(DEPDIR)/test_index.Po
1308
	-rm -f ./$(DEPDIR)/test_index.Po
1309
	-rm -f ./$(DEPDIR)/test_index_hash.Po
1310
	-rm -f ./$(DEPDIR)/test_lzip_decoder.Po
1311
	-rm -f ./$(DEPDIR)/test_memlimit.Po
830
	-rm -f ./$(DEPDIR)/test_stream_flags.Po
1312
	-rm -f ./$(DEPDIR)/test_stream_flags.Po
1313
	-rm -f ./$(DEPDIR)/test_vli.Po
831
	-rm -f Makefile
1314
	-rm -f Makefile
832
maintainer-clean-am: distclean-am maintainer-clean-generic
1315
maintainer-clean-am: distclean-am maintainer-clean-generic
833
1316
Lines 860-866 Link Here
860
	install-strip installcheck installcheck-am installdirs \
1343
	install-strip installcheck installcheck-am installdirs \
861
	maintainer-clean maintainer-clean-generic mostlyclean \
1344
	maintainer-clean maintainer-clean-generic mostlyclean \
862
	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
1345
	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
863
	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am
1346
	pdf pdf-am ps ps-am recheck tags tags-am uninstall \
1347
	uninstall-am
864
1348
865
.PRECIOUS: Makefile
1349
.PRECIOUS: Makefile
866
1350
(-)xz-5.2.5/tests/create_compress_files.c (-10 / +15 lines)
Lines 17-26 Link Here
17
#include <stdio.h>
17
#include <stdio.h>
18
18
19
19
20
// If a command-line argument was given, only create the file if its
21
// name was specified on the command line. If no args were given then
22
// all files are created.
23
//
20
// Avoid re-creating the test files every time the tests are run.
24
// Avoid re-creating the test files every time the tests are run.
21
#define create_test(name) \
25
#define maybe_create_test(argc, argv, name) \
22
do { \
26
do { \
23
	if (!file_exists("compress_generated_" #name)) { \
27
	if ((argc < 2 || strcmp(argv[1], "compress_generated_" #name) == 0) \
28
			&& !file_exists("compress_generated_" #name)) { \
24
		FILE *file = file_create("compress_generated_" #name); \
29
		FILE *file = file_create("compress_generated_" #name); \
25
		write_ ## name(file); \
30
		write_ ## name(file); \
26
		file_finish(file, "compress_generated_" #name); \
31
		file_finish(file, "compress_generated_" #name); \
Lines 53-59 Link Here
53
58
54
	if (file == NULL) {
59
	if (file == NULL) {
55
		perror(filename);
60
		perror(filename);
56
		exit(1);
61
		exit(EXIT_FAILURE);
57
	}
62
	}
58
63
59
	return file;
64
	return file;
Lines 68-74 Link Here
68
73
69
	if (ferror_fail || fclose_fail) {
74
	if (ferror_fail || fclose_fail) {
70
		perror(filename);
75
		perror(filename);
71
		exit(1);
76
		exit(EXIT_FAILURE);
72
	}
77
	}
73
}
78
}
74
79
Lines 80-86 Link Here
80
{
85
{
81
	for (size_t i = 0; i < 12345; ++i)
86
	for (size_t i = 0; i < 12345; ++i)
82
		if (fwrite("abc\n", 4, 1, file) != 1)
87
		if (fwrite("abc\n", 4, 1, file) != 1)
83
			exit(1);
88
			exit(EXIT_FAILURE);
84
}
89
}
85
90
86
91
Lines 149-158 Link Here
149
154
150
155
151
int
156
int
152
main(void)
157
main(int argc, char **argv)
153
{
158
{
154
	create_test(abc);
159
	maybe_create_test(argc, argv, abc);
155
	create_test(random);
160
	maybe_create_test(argc, argv, random);
156
	create_test(text);
161
	maybe_create_test(argc, argv, text);
157
	return 0;
162
	return EXIT_SUCCESS;
158
}
163
}
(-)xz-5.2.5/tests/files/README (-14 / +183 lines)
Lines 1-31 Link Here
1
1
2
.xz Test Files
2
.xz and .lzma Test Files
3
----------------
3
------------------------
4
4
5
0. Introduction
5
0. Introduction
6
6
7
    This directory contains bunch of files to test handling of .xz files
7
    This directory contains bunch of files to test handling of .xz,
8
    in .xz decoder implementations. Many of the files have been created
8
    .lzma (LZMA_Alone), and .lz (lzip) files in decoder implementations.
9
    by hand with a hex editor, thus there is no better "source code" than
9
    Many of the files have been created by hand with a hex editor, thus
10
    the files themselves. All the test files (*.xz) and this README have
10
    there is no better "source code" than the files themselves. All the
11
    been put into the public domain.
11
    test files and this README have been put into the public domain.
12
12
13
13
14
1. File Types
14
1. File Types
15
15
16
    Good files (good-*.xz) must decode successfully without requiring
16
    Good files (good-*) must decode successfully without requiring
17
    a lot of CPU time or RAM.
17
    a lot of CPU time or RAM.
18
18
19
    Unsupported files (unsupported-*.xz) are good files, but headers
19
    Unsupported files (unsupported-*) are good files, but headers
20
    indicate features not supported by the current file format
20
    indicate features not supported by the current file format
21
    specification.
21
    specification.
22
22
23
    Bad files (bad-*.xz) must cause the decoder to give an error. Like
23
    Bad files (bad-*) must cause the decoder to give an error. Like
24
    with the good files, these files must not require a lot of CPU time
24
    with the good files, these files must not require a lot of CPU
25
    or RAM before they get detected to be broken.
25
    time or RAM before they get detected to be broken.
26
26
27
27
28
2. Descriptions of Individual Files
28
2. Descriptions of Individual .xz Files
29
29
30
2.1. Good Files
30
2.1. Good Files
31
31
Lines 69-78 Link Here
69
    uncompressed file is compress_prepared_bcj_x86 found from the tests
69
    uncompressed file is compress_prepared_bcj_x86 found from the tests
70
    directory.
70
    directory.
71
71
72
    good-1-sparc-lzma2.xz uses the SPARC filter and LZMA. The
72
    good-1-sparc-lzma2.xz uses the SPARC filter and LZMA2. The
73
    uncompressed file is compress_prepared_bcj_sparc found from the tests
73
    uncompressed file is compress_prepared_bcj_sparc found from the tests
74
    directory.
74
    directory.
75
75
76
    good-1-arm64-lzma2-1.xz uses the ARM64 filter and LZMA2. The
77
    uncompressed data is constructed so that it tests integer
78
    wrap around and sign extension.
79
80
    good-1-arm64-lzma2-2.xz is like good-1-arm64-lzma2-1.xz but with
81
    non-zero start offset. XZ Embedded doesn't support this file.
82
76
    good-1-lzma2-1.xz has two LZMA2 chunks, of which the second sets
83
    good-1-lzma2-1.xz has two LZMA2 chunks, of which the second sets
77
    new properties.
84
    new properties.
78
85
Lines 93-99 Link Here
93
100
94
    good-1-3delta-lzma2.xz has three Delta filters and LZMA2.
101
    good-1-3delta-lzma2.xz has three Delta filters and LZMA2.
95
102
103
    good-1-empty-bcj-lzma2.xz has an empty Block that uses PowerPC BCJ
104
    and LZMA2. liblzma from XZ Utils 5.0.1 and older may incorrectly
105
    return LZMA_BUF_ERROR in some cases. See commit message
106
    d8db706acb8316f9861abd432cfbe001dd6d0c5c for the details.
96
107
108
97
2.2. Unsupported Files
109
2.2. Unsupported Files
98
110
99
    unsupported-check.xz uses Check ID 0x02 which isn't supported by
111
    unsupported-check.xz uses Check ID 0x02 which isn't supported by
Lines 204-214 Link Here
204
    file gets rejected specifically due to Unpadded Size having an invalid
216
    file gets rejected specifically due to Unpadded Size having an invalid
205
    value.
217
    value.
206
218
219
    bad-3-index-uncomp-overflow.xz has Index whose Uncompressed Size
220
    fields have huge values whose sum exceeds the maximum allowed size
221
    of 2^63 - 1 bytes. In this file the sum is exactly 2^64.
222
    lzma_index_append() in liblzma <= 5.2.6 lacks the integer overflow
223
    check for the uncompressed size and thus doesn't catch the error
224
    when decoding the Index field in this file. This makes "xz -l"
225
    not detect the error and will display 0 as the uncompressed size.
226
    Note that regular decompression isn't affected by this bug because
227
    it uses lzma_index_hash_append() instead.
228
207
    bad-2-compressed_data_padding.xz has non-null byte in the padding of
229
    bad-2-compressed_data_padding.xz has non-null byte in the padding of
208
    the Compressed Data field of the first Block.
230
    the Compressed Data field of the first Block.
209
231
210
    bad-1-check-crc32.xz has wrong Check (CRC32).
232
    bad-1-check-crc32.xz has wrong Check (CRC32).
211
233
234
    bad-1-check-crc32-2.xz has Compressed Size and Uncompressed Size in
235
    Block Header but wrong Check (CRC32) in the actual data. This file
236
    differs by one byte from good-1-block_header-1.xz: the last byte of
237
    the Check field is wrong. This file is useful for testing error
238
    detection in the threaded decoder when a worker thread is configured
239
    to pass input one byte at a time to the Block decoder.
240
212
    bad-1-check-crc64.xz has wrong Check (CRC64).
241
    bad-1-check-crc64.xz has wrong Check (CRC64).
213
242
214
    bad-1-check-sha256.xz has wrong Check (SHA-256).
243
    bad-1-check-sha256.xz has wrong Check (SHA-256).
Lines 237-240 Link Here
237
266
238
    bad-1-lzma2-8.xz is like good-1-lzma2-4.xz but doesn't set new
267
    bad-1-lzma2-8.xz is like good-1-lzma2-4.xz but doesn't set new
239
    properties in the third LZMA2 chunk.
268
    properties in the third LZMA2 chunk.
269
270
    bad-1-lzma2-9.xz has LZMA2 stream that is truncated at the end of
271
    a LZMA2 chunk (no end marker). The uncompressed size of the partial
272
    LZMA2 stream exceeds the value stored in the Block Header.
273
274
    bad-1-lzma2-10.xz has LZMA2 stream that, from point of view of a
275
    LZMA2 decoder, extends past the end of Block (and even the end of
276
    the file). Uncompressed Size in Block Header is bigger than the
277
    invalid LZMA2 stream may produce (even if a decoder reads until
278
    the end of the file). The Check type is None to nullify certain
279
    simple size-based sanity checks in a Block decoder.
280
281
    bad-1-lzma2-11.xz has LZMA2 stream that lacks the end of
282
    payload marker. When Compressed Size bytes have been decoded,
283
    Uncompressed Size bytes of output will have been produced but
284
    the LZMA2 decoder doesn't indicate end of stream.
285
286
287
3. Descriptions of Individual .lzma Files
288
289
3.1. Good Files
290
291
    good-unknown_size-with_eopm.lzma has unknown size in the header
292
    and end of payload marker at the end.
293
294
    good-known_size-without_eopm.lzma has a known size in the header
295
    and no end of payload marker at the end.
296
297
    good-known_size-with_eopm.lzma has a known size in the header
298
    and end of payload marker at the end. XZ Utils 5.2.5 and older
299
    will give an error at the end of the file after producing the
300
    correct uncompressed output.
301
302
303
3.2. Bad Files
304
305
    bad-unknown_size-without_eopm.lzma has unknown size in the header
306
    but no end of payload marker at the end. This file might be seen
307
    by a decoder as if it were truncated.
308
309
    bad-too_big_size-with_eopm.lzma has too big uncompressed size in
310
    the header and the end of payload marker will be detected before
311
    the specified number of bytes have been decoded.
312
313
    bad-too_small_size-without_eopm-1.lzma has too small uncompressed
314
    size in the header. The decoder will look for end of payload marker
315
    but instead find a literal that would produce more output.
316
317
    bad-too_small_size-without_eopm-2.lzma is like -1 above but instead
318
    of a literal the problem occurs with a short repeated match.
319
320
    bad-too_small_size-without_eopm-3.lzma is like -1 above but instead
321
    of a literal the problem occurs in the middle of a match.
322
323
324
4. Descriptions of Individual .lz (lzip) Files
325
326
4.1. Good Files
327
328
    good-1-v0.lz contains a single version 0 member. lzip 1.17 and
329
    *older* can decompress this; support for version 0 was removed
330
    in lzip 1.18.
331
332
    good-1-v0-trailing-1.lz is like good-1-v0.lz but contains
333
    trailing data that the decompressor must ignore.
334
335
    good-1-v1.lz contains a single version 1 member. lzip 1.3 and
336
    newer can decompress this.
337
338
    good-1-v1-trailing-1.lz is like good-1-v1.lz but contains
339
    trailing data that the decompressor must ignore.
340
341
    good-1-v1-trailing-2.lz is like good-1-v1.lz but contains
342
    trailing data whose first three bytes match the .lz magic bytes.
343
    With lzip >= 1.20 this file results in an error unless one uses
344
    the command line option --loose-trailing. lzip 1.3 to 1.19 decode
345
    this file successfully by default. XZ Utils uses the old behavior
346
    because it allows lzma_code() to stop at the first byte of the
347
    trailing data as long as the first byte isn't 0x4C (L in US-ASCII);
348
    otherwise the first 1-3 bytes that equal to the magic bytes are
349
    consumed and lost in lzma_code(), and this is visible in xz too:
350
351
        $ ( xz -dc ; cat ) < good-1-v1-trailing-2.lz
352
        Hello
353
        World!
354
        Trailing garbage
355
356
        $ ( xz -dc --single-stream ; cat ) < good-1-v1-trailing-2.lz
357
        Hello
358
        World!
359
        LZITrailing garbage
360
361
    good-2-v0-v1.lz contains two members of which the first is
362
    version 0 and the second version 1. lzip versions 1.3 to 1.17
363
    (inclusive) can decompress this.
364
365
    good-2-v1-v0.lz contains two members of which the first is
366
    version 1 and the second version 0. lzip versions 1.3 to 1.17
367
    (inclusive) can decompress this.
368
369
    good-2-v1-v1.lz contains two version 1 members. lzip versions 1.3
370
    and newer can decompress this.
371
372
373
4.2. Unsupported Files
374
375
    unsupported-1-v234.lz is like good-1-v1.lz except the version
376
    field has been set to 234 (0xEA) which, as of writing, isn't
377
    defined or supported by any .lz implementation.
378
379
380
4.3. Bad Files
381
382
    bad-1-v1-magic-1.lz is like good-1-v1.lz but the first magic byte
383
    is wrong.
384
385
    bad-1-v1-magic-2.lz is like good-1-v1.lz but the last (fourth)
386
    magic byte is wrong.
387
388
    bad-1-v1-dict-1.lz has too low value in the dictionary size field.
389
390
    bad-1-v1-dict-2.lz has too high value in the dictionary size field.
391
392
    bad-1-v1-crc32.lz has wrong CRC32 value.
393
394
    bad-1-v0-uncomp-size.lz is version 0 format with incorrect value
395
    in the uncompressed size field.
396
397
    bad-1-v1-uncomp-size.lz is version 1 format with incorrect value
398
    in the uncompressed size field.
399
400
    bad-1-v1-member-size.lz has incorrect value in the member size
401
    field.
402
403
    bad-1-v1-trailing-magic.lz has the four .lz magic bytes as trailing
404
    data. This should be detected as a truncated file and thus result
405
    in an error. That is, the last four bytes of the file should not be
406
    ignored as trailing garbage. lzip >= 1.18 matches this behavior
407
    while older versions ignore the last four bytes and don't indicate
408
    an error.
240
409
(-)xz-5.2.5/tests/test_bcj_exact_size.c (-43 / +54 lines)
Lines 15-39 Link Here
15
#include "tests.h"
15
#include "tests.h"
16
16
17
17
18
/// Something to be compressed
18
static void
19
static const uint8_t in[16] = "0123456789ABCDEF";
19
test_exact_size(void)
20
{
21
#if !defined(HAVE_ENCODERS) || !defined(HAVE_DECODERS)
22
	assert_skip("Encoder or decoder support disabled");
23
#else
24
	if (!lzma_filter_encoder_is_supported(LZMA_FILTER_POWERPC)
25
			|| !lzma_filter_decoder_is_supported(
26
				LZMA_FILTER_POWERPC))
27
		assert_skip("PowerPC BCJ encoder and/or decoder "
28
				"is disabled");
20
29
21
/// in[] after compression
30
	// Something to be compressed
22
static uint8_t compressed[1024];
31
	const uint8_t in[16] = "0123456789ABCDEF";
23
static size_t compressed_size = 0;
24
32
25
/// Output buffer for decompressing compressed[]
33
	// in[] after compression
26
static uint8_t out[sizeof(in)];
34
	uint8_t compressed[1024];
35
	size_t compressed_size = 0;
27
36
37
	// Output buffer for decompressing compressed[]
38
	uint8_t out[sizeof(in)];
28
39
29
static void
30
compress(void)
31
{
32
	// Compress with PowerPC BCJ and LZMA2. PowerPC BCJ is used because
40
	// Compress with PowerPC BCJ and LZMA2. PowerPC BCJ is used because
33
	// it has fixed 4-byte alignment which makes triggering the potential
41
	// it has fixed 4-byte alignment which makes triggering the potential
34
	// bug easy.
42
	// bug easy.
35
	lzma_options_lzma opt_lzma2;
43
	lzma_options_lzma opt_lzma2;
36
	succeed(lzma_lzma_preset(&opt_lzma2, 0));
44
	assert_false(lzma_lzma_preset(&opt_lzma2, 0));
37
45
38
	lzma_filter filters[3] = {
46
	lzma_filter filters[3] = {
39
		{ .id = LZMA_FILTER_POWERPC, .options = NULL },
47
		{ .id = LZMA_FILTER_POWERPC, .options = NULL },
Lines 41-58 Link Here
41
		{ .id = LZMA_VLI_UNKNOWN, .options = NULL },
49
		{ .id = LZMA_VLI_UNKNOWN, .options = NULL },
42
	};
50
	};
43
51
44
	expect(lzma_stream_buffer_encode(filters, LZMA_CHECK_CRC32, NULL,
52
	assert_lzma_ret(lzma_stream_buffer_encode(
53
			filters, LZMA_CHECK_CRC32, NULL,
45
			in, sizeof(in),
54
			in, sizeof(in),
46
			compressed, &compressed_size, sizeof(compressed))
55
			compressed, &compressed_size, sizeof(compressed)),
47
			== LZMA_OK);
56
		LZMA_OK);
48
}
49
57
50
58
	// Decompress so that we won't give more output space than
51
static void
59
	// the Stream will need.
52
decompress(void)
53
{
54
	lzma_stream strm = LZMA_STREAM_INIT;
60
	lzma_stream strm = LZMA_STREAM_INIT;
55
	expect(lzma_stream_decoder(&strm, 10 << 20, 0) == LZMA_OK);
61
	assert_lzma_ret(lzma_stream_decoder(&strm, 10 << 20, 0), LZMA_OK);
56
62
57
	strm.next_in = compressed;
63
	strm.next_in = compressed;
58
	strm.next_out = out;
64
	strm.next_out = out;
Lines 63-113 Link Here
63
69
64
		const lzma_ret ret = lzma_code(&strm, LZMA_RUN);
70
		const lzma_ret ret = lzma_code(&strm, LZMA_RUN);
65
		if (ret == LZMA_STREAM_END) {
71
		if (ret == LZMA_STREAM_END) {
66
			expect(strm.total_in == compressed_size);
72
			assert_uint_eq(strm.total_in, compressed_size);
67
			expect(strm.total_out == sizeof(in));
73
			assert_uint_eq(strm.total_out, sizeof(in));
68
			lzma_end(&strm);
74
			lzma_end(&strm);
69
			return;
75
			return;
70
		}
76
		}
71
77
72
		expect(ret == LZMA_OK);
78
		assert_lzma_ret(ret, LZMA_OK);
73
79
74
		if (strm.total_out < sizeof(in))
80
		if (strm.total_out < sizeof(in))
75
			strm.avail_out = 1;
81
			strm.avail_out = 1;
76
	}
82
	}
83
#endif
77
}
84
}
78
85
79
86
80
static void
87
static void
81
decompress_empty(void)
88
test_empty_block(void)
82
{
89
{
90
#ifndef HAVE_DECODERS
91
	assert_skip("Decoder support disabled");
92
#else
93
	if (!lzma_filter_decoder_is_supported(LZMA_FILTER_POWERPC))
94
		assert_skip("PowerPC BCJ decoder is disabled");
95
83
	// An empty file with one Block using PowerPC BCJ and LZMA2.
96
	// An empty file with one Block using PowerPC BCJ and LZMA2.
84
	static const uint8_t empty_bcj_lzma2[] = {
97
	size_t in_size;
85
		0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00, 0x00, 0x01,
98
	uint8_t *empty_bcj_lzma2 = tuktest_file_from_srcdir(
86
		0x69, 0x22, 0xDE, 0x36, 0x02, 0x01, 0x05, 0x00,
99
			"files/good-1-empty-bcj-lzma2.xz", &in_size);
87
		0x21, 0x01, 0x00, 0x00, 0x7F, 0xE0, 0xF1, 0xC8,
88
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
89
		0x00, 0x01, 0x11, 0x00, 0x3B, 0x96, 0x5F, 0x73,
90
		0x90, 0x42, 0x99, 0x0D, 0x01, 0x00, 0x00, 0x00,
91
		0x00, 0x01, 0x59, 0x5A
92
	};
93
100
94
	// Decompress without giving any output space.
101
	// Decompress without giving any output space.
95
	uint64_t memlimit = 1 << 20;
102
	uint64_t memlimit = 1 << 20;
103
	uint8_t out[1];
96
	size_t in_pos = 0;
104
	size_t in_pos = 0;
97
	size_t out_pos = 0;
105
	size_t out_pos = 0;
98
	expect(lzma_stream_buffer_decode(&memlimit, 0, NULL,
106
	assert_lzma_ret(lzma_stream_buffer_decode(&memlimit, 0, NULL,
99
			empty_bcj_lzma2, &in_pos, sizeof(empty_bcj_lzma2),
107
			empty_bcj_lzma2, &in_pos, in_size, out, &out_pos, 0),
100
			out, &out_pos, 0) == LZMA_OK);
108
		LZMA_OK);
101
	expect(in_pos == sizeof(empty_bcj_lzma2));
109
	assert_uint_eq(in_pos, in_size);
102
	expect(out_pos == 0);
110
	assert_uint_eq(out_pos, 0);
111
#endif
103
}
112
}
104
113
105
114
106
extern int
115
extern int
107
main(void)
116
main(int argc, char **argv)
108
{
117
{
109
	compress();
118
	tuktest_start(argc, argv);
110
	decompress();
119
111
	decompress_empty();
120
	tuktest_run(test_exact_size);
112
	return 0;
121
	tuktest_run(test_empty_block);
122
123
	return tuktest_end();
113
}
124
}
(-)xz-5.2.5/tests/test_block_header.c (-114 / +387 lines)
Lines 3-9 Link Here
3
/// \file       test_block_header.c
3
/// \file       test_block_header.c
4
/// \brief      Tests Block Header coders
4
/// \brief      Tests Block Header coders
5
//
5
//
6
//  Author:     Lasse Collin
6
//  Authors:    Lasse Collin
7
//              Jia Tan
7
//
8
//
8
//  This file has been put into the public domain.
9
//  This file has been put into the public domain.
9
//  You can do whatever you want with this file.
10
//  You can do whatever you want with this file.
Lines 13-24 Link Here
13
#include "tests.h"
14
#include "tests.h"
14
15
15
16
16
static uint8_t buf[LZMA_BLOCK_HEADER_SIZE_MAX];
17
static lzma_block known_options;
18
static lzma_block decoded_options;
19
20
static lzma_options_lzma opt_lzma;
17
static lzma_options_lzma opt_lzma;
21
18
19
20
#ifdef HAVE_ENCODERS
22
static lzma_filter filters_none[1] = {
21
static lzma_filter filters_none[1] = {
23
	{
22
	{
24
		.id = LZMA_VLI_UNKNOWN,
23
		.id = LZMA_VLI_UNKNOWN,
Lines 36-41 Link Here
36
};
35
};
37
36
38
37
38
// These filters are only used in test_lzma_block_header_decode()
39
// which only runs if encoders and decoders are configured.
40
#ifdef HAVE_DECODERS
39
static lzma_filter filters_four[5] = {
41
static lzma_filter filters_four[5] = {
40
	{
42
	{
41
		.id = LZMA_FILTER_X86,
43
		.id = LZMA_FILTER_X86,
Lines 53-58 Link Here
53
		.id = LZMA_VLI_UNKNOWN,
55
		.id = LZMA_VLI_UNKNOWN,
54
	}
56
	}
55
};
57
};
58
#endif
56
59
57
60
58
static lzma_filter filters_five[6] = {
61
static lzma_filter filters_five[6] = {
Lines 75-241 Link Here
75
		.id = LZMA_VLI_UNKNOWN,
78
		.id = LZMA_VLI_UNKNOWN,
76
	}
79
	}
77
};
80
};
81
#endif
78
82
79
83
80
static void
84
static void
81
code(void)
85
test_lzma_block_header_size(void)
82
{
86
{
83
	expect(lzma_block_header_encode(&known_options, buf) == LZMA_OK);
87
#ifndef HAVE_ENCODERS
88
	assert_skip("Encoder support disabled");
89
#else
90
	if (!lzma_filter_encoder_is_supported(LZMA_FILTER_X86))
91
		assert_skip("x86 BCJ encoder is disabled");
84
92
85
	lzma_filter filters[LZMA_FILTERS_MAX + 1];
93
	lzma_block block = {
86
	memcrap(filters, sizeof(filters));
94
		.version = 0,
87
	memcrap(&decoded_options, sizeof(decoded_options));
95
		.filters = filters_one,
96
		.compressed_size = LZMA_VLI_UNKNOWN,
97
		.uncompressed_size = LZMA_VLI_UNKNOWN,
98
		.check = LZMA_CHECK_CRC32
99
	};
88
100
89
	decoded_options.header_size = known_options.header_size;
101
	// Test that all initial options are valid
90
	decoded_options.check = known_options.check;
102
	assert_lzma_ret(lzma_block_header_size(&block), LZMA_OK);
91
	decoded_options.filters = filters;
103
	assert_uint(block.header_size, >=, LZMA_BLOCK_HEADER_SIZE_MIN);
92
	expect(lzma_block_header_decode(&decoded_options, NULL, buf)
104
	assert_uint(block.header_size, <=, LZMA_BLOCK_HEADER_SIZE_MAX);
93
			== LZMA_OK);
105
	assert_uint_eq(block.header_size % 4, 0);
94
106
95
	expect(known_options.compressed_size
107
	// Test invalid version number
96
			== decoded_options.compressed_size);
108
	for (uint32_t i = 2; i < 20; i++) {
97
	expect(known_options.uncompressed_size
109
		block.version = i;
98
			== decoded_options.uncompressed_size);
110
		assert_lzma_ret(lzma_block_header_size(&block),
111
				LZMA_OPTIONS_ERROR);
112
	}
99
113
100
	for (size_t i = 0; known_options.filters[i].id
114
	block.version = 1;
101
			!= LZMA_VLI_UNKNOWN; ++i)
102
		expect(known_options.filters[i].id == filters[i].id);
103
115
104
	for (size_t i = 0; i < LZMA_FILTERS_MAX; ++i)
116
	// Test invalid compressed size
105
		free(decoded_options.filters[i].options);
117
	block.compressed_size = 0;
118
	assert_lzma_ret(lzma_block_header_size(&block), LZMA_PROG_ERROR);
119
120
	block.compressed_size = LZMA_VLI_MAX + 1;
121
	assert_lzma_ret(lzma_block_header_size(&block), LZMA_PROG_ERROR);
122
	block.compressed_size = LZMA_VLI_UNKNOWN;
123
124
	// Test invalid uncompressed size
125
	block.uncompressed_size = LZMA_VLI_MAX + 1;
126
	assert_lzma_ret(lzma_block_header_size(&block), LZMA_PROG_ERROR);
127
	block.uncompressed_size = LZMA_VLI_MAX;
128
129
	// Test invalid filters
130
	block.filters = NULL;
131
	assert_lzma_ret(lzma_block_header_size(&block), LZMA_PROG_ERROR);
132
133
	block.filters = filters_none;
134
	assert_lzma_ret(lzma_block_header_size(&block), LZMA_PROG_ERROR);
135
136
	block.filters = filters_five;
137
	assert_lzma_ret(lzma_block_header_size(&block), LZMA_PROG_ERROR);
138
139
	block.filters = filters_one;
140
141
	// Test setting compressed_size to something valid
142
	block.compressed_size = 4096;
143
	assert_lzma_ret(lzma_block_header_size(&block), LZMA_OK);
144
	assert_uint(block.header_size, >=, LZMA_BLOCK_HEADER_SIZE_MIN);
145
	assert_uint(block.header_size, <=, LZMA_BLOCK_HEADER_SIZE_MAX);
146
	assert_uint_eq(block.header_size % 4, 0);
147
148
	// Test setting uncompressed_size to something valid
149
	block.uncompressed_size = 4096;
150
	assert_lzma_ret(lzma_block_header_size(&block), LZMA_OK);
151
	assert_uint(block.header_size, >=, LZMA_BLOCK_HEADER_SIZE_MIN);
152
	assert_uint(block.header_size, <=, LZMA_BLOCK_HEADER_SIZE_MAX);
153
	assert_uint_eq(block.header_size % 4, 0);
154
155
	// This should pass, but header_size will be an invalid value
156
	// because the total block size will not be able to fit in a valid
157
	// lzma_vli. This way a temporary value can be used to reserve
158
	// space for the header and later the actual value can be set.
159
	block.compressed_size = LZMA_VLI_MAX;
160
	assert_lzma_ret(lzma_block_header_size(&block), LZMA_OK);
161
	assert_uint(block.header_size, >=, LZMA_BLOCK_HEADER_SIZE_MIN);
162
	assert_uint(block.header_size, <=, LZMA_BLOCK_HEADER_SIZE_MAX);
163
	assert_uint_eq(block.header_size % 4, 0);
164
165
	// Use an invalid value for a filter option. This should still pass
166
	// because the size of the LZMA2 properties is known by liblzma
167
	// without reading any of the options so it doesn't validate them.
168
	lzma_options_lzma bad_ops;
169
	assert_false(lzma_lzma_preset(&bad_ops, 1));
170
	bad_ops.pb = 0x1000;
171
172
	lzma_filter bad_filters[2] = {
173
		{
174
			.id = LZMA_FILTER_LZMA2,
175
			.options = &bad_ops
176
		},
177
		{
178
			.id = LZMA_VLI_UNKNOWN,
179
			.options = NULL
180
		}
181
	};
182
183
	block.filters = bad_filters;
184
185
	assert_lzma_ret(lzma_block_header_size(&block), LZMA_OK);
186
	assert_uint(block.header_size, >=, LZMA_BLOCK_HEADER_SIZE_MIN);
187
	assert_uint(block.header_size, <=, LZMA_BLOCK_HEADER_SIZE_MAX);
188
	assert_uint_eq(block.header_size % 4, 0);
189
190
	// Use an invalid block option. The check type isn't stored in
191
	// the Block Header and so _header_size ignores it.
192
	block.check = INVALID_LZMA_CHECK_ID;
193
	block.ignore_check = false;
194
195
	assert_lzma_ret(lzma_block_header_size(&block), LZMA_OK);
196
	assert_uint(block.header_size, >=, LZMA_BLOCK_HEADER_SIZE_MIN);
197
	assert_uint(block.header_size, <=, LZMA_BLOCK_HEADER_SIZE_MAX);
198
	assert_uint_eq(block.header_size % 4, 0);
199
#endif
106
}
200
}
107
201
108
202
109
static void
203
static void
110
test1(void)
204
test_lzma_block_header_encode(void)
111
{
205
{
112
	known_options = (lzma_block){
206
#if !defined(HAVE_ENCODERS) || !defined(HAVE_DECODERS)
113
		.check = LZMA_CHECK_NONE,
207
	assert_skip("Encoder or decoder support disabled");
208
#else
209
210
	if (!lzma_filter_encoder_is_supported(LZMA_FILTER_X86)
211
                        || !lzma_filter_decoder_is_supported(LZMA_FILTER_X86))
212
                assert_skip("x86 BCJ encoder and/or decoder "
213
                                "is disabled");
214
215
	lzma_block block = {
216
		.version = 1,
217
		.filters = filters_one,
114
		.compressed_size = LZMA_VLI_UNKNOWN,
218
		.compressed_size = LZMA_VLI_UNKNOWN,
115
		.uncompressed_size = LZMA_VLI_UNKNOWN,
219
		.uncompressed_size = LZMA_VLI_UNKNOWN,
116
		.filters = NULL,
220
		.check = LZMA_CHECK_CRC32,
117
	};
221
	};
118
222
119
	expect(lzma_block_header_size(&known_options) == LZMA_PROG_ERROR);
223
	// Ensure all block options are valid before changes are tested
224
	assert_lzma_ret(lzma_block_header_size(&block), LZMA_OK);
120
225
121
	known_options.filters = filters_none;
226
	uint8_t out[LZMA_BLOCK_HEADER_SIZE_MAX];
122
	expect(lzma_block_header_size(&known_options) == LZMA_PROG_ERROR);
123
227
124
	known_options.filters = filters_five;
228
	// Test invalid block version
125
	expect(lzma_block_header_size(&known_options) == LZMA_PROG_ERROR);
229
	for (uint32_t i = 2; i < 20; i++) {
230
		block.version = i;
231
		assert_lzma_ret(lzma_block_header_encode(&block, out),
232
				LZMA_PROG_ERROR);
233
	}
126
234
127
	known_options.filters = filters_one;
235
	block.version = 1;
128
	expect(lzma_block_header_size(&known_options) == LZMA_OK);
129
236
130
	// Some invalid value, which gets ignored.
237
	// Test invalid header size (< min, > max, % 4 != 0)
131
	known_options.check = (lzma_check)(99);
238
	block.header_size = LZMA_BLOCK_HEADER_SIZE_MIN - 4;
132
	expect(lzma_block_header_size(&known_options) == LZMA_OK);
239
	assert_lzma_ret(lzma_block_header_encode(&block, out),
240
			LZMA_PROG_ERROR);
241
	block.header_size = LZMA_BLOCK_HEADER_SIZE_MIN + 2;
242
	assert_lzma_ret(lzma_block_header_encode(&block, out),
243
			LZMA_PROG_ERROR);
244
	block.header_size = LZMA_BLOCK_HEADER_SIZE_MAX + 4;
245
	assert_lzma_ret(lzma_block_header_encode(&block, out),
246
			LZMA_PROG_ERROR);
247
	assert_lzma_ret(lzma_block_header_size(&block), LZMA_OK);
133
248
134
	known_options.compressed_size = 5;
249
	// Test invalid compressed_size
135
	expect(lzma_block_header_size(&known_options) == LZMA_OK);
250
	block.compressed_size = 0;
251
	assert_lzma_ret(lzma_block_header_encode(&block, out),
252
			LZMA_PROG_ERROR);
253
	block.compressed_size = LZMA_VLI_MAX + 1;
254
	assert_lzma_ret(lzma_block_header_encode(&block, out),
255
			LZMA_PROG_ERROR);
136
256
137
	known_options.compressed_size = 0; // Cannot be zero.
257
	// This test passes test_lzma_block_header_size, but should
138
	expect(lzma_block_header_size(&known_options) == LZMA_PROG_ERROR);
258
	// fail here because there is not enough space to encode the
259
	// proper block size because the total size is too big to fit
260
	// in an lzma_vli
261
	block.compressed_size = LZMA_VLI_MAX;
262
	assert_lzma_ret(lzma_block_header_encode(&block, out),
263
			LZMA_PROG_ERROR);
264
	block.compressed_size = LZMA_VLI_UNKNOWN;
139
265
140
	// LZMA_VLI_MAX is too big to keep the total size of the Block
266
	// Test invalid uncompressed size
141
	// a valid VLI, but lzma_block_header_size() is not meant
267
	block.uncompressed_size = LZMA_VLI_MAX + 1;
142
	// to validate it. (lzma_block_header_encode() must validate it.)
268
	assert_lzma_ret(lzma_block_header_encode(&block, out),
143
	known_options.compressed_size = LZMA_VLI_MAX;
269
			LZMA_PROG_ERROR);
144
	expect(lzma_block_header_size(&known_options) == LZMA_OK);
270
	block.uncompressed_size = LZMA_VLI_UNKNOWN;
145
271
146
	known_options.compressed_size = LZMA_VLI_UNKNOWN;
272
	// Test invalid block check
147
	known_options.uncompressed_size = 0;
273
	block.check = INVALID_LZMA_CHECK_ID;
148
	expect(lzma_block_header_size(&known_options) == LZMA_OK);
274
	block.ignore_check = false;
275
	assert_lzma_ret(lzma_block_header_encode(&block, out),
276
			LZMA_PROG_ERROR);
277
	block.check = LZMA_CHECK_CRC32;
149
278
150
	known_options.uncompressed_size = LZMA_VLI_MAX + 1;
279
	// Test invalid filters
151
	expect(lzma_block_header_size(&known_options) == LZMA_PROG_ERROR);
280
	block.filters = NULL;
281
	assert_lzma_ret(lzma_block_header_encode(&block, out),
282
			LZMA_PROG_ERROR);
283
284
	block.filters = filters_none;
285
	assert_lzma_ret(lzma_block_header_encode(&block, out),
286
			LZMA_PROG_ERROR);
287
288
	block.filters = filters_five;
289
	block.header_size = LZMA_BLOCK_HEADER_SIZE_MAX - 4;
290
	assert_lzma_ret(lzma_block_header_encode(&block, out),
291
			LZMA_PROG_ERROR);
292
293
	// Test valid encoding and verify bytes of block header.
294
	// More complicated tests for encoding headers are included
295
	// in test_lzma_block_header_decode.
296
	block.filters = filters_one;
297
	assert_lzma_ret(lzma_block_header_size(&block), LZMA_OK);
298
	assert_lzma_ret(lzma_block_header_encode(&block, out), LZMA_OK);
299
300
	// First read block header size from out and verify
301
	// that it == (encoded size + 1) * 4
302
	uint32_t header_size = (out[0] + 1U) * 4;
303
	assert_uint_eq(header_size, block.header_size);
304
305
	// Next read block flags
306
	uint8_t flags = out[1];
307
308
	// Should have number of filters = 1
309
	assert_uint_eq((flags & 0x3) + 1, 1);
310
311
	// Bits 2-7 must be empty not set
312
	assert_uint_eq(flags & (0xFF - 0x3), 0);
313
314
	// Verify filter flags
315
	// Decode Filter ID
316
	lzma_vli filter_id = 0;
317
	size_t pos = 2;
318
	assert_lzma_ret(lzma_vli_decode(&filter_id, NULL, out,
319
			&pos, header_size), LZMA_OK);
320
	assert_uint_eq(filter_id, filters_one[0].id);
321
322
	// Decode Size of Properties
323
	lzma_vli prop_size = 0;
324
	assert_lzma_ret(lzma_vli_decode(&prop_size, NULL, out,
325
			&pos, header_size), LZMA_OK);
326
327
	// LZMA2 has 1 byte prop size
328
	assert_uint_eq(prop_size, 1);
329
	uint8_t expected_filter_props = 0;
330
	assert_lzma_ret(lzma_properties_encode(filters_one,
331
			&expected_filter_props), LZMA_OK);
332
	assert_uint_eq(out[pos], expected_filter_props);
333
	pos++;
334
335
	// Check null-padding
336
	for (size_t i = pos; i < header_size - 4; i++)
337
		assert_uint_eq(out[i], 0);
338
339
	// Check CRC32
340
	assert_uint_eq(read32le(&out[header_size - 4]), lzma_crc32(out,
341
			header_size - 4, 0));
342
#endif
152
}
343
}
153
344
154
345
346
#if defined(HAVE_ENCODERS) && defined(HAVE_DECODERS)
347
// Helper function to compare two lzma_block structures field by field
155
static void
348
static void
156
test2(void)
349
compare_blocks(lzma_block *block_expected, lzma_block *block_actual)
157
{
350
{
158
	known_options = (lzma_block){
351
	assert_uint_eq(block_actual->version, block_expected->version);
159
		.check = LZMA_CHECK_CRC32,
352
	assert_uint_eq(block_actual->compressed_size,
160
		.compressed_size = LZMA_VLI_UNKNOWN,
353
			block_expected->compressed_size);
161
		.uncompressed_size = LZMA_VLI_UNKNOWN,
354
	assert_uint_eq(block_actual->uncompressed_size,
162
		.filters = filters_four,
355
			block_expected->uncompressed_size);
163
	};
356
	assert_uint_eq(block_actual->check, block_expected->check);
357
	assert_uint_eq(block_actual->header_size, block_expected->header_size);
164
358
165
	expect(lzma_block_header_size(&known_options) == LZMA_OK);
359
	// Compare filter IDs
166
	code();
360
	assert_true(block_expected->filters && block_actual->filters);
361
	lzma_filter expected_filter = block_expected->filters[0];
362
	uint32_t filter_count = 0;
363
	while (expected_filter.id != LZMA_VLI_UNKNOWN) {
364
		assert_uint_eq(block_actual->filters[filter_count].id,
365
				expected_filter.id);
366
		expected_filter = block_expected->filters[++filter_count];
367
	}
167
368
168
	known_options.compressed_size = 123456;
369
	assert_uint_eq(block_actual->filters[filter_count].id,
169
	known_options.uncompressed_size = 234567;
370
			LZMA_VLI_UNKNOWN);
170
	expect(lzma_block_header_size(&known_options) == LZMA_OK);
171
	code();
172
173
	// We can make the sizes smaller while keeping the header size
174
	// the same.
175
	known_options.compressed_size = 12;
176
	known_options.uncompressed_size = 23;
177
	code();
178
}
371
}
372
#endif
179
373
180
374
181
static void
375
static void
182
test3(void)
376
test_lzma_block_header_decode(void)
183
{
377
{
184
	known_options = (lzma_block){
378
#if !defined(HAVE_ENCODERS) || !defined(HAVE_DECODERS)
185
		.check = LZMA_CHECK_CRC32,
379
	assert_skip("Encoder or decoder support disabled");
380
#else
381
	if (!lzma_filter_encoder_is_supported(LZMA_FILTER_X86)
382
                        || !lzma_filter_decoder_is_supported(LZMA_FILTER_X86))
383
                assert_skip("x86 BCJ encoder and/or decoder "
384
                                "is disabled");
385
386
	lzma_block block = {
387
		.filters = filters_one,
186
		.compressed_size = LZMA_VLI_UNKNOWN,
388
		.compressed_size = LZMA_VLI_UNKNOWN,
187
		.uncompressed_size = LZMA_VLI_UNKNOWN,
389
		.uncompressed_size = LZMA_VLI_UNKNOWN,
188
		.filters = filters_one,
390
		.check = LZMA_CHECK_CRC32,
391
		.version = 0
189
	};
392
	};
190
393
191
	expect(lzma_block_header_size(&known_options) == LZMA_OK);
394
	assert_lzma_ret(lzma_block_header_size(&block), LZMA_OK);
192
	known_options.header_size += 4;
193
	expect(lzma_block_header_encode(&known_options, buf) == LZMA_OK);
194
395
195
	lzma_filter filters[LZMA_FILTERS_MAX + 1];
396
	// Encode block header with simple options
196
	decoded_options.header_size = known_options.header_size;
397
	uint8_t out[LZMA_BLOCK_HEADER_SIZE_MAX];
197
	decoded_options.check = known_options.check;
398
	assert_lzma_ret(lzma_block_header_encode(&block, out), LZMA_OK);
198
	decoded_options.filters = filters;
199
399
200
	// Wrong size
400
	// Decode block header and check that the options match
201
	++buf[0];
401
	lzma_filter decoded_filters[LZMA_FILTERS_MAX + 1];
202
	expect(lzma_block_header_decode(&decoded_options, NULL, buf)
402
	lzma_block decoded_block = {
203
			== LZMA_PROG_ERROR);
403
		.version = 0,
204
	--buf[0];
404
		.filters = decoded_filters,
405
		.check = LZMA_CHECK_CRC32
406
	};
407
	decoded_block.header_size = lzma_block_header_size_decode(out[0]);
205
408
206
	// Wrong CRC32
409
	assert_lzma_ret(lzma_block_header_decode(&decoded_block, NULL, out),
207
	buf[known_options.header_size - 1] ^= 1;
410
			LZMA_OK);
208
	expect(lzma_block_header_decode(&decoded_options, NULL, buf)
411
	compare_blocks(&block, &decoded_block);
209
			== LZMA_DATA_ERROR);
210
	buf[known_options.header_size - 1] ^= 1;
211
412
212
	// Unsupported filter
413
	// Reset output buffer and decoded_block
213
	// NOTE: This may need updating when new IDs become supported.
414
	memzero(out, LZMA_BLOCK_HEADER_SIZE_MAX);
214
	buf[2] ^= 0x1F;
415
	memzero(&decoded_block, sizeof(lzma_block));
215
	write32le(buf + known_options.header_size - 4,
416
	decoded_block.filters = decoded_filters;
216
			lzma_crc32(buf, known_options.header_size - 4, 0));
417
	decoded_block.check = LZMA_CHECK_CRC32;
217
	expect(lzma_block_header_decode(&decoded_options, NULL, buf)
218
			== LZMA_OPTIONS_ERROR);
219
	buf[2] ^= 0x1F;
220
418
221
	// Non-nul Padding
419
	// Test with compressed size set
222
	buf[known_options.header_size - 4 - 1] ^= 1;
420
	block.compressed_size = 4096;
223
	write32le(buf + known_options.header_size - 4,
421
	assert_lzma_ret(lzma_block_header_size(&block), LZMA_OK);
224
			lzma_crc32(buf, known_options.header_size - 4, 0));
422
	assert_lzma_ret(lzma_block_header_encode(&block, out), LZMA_OK);
225
	expect(lzma_block_header_decode(&decoded_options, NULL, buf)
423
	decoded_block.header_size = lzma_block_header_size_decode(out[0]);
226
			== LZMA_OPTIONS_ERROR);
424
	assert_lzma_ret(lzma_block_header_decode(&decoded_block, NULL, out),
227
	buf[known_options.header_size - 4 - 1] ^= 1;
425
			LZMA_OK);
426
	compare_blocks(&block, &decoded_block);
427
428
	memzero(out, LZMA_BLOCK_HEADER_SIZE_MAX);
429
	memzero(&decoded_block, sizeof(lzma_block));
430
	decoded_block.filters = decoded_filters;
431
	decoded_block.check = LZMA_CHECK_CRC32;
432
433
	// Test with uncompressed size set
434
	block.uncompressed_size = 4096;
435
	assert_lzma_ret(lzma_block_header_size(&block), LZMA_OK);
436
	assert_lzma_ret(lzma_block_header_encode(&block, out), LZMA_OK);
437
	decoded_block.header_size = lzma_block_header_size_decode(out[0]);
438
	assert_lzma_ret(lzma_block_header_decode(&decoded_block, NULL, out),
439
			LZMA_OK);
440
	compare_blocks(&block, &decoded_block);
441
442
	memzero(out, LZMA_BLOCK_HEADER_SIZE_MAX);
443
	memzero(&decoded_block, sizeof(lzma_block));
444
	decoded_block.filters = decoded_filters;
445
	decoded_block.check = LZMA_CHECK_CRC32;
446
447
	// Test with multiple filters
448
	block.filters = filters_four;
449
	assert_lzma_ret(lzma_block_header_size(&block), LZMA_OK);
450
	assert_lzma_ret(lzma_block_header_encode(&block, out), LZMA_OK);
451
	decoded_block.header_size = lzma_block_header_size_decode(out[0]);
452
	assert_lzma_ret(lzma_block_header_decode(&decoded_block, NULL, out),
453
			LZMA_OK);
454
	compare_blocks(&block, &decoded_block);
455
456
	memzero(&decoded_block, sizeof(lzma_block));
457
	decoded_block.filters = decoded_filters;
458
	decoded_block.check = LZMA_CHECK_CRC32;
459
	decoded_block.header_size = lzma_block_header_size_decode(out[0]);
460
461
	// Test with too high version. The decoder will set it to a version
462
	// that it supports.
463
	decoded_block.version = 2;
464
	assert_lzma_ret(lzma_block_header_decode(&decoded_block, NULL, out),
465
			LZMA_OK);
466
	assert_uint_eq(decoded_block.version, 1);
467
468
	// Test bad check type
469
	decoded_block.check = INVALID_LZMA_CHECK_ID;
470
	assert_lzma_ret(lzma_block_header_decode(&decoded_block, NULL, out),
471
			LZMA_PROG_ERROR);
472
	decoded_block.check = LZMA_CHECK_CRC32;
473
474
	// Test bad check value
475
	out[decoded_block.header_size - 1] -= 10;
476
	assert_lzma_ret(lzma_block_header_decode(&decoded_block, NULL, out),
477
			LZMA_DATA_ERROR);
478
	out[decoded_block.header_size - 1] += 10;
479
480
	// Test non-NULL padding
481
	out[decoded_block.header_size - 5] = 1;
482
483
	// Recompute CRC32
484
	write32le(&out[decoded_block.header_size - 4], lzma_crc32(out,
485
			decoded_block.header_size - 4, 0));
486
	assert_lzma_ret(lzma_block_header_decode(&decoded_block, NULL, out),
487
			LZMA_OPTIONS_ERROR);
488
489
	// Test unsupported flags
490
	out[1] = 0xFF;
491
492
	// Recompute CRC32
493
	write32le(&out[decoded_block.header_size - 4], lzma_crc32(out,
494
			decoded_block.header_size - 4, 0));
495
	assert_lzma_ret(lzma_block_header_decode(&decoded_block, NULL, out),
496
			LZMA_OPTIONS_ERROR);
497
#endif
228
}
498
}
229
499
230
500
231
int
501
extern int
232
main(void)
502
main(int argc, char **argv)
233
{
503
{
234
	succeed(lzma_lzma_preset(&opt_lzma, 1));
504
	tuktest_start(argc, argv);
235
505
236
	test1();
506
	if (lzma_lzma_preset(&opt_lzma, 1))
237
	test2();
507
		tuktest_error("lzma_lzma_preset() failed");
238
	test3();
239
508
240
	return 0;
509
	tuktest_run(test_lzma_block_header_size);
510
	tuktest_run(test_lzma_block_header_encode);
511
	tuktest_run(test_lzma_block_header_decode);
512
513
	return tuktest_end();
241
}
514
}
(-)xz-5.2.5/tests/test_check.c (-36 / +338 lines)
Lines 2-11 Link Here
2
//
2
//
3
/// \file       test_check.c
3
/// \file       test_check.c
4
/// \brief      Tests integrity checks
4
/// \brief      Tests integrity checks
5
///
6
/// \todo       Add SHA256
7
//
5
//
8
//  Author:     Lasse Collin
6
//  Authors:    Lasse Collin
7
//              Jia Tan
9
//
8
//
10
//  This file has been put into the public domain.
9
//  This file has been put into the public domain.
11
//  You can do whatever you want with this file.
10
//  You can do whatever you want with this file.
Lines 13-18 Link Here
13
///////////////////////////////////////////////////////////////////////////////
12
///////////////////////////////////////////////////////////////////////////////
14
13
15
#include "tests.h"
14
#include "tests.h"
15
#include "mythread.h"
16
16
17
17
18
// These must be specified as numbers so that the test works on EBCDIC
18
// These must be specified as numbers so that the test works on EBCDIC
Lines 23-88 Link Here
23
static const uint8_t test_unaligned[12]
23
static const uint8_t test_unaligned[12]
24
		= { 120, 120, 120, 49, 50, 51, 52, 53, 54, 55, 56, 57 };
24
		= { 120, 120, 120, 49, 50, 51, 52, 53, 54, 55, 56, 57 };
25
25
26
// 2 MB is more than enough for the tests. Actually a tiny value would
27
// work because we don't actually decompress the files, we only test
28
// decoding of the Stream Header fields.
29
#define TEST_CHECK_MEMLIMIT (2U << 20)
26
30
27
static bool
31
static size_t no_check_size;
28
test_crc32(void)
32
static uint8_t *no_check_xz_data;
33
34
static size_t unsupported_check_size;
35
static uint8_t *unsupported_check_xz_data;
36
37
#ifdef HAVE_CHECK_CRC32
38
static size_t crc32_size;
39
static uint8_t *crc32_xz_data;
40
#endif
41
42
#ifdef HAVE_CHECK_CRC64
43
static size_t crc64_size;
44
static uint8_t *crc64_xz_data;
45
#endif
46
47
#ifdef HAVE_CHECK_SHA256
48
static size_t sha256_size;
49
static uint8_t *sha256_xz_data;
50
#endif
51
52
53
#ifdef HAVE_CHECK_CRC64
54
static const uint8_t *
55
get_random256(uint32_t *seed)
29
{
56
{
30
	static const uint32_t test_vector = 0xCBF43926;
57
	static uint8_t buf[256];
31
58
59
	for (size_t i = 0; i < sizeof(buf); ++i) {
60
		*seed = *seed * 1103515245 + 12345;
61
		buf[i] = (uint8_t)(*seed >> 22);
62
	}
63
64
	return buf;
65
}
66
#endif
67
68
69
static void
70
test_lzma_crc32(void)
71
{
72
	// CRC32 is always enabled.
73
	assert_true(lzma_check_is_supported(LZMA_CHECK_CRC32));
74
75
	const uint32_t test_vector = 0xCBF43926;
76
32
	// Test 1
77
	// Test 1
33
	uint32_t crc = lzma_crc32(test_string, sizeof(test_string), 0);
78
	assert_uint_eq(lzma_crc32(test_string, sizeof(test_string), 0),
34
	if (crc != test_vector)
79
			test_vector);
35
		return true;
36
80
37
	// Test 2
81
	// Test 2
38
	crc = lzma_crc32(test_unaligned + 3, sizeof(test_string), 0);
82
	assert_uint_eq(lzma_crc32(test_unaligned + 3, sizeof(test_string), 0),
39
	if (crc != test_vector)
83
			test_vector);
40
		return true;
41
84
42
	// Test 3
85
	// Test 3
43
	crc = 0;
86
	uint32_t crc = 0;
44
	for (size_t i = 0; i < sizeof(test_string); ++i)
87
	for (size_t i = 0; i < sizeof(test_string); ++i)
45
		crc = lzma_crc32(test_string + i, 1, crc);
88
		crc = lzma_crc32(test_string + i, 1, crc);
46
	if (crc != test_vector)
89
	assert_uint_eq(crc, test_vector);
47
		return true;
48
49
	return false;
50
}
90
}
51
91
52
92
53
static bool
93
static void
54
test_crc64(void)
94
test_lzma_crc64(void)
55
{
95
{
56
	static const uint64_t test_vector = 0x995DC9BBDF1939FA;
96
	// CRC64 can be disabled.
97
	if (!lzma_check_is_supported(LZMA_CHECK_CRC64))
98
		assert_skip("CRC64 support is disabled");
57
99
100
	// If CRC64 is disabled then lzma_crc64() will be missing.
101
	// Using an ifdef here avoids a linker error.
102
#ifdef HAVE_CHECK_CRC64
103
	const uint64_t test_vector = 0x995DC9BBDF1939FA;
104
58
	// Test 1
105
	// Test 1
59
	uint64_t crc = lzma_crc64(test_string, sizeof(test_string), 0);
106
	assert_uint_eq(lzma_crc64(test_string, sizeof(test_string), 0),
60
	if (crc != test_vector)
107
			test_vector);
61
		return true;
62
108
63
	// Test 2
109
	// Test 2
64
	crc = lzma_crc64(test_unaligned + 3, sizeof(test_string), 0);
110
	assert_uint_eq(lzma_crc64(test_unaligned + 3, sizeof(test_string), 0),
65
	if (crc != test_vector)
111
			test_vector);
66
		return true;
67
112
68
	// Test 3
113
	// Test 3
69
	crc = 0;
114
	uint64_t crc = 0;
70
	for (size_t i = 0; i < sizeof(test_string); ++i)
115
	for (size_t i = 0; i < sizeof(test_string); ++i)
71
		crc = lzma_crc64(test_string + i, 1, crc);
116
		crc = lzma_crc64(test_string + i, 1, crc);
72
	if (crc != test_vector)
117
	assert_uint_eq(crc, test_vector);
73
		return true;
74
118
75
	return false;
119
	// Test 4: The CLMUL implementation works on 16-byte chunks.
120
	// Test combination of different start and end alignments
121
	// and also short buffer lengths where special handling is needed.
122
	uint32_t seed = 29;
123
	crc = 0x96E30D5184B7FA2C; // Random initial value
124
	for (size_t start = 0; start < 32; ++start)
125
		for (size_t size = 1; size < 256 - 32; ++size)
126
			crc = lzma_crc64(get_random256(&seed), size, crc);
127
128
	assert_uint_eq(crc, 0x23AB787177231C9F);
129
#endif
76
}
130
}
77
131
78
132
79
int
133
static void
80
main(void)
134
test_lzma_supported_checks(void)
81
{
135
{
82
	bool error = false;
136
	static const lzma_check expected_check_ids[] = {
137
		LZMA_CHECK_NONE,
138
#ifdef HAVE_CHECK_CRC32
139
		LZMA_CHECK_CRC32,
140
#endif
141
#ifdef HAVE_CHECK_CRC64
142
		LZMA_CHECK_CRC64,
143
#endif
144
#ifdef HAVE_CHECK_SHA256
145
		LZMA_CHECK_SHA256,
146
#endif
147
	};
83
148
84
	error |= test_crc32();
149
	for (lzma_check i = 0; i <= LZMA_CHECK_ID_MAX + 1; i++) {
85
	error |= test_crc64();
150
		bool matched = false;
151
		for (unsigned int j = 0; j < ARRAY_SIZE(expected_check_ids);
152
				j++) {
153
			if (expected_check_ids[j] == i) {
154
				matched = true;
155
				break;
156
			}
157
		}
86
158
87
	return error ? 1 : 0;
159
		if (matched)
160
			assert_true(lzma_check_is_supported(i));
161
		else
162
			assert_false(lzma_check_is_supported(i));
163
	}
164
}
165
166
167
static void
168
test_lzma_check_size(void)
169
{
170
	// Expected check sizes taken from src/liblzma/api/lzma/check.h
171
	static const uint32_t expected_check_sizes[] = {
172
			0, 4, 4, 4, 8, 8, 8, 16, 16, 16,
173
			32, 32, 32, 64, 64, 64
174
	};
175
176
	for (lzma_check i = 0; i < ARRAY_SIZE(expected_check_sizes); i++)
177
		assert_uint_eq(expected_check_sizes[i], lzma_check_size(i));
178
179
	assert_uint_eq(lzma_check_size(INVALID_LZMA_CHECK_ID), UINT32_MAX);
180
}
181
182
183
// Test the single threaded decoder for lzma_get_check
184
static void
185
test_lzma_get_check_st(void)
186
{
187
#ifndef HAVE_DECODERS
188
	assert_skip("Decoder support disabled");
189
#else
190
	const uint32_t flags = LZMA_TELL_ANY_CHECK |
191
			LZMA_TELL_UNSUPPORTED_CHECK |
192
			LZMA_TELL_NO_CHECK;
193
194
	uint8_t outbuf[128];
195
	lzma_stream strm = LZMA_STREAM_INIT;
196
197
	// Test a file with no integrity check:
198
	assert_lzma_ret(lzma_stream_decoder(&strm, TEST_CHECK_MEMLIMIT,
199
			flags), LZMA_OK);
200
	strm.next_in = no_check_xz_data;
201
	strm.avail_in = no_check_size;
202
	strm.next_out = outbuf;
203
	strm.avail_out = sizeof(outbuf);
204
205
	assert_lzma_ret(lzma_code(&strm, LZMA_RUN), LZMA_NO_CHECK);
206
	assert_lzma_check(lzma_get_check(&strm), LZMA_CHECK_NONE);
207
	assert_lzma_ret(lzma_code(&strm, LZMA_RUN), LZMA_STREAM_END);
208
209
	// Test a file with an unsupported integrity check type:
210
	assert_lzma_ret(lzma_stream_decoder(&strm, TEST_CHECK_MEMLIMIT,
211
			flags), LZMA_OK);
212
	strm.next_in = unsupported_check_xz_data;
213
	strm.avail_in = unsupported_check_size;
214
	strm.next_out = outbuf;
215
	strm.avail_out = sizeof(outbuf);
216
217
	assert_lzma_ret(lzma_code(&strm, LZMA_RUN), LZMA_UNSUPPORTED_CHECK);
218
	assert_lzma_ret(lzma_code(&strm, LZMA_RUN), LZMA_STREAM_END);
219
220
	// Test a file with CRC32 as the integrity check:
221
#ifdef HAVE_CHECK_CRC32
222
	assert_lzma_ret(lzma_stream_decoder(&strm, TEST_CHECK_MEMLIMIT,
223
			flags), LZMA_OK);
224
	strm.next_in = crc32_xz_data;
225
	strm.avail_in = crc32_size;
226
	strm.next_out = outbuf;
227
	strm.avail_out = sizeof(outbuf);
228
229
	assert_lzma_ret(lzma_code(&strm, LZMA_RUN), LZMA_GET_CHECK);
230
	assert_lzma_check(lzma_get_check(&strm), LZMA_CHECK_CRC32);
231
	assert_lzma_ret(lzma_code(&strm, LZMA_RUN), LZMA_STREAM_END);
232
#endif
233
234
	// Test a file with CRC64 as the integrity check:
235
#ifdef HAVE_CHECK_CRC64
236
	assert_lzma_ret(lzma_stream_decoder(&strm, TEST_CHECK_MEMLIMIT,
237
			flags), LZMA_OK);
238
	strm.next_in = crc64_xz_data;
239
	strm.avail_in = crc64_size;
240
	strm.next_out = outbuf;
241
	strm.avail_out = sizeof(outbuf);
242
243
	assert_lzma_ret(lzma_code(&strm, LZMA_RUN), LZMA_GET_CHECK);
244
	assert_lzma_check(lzma_get_check(&strm), LZMA_CHECK_CRC64);
245
	assert_lzma_ret(lzma_code(&strm, LZMA_RUN), LZMA_STREAM_END);
246
#endif
247
248
	// Test a file with SHA-256 as the integrity check:
249
#ifdef HAVE_CHECK_SHA256
250
	assert_lzma_ret(lzma_stream_decoder(&strm, TEST_CHECK_MEMLIMIT,
251
			flags), LZMA_OK);
252
	strm.next_in = sha256_xz_data;
253
	strm.avail_in = sha256_size;
254
	strm.next_out = outbuf;
255
	strm.avail_out = sizeof(outbuf);
256
257
	assert_lzma_ret(lzma_code(&strm, LZMA_RUN), LZMA_GET_CHECK);
258
	assert_lzma_check(lzma_get_check(&strm), LZMA_CHECK_SHA256);
259
	assert_lzma_ret(lzma_code(&strm, LZMA_RUN), LZMA_STREAM_END);
260
#endif
261
262
	lzma_end(&strm);
263
#endif
264
}
265
266
267
static void
268
test_lzma_get_check_mt(void)
269
{
270
#ifndef MYTHREAD_ENABLED
271
	assert_skip("Threading support disabled");
272
#elif !defined(HAVE_DECODERS)
273
	assert_skip("Decoder support disabled");
274
#else
275
	const uint32_t flags = LZMA_TELL_ANY_CHECK |
276
			LZMA_TELL_UNSUPPORTED_CHECK |
277
			LZMA_TELL_NO_CHECK;
278
279
	const lzma_mt options = {
280
		.flags = flags,
281
		.threads = 2,
282
		.timeout = 0,
283
		.memlimit_threading = TEST_CHECK_MEMLIMIT,
284
		.memlimit_stop = TEST_CHECK_MEMLIMIT
285
	};
286
287
	uint8_t outbuf[128];
288
	lzma_stream strm = LZMA_STREAM_INIT;
289
290
	// Test a file with no integrity check:
291
	assert_lzma_ret(lzma_stream_decoder_mt(&strm, &options), LZMA_OK);
292
	strm.next_in = no_check_xz_data;
293
	strm.avail_in = no_check_size;
294
	strm.next_out = outbuf;
295
	strm.avail_out = sizeof(outbuf);
296
297
	assert_lzma_ret(lzma_code(&strm, LZMA_RUN), LZMA_NO_CHECK);
298
	assert_lzma_check(lzma_get_check(&strm), LZMA_CHECK_NONE);
299
	assert_lzma_ret(lzma_code(&strm, LZMA_RUN), LZMA_STREAM_END);
300
301
	// Test a file with an unsupported integrity check type:
302
	assert_lzma_ret(lzma_stream_decoder_mt(&strm, &options), LZMA_OK);
303
	strm.next_in = unsupported_check_xz_data;
304
	strm.avail_in = unsupported_check_size;
305
	strm.next_out = outbuf;
306
	strm.avail_out = sizeof(outbuf);
307
308
	assert_lzma_ret(lzma_code(&strm, LZMA_RUN), LZMA_UNSUPPORTED_CHECK);
309
	assert_lzma_ret(lzma_code(&strm, LZMA_RUN), LZMA_STREAM_END);
310
311
	// Test a file with CRC32 as the integrity check:
312
#ifdef HAVE_CHECK_CRC32
313
	assert_lzma_ret(lzma_stream_decoder_mt(&strm, &options), LZMA_OK);
314
	strm.next_in = crc32_xz_data;
315
	strm.avail_in = crc32_size;
316
	strm.next_out = outbuf;
317
	strm.avail_out = sizeof(outbuf);
318
319
	assert_lzma_ret(lzma_code(&strm, LZMA_RUN), LZMA_GET_CHECK);
320
	assert_lzma_check(lzma_get_check(&strm), LZMA_CHECK_CRC32);
321
	assert_lzma_ret(lzma_code(&strm, LZMA_RUN), LZMA_STREAM_END);
322
#endif
323
324
	// Test a file with CRC64 as the integrity check:
325
#ifdef HAVE_CHECK_CRC64
326
	assert_lzma_ret(lzma_stream_decoder_mt(&strm, &options), LZMA_OK);
327
	strm.next_in = crc64_xz_data;
328
	strm.avail_in = crc64_size;
329
	strm.next_out = outbuf;
330
	strm.avail_out = sizeof(outbuf);
331
332
	assert_lzma_ret(lzma_code(&strm, LZMA_RUN), LZMA_GET_CHECK);
333
	assert_lzma_check(lzma_get_check(&strm), LZMA_CHECK_CRC64);
334
	assert_lzma_ret(lzma_code(&strm, LZMA_RUN), LZMA_STREAM_END);
335
#endif
336
337
	// Test a file with SHA-256 as the integrity check:
338
#ifdef HAVE_CHECK_SHA256
339
	assert_lzma_ret(lzma_stream_decoder_mt(&strm,&options), LZMA_OK);
340
	strm.next_in = sha256_xz_data;
341
	strm.avail_in = sha256_size;
342
	strm.next_out = outbuf;
343
	strm.avail_out = sizeof(outbuf);
344
345
	assert_lzma_ret(lzma_code(&strm, LZMA_RUN), LZMA_GET_CHECK);
346
	assert_lzma_check(lzma_get_check(&strm), LZMA_CHECK_SHA256);
347
	assert_lzma_ret(lzma_code(&strm, LZMA_RUN), LZMA_STREAM_END);
348
#endif
349
350
	lzma_end(&strm);
351
#endif
352
}
353
354
355
extern int
356
main(int argc, char **argv)
357
{
358
	tuktest_start(argc, argv);
359
360
	no_check_xz_data = tuktest_file_from_srcdir(
361
			"files/good-1-check-none.xz", &no_check_size);
362
363
	unsupported_check_xz_data = tuktest_file_from_srcdir(
364
			"files/unsupported-check.xz",
365
			&unsupported_check_size);
366
367
#ifdef HAVE_CHECK_CRC32
368
	crc32_xz_data = tuktest_file_from_srcdir(
369
			"files/good-1-check-crc32.xz", &crc32_size);
370
#endif
371
372
#ifdef HAVE_CHECK_CRC64
373
	crc64_xz_data = tuktest_file_from_srcdir(
374
			"files/good-1-check-crc64.xz", &crc64_size);
375
#endif
376
377
#ifdef HAVE_CHECK_SHA256
378
	sha256_xz_data = tuktest_file_from_srcdir(
379
			"files/good-1-check-sha256.xz", &sha256_size);
380
#endif
381
382
	tuktest_run(test_lzma_crc32);
383
	tuktest_run(test_lzma_crc64);
384
	tuktest_run(test_lzma_supported_checks);
385
	tuktest_run(test_lzma_check_size);
386
	tuktest_run(test_lzma_get_check_st);
387
	tuktest_run(test_lzma_get_check_mt);
388
389
	return tuktest_end();
88
}
390
}
(-)xz-5.2.5/tests/test_compress.sh (-69 / +76 lines)
Lines 13-142 Link Here
13
if test -x ../src/xz/xz ; then
13
if test -x ../src/xz/xz ; then
14
	:
14
	:
15
else
15
else
16
	(exit 77)
17
	exit 77
16
	exit 77
18
fi
17
fi
19
18
19
# If compression or decompression support is missing, this test is skipped.
20
# This isn't perfect as if only some compressors or decompressors are disabled
21
# then this script can still fail because for now this doesn't check the
22
# availability of each filter.
23
if grep 'define HAVE_ENCODERS' ../config.h > /dev/null \
24
		&& grep 'define HAVE_DECODERS' ../config.h > /dev/null ; then
25
	:
26
else
27
	echo "Compression or decompression support is disabled, skipping this test."
28
	exit 77
29
fi
30
20
# Find out if our shell supports functions.
31
# Find out if our shell supports functions.
21
eval 'unset foo ; foo() { return 42; } ; foo'
32
eval 'unset foo ; foo() { return 42; } ; foo'
22
if test $? != 42 ; then
33
if test $? != 42 ; then
23
	echo "/bin/sh doesn't support functions, skipping this test."
34
	echo "/bin/sh doesn't support functions, skipping this test."
24
	(exit 77)
25
	exit 77
35
	exit 77
26
fi
36
fi
27
37
28
test_xz() {
38
test_xz() {
29
	if $XZ -c "$@" "$FILE" > tmp_compressed; then
39
	if $XZ -c "$@" "$FILE" > "$TMP_COMP"; then
30
		:
40
		:
31
	else
41
	else
32
		echo "Compressing failed: $* $FILE"
42
		echo "Compressing failed: $* $FILE"
33
		(exit 1)
34
		exit 1
43
		exit 1
35
	fi
44
	fi
36
45
37
	if $XZ -cd tmp_compressed > tmp_uncompressed ; then
46
	if $XZ -cd "$TMP_COMP" > "$TMP_UNCOMP" ; then
38
		:
47
		:
39
	else
48
	else
40
		echo "Decompressing failed: $* $FILE"
49
		echo "Decompressing failed: $* $FILE"
41
		(exit 1)
42
		exit 1
50
		exit 1
43
	fi
51
	fi
44
52
45
	if cmp tmp_uncompressed "$FILE" ; then
53
	if cmp "$TMP_UNCOMP" "$FILE" ; then
46
		:
54
		:
47
	else
55
	else
48
		echo "Decompressed file does not match" \
56
		echo "Decompressed file does not match" \
49
				"the original: $* $FILE"
57
				"the original: $* $FILE"
50
		(exit 1)
51
		exit 1
58
		exit 1
52
	fi
59
	fi
53
60
54
	if test -n "$XZDEC" ; then
61
	if test -n "$XZDEC" ; then
55
		if $XZDEC tmp_compressed > tmp_uncompressed ; then
62
		if $XZDEC "$TMP_COMP" > "$TMP_UNCOMP" ; then
56
			:
63
			:
57
		else
64
		else
58
			echo "Decompressing failed: $* $FILE"
65
			echo "Decompressing failed: $* $FILE"
59
			(exit 1)
60
			exit 1
66
			exit 1
61
		fi
67
		fi
62
68
63
		if cmp tmp_uncompressed "$FILE" ; then
69
		if cmp "$TMP_UNCOMP" "$FILE" ; then
64
			:
70
			:
65
		else
71
		else
66
			echo "Decompressed file does not match" \
72
			echo "Decompressed file does not match" \
67
					"the original: $* $FILE"
73
					"the original: $* $FILE"
68
			(exit 1)
69
			exit 1
74
			exit 1
70
		fi
75
		fi
71
	fi
76
	fi
72
73
	# Show progress:
74
	echo . | tr -d '\n\r'
75
}
77
}
76
78
77
XZ="../src/xz/xz --memlimit-compress=48MiB --memlimit-decompress=5MiB \
79
XZ="../src/xz/xz --memlimit-compress=48MiB --memlimit-decompress=5MiB \
78
		--no-adjust --threads=1 --check=crc64"
80
		--no-adjust --threads=1 --check=crc32"
81
grep "define HAVE_CHECK_CRC64" ../config.h > /dev/null \
82
		&& XZ="$XZ --check=crc64"
79
XZDEC="../src/xzdec/xzdec" # No memory usage limiter available
83
XZDEC="../src/xzdec/xzdec" # No memory usage limiter available
80
test -x ../src/xzdec/xzdec || XZDEC=
84
test -x ../src/xzdec/xzdec || XZDEC=
81
85
82
# Create the required input files.
86
# Create the required input file if needed.
83
if ./create_compress_files ; then
87
#
84
	:
88
# Derive temporary filenames for compressed and uncompressed outputs
85
else
89
# from the input filename. This is needed when multiple tests are
86
	rm -f compress_*
90
# run in parallel.
87
	echo "Failed to create files to test compression."
91
FILE=$1
88
	(exit 1)
92
TMP_COMP="tmp_comp_$FILE"
89
	exit 1
93
TMP_UNCOMP="tmp_uncomp_$FILE"
90
fi
91
94
95
case $FILE in
96
	# compress_generated files will be created in the build directory
97
	# in the /tests/ sub-directory.
98
	compress_generated_*)
99
		if ./create_compress_files "$FILE" ; then
100
			:
101
		else
102
			rm -f "$FILE"
103
			echo "Failed to create the file '$FILE'."
104
			exit 1
105
		fi
106
		;;
107
	# compress_prepared files exist in the source directory since they
108
	# do not need to be copied or regenerated.
109
	compress_prepared_*)
110
		FILE="$srcdir/$FILE"
111
		;;
112
	'')
113
		echo "No test file was specified."
114
		exit 1
115
		;;
116
esac
117
92
# Remove temporary now (in case they are something weird), and on exit.
118
# Remove temporary now (in case they are something weird), and on exit.
93
rm -f tmp_compressed tmp_uncompressed
119
rm -f "$TMP_COMP" "$TMP_UNCOMP"
94
trap 'rm -f tmp_compressed tmp_uncompressed' 0
120
trap 'rm -f "$TMP_COMP" "$TMP_UNCOMP"' 0
95
121
96
# Compress and decompress each file with various filter configurations.
122
# Compress and decompress the file with various filter configurations.
97
# This takes quite a bit of time.
98
echo "test_compress.sh:"
99
for FILE in compress_generated_* "$srcdir"/compress_prepared_*
100
do
101
	MSG=`echo "x$FILE" | sed 's,^x,,; s,^.*/,,; s,^compress_,,'`
102
	echo "  $MSG" | tr -d '\n\r'
103
104
	# Don't test with empty arguments; it breaks some ancient
105
	# proprietary /bin/sh versions due to $@ used in test_xz().
106
	test_xz -1
107
	test_xz -2
108
	test_xz -3
109
	test_xz -4
110
111
	# Disabled until Subblock format is stable.
112
#		--subblock \
113
#		--subblock=size=1 \
114
#		--subblock=size=1,rle=1 \
115
#		--subblock=size=1,rle=4 \
116
#		--subblock=size=4,rle=4 \
117
#		--subblock=size=8,rle=4 \
118
#		--subblock=size=8,rle=8 \
119
#		--subblock=size=4096,rle=12 \
120
#
123
#
121
	for ARGS in \
124
# Don't test with empty arguments; it breaks some ancient
122
		--delta=dist=1 \
125
# proprietary /bin/sh versions due to $@ used in test_xz().
123
		--delta=dist=4 \
126
test_xz -1
124
		--delta=dist=256 \
127
test_xz -2
125
		--x86 \
128
test_xz -3
126
		--powerpc \
129
test_xz -4
127
		--ia64 \
128
		--arm \
129
		--armthumb \
130
		--sparc
131
	do
132
		test_xz $ARGS --lzma2=dict=64KiB,nice=32,mode=fast
133
130
134
		# Disabled until Subblock format is stable.
131
test_filter()
135
		# test_xz --subblock $ARGS --lzma2=dict=64KiB,nice=32,mode=fast
132
{
136
	done
133
	grep "define HAVE_ENCODER_$1" ../config.h > /dev/null || return
134
	grep "define HAVE_DECODER_$1" ../config.h > /dev/null || return
135
	shift
136
	test_xz "$@" --lzma2=dict=64KiB,nice=32,mode=fast
137
}
137
138
138
	echo
139
test_filter DELTA --delta=dist=1
139
done
140
test_filter DELTA --delta=dist=4
141
test_filter DELTA --delta=dist=256
142
test_filter X86 --x86
143
test_filter POWERPC --power
144
test_filter IA64 --ia64
145
test_filter ARM --arm
146
test_filter ARMTHUMB --armthumb
147
test_filter SPARC --sparc
140
148
141
(exit 0)
142
exit 0
149
exit 0
(-)xz-5.2.5/tests/test_files.sh (-10 / +150 lines)
Lines 15-39 Link Here
15
test -x "$XZ" || XZ=
15
test -x "$XZ" || XZ=
16
test -x "$XZDEC" || XZDEC=
16
test -x "$XZDEC" || XZDEC=
17
if test -z "$XZ$XZDEC"; then
17
if test -z "$XZ$XZDEC"; then
18
	(exit 77)
18
	echo "xz and xzdec were not built, skipping this test."
19
	exit 77
19
	exit 77
20
fi
20
fi
21
21
22
# If decompression support is missing, this test is skipped.
23
# This isn't perfect as if only some decompressors are disabled
24
# then some good files might not decompress and the test fails
25
# for a (kind of) wrong reason.
26
if grep 'define HAVE_DECODERS' ../config.h > /dev/null ; then
27
	:
28
else
29
	echo "Decompression support is disabled, skipping this test."
30
	exit 77
31
fi
32
33
# If a feature was disabled at build time, make it possible to skip
34
# some of the test files. Use exit status 77 if any files were skipped.
35
EXIT_STATUS=0
36
have_feature()
37
{
38
	grep "define HAVE_$1" ../config.h > /dev/null && return 0
39
	printf '%s: Skipping because HAVE_%s is not enabled\n' "$2" "$1"
40
	EXIT_STATUS=77
41
	return 1
42
}
43
44
45
#######
46
# .xz #
47
#######
48
49
# If these integrity check types were disabled at build time,
50
# allow the tests to pass still.
51
NO_WARN=
52
grep 'define HAVE_CHECK_CRC64' ../config.h > /dev/null || NO_WARN=-qQ
53
grep 'define HAVE_CHECK_SHA256' ../config.h > /dev/null || NO_WARN=-qQ
54
22
for I in "$srcdir"/files/good-*.xz
55
for I in "$srcdir"/files/good-*.xz
23
do
56
do
24
	if test -z "$XZ" || "$XZ" -dc "$I" > /dev/null; then
57
	# If features were disabled at build time, keep this still working.
58
	case $I in
59
		*/good-1-*delta-lzma2*.xz)
60
			have_feature DECODER_DELTA "$I" || continue
61
			;;
62
	esac
63
	case $I in
64
		*/good-1-empty-bcj-lzma2.xz)
65
			have_feature DECODER_POWERPC "$I" || continue
66
			;;
67
	esac
68
	case $I in
69
		*/good-1-sparc-lzma2.xz)
70
			have_feature DECODER_SPARC "$I" || continue
71
			;;
72
	esac
73
	case $I in
74
		*/good-1-x86-lzma2.xz)
75
			have_feature DECODER_X86 "$I" || continue
76
			;;
77
	esac
78
	case $I in
79
		*/good-1-arm64-lzma2-*.xz)
80
			have_feature DECODER_ARM64 "$I" || continue
81
			;;
82
	esac
83
84
	if test -z "$XZ" || "$XZ" $NO_WARN -dc "$I" > /dev/null; then
25
		:
85
		:
26
	else
86
	else
27
		echo "Good file failed: $I"
87
		echo "Good file failed: $I"
28
		(exit 1)
29
		exit 1
88
		exit 1
30
	fi
89
	fi
31
90
32
	if test -z "$XZDEC" || "$XZDEC" "$I" > /dev/null; then
91
	if test -z "$XZDEC" || "$XZDEC" $NO_WARN "$I" > /dev/null; then
33
		:
92
		:
34
	else
93
	else
35
		echo "Good file failed: $I"
94
		echo "Good file failed: $I"
36
		(exit 1)
37
		exit 1
95
		exit 1
38
	fi
96
	fi
39
done
97
done
Lines 42-57 Link Here
42
do
100
do
43
	if test -n "$XZ" && "$XZ" -dc "$I" > /dev/null 2>&1; then
101
	if test -n "$XZ" && "$XZ" -dc "$I" > /dev/null 2>&1; then
44
		echo "Bad file succeeded: $I"
102
		echo "Bad file succeeded: $I"
45
		(exit 1)
46
		exit 1
103
		exit 1
47
	fi
104
	fi
48
105
49
	if test -n "$XZDEC" && "$XZDEC" "$I" > /dev/null 2>&1; then
106
	# xzdec doesn't warn about unsupported check so skip this if any of
107
	# the check types were disabled at built time (NO_WARN isn't empty).
108
	if test -n "$XZDEC" && test -z "$NO_WARN" \
109
			&& "$XZDEC" "$I" > /dev/null 2>&1; then
50
		echo "Bad file succeeded: $I"
110
		echo "Bad file succeeded: $I"
51
		(exit 1)
52
		exit 1
111
		exit 1
53
	fi
112
	fi
54
done
113
done
55
114
56
(exit 0)
115
# Testing for the lzma_index_append() bug in <= 5.2.6 needs "xz -l":
57
exit 0
116
I="$srcdir/files/bad-3-index-uncomp-overflow.xz"
117
if test -n "$XZ" && "$XZ" -l "$I" > /dev/null 2>&1; then
118
	echo "Bad file succeeded with xz -l: $I"
119
	exit 1
120
fi
121
122
for I in "$srcdir"/files/unsupported-*.xz
123
do
124
	# Test these only with xz as unsupported-check.xz will exit
125
	# successfully with xzdec because it doesn't warn about
126
	# unsupported check type.
127
	if test -n "$XZ" && "$XZ" -dc "$I" > /dev/null 2>&1; then
128
		echo "Unsupported file succeeded: $I"
129
		exit 1
130
	fi
131
done
132
133
# Test that this passes with --no-warn (-Q).
134
I="$srcdir/files/unsupported-check.xz"
135
if test -z "$XZ" || "$XZ" -dcqQ "$I" > /dev/null; then
136
	:
137
else
138
	echo "Unsupported file failed with xz -Q: $I"
139
	exit 1
140
fi
141
142
if test -z "$XZDEC" || "$XZDEC" -qQ "$I" > /dev/null; then
143
	:
144
else
145
	echo "Unsupported file failed with xzdec -Q: $I"
146
	exit 1
147
fi
148
149
150
#########
151
# .lzma #
152
#########
153
154
for I in "$srcdir"/files/good-*.lzma
155
do
156
	if test -z "$XZ" || "$XZ" -dc "$I" > /dev/null; then
157
		:
158
	else
159
		echo "Good file failed: $I"
160
		exit 1
161
	fi
162
done
163
164
for I in "$srcdir"/files/bad-*.lzma
165
do
166
	if test -n "$XZ" && "$XZ" -dc "$I" > /dev/null 2>&1; then
167
		echo "Bad file succeeded: $I"
168
		exit 1
169
	fi
170
done
171
172
173
#######
174
# .lz #
175
#######
176
177
if grep 'define HAVE_LZIP_DECODER' ../config.h > /dev/null ; then
178
	for I in "$srcdir"/files/good-*.lz
179
	do
180
		if test -z "$XZ" || "$XZ" -dc "$I" > /dev/null; then
181
			:
182
		else
183
			echo "Good file failed: $I"
184
			exit 1
185
		fi
186
	done
187
188
	for I in "$srcdir"/files/bad-*.lz "$srcdir"/files/unsupported-*.lz
189
	do
190
		if test -n "$XZ" && "$XZ" -dc "$I" > /dev/null 2>&1; then
191
			echo "Bad file succeeded: $I"
192
			exit 1
193
		fi
194
	done
195
fi
196
197
exit "$EXIT_STATUS"
(-)xz-5.2.5/tests/test_filter_flags.c (-180 / +449 lines)
Lines 3-9 Link Here
3
/// \file       test_filter_flags.c
3
/// \file       test_filter_flags.c
4
/// \brief      Tests Filter Flags coders
4
/// \brief      Tests Filter Flags coders
5
//
5
//
6
//  Author:     Lasse Collin
6
//  Authors:    Jia Tan
7
//              Lasse Collin
7
//
8
//
8
//  This file has been put into the public domain.
9
//  This file has been put into the public domain.
9
//  You can do whatever you want with this file.
10
//  You can do whatever you want with this file.
Lines 12-258 Link Here
12
13
13
#include "tests.h"
14
#include "tests.h"
14
15
16
// FIXME: This is from src/liblzma/common/common.h but it cannot be
17
// included here. This constant is needed in only a few files, perhaps
18
// move it to some other internal header or create a new one?
19
#define LZMA_FILTER_RESERVED_START (LZMA_VLI_C(1) << 62)
15
20
16
static uint8_t buffer[4096];
17
static lzma_filter known_flags;
18
static lzma_filter decoded_flags;
19
static lzma_stream strm = LZMA_STREAM_INIT;
20
21
22
#if defined(HAVE_ENCODERS)
23
// No tests are run without encoders, so init the global filters
24
// only when the encoders are enabled.
25
static lzma_filter lzma1_filter = { LZMA_FILTER_LZMA1, NULL };
26
static lzma_filter lzma2_filter = { LZMA_FILTER_LZMA2, NULL };
27
static lzma_filter delta_filter = { LZMA_FILTER_DELTA, NULL };
21
28
22
static bool
29
static lzma_filter bcj_filters_encoders[] = {
23
encode(uint32_t known_size)
30
#ifdef HAVE_ENCODER_X86
24
{
31
	{ LZMA_FILTER_X86, NULL },
25
	memcrap(buffer, sizeof(buffer));
32
#endif
33
#ifdef HAVE_ENCODER_POWERPC
34
	{ LZMA_FILTER_POWERPC, NULL },
35
#endif
36
#ifdef HAVE_ENCODER_IA64
37
	{ LZMA_FILTER_IA64, NULL },
38
#endif
39
#ifdef HAVE_ENCODER_ARM
40
	{ LZMA_FILTER_ARM, NULL },
41
#endif
42
#ifdef HAVE_ENCODER_ARM64
43
	{ LZMA_FILTER_ARM64, NULL },
44
#endif
45
#ifdef HAVE_ENCODER_ARMTHUMB
46
	{ LZMA_FILTER_ARMTHUMB, NULL },
47
#endif
48
#ifdef HAVE_ENCODER_SPARC
49
	{ LZMA_FILTER_SPARC, NULL },
50
#endif
51
};
26
52
27
	uint32_t tmp;
53
// HAVE_ENCODERS ifdef not termianted here because decoders are
28
	if (lzma_filter_flags_size(&tmp, &known_flags) != LZMA_OK)
54
// only used if encoders are, but encoders can still be used
29
		return true;
55
// even if decoders are not.
30
56
31
	if (tmp != known_size)
57
#ifdef HAVE_DECODERS
32
		return true;
58
static lzma_filter bcj_filters_decoders[] = {
59
#ifdef HAVE_DECODER_X86
60
	{ LZMA_FILTER_X86, NULL },
61
#endif
62
#ifdef HAVE_DECODER_POWERPC
63
	{ LZMA_FILTER_POWERPC, NULL },
64
#endif
65
#ifdef HAVE_DECODER_IA64
66
	{ LZMA_FILTER_IA64, NULL },
67
#endif
68
#ifdef HAVE_DECODER_ARM
69
	{ LZMA_FILTER_ARM, NULL },
70
#endif
71
#ifdef HAVE_DECODER_ARM64
72
	{ LZMA_FILTER_ARM64, NULL },
73
#endif
74
#ifdef HAVE_DECODER_ARMTHUMB
75
	{ LZMA_FILTER_ARMTHUMB, NULL },
76
#endif
77
#ifdef HAVE_DECODER_SPARC
78
	{ LZMA_FILTER_SPARC, NULL },
79
#endif
80
};
81
#endif
82
#endif
33
83
34
	size_t out_pos = 0;
35
	if (lzma_filter_flags_encode(&known_flags,
36
			buffer, &out_pos, known_size) != LZMA_OK)
37
		return true;
38
84
39
	if (out_pos != known_size)
85
static void
40
		return true;
86
test_lzma_filter_flags_size(void)
87
{
88
#ifndef HAVE_ENCODERS
89
	assert_skip("Encoder support disabled");
90
#else
91
	// For each supported filter, test that the size can be calculated
92
	// and that the size calculated is reasonable. A reasonable size
93
	// must be greater than 0, but less than the maximum size for the
94
	// block header.
95
	uint32_t size = 0;
96
	if (lzma_filter_encoder_is_supported(LZMA_FILTER_LZMA1)) {
97
		assert_lzma_ret(lzma_filter_flags_size(&size,
98
				&lzma1_filter), LZMA_PROG_ERROR);
99
	}
41
100
42
	return false;
101
	if (lzma_filter_encoder_is_supported(LZMA_FILTER_LZMA2)) {
43
}
102
		assert_lzma_ret(lzma_filter_flags_size(&size,
103
				&lzma2_filter), LZMA_OK);
104
		assert_true(size != 0 && size < LZMA_BLOCK_HEADER_SIZE_MAX);
105
	}
44
106
107
	// Do not use macro ARRAY_SIZE() in the for loop condition directly.
108
	// If the BCJ filters are not configured and built, then ARRAY_SIZE()
109
	// will return 0 and cause a warning because the for loop will never
110
	// execute since any unsigned number cannot be < 0 (-Werror=type-limits).
111
	const uint32_t bcj_array_size = ARRAY_SIZE(bcj_filters_encoders);
112
	for (uint32_t i = 0; i < bcj_array_size; i++) {
113
		assert_lzma_ret(lzma_filter_flags_size(&size,
114
				&bcj_filters_encoders[i]), LZMA_OK);
115
		assert_true(size != 0 && size < LZMA_BLOCK_HEADER_SIZE_MAX);
116
	}
45
117
46
static bool
118
	if (lzma_filter_encoder_is_supported(LZMA_FILTER_DELTA)) {
47
decode_ret(uint32_t known_size, lzma_ret expected_ret)
119
		assert_lzma_ret(lzma_filter_flags_size(&size,
48
{
120
				&delta_filter), LZMA_OK);
49
	memcrap(&decoded_flags, sizeof(decoded_flags));
121
		assert_true(size != 0 && size < LZMA_BLOCK_HEADER_SIZE_MAX);
122
	}
50
123
51
	size_t pos = 0;
124
	// Test invalid Filter IDs
52
	if (lzma_filter_flags_decode(&decoded_flags, NULL,
125
	lzma_filter bad_filter = { 2, NULL };
53
				buffer, &pos, known_size) != expected_ret
54
			|| pos != known_size)
55
		return true;
56
126
57
	return false;
127
	assert_lzma_ret(lzma_filter_flags_size(&size, &bad_filter),
128
			LZMA_OPTIONS_ERROR);
129
	bad_filter.id = LZMA_VLI_MAX;
130
	assert_lzma_ret(lzma_filter_flags_size(&size, &bad_filter),
131
			LZMA_PROG_ERROR);
132
	bad_filter.id = LZMA_FILTER_RESERVED_START;
133
	assert_lzma_ret(lzma_filter_flags_size(&size, &bad_filter),
134
			LZMA_PROG_ERROR);
135
#endif
58
}
136
}
59
137
60
138
61
static bool
139
// Helper function for test_lzma_filter_flags_encode.
62
decode(uint32_t known_size)
140
// The should_encode parameter represents if the encoding operation
141
// is expected to fail.
142
// Avoid data -> encode -> decode -> compare to data.
143
// Instead create expected encoding and compare to result from
144
// lzma_filter_flags_encode.
145
// Filter Flags in .xz are encoded as:
146
// |Filter ID (VLI)|Size of Properties (VLI)|Filter Properties|
147
#if defined(HAVE_ENCODERS) && defined(HAVE_DECODERS)
148
static void
149
verify_filter_flags_encode(lzma_filter *filter, bool should_encode)
63
{
150
{
64
	if (decode_ret(known_size, LZMA_OK))
151
	uint32_t size = 0;
65
		return true;
66
152
67
	if (known_flags.id != decoded_flags.id)
153
	// First calculate the size of Filter Flags to know how much
68
		return true;
154
	// memory to allocate to hold the encoded Filter Flags
155
	assert_lzma_ret(lzma_filter_flags_size(&size, filter), LZMA_OK);
156
	uint8_t *encoded_out = tuktest_malloc(size * sizeof(uint8_t));
157
	size_t out_pos = 0;
158
	if (!should_encode) {
159
		assert_false(lzma_filter_flags_encode(filter, encoded_out,
160
				&out_pos, size) == LZMA_OK);
161
		return;
162
	}
69
163
70
	return false;
164
	// Next encode the Filter Flags for the provided filter
165
	assert_lzma_ret(lzma_filter_flags_encode(filter, encoded_out,
166
			&out_pos, size), LZMA_OK);
167
	assert_uint_eq(size, out_pos);
168
169
	// Next decode the VLI for the Filter ID and verify it matches
170
	// the expected Filter ID
171
	size_t filter_id_vli_size = 0;
172
	lzma_vli filter_id = 0;
173
	assert_lzma_ret(lzma_vli_decode(&filter_id, NULL, encoded_out,
174
			&filter_id_vli_size, size), LZMA_OK);
175
	assert_uint_eq(filter->id, filter_id);
176
177
	// Next decode the Size of Properites and ensure it equals
178
	// the expected size.
179
	// Expected size should be:
180
	// total filter flag length - size of filter id VLI + size of
181
	//                            property size VLI
182
	// Not verifying the contents of Filter Properties since
183
	// that belongs in a different test
184
	size_t size_of_properties_vli_size = 0;
185
	lzma_vli size_of_properties = 0;
186
	assert_lzma_ret(lzma_vli_decode(&size_of_properties, NULL,
187
			encoded_out + filter_id_vli_size,
188
			&size_of_properties_vli_size, size), LZMA_OK);
189
	assert_uint_eq(size - (size_of_properties_vli_size +
190
			filter_id_vli_size), size_of_properties);
71
}
191
}
192
#endif
72
193
73
194
74
#if defined(HAVE_ENCODER_X86) && defined(HAVE_DECODER_X86)
75
static void
195
static void
76
test_bcj(void)
196
test_lzma_filter_flags_encode(void)
77
{
197
{
78
	// Test 1
198
#if !defined(HAVE_ENCODERS) || !defined(HAVE_DECODERS)
79
	known_flags.id = LZMA_FILTER_X86;
199
	assert_skip("Encoder or decoder support disabled");
80
	known_flags.options = NULL;
200
#else
201
	// No test for LZMA1 since the .xz format does not support LZMA1
202
	// and so the flags cannot be encoded for that filter
203
	if (lzma_filter_encoder_is_supported(LZMA_FILTER_LZMA2)) {
204
		// Test with NULL options that should fail
205
		lzma_options_lzma *options = lzma2_filter.options;
206
		lzma2_filter.options = NULL;
207
		verify_filter_flags_encode(&lzma2_filter, false);
81
208
82
	expect(!encode(2));
209
		// Place options back in the filter, and test should pass
83
	expect(!decode(2));
210
		lzma2_filter.options = options;
84
	expect(decoded_flags.options == NULL);
211
		verify_filter_flags_encode(&lzma2_filter, true);
212
	}
85
213
86
	// Test 2
214
	// NOTE: Many BCJ filters require that start_offset is a multiple
87
	lzma_options_bcj options;
215
	// of some power of two. The Filter Flags encoder and decoder don't
88
	options.start_offset = 0;
216
	// completely validate the options and thus 257 passes the tests
89
	known_flags.options = &options;
217
	// with all BCJ filters. It would be caught when initializing
90
	expect(!encode(2));
218
	// a filter chain encoder or decoder.
91
	expect(!decode(2));
219
	lzma_options_bcj bcj_options = {
92
	expect(decoded_flags.options == NULL);
220
		.start_offset = 257
221
	};
93
222
94
	// Test 3
223
	const uint32_t bcj_array_size = ARRAY_SIZE(bcj_filters_encoders);
95
	options.start_offset = 123456;
224
	for (uint32_t i = 0; i < bcj_array_size; i++) {
96
	known_flags.options = &options;
225
		// NULL options should pass for bcj filters
97
	expect(!encode(6));
226
		verify_filter_flags_encode(&bcj_filters_encoders[i], true);
98
	expect(!decode(6));
227
		lzma_filter bcj_with_options = {
99
	expect(decoded_flags.options != NULL);
228
				bcj_filters_encoders[i].id, &bcj_options };
229
		verify_filter_flags_encode(&bcj_with_options, true);
230
	}
100
231
101
	lzma_options_bcj *decoded = decoded_flags.options;
232
	if (lzma_filter_encoder_is_supported(LZMA_FILTER_DELTA)) {
102
	expect(decoded->start_offset == options.start_offset);
233
		lzma_options_delta delta_opts_below_min = {
234
			.type = LZMA_DELTA_TYPE_BYTE,
235
			.dist = LZMA_DELTA_DIST_MIN - 1
236
		};
103
237
104
	free(decoded);
238
		lzma_options_delta delta_opts_above_max = {
105
}
239
			.type = LZMA_DELTA_TYPE_BYTE,
106
#endif
240
			.dist = LZMA_DELTA_DIST_MAX + 1
241
		};
107
242
243
		verify_filter_flags_encode(&delta_filter, true);
108
244
109
#if defined(HAVE_ENCODER_DELTA) && defined(HAVE_DECODER_DELTA)
245
		lzma_filter delta_filter_bad_options = {
110
static void
246
				LZMA_FILTER_DELTA, &delta_opts_below_min };
111
test_delta(void)
112
{
113
	// Test 1
114
	known_flags.id = LZMA_FILTER_DELTA;
115
	known_flags.options = NULL;
116
	expect(encode(99));
117
247
118
	// Test 2
248
		// Next test error case using minimum - 1 delta distance
119
	lzma_options_delta options = {
249
		verify_filter_flags_encode(&delta_filter_bad_options, false);
120
		.type = LZMA_DELTA_TYPE_BYTE,
121
		.dist = 0
122
	};
123
	known_flags.options = &options;
124
	expect(encode(99));
125
250
126
	// Test 3
251
		// Next test error case using maximum + 1 delta distance
127
	options.dist = LZMA_DELTA_DIST_MIN;
252
		delta_filter_bad_options.options = &delta_opts_above_max;
128
	expect(!encode(3));
253
		verify_filter_flags_encode(&delta_filter_bad_options, false);
129
	expect(!decode(3));
130
	expect(((lzma_options_delta *)(decoded_flags.options))->dist
131
			== options.dist);
132
254
133
	free(decoded_flags.options);
255
		// Next test NULL case
256
		delta_filter_bad_options.options = NULL;
257
		verify_filter_flags_encode(&delta_filter_bad_options, false);
258
	}
134
259
135
	// Test 4
260
	// Test expected failing cases
136
	options.dist = LZMA_DELTA_DIST_MAX;
261
	lzma_filter bad_filter = { LZMA_FILTER_RESERVED_START, NULL };
137
	expect(!encode(3));
262
	size_t out_pos = 0;
138
	expect(!decode(3));
263
	size_t out_size = LZMA_BLOCK_HEADER_SIZE_MAX;
139
	expect(((lzma_options_delta *)(decoded_flags.options))->dist
264
	uint8_t out[LZMA_BLOCK_HEADER_SIZE_MAX];
140
			== options.dist);
141
265
142
	free(decoded_flags.options);
143
266
144
	// Test 5
267
	// Filter ID outside of valid range
145
	options.dist = LZMA_DELTA_DIST_MAX + 1;
268
	assert_lzma_ret(lzma_filter_flags_encode(&bad_filter, out, &out_pos,
146
	expect(encode(99));
269
			out_size), LZMA_PROG_ERROR);
147
}
270
	out_pos = 0;
271
	bad_filter.id = LZMA_VLI_MAX + 1;
272
	assert_lzma_ret(lzma_filter_flags_encode(&bad_filter, out, &out_pos,
273
			out_size), LZMA_PROG_ERROR);
274
	out_pos = 0;
275
276
	// Invalid Filter ID
277
	bad_filter.id = 2;
278
	assert_lzma_ret(lzma_filter_flags_encode(&bad_filter, out, &out_pos,
279
			out_size), LZMA_OPTIONS_ERROR);
280
	out_pos = 0;
281
282
	// Out size too small
283
	if (lzma_filter_encoder_is_supported(LZMA_FILTER_LZMA2)) {
284
		uint32_t bad_size = 0;
285
286
		// First test with 0 output size
287
		assert_lzma_ret(lzma_filter_flags_encode(
288
				&lzma2_filter, out, &out_pos, 0),
289
				LZMA_PROG_ERROR);
290
291
		// Next calculate the size needed to encode and
292
		// use less than that
293
		assert_lzma_ret(lzma_filter_flags_size(&bad_size,
294
				&lzma2_filter), LZMA_OK);
295
296
		assert_lzma_ret(lzma_filter_flags_encode(
297
				&lzma2_filter, out, &out_pos,
298
				bad_size - 1), LZMA_PROG_ERROR);
299
		out_pos = 0;
300
	}
301
302
	// Invalid options
303
	if (lzma_filter_encoder_is_supported(LZMA_FILTER_DELTA)) {
304
		bad_filter.id = LZMA_FILTER_DELTA;
305
306
		// First test with NULL options
307
		assert_lzma_ret(lzma_filter_flags_encode(&bad_filter, out,
308
				&out_pos, out_size), LZMA_PROG_ERROR);
309
		out_pos = 0;
310
311
		// Next test with invalid options
312
		lzma_options_delta bad_options = {
313
			.dist = LZMA_DELTA_DIST_MAX + 1,
314
			.type = LZMA_DELTA_TYPE_BYTE
315
		};
316
		bad_filter.options = &bad_options;
317
318
		assert_lzma_ret(lzma_filter_flags_encode(&bad_filter, out,
319
				&out_pos, out_size), LZMA_PROG_ERROR);
320
	}
148
#endif
321
#endif
322
}
149
323
150
/*
324
151
#ifdef HAVE_FILTER_LZMA
325
// Helper function for test_lzma_filter_flags_decode.
326
// Encodes the filter_in without using lzma_filter_flags_encode.
327
// Leaves the specific assertions of filter_out options to the caller
328
// because it is agnostic to the type of options used in the call
329
#if defined(HAVE_ENCODERS) && defined(HAVE_DECODERS)
152
static void
330
static void
153
validate_lzma(void)
331
verify_filter_flags_decode(lzma_filter *filter_in, lzma_filter *filter_out)
154
{
332
{
155
	const lzma_options_lzma *known = known_flags.options;
333
	uint32_t total_size = 0;
156
	const lzma_options_lzma *decoded = decoded_flags.options;
157
334
158
	expect(known->dictionary_size <= decoded->dictionary_size);
335
	assert_lzma_ret(lzma_filter_flags_size(&total_size, filter_in),
336
			LZMA_OK);
337
	assert_uint(total_size, >, 0);
338
	uint8_t *filter_flag_buffer = tuktest_malloc(total_size);
159
339
160
	if (known->dictionary_size == 1)
340
	uint32_t properties_size = 0;
161
		expect(decoded->dictionary_size == 1);
341
	size_t out_pos = 0;
162
	else
342
	size_t in_pos = 0;
163
		expect(known->dictionary_size + known->dictionary_size / 2
343
	assert_lzma_ret(lzma_properties_size(&properties_size, filter_in),
164
				> decoded->dictionary_size);
344
			LZMA_OK);
165
345
	assert_lzma_ret(lzma_vli_encode(filter_in->id, NULL,
166
	expect(known->literal_context_bits == decoded->literal_context_bits);
346
			filter_flag_buffer, &out_pos, total_size), LZMA_OK);
167
	expect(known->literal_pos_bits == decoded->literal_pos_bits);
347
	assert_lzma_ret(lzma_vli_encode(properties_size, NULL,
168
	expect(known->pos_bits == decoded->pos_bits);
348
			filter_flag_buffer, &out_pos, total_size),
349
			LZMA_OK);
350
	assert_lzma_ret(lzma_properties_encode(filter_in,
351
			filter_flag_buffer + out_pos), LZMA_OK);
352
	assert_lzma_ret(lzma_filter_flags_decode(filter_out, NULL,
353
			filter_flag_buffer, &in_pos, total_size),
354
			LZMA_OK);
355
	assert_uint_eq(filter_in->id, filter_out->id);
169
}
356
}
357
#endif
170
358
171
359
172
static void
360
static void
173
test_lzma(void)
361
test_lzma_filter_flags_decode(void)
174
{
362
{
175
	// Test 1
363
#if !defined(HAVE_ENCODERS) || !defined(HAVE_DECODERS)
176
	known_flags.id = LZMA_FILTER_LZMA1;
364
	assert_skip("Encoder or decoder support disabled");
177
	known_flags.options = NULL;
365
#else
178
	expect(encode(99));
366
	// For each filter, only run the decoder test if both the encoder
367
	// and decoder are enabled. This is because verify_filter_flags_decode
368
	// uses lzma_filter_flags_size which requires the encoder.
369
	if (lzma_filter_decoder_is_supported(LZMA_FILTER_LZMA2) &&
370
			lzma_filter_encoder_is_supported(LZMA_FILTER_LZMA2)) {
371
		lzma_filter lzma2_decoded = { LZMA_FILTER_LZMA2, NULL };
179
372
180
	// Test 2
373
		verify_filter_flags_decode(&lzma2_filter, &lzma2_decoded);
181
	lzma_options_lzma options = {
182
		.dictionary_size = 0,
183
		.literal_context_bits = 0,
184
		.literal_pos_bits = 0,
185
		.pos_bits = 0,
186
		.preset_dictionary = NULL,
187
		.preset_dictionary_size = 0,
188
		.mode = LZMA_MODE_INVALID,
189
		.fast_bytes = 0,
190
		.match_finder = LZMA_MF_INVALID,
191
		.match_finder_cycles = 0,
192
	};
193
374
194
	// Test 3 (empty dictionary not allowed)
375
		lzma_options_lzma *expected = lzma2_filter.options;
195
	known_flags.options = &options;
376
		lzma_options_lzma *decoded = lzma2_decoded.options;
196
	expect(encode(99));
197
377
198
	// Test 4 (brute-force test some valid dictionary sizes)
378
		// Only the dictionary size is encoded and decoded
199
	options.dictionary_size = LZMA_DICTIONARY_SIZE_MIN;
379
		// so only compare those
200
	while (options.dictionary_size != LZMA_DICTIONARY_SIZE_MAX) {
380
		assert_uint_eq(decoded->dict_size, expected->dict_size);
201
		if (++options.dictionary_size == 5000)
202
			options.dictionary_size = LZMA_DICTIONARY_SIZE_MAX - 5;
203
381
204
		expect(!encode(4));
382
		// The decoded options must be freed by the caller
205
		expect(!decode(4));
383
		free(decoded);
206
		validate_lzma();
207
208
		free(decoded_flags.options);
209
	}
384
	}
210
385
211
	// Test 5 (too big dictionary size)
386
	const uint32_t bcj_array_size = ARRAY_SIZE(bcj_filters_decoders);
212
	options.dictionary_size = LZMA_DICTIONARY_SIZE_MAX + 1;
387
	for (uint32_t i = 0; i < bcj_array_size; i++) {
213
	expect(encode(99));
388
		if (lzma_filter_encoder_is_supported(
389
				bcj_filters_decoders[i].id)) {
390
			lzma_filter bcj_decoded = {
391
					bcj_filters_decoders[i].id, NULL };
214
392
215
	// Test 6 (brute-force test lc/lp/pb)
393
			lzma_filter bcj_encoded = {
216
	options.dictionary_size = LZMA_DICTIONARY_SIZE_MIN;
394
					bcj_filters_decoders[i].id, NULL };
217
	for (uint32_t lc = LZMA_LITERAL_CONTEXT_BITS_MIN;
218
			lc <= LZMA_LITERAL_CONTEXT_BITS_MAX; ++lc) {
219
		for (uint32_t lp = LZMA_LITERAL_POS_BITS_MIN;
220
				lp <= LZMA_LITERAL_POS_BITS_MAX; ++lp) {
221
			for (uint32_t pb = LZMA_POS_BITS_MIN;
222
					pb <= LZMA_POS_BITS_MAX; ++pb) {
223
				if (lc + lp > LZMA_LITERAL_BITS_MAX)
224
					continue;
225
395
226
				options.literal_context_bits = lc;
396
			// First test without options
227
				options.literal_pos_bits = lp;
397
			verify_filter_flags_decode(&bcj_encoded,
228
				options.pos_bits = pb;
398
					&bcj_decoded);
399
			assert_true(bcj_decoded.options == NULL);
229
400
230
				expect(!encode(4));
401
			// Next test with offset
231
				expect(!decode(4));
402
			lzma_options_bcj options = {
232
				validate_lzma();
403
				.start_offset = 257
404
			};
233
405
234
				free(decoded_flags.options);
406
			bcj_encoded.options = &options;
235
			}
407
			verify_filter_flags_decode(&bcj_encoded,
408
					&bcj_decoded);
409
			lzma_options_bcj *decoded_opts = bcj_decoded.options;
410
			assert_uint_eq(decoded_opts->start_offset,
411
					options.start_offset);
412
			free(decoded_opts);
236
		}
413
		}
237
	}
414
	}
238
}
415
416
	if (lzma_filter_decoder_is_supported(LZMA_FILTER_DELTA) &&
417
			lzma_filter_encoder_is_supported(LZMA_FILTER_DELTA)) {
418
		lzma_filter delta_decoded = { LZMA_FILTER_DELTA, NULL };
419
420
		verify_filter_flags_decode(&delta_filter, &delta_decoded);
421
		lzma_options_delta *expected = delta_filter.options;
422
		lzma_options_delta *decoded = delta_decoded.options;
423
		assert_uint_eq(expected->dist, decoded->dist);
424
		assert_uint_eq(expected->type, decoded->type);
425
426
		free(decoded);
427
	}
428
429
	// Test expected failing cases
430
	uint8_t bad_encoded_filter[LZMA_BLOCK_HEADER_SIZE_MAX];
431
	lzma_filter bad_filter;
432
433
	// Filter ID outside of valid range
434
	lzma_vli bad_filter_id = LZMA_FILTER_RESERVED_START;
435
	size_t bad_encoded_out_pos = 0;
436
	size_t in_pos = 0;
437
438
	assert_lzma_ret(lzma_vli_encode(bad_filter_id, NULL,
439
			bad_encoded_filter, &bad_encoded_out_pos,
440
			LZMA_BLOCK_HEADER_SIZE_MAX), LZMA_OK);
441
442
	assert_lzma_ret(lzma_filter_flags_decode(&bad_filter, NULL,
443
			bad_encoded_filter, &in_pos,
444
			LZMA_BLOCK_HEADER_SIZE_MAX), LZMA_DATA_ERROR);
445
446
	bad_encoded_out_pos = 0;
447
	in_pos = 0;
448
449
	// Invalid Filter ID
450
	bad_filter_id = 2;
451
	bad_encoded_out_pos = 0;
452
	in_pos = 0;
453
454
	assert_lzma_ret(lzma_vli_encode(bad_filter_id, NULL,
455
			bad_encoded_filter, &bad_encoded_out_pos,
456
			LZMA_BLOCK_HEADER_SIZE_MAX), LZMA_OK);
457
458
	// Next encode Size of Properties with the value of 0
459
	assert_lzma_ret(lzma_vli_encode(0, NULL,
460
			bad_encoded_filter, &bad_encoded_out_pos,
461
			LZMA_BLOCK_HEADER_SIZE_MAX), LZMA_OK);
462
463
	// Decode should fail on bad Filter ID
464
	assert_lzma_ret(lzma_filter_flags_decode(&bad_filter, NULL,
465
			bad_encoded_filter, &in_pos,
466
			LZMA_BLOCK_HEADER_SIZE_MAX), LZMA_OPTIONS_ERROR);
467
	bad_encoded_out_pos = 0;
468
	in_pos = 0;
469
470
	// Outsize too small
471
	// Encode the LZMA2 filter normally, but then set
472
	// the out size when decoding as too small
473
	if (lzma_filter_encoder_is_supported(LZMA_FILTER_LZMA2) &&
474
			lzma_filter_decoder_is_supported(LZMA_FILTER_LZMA2)) {
475
		uint32_t filter_flag_size = 0;
476
		assert_lzma_ret(lzma_filter_flags_size(&filter_flag_size,
477
				&lzma2_filter), LZMA_OK);
478
479
		assert_lzma_ret(lzma_filter_flags_encode(&lzma2_filter,
480
				bad_encoded_filter, &bad_encoded_out_pos,
481
				LZMA_BLOCK_HEADER_SIZE_MAX), LZMA_OK);
482
483
		assert_lzma_ret(lzma_filter_flags_decode(&bad_filter, NULL,
484
				bad_encoded_filter, &in_pos,
485
				filter_flag_size - 1), LZMA_DATA_ERROR);
486
	}
239
#endif
487
#endif
240
*/
488
}
241
489
242
int
490
243
main(void)
491
extern int
492
main(int argc, char **argv)
244
{
493
{
245
#if defined(HAVE_ENCODER_X86) && defined(HAVE_DECODER_X86)
494
	tuktest_start(argc, argv);
246
	test_bcj();
247
#endif
248
#if defined(HAVE_ENCODER_DELTA) && defined(HAVE_DECODER_DELTA)
249
	test_delta();
250
#endif
251
// #ifdef HAVE_FILTER_LZMA
252
// 	test_lzma();
253
// #endif
254
495
255
	lzma_end(&strm);
496
#ifdef HAVE_ENCODERS
497
	// Only init filter options if encoder is supported because decoder
498
	// tests requires encoder support, so the decoder tests will only
499
	// run if for a given filter both the encoder and decoder are enabled.
500
	if (lzma_filter_encoder_is_supported(LZMA_FILTER_LZMA1)) {
501
		lzma_options_lzma *options = tuktest_malloc(
502
				sizeof(lzma_options_lzma));
503
		lzma_lzma_preset(options, LZMA_PRESET_DEFAULT);
504
		lzma1_filter.options = options;
505
	}
256
506
257
	return 0;
507
	if (lzma_filter_encoder_is_supported(LZMA_FILTER_LZMA2)) {
508
		lzma_options_lzma *options = tuktest_malloc(
509
				sizeof(lzma_options_lzma));
510
		lzma_lzma_preset(options, LZMA_PRESET_DEFAULT);
511
		lzma2_filter.options = options;
512
	}
513
514
	if (lzma_filter_encoder_is_supported(LZMA_FILTER_DELTA)) {
515
		lzma_options_delta *options = tuktest_malloc(
516
				sizeof(lzma_options_delta));
517
		options->dist = LZMA_DELTA_DIST_MIN;
518
		options->type = LZMA_DELTA_TYPE_BYTE;
519
		delta_filter.options = options;
520
	}
521
#endif
522
523
	tuktest_run(test_lzma_filter_flags_size);
524
	tuktest_run(test_lzma_filter_flags_encode);
525
	tuktest_run(test_lzma_filter_flags_decode);
526
	return tuktest_end();
258
}
527
}
(-)xz-5.2.5/tests/test_index.c (-464 / +1459 lines)
Lines 2-10 Link Here
2
//
2
//
3
/// \file       test_index.c
3
/// \file       test_index.c
4
/// \brief      Tests functions handling the lzma_index structure
4
/// \brief      Tests functions handling the lzma_index structure
5
///
6
/// \todo       Implement tests for lzma_file_info_decoder
5
//
7
//
6
//  Author:     Lasse Collin
8
//  Authors:    Jia Tan
9
//              Lasse Collin
7
//
10
//
11
//
8
//  This file has been put into the public domain.
12
//  This file has been put into the public domain.
9
//  You can do whatever you want with this file.
13
//  You can do whatever you want with this file.
10
//
14
//
Lines 12-635 Link Here
12
16
13
#include "tests.h"
17
#include "tests.h"
14
18
15
#define MEMLIMIT (LZMA_VLI_C(1) << 20)
19
// liblzma internal header file needed for:
20
// UNPADDED_SIZE_MIN
21
// UNPADDED_SIZE_MAX
22
// vli_ceil4
23
#include "common/index.h"
16
24
17
#define SMALL_COUNT 3
18
#define BIG_COUNT 5555
19
25
26
#define MEMLIMIT (UINT64_C(1) << 20)
20
27
21
static lzma_index *
28
static uint8_t *decode_buffer;
22
create_empty(void)
29
static size_t decode_buffer_size = 0;
30
static lzma_index *decode_test_index;
31
32
33
static void
34
test_lzma_index_memusage(void)
23
{
35
{
24
	lzma_index *i = lzma_index_init(NULL);
36
	// The return value from lzma_index_memusage is an approximation
25
	expect(i != NULL);
37
	// of the amount of memory needed for lzma_index for a given
26
	return i;
38
	// amount of Streams and Blocks. It will be an upperbound,
39
	// so this test will mostly sanity check and error check the
40
	// function.
41
42
	// The maximum number of Streams should be UINT32_MAX in the
43
	// current implementation even though the parameter is lzma_vli.
44
	assert_uint_eq(lzma_index_memusage((lzma_vli)UINT32_MAX + 1, 1),
45
			UINT64_MAX);
46
47
	// The maximum number of Blocks should be LZMA_VLI_MAX
48
	assert_uint_eq(lzma_index_memusage(1, LZMA_VLI_MAX), UINT64_MAX);
49
50
	// Number of Streams must be non-zero
51
	assert_uint_eq(lzma_index_memusage(0, 1), UINT64_MAX);
52
53
	// Number of Blocks CAN be zero
54
	assert_uint(lzma_index_memusage(1, 0), !=, UINT64_MAX);
55
56
	// Arbitrary values for Stream and Block should work without error
57
	// and should always increase
58
	uint64_t previous = 1;
59
	lzma_vli streams = 1;
60
	lzma_vli blocks = 1;
61
62
	// Test 100 different increasing values for Streams and Block
63
	for (int i = 0; i < 100; i++) {
64
		uint64_t current = lzma_index_memusage(streams, blocks);
65
		assert_uint(current, >, previous);
66
		previous = current;
67
		streams += 29;
68
		blocks += 107;
69
	}
70
71
	// Force integer overflow in calculation (should result in an error)
72
	assert_uint_eq(lzma_index_memusage(UINT32_MAX, LZMA_VLI_MAX),
73
			UINT64_MAX);
27
}
74
}
28
75
29
76
30
static lzma_index *
77
static void
31
create_small(void)
78
test_lzma_index_memused(void)
32
{
79
{
33
	lzma_index *i = lzma_index_init(NULL);
80
	// Very similar to test_lzma_index_memusage above since
34
	expect(i != NULL);
81
	// lzma_index_memused is essentially a wrapper for
35
	expect(lzma_index_append(i, NULL, 101, 555) == LZMA_OK);
82
	// lzma_index_memusage
36
	expect(lzma_index_append(i, NULL, 602, 777) == LZMA_OK);
83
	lzma_index *idx = lzma_index_init(NULL);
37
	expect(lzma_index_append(i, NULL, 804, 999) == LZMA_OK);
84
	assert_true(idx != NULL);
38
	return i;
85
86
	// Test with empty Index
87
	assert_uint(lzma_index_memused(idx), <, UINT64_MAX);
88
89
	// Append small Blocks and then test again (should pass).
90
	for (lzma_vli i = 0; i < 10; i++)
91
		assert_lzma_ret(lzma_index_append(idx, NULL,
92
				UNPADDED_SIZE_MIN, 1), LZMA_OK);
93
94
	assert_uint(lzma_index_memused(idx), <, UINT64_MAX);
95
96
	lzma_index_end(idx, NULL);
39
}
97
}
40
98
41
99
42
static lzma_index *
100
static void
43
create_big(void)
101
test_lzma_index_append(void)
44
{
102
{
45
	lzma_index *i = lzma_index_init(NULL);
103
	// Basic input-ouput test done here.
46
	expect(i != NULL);
104
	// Less trivial tests for this function are done throughout
105
	// other tests.
47
106
48
	lzma_vli total_size = 0;
107
	// First test with NULL lzma_index
49
	lzma_vli uncompressed_size = 0;
108
	assert_lzma_ret(lzma_index_append(NULL, NULL, UNPADDED_SIZE_MIN,
109
			1), LZMA_PROG_ERROR);
50
110
51
	// Add pseudo-random sizes (but always the same size values).
111
	lzma_index *idx = lzma_index_init(NULL);
52
	uint32_t n = 11;
112
	assert_true(idx != NULL);
53
	for (size_t j = 0; j < BIG_COUNT; ++j) {
54
		n = 7019 * n + 7607;
55
		const uint32_t t = n * 3011;
56
		expect(lzma_index_append(i, NULL, t, n) == LZMA_OK);
57
		total_size += (t + 3) & ~LZMA_VLI_C(3);
58
		uncompressed_size += n;
59
	}
60
113
61
	expect(lzma_index_block_count(i) == BIG_COUNT);
114
	// Test with invalid Unpadded Size
62
	expect(lzma_index_total_size(i) == total_size);
115
	assert_lzma_ret(lzma_index_append(idx, NULL,
63
	expect(lzma_index_uncompressed_size(i) == uncompressed_size);
116
			UNPADDED_SIZE_MIN - 1, 1), LZMA_PROG_ERROR);
64
	expect(lzma_index_total_size(i) + lzma_index_size(i)
117
	assert_lzma_ret(lzma_index_append(idx, NULL,
65
				+ 2 * LZMA_STREAM_HEADER_SIZE
118
			UNPADDED_SIZE_MAX + 1, 1), LZMA_PROG_ERROR);
66
			== lzma_index_stream_size(i));
67
119
68
	return i;
120
	// Test with invalid Uncompressed Size
121
	assert_lzma_ret(lzma_index_append(idx, NULL,
122
			UNPADDED_SIZE_MAX, LZMA_VLI_MAX + 1),
123
			LZMA_PROG_ERROR);
124
125
	// Test expected successful Block appends
126
	assert_lzma_ret(lzma_index_append(idx, NULL, UNPADDED_SIZE_MIN,
127
			1), LZMA_OK);
128
	assert_lzma_ret(lzma_index_append(idx, NULL,
129
			UNPADDED_SIZE_MIN * 2,
130
			2), LZMA_OK);
131
	assert_lzma_ret(lzma_index_append(idx, NULL,
132
			UNPADDED_SIZE_MIN * 3,
133
			3), LZMA_OK);
134
135
	lzma_index_end(idx, NULL);
136
137
	// Test uncompressed .xz file size growing too large.
138
	// Should result in LZMA_DATA_ERROR.
139
	idx = lzma_index_init(NULL);
140
141
	assert_lzma_ret(lzma_index_append(idx, NULL, UNPADDED_SIZE_MAX,
142
			1), LZMA_DATA_ERROR);
143
144
	// Test compressed size growing too large.
145
	// Should result in LZMA_DATA_ERROR.
146
	assert_lzma_ret(lzma_index_append(idx, NULL,
147
			UNPADDED_SIZE_MIN, LZMA_VLI_MAX), LZMA_OK);
148
	assert_lzma_ret(lzma_index_append(idx, NULL,
149
			UNPADDED_SIZE_MIN, 1), LZMA_DATA_ERROR);
150
151
	// Currently not testing for error case when the size of the Index
152
	// grows too large to be stored. This was not practical to test for
153
	// since too many Blocks needed to be created to cause this.
154
155
	lzma_index_end(idx, NULL);
69
}
156
}
70
157
71
158
72
static bool
159
static void
73
is_equal(const lzma_index *a, const lzma_index *b)
160
test_lzma_index_stream_flags(void)
74
{
161
{
75
	// Compare only the Stream and Block sizes and offsets.
162
	// Only trivial tests done here testing for basic functionality.
76
	lzma_index_iter ra, rb;
163
	// More in-depth testing for this function will be done in
77
	lzma_index_iter_init(&ra, a);
164
	// test_lzma_index_checks.
78
	lzma_index_iter_init(&rb, b);
79
165
80
	while (true) {
166
	// Testing for NULL inputs
81
		bool reta = lzma_index_iter_next(&ra, LZMA_INDEX_ITER_ANY);
167
	assert_lzma_ret(lzma_index_stream_flags(NULL, NULL),
82
		bool retb = lzma_index_iter_next(&rb, LZMA_INDEX_ITER_ANY);
168
			LZMA_PROG_ERROR);
83
		if (reta)
84
			return !(reta ^ retb);
85
169
86
		if (ra.stream.number != rb.stream.number
170
	lzma_index *idx = lzma_index_init(NULL);
87
				|| ra.stream.block_count
171
	assert_true(idx != NULL);
88
					!= rb.stream.block_count
89
				|| ra.stream.compressed_offset
90
					!= rb.stream.compressed_offset
91
				|| ra.stream.uncompressed_offset
92
					!= rb.stream.uncompressed_offset
93
				|| ra.stream.compressed_size
94
					!= rb.stream.compressed_size
95
				|| ra.stream.uncompressed_size
96
					!= rb.stream.uncompressed_size
97
				|| ra.stream.padding
98
					!= rb.stream.padding)
99
			return false;
100
172
101
		if (ra.stream.block_count == 0)
173
	assert_lzma_ret(lzma_index_stream_flags(idx, NULL),
102
			continue;
174
			LZMA_PROG_ERROR);
103
175
104
		if (ra.block.number_in_file != rb.block.number_in_file
176
	lzma_stream_flags stream_flags = {
105
				|| ra.block.compressed_file_offset
177
		.version = 0,
106
					!= rb.block.compressed_file_offset
178
		.backward_size = LZMA_BACKWARD_SIZE_MIN,
107
				|| ra.block.uncompressed_file_offset
179
		.check = LZMA_CHECK_CRC32
108
					!= rb.block.uncompressed_file_offset
180
	};
109
				|| ra.block.number_in_stream
181
110
					!= rb.block.number_in_stream
182
	assert_lzma_ret(lzma_index_stream_flags(idx, &stream_flags),
111
				|| ra.block.compressed_stream_offset
183
			LZMA_OK);
112
					!= rb.block.compressed_stream_offset
184
113
				|| ra.block.uncompressed_stream_offset
185
	lzma_index_end(idx, NULL);
114
					!= rb.block.uncompressed_stream_offset
186
}
115
				|| ra.block.uncompressed_size
187
116
					!= rb.block.uncompressed_size
188
117
				|| ra.block.unpadded_size
189
static void
118
					!= rb.block.unpadded_size
190
test_lzma_index_checks(void)
119
				|| ra.block.total_size
191
{
120
					!= rb.block.total_size)
192
	// Tests should still pass, even if some of the check types
121
			return false;
193
	// are disabled.
194
	lzma_index *idx = lzma_index_init(NULL);
195
	assert_true(idx != NULL);
196
197
	lzma_stream_flags stream_flags = {
198
		.version = 0,
199
		.backward_size = LZMA_BACKWARD_SIZE_MIN,
200
		.check = LZMA_CHECK_NONE
201
	};
202
203
	// First set the check type to None
204
	assert_lzma_ret(lzma_index_stream_flags(idx, &stream_flags),
205
			LZMA_OK);
206
	assert_uint_eq(lzma_index_checks(idx),
207
			UINT32_C(1) << LZMA_CHECK_NONE);
208
209
	// Set the check type to CRC32 and repeat
210
	stream_flags.check = LZMA_CHECK_CRC32;
211
	assert_lzma_ret(lzma_index_stream_flags(idx, &stream_flags),
212
			LZMA_OK);
213
	assert_uint_eq(lzma_index_checks(idx),
214
			UINT32_C(1) << LZMA_CHECK_CRC32);
215
216
	// Set the check type to CRC64 and repeat
217
	stream_flags.check = LZMA_CHECK_CRC64;
218
	assert_lzma_ret(lzma_index_stream_flags(idx, &stream_flags),
219
			LZMA_OK);
220
	assert_uint_eq(lzma_index_checks(idx),
221
			UINT32_C(1) << LZMA_CHECK_CRC64);
222
223
	// Set the check type to SHA256 and repeat
224
	stream_flags.check = LZMA_CHECK_SHA256;
225
	assert_lzma_ret(lzma_index_stream_flags(idx, &stream_flags),
226
			LZMA_OK);
227
	assert_uint_eq(lzma_index_checks(idx),
228
			UINT32_C(1) << LZMA_CHECK_SHA256);
229
230
	// Create second lzma_index and cat to first
231
	lzma_index *second = lzma_index_init(NULL);
232
	assert_true(second != NULL);
233
234
	// Set the check type to CRC32 for the second lzma_index
235
	stream_flags.check = LZMA_CHECK_CRC32;
236
	assert_lzma_ret(lzma_index_stream_flags(second, &stream_flags),
237
			LZMA_OK);
238
239
	assert_uint_eq(lzma_index_checks(second),
240
			UINT32_C(1) << LZMA_CHECK_CRC32);
241
242
	assert_lzma_ret(lzma_index_cat(idx, second, NULL), LZMA_OK);
243
244
	// Index should now have both CRC32 and SHA256
245
	assert_uint_eq(lzma_index_checks(idx),
246
			(UINT32_C(1) << LZMA_CHECK_CRC32) |
247
			(UINT32_C(1) << LZMA_CHECK_SHA256));
248
249
	// Change the check type of the second Stream to SHA256
250
	stream_flags.check = LZMA_CHECK_SHA256;
251
	assert_lzma_ret(lzma_index_stream_flags(idx, &stream_flags),
252
			LZMA_OK);
253
254
	// Index should now have only SHA256
255
	assert_uint_eq(lzma_index_checks(idx),
256
			UINT32_C(1) << LZMA_CHECK_SHA256);
257
258
	// Test with a third Stream
259
	lzma_index *third = lzma_index_init(NULL);
260
	assert_true(third != NULL);
261
262
	stream_flags.check = LZMA_CHECK_CRC64;
263
	assert_lzma_ret(lzma_index_stream_flags(third, &stream_flags),
264
			LZMA_OK);
265
266
	assert_uint_eq(lzma_index_checks(third),
267
			UINT32_C(1) << LZMA_CHECK_CRC64);
268
269
	assert_lzma_ret(lzma_index_cat(idx, third, NULL), LZMA_OK);
270
271
	// Index should now have CRC64 and SHA256
272
	assert_uint_eq(lzma_index_checks(idx),
273
			(UINT32_C(1) << LZMA_CHECK_CRC64) |
274
			(UINT32_C(1) << LZMA_CHECK_SHA256));
275
276
	lzma_index_end(idx, NULL);
277
}
278
279
280
static void
281
test_lzma_index_stream_padding(void)
282
{
283
	// Test NULL lzma_index
284
	assert_lzma_ret(lzma_index_stream_padding(NULL, 0),
285
			LZMA_PROG_ERROR);
286
287
	lzma_index *idx = lzma_index_init(NULL);
288
	assert_true(idx != NULL);
289
290
	// Test Stream Padding not a multiple of 4
291
	assert_lzma_ret(lzma_index_stream_padding(idx, 3),
292
			LZMA_PROG_ERROR);
293
294
	// Test Stream Padding too large
295
	assert_lzma_ret(lzma_index_stream_padding(idx, LZMA_VLI_MAX - 3),
296
			LZMA_DATA_ERROR);
297
298
	// Test Stream Padding valid
299
	assert_lzma_ret(lzma_index_stream_padding(idx, 0x1000),
300
			LZMA_OK);
301
	assert_lzma_ret(lzma_index_stream_padding(idx, 4),
302
			LZMA_OK);
303
	assert_lzma_ret(lzma_index_stream_padding(idx, 0),
304
			LZMA_OK);
305
306
	// Test Stream Padding causing the file size to grow too large
307
	assert_lzma_ret(lzma_index_append(idx, NULL,
308
			LZMA_VLI_MAX - 0x1000, 1), LZMA_OK);
309
	assert_lzma_ret(lzma_index_stream_padding(idx, 0x1000),
310
			LZMA_DATA_ERROR);
311
312
	lzma_index_end(idx, NULL);
313
}
314
315
316
static void
317
test_lzma_index_stream_count(void)
318
{
319
	lzma_index *idx = lzma_index_init(NULL);
320
	assert_true(idx != NULL);
321
322
	assert_uint_eq(lzma_index_stream_count(idx), 1);
323
324
	// Appending Blocks should not change the Stream count value
325
	assert_lzma_ret(lzma_index_append(idx, NULL, UNPADDED_SIZE_MIN,
326
			1), LZMA_OK);
327
328
	assert_uint_eq(lzma_index_stream_count(idx), 1);
329
330
	// Test with multiple Streams
331
	for (uint32_t i = 0; i < 100; i++) {
332
		lzma_index *idx_cat = lzma_index_init(NULL);
333
		assert_true(idx != NULL);
334
		assert_lzma_ret(lzma_index_cat(idx, idx_cat, NULL), LZMA_OK);
335
		assert_uint_eq(lzma_index_stream_count(idx), i + 2);
122
	}
336
	}
337
338
	lzma_index_end(idx, NULL);
123
}
339
}
124
340
125
341
126
static void
342
static void
127
test_equal(void)
343
test_lzma_index_block_count(void)
128
{
344
{
129
	lzma_index *a = create_empty();
345
	lzma_index *idx = lzma_index_init(NULL);
130
	lzma_index *b = create_small();
346
	assert_true(idx != NULL);
131
	lzma_index *c = create_big();
132
	expect(a && b && c);
133
347
134
	expect(is_equal(a, a));
348
	assert_uint_eq(lzma_index_block_count(idx), 0);
135
	expect(is_equal(b, b));
136
	expect(is_equal(c, c));
137
349
138
	expect(!is_equal(a, b));
350
	const uint32_t iterations = 0x1000;
139
	expect(!is_equal(a, c));
351
	for (uint32_t i = 0; i < iterations; i++) {
140
	expect(!is_equal(b, c));
352
		assert_lzma_ret(lzma_index_append(idx, NULL,
353
				UNPADDED_SIZE_MIN, 1), LZMA_OK);
354
		assert_uint_eq(lzma_index_block_count(idx), i + 1);
355
	}
141
356
142
	lzma_index_end(a, NULL);
357
	// Create new lzma_index with a few Blocks
143
	lzma_index_end(b, NULL);
358
	lzma_index *second = lzma_index_init(NULL);
144
	lzma_index_end(c, NULL);
359
	assert_true(second != NULL);
360
361
	assert_lzma_ret(lzma_index_append(second, NULL,
362
			UNPADDED_SIZE_MIN, 1), LZMA_OK);
363
	assert_lzma_ret(lzma_index_append(second, NULL,
364
			UNPADDED_SIZE_MIN, 1), LZMA_OK);
365
	assert_lzma_ret(lzma_index_append(second, NULL,
366
			UNPADDED_SIZE_MIN, 1), LZMA_OK);
367
368
	assert_uint_eq(lzma_index_block_count(second), 3);
369
370
	// Concatenate the lzma_indexes together and the result should have
371
	// the sum of the two individual counts.
372
	assert_lzma_ret(lzma_index_cat(idx, second, NULL), LZMA_OK);
373
	assert_uint_eq(lzma_index_block_count(idx), iterations + 3);
374
375
	assert_lzma_ret(lzma_index_append(idx, NULL,
376
			UNPADDED_SIZE_MIN, 1), LZMA_OK);
377
378
	assert_uint_eq(lzma_index_block_count(idx), iterations + 4);
379
380
	lzma_index_end(idx, NULL);
145
}
381
}
146
382
147
383
148
static void
384
static void
149
test_overflow(void)
385
test_lzma_index_size(void)
150
{
386
{
151
	// Integer overflow tests
387
	lzma_index *idx = lzma_index_init(NULL);
152
	lzma_index *i = create_empty();
388
	assert_true(idx != NULL);
153
389
154
	expect(lzma_index_append(i, NULL, LZMA_VLI_MAX - 5, 1234)
390
	// Base size should be:
155
			== LZMA_DATA_ERROR);
391
	// 1 byte Index Indicator
392
	// 1 byte Number of Records
393
	// 0 bytes Records
394
	// 2 bytes Index Padding
395
	// 4 bytes CRC32
396
	// Total: 8 bytes
397
	assert_uint_eq(lzma_index_size(idx), 8);
156
398
157
	// TODO
399
	assert_lzma_ret(lzma_index_append(idx, NULL,
400
			UNPADDED_SIZE_MIN, 1), LZMA_OK);
158
401
159
	lzma_index_end(i, NULL);
402
	// New size should be:
403
	// 1 byte Index Indicator
404
	// 1 byte Number of Records
405
	// 2 bytes Records
406
	// 0 bytes Index Padding
407
	// 4 bytes CRC32
408
	// Total: 8 bytes
409
	assert_uint_eq(lzma_index_size(idx), 8);
410
411
	assert_lzma_ret(lzma_index_append(idx, NULL,
412
			LZMA_VLI_MAX / 4, LZMA_VLI_MAX / 4), LZMA_OK);
413
414
	// New size should be:
415
	// 1 byte Index Indicator
416
	// 1 byte Number of Records
417
	// 20 bytes Records
418
	// 2 bytes Index Padding
419
	// 4 bytes CRC32
420
	// Total: 28 bytes
421
	assert_uint_eq(lzma_index_size(idx), 28);
422
423
	lzma_index_end(idx, NULL);
160
}
424
}
161
425
162
426
163
static void
427
static void
164
test_copy(const lzma_index *i)
428
test_lzma_index_stream_size(void)
165
{
429
{
166
	lzma_index *d = lzma_index_dup(i, NULL);
430
	lzma_index *idx = lzma_index_init(NULL);
167
	expect(d != NULL);
431
	assert_true(idx != NULL);
168
	expect(is_equal(i, d));
432
169
	lzma_index_end(d, NULL);
433
	// Stream size calculated by:
434
	// Size of Stream Header (12 bytes)
435
	// Size of all Blocks
436
	// Size of the Index
437
	// Size of the Stream Footer (12 bytes)
438
439
	// First test with empty Index
440
	// Stream size should be:
441
	// Size of Stream Header - 12 bytes
442
	// Size of all Blocks - 0 bytes
443
	// Size of Index - 8 bytes
444
	// Size of Stream Footer - 12 bytes
445
	// Total: 32 bytes
446
	assert_uint_eq(lzma_index_stream_size(idx), 32);
447
448
	// Next, append a few Blocks and retest
449
	assert_lzma_ret(lzma_index_append(idx, NULL, 1000, 1), LZMA_OK);
450
	assert_lzma_ret(lzma_index_append(idx, NULL, 1000, 1), LZMA_OK);
451
	assert_lzma_ret(lzma_index_append(idx, NULL, 1000, 1), LZMA_OK);
452
453
	// Stream size should be:
454
	// Size of Stream Header - 12 bytes
455
	// Size of all Blocks - 3000 bytes
456
	// Size of Index - 16 bytes
457
	// Size of Stream Footer - 12 bytes
458
	// Total: 3040 bytes
459
	assert_uint_eq(lzma_index_stream_size(idx), 3040);
460
461
	lzma_index *second = lzma_index_init(NULL);
462
	assert_true(second != NULL);
463
464
	assert_uint_eq(lzma_index_stream_size(second), 32);
465
	assert_lzma_ret(lzma_index_append(second, NULL, 1000, 1), LZMA_OK);
466
467
	// Stream size should be:
468
	// Size of Stream Header - 12 bytes
469
	// Size of all Blocks - 1000 bytes
470
	// Size of Index - 12 bytes
471
	// Size of Stream Footer - 12 bytes
472
	// Total: 1036 bytes
473
	assert_uint_eq(lzma_index_stream_size(second), 1036);
474
475
	assert_lzma_ret(lzma_index_cat(idx, second, NULL), LZMA_OK);
476
477
	// Stream size should be:
478
	// Size of Stream Header - 12 bytes
479
	// Size of all Blocks - 4000 bytes
480
	// Size of Index - 20 bytes
481
	// Size of Stream Footer - 12 bytes
482
	// Total: 4044 bytes
483
	assert_uint_eq(lzma_index_stream_size(idx), 4044);
484
485
	lzma_index_end(idx, NULL);
170
}
486
}
171
487
172
488
173
static void
489
static void
174
test_read(lzma_index *i)
490
test_lzma_index_total_size(void)
175
{
491
{
176
	lzma_index_iter r;
492
	lzma_index *idx = lzma_index_init(NULL);
177
	lzma_index_iter_init(&r, i);
493
	assert_true(idx != NULL);
178
494
179
	// Try twice so we see that rewinding works.
495
	// First test empty lzma_index.
180
	for (size_t j = 0; j < 2; ++j) {
496
	// Result should be 0 since no Blocks have been added.
181
		lzma_vli total_size = 0;
497
	assert_uint_eq(lzma_index_total_size(idx), 0);
182
		lzma_vli uncompressed_size = 0;
183
		lzma_vli stream_offset = LZMA_STREAM_HEADER_SIZE;
184
		lzma_vli uncompressed_offset = 0;
185
		uint32_t count = 0;
186
498
187
		while (!lzma_index_iter_next(&r, LZMA_INDEX_ITER_BLOCK)) {
499
	// Add a few Blocks and retest after each append
188
			++count;
500
	assert_lzma_ret(lzma_index_append(idx, NULL, 1000, 1), LZMA_OK);
501
	assert_uint_eq(lzma_index_total_size(idx), 1000);
189
502
190
			total_size += r.block.total_size;
503
	assert_lzma_ret(lzma_index_append(idx, NULL, 1000, 1), LZMA_OK);
191
			uncompressed_size += r.block.uncompressed_size;
504
	assert_uint_eq(lzma_index_total_size(idx), 2000);
192
505
193
			expect(r.block.compressed_file_offset
506
	assert_lzma_ret(lzma_index_append(idx, NULL, 1000, 1), LZMA_OK);
194
					== stream_offset);
507
	assert_uint_eq(lzma_index_total_size(idx), 3000);
195
			expect(r.block.uncompressed_file_offset
196
					== uncompressed_offset);
197
508
198
			stream_offset += r.block.total_size;
509
	// Create second lzma_index and append Blocks to it.
199
			uncompressed_offset += r.block.uncompressed_size;
510
	lzma_index *second = lzma_index_init(NULL);
200
		}
511
	assert_true(second != NULL);
201
512
202
		expect(lzma_index_total_size(i) == total_size);
513
	assert_uint_eq(lzma_index_total_size(second), 0);
203
		expect(lzma_index_uncompressed_size(i) == uncompressed_size);
204
		expect(lzma_index_block_count(i) == count);
205
514
206
		lzma_index_iter_rewind(&r);
515
	assert_lzma_ret(lzma_index_append(second, NULL, 100, 1), LZMA_OK);
207
	}
516
	assert_uint_eq(lzma_index_total_size(second), 100);
517
518
	assert_lzma_ret(lzma_index_append(second, NULL, 100, 1), LZMA_OK);
519
	assert_uint_eq(lzma_index_total_size(second), 200);
520
521
	// Concatenate the Streams together
522
	assert_lzma_ret(lzma_index_cat(idx, second, NULL), LZMA_OK);
523
524
	// The resulting total size should be the size of all Blocks
525
	// from both Streams
526
	assert_uint_eq(lzma_index_total_size(idx), 3200);
527
528
	lzma_index_end(idx, NULL);
208
}
529
}
209
530
210
531
211
static void
532
static void
212
test_code(lzma_index *i)
533
test_lzma_index_file_size(void)
213
{
534
{
214
	const size_t alloc_size = 128 * 1024;
535
	lzma_index *idx = lzma_index_init(NULL);
215
	uint8_t *buf = malloc(alloc_size);
536
	assert_true(idx != NULL);
216
	expect(buf != NULL);
217
537
218
	// Encode
538
	// Should be the same as test_lzma_index_stream_size with
219
	lzma_stream strm = LZMA_STREAM_INIT;
539
	// only one Stream and no Stream Padding.
220
	expect(lzma_index_encoder(&strm, i) == LZMA_OK);
540
	assert_uint_eq(lzma_index_file_size(idx), 32);
221
	const lzma_vli index_size = lzma_index_size(i);
222
	succeed(coder_loop(&strm, NULL, 0, buf, index_size,
223
			LZMA_STREAM_END, LZMA_RUN));
224
541
225
	// Decode
542
	assert_lzma_ret(lzma_index_append(idx, NULL, 1000, 1), LZMA_OK);
226
	lzma_index *d;
543
	assert_lzma_ret(lzma_index_append(idx, NULL, 1000, 1), LZMA_OK);
227
	expect(lzma_index_decoder(&strm, &d, MEMLIMIT) == LZMA_OK);
544
	assert_lzma_ret(lzma_index_append(idx, NULL, 1000, 1), LZMA_OK);
228
	expect(d == NULL);
229
	succeed(decoder_loop(&strm, buf, index_size));
230
545
231
	expect(is_equal(i, d));
546
	assert_uint_eq(lzma_index_file_size(idx), 3040);
232
547
233
	lzma_index_end(d, NULL);
548
	// Next add Stream Padding
234
	lzma_end(&strm);
549
	assert_lzma_ret(lzma_index_stream_padding(idx, 1000),
550
			LZMA_OK);
235
551
236
	// Decode with hashing
552
	assert_uint_eq(lzma_index_file_size(idx), 4040);
237
	lzma_index_hash *h = lzma_index_hash_init(NULL, NULL);
238
	expect(h != NULL);
239
	lzma_index_iter r;
240
	lzma_index_iter_init(&r, i);
241
	while (!lzma_index_iter_next(&r, LZMA_INDEX_ITER_BLOCK))
242
		expect(lzma_index_hash_append(h, r.block.unpadded_size,
243
				r.block.uncompressed_size) == LZMA_OK);
244
	size_t pos = 0;
245
	while (pos < index_size - 1)
246
		expect(lzma_index_hash_decode(h, buf, &pos, pos + 1)
247
				== LZMA_OK);
248
	expect(lzma_index_hash_decode(h, buf, &pos, pos + 1)
249
			== LZMA_STREAM_END);
250
553
251
	lzma_index_hash_end(h, NULL);
554
	// Create second lzma_index.
555
	// Very similar to test_lzma_index_stream_size, but
556
	// the values should include the headers of the second Stream.
557
	lzma_index *second = lzma_index_init(NULL);
558
	assert_true(second != NULL);
252
559
253
	// Encode buffer
560
	assert_lzma_ret(lzma_index_append(second, NULL, 1000, 1), LZMA_OK);
254
	size_t buf_pos = 1;
561
	assert_uint_eq(lzma_index_stream_size(second), 1036);
255
	expect(lzma_index_buffer_encode(i, buf, &buf_pos, index_size)
256
			== LZMA_BUF_ERROR);
257
	expect(buf_pos == 1);
258
562
259
	succeed(lzma_index_buffer_encode(i, buf, &buf_pos, index_size + 1));
563
	assert_lzma_ret(lzma_index_cat(idx, second, NULL), LZMA_OK);
260
	expect(buf_pos == index_size + 1);
261
564
262
	// Decode buffer
565
	// .xz file size should be:
263
	buf_pos = 1;
566
	// Size of 2 Stream Headers - 12 * 2 bytes
264
	uint64_t memlimit = MEMLIMIT;
567
	// Size of all Blocks - 3000 + 1000 bytes
265
	expect(lzma_index_buffer_decode(&d, &memlimit, NULL, buf, &buf_pos,
568
	// Size of 2 Indexes - 16 + 12 bytes
266
			index_size) == LZMA_DATA_ERROR);
569
	// Size of Stream Padding - 1000 bytes
267
	expect(buf_pos == 1);
570
	// Size of 2 Stream Footers - 12 * 2 bytes
268
	expect(d == NULL);
571
	// Total: 5076 bytes
572
	assert_uint_eq(lzma_index_file_size(idx), 5076);
269
573
270
	succeed(lzma_index_buffer_decode(&d, &memlimit, NULL, buf, &buf_pos,
574
	lzma_index_end(idx, NULL);
271
			index_size + 1));
575
}
272
	expect(buf_pos == index_size + 1);
273
	expect(is_equal(i, d));
274
576
275
	lzma_index_end(d, NULL);
276
577
277
	free(buf);
578
static void
579
test_lzma_index_uncompressed_size(void)
580
{
581
	lzma_index *idx = lzma_index_init(NULL);
582
	assert_true(idx != NULL);
583
584
	// Empty lzma_index should have 0 uncompressed .xz file size.
585
	assert_uint_eq(lzma_index_uncompressed_size(idx), 0);
586
587
	// Append a few small Blocks
588
	assert_lzma_ret(lzma_index_append(idx, NULL, 1000, 1), LZMA_OK);
589
	assert_lzma_ret(lzma_index_append(idx, NULL, 1000, 10), LZMA_OK);
590
	assert_lzma_ret(lzma_index_append(idx, NULL, 1000, 100), LZMA_OK);
591
592
	assert_uint_eq(lzma_index_uncompressed_size(idx), 111);
593
594
	// Create another lzma_index
595
	lzma_index *second = lzma_index_init(NULL);
596
	assert_true(second != NULL);
597
598
	// Append a few small Blocks
599
	assert_lzma_ret(lzma_index_append(second, NULL, 1000, 2), LZMA_OK);
600
	assert_lzma_ret(lzma_index_append(second, NULL, 1000, 20), LZMA_OK);
601
	assert_lzma_ret(lzma_index_append(second, NULL, 1000, 200), LZMA_OK);
602
603
	assert_uint_eq(lzma_index_uncompressed_size(second), 222);
604
605
	// Concatenate second lzma_index to first
606
	assert_lzma_ret(lzma_index_cat(idx, second, NULL), LZMA_OK);
607
608
	// New uncompressed .xz file size should be the sum of the two Streams
609
	assert_uint_eq(lzma_index_uncompressed_size(idx), 333);
610
611
	// Append one more Block to the lzma_index and ensure that
612
	// it is properly updated
613
	assert_lzma_ret(lzma_index_append(idx, NULL, 1000, 111), LZMA_OK);
614
	assert_uint_eq(lzma_index_uncompressed_size(idx), 444);
615
616
	lzma_index_end(idx, NULL);
278
}
617
}
279
618
280
619
281
static void
620
static void
282
test_many(lzma_index *i)
621
test_lzma_index_iter_init(void)
283
{
622
{
284
	test_copy(i);
623
	// Testing basic init functionality.
285
	test_read(i);
624
	// The init function should call rewind on the iterator.
286
	test_code(i);
625
	lzma_index *first = lzma_index_init(NULL);
626
	assert_true(first != NULL);
627
628
	lzma_index *second = lzma_index_init(NULL);
629
	assert_true(second != NULL);
630
631
	lzma_index *third = lzma_index_init(NULL);
632
	assert_true(third != NULL);
633
634
	assert_lzma_ret(lzma_index_cat(first, second, NULL), LZMA_OK);
635
	assert_lzma_ret(lzma_index_cat(first, third, NULL), LZMA_OK);
636
637
	lzma_index_iter iter;
638
	lzma_index_iter_init(&iter, first);
639
640
	assert_false(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_STREAM));
641
	assert_uint_eq(iter.stream.number, 1);
642
	assert_false(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_STREAM));
643
	assert_uint_eq(iter.stream.number, 2);
644
645
	lzma_index_iter_init(&iter, first);
646
647
	assert_false(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_STREAM));
648
	assert_false(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_STREAM));
649
	assert_false(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_STREAM));
650
	assert_uint_eq(iter.stream.number, 3);
287
}
651
}
288
652
289
653
290
static void
654
static void
291
test_cat(void)
655
test_lzma_index_iter_rewind(void)
292
{
656
{
293
	lzma_index *a, *b, *c;
657
	lzma_index *first = lzma_index_init(NULL);
294
	lzma_index_iter r;
658
	assert_true(first != NULL);
295
659
296
	// Empty Indexes
660
	lzma_index_iter iter;
297
	a = create_empty();
661
	lzma_index_iter_init(&iter, first);
298
	b = create_empty();
299
	expect(lzma_index_cat(a, b, NULL) == LZMA_OK);
300
	expect(lzma_index_block_count(a) == 0);
301
	expect(lzma_index_stream_size(a) == 2 * LZMA_STREAM_HEADER_SIZE + 8);
302
	expect(lzma_index_file_size(a)
303
			== 2 * (2 * LZMA_STREAM_HEADER_SIZE + 8));
304
	lzma_index_iter_init(&r, a);
305
	expect(lzma_index_iter_next(&r, LZMA_INDEX_ITER_BLOCK));
306
662
307
	b = create_empty();
663
	// Append 3 Blocks and iterate over each. This is to test
308
	expect(lzma_index_cat(a, b, NULL) == LZMA_OK);
664
	// the LZMA_INDEX_ITER_BLOCK mode.
309
	expect(lzma_index_block_count(a) == 0);
665
	for (uint32_t i = 0; i < 3; i++) {
310
	expect(lzma_index_stream_size(a) == 2 * LZMA_STREAM_HEADER_SIZE + 8);
666
		assert_lzma_ret(lzma_index_append(first, NULL,
311
	expect(lzma_index_file_size(a)
667
				UNPADDED_SIZE_MIN, 1), LZMA_OK);
312
			== 3 * (2 * LZMA_STREAM_HEADER_SIZE + 8));
668
		assert_false(lzma_index_iter_next(&iter,
669
				LZMA_INDEX_ITER_BLOCK));
670
		assert_uint_eq(iter.block.number_in_file, i + 1);
671
	}
313
672
314
	b = create_empty();
673
	// Rewind back to the begining and iterate over the Blocks again
315
	c = create_empty();
674
	lzma_index_iter_rewind(&iter);
316
	expect(lzma_index_stream_padding(b, 4) == LZMA_OK);
317
	expect(lzma_index_cat(b, c, NULL) == LZMA_OK);
318
	expect(lzma_index_block_count(b) == 0);
319
	expect(lzma_index_stream_size(b) == 2 * LZMA_STREAM_HEADER_SIZE + 8);
320
	expect(lzma_index_file_size(b)
321
			== 2 * (2 * LZMA_STREAM_HEADER_SIZE + 8) + 4);
322
675
323
	expect(lzma_index_stream_padding(a, 8) == LZMA_OK);
676
	// Should be able to re-iterate over the Blocks again.
324
	expect(lzma_index_cat(a, b, NULL) == LZMA_OK);
677
	for (uint32_t i = 0; i < 3; i++) {
325
	expect(lzma_index_block_count(a) == 0);
678
		assert_false(lzma_index_iter_next(&iter,
326
	expect(lzma_index_stream_size(a) == 2 * LZMA_STREAM_HEADER_SIZE + 8);
679
				LZMA_INDEX_ITER_BLOCK));
327
	expect(lzma_index_file_size(a)
680
		assert_uint_eq(iter.block.number_in_file, i + 1);
328
			== 5 * (2 * LZMA_STREAM_HEADER_SIZE + 8) + 4 + 8);
681
	}
329
682
330
	expect(lzma_index_iter_next(&r, LZMA_INDEX_ITER_BLOCK));
683
	// Next concatenate two more lzma_indexes, iterate over them,
331
	lzma_index_iter_rewind(&r);
684
	// rewind, and iterate over them again. This is to test
332
	expect(lzma_index_iter_next(&r, LZMA_INDEX_ITER_BLOCK));
685
	// the LZMA_INDEX_ITER_STREAM mode.
333
	lzma_index_end(a, NULL);
686
	lzma_index *second = lzma_index_init(NULL);
687
	assert_true(second != NULL);
334
688
335
	// Small Indexes
689
	lzma_index *third = lzma_index_init(NULL);
336
	a = create_small();
690
	assert_true(third != NULL);
337
	lzma_vli stream_size = lzma_index_stream_size(a);
338
	lzma_index_iter_init(&r, a);
339
	for (int i = SMALL_COUNT; i >= 0; --i)
340
		expect(!lzma_index_iter_next(&r, LZMA_INDEX_ITER_BLOCK)
341
				^ (i == 0));
342
691
343
	b = create_small();
692
	assert_lzma_ret(lzma_index_cat(first, second, NULL), LZMA_OK);
344
	expect(lzma_index_stream_padding(a, 4) == LZMA_OK);
693
	assert_lzma_ret(lzma_index_cat(first, third, NULL), LZMA_OK);
345
	expect(lzma_index_cat(a, b, NULL) == LZMA_OK);
346
	expect(lzma_index_file_size(a) == stream_size * 2 + 4);
347
	expect(lzma_index_stream_size(a) > stream_size);
348
	expect(lzma_index_stream_size(a) < stream_size * 2);
349
	for (int i = SMALL_COUNT; i >= 0; --i)
350
		expect(!lzma_index_iter_next(&r, LZMA_INDEX_ITER_BLOCK)
351
				^ (i == 0));
352
694
353
	lzma_index_iter_rewind(&r);
695
	assert_false(lzma_index_iter_next(&iter,
354
	for (int i = SMALL_COUNT * 2; i >= 0; --i)
696
			LZMA_INDEX_ITER_STREAM));
355
		expect(!lzma_index_iter_next(&r, LZMA_INDEX_ITER_BLOCK)
697
	assert_false(lzma_index_iter_next(&iter,
356
				^ (i == 0));
698
			LZMA_INDEX_ITER_STREAM));
357
699
358
	b = create_small();
700
	assert_uint_eq(iter.stream.number, 3);
359
	c = create_small();
360
	expect(lzma_index_stream_padding(b, 8) == LZMA_OK);
361
	expect(lzma_index_cat(b, c, NULL) == LZMA_OK);
362
	expect(lzma_index_stream_padding(a, 12) == LZMA_OK);
363
	expect(lzma_index_cat(a, b, NULL) == LZMA_OK);
364
	expect(lzma_index_file_size(a) == stream_size * 4 + 4 + 8 + 12);
365
701
366
	expect(lzma_index_block_count(a) == SMALL_COUNT * 4);
702
	lzma_index_iter_rewind(&iter);
367
	for (int i = SMALL_COUNT * 2; i >= 0; --i)
368
		expect(!lzma_index_iter_next(&r, LZMA_INDEX_ITER_BLOCK)
369
				^ (i == 0));
370
703
371
	lzma_index_iter_rewind(&r);
704
	for (uint32_t i = 0; i < 3; i++) {
372
	for (int i = SMALL_COUNT * 4; i >= 0; --i)
705
		assert_false(lzma_index_iter_next(&iter,
373
		expect(!lzma_index_iter_next(&r, LZMA_INDEX_ITER_BLOCK)
706
				LZMA_INDEX_ITER_STREAM));
374
				^ (i == 0));
707
		assert_uint_eq(iter.stream.number, i + 1);
708
	}
375
709
376
	lzma_index_end(a, NULL);
710
	lzma_index_end(first, NULL);
711
}
377
712
378
	// Mix of empty and small
379
	a = create_empty();
380
	b = create_small();
381
	expect(lzma_index_stream_padding(a, 4) == LZMA_OK);
382
	expect(lzma_index_cat(a, b, NULL) == LZMA_OK);
383
	lzma_index_iter_init(&r, a);
384
	for (int i = SMALL_COUNT; i >= 0; --i)
385
		expect(!lzma_index_iter_next(&r, LZMA_INDEX_ITER_BLOCK)
386
				^ (i == 0));
387
713
388
	lzma_index_end(a, NULL);
714
static void
715
test_lzma_index_iter_next(void)
716
{
717
	lzma_index *first = lzma_index_init(NULL);
718
	assert_true(first != NULL);
389
719
390
	// Big Indexes
720
	lzma_index_iter iter;
391
	a = create_big();
721
	lzma_index_iter_init(&iter, first);
392
	stream_size = lzma_index_stream_size(a);
393
	b = create_big();
394
	expect(lzma_index_stream_padding(a, 4) == LZMA_OK);
395
	expect(lzma_index_cat(a, b, NULL) == LZMA_OK);
396
	expect(lzma_index_file_size(a) == stream_size * 2 + 4);
397
	expect(lzma_index_stream_size(a) > stream_size);
398
	expect(lzma_index_stream_size(a) < stream_size * 2);
399
722
400
	b = create_big();
723
	// First test bad mode values
401
	c = create_big();
724
	for (uint32_t i = LZMA_INDEX_ITER_NONEMPTY_BLOCK + 1; i < 100; i++)
402
	expect(lzma_index_stream_padding(b, 8) == LZMA_OK);
725
		assert_true(lzma_index_iter_next(&iter, i));
403
	expect(lzma_index_cat(b, c, NULL) == LZMA_OK);
404
	expect(lzma_index_stream_padding(a, 12) == LZMA_OK);
405
	expect(lzma_index_cat(a, b, NULL) == LZMA_OK);
406
	expect(lzma_index_file_size(a) == stream_size * 4 + 4 + 8 + 12);
407
726
408
	lzma_index_iter_init(&r, a);
727
	// Test iterating over Blocks
409
	for (int i = BIG_COUNT * 4; i >= 0; --i)
728
	assert_lzma_ret(lzma_index_append(first, NULL,
410
		expect(!lzma_index_iter_next(&r, LZMA_INDEX_ITER_BLOCK)
729
			UNPADDED_SIZE_MIN, 1), LZMA_OK);
411
				^ (i == 0));
730
	assert_lzma_ret(lzma_index_append(first, NULL,
731
			UNPADDED_SIZE_MIN * 2, 10), LZMA_OK);
732
	assert_lzma_ret(lzma_index_append(first, NULL,
733
			UNPADDED_SIZE_MIN * 3, 100), LZMA_OK);
412
734
413
	lzma_index_end(a, NULL);
735
	// For Blocks, need to verify:
736
	// - number_in_file (overall Block number)
737
	// - compressed_file_offset
738
	// - uncompressed_file_offset
739
	// - number_in_stream (Block number relative to current Stream)
740
	// - compressed_stream_offset
741
	// - uncompressed_stream_offset
742
	// - uncompressed_size
743
	// - unpadded_size
744
	// - total_size
745
746
	assert_false(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_BLOCK));
747
748
	// Verify Block data stored correctly
749
	assert_uint_eq(iter.block.number_in_file, 1);
750
751
	// Should start right after the Stream Header
752
	assert_uint_eq(iter.block.compressed_file_offset,
753
			LZMA_STREAM_HEADER_SIZE);
754
	assert_uint_eq(iter.block.uncompressed_file_offset, 0);
755
	assert_uint_eq(iter.block.number_in_stream, 1);
756
	assert_uint_eq(iter.block.compressed_stream_offset,
757
			LZMA_STREAM_HEADER_SIZE);
758
	assert_uint_eq(iter.block.uncompressed_stream_offset, 0);
759
	assert_uint_eq(iter.block.unpadded_size, UNPADDED_SIZE_MIN);
760
	assert_uint_eq(iter.block.total_size, vli_ceil4(UNPADDED_SIZE_MIN));
761
762
	assert_false(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_BLOCK));
763
764
	// Verify Block data stored correctly
765
	assert_uint_eq(iter.block.number_in_file, 2);
766
	assert_uint_eq(iter.block.compressed_file_offset,
767
			LZMA_STREAM_HEADER_SIZE +
768
			vli_ceil4(UNPADDED_SIZE_MIN));
769
	assert_uint_eq(iter.block.uncompressed_file_offset, 1);
770
	assert_uint_eq(iter.block.number_in_stream, 2);
771
	assert_uint_eq(iter.block.compressed_stream_offset,
772
			LZMA_STREAM_HEADER_SIZE +
773
			vli_ceil4(UNPADDED_SIZE_MIN));
774
	assert_uint_eq(iter.block.uncompressed_stream_offset, 1);
775
	assert_uint_eq(iter.block.unpadded_size, UNPADDED_SIZE_MIN * 2);
776
	assert_uint_eq(iter.block.total_size, vli_ceil4(UNPADDED_SIZE_MIN * 2));
777
778
	assert_false(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_BLOCK));
779
780
	// Verify Block data stored correctly
781
	assert_uint_eq(iter.block.number_in_file, 3);
782
	assert_uint_eq(iter.block.compressed_file_offset,
783
			LZMA_STREAM_HEADER_SIZE +
784
			vli_ceil4(UNPADDED_SIZE_MIN) +
785
			vli_ceil4(UNPADDED_SIZE_MIN * 2));
786
	assert_uint_eq(iter.block.uncompressed_file_offset, 11);
787
	assert_uint_eq(iter.block.number_in_stream, 3);
788
	assert_uint_eq(iter.block.compressed_stream_offset,
789
			LZMA_STREAM_HEADER_SIZE +
790
			vli_ceil4(UNPADDED_SIZE_MIN) +
791
			vli_ceil4(UNPADDED_SIZE_MIN * 2));
792
	assert_uint_eq(iter.block.uncompressed_stream_offset, 11);
793
	assert_uint_eq(iter.block.unpadded_size, UNPADDED_SIZE_MIN * 3);
794
	assert_uint_eq(iter.block.total_size,
795
			vli_ceil4(UNPADDED_SIZE_MIN * 3));
796
797
	// Only three Blocks were added, so this should return true
798
	assert_true(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_BLOCK));
799
800
	const lzma_vli second_stream_compressed_start =
801
			LZMA_STREAM_HEADER_SIZE * 2 +
802
			vli_ceil4(UNPADDED_SIZE_MIN) +
803
			vli_ceil4(UNPADDED_SIZE_MIN * 2) +
804
			vli_ceil4(UNPADDED_SIZE_MIN * 3) +
805
			lzma_index_size(first);
806
	const lzma_vli second_stream_uncompressed_start = 1 + 10 + 100;
807
808
	// Test iterating over Streams.
809
	// The second Stream will have 0 Blocks
810
	lzma_index *second = lzma_index_init(NULL);
811
	assert_true(second != NULL);
812
813
	// Set Stream Flags for Stream 2
814
	lzma_stream_flags flags = {
815
		.version = 0,
816
		.backward_size = LZMA_BACKWARD_SIZE_MIN,
817
		.check = LZMA_CHECK_CRC32
818
	};
819
820
	assert_lzma_ret(lzma_index_stream_flags(second, &flags), LZMA_OK);
821
822
	// The Second stream will have 8 bytes of Stream Padding
823
	assert_lzma_ret(lzma_index_stream_padding(second, 8), LZMA_OK);
824
825
	const lzma_vli second_stream_index_size = lzma_index_size(second);
826
827
	// The third Stream will have 2 Blocks
828
	lzma_index *third = lzma_index_init(NULL);
829
	assert_true(third != NULL);
830
831
	assert_lzma_ret(lzma_index_append(third, NULL, 32, 20), LZMA_OK);
832
	assert_lzma_ret(lzma_index_append(third, NULL, 64, 40), LZMA_OK);
833
834
	const lzma_vli third_stream_index_size = lzma_index_size(third);
835
836
	assert_lzma_ret(lzma_index_cat(first, second, NULL), LZMA_OK);
837
	assert_lzma_ret(lzma_index_cat(first, third, NULL), LZMA_OK);
838
839
	// For Streams, need to verify:
840
	// - flags (Stream Flags)
841
	// - number (Stream count)
842
	// - block_count
843
	// - compressed_offset
844
	// - uncompressed_offset
845
	// - compressed_size
846
	// - uncompressed_size
847
	// - padding (Stream Padding)
848
	assert_false(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_STREAM));
849
850
	// Verify Stream
851
	assert_uint_eq(iter.stream.flags->backward_size,
852
			LZMA_BACKWARD_SIZE_MIN);
853
	assert_uint_eq(iter.stream.flags->check, LZMA_CHECK_CRC32);
854
	assert_uint_eq(iter.stream.number, 2);
855
	assert_uint_eq(iter.stream.block_count, 0);
856
	assert_uint_eq(iter.stream.compressed_offset,
857
			second_stream_compressed_start);
858
	assert_uint_eq(iter.stream.uncompressed_offset,
859
			second_stream_uncompressed_start);
860
	assert_uint_eq(iter.stream.compressed_size,
861
			LZMA_STREAM_HEADER_SIZE * 2 +
862
			second_stream_index_size);
863
	assert_uint_eq(iter.stream.uncompressed_size, 0);
864
	assert_uint_eq(iter.stream.padding, 8);
865
866
	assert_false(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_STREAM));
867
868
	// Verify Stream
869
	const lzma_vli third_stream_compressed_start =
870
			second_stream_compressed_start +
871
			LZMA_STREAM_HEADER_SIZE * 2 +
872
			8 + // Stream padding
873
			second_stream_index_size;
874
	const lzma_vli third_stream_uncompressed_start =
875
			second_stream_uncompressed_start;
876
877
	assert_uint_eq(iter.stream.number, 3);
878
	assert_uint_eq(iter.stream.block_count, 2);
879
	assert_uint_eq(iter.stream.compressed_offset,
880
			third_stream_compressed_start);
881
	assert_uint_eq(iter.stream.uncompressed_offset,
882
			third_stream_uncompressed_start);
883
	assert_uint_eq(iter.stream.compressed_size,
884
			LZMA_STREAM_HEADER_SIZE * 2 +
885
			96 + // Total compressed size
886
			third_stream_index_size);
887
	assert_uint_eq(iter.stream.uncompressed_size, 60);
888
	assert_uint_eq(iter.stream.padding, 0);
889
890
	assert_true(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_STREAM));
891
892
	// Even after a failing call to next with ITER_STREAM mode,
893
	// should still be able to iterate over the 2 Blocks in
894
	// Stream 3.
895
	assert_false(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_BLOCK));
896
897
	// Verify both Blocks
898
899
	// Next call to iterate Block should return true because the
900
	// first Block can already be read from the LZMA_INDEX_ITER_STREAM
901
	// call.
902
	assert_true(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_BLOCK));
903
904
	// Rewind to test LZMA_INDEX_ITER_ANY
905
	lzma_index_iter_rewind(&iter);
906
907
	// Iterate past the first three Blocks
908
	assert_false(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_ANY));
909
	assert_false(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_ANY));
910
	assert_false(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_ANY));
911
912
	// Iterate past the next Stream
913
	assert_false(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_ANY));
914
915
	// Iterate past the next Stream
916
	assert_false(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_ANY));
917
	assert_false(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_ANY));
918
919
	// Last call should fail
920
	assert_true(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_ANY));
921
922
	// Rewind to test LZMA_INDEX_ITER_NONEMPTY_BLOCK
923
	lzma_index_iter_rewind(&iter);
924
925
	// Iterate past the first three Blocks
926
	assert_false(lzma_index_iter_next(&iter,
927
			LZMA_INDEX_ITER_NONEMPTY_BLOCK));
928
	assert_false(lzma_index_iter_next(&iter,
929
			LZMA_INDEX_ITER_NONEMPTY_BLOCK));
930
	assert_false(lzma_index_iter_next(&iter,
931
			LZMA_INDEX_ITER_NONEMPTY_BLOCK));
932
933
	// Skip past the next Stream which has no Blocks.
934
	// We will get to the first Block of the third Stream.
935
	assert_false(lzma_index_iter_next(&iter,
936
			LZMA_INDEX_ITER_NONEMPTY_BLOCK));
937
938
	// Iterate past the second (the last) Block in the third Stream
939
	assert_false(lzma_index_iter_next(&iter,
940
			LZMA_INDEX_ITER_NONEMPTY_BLOCK));
941
942
	// Last call should fail since there is nothing left to iterate over.
943
	assert_true(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_ANY));
944
945
	lzma_index_end(first, NULL);
414
}
946
}
415
947
416
948
417
static void
949
static void
418
test_locate(void)
950
test_lzma_index_iter_locate(void)
419
{
951
{
420
	lzma_index *i = lzma_index_init(NULL);
952
	lzma_index *idx = lzma_index_init(NULL);
421
	expect(i != NULL);
953
	assert_true(idx != NULL);
422
	lzma_index_iter r;
423
	lzma_index_iter_init(&r, i);
424
954
955
	lzma_index_iter iter;
956
	lzma_index_iter_init(&iter, idx);
957
425
	// Cannot locate anything from an empty Index.
958
	// Cannot locate anything from an empty Index.
426
	expect(lzma_index_iter_locate(&r, 0));
959
	assert_true(lzma_index_iter_locate(&iter, 0));
427
	expect(lzma_index_iter_locate(&r, 555));
960
	assert_true(lzma_index_iter_locate(&iter, 555));
428
961
429
	// One empty Record: nothing is found since there's no uncompressed
962
	// One empty Record: nothing is found since there's no uncompressed
430
	// data.
963
	// data.
431
	expect(lzma_index_append(i, NULL, 16, 0) == LZMA_OK);
964
	assert_lzma_ret(lzma_index_append(idx, NULL, 16, 0), LZMA_OK);
432
	expect(lzma_index_iter_locate(&r, 0));
965
	assert_true(lzma_index_iter_locate(&iter, 0));
433
966
434
	// Non-empty Record and we can find something.
967
	// Non-empty Record and we can find something.
435
	expect(lzma_index_append(i, NULL, 32, 5) == LZMA_OK);
968
	assert_lzma_ret(lzma_index_append(idx, NULL, 32, 5), LZMA_OK);
436
	expect(!lzma_index_iter_locate(&r, 0));
969
	assert_false(lzma_index_iter_locate(&iter, 0));
437
	expect(r.block.total_size == 32);
970
	assert_uint_eq(iter.block.total_size, 32);
438
	expect(r.block.uncompressed_size == 5);
971
	assert_uint_eq(iter.block.uncompressed_size, 5);
439
	expect(r.block.compressed_file_offset
972
	assert_uint_eq(iter.block.compressed_file_offset,
440
			== LZMA_STREAM_HEADER_SIZE + 16);
973
			LZMA_STREAM_HEADER_SIZE + 16);
441
	expect(r.block.uncompressed_file_offset == 0);
974
	assert_uint_eq(iter.block.uncompressed_file_offset, 0);
442
975
443
	// Still cannot find anything past the end.
976
	// Still cannot find anything past the end.
444
	expect(lzma_index_iter_locate(&r, 5));
977
	assert_true(lzma_index_iter_locate(&iter, 5));
445
978
446
	// Add the third Record.
979
	// Add the third Record.
447
	expect(lzma_index_append(i, NULL, 40, 11) == LZMA_OK);
980
	assert_lzma_ret(lzma_index_append(idx, NULL, 40, 11), LZMA_OK);
448
981
449
	expect(!lzma_index_iter_locate(&r, 0));
982
	assert_false(lzma_index_iter_locate(&iter, 0));
450
	expect(r.block.total_size == 32);
983
	assert_uint_eq(iter.block.total_size, 32);
451
	expect(r.block.uncompressed_size == 5);
984
	assert_uint_eq(iter.block.uncompressed_size, 5);
452
	expect(r.block.compressed_file_offset
985
	assert_uint_eq(iter.block.compressed_file_offset,
453
			== LZMA_STREAM_HEADER_SIZE + 16);
986
			LZMA_STREAM_HEADER_SIZE + 16);
454
	expect(r.block.uncompressed_file_offset == 0);
987
	assert_uint_eq(iter.block.uncompressed_file_offset, 0);
455
988
456
	expect(!lzma_index_iter_next(&r, LZMA_INDEX_ITER_BLOCK));
989
	assert_false(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_BLOCK));
457
	expect(r.block.total_size == 40);
990
	assert_uint_eq(iter.block.total_size, 40);
458
	expect(r.block.uncompressed_size == 11);
991
	assert_uint_eq(iter.block.uncompressed_size, 11);
459
	expect(r.block.compressed_file_offset
992
	assert_uint_eq(iter.block.compressed_file_offset,
460
			== LZMA_STREAM_HEADER_SIZE + 16 + 32);
993
			LZMA_STREAM_HEADER_SIZE + 16 + 32);
461
	expect(r.block.uncompressed_file_offset == 5);
994
	assert_uint_eq(iter.block.uncompressed_file_offset, 5);
462
995
463
	expect(!lzma_index_iter_locate(&r, 2));
996
	assert_false(lzma_index_iter_locate(&iter, 2));
464
	expect(r.block.total_size == 32);
997
	assert_uint_eq(iter.block.total_size, 32);
465
	expect(r.block.uncompressed_size == 5);
998
	assert_uint_eq(iter.block.uncompressed_size, 5);
466
	expect(r.block.compressed_file_offset
999
	assert_uint_eq(iter.block.compressed_file_offset,
467
			== LZMA_STREAM_HEADER_SIZE + 16);
1000
			LZMA_STREAM_HEADER_SIZE + 16);
468
	expect(r.block.uncompressed_file_offset == 0);
1001
	assert_uint_eq(iter.block.uncompressed_file_offset, 0);
469
1002
470
	expect(!lzma_index_iter_locate(&r, 5));
1003
	assert_false(lzma_index_iter_locate(&iter, 5));
471
	expect(r.block.total_size == 40);
1004
	assert_uint_eq(iter.block.total_size, 40);
472
	expect(r.block.uncompressed_size == 11);
1005
	assert_uint_eq(iter.block.uncompressed_size, 11);
473
	expect(r.block.compressed_file_offset
1006
	assert_uint_eq(iter.block.compressed_file_offset,
474
			== LZMA_STREAM_HEADER_SIZE + 16 + 32);
1007
			LZMA_STREAM_HEADER_SIZE + 16 + 32);
475
	expect(r.block.uncompressed_file_offset == 5);
1008
	assert_uint_eq(iter.block.uncompressed_file_offset, 5);
476
1009
477
	expect(!lzma_index_iter_locate(&r, 5 + 11 - 1));
1010
	assert_false(lzma_index_iter_locate(&iter, 5 + 11 - 1));
478
	expect(r.block.total_size == 40);
1011
	assert_uint_eq(iter.block.total_size, 40);
479
	expect(r.block.uncompressed_size == 11);
1012
	assert_uint_eq(iter.block.uncompressed_size, 11);
480
	expect(r.block.compressed_file_offset
1013
	assert_uint_eq(iter.block.compressed_file_offset,
481
			== LZMA_STREAM_HEADER_SIZE + 16 + 32);
1014
			LZMA_STREAM_HEADER_SIZE + 16 + 32);
482
	expect(r.block.uncompressed_file_offset == 5);
1015
	assert_uint_eq(iter.block.uncompressed_file_offset, 5);
483
1016
484
	expect(lzma_index_iter_locate(&r, 5 + 11));
1017
	assert_true(lzma_index_iter_locate(&iter, 5 + 11));
485
	expect(lzma_index_iter_locate(&r, 5 + 15));
1018
	assert_true(lzma_index_iter_locate(&iter, 5 + 15));
486
1019
487
	// Large Index
1020
	// Large Index
488
	lzma_index_end(i, NULL);
1021
	lzma_index_end(idx, NULL);
489
	i = lzma_index_init(NULL);
1022
	idx = lzma_index_init(NULL);
490
	expect(i != NULL);
1023
	assert_true(idx != NULL);
491
	lzma_index_iter_init(&r, i);
1024
	lzma_index_iter_init(&iter, idx);
492
1025
493
	for (size_t n = 4; n <= 4 * 5555; n += 4)
1026
	for (uint32_t n = 4; n <= 4 * 5555; n += 4)
494
		expect(lzma_index_append(i, NULL, n + 8, n) == LZMA_OK);
1027
		assert_lzma_ret(lzma_index_append(idx, NULL, n + 8, n),
1028
				LZMA_OK);
495
1029
496
	expect(lzma_index_block_count(i) == 5555);
1030
	assert_uint_eq(lzma_index_block_count(idx), 5555);
497
1031
498
	// First Record
1032
	// First Record
499
	expect(!lzma_index_iter_locate(&r, 0));
1033
	assert_false(lzma_index_iter_locate(&iter, 0));
500
	expect(r.block.total_size == 4 + 8);
1034
	assert_uint_eq(iter.block.total_size, 4 + 8);
501
	expect(r.block.uncompressed_size == 4);
1035
	assert_uint_eq(iter.block.uncompressed_size, 4);
502
	expect(r.block.compressed_file_offset == LZMA_STREAM_HEADER_SIZE);
1036
	assert_uint_eq(iter.block.compressed_file_offset,
503
	expect(r.block.uncompressed_file_offset == 0);
1037
			LZMA_STREAM_HEADER_SIZE);
1038
	assert_uint_eq(iter.block.uncompressed_file_offset, 0);
504
1039
505
	expect(!lzma_index_iter_locate(&r, 3));
1040
	assert_false(lzma_index_iter_locate(&iter, 3));
506
	expect(r.block.total_size == 4 + 8);
1041
	assert_uint_eq(iter.block.total_size, 4 + 8);
507
	expect(r.block.uncompressed_size == 4);
1042
	assert_uint_eq(iter.block.uncompressed_size, 4);
508
	expect(r.block.compressed_file_offset == LZMA_STREAM_HEADER_SIZE);
1043
	assert_uint_eq(iter.block.compressed_file_offset,
509
	expect(r.block.uncompressed_file_offset == 0);
1044
			LZMA_STREAM_HEADER_SIZE);
1045
	assert_uint_eq(iter.block.uncompressed_file_offset, 0);
510
1046
511
	// Second Record
1047
	// Second Record
512
	expect(!lzma_index_iter_locate(&r, 4));
1048
	assert_false(lzma_index_iter_locate(&iter, 4));
513
	expect(r.block.total_size == 2 * 4 + 8);
1049
	assert_uint_eq(iter.block.total_size, 2 * 4 + 8);
514
	expect(r.block.uncompressed_size == 2 * 4);
1050
	assert_uint_eq(iter.block.uncompressed_size, 2 * 4);
515
	expect(r.block.compressed_file_offset
1051
	assert_uint_eq(iter.block.compressed_file_offset,
516
			== LZMA_STREAM_HEADER_SIZE + 4 + 8);
1052
			LZMA_STREAM_HEADER_SIZE + 4 + 8);
517
	expect(r.block.uncompressed_file_offset == 4);
1053
	assert_uint_eq(iter.block.uncompressed_file_offset, 4);
518
1054
519
	// Last Record
1055
	// Last Record
520
	expect(!lzma_index_iter_locate(
1056
	assert_false(lzma_index_iter_locate(
521
			&r, lzma_index_uncompressed_size(i) - 1));
1057
			&iter, lzma_index_uncompressed_size(idx) - 1));
522
	expect(r.block.total_size == 4 * 5555 + 8);
1058
	assert_uint_eq(iter.block.total_size, 4 * 5555 + 8);
523
	expect(r.block.uncompressed_size == 4 * 5555);
1059
	assert_uint_eq(iter.block.uncompressed_size, 4 * 5555);
524
	expect(r.block.compressed_file_offset == lzma_index_total_size(i)
1060
	assert_uint_eq(iter.block.compressed_file_offset,
1061
			lzma_index_total_size(idx)
525
			+ LZMA_STREAM_HEADER_SIZE - 4 * 5555 - 8);
1062
			+ LZMA_STREAM_HEADER_SIZE - 4 * 5555 - 8);
526
	expect(r.block.uncompressed_file_offset
1063
	assert_uint_eq(iter.block.uncompressed_file_offset,
527
			== lzma_index_uncompressed_size(i) - 4 * 5555);
1064
			lzma_index_uncompressed_size(idx) - 4 * 5555);
528
1065
529
	// Allocation chunk boundaries. See INDEX_GROUP_SIZE in
1066
	// Allocation chunk boundaries. See INDEX_GROUP_SIZE in
530
	// liblzma/common/index.c.
1067
	// liblzma/common/index.c.
531
	const size_t group_multiple = 256 * 4;
1068
	const uint32_t group_multiple = 256 * 4;
532
	const size_t radius = 8;
1069
	const uint32_t radius = 8;
533
	const size_t start = group_multiple - radius;
1070
	const uint32_t start = group_multiple - radius;
534
	lzma_vli ubase = 0;
1071
	lzma_vli ubase = 0;
535
	lzma_vli tbase = 0;
1072
	lzma_vli tbase = 0;
536
	size_t n;
1073
	uint32_t n;
537
	for (n = 1; n < start; ++n) {
1074
	for (n = 1; n < start; ++n) {
538
		ubase += n * 4;
1075
		ubase += n * 4;
539
		tbase += n * 4 + 8;
1076
		tbase += n * 4 + 8;
540
	}
1077
	}
541
1078
542
	while (n < start + 2 * radius) {
1079
	while (n < start + 2 * radius) {
543
		expect(!lzma_index_iter_locate(&r, ubase + n * 4));
1080
		assert_false(lzma_index_iter_locate(&iter, ubase + n * 4));
544
1081
545
		expect(r.block.compressed_file_offset == tbase + n * 4 + 8
1082
		assert_uint_eq(iter.block.compressed_file_offset,
1083
				tbase + n * 4 + 8
546
				+ LZMA_STREAM_HEADER_SIZE);
1084
				+ LZMA_STREAM_HEADER_SIZE);
547
		expect(r.block.uncompressed_file_offset == ubase + n * 4);
1085
		assert_uint_eq(iter.block.uncompressed_file_offset,
1086
				ubase + n * 4);
548
1087
549
		tbase += n * 4 + 8;
1088
		tbase += n * 4 + 8;
550
		ubase += n * 4;
1089
		ubase += n * 4;
551
		++n;
1090
		++n;
552
1091
553
		expect(r.block.total_size == n * 4 + 8);
1092
		assert_uint_eq(iter.block.total_size, n * 4 + 8);
554
		expect(r.block.uncompressed_size == n * 4);
1093
		assert_uint_eq(iter.block.uncompressed_size, n * 4);
555
	}
1094
	}
556
1095
557
	// Do it also backwards.
1096
	// Do it also backwards.
558
	while (n > start) {
1097
	while (n > start) {
559
		expect(!lzma_index_iter_locate(&r, ubase + (n - 1) * 4));
1098
		assert_false(lzma_index_iter_locate(
1099
				&iter, ubase + (n - 1) * 4));
560
1100
561
		expect(r.block.total_size == n * 4 + 8);
1101
		assert_uint_eq(iter.block.total_size, n * 4 + 8);
562
		expect(r.block.uncompressed_size == n * 4);
1102
		assert_uint_eq(iter.block.uncompressed_size, n * 4);
563
1103
564
		--n;
1104
		--n;
565
		tbase -= n * 4 + 8;
1105
		tbase -= n * 4 + 8;
566
		ubase -= n * 4;
1106
		ubase -= n * 4;
567
1107
568
		expect(r.block.compressed_file_offset == tbase + n * 4 + 8
1108
		assert_uint_eq(iter.block.compressed_file_offset,
1109
				tbase + n * 4 + 8
569
				+ LZMA_STREAM_HEADER_SIZE);
1110
				+ LZMA_STREAM_HEADER_SIZE);
570
		expect(r.block.uncompressed_file_offset == ubase + n * 4);
1111
		assert_uint_eq(iter.block.uncompressed_file_offset,
1112
				ubase + n * 4);
571
	}
1113
	}
572
1114
573
	// Test locating in concatenated Index.
1115
	// Test locating in concatenated Index.
574
	lzma_index_end(i, NULL);
1116
	lzma_index_end(idx, NULL);
575
	i = lzma_index_init(NULL);
1117
	idx = lzma_index_init(NULL);
576
	expect(i != NULL);
1118
	assert_true(idx != NULL);
577
	lzma_index_iter_init(&r, i);
1119
	lzma_index_iter_init(&iter, idx);
578
	for (n = 0; n < group_multiple; ++n)
1120
	for (n = 0; n < group_multiple; ++n)
579
		expect(lzma_index_append(i, NULL, 8, 0) == LZMA_OK);
1121
		assert_lzma_ret(lzma_index_append(idx, NULL, 8, 0),
580
	expect(lzma_index_append(i, NULL, 16, 1) == LZMA_OK);
1122
				LZMA_OK);
581
	expect(!lzma_index_iter_locate(&r, 0));
1123
	assert_lzma_ret(lzma_index_append(idx, NULL, 16, 1), LZMA_OK);
582
	expect(r.block.total_size == 16);
1124
	assert_false(lzma_index_iter_locate(&iter, 0));
583
	expect(r.block.uncompressed_size == 1);
1125
	assert_uint_eq(iter.block.total_size, 16);
584
	expect(r.block.compressed_file_offset
1126
	assert_uint_eq(iter.block.uncompressed_size, 1);
585
			== LZMA_STREAM_HEADER_SIZE + group_multiple * 8);
1127
	assert_uint_eq(iter.block.compressed_file_offset,
586
	expect(r.block.uncompressed_file_offset == 0);
1128
			LZMA_STREAM_HEADER_SIZE + group_multiple * 8);
1129
	assert_uint_eq(iter.block.uncompressed_file_offset, 0);
587
1130
588
	lzma_index_end(i, NULL);
1131
	lzma_index_end(idx, NULL);
589
}
1132
}
590
1133
591
1134
592
static void
1135
static void
593
test_corrupt(void)
1136
test_lzma_index_cat(void)
594
{
1137
{
595
	const size_t alloc_size = 128 * 1024;
1138
	// Most complex tests for this function are done in other tests.
596
	uint8_t *buf = malloc(alloc_size);
1139
	// This will mostly test basic functionality.
597
	expect(buf != NULL);
598
	lzma_stream strm = LZMA_STREAM_INIT;
599
1140
600
	lzma_index *i = create_empty();
1141
	lzma_index *dest = lzma_index_init(NULL);
601
	expect(lzma_index_append(i, NULL, 0, 1) == LZMA_PROG_ERROR);
1142
	assert_true(dest != NULL);
602
	lzma_index_end(i, NULL);
603
1143
604
	// Create a valid Index and corrupt it in different ways.
1144
	lzma_index *src = lzma_index_init(NULL);
605
	i = create_small();
1145
	assert_true(src != NULL);
606
	expect(lzma_index_encoder(&strm, i) == LZMA_OK);
607
	succeed(coder_loop(&strm, NULL, 0, buf, 20,
608
			LZMA_STREAM_END, LZMA_RUN));
609
	lzma_index_end(i, NULL);
610
1146
611
	// Wrong Index Indicator
1147
	// First test NULL dest or src
612
	buf[0] ^= 1;
1148
	assert_lzma_ret(lzma_index_cat(NULL, NULL, NULL), LZMA_PROG_ERROR);
613
	expect(lzma_index_decoder(&strm, &i, MEMLIMIT) == LZMA_OK);
1149
	assert_lzma_ret(lzma_index_cat(dest, NULL, NULL), LZMA_PROG_ERROR);
614
	succeed(decoder_loop_ret(&strm, buf, 1, LZMA_DATA_ERROR));
1150
	assert_lzma_ret(lzma_index_cat(NULL, src, NULL), LZMA_PROG_ERROR);
615
	buf[0] ^= 1;
616
1151
617
	// Wrong Number of Records and thus CRC32 fails.
1152
	// Check for uncompressed size overflow
618
	--buf[1];
1153
	assert_lzma_ret(lzma_index_append(dest, NULL,
619
	expect(lzma_index_decoder(&strm, &i, MEMLIMIT) == LZMA_OK);
1154
			(UNPADDED_SIZE_MAX / 2) + 1, 1), LZMA_OK);
620
	succeed(decoder_loop_ret(&strm, buf, 10, LZMA_DATA_ERROR));
1155
	assert_lzma_ret(lzma_index_append(src, NULL,
621
	++buf[1];
1156
			(UNPADDED_SIZE_MAX / 2) + 1, 1), LZMA_OK);
1157
	assert_lzma_ret(lzma_index_cat(dest, src, NULL), LZMA_DATA_ERROR);
622
1158
623
	// Padding not NULs
1159
	// Check for compressed size overflow
624
	buf[15] ^= 1;
1160
	dest = lzma_index_init(NULL);
625
	expect(lzma_index_decoder(&strm, &i, MEMLIMIT) == LZMA_OK);
1161
	assert_true(dest != NULL);
626
	succeed(decoder_loop_ret(&strm, buf, 16, LZMA_DATA_ERROR));
627
1162
628
	lzma_end(&strm);
1163
	src = lzma_index_init(NULL);
629
	free(buf);
1164
	assert_true(src != NULL);
1165
1166
	assert_lzma_ret(lzma_index_append(dest, NULL,
1167
			UNPADDED_SIZE_MIN, LZMA_VLI_MAX - 1), LZMA_OK);
1168
	assert_lzma_ret(lzma_index_append(src, NULL,
1169
			UNPADDED_SIZE_MIN, LZMA_VLI_MAX - 1), LZMA_OK);
1170
	assert_lzma_ret(lzma_index_cat(dest, src, NULL), LZMA_DATA_ERROR);
1171
1172
	lzma_index_end(dest, NULL);
1173
	lzma_index_end(src, NULL);
630
}
1174
}
631
1175
632
1176
1177
// Helper function for test_lzma_index_dup().
1178
static bool
1179
index_is_equal(const lzma_index *a, const lzma_index *b)
1180
{
1181
	// Compare only the Stream and Block sizes and offsets.
1182
	lzma_index_iter ra, rb;
1183
	lzma_index_iter_init(&ra, a);
1184
	lzma_index_iter_init(&rb, b);
1185
1186
	while (true) {
1187
		bool reta = lzma_index_iter_next(&ra, LZMA_INDEX_ITER_ANY);
1188
		bool retb = lzma_index_iter_next(&rb, LZMA_INDEX_ITER_ANY);
1189
1190
		// If both iterators finish at the same time, then the Indexes
1191
		// are identical.
1192
		if (reta)
1193
			return retb;
1194
1195
		if (ra.stream.number != rb.stream.number
1196
				|| ra.stream.block_count
1197
					!= rb.stream.block_count
1198
				|| ra.stream.compressed_offset
1199
					!= rb.stream.compressed_offset
1200
				|| ra.stream.uncompressed_offset
1201
					!= rb.stream.uncompressed_offset
1202
				|| ra.stream.compressed_size
1203
					!= rb.stream.compressed_size
1204
				|| ra.stream.uncompressed_size
1205
					!= rb.stream.uncompressed_size
1206
				|| ra.stream.padding
1207
					!= rb.stream.padding)
1208
			return false;
1209
1210
		if (ra.stream.block_count == 0)
1211
			continue;
1212
1213
		if (ra.block.number_in_file != rb.block.number_in_file
1214
				|| ra.block.compressed_file_offset
1215
					!= rb.block.compressed_file_offset
1216
				|| ra.block.uncompressed_file_offset
1217
					!= rb.block.uncompressed_file_offset
1218
				|| ra.block.number_in_stream
1219
					!= rb.block.number_in_stream
1220
				|| ra.block.compressed_stream_offset
1221
					!= rb.block.compressed_stream_offset
1222
				|| ra.block.uncompressed_stream_offset
1223
					!= rb.block.uncompressed_stream_offset
1224
				|| ra.block.uncompressed_size
1225
					!= rb.block.uncompressed_size
1226
				|| ra.block.unpadded_size
1227
					!= rb.block.unpadded_size
1228
				|| ra.block.total_size
1229
					!= rb.block.total_size)
1230
			return false;
1231
	}
1232
}
1233
1234
633
// Allocator that succeeds for the first two allocation but fails the rest.
1235
// Allocator that succeeds for the first two allocation but fails the rest.
634
static void *
1236
static void *
635
my_alloc(void *opaque, size_t a, size_t b)
1237
my_alloc(void *opaque, size_t a, size_t b)
Lines 643-689 Link Here
643
	return malloc(a * b);
1245
	return malloc(a * b);
644
}
1246
}
645
1247
646
static const lzma_allocator my_allocator = { &my_alloc, NULL, NULL };
1248
static const lzma_allocator test_index_dup_alloc = { &my_alloc, NULL, NULL };
647
1249
648
1250
649
int
1251
static void
650
main(void)
1252
test_lzma_index_dup(void)
651
{
1253
{
652
	test_equal();
1254
	lzma_index *idx = lzma_index_init(NULL);
1255
	assert_true(idx != NULL);
653
1256
654
	test_overflow();
1257
	// Test for the bug fix 21515d79d778b8730a434f151b07202d52a04611:
1258
	// liblzma: Fix lzma_index_dup() for empty Streams.
1259
	assert_lzma_ret(lzma_index_stream_padding(idx, 4), LZMA_OK);
1260
	lzma_index *copy = lzma_index_dup(idx, NULL);
1261
	assert_true(copy != NULL);
1262
	assert_true(index_is_equal(idx, copy));
1263
	lzma_index_end(copy, NULL);
655
1264
656
	lzma_index *i = create_empty();
1265
	// Test for the bug fix 3bf857edfef51374f6f3fffae3d817f57d3264a0:
657
	test_many(i);
1266
	// liblzma: Fix a memory leak in error path of lzma_index_dup().
658
	lzma_index_end(i, NULL);
1267
	// Use Valgrind to see that there are no leaks.
1268
	assert_lzma_ret(lzma_index_append(idx, NULL,
1269
			UNPADDED_SIZE_MIN, 10), LZMA_OK);
1270
	assert_lzma_ret(lzma_index_append(idx, NULL,
1271
			UNPADDED_SIZE_MIN * 2, 100), LZMA_OK);
1272
	assert_lzma_ret(lzma_index_append(idx, NULL,
1273
			UNPADDED_SIZE_MIN * 3, 1000), LZMA_OK);
659
1274
660
	i = create_small();
1275
	assert_true(lzma_index_dup(idx, &test_index_dup_alloc) == NULL);
661
	test_many(i);
662
	lzma_index_end(i, NULL);
663
1276
664
	i = create_big();
1277
	// Test a few streams and blocks
665
	test_many(i);
1278
	lzma_index *second = lzma_index_init(NULL);
666
	lzma_index_end(i, NULL);
1279
	assert_true(second != NULL);
667
1280
668
	test_cat();
1281
	assert_lzma_ret(lzma_index_stream_padding(second, 16), LZMA_OK);
669
1282
670
	test_locate();
1283
	lzma_index *third = lzma_index_init(NULL);
1284
	assert_true(third != NULL);
671
1285
672
	test_corrupt();
1286
	assert_lzma_ret(lzma_index_append(third, NULL,
1287
			UNPADDED_SIZE_MIN * 10, 40), LZMA_OK);
1288
	assert_lzma_ret(lzma_index_append(third, NULL,
1289
			UNPADDED_SIZE_MIN * 20, 400), LZMA_OK);
1290
	assert_lzma_ret(lzma_index_append(third, NULL,
1291
			UNPADDED_SIZE_MIN * 30, 4000), LZMA_OK);
673
1292
674
	// Test for the bug fix 21515d79d778b8730a434f151b07202d52a04611:
1293
	assert_lzma_ret(lzma_index_cat(idx, second, NULL), LZMA_OK);
675
	// liblzma: Fix lzma_index_dup() for empty Streams.
1294
	assert_lzma_ret(lzma_index_cat(idx, third, NULL), LZMA_OK);
676
	i = create_empty();
677
	expect(lzma_index_stream_padding(i, 4) == LZMA_OK);
678
	test_copy(i);
679
	lzma_index_end(i, NULL);
680
1295
681
	// Test for the bug fix 3bf857edfef51374f6f3fffae3d817f57d3264a0:
1296
	copy = lzma_index_dup(idx, NULL);
682
	// liblzma: Fix a memory leak in error path of lzma_index_dup().
1297
	assert_true(copy != NULL);
683
	// Use Valgrind to see that there are no leaks.
1298
	assert_true(index_is_equal(idx, copy));
684
	i = create_small();
685
	expect(lzma_index_dup(i, &my_allocator) == NULL);
686
	lzma_index_end(i, NULL);
687
1299
688
	return 0;
1300
	lzma_index_end(idx, NULL);
1301
}
1302
1303
#if defined(HAVE_ENCODERS) && defined(HAVE_DECODERS)
1304
static void
1305
verify_index_buffer(const lzma_index *idx, const uint8_t *buffer,
1306
		const size_t buffer_size)
1307
{
1308
	lzma_index_iter iter;
1309
	lzma_index_iter_init(&iter, idx);
1310
1311
	size_t buffer_pos = 0;
1312
1313
	// Verify Index Indicator
1314
	assert_uint_eq(buffer[buffer_pos++], 0);
1315
1316
	// Get Number of Records
1317
	lzma_vli number_of_records = 0;
1318
	lzma_vli block_count = 0;
1319
	assert_lzma_ret(lzma_vli_decode(&number_of_records, NULL, buffer,
1320
			&buffer_pos, buffer_size), LZMA_OK);
1321
1322
	while (!lzma_index_iter_next(&iter, LZMA_INDEX_ITER_ANY)) {
1323
		// Verify each Record (Unpadded Size, then Uncompressed Size).
1324
		// Verify Unpadded Size.
1325
		lzma_vli unpadded_size, uncompressed_size;
1326
		assert_lzma_ret(lzma_vli_decode(&unpadded_size,
1327
				NULL, buffer, &buffer_pos,
1328
				buffer_size), LZMA_OK);
1329
		assert_uint_eq(unpadded_size,
1330
				iter.block.unpadded_size);
1331
1332
		// Verify Uncompressed Size
1333
		assert_lzma_ret(lzma_vli_decode(&uncompressed_size,
1334
				NULL, buffer, &buffer_pos,
1335
				buffer_size), LZMA_OK);
1336
		assert_uint_eq(uncompressed_size,
1337
				iter.block.uncompressed_size);
1338
1339
		block_count++;
1340
	}
1341
1342
	// Verify Number of Records
1343
	assert_uint_eq(number_of_records, block_count);
1344
1345
	// Verify Index Padding
1346
	for (; buffer_pos % 4 != 0; buffer_pos++)
1347
		assert_uint_eq(buffer[buffer_pos], 0);
1348
1349
	// Verify CRC32
1350
	uint32_t crc32 = lzma_crc32(buffer, buffer_pos, 0);
1351
	assert_uint_eq(read32le(buffer + buffer_pos), crc32);
1352
}
1353
1354
1355
// In a few places the Index size is needed as a size_t but lzma_index_size()
1356
// returns lzma_vli.
1357
static size_t
1358
get_index_size(const lzma_index *idx)
1359
{
1360
	const lzma_vli size = lzma_index_size(idx);
1361
	assert_uint(size, <, SIZE_MAX);
1362
	return (size_t)size;
1363
}
1364
#endif
1365
1366
1367
static void
1368
test_lzma_index_encoder(void)
1369
{
1370
#if !defined(HAVE_ENCODERS) || !defined(HAVE_DECODERS)
1371
	assert_skip("Encoder or decoder support disabled");
1372
#else
1373
	lzma_index *idx = lzma_index_init(NULL);
1374
	assert_true(idx != NULL);
1375
1376
	lzma_stream strm = LZMA_STREAM_INIT;
1377
1378
	// First do basic NULL checks
1379
	assert_lzma_ret(lzma_index_encoder(NULL, NULL), LZMA_PROG_ERROR);
1380
	assert_lzma_ret(lzma_index_encoder(&strm, NULL), LZMA_PROG_ERROR);
1381
	assert_lzma_ret(lzma_index_encoder(NULL, idx), LZMA_PROG_ERROR);
1382
1383
	// Append three small Blocks
1384
	assert_lzma_ret(lzma_index_append(idx, NULL,
1385
			UNPADDED_SIZE_MIN, 10), LZMA_OK);
1386
	assert_lzma_ret(lzma_index_append(idx, NULL,
1387
			UNPADDED_SIZE_MIN * 2, 100), LZMA_OK);
1388
	assert_lzma_ret(lzma_index_append(idx, NULL,
1389
			UNPADDED_SIZE_MIN * 3, 1000), LZMA_OK);
1390
1391
	// Encode this lzma_index into a buffer
1392
	size_t buffer_size = get_index_size(idx);
1393
	uint8_t *buffer = tuktest_malloc(buffer_size);
1394
1395
	assert_lzma_ret(lzma_index_encoder(&strm, idx), LZMA_OK);
1396
1397
	strm.avail_out = buffer_size;
1398
	strm.next_out = buffer;
1399
1400
	assert_lzma_ret(lzma_code(&strm, LZMA_FINISH), LZMA_STREAM_END);
1401
	assert_uint_eq(strm.avail_out, 0);
1402
1403
	lzma_end(&strm);
1404
1405
	verify_index_buffer(idx, buffer, buffer_size);
1406
1407
	// Test with multiple Streams concatenated into 1 Index
1408
	lzma_index *second = lzma_index_init(NULL);
1409
	assert_true(second != NULL);
1410
1411
	// Include 1 Block
1412
	assert_lzma_ret(lzma_index_append(second, NULL,
1413
			UNPADDED_SIZE_MIN * 4, 20), LZMA_OK);
1414
1415
	// Include Stream Padding
1416
	assert_lzma_ret(lzma_index_stream_padding(second, 16), LZMA_OK);
1417
1418
	assert_lzma_ret(lzma_index_cat(idx, second, NULL), LZMA_OK);
1419
	buffer_size = get_index_size(idx);
1420
	buffer = tuktest_malloc(buffer_size);
1421
	assert_lzma_ret(lzma_index_encoder(&strm, idx), LZMA_OK);
1422
1423
	strm.avail_out = buffer_size;
1424
	strm.next_out = buffer;
1425
1426
	assert_lzma_ret(lzma_code(&strm, LZMA_FINISH), LZMA_STREAM_END);
1427
	assert_uint_eq(strm.avail_out, 0);
1428
1429
	verify_index_buffer(idx, buffer, buffer_size);
1430
1431
	lzma_end(&strm);
1432
#endif
1433
}
1434
1435
static void
1436
generate_index_decode_buffer(void)
1437
{
1438
#ifdef HAVE_ENCODERS
1439
	decode_test_index = lzma_index_init(NULL);
1440
	if (decode_test_index == NULL)
1441
		return;
1442
1443
	// Add 4 Blocks
1444
	for (uint32_t i = 1; i < 5; i++)
1445
		if (lzma_index_append(decode_test_index, NULL,
1446
				0x1000 * i, 0x100 * i) != LZMA_OK)
1447
			return;
1448
1449
	size_t size = lzma_index_size(decode_test_index);
1450
	decode_buffer = tuktest_malloc(size);
1451
1452
	if (lzma_index_buffer_encode(decode_test_index,
1453
			decode_buffer, &decode_buffer_size, size) != LZMA_OK)
1454
		decode_buffer_size = 0;
1455
#endif
1456
}
1457
1458
1459
#ifdef HAVE_DECODERS
1460
static void
1461
decode_index(const uint8_t *buffer, const size_t size, lzma_stream *strm,
1462
		lzma_ret expected_error)
1463
{
1464
	strm->avail_in = size;
1465
	strm->next_in = buffer;
1466
	assert_lzma_ret(lzma_code(strm, LZMA_FINISH), expected_error);
1467
}
1468
#endif
1469
1470
1471
static void
1472
test_lzma_index_decoder(void)
1473
{
1474
#ifndef HAVE_DECODERS
1475
	assert_skip("Decoder support disabled");
1476
#else
1477
	if (decode_buffer_size == 0)
1478
		assert_skip("Could not initialize decode test buffer");
1479
1480
	lzma_stream strm = LZMA_STREAM_INIT;
1481
1482
	assert_lzma_ret(lzma_index_decoder(NULL, NULL, MEMLIMIT),
1483
			LZMA_PROG_ERROR);
1484
	assert_lzma_ret(lzma_index_decoder(&strm, NULL, MEMLIMIT),
1485
			LZMA_PROG_ERROR);
1486
	assert_lzma_ret(lzma_index_decoder(NULL, &decode_test_index,
1487
			MEMLIMIT), LZMA_PROG_ERROR);
1488
1489
	// Do actual decode
1490
	lzma_index *idx;
1491
	assert_lzma_ret(lzma_index_decoder(&strm, &idx, MEMLIMIT),
1492
			LZMA_OK);
1493
1494
	decode_index(decode_buffer, decode_buffer_size, &strm,
1495
			LZMA_STREAM_END);
1496
1497
	// Compare results with expected
1498
	assert_true(index_is_equal(decode_test_index, idx));
1499
1500
	lzma_index_end(idx, NULL);
1501
1502
	// Test again with too low memory limit
1503
	assert_lzma_ret(lzma_index_decoder(&strm, &idx, 0), LZMA_OK);
1504
1505
	decode_index(decode_buffer, decode_buffer_size, &strm,
1506
			LZMA_MEMLIMIT_ERROR);
1507
1508
	uint8_t *corrupt_buffer = tuktest_malloc(decode_buffer_size);
1509
	memcpy(corrupt_buffer, decode_buffer, decode_buffer_size);
1510
1511
	assert_lzma_ret(lzma_index_decoder(&strm, &idx, MEMLIMIT),
1512
			LZMA_OK);
1513
1514
	// First corrupt the Index Indicator
1515
	corrupt_buffer[0] ^= 1;
1516
	decode_index(corrupt_buffer, decode_buffer_size, &strm,
1517
			LZMA_DATA_ERROR);
1518
	corrupt_buffer[0] ^= 1;
1519
1520
	// Corrupt something in the middle of Index
1521
	corrupt_buffer[decode_buffer_size / 2] ^= 1;
1522
	assert_lzma_ret(lzma_index_decoder(&strm, &idx, MEMLIMIT),
1523
			LZMA_OK);
1524
	decode_index(corrupt_buffer, decode_buffer_size, &strm,
1525
			LZMA_DATA_ERROR);
1526
	corrupt_buffer[decode_buffer_size / 2] ^= 1;
1527
1528
	// Corrupt CRC32
1529
	corrupt_buffer[decode_buffer_size - 1] ^= 1;
1530
	assert_lzma_ret(lzma_index_decoder(&strm, &idx, MEMLIMIT),
1531
			LZMA_OK);
1532
	decode_index(corrupt_buffer, decode_buffer_size, &strm,
1533
			LZMA_DATA_ERROR);
1534
	corrupt_buffer[decode_buffer_size - 1] ^= 1;
1535
1536
	// Corrupt Index Padding by setting it to non-zero
1537
	corrupt_buffer[decode_buffer_size - 5] ^= 1;
1538
	assert_lzma_ret(lzma_index_decoder(&strm, &idx, MEMLIMIT),
1539
			LZMA_OK);
1540
	decode_index(corrupt_buffer, decode_buffer_size, &strm,
1541
			LZMA_DATA_ERROR);
1542
	corrupt_buffer[decode_buffer_size - 1] ^= 1;
1543
1544
	lzma_end(&strm);
1545
#endif
1546
}
1547
1548
1549
static void
1550
test_lzma_index_buffer_encode(void)
1551
{
1552
#if !defined(HAVE_ENCODERS) || !defined(HAVE_DECODERS)
1553
	assert_skip("Encoder or decoder support disabled");
1554
#else
1555
	// More simple test than test_lzma_index_encoder() because
1556
	// currently lzma_index_buffer_encode() is mostly a wrapper
1557
	// around lzma_index_encoder() anyway.
1558
	lzma_index *idx = lzma_index_init(NULL);
1559
	assert_true(idx != NULL);
1560
1561
	assert_lzma_ret(lzma_index_append(idx, NULL,
1562
			UNPADDED_SIZE_MIN, 10), LZMA_OK);
1563
	assert_lzma_ret(lzma_index_append(idx, NULL,
1564
			UNPADDED_SIZE_MIN * 2, 100), LZMA_OK);
1565
	assert_lzma_ret(lzma_index_append(idx, NULL,
1566
			UNPADDED_SIZE_MIN * 3, 1000), LZMA_OK);
1567
1568
	size_t buffer_size = get_index_size(idx);
1569
	uint8_t *buffer = tuktest_malloc(buffer_size);
1570
	size_t out_pos = 1;
1571
1572
	// First test bad arguments
1573
	assert_lzma_ret(lzma_index_buffer_encode(NULL, NULL, NULL, 0),
1574
			LZMA_PROG_ERROR);
1575
	assert_lzma_ret(lzma_index_buffer_encode(idx, NULL, NULL, 0),
1576
			LZMA_PROG_ERROR);
1577
	assert_lzma_ret(lzma_index_buffer_encode(idx, buffer, NULL, 0),
1578
			LZMA_PROG_ERROR);
1579
	assert_lzma_ret(lzma_index_buffer_encode(idx, buffer, &out_pos,
1580
			0), LZMA_PROG_ERROR);
1581
	out_pos = 0;
1582
	assert_lzma_ret(lzma_index_buffer_encode(idx, buffer, &out_pos,
1583
			1), LZMA_BUF_ERROR);
1584
1585
	// Do encoding
1586
	assert_lzma_ret(lzma_index_buffer_encode(idx, buffer, &out_pos,
1587
			buffer_size), LZMA_OK);
1588
	assert_uint_eq(out_pos, buffer_size);
1589
1590
	// Validate results
1591
	verify_index_buffer(idx, buffer, buffer_size);
1592
#endif
1593
}
1594
1595
1596
static void
1597
test_lzma_index_buffer_decode(void)
1598
{
1599
#ifndef HAVE_DECODERS
1600
	assert_skip("Decoder support disabled");
1601
#else
1602
	if (decode_buffer_size == 0)
1603
		assert_skip("Could not initialize decode test buffer");
1604
1605
	// Simple test since test_lzma_index_decoder() covers most of the
1606
	// lzma_index_buffer_decode() code anyway.
1607
1608
	// First test NULL checks
1609
	assert_lzma_ret(lzma_index_buffer_decode(NULL, NULL, NULL, NULL,
1610
			NULL, 0), LZMA_PROG_ERROR);
1611
1612
	lzma_index *idx;
1613
	uint64_t memlimit = MEMLIMIT;
1614
	size_t in_pos = 0;
1615
1616
	assert_lzma_ret(lzma_index_buffer_decode(&idx, NULL, NULL, NULL,
1617
			NULL, 0), LZMA_PROG_ERROR);
1618
1619
	assert_lzma_ret(lzma_index_buffer_decode(&idx, &memlimit, NULL,
1620
			NULL, NULL, 0), LZMA_PROG_ERROR);
1621
1622
	assert_lzma_ret(lzma_index_buffer_decode(&idx, &memlimit, NULL,
1623
			decode_buffer, NULL, 0), LZMA_PROG_ERROR);
1624
1625
	assert_lzma_ret(lzma_index_buffer_decode(&idx, &memlimit, NULL,
1626
			decode_buffer, NULL, 0), LZMA_PROG_ERROR);
1627
1628
	assert_lzma_ret(lzma_index_buffer_decode(&idx, &memlimit, NULL,
1629
			decode_buffer, &in_pos, 0), LZMA_DATA_ERROR);
1630
1631
	in_pos = 1;
1632
	assert_lzma_ret(lzma_index_buffer_decode(&idx, &memlimit, NULL,
1633
			decode_buffer, &in_pos, 0), LZMA_PROG_ERROR);
1634
	in_pos = 0;
1635
1636
	// Test expected successful decode
1637
	assert_lzma_ret(lzma_index_buffer_decode(&idx, &memlimit, NULL,
1638
			decode_buffer, &in_pos, decode_buffer_size), LZMA_OK);
1639
1640
	assert_true(index_is_equal(decode_test_index, idx));
1641
1642
	// Test too small memlimit
1643
	in_pos = 0;
1644
	memlimit = 1;
1645
	assert_lzma_ret(lzma_index_buffer_decode(&idx, &memlimit, NULL,
1646
			decode_buffer, &in_pos, decode_buffer_size),
1647
			LZMA_MEMLIMIT_ERROR);
1648
	assert_uint(memlimit, >, 1);
1649
	assert_uint(memlimit, <, MEMLIMIT);
1650
#endif
1651
}
1652
1653
1654
extern int
1655
main(int argc, char **argv)
1656
{
1657
	tuktest_start(argc, argv);
1658
	generate_index_decode_buffer();
1659
	tuktest_run(test_lzma_index_memusage);
1660
	tuktest_run(test_lzma_index_memused);
1661
	tuktest_run(test_lzma_index_append);
1662
	tuktest_run(test_lzma_index_stream_flags);
1663
	tuktest_run(test_lzma_index_checks);
1664
	tuktest_run(test_lzma_index_stream_padding);
1665
	tuktest_run(test_lzma_index_stream_count);
1666
	tuktest_run(test_lzma_index_block_count);
1667
	tuktest_run(test_lzma_index_size);
1668
	tuktest_run(test_lzma_index_stream_size);
1669
	tuktest_run(test_lzma_index_total_size);
1670
	tuktest_run(test_lzma_index_file_size);
1671
	tuktest_run(test_lzma_index_uncompressed_size);
1672
	tuktest_run(test_lzma_index_iter_init);
1673
	tuktest_run(test_lzma_index_iter_rewind);
1674
	tuktest_run(test_lzma_index_iter_next);
1675
	tuktest_run(test_lzma_index_iter_locate);
1676
	tuktest_run(test_lzma_index_cat);
1677
	tuktest_run(test_lzma_index_dup);
1678
	tuktest_run(test_lzma_index_encoder);
1679
	tuktest_run(test_lzma_index_decoder);
1680
	tuktest_run(test_lzma_index_buffer_encode);
1681
	tuktest_run(test_lzma_index_buffer_decode);
1682
	lzma_index_end(decode_test_index, NULL);
1683
	return tuktest_end();
689
}
1684
}
(-)xz-5.2.5/tests/test_scripts.sh (-6 / +11 lines)
Lines 16-25 Link Here
16
16
17
for i in XZ XZDIFF XZGREP; do
17
for i in XZ XZDIFF XZGREP; do
18
	eval test -x "\$$i" && continue
18
	eval test -x "\$$i" && continue
19
	(exit 77)
20
	exit 77
19
	exit 77
21
done
20
done
22
21
22
# If decompression support is missing, this test is skipped.
23
# Installing the scripts in this case is a bit silly but they
24
# could still be used with other decompression tools so configure
25
# doesn't automatically disable scripts if decoders are disabled.
26
if grep 'define HAVE_DECODERS' ../config.h > /dev/null ; then
27
	:
28
else
29
	echo "Decompression support is disabled, skipping this test."
30
	exit 77
31
fi
32
23
PATH=`pwd`/../src/xz:$PATH
33
PATH=`pwd`/../src/xz:$PATH
24
export PATH
34
export PATH
25
35
Lines 32-38 Link Here
32
status=$?
42
status=$?
33
if test "$status" != 0 ; then
43
if test "$status" != 0 ; then
34
	echo "xzdiff with no changes exited with status $status != 0"
44
	echo "xzdiff with no changes exited with status $status != 0"
35
	(exit 1)
36
	exit 1
45
	exit 1
37
fi
46
fi
38
47
Lines 40-46 Link Here
40
status=$?
49
status=$?
41
if test "$status" != 1 ; then
50
if test "$status" != 1 ; then
42
	echo "xzdiff with changes exited with status $status != 1"
51
	echo "xzdiff with changes exited with status $status != 1"
43
	(exit 1)
44
	exit 1
52
	exit 1
45
fi
53
fi
46
54
Lines 48-54 Link Here
48
status=$?
56
status=$?
49
if test "$status" != 2 ; then
57
if test "$status" != 2 ; then
50
	echo "xzdiff with missing operand exited with status $status != 2"
58
	echo "xzdiff with missing operand exited with status $status != 2"
51
	(exit 1)
52
	exit 1
59
	exit 1
53
fi
60
fi
54
61
Lines 68-76 Link Here
68
	:
75
	:
69
else
76
else
70
	echo "unexpected output from xzgrep"
77
	echo "unexpected output from xzgrep"
71
	(exit 1)
72
	exit 1
78
	exit 1
73
fi
79
fi
74
80
75
(exit 0)
76
exit 0
81
exit 0
(-)xz-5.2.5/tests/test_stream_flags.c (-103 / +402 lines)
Lines 3-9 Link Here
3
/// \file       test_stream_flags.c
3
/// \file       test_stream_flags.c
4
/// \brief      Tests Stream Header and Stream Footer coders
4
/// \brief      Tests Stream Header and Stream Footer coders
5
//
5
//
6
//  Author:     Lasse Collin
6
//  Authors:    Jia Tan
7
//              Lasse Collin
7
//
8
//
8
//  This file has been put into the public domain.
9
//  This file has been put into the public domain.
9
//  You can do whatever you want with this file.
10
//  You can do whatever you want with this file.
Lines 13-180 Link Here
13
#include "tests.h"
14
#include "tests.h"
14
15
15
16
16
static lzma_stream_flags known_flags;
17
// Size of the Stream Flags field
17
static lzma_stream_flags decoded_flags;
18
// (taken from src/liblzma/common/stream_flags_common.h)
18
static uint8_t buffer[LZMA_STREAM_HEADER_SIZE];
19
#define XZ_STREAM_FLAGS_SIZE 2
19
20
21
#ifdef HAVE_ENCODERS
22
// Header and footer magic bytes for .xz file format
23
// (taken from src/liblzma/common/stream_flags_common.c)
24
static const uint8_t xz_header_magic[6]
25
		= { 0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00 };
26
static const uint8_t xz_footer_magic[2] = { 0x59, 0x5A };
27
#endif
20
28
21
static bool
29
22
validate(void)
30
#ifdef HAVE_ENCODERS
31
static void
32
stream_header_encode_helper(lzma_check check)
23
{
33
{
24
	// TODO: This could require the specific error type as an argument.
34
	lzma_stream_flags flags = {
25
	// We could also test that lzma_stream_flags_compare() gives
35
		.version = 0,
26
	// the correct return values in different situations.
36
		.check = check,
27
	return lzma_stream_flags_compare(&known_flags, &decoded_flags)
37
	};
28
			!= LZMA_OK;
38
39
	uint8_t header[LZMA_STREAM_HEADER_SIZE];
40
41
	// Encode Stream Header
42
	assert_lzma_ret(lzma_stream_header_encode(&flags, header), LZMA_OK);
43
44
	// Stream Header must start with Header Magic Bytes
45
	const uint32_t magic_size = sizeof(xz_header_magic);
46
	assert_array_eq(header, xz_header_magic, magic_size);
47
48
	// Next must come Stream Flags
49
	const uint8_t *encoded_stream_flags = header + magic_size;
50
51
	// First byte is always null-byte.
52
	// Second byte must have the Check ID in the lowest four bits
53
	// and the highest four bits zero.
54
	const uint8_t expected_stream_flags[] = { 0, check };
55
	assert_array_eq(encoded_stream_flags, expected_stream_flags,
56
			XZ_STREAM_FLAGS_SIZE);
57
58
	// Last part is the CRC32 of the Stream Flags
59
	const uint8_t *crc_ptr = encoded_stream_flags + XZ_STREAM_FLAGS_SIZE;
60
	const uint32_t expected_crc = lzma_crc32(expected_stream_flags,
61
			XZ_STREAM_FLAGS_SIZE, 0);
62
	assert_uint_eq(read32le(crc_ptr), expected_crc);
29
}
63
}
64
#endif
30
65
31
66
32
static bool
67
static void
33
test_header_decoder(lzma_ret expected_ret)
68
test_lzma_stream_header_encode(void)
34
{
69
{
35
	memcrap(&decoded_flags, sizeof(decoded_flags));
70
#ifndef HAVE_ENCODERS
71
	assert_skip("Encoder support disabled");
72
#else
73
	for (lzma_check i = 0; i < LZMA_CHECK_ID_MAX; i++)
74
		stream_header_encode_helper(i);
36
75
37
	if (lzma_stream_header_decode(&decoded_flags, buffer) != expected_ret)
76
	lzma_stream_flags flags = {
38
		return true;
77
		.version = 0,
78
		.check = LZMA_CHECK_CRC32
79
	};
39
80
40
	if (expected_ret != LZMA_OK)
81
	uint8_t header[LZMA_STREAM_HEADER_SIZE];
41
		return false;
42
82
43
	// Header doesn't have Backward Size, so make
83
	// Should fail if version > 0
44
	// lzma_stream_flags_compare() ignore it.
84
	flags.version = 1;
45
	decoded_flags.backward_size = LZMA_VLI_UNKNOWN;
85
	assert_lzma_ret(lzma_stream_header_encode(&flags, header),
46
	return validate();
86
			LZMA_OPTIONS_ERROR);
87
	flags.version = 0;
88
89
	// Should fail if Check ID is invalid
90
	flags.check = INVALID_LZMA_CHECK_ID;
91
	assert_lzma_ret(lzma_stream_header_encode(&flags, header),
92
			LZMA_PROG_ERROR);
93
	flags.check = LZMA_CHECK_CRC32;
94
95
	// Should pass even if Backward Size is invalid
96
	// because Stream Header doesn't have that field.
97
	flags.backward_size = LZMA_VLI_MAX + 1;
98
	assert_lzma_ret(lzma_stream_header_encode(&flags, header), LZMA_OK);
99
#endif
47
}
100
}
48
101
49
102
103
#if defined(HAVE_ENCODERS)
50
static void
104
static void
51
test_header(void)
105
stream_footer_encode_helper(lzma_check check)
52
{
106
{
53
	memcrap(buffer, sizeof(buffer));
107
	lzma_stream_flags flags = {
54
	expect(lzma_stream_header_encode(&known_flags, buffer) == LZMA_OK);
108
		.version = 0,
55
	succeed(test_header_decoder(LZMA_OK));
109
		.check = check,
110
		.backward_size = LZMA_BACKWARD_SIZE_MIN,
111
	};
112
113
	uint8_t footer[LZMA_STREAM_HEADER_SIZE];
114
115
	// Encode Stream Footer
116
	assert_lzma_ret(lzma_stream_footer_encode(&flags, footer), LZMA_OK);
117
118
	// Stream Footer must start with CRC32
119
	const uint32_t crc = read32le(footer);
120
	const uint32_t expected_crc = lzma_crc32(footer + sizeof(uint32_t),
121
			LZMA_STREAM_HEADER_SIZE - (sizeof(uint32_t) +
122
			sizeof(xz_footer_magic)), 0);
123
	assert_uint_eq(crc, expected_crc);
124
125
	// Next the Backward Size
126
	const uint32_t backwards_size = read32le(footer + sizeof(uint32_t));
127
	const uint32_t expected_backwards_size = flags.backward_size / 4 - 1;
128
	assert_uint_eq(backwards_size, expected_backwards_size);
129
130
	// Next the Stream Flags
131
	const uint8_t *stream_flags = footer + sizeof(uint32_t) * 2;
132
133
	// First byte must be null
134
	assert_uint_eq(stream_flags[0], 0);
135
136
	// Second byte must have the Check ID in the lowest four bits
137
	// and the highest four bits zero.
138
	assert_uint_eq(stream_flags[1], check);
139
140
	// And ends with Footer Magic Bytes
141
	const uint8_t *expected_footer_magic = stream_flags +
142
			XZ_STREAM_FLAGS_SIZE;
143
	assert_array_eq(expected_footer_magic, xz_footer_magic,
144
			sizeof(xz_footer_magic));
56
}
145
}
146
#endif
57
147
58
148
59
static bool
149
static void
60
test_footer_decoder(lzma_ret expected_ret)
150
test_lzma_stream_footer_encode(void)
61
{
151
{
62
	memcrap(&decoded_flags, sizeof(decoded_flags));
152
#ifndef HAVE_ENCODERS
153
	assert_skip("Encoder support disabled");
154
#else
155
	for (lzma_check i = 0; i < LZMA_CHECK_ID_MAX; i++)
156
		stream_footer_encode_helper(i);
63
157
64
	if (lzma_stream_footer_decode(&decoded_flags, buffer) != expected_ret)
158
	lzma_stream_flags flags = {
65
		return true;
159
		.version = 0,
160
		.backward_size = LZMA_BACKWARD_SIZE_MIN,
161
		.check = LZMA_CHECK_CRC32
162
	};
66
163
67
	if (expected_ret != LZMA_OK)
164
	uint8_t footer[LZMA_STREAM_HEADER_SIZE];
68
		return false;
69
165
70
	return validate();
166
	// Should fail if version > 0
167
	flags.version = 1;
168
	assert_lzma_ret(lzma_stream_footer_encode(&flags, footer),
169
			LZMA_OPTIONS_ERROR);
170
	flags.version = 0;
171
172
	// Should fail if Check ID is invalid
173
	flags.check = INVALID_LZMA_CHECK_ID;
174
	assert_lzma_ret(lzma_stream_footer_encode(&flags, footer),
175
			LZMA_PROG_ERROR);
176
177
	// Should fail if Backward Size is invalid
178
	flags.backward_size -= 1;
179
	assert_lzma_ret(lzma_stream_footer_encode(&flags, footer),
180
			LZMA_PROG_ERROR);
181
	flags.backward_size += 2;
182
	assert_lzma_ret(lzma_stream_footer_encode(&flags, footer),
183
			LZMA_PROG_ERROR);
184
	flags.backward_size = LZMA_BACKWARD_SIZE_MAX + 4;
185
	assert_lzma_ret(lzma_stream_footer_encode(&flags, footer),
186
			LZMA_PROG_ERROR);
187
#endif
71
}
188
}
72
189
73
190
191
#if defined(HAVE_ENCODERS) && defined(HAVE_DECODERS)
74
static void
192
static void
75
test_footer(void)
193
stream_header_decode_helper(lzma_check check)
76
{
194
{
77
	memcrap(buffer, sizeof(buffer));
195
	lzma_stream_flags flags = {
78
	expect(lzma_stream_footer_encode(&known_flags, buffer) == LZMA_OK);
196
		.version = 0,
79
	succeed(test_footer_decoder(LZMA_OK));
197
		.check = check
198
	};
199
200
	uint8_t header[LZMA_STREAM_HEADER_SIZE];
201
202
	assert_lzma_ret(lzma_stream_header_encode(&flags, header), LZMA_OK);
203
204
	lzma_stream_flags dest_flags;
205
	assert_lzma_ret(lzma_stream_header_decode(&dest_flags, header),
206
			LZMA_OK);
207
208
	// Version should be 0
209
	assert_uint_eq(dest_flags.version, 0);
210
211
	// Backward Size should be LZMA_VLI_UNKNOWN
212
	assert_uint_eq(dest_flags.backward_size, LZMA_VLI_UNKNOWN);
213
214
	// Check ID must equal the argument given to this function.
215
	assert_uint_eq(dest_flags.check, check);
80
}
216
}
217
#endif
81
218
82
219
83
static void
220
static void
84
test_encode_invalid(void)
221
test_lzma_stream_header_decode(void)
85
{
222
{
86
	known_flags.check = (lzma_check)(LZMA_CHECK_ID_MAX + 1);
223
#if !defined(HAVE_ENCODERS) || !defined(HAVE_DECODERS)
87
	known_flags.backward_size = 1024;
224
	assert_skip("Encoder or decoder support disabled");
225
#else
226
	for (lzma_check i = 0; i < LZMA_CHECK_ID_MAX; i++)
227
		stream_header_decode_helper(i);
88
228
89
	expect(lzma_stream_header_encode(&known_flags, buffer)
229
	lzma_stream_flags flags = {
90
			== LZMA_PROG_ERROR);
230
		.version = 0,
231
		.check = LZMA_CHECK_CRC32
232
	};
91
233
92
	expect(lzma_stream_footer_encode(&known_flags, buffer)
234
	uint8_t header[LZMA_STREAM_HEADER_SIZE];
93
			== LZMA_PROG_ERROR);
235
	lzma_stream_flags dest;
94
236
95
	known_flags.check = (lzma_check)(-1);
237
	// First encode known flags to header buffer
238
	assert_lzma_ret(lzma_stream_header_encode(&flags, header), LZMA_OK);
96
239
97
	expect(lzma_stream_header_encode(&known_flags, buffer)
240
	// Should fail if magic bytes do not match
98
			== LZMA_PROG_ERROR);
241
	header[0] ^= 1;
242
	assert_lzma_ret(lzma_stream_header_decode(&dest, header),
243
			LZMA_FORMAT_ERROR);
244
	header[0] ^= 1;
99
245
100
	expect(lzma_stream_footer_encode(&known_flags, buffer)
246
	// Should fail if a reserved bit is set
101
			== LZMA_PROG_ERROR);
247
	uint8_t *stream_flags = header + sizeof(xz_header_magic);
248
	stream_flags[0] = 1;
102
249
103
	known_flags.check = LZMA_CHECK_NONE;
250
	// Need to adjust CRC32 after making a change since the CRC32
104
	known_flags.backward_size = 0;
251
	// is verified before decoding the Stream Flags field.
252
	uint8_t *crc32_ptr = header + sizeof(xz_header_magic)
253
			+ XZ_STREAM_FLAGS_SIZE;
254
	const uint32_t crc_orig = read32le(crc32_ptr);
255
	uint32_t new_crc32 = lzma_crc32(
256
			stream_flags, XZ_STREAM_FLAGS_SIZE, 0);
257
	write32le(crc32_ptr, new_crc32);
258
	assert_lzma_ret(lzma_stream_header_decode(&dest, header),
259
			LZMA_OPTIONS_ERROR);
260
	stream_flags[0] = 0;
261
	write32le(crc32_ptr, crc_orig);
105
262
106
	// Header encoder ignores backward_size.
263
	// Should fail if upper bits of check ID are set
107
	expect(lzma_stream_header_encode(&known_flags, buffer) == LZMA_OK);
264
	stream_flags[1] |= 0xF0;
265
	new_crc32 = lzma_crc32(stream_flags, XZ_STREAM_FLAGS_SIZE, 0);
266
	write32le(crc32_ptr, new_crc32);
267
	assert_lzma_ret(lzma_stream_header_decode(&dest, header),
268
			LZMA_OPTIONS_ERROR);
269
	stream_flags[1] = flags.check;
270
	write32le(crc32_ptr, crc_orig);
108
271
109
	expect(lzma_stream_footer_encode(&known_flags, buffer)
272
	// Should fail if CRC32 does not match.
110
			== LZMA_PROG_ERROR);
273
	// First, alter a byte in the Stream Flags.
274
	stream_flags[0] = 1;
275
	assert_lzma_ret(lzma_stream_header_decode(&dest, header),
276
			LZMA_DATA_ERROR);
277
	stream_flags[0] = 0;
111
278
112
	known_flags.backward_size = LZMA_VLI_MAX;
279
	// Next, change the CRC32.
280
	*crc32_ptr ^= 1;
281
	assert_lzma_ret(lzma_stream_header_decode(&dest, header),
282
			LZMA_DATA_ERROR);
283
#endif
284
}
113
285
114
	expect(lzma_stream_header_encode(&known_flags, buffer) == LZMA_OK);
115
286
116
	expect(lzma_stream_footer_encode(&known_flags, buffer)
287
#if defined(HAVE_ENCODERS) && defined(HAVE_DECODERS)
117
			== LZMA_PROG_ERROR);
288
static void
289
stream_footer_decode_helper(lzma_check check)
290
{
291
	lzma_stream_flags flags = {
292
		.version = 0,
293
		.backward_size = LZMA_BACKWARD_SIZE_MIN,
294
		.check = check,
295
	};
296
297
	uint8_t footer[LZMA_STREAM_HEADER_SIZE];
298
	assert_lzma_ret(lzma_stream_footer_encode(&flags, footer), LZMA_OK);
299
300
	lzma_stream_flags dest_flags;
301
	assert_lzma_ret(lzma_stream_footer_decode(&dest_flags, footer),
302
			LZMA_OK);
303
304
	// Version should be 0.
305
	assert_uint_eq(dest_flags.version, 0);
306
307
	// Backward Size should equal the value from the flags.
308
	assert_uint_eq(dest_flags.backward_size, flags.backward_size);
309
310
	// Check ID must equal argument given to this function.
311
	assert_uint_eq(dest_flags.check, check);
118
}
312
}
313
#endif
119
314
120
315
121
static void
316
static void
122
test_decode_invalid(void)
317
test_lzma_stream_footer_decode(void)
123
{
318
{
124
	known_flags.check = LZMA_CHECK_NONE;
319
#if !defined(HAVE_ENCODERS) || !defined(HAVE_DECODERS)
125
	known_flags.backward_size = 1024;
320
	assert_skip("Encoder or decoder support disabled");
321
#else
322
	for (lzma_check i = 0; i < LZMA_CHECK_ID_MAX; i++)
323
		stream_footer_decode_helper(i);
126
324
127
	expect(lzma_stream_header_encode(&known_flags, buffer) == LZMA_OK);
325
	lzma_stream_flags flags = {
326
		.version = 0,
327
		.check = LZMA_CHECK_CRC32,
328
		.backward_size = LZMA_BACKWARD_SIZE_MIN
329
	};
128
330
129
	// Test 1 (invalid Magic Bytes)
331
	uint8_t footer[LZMA_STREAM_HEADER_SIZE];
130
	buffer[5] ^= 1;
332
	lzma_stream_flags dest;
131
	succeed(test_header_decoder(LZMA_FORMAT_ERROR));
132
	buffer[5] ^= 1;
133
333
134
	// Test 2a (valid CRC32)
334
	// First encode known flags to the footer buffer
135
	uint32_t crc = lzma_crc32(buffer + 6, 2, 0);
335
	assert_lzma_ret(lzma_stream_footer_encode(&flags, footer), LZMA_OK);
136
	write32le(buffer + 8, crc);
137
	succeed(test_header_decoder(LZMA_OK));
138
336
139
	// Test 2b (invalid Stream Flags with valid CRC32)
337
	// Should fail if magic bytes do not match
140
	buffer[6] ^= 0x20;
338
	footer[LZMA_STREAM_HEADER_SIZE - 1] ^= 1;
141
	crc = lzma_crc32(buffer + 6, 2, 0);
339
	assert_lzma_ret(lzma_stream_footer_decode(&dest, footer),
142
	write32le(buffer + 8, crc);
340
			LZMA_FORMAT_ERROR);
143
	succeed(test_header_decoder(LZMA_OPTIONS_ERROR));
341
	footer[LZMA_STREAM_HEADER_SIZE - 1] ^= 1;
144
342
145
	// Test 3 (invalid CRC32)
343
	// Should fail if a reserved bit is set.
146
	expect(lzma_stream_header_encode(&known_flags, buffer) == LZMA_OK);
344
	// In the Stream Footer, the Stream Flags follow the CRC32 (4 bytes)
147
	buffer[9] ^= 1;
345
	// and the Backward Size (4 bytes)
148
	succeed(test_header_decoder(LZMA_DATA_ERROR));
346
	uint8_t *stream_flags = footer + sizeof(uint32_t) * 2;
347
	stream_flags[0] = 1;
149
348
150
	// Test 4 (invalid Stream Flags with valid CRC32)
349
	// Need to adjust the CRC32 so it will not fail that check instead
151
	expect(lzma_stream_footer_encode(&known_flags, buffer) == LZMA_OK);
350
	uint8_t *crc32_ptr = footer;
152
	buffer[9] ^= 0x40;
351
	const uint32_t crc_orig = read32le(crc32_ptr);
153
	crc = lzma_crc32(buffer + 4, 6, 0);
352
	uint8_t *backward_size = footer + sizeof(uint32_t);
154
	write32le(buffer, crc);
353
	uint32_t new_crc32 = lzma_crc32(backward_size, sizeof(uint32_t) +
155
	succeed(test_footer_decoder(LZMA_OPTIONS_ERROR));
354
			XZ_STREAM_FLAGS_SIZE, 0);
355
	write32le(crc32_ptr, new_crc32);
356
	assert_lzma_ret(lzma_stream_footer_decode(&dest, footer),
357
			LZMA_OPTIONS_ERROR);
358
	stream_flags[0] = 0;
359
	write32le(crc32_ptr, crc_orig);
156
360
157
	// Test 5 (invalid Magic Bytes)
361
	// Should fail if upper bits of check ID are set
158
	expect(lzma_stream_footer_encode(&known_flags, buffer) == LZMA_OK);
362
	stream_flags[1] |= 0xF0;
159
	buffer[11] ^= 1;
363
	new_crc32 = lzma_crc32(backward_size, sizeof(uint32_t) +
160
	succeed(test_footer_decoder(LZMA_FORMAT_ERROR));
364
			XZ_STREAM_FLAGS_SIZE, 0);
365
	write32le(crc32_ptr, new_crc32);
366
	assert_lzma_ret(lzma_stream_footer_decode(&dest, footer),
367
			LZMA_OPTIONS_ERROR);
368
	stream_flags[1] = flags.check;
369
	write32le(crc32_ptr, crc_orig);
370
371
	// Should fail if CRC32 does not match.
372
	// First, alter a byte in the Stream Flags.
373
	stream_flags[0] = 1;
374
	assert_lzma_ret(lzma_stream_footer_decode(&dest, footer),
375
			LZMA_DATA_ERROR);
376
	stream_flags[0] = 0;
377
378
	// Next, change the CRC32
379
	*crc32_ptr ^= 1;
380
	assert_lzma_ret(lzma_stream_footer_decode(&dest, footer),
381
			LZMA_DATA_ERROR);
382
#endif
161
}
383
}
162
384
163
385
164
int
386
static void
165
main(void)
387
test_lzma_stream_flags_compare(void)
166
{
388
{
167
	// Valid headers
389
	lzma_stream_flags first = {
168
	known_flags.backward_size = 1024;
390
		.version = 0,
169
	for (lzma_check check = LZMA_CHECK_NONE;
391
		.backward_size = LZMA_BACKWARD_SIZE_MIN,
170
			check <= LZMA_CHECK_ID_MAX; ++check) {
392
		.check = LZMA_CHECK_CRC32,
171
		test_header();
393
	};
172
		test_footer();
394
395
	lzma_stream_flags second = first;
396
397
	// First test should pass
398
	assert_lzma_ret(lzma_stream_flags_compare(&first, &second), LZMA_OK);
399
400
	// Altering either version should cause an error
401
	first.version = 1;
402
	assert_lzma_ret(lzma_stream_flags_compare(&first, &second),
403
			LZMA_OPTIONS_ERROR);
404
	second.version = 1;
405
	assert_lzma_ret(lzma_stream_flags_compare(&first, &second),
406
			LZMA_OPTIONS_ERROR);
407
	first.version = 0;
408
	assert_lzma_ret(lzma_stream_flags_compare(&first, &second),
409
			LZMA_OPTIONS_ERROR);
410
	second.version = 0;
411
412
	// Check types must be under the maximum
413
	first.check = INVALID_LZMA_CHECK_ID;
414
	assert_lzma_ret(lzma_stream_flags_compare(&first, &second),
415
			LZMA_PROG_ERROR);
416
	second.check = INVALID_LZMA_CHECK_ID;
417
	assert_lzma_ret(lzma_stream_flags_compare(&first, &second),
418
			LZMA_PROG_ERROR);
419
	first.check = LZMA_CHECK_CRC32;
420
	assert_lzma_ret(lzma_stream_flags_compare(&first, &second),
421
			LZMA_PROG_ERROR);
422
	second.check = LZMA_CHECK_CRC32;
423
424
	// Check types must be equal
425
	for (lzma_check i = 0; i < LZMA_CHECK_ID_MAX; i++) {
426
		first.check = i;
427
		if (i == second.check)
428
			assert_lzma_ret(lzma_stream_flags_compare(&first,
429
					&second), LZMA_OK);
430
		else
431
			assert_lzma_ret(lzma_stream_flags_compare(&first,
432
					&second), LZMA_DATA_ERROR);
173
	}
433
	}
434
	first.check = LZMA_CHECK_CRC32;
174
435
175
	// Invalid headers
436
	// Backward Size comparison is skipped if either are LZMA_VLI_UNKNOWN
176
	test_encode_invalid();
437
	first.backward_size = LZMA_VLI_UNKNOWN;
177
	test_decode_invalid();
438
	assert_lzma_ret(lzma_stream_flags_compare(&first, &second), LZMA_OK);
439
	second.backward_size = LZMA_VLI_MAX + 1;
440
	assert_lzma_ret(lzma_stream_flags_compare(&first, &second), LZMA_OK);
441
	second.backward_size = LZMA_BACKWARD_SIZE_MIN;
178
442
179
	return 0;
443
	// Backward Sizes need to be valid
444
	first.backward_size = LZMA_VLI_MAX + 4;
445
	assert_lzma_ret(lzma_stream_flags_compare(&first, &second),
446
			LZMA_PROG_ERROR);
447
	second.backward_size = LZMA_VLI_MAX + 4;
448
	assert_lzma_ret(lzma_stream_flags_compare(&first, &second),
449
			LZMA_PROG_ERROR);
450
	first.backward_size = LZMA_BACKWARD_SIZE_MIN;
451
	assert_lzma_ret(lzma_stream_flags_compare(&first, &second),
452
			LZMA_PROG_ERROR);
453
	second.backward_size = LZMA_BACKWARD_SIZE_MIN;
454
455
	// Backward Sizes must be equal
456
	second.backward_size = first.backward_size + 4;
457
	assert_lzma_ret(lzma_stream_flags_compare(&first, &second),
458
			LZMA_DATA_ERROR);
459
460
	// Should fail if Backward Sizes are > LZMA_BACKWARD_SIZE_MAX
461
	// even though they are equal
462
	first.backward_size = LZMA_BACKWARD_SIZE_MAX + 1;
463
	second.backward_size = LZMA_BACKWARD_SIZE_MAX + 1;
464
	assert_lzma_ret(lzma_stream_flags_compare(&first, &second),
465
			LZMA_PROG_ERROR);
466
}
467
468
469
extern int
470
main(int argc, char **argv)
471
{
472
	tuktest_start(argc, argv);
473
	tuktest_run(test_lzma_stream_header_encode);
474
	tuktest_run(test_lzma_stream_footer_encode);
475
	tuktest_run(test_lzma_stream_header_decode);
476
	tuktest_run(test_lzma_stream_footer_decode);
477
	tuktest_run(test_lzma_stream_flags_compare);
478
	return tuktest_end();
180
}
479
}
(-)xz-5.2.5/tests/tests.h (-91 / +47 lines)
Lines 16-119 Link Here
16
#include "sysdefs.h"
16
#include "sysdefs.h"
17
#include "tuklib_integer.h"
17
#include "tuklib_integer.h"
18
#include "lzma.h"
18
#include "lzma.h"
19
#include "tuktest.h"
19
20
20
#include <stdio.h>
21
21
22
#define memcrap(buf, size) memset(buf, 0xFD, size)
22
// Invalid value for the lzma_check enumeration. This must be positive
23
// but small enough to fit into signed char since the underlying type might
24
// one some platform be a signed char.
25
//
26
// Don't put LZMA_ at the beginning of the name so that it is obvious that
27
// this constant doesn't come from the API headers.
28
#define INVALID_LZMA_CHECK_ID ((lzma_check)(LZMA_CHECK_ID_MAX + 1))
23
29
24
#define expect(test) ((test) ? 0 : (fprintf(stderr, "%s:%d: %s\n", \
25
	__FILE__, __LINE__, #test), abort(), 0))
26
30
27
#define succeed(test) expect(!(test))
31
// This table and macro allow getting more readable error messages when
32
// comparing the lzma_ret enumeration values.
33
static const char enum_strings_lzma_ret[][24] = {
34
	"LZMA_OK",
35
	"LZMA_STREAM_END",
36
	"LZMA_NO_CHECK",
37
	"LZMA_UNSUPPORTED_CHECK",
38
	"LZMA_GET_CHECK",
39
	"LZMA_MEM_ERROR",
40
	"LZMA_MEMLIMIT_ERROR",
41
	"LZMA_FORMAT_ERROR",
42
	"LZMA_OPTIONS_ERROR",
43
	"LZMA_DATA_ERROR",
44
	"LZMA_BUF_ERROR",
45
	"LZMA_PROG_ERROR",
46
	"LZMA_SEEK_NEEDED",
47
};
28
48
29
#define fail(test) expect(test)
49
#define assert_lzma_ret(test_expr, ref_val) \
50
	assert_enum_eq(test_expr, ref_val, enum_strings_lzma_ret)
30
51
31
52
32
static inline const char *
53
static const char enum_strings_lzma_check[][24] = {
33
lzma_ret_sym(lzma_ret ret)
54
	"LZMA_CHECK_NONE",
34
{
55
	"LZMA_CHECK_CRC32",
35
	if ((unsigned int)(ret) > LZMA_PROG_ERROR)
56
	"LZMA_CHECK_UNKNOWN_2",
36
		return "UNKNOWN_ERROR";
57
	"LZMA_CHECK_UNKNOWN_3",
58
	"LZMA_CHECK_CRC64",
59
	"LZMA_CHECK_UNKNOWN_5",
60
	"LZMA_CHECK_UNKNOWN_6",
61
	"LZMA_CHECK_UNKNOWN_7",
62
	"LZMA_CHECK_UNKNOWN_8",
63
	"LZMA_CHECK_UNKNOWN_9",
64
	"LZMA_CHECK_SHA256",
65
	"LZMA_CHECK_UNKNOWN_11",
66
	"LZMA_CHECK_UNKNOWN_12",
67
	"LZMA_CHECK_UNKNOWN_13",
68
	"LZMA_CHECK_UNKNOWN_14",
69
	"LZMA_CHECK_UNKNOWN_15",
70
};
37
71
38
	static const char *msgs[] = {
72
#define assert_lzma_check(test_expr, ref_val) \
39
		"LZMA_OK",
73
	assert_enum_eq(test_expr, ref_val, enum_strings_lzma_check)
40
		"LZMA_STREAM_END",
41
		"LZMA_NO_CHECK",
42
		"LZMA_UNSUPPORTED_CHECK",
43
		"LZMA_GET_CHECK",
44
		"LZMA_MEM_ERROR",
45
		"LZMA_MEMLIMIT_ERROR",
46
		"LZMA_FORMAT_ERROR",
47
		"LZMA_OPTIONS_ERROR",
48
		"LZMA_DATA_ERROR",
49
		"LZMA_BUF_ERROR",
50
		"LZMA_PROG_ERROR"
51
	};
52
53
	return msgs[ret];
54
}
55
56
57
static inline bool
58
coder_loop(lzma_stream *strm, uint8_t *in, size_t in_size,
59
		uint8_t *out, size_t out_size,
60
		lzma_ret expected_ret, lzma_action finishing_action)
61
{
62
	size_t in_left = in_size;
63
	size_t out_left = out_size > 0 ? out_size + 1 : 0;
64
	lzma_action action = LZMA_RUN;
65
	lzma_ret ret;
66
67
	strm->next_in = NULL;
68
	strm->avail_in = 0;
69
	strm->next_out = NULL;
70
	strm->avail_out = 0;
71
72
	while (true) {
73
		if (in_left > 0) {
74
			if (--in_left == 0)
75
				action = finishing_action;
76
77
			strm->next_in = in++;
78
			strm->avail_in = 1;
79
		}
80
81
		if (out_left > 0) {
82
			--out_left;
83
			strm->next_out = out++;
84
			strm->avail_out = 1;
85
		}
86
87
		ret = lzma_code(strm, action);
88
		if (ret != LZMA_OK)
89
			break;
90
	}
91
92
	bool error = false;
93
94
	if (ret != expected_ret)
95
		error = true;
96
97
	if (strm->total_in != in_size || strm->total_out != out_size)
98
		error = true;
99
100
	return error;
101
}
102
103
104
static inline bool
105
decoder_loop_ret(lzma_stream *strm, uint8_t *in, size_t in_size,
106
		lzma_ret expected_ret)
107
{
108
	return coder_loop(strm, in, in_size, NULL, 0, expected_ret, LZMA_RUN);
109
}
110
111
112
static inline bool
113
decoder_loop(lzma_stream *strm, uint8_t *in, size_t in_size)
114
{
115
	return coder_loop(strm, in, in_size, NULL, 0,
116
			LZMA_STREAM_END, LZMA_RUN);
117
}
118
74
119
#endif
75
#endif
(-)xz-5.2.5/windows/INSTALL-MSVC.txt (-7 / +12 lines)
Lines 18-25 Link Here
18
Building
18
Building
19
--------
19
--------
20
20
21
    The following files in this directory are for MSVC:
21
    It is recommended to use CMake to generate build files for MSVC.
22
    The project files in vs201x directories will be removed in the
23
    future (5.4.x releases will include them still).
22
24
25
    Descriptions of the files in the vs201x directories:
26
23
        config.h              liblzma configuration #defines for MSVC.
27
        config.h              liblzma configuration #defines for MSVC.
24
        liblzma.vcxproj       This builds static liblzma.
28
        liblzma.vcxproj       This builds static liblzma.
25
        liblzma_dll.vcxproj   This builds liblzma.dll.
29
        liblzma_dll.vcxproj   This builds liblzma.dll.
Lines 34-51 Link Here
34
    This means that you may need to either install Windows SDK 8.1 or
38
    This means that you may need to either install Windows SDK 8.1 or
35
    you may need to set the target platform version before building.
39
    you may need to set the target platform version before building.
36
40
37
    Currently no test programs are built or run under MSVC.
41
    Currently no test programs are built or run under MSVC from the
42
    project files. CMake-based builds include tests too.
38
43
39
    MSVC gives a bunch of compiler warnings. Some warnings are specific
40
    to 32-bit or 64-bit build and some appear for both builds. These
41
    are known and shouldn't be a problem. Some of them will probably
42
    be fixed in the future.
43
44
44
45
Notes
45
Notes
46
-----
46
-----
47
47
48
    liblzma API headers declare the functions with __declspec(dllimport)
48
    liblzma API headers declare the functions with __declspec(dllimport)
49
    by default. To avoid this when using static liblzma from your code,
49
    by default. To avoid this when using static liblzma from your code,
50
    #define LZMA_API_STATIC before #including <lzma.h>.
50
    #define LZMA_API_STATIC before #including <lzma.h>.
51
52
    MSVC gives a bunch of compiler warnings. Some warnings are specific
53
    to 32-bit or 64-bit build and some appear for both builds. These
54
    are known and shouldn't be a problem. Some of them will probably
55
    be fixed in the future.
51
56
(-)xz-5.2.5/windows/INSTALL-MinGW.txt (-5 / +5 lines)
Lines 32-38 Link Here
32
    So you need to pick between MinGW and MinGW-w32 when building
32
    So you need to pick between MinGW and MinGW-w32 when building
33
    32-bit version. You don't need both.
33
    32-bit version. You don't need both.
34
34
35
    You might find 7-Zip <http://7-zip.org/> handy when extracting
35
    You might find 7-Zip <https://7-zip.org/> handy when extracting
36
    some files. The ready-made build script build.bash will also use
36
    some files. The ready-made build script build.bash will also use
37
    7-Zip to create the distributable .zip and .7z files.
37
    7-Zip to create the distributable .zip and .7z files.
38
38
Lines 50-56 Link Here
50
50
51
    You can download MSYS from MinGW's Sourceforge page:
51
    You can download MSYS from MinGW's Sourceforge page:
52
52
53
        http://sourceforge.net/projects/mingw/files/MSYS/Base/msys-core/
53
        https://sourceforge.net/projects/mingw/files/MSYS/Base/msys-core/
54
54
55
    I recommend using MSYS 1.0.11 (MSYS-1.0.11.exe or
55
    I recommend using MSYS 1.0.11 (MSYS-1.0.11.exe or
56
    msysCORE-1.0.11-bin.tar.gz) because that package includes all the
56
    msysCORE-1.0.11-bin.tar.gz) because that package includes all the
Lines 69-75 Link Here
69
69
70
    You can download the required packages from MinGW's Sourceforge page:
70
    You can download the required packages from MinGW's Sourceforge page:
71
71
72
        http://sourceforge.net/projects/mingw/files/
72
        https://sourceforge.net/projects/mingw/files/
73
73
74
    These version numbers were the latest when I wrote this document, but
74
    These version numbers were the latest when I wrote this document, but
75
    you probably should pick the latest versions:
75
    you probably should pick the latest versions:
Lines 94-102 Link Here
94
    toolchain. For XZ Utils 5.2.0 I used the packages from these
94
    toolchain. For XZ Utils 5.2.0 I used the packages from these
95
    directories:
95
    directories:
96
96
97
        http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/4.9.2/threads-win32/sjlj/
97
        https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/4.9.2/threads-win32/sjlj/
98
98
99
        http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/4.9.2/threads-win32/sjlj/
99
        https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/4.9.2/threads-win32/sjlj/
100
100
101
    If you install both MinGW-w32 and MinGW-w64, remember to extract
101
    If you install both MinGW-w32 and MinGW-w64, remember to extract
102
    them into different directories. build.bash looks at
102
    them into different directories. build.bash looks at
(-)xz-5.2.5/windows/README-Windows.txt (-1 / +1 lines)
Lines 118-122 Link Here
118
Reporting bugs
118
Reporting bugs
119
--------------
119
--------------
120
120
121
    Report bugs to <lasse.collin@tukaani.org> (in English or Finnish).
121
    Report bugs to <xz@tukaani.org>.
122
122
(-)xz-5.2.5/windows/build.bash (-1 / +2 lines)
Lines 163-169 Link Here
163
163
164
# Copy the headers, the .def file, and the docs.
164
# Copy the headers, the .def file, and the docs.
165
# They are the same for all architectures and builds.
165
# They are the same for all architectures and builds.
166
mkdir -pv pkg/{include/lzma,doc/{manuals,examples}}
166
mkdir -pv pkg/{include/lzma,doc/{api,manuals,examples}}
167
txtcp pkg/include "" src/liblzma/api/lzma.h
167
txtcp pkg/include "" src/liblzma/api/lzma.h
168
txtcp pkg/include/lzma "" src/liblzma/api/lzma/*.h
168
txtcp pkg/include/lzma "" src/liblzma/api/lzma/*.h
169
txtcp pkg/doc "" src/liblzma/liblzma.def
169
txtcp pkg/doc "" src/liblzma/liblzma.def
Lines 171-176 Link Here
171
txtcp pkg/doc "" doc/*.txt windows/README-Windows.txt
171
txtcp pkg/doc "" doc/*.txt windows/README-Windows.txt
172
txtcp pkg/doc/manuals "" doc/man/txt/{xz,xzdec,lzmainfo}.txt
172
txtcp pkg/doc/manuals "" doc/man/txt/{xz,xzdec,lzmainfo}.txt
173
cp -v doc/man/pdf-*/{xz,xzdec,lzmainfo}-*.pdf pkg/doc/manuals
173
cp -v doc/man/pdf-*/{xz,xzdec,lzmainfo}-*.pdf pkg/doc/manuals
174
cp -v doc/api/* pkg/doc/api
174
txtcp pkg/doc/examples "" doc/examples/*
175
txtcp pkg/doc/examples "" doc/examples/*
175
176
176
if [ -f windows/COPYING-Windows.txt ]; then
177
if [ -f windows/COPYING-Windows.txt ]; then
(-)xz-5.2.5/windows/vs2013/config.h (+9 lines)
Lines 21-26 Link Here
21
/* Define to 1 if arm decoder is enabled. */
21
/* Define to 1 if arm decoder is enabled. */
22
#define HAVE_DECODER_ARM 1
22
#define HAVE_DECODER_ARM 1
23
23
24
/* Define to 1 if arm64 decoder is enabled. */
25
#define HAVE_DECODER_ARM64 1
26
24
/* Define to 1 if armthumb decoder is enabled. */
27
/* Define to 1 if armthumb decoder is enabled. */
25
#define HAVE_DECODER_ARMTHUMB 1
28
#define HAVE_DECODER_ARMTHUMB 1
26
29
Lines 51-56 Link Here
51
/* Define to 1 if arm encoder is enabled. */
54
/* Define to 1 if arm encoder is enabled. */
52
#define HAVE_ENCODER_ARM 1
55
#define HAVE_ENCODER_ARM 1
53
56
57
/* Define to 1 if arm64 encoder is enabled. */
58
#define HAVE_ENCODER_ARM64 1
59
54
/* Define to 1 if armthumb encoder is enabled. */
60
/* Define to 1 if armthumb encoder is enabled. */
55
#define HAVE_ENCODER_ARMTHUMB 1
61
#define HAVE_ENCODER_ARMTHUMB 1
56
62
Lines 80-85 Link Here
80
86
81
/* Define to 1 if you have the <limits.h> header file. */
87
/* Define to 1 if you have the <limits.h> header file. */
82
#define HAVE_LIMITS_H 1
88
#define HAVE_LIMITS_H 1
89
90
/* Define to 1 if .lz (lzip) decompression support is enabled. */
91
#define HAVE_LZIP_DECODER 1
83
92
84
/* Define to 1 to enable bt2 match finder. */
93
/* Define to 1 to enable bt2 match finder. */
85
#define HAVE_MF_BT2 1
94
#define HAVE_MF_BT2 1
(-)xz-5.2.5/windows/vs2013/liblzma.vcxproj (-1 / +10 lines)
Lines 229-234 Link Here
229
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder.c" />
229
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder.c" />
230
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder_memusage.c" />
230
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder_memusage.c" />
231
    <ClCompile Include="..\..\src\liblzma\common\easy_preset.c" />
231
    <ClCompile Include="..\..\src\liblzma\common\easy_preset.c" />
232
    <ClCompile Include="..\..\src\liblzma\common\file_info.c" />
232
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_decoder.c" />
233
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_decoder.c" />
233
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_encoder.c" />
234
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_encoder.c" />
234
    <ClCompile Include="..\..\src\liblzma\common\filter_common.c" />
235
    <ClCompile Include="..\..\src\liblzma\common\filter_common.c" />
Lines 242-256 Link Here
242
    <ClCompile Include="..\..\src\liblzma\common\index_decoder.c" />
243
    <ClCompile Include="..\..\src\liblzma\common\index_decoder.c" />
243
    <ClCompile Include="..\..\src\liblzma\common\index_encoder.c" />
244
    <ClCompile Include="..\..\src\liblzma\common\index_encoder.c" />
244
    <ClCompile Include="..\..\src\liblzma\common\index_hash.c" />
245
    <ClCompile Include="..\..\src\liblzma\common\index_hash.c" />
246
    <ClCompile Include="..\..\src\liblzma\common\lzip_decoder.c" />
247
    <ClCompile Include="..\..\src\liblzma\common\microlzma_decoder.c" />
248
    <ClCompile Include="..\..\src\liblzma\common\microlzma_encoder.c" />
245
    <ClCompile Include="..\..\src\liblzma\common\outqueue.c" />
249
    <ClCompile Include="..\..\src\liblzma\common\outqueue.c" />
246
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_decoder.c" />
250
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_decoder.c" />
247
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_encoder.c" />
251
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_encoder.c" />
248
    <ClCompile Include="..\..\src\liblzma\common\stream_decoder.c" />
252
    <ClCompile Include="..\..\src\liblzma\common\stream_decoder.c" />
253
    <ClCompile Include="..\..\src\liblzma\common\stream_decoder_mt.c" />
249
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder.c" />
254
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder.c" />
250
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder_mt.c" />
255
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder_mt.c" />
251
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_common.c" />
256
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_common.c" />
252
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_decoder.c" />
257
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_decoder.c" />
253
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_encoder.c" />
258
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_encoder.c" />
259
    <ClCompile Include="..\..\src\liblzma\common\string_conversion.c" />
254
    <ClCompile Include="..\..\src\liblzma\common\vli_decoder.c" />
260
    <ClCompile Include="..\..\src\liblzma\common\vli_decoder.c" />
255
    <ClCompile Include="..\..\src\liblzma\common\vli_encoder.c" />
261
    <ClCompile Include="..\..\src\liblzma\common\vli_encoder.c" />
256
    <ClCompile Include="..\..\src\liblzma\common\vli_size.c" />
262
    <ClCompile Include="..\..\src\liblzma\common\vli_size.c" />
Lines 270-275 Link Here
270
    <ClCompile Include="..\..\src\liblzma\lz\lz_encoder_mf.c" />
276
    <ClCompile Include="..\..\src\liblzma\lz\lz_encoder_mf.c" />
271
    <ClCompile Include="..\..\src\liblzma\rangecoder\price_table.c" />
277
    <ClCompile Include="..\..\src\liblzma\rangecoder\price_table.c" />
272
    <ClCompile Include="..\..\src\liblzma\simple\arm.c" />
278
    <ClCompile Include="..\..\src\liblzma\simple\arm.c" />
279
    <ClCompile Include="..\..\src\liblzma\simple\arm64.c" />
273
    <ClCompile Include="..\..\src\liblzma\simple\armthumb.c" />
280
    <ClCompile Include="..\..\src\liblzma\simple\armthumb.c" />
274
    <ClCompile Include="..\..\src\liblzma\simple\ia64.c" />
281
    <ClCompile Include="..\..\src\liblzma\simple\ia64.c" />
275
    <ClCompile Include="..\..\src\liblzma\simple\powerpc.c" />
282
    <ClCompile Include="..\..\src\liblzma\simple\powerpc.c" />
Lines 318-325 Link Here
318
    <ClInclude Include="..\..\src\liblzma\common\filter_decoder.h" />
325
    <ClInclude Include="..\..\src\liblzma\common\filter_decoder.h" />
319
    <ClInclude Include="..\..\src\liblzma\common\filter_encoder.h" />
326
    <ClInclude Include="..\..\src\liblzma\common\filter_encoder.h" />
320
    <ClInclude Include="..\..\src\liblzma\common\index.h" />
327
    <ClInclude Include="..\..\src\liblzma\common\index.h" />
328
    <ClInclude Include="..\..\src\liblzma\common\index_decoder.h" />
321
    <ClInclude Include="..\..\src\liblzma\common\index_encoder.h" />
329
    <ClInclude Include="..\..\src\liblzma\common\index_encoder.h" />
322
    <ClInclude Include="..\..\src\liblzma\common\memcmplen.h" />
330
    <ClInclude Include="..\..\src\liblzma\common\memcmplen.h" />
331
    <ClInclude Include="..\..\src\liblzma\common\lzip_decoder.h" />
323
    <ClInclude Include="..\..\src\liblzma\common\outqueue.h" />
332
    <ClInclude Include="..\..\src\liblzma\common\outqueue.h" />
324
    <ClInclude Include="..\..\src\liblzma\common\stream_decoder.h" />
333
    <ClInclude Include="..\..\src\liblzma\common\stream_decoder.h" />
325
    <ClInclude Include="..\..\src\liblzma\common\stream_flags_common.h" />
334
    <ClInclude Include="..\..\src\liblzma\common\stream_flags_common.h" />
Lines 351-354 Link Here
351
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
360
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
352
  <ImportGroup Label="ExtensionTargets">
361
  <ImportGroup Label="ExtensionTargets">
353
  </ImportGroup>
362
  </ImportGroup>
354
</Project>
363
</Project>
(-)xz-5.2.5/windows/vs2013/liblzma_dll.vcxproj (-1 / +16 lines)
Lines 137-142 Link Here
137
    </Link>
137
    </Link>
138
    <ResourceCompile>
138
    <ResourceCompile>
139
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
139
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
140
      <PreprocessorDefinitions>HAVE_CONFIG_H</PreprocessorDefinitions>
140
    </ResourceCompile>
141
    </ResourceCompile>
141
  </ItemDefinitionGroup>
142
  </ItemDefinitionGroup>
142
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
143
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
Lines 154-159 Link Here
154
    </Link>
155
    </Link>
155
    <ResourceCompile>
156
    <ResourceCompile>
156
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
157
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
158
      <PreprocessorDefinitions>HAVE_CONFIG_H</PreprocessorDefinitions>
157
    </ResourceCompile>
159
    </ResourceCompile>
158
  </ItemDefinitionGroup>
160
  </ItemDefinitionGroup>
159
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
161
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
Lines 173-178 Link Here
173
    </Link>
175
    </Link>
174
    <ResourceCompile>
176
    <ResourceCompile>
175
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
177
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
178
      <PreprocessorDefinitions>HAVE_CONFIG_H</PreprocessorDefinitions>
176
    </ResourceCompile>
179
    </ResourceCompile>
177
  </ItemDefinitionGroup>
180
  </ItemDefinitionGroup>
178
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
181
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
Lines 191-196 Link Here
191
    </Link>
194
    </Link>
192
    <ResourceCompile>
195
    <ResourceCompile>
193
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
196
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
197
      <PreprocessorDefinitions>HAVE_CONFIG_H</PreprocessorDefinitions>
194
    </ResourceCompile>
198
    </ResourceCompile>
195
  </ItemDefinitionGroup>
199
  </ItemDefinitionGroup>
196
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|Win32'">
200
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|Win32'">
Lines 210-215 Link Here
210
    </Link>
214
    </Link>
211
    <ResourceCompile>
215
    <ResourceCompile>
212
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
216
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
217
      <PreprocessorDefinitions>HAVE_CONFIG_H</PreprocessorDefinitions>
213
    </ResourceCompile>
218
    </ResourceCompile>
214
  </ItemDefinitionGroup>
219
  </ItemDefinitionGroup>
215
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|x64'">
220
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|x64'">
Lines 228-233 Link Here
228
    </Link>
233
    </Link>
229
    <ResourceCompile>
234
    <ResourceCompile>
230
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
235
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
236
      <PreprocessorDefinitions>HAVE_CONFIG_H</PreprocessorDefinitions>
231
    </ResourceCompile>
237
    </ResourceCompile>
232
  </ItemDefinitionGroup>
238
  </ItemDefinitionGroup>
233
  <ItemGroup>
239
  <ItemGroup>
Lines 255-260 Link Here
255
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder.c" />
261
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder.c" />
256
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder_memusage.c" />
262
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder_memusage.c" />
257
    <ClCompile Include="..\..\src\liblzma\common\easy_preset.c" />
263
    <ClCompile Include="..\..\src\liblzma\common\easy_preset.c" />
264
    <ClCompile Include="..\..\src\liblzma\common\file_info.c" />
258
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_decoder.c" />
265
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_decoder.c" />
259
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_encoder.c" />
266
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_encoder.c" />
260
    <ClCompile Include="..\..\src\liblzma\common\filter_common.c" />
267
    <ClCompile Include="..\..\src\liblzma\common\filter_common.c" />
Lines 268-282 Link Here
268
    <ClCompile Include="..\..\src\liblzma\common\index_decoder.c" />
275
    <ClCompile Include="..\..\src\liblzma\common\index_decoder.c" />
269
    <ClCompile Include="..\..\src\liblzma\common\index_encoder.c" />
276
    <ClCompile Include="..\..\src\liblzma\common\index_encoder.c" />
270
    <ClCompile Include="..\..\src\liblzma\common\index_hash.c" />
277
    <ClCompile Include="..\..\src\liblzma\common\index_hash.c" />
278
    <ClCompile Include="..\..\src\liblzma\common\lzip_decoder.c" />
279
    <ClCompile Include="..\..\src\liblzma\common\microlzma_decoder.c" />
280
    <ClCompile Include="..\..\src\liblzma\common\microlzma_encoder.c" />
271
    <ClCompile Include="..\..\src\liblzma\common\outqueue.c" />
281
    <ClCompile Include="..\..\src\liblzma\common\outqueue.c" />
272
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_decoder.c" />
282
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_decoder.c" />
273
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_encoder.c" />
283
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_encoder.c" />
274
    <ClCompile Include="..\..\src\liblzma\common\stream_decoder.c" />
284
    <ClCompile Include="..\..\src\liblzma\common\stream_decoder.c" />
285
    <ClCompile Include="..\..\src\liblzma\common\stream_decoder_mt.c" />
275
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder.c" />
286
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder.c" />
276
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder_mt.c" />
287
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder_mt.c" />
277
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_common.c" />
288
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_common.c" />
278
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_decoder.c" />
289
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_decoder.c" />
279
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_encoder.c" />
290
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_encoder.c" />
291
    <ClCompile Include="..\..\src\liblzma\common\string_conversion.c" />
280
    <ClCompile Include="..\..\src\liblzma\common\vli_decoder.c" />
292
    <ClCompile Include="..\..\src\liblzma\common\vli_decoder.c" />
281
    <ClCompile Include="..\..\src\liblzma\common\vli_encoder.c" />
293
    <ClCompile Include="..\..\src\liblzma\common\vli_encoder.c" />
282
    <ClCompile Include="..\..\src\liblzma\common\vli_size.c" />
294
    <ClCompile Include="..\..\src\liblzma\common\vli_size.c" />
Lines 296-301 Link Here
296
    <ClCompile Include="..\..\src\liblzma\lz\lz_encoder_mf.c" />
308
    <ClCompile Include="..\..\src\liblzma\lz\lz_encoder_mf.c" />
297
    <ClCompile Include="..\..\src\liblzma\rangecoder\price_table.c" />
309
    <ClCompile Include="..\..\src\liblzma\rangecoder\price_table.c" />
298
    <ClCompile Include="..\..\src\liblzma\simple\arm.c" />
310
    <ClCompile Include="..\..\src\liblzma\simple\arm.c" />
311
    <ClCompile Include="..\..\src\liblzma\simple\arm64.c" />
299
    <ClCompile Include="..\..\src\liblzma\simple\armthumb.c" />
312
    <ClCompile Include="..\..\src\liblzma\simple\armthumb.c" />
300
    <ClCompile Include="..\..\src\liblzma\simple\ia64.c" />
313
    <ClCompile Include="..\..\src\liblzma\simple\ia64.c" />
301
    <ClCompile Include="..\..\src\liblzma\simple\powerpc.c" />
314
    <ClCompile Include="..\..\src\liblzma\simple\powerpc.c" />
Lines 344-351 Link Here
344
    <ClInclude Include="..\..\src\liblzma\common\filter_decoder.h" />
357
    <ClInclude Include="..\..\src\liblzma\common\filter_decoder.h" />
345
    <ClInclude Include="..\..\src\liblzma\common\filter_encoder.h" />
358
    <ClInclude Include="..\..\src\liblzma\common\filter_encoder.h" />
346
    <ClInclude Include="..\..\src\liblzma\common\index.h" />
359
    <ClInclude Include="..\..\src\liblzma\common\index.h" />
360
    <ClInclude Include="..\..\src\liblzma\common\index_decoder.h" />
347
    <ClInclude Include="..\..\src\liblzma\common\index_encoder.h" />
361
    <ClInclude Include="..\..\src\liblzma\common\index_encoder.h" />
348
    <ClInclude Include="..\..\src\liblzma\common\memcmplen.h" />
362
    <ClInclude Include="..\..\src\liblzma\common\memcmplen.h" />
363
    <ClInclude Include="..\..\src\liblzma\common\lzip_decoder.h" />
349
    <ClInclude Include="..\..\src\liblzma\common\outqueue.h" />
364
    <ClInclude Include="..\..\src\liblzma\common\outqueue.h" />
350
    <ClInclude Include="..\..\src\liblzma\common\stream_decoder.h" />
365
    <ClInclude Include="..\..\src\liblzma\common\stream_decoder.h" />
351
    <ClInclude Include="..\..\src\liblzma\common\stream_flags_common.h" />
366
    <ClInclude Include="..\..\src\liblzma\common\stream_flags_common.h" />
Lines 380-383 Link Here
380
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
395
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
381
  <ImportGroup Label="ExtensionTargets">
396
  <ImportGroup Label="ExtensionTargets">
382
  </ImportGroup>
397
  </ImportGroup>
383
</Project>
398
</Project>
(-)xz-5.2.5/windows/vs2017/config.h (+9 lines)
Lines 21-26 Link Here
21
/* Define to 1 if arm decoder is enabled. */
21
/* Define to 1 if arm decoder is enabled. */
22
#define HAVE_DECODER_ARM 1
22
#define HAVE_DECODER_ARM 1
23
23
24
/* Define to 1 if arm64 decoder is enabled. */
25
#define HAVE_DECODER_ARM64 1
26
24
/* Define to 1 if armthumb decoder is enabled. */
27
/* Define to 1 if armthumb decoder is enabled. */
25
#define HAVE_DECODER_ARMTHUMB 1
28
#define HAVE_DECODER_ARMTHUMB 1
26
29
Lines 51-56 Link Here
51
/* Define to 1 if arm encoder is enabled. */
54
/* Define to 1 if arm encoder is enabled. */
52
#define HAVE_ENCODER_ARM 1
55
#define HAVE_ENCODER_ARM 1
53
56
57
/* Define to 1 if arm64 encoder is enabled. */
58
#define HAVE_ENCODER_ARM64 1
59
54
/* Define to 1 if armthumb encoder is enabled. */
60
/* Define to 1 if armthumb encoder is enabled. */
55
#define HAVE_ENCODER_ARMTHUMB 1
61
#define HAVE_ENCODER_ARMTHUMB 1
56
62
Lines 80-85 Link Here
80
86
81
/* Define to 1 if you have the <limits.h> header file. */
87
/* Define to 1 if you have the <limits.h> header file. */
82
#define HAVE_LIMITS_H 1
88
#define HAVE_LIMITS_H 1
89
90
/* Define to 1 if .lz (lzip) decompression support is enabled. */
91
#define HAVE_LZIP_DECODER 1
83
92
84
/* Define to 1 to enable bt2 match finder. */
93
/* Define to 1 to enable bt2 match finder. */
85
#define HAVE_MF_BT2 1
94
#define HAVE_MF_BT2 1
(-)xz-5.2.5/windows/vs2017/liblzma.vcxproj (+9 lines)
Lines 229-234 Link Here
229
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder.c" />
229
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder.c" />
230
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder_memusage.c" />
230
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder_memusage.c" />
231
    <ClCompile Include="..\..\src\liblzma\common\easy_preset.c" />
231
    <ClCompile Include="..\..\src\liblzma\common\easy_preset.c" />
232
    <ClCompile Include="..\..\src\liblzma\common\file_info.c" />
232
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_decoder.c" />
233
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_decoder.c" />
233
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_encoder.c" />
234
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_encoder.c" />
234
    <ClCompile Include="..\..\src\liblzma\common\filter_common.c" />
235
    <ClCompile Include="..\..\src\liblzma\common\filter_common.c" />
Lines 242-256 Link Here
242
    <ClCompile Include="..\..\src\liblzma\common\index_decoder.c" />
243
    <ClCompile Include="..\..\src\liblzma\common\index_decoder.c" />
243
    <ClCompile Include="..\..\src\liblzma\common\index_encoder.c" />
244
    <ClCompile Include="..\..\src\liblzma\common\index_encoder.c" />
244
    <ClCompile Include="..\..\src\liblzma\common\index_hash.c" />
245
    <ClCompile Include="..\..\src\liblzma\common\index_hash.c" />
246
    <ClCompile Include="..\..\src\liblzma\common\lzip_decoder.c" />
247
    <ClCompile Include="..\..\src\liblzma\common\microlzma_decoder.c" />
248
    <ClCompile Include="..\..\src\liblzma\common\microlzma_encoder.c" />
245
    <ClCompile Include="..\..\src\liblzma\common\outqueue.c" />
249
    <ClCompile Include="..\..\src\liblzma\common\outqueue.c" />
246
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_decoder.c" />
250
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_decoder.c" />
247
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_encoder.c" />
251
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_encoder.c" />
248
    <ClCompile Include="..\..\src\liblzma\common\stream_decoder.c" />
252
    <ClCompile Include="..\..\src\liblzma\common\stream_decoder.c" />
253
    <ClCompile Include="..\..\src\liblzma\common\stream_decoder_mt.c" />
249
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder.c" />
254
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder.c" />
250
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder_mt.c" />
255
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder_mt.c" />
251
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_common.c" />
256
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_common.c" />
252
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_decoder.c" />
257
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_decoder.c" />
253
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_encoder.c" />
258
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_encoder.c" />
259
    <ClCompile Include="..\..\src\liblzma\common\string_conversion.c" />
254
    <ClCompile Include="..\..\src\liblzma\common\vli_decoder.c" />
260
    <ClCompile Include="..\..\src\liblzma\common\vli_decoder.c" />
255
    <ClCompile Include="..\..\src\liblzma\common\vli_encoder.c" />
261
    <ClCompile Include="..\..\src\liblzma\common\vli_encoder.c" />
256
    <ClCompile Include="..\..\src\liblzma\common\vli_size.c" />
262
    <ClCompile Include="..\..\src\liblzma\common\vli_size.c" />
Lines 270-275 Link Here
270
    <ClCompile Include="..\..\src\liblzma\lz\lz_encoder_mf.c" />
276
    <ClCompile Include="..\..\src\liblzma\lz\lz_encoder_mf.c" />
271
    <ClCompile Include="..\..\src\liblzma\rangecoder\price_table.c" />
277
    <ClCompile Include="..\..\src\liblzma\rangecoder\price_table.c" />
272
    <ClCompile Include="..\..\src\liblzma\simple\arm.c" />
278
    <ClCompile Include="..\..\src\liblzma\simple\arm.c" />
279
    <ClCompile Include="..\..\src\liblzma\simple\arm64.c" />
273
    <ClCompile Include="..\..\src\liblzma\simple\armthumb.c" />
280
    <ClCompile Include="..\..\src\liblzma\simple\armthumb.c" />
274
    <ClCompile Include="..\..\src\liblzma\simple\ia64.c" />
281
    <ClCompile Include="..\..\src\liblzma\simple\ia64.c" />
275
    <ClCompile Include="..\..\src\liblzma\simple\powerpc.c" />
282
    <ClCompile Include="..\..\src\liblzma\simple\powerpc.c" />
Lines 318-325 Link Here
318
    <ClInclude Include="..\..\src\liblzma\common\filter_decoder.h" />
325
    <ClInclude Include="..\..\src\liblzma\common\filter_decoder.h" />
319
    <ClInclude Include="..\..\src\liblzma\common\filter_encoder.h" />
326
    <ClInclude Include="..\..\src\liblzma\common\filter_encoder.h" />
320
    <ClInclude Include="..\..\src\liblzma\common\index.h" />
327
    <ClInclude Include="..\..\src\liblzma\common\index.h" />
328
    <ClInclude Include="..\..\src\liblzma\common\index_decoder.h" />
321
    <ClInclude Include="..\..\src\liblzma\common\index_encoder.h" />
329
    <ClInclude Include="..\..\src\liblzma\common\index_encoder.h" />
322
    <ClInclude Include="..\..\src\liblzma\common\memcmplen.h" />
330
    <ClInclude Include="..\..\src\liblzma\common\memcmplen.h" />
331
    <ClInclude Include="..\..\src\liblzma\common\lzip_decoder.h" />
323
    <ClInclude Include="..\..\src\liblzma\common\outqueue.h" />
332
    <ClInclude Include="..\..\src\liblzma\common\outqueue.h" />
324
    <ClInclude Include="..\..\src\liblzma\common\stream_decoder.h" />
333
    <ClInclude Include="..\..\src\liblzma\common\stream_decoder.h" />
325
    <ClInclude Include="..\..\src\liblzma\common\stream_flags_common.h" />
334
    <ClInclude Include="..\..\src\liblzma\common\stream_flags_common.h" />
(-)xz-5.2.5/windows/vs2017/liblzma_dll.vcxproj (+15 lines)
Lines 137-142 Link Here
137
    </Link>
137
    </Link>
138
    <ResourceCompile>
138
    <ResourceCompile>
139
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
139
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
140
      <PreprocessorDefinitions>HAVE_CONFIG_H</PreprocessorDefinitions>
140
    </ResourceCompile>
141
    </ResourceCompile>
141
  </ItemDefinitionGroup>
142
  </ItemDefinitionGroup>
142
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
143
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
Lines 154-159 Link Here
154
    </Link>
155
    </Link>
155
    <ResourceCompile>
156
    <ResourceCompile>
156
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
157
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
158
      <PreprocessorDefinitions>HAVE_CONFIG_H</PreprocessorDefinitions>
157
    </ResourceCompile>
159
    </ResourceCompile>
158
  </ItemDefinitionGroup>
160
  </ItemDefinitionGroup>
159
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
161
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
Lines 173-178 Link Here
173
    </Link>
175
    </Link>
174
    <ResourceCompile>
176
    <ResourceCompile>
175
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
177
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
178
      <PreprocessorDefinitions>HAVE_CONFIG_H</PreprocessorDefinitions>
176
    </ResourceCompile>
179
    </ResourceCompile>
177
  </ItemDefinitionGroup>
180
  </ItemDefinitionGroup>
178
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
181
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
Lines 191-196 Link Here
191
    </Link>
194
    </Link>
192
    <ResourceCompile>
195
    <ResourceCompile>
193
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
196
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
197
      <PreprocessorDefinitions>HAVE_CONFIG_H</PreprocessorDefinitions>
194
    </ResourceCompile>
198
    </ResourceCompile>
195
  </ItemDefinitionGroup>
199
  </ItemDefinitionGroup>
196
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|Win32'">
200
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|Win32'">
Lines 210-215 Link Here
210
    </Link>
214
    </Link>
211
    <ResourceCompile>
215
    <ResourceCompile>
212
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
216
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
217
      <PreprocessorDefinitions>HAVE_CONFIG_H</PreprocessorDefinitions>
213
    </ResourceCompile>
218
    </ResourceCompile>
214
  </ItemDefinitionGroup>
219
  </ItemDefinitionGroup>
215
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|x64'">
220
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|x64'">
Lines 228-233 Link Here
228
    </Link>
233
    </Link>
229
    <ResourceCompile>
234
    <ResourceCompile>
230
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
235
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
236
      <PreprocessorDefinitions>HAVE_CONFIG_H</PreprocessorDefinitions>
231
    </ResourceCompile>
237
    </ResourceCompile>
232
  </ItemDefinitionGroup>
238
  </ItemDefinitionGroup>
233
  <ItemGroup>
239
  <ItemGroup>
Lines 255-260 Link Here
255
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder.c" />
261
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder.c" />
256
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder_memusage.c" />
262
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder_memusage.c" />
257
    <ClCompile Include="..\..\src\liblzma\common\easy_preset.c" />
263
    <ClCompile Include="..\..\src\liblzma\common\easy_preset.c" />
264
    <ClCompile Include="..\..\src\liblzma\common\file_info.c" />
258
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_decoder.c" />
265
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_decoder.c" />
259
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_encoder.c" />
266
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_encoder.c" />
260
    <ClCompile Include="..\..\src\liblzma\common\filter_common.c" />
267
    <ClCompile Include="..\..\src\liblzma\common\filter_common.c" />
Lines 268-282 Link Here
268
    <ClCompile Include="..\..\src\liblzma\common\index_decoder.c" />
275
    <ClCompile Include="..\..\src\liblzma\common\index_decoder.c" />
269
    <ClCompile Include="..\..\src\liblzma\common\index_encoder.c" />
276
    <ClCompile Include="..\..\src\liblzma\common\index_encoder.c" />
270
    <ClCompile Include="..\..\src\liblzma\common\index_hash.c" />
277
    <ClCompile Include="..\..\src\liblzma\common\index_hash.c" />
278
    <ClCompile Include="..\..\src\liblzma\common\lzip_decoder.c" />
279
    <ClCompile Include="..\..\src\liblzma\common\microlzma_decoder.c" />
280
    <ClCompile Include="..\..\src\liblzma\common\microlzma_encoder.c" />
271
    <ClCompile Include="..\..\src\liblzma\common\outqueue.c" />
281
    <ClCompile Include="..\..\src\liblzma\common\outqueue.c" />
272
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_decoder.c" />
282
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_decoder.c" />
273
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_encoder.c" />
283
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_encoder.c" />
274
    <ClCompile Include="..\..\src\liblzma\common\stream_decoder.c" />
284
    <ClCompile Include="..\..\src\liblzma\common\stream_decoder.c" />
285
    <ClCompile Include="..\..\src\liblzma\common\stream_decoder_mt.c" />
275
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder.c" />
286
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder.c" />
276
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder_mt.c" />
287
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder_mt.c" />
277
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_common.c" />
288
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_common.c" />
278
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_decoder.c" />
289
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_decoder.c" />
279
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_encoder.c" />
290
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_encoder.c" />
291
    <ClCompile Include="..\..\src\liblzma\common\string_conversion.c" />
280
    <ClCompile Include="..\..\src\liblzma\common\vli_decoder.c" />
292
    <ClCompile Include="..\..\src\liblzma\common\vli_decoder.c" />
281
    <ClCompile Include="..\..\src\liblzma\common\vli_encoder.c" />
293
    <ClCompile Include="..\..\src\liblzma\common\vli_encoder.c" />
282
    <ClCompile Include="..\..\src\liblzma\common\vli_size.c" />
294
    <ClCompile Include="..\..\src\liblzma\common\vli_size.c" />
Lines 296-301 Link Here
296
    <ClCompile Include="..\..\src\liblzma\lz\lz_encoder_mf.c" />
308
    <ClCompile Include="..\..\src\liblzma\lz\lz_encoder_mf.c" />
297
    <ClCompile Include="..\..\src\liblzma\rangecoder\price_table.c" />
309
    <ClCompile Include="..\..\src\liblzma\rangecoder\price_table.c" />
298
    <ClCompile Include="..\..\src\liblzma\simple\arm.c" />
310
    <ClCompile Include="..\..\src\liblzma\simple\arm.c" />
311
    <ClCompile Include="..\..\src\liblzma\simple\arm64.c" />
299
    <ClCompile Include="..\..\src\liblzma\simple\armthumb.c" />
312
    <ClCompile Include="..\..\src\liblzma\simple\armthumb.c" />
300
    <ClCompile Include="..\..\src\liblzma\simple\ia64.c" />
313
    <ClCompile Include="..\..\src\liblzma\simple\ia64.c" />
301
    <ClCompile Include="..\..\src\liblzma\simple\powerpc.c" />
314
    <ClCompile Include="..\..\src\liblzma\simple\powerpc.c" />
Lines 344-351 Link Here
344
    <ClInclude Include="..\..\src\liblzma\common\filter_decoder.h" />
357
    <ClInclude Include="..\..\src\liblzma\common\filter_decoder.h" />
345
    <ClInclude Include="..\..\src\liblzma\common\filter_encoder.h" />
358
    <ClInclude Include="..\..\src\liblzma\common\filter_encoder.h" />
346
    <ClInclude Include="..\..\src\liblzma\common\index.h" />
359
    <ClInclude Include="..\..\src\liblzma\common\index.h" />
360
    <ClInclude Include="..\..\src\liblzma\common\index_decoder.h" />
347
    <ClInclude Include="..\..\src\liblzma\common\index_encoder.h" />
361
    <ClInclude Include="..\..\src\liblzma\common\index_encoder.h" />
348
    <ClInclude Include="..\..\src\liblzma\common\memcmplen.h" />
362
    <ClInclude Include="..\..\src\liblzma\common\memcmplen.h" />
363
    <ClInclude Include="..\..\src\liblzma\common\lzip_decoder.h" />
349
    <ClInclude Include="..\..\src\liblzma\common\outqueue.h" />
364
    <ClInclude Include="..\..\src\liblzma\common\outqueue.h" />
350
    <ClInclude Include="..\..\src\liblzma\common\stream_decoder.h" />
365
    <ClInclude Include="..\..\src\liblzma\common\stream_decoder.h" />
351
    <ClInclude Include="..\..\src\liblzma\common\stream_flags_common.h" />
366
    <ClInclude Include="..\..\src\liblzma\common\stream_flags_common.h" />
(-)xz-5.2.5/windows/vs2019/config.h (+9 lines)
Lines 21-26 Link Here
21
/* Define to 1 if arm decoder is enabled. */
21
/* Define to 1 if arm decoder is enabled. */
22
#define HAVE_DECODER_ARM 1
22
#define HAVE_DECODER_ARM 1
23
23
24
/* Define to 1 if arm64 decoder is enabled. */
25
#define HAVE_DECODER_ARM64 1
26
24
/* Define to 1 if armthumb decoder is enabled. */
27
/* Define to 1 if armthumb decoder is enabled. */
25
#define HAVE_DECODER_ARMTHUMB 1
28
#define HAVE_DECODER_ARMTHUMB 1
26
29
Lines 51-56 Link Here
51
/* Define to 1 if arm encoder is enabled. */
54
/* Define to 1 if arm encoder is enabled. */
52
#define HAVE_ENCODER_ARM 1
55
#define HAVE_ENCODER_ARM 1
53
56
57
/* Define to 1 if arm64 encoder is enabled. */
58
#define HAVE_ENCODER_ARM64 1
59
54
/* Define to 1 if armthumb encoder is enabled. */
60
/* Define to 1 if armthumb encoder is enabled. */
55
#define HAVE_ENCODER_ARMTHUMB 1
61
#define HAVE_ENCODER_ARMTHUMB 1
56
62
Lines 80-85 Link Here
80
86
81
/* Define to 1 if you have the <limits.h> header file. */
87
/* Define to 1 if you have the <limits.h> header file. */
82
#define HAVE_LIMITS_H 1
88
#define HAVE_LIMITS_H 1
89
90
/* Define to 1 if .lz (lzip) decompression support is enabled. */
91
#define HAVE_LZIP_DECODER 1
83
92
84
/* Define to 1 to enable bt2 match finder. */
93
/* Define to 1 to enable bt2 match finder. */
85
#define HAVE_MF_BT2 1
94
#define HAVE_MF_BT2 1
(-)xz-5.2.5/windows/vs2019/liblzma.vcxproj (-1 / +10 lines)
Lines 230-235 Link Here
230
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder.c" />
230
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder.c" />
231
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder_memusage.c" />
231
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder_memusage.c" />
232
    <ClCompile Include="..\..\src\liblzma\common\easy_preset.c" />
232
    <ClCompile Include="..\..\src\liblzma\common\easy_preset.c" />
233
    <ClCompile Include="..\..\src\liblzma\common\file_info.c" />
233
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_decoder.c" />
234
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_decoder.c" />
234
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_encoder.c" />
235
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_encoder.c" />
235
    <ClCompile Include="..\..\src\liblzma\common\filter_common.c" />
236
    <ClCompile Include="..\..\src\liblzma\common\filter_common.c" />
Lines 243-257 Link Here
243
    <ClCompile Include="..\..\src\liblzma\common\index_decoder.c" />
244
    <ClCompile Include="..\..\src\liblzma\common\index_decoder.c" />
244
    <ClCompile Include="..\..\src\liblzma\common\index_encoder.c" />
245
    <ClCompile Include="..\..\src\liblzma\common\index_encoder.c" />
245
    <ClCompile Include="..\..\src\liblzma\common\index_hash.c" />
246
    <ClCompile Include="..\..\src\liblzma\common\index_hash.c" />
247
    <ClCompile Include="..\..\src\liblzma\common\lzip_decoder.c" />
248
    <ClCompile Include="..\..\src\liblzma\common\microlzma_decoder.c" />
249
    <ClCompile Include="..\..\src\liblzma\common\microlzma_encoder.c" />
246
    <ClCompile Include="..\..\src\liblzma\common\outqueue.c" />
250
    <ClCompile Include="..\..\src\liblzma\common\outqueue.c" />
247
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_decoder.c" />
251
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_decoder.c" />
248
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_encoder.c" />
252
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_encoder.c" />
249
    <ClCompile Include="..\..\src\liblzma\common\stream_decoder.c" />
253
    <ClCompile Include="..\..\src\liblzma\common\stream_decoder.c" />
254
    <ClCompile Include="..\..\src\liblzma\common\stream_decoder_mt.c" />
250
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder.c" />
255
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder.c" />
251
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder_mt.c" />
256
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder_mt.c" />
252
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_common.c" />
257
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_common.c" />
253
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_decoder.c" />
258
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_decoder.c" />
254
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_encoder.c" />
259
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_encoder.c" />
260
    <ClCompile Include="..\..\src\liblzma\common\string_conversion.c" />
255
    <ClCompile Include="..\..\src\liblzma\common\vli_decoder.c" />
261
    <ClCompile Include="..\..\src\liblzma\common\vli_decoder.c" />
256
    <ClCompile Include="..\..\src\liblzma\common\vli_encoder.c" />
262
    <ClCompile Include="..\..\src\liblzma\common\vli_encoder.c" />
257
    <ClCompile Include="..\..\src\liblzma\common\vli_size.c" />
263
    <ClCompile Include="..\..\src\liblzma\common\vli_size.c" />
Lines 271-276 Link Here
271
    <ClCompile Include="..\..\src\liblzma\lz\lz_encoder_mf.c" />
277
    <ClCompile Include="..\..\src\liblzma\lz\lz_encoder_mf.c" />
272
    <ClCompile Include="..\..\src\liblzma\rangecoder\price_table.c" />
278
    <ClCompile Include="..\..\src\liblzma\rangecoder\price_table.c" />
273
    <ClCompile Include="..\..\src\liblzma\simple\arm.c" />
279
    <ClCompile Include="..\..\src\liblzma\simple\arm.c" />
280
    <ClCompile Include="..\..\src\liblzma\simple\arm64.c" />
274
    <ClCompile Include="..\..\src\liblzma\simple\armthumb.c" />
281
    <ClCompile Include="..\..\src\liblzma\simple\armthumb.c" />
275
    <ClCompile Include="..\..\src\liblzma\simple\ia64.c" />
282
    <ClCompile Include="..\..\src\liblzma\simple\ia64.c" />
276
    <ClCompile Include="..\..\src\liblzma\simple\powerpc.c" />
283
    <ClCompile Include="..\..\src\liblzma\simple\powerpc.c" />
Lines 319-326 Link Here
319
    <ClInclude Include="..\..\src\liblzma\common\filter_decoder.h" />
326
    <ClInclude Include="..\..\src\liblzma\common\filter_decoder.h" />
320
    <ClInclude Include="..\..\src\liblzma\common\filter_encoder.h" />
327
    <ClInclude Include="..\..\src\liblzma\common\filter_encoder.h" />
321
    <ClInclude Include="..\..\src\liblzma\common\index.h" />
328
    <ClInclude Include="..\..\src\liblzma\common\index.h" />
329
    <ClInclude Include="..\..\src\liblzma\common\index_decoder.h" />
322
    <ClInclude Include="..\..\src\liblzma\common\index_encoder.h" />
330
    <ClInclude Include="..\..\src\liblzma\common\index_encoder.h" />
323
    <ClInclude Include="..\..\src\liblzma\common\memcmplen.h" />
331
    <ClInclude Include="..\..\src\liblzma\common\memcmplen.h" />
332
    <ClInclude Include="..\..\src\liblzma\common\lzip_decoder.h" />
324
    <ClInclude Include="..\..\src\liblzma\common\outqueue.h" />
333
    <ClInclude Include="..\..\src\liblzma\common\outqueue.h" />
325
    <ClInclude Include="..\..\src\liblzma\common\stream_decoder.h" />
334
    <ClInclude Include="..\..\src\liblzma\common\stream_decoder.h" />
326
    <ClInclude Include="..\..\src\liblzma\common\stream_flags_common.h" />
335
    <ClInclude Include="..\..\src\liblzma\common\stream_flags_common.h" />
Lines 352-355 Link Here
352
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
361
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
353
  <ImportGroup Label="ExtensionTargets">
362
  <ImportGroup Label="ExtensionTargets">
354
  </ImportGroup>
363
  </ImportGroup>
355
</Project>
364
</Project>
(-)xz-5.2.5/windows/vs2019/liblzma_dll.vcxproj (-1 / +16 lines)
Lines 138-143 Link Here
138
    </Link>
138
    </Link>
139
    <ResourceCompile>
139
    <ResourceCompile>
140
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
140
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
141
      <PreprocessorDefinitions>HAVE_CONFIG_H</PreprocessorDefinitions>
141
    </ResourceCompile>
142
    </ResourceCompile>
142
  </ItemDefinitionGroup>
143
  </ItemDefinitionGroup>
143
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
144
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
Lines 155-160 Link Here
155
    </Link>
156
    </Link>
156
    <ResourceCompile>
157
    <ResourceCompile>
157
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
158
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
159
      <PreprocessorDefinitions>HAVE_CONFIG_H</PreprocessorDefinitions>
158
    </ResourceCompile>
160
    </ResourceCompile>
159
  </ItemDefinitionGroup>
161
  </ItemDefinitionGroup>
160
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
162
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
Lines 174-179 Link Here
174
    </Link>
176
    </Link>
175
    <ResourceCompile>
177
    <ResourceCompile>
176
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
178
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
179
      <PreprocessorDefinitions>HAVE_CONFIG_H</PreprocessorDefinitions>
177
    </ResourceCompile>
180
    </ResourceCompile>
178
  </ItemDefinitionGroup>
181
  </ItemDefinitionGroup>
179
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
182
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
Lines 192-197 Link Here
192
    </Link>
195
    </Link>
193
    <ResourceCompile>
196
    <ResourceCompile>
194
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
197
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
198
      <PreprocessorDefinitions>HAVE_CONFIG_H</PreprocessorDefinitions>
195
    </ResourceCompile>
199
    </ResourceCompile>
196
  </ItemDefinitionGroup>
200
  </ItemDefinitionGroup>
197
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|Win32'">
201
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|Win32'">
Lines 211-216 Link Here
211
    </Link>
215
    </Link>
212
    <ResourceCompile>
216
    <ResourceCompile>
213
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
217
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
218
      <PreprocessorDefinitions>HAVE_CONFIG_H</PreprocessorDefinitions>
214
    </ResourceCompile>
219
    </ResourceCompile>
215
  </ItemDefinitionGroup>
220
  </ItemDefinitionGroup>
216
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|x64'">
221
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseMT|x64'">
Lines 229-234 Link Here
229
    </Link>
234
    </Link>
230
    <ResourceCompile>
235
    <ResourceCompile>
231
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
236
      <AdditionalIncludeDirectories>./;../../src/liblzma/common;../../src/common;../../src/liblzma/api;</AdditionalIncludeDirectories>
237
      <PreprocessorDefinitions>HAVE_CONFIG_H</PreprocessorDefinitions>
232
    </ResourceCompile>
238
    </ResourceCompile>
233
  </ItemDefinitionGroup>
239
  </ItemDefinitionGroup>
234
  <ItemGroup>
240
  <ItemGroup>
Lines 256-261 Link Here
256
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder.c" />
262
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder.c" />
257
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder_memusage.c" />
263
    <ClCompile Include="..\..\src\liblzma\common\easy_encoder_memusage.c" />
258
    <ClCompile Include="..\..\src\liblzma\common\easy_preset.c" />
264
    <ClCompile Include="..\..\src\liblzma\common\easy_preset.c" />
265
    <ClCompile Include="..\..\src\liblzma\common\file_info.c" />
259
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_decoder.c" />
266
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_decoder.c" />
260
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_encoder.c" />
267
    <ClCompile Include="..\..\src\liblzma\common\filter_buffer_encoder.c" />
261
    <ClCompile Include="..\..\src\liblzma\common\filter_common.c" />
268
    <ClCompile Include="..\..\src\liblzma\common\filter_common.c" />
Lines 269-283 Link Here
269
    <ClCompile Include="..\..\src\liblzma\common\index_decoder.c" />
276
    <ClCompile Include="..\..\src\liblzma\common\index_decoder.c" />
270
    <ClCompile Include="..\..\src\liblzma\common\index_encoder.c" />
277
    <ClCompile Include="..\..\src\liblzma\common\index_encoder.c" />
271
    <ClCompile Include="..\..\src\liblzma\common\index_hash.c" />
278
    <ClCompile Include="..\..\src\liblzma\common\index_hash.c" />
279
    <ClCompile Include="..\..\src\liblzma\common\lzip_decoder.c" />
280
    <ClCompile Include="..\..\src\liblzma\common\microlzma_decoder.c" />
281
    <ClCompile Include="..\..\src\liblzma\common\microlzma_encoder.c" />
272
    <ClCompile Include="..\..\src\liblzma\common\outqueue.c" />
282
    <ClCompile Include="..\..\src\liblzma\common\outqueue.c" />
273
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_decoder.c" />
283
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_decoder.c" />
274
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_encoder.c" />
284
    <ClCompile Include="..\..\src\liblzma\common\stream_buffer_encoder.c" />
275
    <ClCompile Include="..\..\src\liblzma\common\stream_decoder.c" />
285
    <ClCompile Include="..\..\src\liblzma\common\stream_decoder.c" />
286
    <ClCompile Include="..\..\src\liblzma\common\stream_decoder_mt.c" />
276
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder.c" />
287
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder.c" />
277
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder_mt.c" />
288
    <ClCompile Include="..\..\src\liblzma\common\stream_encoder_mt.c" />
278
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_common.c" />
289
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_common.c" />
279
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_decoder.c" />
290
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_decoder.c" />
280
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_encoder.c" />
291
    <ClCompile Include="..\..\src\liblzma\common\stream_flags_encoder.c" />
292
    <ClCompile Include="..\..\src\liblzma\common\string_conversion.c" />
281
    <ClCompile Include="..\..\src\liblzma\common\vli_decoder.c" />
293
    <ClCompile Include="..\..\src\liblzma\common\vli_decoder.c" />
282
    <ClCompile Include="..\..\src\liblzma\common\vli_encoder.c" />
294
    <ClCompile Include="..\..\src\liblzma\common\vli_encoder.c" />
283
    <ClCompile Include="..\..\src\liblzma\common\vli_size.c" />
295
    <ClCompile Include="..\..\src\liblzma\common\vli_size.c" />
Lines 297-302 Link Here
297
    <ClCompile Include="..\..\src\liblzma\lz\lz_encoder_mf.c" />
309
    <ClCompile Include="..\..\src\liblzma\lz\lz_encoder_mf.c" />
298
    <ClCompile Include="..\..\src\liblzma\rangecoder\price_table.c" />
310
    <ClCompile Include="..\..\src\liblzma\rangecoder\price_table.c" />
299
    <ClCompile Include="..\..\src\liblzma\simple\arm.c" />
311
    <ClCompile Include="..\..\src\liblzma\simple\arm.c" />
312
    <ClCompile Include="..\..\src\liblzma\simple\arm64.c" />
300
    <ClCompile Include="..\..\src\liblzma\simple\armthumb.c" />
313
    <ClCompile Include="..\..\src\liblzma\simple\armthumb.c" />
301
    <ClCompile Include="..\..\src\liblzma\simple\ia64.c" />
314
    <ClCompile Include="..\..\src\liblzma\simple\ia64.c" />
302
    <ClCompile Include="..\..\src\liblzma\simple\powerpc.c" />
315
    <ClCompile Include="..\..\src\liblzma\simple\powerpc.c" />
Lines 345-352 Link Here
345
    <ClInclude Include="..\..\src\liblzma\common\filter_decoder.h" />
358
    <ClInclude Include="..\..\src\liblzma\common\filter_decoder.h" />
346
    <ClInclude Include="..\..\src\liblzma\common\filter_encoder.h" />
359
    <ClInclude Include="..\..\src\liblzma\common\filter_encoder.h" />
347
    <ClInclude Include="..\..\src\liblzma\common\index.h" />
360
    <ClInclude Include="..\..\src\liblzma\common\index.h" />
361
    <ClInclude Include="..\..\src\liblzma\common\index_decoder.h" />
348
    <ClInclude Include="..\..\src\liblzma\common\index_encoder.h" />
362
    <ClInclude Include="..\..\src\liblzma\common\index_encoder.h" />
349
    <ClInclude Include="..\..\src\liblzma\common\memcmplen.h" />
363
    <ClInclude Include="..\..\src\liblzma\common\memcmplen.h" />
364
    <ClInclude Include="..\..\src\liblzma\common\lzip_decoder.h" />
350
    <ClInclude Include="..\..\src\liblzma\common\outqueue.h" />
365
    <ClInclude Include="..\..\src\liblzma\common\outqueue.h" />
351
    <ClInclude Include="..\..\src\liblzma\common\stream_decoder.h" />
366
    <ClInclude Include="..\..\src\liblzma\common\stream_decoder.h" />
352
    <ClInclude Include="..\..\src\liblzma\common\stream_flags_common.h" />
367
    <ClInclude Include="..\..\src\liblzma\common\stream_flags_common.h" />
Lines 381-384 Link Here
381
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
396
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
382
  <ImportGroup Label="ExtensionTargets">
397
  <ImportGroup Label="ExtensionTargets">
383
  </ImportGroup>
398
  </ImportGroup>
384
</Project>
399
</Project>

Return to bug 46323