From 039b9cd22cbf6f778ea0083088fbb984da85fdec Mon Sep 17 00:00:00 2001 From: Bharath Y Date: Mon, 3 Nov 2025 00:57:43 +0530 Subject: [PATCH 1/5] Add XZ Utils 5.4.5 installation for compression support - Downloaded and built XZ Utils 5.4.5 from source - Installed to xz-install/ directory with libraries, binaries, and headers - Verified installation with version check and basic compression test - Ready for linking liblzma in Open-Sora-All project --- test_file.txt | 1 + xz-5.4.5.tar.gz | Bin 0 -> 2884510 bytes xz-5.4.5/ABOUT-NLS | 1 + xz-5.4.5/AUTHORS | 39 + xz-5.4.5/CMakeLists.txt | 1383 + xz-5.4.5/COPYING | 76 + xz-5.4.5/COPYING.GPLv2 | 339 + xz-5.4.5/COPYING.GPLv3 | 674 + xz-5.4.5/COPYING.LGPLv2.1 | 502 + xz-5.4.5/ChangeLog | 11756 ++++++++ xz-5.4.5/INSTALL | 765 + xz-5.4.5/INSTALL.generic | 368 + xz-5.4.5/Makefile | 1121 + xz-5.4.5/Makefile.am | 134 + xz-5.4.5/Makefile.in | 1121 + xz-5.4.5/NEWS | 1798 ++ xz-5.4.5/PACKAGERS | 243 + xz-5.4.5/README | 307 + xz-5.4.5/THANKS | 174 + xz-5.4.5/TODO | 109 + xz-5.4.5/aclocal.m4 | 1196 + xz-5.4.5/autogen.sh | 56 + xz-5.4.5/build-aux/compile | 348 + xz-5.4.5/build-aux/config.guess | 1754 ++ xz-5.4.5/build-aux/config.rpath | 684 + xz-5.4.5/build-aux/config.sub | 1890 ++ xz-5.4.5/build-aux/depcomp | 791 + xz-5.4.5/build-aux/install-sh | 541 + xz-5.4.5/build-aux/ltmain.sh | 11437 +++++++ xz-5.4.5/build-aux/manconv.sh | 58 + xz-5.4.5/build-aux/missing | 215 + xz-5.4.5/build-aux/test-driver | 153 + xz-5.4.5/build-aux/version.sh | 24 + xz-5.4.5/cmake/remove-ordinals.cmake | 26 + xz-5.4.5/cmake/tuklib_common.cmake | 49 + xz-5.4.5/cmake/tuklib_cpucores.cmake | 180 + xz-5.4.5/cmake/tuklib_integer.cmake | 101 + .../cmake/tuklib_large_file_support.cmake | 52 + xz-5.4.5/cmake/tuklib_mbstr.cmake | 20 + xz-5.4.5/cmake/tuklib_physmem.cmake | 150 + xz-5.4.5/cmake/tuklib_progname.cmake | 18 + xz-5.4.5/config.h | 602 + xz-5.4.5/config.h.in | 601 + xz-5.4.5/config.status | 2538 ++ xz-5.4.5/configure | 24905 ++++++++++++++++ xz-5.4.5/configure.ac | 1191 + xz-5.4.5/doc/api/annotated.html | 68 + xz-5.4.5/doc/api/base_8h.html | 580 + xz-5.4.5/doc/api/bc_s.png | Bin 0 -> 675 bytes xz-5.4.5/doc/api/bc_sd.png | Bin 0 -> 604 bytes xz-5.4.5/doc/api/bcj_8h.html | 105 + xz-5.4.5/doc/api/block_8h.html | 758 + xz-5.4.5/doc/api/check_8h.html | 340 + xz-5.4.5/doc/api/classes.html | 60 + xz-5.4.5/doc/api/closed.png | Bin 0 -> 132 bytes xz-5.4.5/doc/api/container_8h.html | 1279 + xz-5.4.5/doc/api/delta_8h.html | 132 + .../dir_b17a1d403082bd69a703ed987cf158fb.html | 104 + xz-5.4.5/doc/api/doc.svg | 12 + xz-5.4.5/doc/api/docd.svg | 12 + xz-5.4.5/doc/api/doxygen.css | 2017 ++ xz-5.4.5/doc/api/doxygen.svg | 28 + xz-5.4.5/doc/api/files.html | 74 + xz-5.4.5/doc/api/filter_8h.html | 1342 + xz-5.4.5/doc/api/folderclosed.svg | 11 + xz-5.4.5/doc/api/folderclosedd.svg | 11 + xz-5.4.5/doc/api/folderopen.svg | 17 + xz-5.4.5/doc/api/folderopend.svg | 12 + xz-5.4.5/doc/api/functions.html | 210 + xz-5.4.5/doc/api/functions_vars.html | 210 + xz-5.4.5/doc/api/globals.html | 272 + xz-5.4.5/doc/api/globals_defs.html | 119 + xz-5.4.5/doc/api/globals_enum.html | 71 + xz-5.4.5/doc/api/globals_eval.html | 103 + xz-5.4.5/doc/api/globals_func.html | 177 + xz-5.4.5/doc/api/globals_type.html | 68 + xz-5.4.5/doc/api/hardware_8h.html | 123 + xz-5.4.5/doc/api/index.html | 53 + xz-5.4.5/doc/api/index_8h.html | 1268 + xz-5.4.5/doc/api/index__hash_8h.html | 311 + xz-5.4.5/doc/api/lzma12_8h.html | 436 + xz-5.4.5/doc/api/lzma_8h.html | 109 + xz-5.4.5/doc/api/nav_f.png | Bin 0 -> 167 bytes xz-5.4.5/doc/api/nav_fd.png | Bin 0 -> 144 bytes xz-5.4.5/doc/api/nav_g.png | Bin 0 -> 95 bytes xz-5.4.5/doc/api/nav_h.png | Bin 0 -> 97 bytes xz-5.4.5/doc/api/nav_hd.png | Bin 0 -> 104 bytes xz-5.4.5/doc/api/open.png | Bin 0 -> 121 bytes xz-5.4.5/doc/api/splitbar.png | Bin 0 -> 309 bytes xz-5.4.5/doc/api/splitbard.png | Bin 0 -> 278 bytes xz-5.4.5/doc/api/stream__flags_8h.html | 348 + xz-5.4.5/doc/api/structlzma__allocator.html | 153 + xz-5.4.5/doc/api/structlzma__block.html | 347 + xz-5.4.5/doc/api/structlzma__filter.html | 114 + xz-5.4.5/doc/api/structlzma__index__iter.html | 407 + xz-5.4.5/doc/api/structlzma__mt.html | 256 + .../doc/api/structlzma__options__bcj.html | 95 + .../doc/api/structlzma__options__delta.html | 113 + .../doc/api/structlzma__options__lzma.html | 363 + xz-5.4.5/doc/api/structlzma__stream.html | 251 + .../doc/api/structlzma__stream__flags.html | 134 + xz-5.4.5/doc/api/sync_off.png | Bin 0 -> 857 bytes xz-5.4.5/doc/api/sync_on.png | Bin 0 -> 851 bytes xz-5.4.5/doc/api/tab_a.png | Bin 0 -> 135 bytes xz-5.4.5/doc/api/tab_ad.png | Bin 0 -> 133 bytes xz-5.4.5/doc/api/tab_b.png | Bin 0 -> 178 bytes xz-5.4.5/doc/api/tab_bd.png | Bin 0 -> 157 bytes xz-5.4.5/doc/api/tab_h.png | Bin 0 -> 179 bytes xz-5.4.5/doc/api/tab_hd.png | Bin 0 -> 168 bytes xz-5.4.5/doc/api/tab_s.png | Bin 0 -> 208 bytes xz-5.4.5/doc/api/tab_sd.png | Bin 0 -> 171 bytes xz-5.4.5/doc/api/tabs.css | 62 + xz-5.4.5/doc/api/version_8h.html | 239 + xz-5.4.5/doc/api/vli_8h.html | 323 + xz-5.4.5/doc/examples/00_README.txt | 31 + xz-5.4.5/doc/examples/01_compress_easy.c | 297 + xz-5.4.5/doc/examples/02_decompress.c | 287 + xz-5.4.5/doc/examples/03_compress_custom.c | 193 + xz-5.4.5/doc/examples/04_compress_easy_mt.c | 206 + xz-5.4.5/doc/examples/Makefile | 25 + xz-5.4.5/doc/examples_old/xz_pipe_comp.c | 127 + xz-5.4.5/doc/examples_old/xz_pipe_decomp.c | 123 + xz-5.4.5/doc/faq.txt | 244 + xz-5.4.5/doc/history.txt | 150 + xz-5.4.5/doc/lzma-file-format.txt | 173 + xz-5.4.5/doc/man/pdf-a4/lzmainfo-a4.pdf | Bin 0 -> 16384 bytes xz-5.4.5/doc/man/pdf-a4/xz-a4.pdf | Bin 0 -> 114746 bytes xz-5.4.5/doc/man/pdf-a4/xzdec-a4.pdf | Bin 0 -> 19978 bytes xz-5.4.5/doc/man/pdf-a4/xzdiff-a4.pdf | Bin 0 -> 17200 bytes xz-5.4.5/doc/man/pdf-a4/xzgrep-a4.pdf | Bin 0 -> 18338 bytes xz-5.4.5/doc/man/pdf-a4/xzless-a4.pdf | Bin 0 -> 15029 bytes xz-5.4.5/doc/man/pdf-a4/xzmore-a4.pdf | Bin 0 -> 15203 bytes .../doc/man/pdf-letter/lzmainfo-letter.pdf | Bin 0 -> 16394 bytes xz-5.4.5/doc/man/pdf-letter/xz-letter.pdf | Bin 0 -> 115882 bytes xz-5.4.5/doc/man/pdf-letter/xzdec-letter.pdf | Bin 0 -> 19970 bytes xz-5.4.5/doc/man/pdf-letter/xzdiff-letter.pdf | Bin 0 -> 17227 bytes xz-5.4.5/doc/man/pdf-letter/xzgrep-letter.pdf | Bin 0 -> 18322 bytes xz-5.4.5/doc/man/pdf-letter/xzless-letter.pdf | Bin 0 -> 15022 bytes xz-5.4.5/doc/man/pdf-letter/xzmore-letter.pdf | Bin 0 -> 15159 bytes xz-5.4.5/doc/man/txt/lzmainfo.txt | 40 + xz-5.4.5/doc/man/txt/xz.txt | 1586 + xz-5.4.5/doc/man/txt/xzdec.txt | 80 + xz-5.4.5/doc/man/txt/xzdiff.txt | 37 + xz-5.4.5/doc/man/txt/xzgrep.txt | 49 + xz-5.4.5/doc/man/txt/xzless.txt | 39 + xz-5.4.5/doc/man/txt/xzmore.txt | 34 + xz-5.4.5/doc/xz-file-format.txt | 1165 + xz-5.4.5/dos/INSTALL.txt | 78 + xz-5.4.5/dos/Makefile | 149 + xz-5.4.5/dos/README.txt | 123 + xz-5.4.5/dos/config.h | 153 + xz-5.4.5/doxygen/Doxyfile | 2687 ++ xz-5.4.5/doxygen/update-doxygen | 111 + xz-5.4.5/extra/7z2lzma/7z2lzma.bash | 115 + xz-5.4.5/extra/scanlzma/scanlzma.c | 88 + xz-5.4.5/libtool | 12075 ++++++++ xz-5.4.5/m4/ax_check_capsicum.m4 | 85 + xz-5.4.5/m4/ax_pthread.m4 | 522 + xz-5.4.5/m4/getopt.m4 | 71 + xz-5.4.5/m4/gettext.m4 | 386 + xz-5.4.5/m4/host-cpu-c-abi.m4 | 678 + xz-5.4.5/m4/iconv.m4 | 283 + xz-5.4.5/m4/intlmacosx.m4 | 65 + xz-5.4.5/m4/lib-ld.m4 | 168 + xz-5.4.5/m4/lib-link.m4 | 813 + xz-5.4.5/m4/lib-prefix.m4 | 323 + xz-5.4.5/m4/libtool.m4 | 8399 ++++++ xz-5.4.5/m4/ltoptions.m4 | 437 + xz-5.4.5/m4/ltsugar.m4 | 124 + xz-5.4.5/m4/ltversion.m4 | 24 + xz-5.4.5/m4/lt~obsolete.m4 | 99 + xz-5.4.5/m4/nls.m4 | 32 + xz-5.4.5/m4/po.m4 | 454 + xz-5.4.5/m4/posix-shell.m4 | 63 + xz-5.4.5/m4/progtest.m4 | 91 + xz-5.4.5/m4/tuklib_common.m4 | 22 + xz-5.4.5/m4/tuklib_cpucores.m4 | 180 + xz-5.4.5/m4/tuklib_integer.m4 | 131 + xz-5.4.5/m4/tuklib_mbstr.m4 | 30 + xz-5.4.5/m4/tuklib_physmem.m4 | 211 + xz-5.4.5/m4/tuklib_progname.m4 | 28 + xz-5.4.5/m4/visibility.m4 | 82 + xz-5.4.5/macosx/build.sh | 113 + xz-5.4.5/po/LINGUAS | 23 + xz-5.4.5/po/Makefile | 630 + xz-5.4.5/po/Makefile.in | 510 + xz-5.4.5/po/Makefile.in.in | 510 + xz-5.4.5/po/Makevars | 46 + xz-5.4.5/po/POTFILES | 12 + xz-5.4.5/po/POTFILES.in | 13 + xz-5.4.5/po/Rules-quot | 62 + xz-5.4.5/po/boldquot.sed | 10 + xz-5.4.5/po/ca.gmo | Bin 0 -> 26876 bytes xz-5.4.5/po/ca.po | 1044 + xz-5.4.5/po/cs.gmo | Bin 0 -> 17576 bytes xz-5.4.5/po/cs.po | 1150 + xz-5.4.5/po/da.gmo | Bin 0 -> 12015 bytes xz-5.4.5/po/da.po | 1021 + xz-5.4.5/po/de.gmo | Bin 0 -> 28599 bytes xz-5.4.5/po/de.po | 1065 + xz-5.4.5/po/en@boldquot.header | 25 + xz-5.4.5/po/en@quot.header | 22 + xz-5.4.5/po/eo.gmo | Bin 0 -> 26139 bytes xz-5.4.5/po/eo.po | 1038 + xz-5.4.5/po/es.gmo | Bin 0 -> 27192 bytes xz-5.4.5/po/es.po | 1082 + xz-5.4.5/po/fi.gmo | Bin 0 -> 25923 bytes xz-5.4.5/po/fi.po | 1072 + xz-5.4.5/po/fr.gmo | Bin 0 -> 22307 bytes xz-5.4.5/po/fr.po | 1148 + xz-5.4.5/po/hr.gmo | Bin 0 -> 26682 bytes xz-5.4.5/po/hr.po | 1079 + xz-5.4.5/po/hu.gmo | Bin 0 -> 27374 bytes xz-5.4.5/po/hu.po | 1086 + xz-5.4.5/po/insert-header.sin | 28 + xz-5.4.5/po/it.gmo | Bin 0 -> 22043 bytes xz-5.4.5/po/it.po | 1138 + xz-5.4.5/po/ko.gmo | Bin 0 -> 27394 bytes xz-5.4.5/po/ko.po | 1070 + xz-5.4.5/po/pl.gmo | Bin 0 -> 26643 bytes xz-5.4.5/po/pl.po | 1033 + xz-5.4.5/po/pt.gmo | Bin 0 -> 21887 bytes xz-5.4.5/po/pt.po | 1151 + xz-5.4.5/po/pt_BR.gmo | Bin 0 -> 26890 bytes xz-5.4.5/po/pt_BR.po | 1097 + xz-5.4.5/po/quot.sed | 6 + xz-5.4.5/po/remove-potcdate.sin | 25 + xz-5.4.5/po/ro.gmo | Bin 0 -> 28538 bytes xz-5.4.5/po/ro.po | 1138 + xz-5.4.5/po/sr.gmo | Bin 0 -> 27551 bytes xz-5.4.5/po/sr.po | 1137 + xz-5.4.5/po/stamp-po | 1 + xz-5.4.5/po/sv.gmo | Bin 0 -> 26576 bytes xz-5.4.5/po/sv.po | 1084 + xz-5.4.5/po/tr.gmo | Bin 0 -> 26545 bytes xz-5.4.5/po/tr.po | 1037 + xz-5.4.5/po/uk.gmo | Bin 0 -> 35322 bytes xz-5.4.5/po/uk.po | 1094 + xz-5.4.5/po/vi.gmo | Bin 0 -> 28619 bytes xz-5.4.5/po/vi.po | 1079 + xz-5.4.5/po/zh_CN.gmo | Bin 0 -> 25247 bytes xz-5.4.5/po/zh_CN.po | 1059 + xz-5.4.5/po/zh_TW.gmo | Bin 0 -> 24823 bytes xz-5.4.5/po/zh_TW.po | 1063 + xz-5.4.5/po4a/.gitignore | 2 + xz-5.4.5/po4a/de.po | 5850 ++++ xz-5.4.5/po4a/fr.po | 6204 ++++ xz-5.4.5/po4a/ko.po | 5555 ++++ xz-5.4.5/po4a/po4a.conf | 14 + xz-5.4.5/po4a/pt_BR.po | 5748 ++++ xz-5.4.5/po4a/ro.po | 5838 ++++ xz-5.4.5/po4a/uk.po | 5760 ++++ xz-5.4.5/po4a/update-po | 45 + xz-5.4.5/src/Makefile | 696 + xz-5.4.5/src/Makefile.am | 42 + xz-5.4.5/src/Makefile.in | 696 + xz-5.4.5/src/common/common_w32res.rc | 52 + xz-5.4.5/src/common/mythread.h | 528 + xz-5.4.5/src/common/sysdefs.h | 197 + xz-5.4.5/src/common/tuklib_common.h | 71 + xz-5.4.5/src/common/tuklib_config.h | 10 + xz-5.4.5/src/common/tuklib_cpucores.c | 109 + xz-5.4.5/src/common/tuklib_cpucores.h | 23 + xz-5.4.5/src/common/tuklib_exit.c | 58 + xz-5.4.5/src/common/tuklib_exit.h | 25 + xz-5.4.5/src/common/tuklib_gettext.h | 44 + xz-5.4.5/src/common/tuklib_integer.h | 946 + xz-5.4.5/src/common/tuklib_mbstr.h | 66 + xz-5.4.5/src/common/tuklib_mbstr_fw.c | 31 + xz-5.4.5/src/common/tuklib_mbstr_width.c | 65 + xz-5.4.5/src/common/tuklib_open_stdxxx.c | 57 + xz-5.4.5/src/common/tuklib_open_stdxxx.h | 23 + xz-5.4.5/src/common/tuklib_physmem.c | 234 + xz-5.4.5/src/common/tuklib_physmem.h | 28 + xz-5.4.5/src/common/tuklib_progname.c | 50 + xz-5.4.5/src/common/tuklib_progname.h | 32 + .../.deps/liblzma_la-alone_decoder.Plo | 299 + .../.deps/liblzma_la-alone_encoder.Plo | 296 + xz-5.4.5/src/liblzma/.deps/liblzma_la-arm.Plo | 295 + .../src/liblzma/.deps/liblzma_la-arm64.Plo | 295 + .../src/liblzma/.deps/liblzma_la-armthumb.Plo | 295 + .../liblzma/.deps/liblzma_la-auto_decoder.Plo | 296 + .../.deps/liblzma_la-block_buffer_decoder.Plo | 294 + .../.deps/liblzma_la-block_buffer_encoder.Plo | 301 + .../.deps/liblzma_la-block_decoder.Plo | 298 + .../.deps/liblzma_la-block_encoder.Plo | 298 + .../.deps/liblzma_la-block_header_decoder.Plo | 295 + .../.deps/liblzma_la-block_header_encoder.Plo | 295 + .../liblzma/.deps/liblzma_la-block_util.Plo | 293 + .../src/liblzma/.deps/liblzma_la-check.Plo | 294 + .../src/liblzma/.deps/liblzma_la-common.Plo | 292 + .../liblzma/.deps/liblzma_la-crc32_fast.Plo | 295 + .../liblzma/.deps/liblzma_la-crc32_small.Plo | 1 + .../liblzma/.deps/liblzma_la-crc32_table.Plo | 294 + .../liblzma/.deps/liblzma_la-crc32_x86.Plo | 1 + .../liblzma/.deps/liblzma_la-crc64_fast.Plo | 486 + .../liblzma/.deps/liblzma_la-crc64_small.Plo | 1 + .../liblzma/.deps/liblzma_la-crc64_table.Plo | 294 + .../liblzma/.deps/liblzma_la-crc64_x86.Plo | 1 + .../liblzma/.deps/liblzma_la-delta_common.Plo | 295 + .../.deps/liblzma_la-delta_decoder.Plo | 296 + .../.deps/liblzma_la-delta_encoder.Plo | 296 + .../.deps/liblzma_la-easy_buffer_encoder.Plo | 294 + .../liblzma_la-easy_decoder_memusage.Plo | 294 + .../liblzma/.deps/liblzma_la-easy_encoder.Plo | 293 + .../liblzma_la-easy_encoder_memusage.Plo | 294 + .../liblzma/.deps/liblzma_la-easy_preset.Plo | 293 + .../.deps/liblzma_la-fastpos_table.Plo | 294 + .../liblzma/.deps/liblzma_la-file_info.Plo | 294 + .../liblzma_la-filter_buffer_decoder.Plo | 294 + .../liblzma_la-filter_buffer_encoder.Plo | 294 + .../.deps/liblzma_la-filter_common.Plo | 294 + .../.deps/liblzma_la-filter_decoder.Plo | 309 + .../.deps/liblzma_la-filter_encoder.Plo | 309 + .../.deps/liblzma_la-filter_flags_decoder.Plo | 294 + .../.deps/liblzma_la-filter_flags_encoder.Plo | 294 + .../.deps/liblzma_la-hardware_cputhreads.Plo | 294 + .../.deps/liblzma_la-hardware_physmem.Plo | 294 + .../src/liblzma/.deps/liblzma_la-ia64.Plo | 295 + .../src/liblzma/.deps/liblzma_la-index.Plo | 295 + .../.deps/liblzma_la-index_decoder.Plo | 298 + .../.deps/liblzma_la-index_encoder.Plo | 298 + .../liblzma/.deps/liblzma_la-index_hash.Plo | 296 + .../liblzma/.deps/liblzma_la-lz_decoder.Plo | 294 + .../liblzma/.deps/liblzma_la-lz_encoder.Plo | 486 + .../.deps/liblzma_la-lz_encoder_mf.Plo | 486 + .../liblzma/.deps/liblzma_la-lzip_decoder.Plo | 298 + .../.deps/liblzma_la-lzma2_decoder.Plo | 297 + .../.deps/liblzma_la-lzma2_encoder.Plo | 298 + .../liblzma/.deps/liblzma_la-lzma_decoder.Plo | 300 + .../liblzma/.deps/liblzma_la-lzma_encoder.Plo | 307 + .../liblzma_la-lzma_encoder_optimum_fast.Plo | 494 + ...liblzma_la-lzma_encoder_optimum_normal.Plo | 496 + .../.deps/liblzma_la-lzma_encoder_presets.Plo | 293 + .../.deps/liblzma_la-microlzma_decoder.Plo | 297 + .../.deps/liblzma_la-microlzma_encoder.Plo | 295 + .../src/liblzma/.deps/liblzma_la-outqueue.Plo | 293 + .../src/liblzma/.deps/liblzma_la-powerpc.Plo | 295 + .../liblzma/.deps/liblzma_la-price_table.Plo | 297 + .../src/liblzma/.deps/liblzma_la-sha256.Plo | 294 + .../liblzma/.deps/liblzma_la-simple_coder.Plo | 295 + .../.deps/liblzma_la-simple_decoder.Plo | 296 + .../.deps/liblzma_la-simple_encoder.Plo | 296 + .../src/liblzma/.deps/liblzma_la-sparc.Plo | 295 + .../liblzma_la-stream_buffer_decoder.Plo | 294 + .../liblzma_la-stream_buffer_encoder.Plo | 293 + .../.deps/liblzma_la-stream_decoder.Plo | 297 + .../.deps/liblzma_la-stream_decoder_mt.Plo | 297 + .../.deps/liblzma_la-stream_encoder.Plo | 295 + .../.deps/liblzma_la-stream_encoder_mt.Plo | 301 + .../.deps/liblzma_la-stream_flags_common.Plo | 294 + .../.deps/liblzma_la-stream_flags_decoder.Plo | 294 + .../.deps/liblzma_la-stream_flags_encoder.Plo | 294 + .../.deps/liblzma_la-string_conversion.Plo | 294 + .../.deps/liblzma_la-tuklib_cpucores.Plo | 342 + .../.deps/liblzma_la-tuklib_physmem.Plo | 260 + .../liblzma/.deps/liblzma_la-vli_decoder.Plo | 292 + .../liblzma/.deps/liblzma_la-vli_encoder.Plo | 292 + .../src/liblzma/.deps/liblzma_la-vli_size.Plo | 292 + xz-5.4.5/src/liblzma/.deps/liblzma_la-x86.Plo | 295 + xz-5.4.5/src/liblzma/.libs/liblzma.5.dylib | Bin 0 -> 221032 bytes xz-5.4.5/src/liblzma/.libs/liblzma.a | Bin 0 -> 1079848 bytes xz-5.4.5/src/liblzma/.libs/liblzma.dylib | 1 + xz-5.4.5/src/liblzma/.libs/liblzma.la | 1 + xz-5.4.5/src/liblzma/.libs/liblzma.lai | 41 + .../liblzma/.libs/liblzma_la-alone_decoder.o | Bin 0 -> 13536 bytes .../liblzma/.libs/liblzma_la-alone_encoder.o | Bin 0 -> 11752 bytes xz-5.4.5/src/liblzma/.libs/liblzma_la-arm.o | Bin 0 -> 7616 bytes xz-5.4.5/src/liblzma/.libs/liblzma_la-arm64.o | Bin 0 -> 8600 bytes .../src/liblzma/.libs/liblzma_la-armthumb.o | Bin 0 -> 7752 bytes .../liblzma/.libs/liblzma_la-auto_decoder.o | Bin 0 -> 12392 bytes .../.libs/liblzma_la-block_buffer_decoder.o | Bin 0 -> 7776 bytes .../.libs/liblzma_la-block_buffer_encoder.o | Bin 0 -> 16104 bytes .../liblzma/.libs/liblzma_la-block_decoder.o | Bin 0 -> 14344 bytes .../liblzma/.libs/liblzma_la-block_encoder.o | Bin 0 -> 13328 bytes .../.libs/liblzma_la-block_header_decoder.o | Bin 0 -> 7552 bytes .../.libs/liblzma_la-block_header_encoder.o | Bin 0 -> 8936 bytes .../src/liblzma/.libs/liblzma_la-block_util.o | Bin 0 -> 7200 bytes xz-5.4.5/src/liblzma/.libs/liblzma_la-check.o | Bin 0 -> 6112 bytes .../src/liblzma/.libs/liblzma_la-common.o | Bin 0 -> 17488 bytes .../src/liblzma/.libs/liblzma_la-crc32_fast.o | Bin 0 -> 4552 bytes .../liblzma/.libs/liblzma_la-crc32_table.o | Bin 0 -> 10320 bytes .../src/liblzma/.libs/liblzma_la-crc64_fast.o | Bin 0 -> 9440 bytes .../liblzma/.libs/liblzma_la-crc64_table.o | Bin 0 -> 10328 bytes .../liblzma/.libs/liblzma_la-delta_common.o | Bin 0 -> 8056 bytes .../liblzma/.libs/liblzma_la-delta_decoder.o | Bin 0 -> 8840 bytes .../liblzma/.libs/liblzma_la-delta_encoder.o | Bin 0 -> 10816 bytes .../.libs/liblzma_la-easy_buffer_encoder.o | Bin 0 -> 6288 bytes .../.libs/liblzma_la-easy_decoder_memusage.o | Bin 0 -> 4712 bytes .../liblzma/.libs/liblzma_la-easy_encoder.o | Bin 0 -> 7856 bytes .../.libs/liblzma_la-easy_encoder_memusage.o | Bin 0 -> 4712 bytes .../liblzma/.libs/liblzma_la-easy_preset.o | Bin 0 -> 4560 bytes .../liblzma/.libs/liblzma_la-fastpos_table.o | Bin 0 -> 10248 bytes .../src/liblzma/.libs/liblzma_la-file_info.o | Bin 0 -> 21256 bytes .../.libs/liblzma_la-filter_buffer_decoder.o | Bin 0 -> 6912 bytes .../.libs/liblzma_la-filter_buffer_encoder.o | Bin 0 -> 6424 bytes .../liblzma/.libs/liblzma_la-filter_common.o | Bin 0 -> 14424 bytes .../liblzma/.libs/liblzma_la-filter_decoder.o | Bin 0 -> 12280 bytes .../liblzma/.libs/liblzma_la-filter_encoder.o | Bin 0 -> 16056 bytes .../.libs/liblzma_la-filter_flags_decoder.o | Bin 0 -> 4952 bytes .../.libs/liblzma_la-filter_flags_encoder.o | Bin 0 -> 5576 bytes .../.libs/liblzma_la-hardware_cputhreads.o | Bin 0 -> 2416 bytes .../.libs/liblzma_la-hardware_physmem.o | Bin 0 -> 2416 bytes xz-5.4.5/src/liblzma/.libs/liblzma_la-ia64.o | Bin 0 -> 9728 bytes xz-5.4.5/src/liblzma/.libs/liblzma_la-index.o | Bin 0 -> 37648 bytes .../liblzma/.libs/liblzma_la-index_decoder.o | Bin 0 -> 14640 bytes .../liblzma/.libs/liblzma_la-index_encoder.o | Bin 0 -> 14752 bytes .../src/liblzma/.libs/liblzma_la-index_hash.o | Bin 0 -> 12792 bytes .../src/liblzma/.libs/liblzma_la-lz_decoder.o | Bin 0 -> 12104 bytes .../src/liblzma/.libs/liblzma_la-lz_encoder.o | Bin 0 -> 17016 bytes .../liblzma/.libs/liblzma_la-lz_encoder_mf.o | Bin 0 -> 36032 bytes .../liblzma/.libs/liblzma_la-lzip_decoder.o | Bin 0 -> 15760 bytes .../liblzma/.libs/liblzma_la-lzma2_decoder.o | Bin 0 -> 13448 bytes .../liblzma/.libs/liblzma_la-lzma2_encoder.o | Bin 0 -> 16816 bytes .../liblzma/.libs/liblzma_la-lzma_decoder.o | Bin 0 -> 61072 bytes .../liblzma/.libs/liblzma_la-lzma_encoder.o | Bin 0 -> 44832 bytes .../liblzma_la-lzma_encoder_optimum_fast.o | Bin 0 -> 13008 bytes .../liblzma_la-lzma_encoder_optimum_normal.o | Bin 0 -> 39328 bytes .../.libs/liblzma_la-lzma_encoder_presets.o | Bin 0 -> 4792 bytes .../.libs/liblzma_la-microlzma_decoder.o | Bin 0 -> 13320 bytes .../.libs/liblzma_la-microlzma_encoder.o | Bin 0 -> 11304 bytes .../src/liblzma/.libs/liblzma_la-outqueue.o | Bin 0 -> 12496 bytes .../src/liblzma/.libs/liblzma_la-powerpc.o | Bin 0 -> 7592 bytes .../liblzma/.libs/liblzma_la-price_table.o | Bin 0 -> 2200 bytes .../src/liblzma/.libs/liblzma_la-sha256.o | Bin 0 -> 39880 bytes .../liblzma/.libs/liblzma_la-simple_coder.o | Bin 0 -> 12432 bytes .../liblzma/.libs/liblzma_la-simple_decoder.o | Bin 0 -> 4888 bytes .../liblzma/.libs/liblzma_la-simple_encoder.o | Bin 0 -> 3888 bytes xz-5.4.5/src/liblzma/.libs/liblzma_la-sparc.o | Bin 0 -> 7720 bytes .../.libs/liblzma_la-stream_buffer_decoder.o | Bin 0 -> 7000 bytes .../.libs/liblzma_la-stream_buffer_encoder.o | Bin 0 -> 9728 bytes .../liblzma/.libs/liblzma_la-stream_decoder.o | Bin 0 -> 17392 bytes .../.libs/liblzma_la-stream_decoder_mt.o | Bin 0 -> 51504 bytes .../liblzma/.libs/liblzma_la-stream_encoder.o | Bin 0 -> 17088 bytes .../.libs/liblzma_la-stream_encoder_mt.o | Bin 0 -> 48192 bytes .../.libs/liblzma_la-stream_flags_common.o | Bin 0 -> 5304 bytes .../.libs/liblzma_la-stream_flags_decoder.o | Bin 0 -> 6224 bytes .../.libs/liblzma_la-stream_flags_encoder.o | Bin 0 -> 6456 bytes .../.libs/liblzma_la-string_conversion.o | Bin 0 -> 35640 bytes .../.libs/liblzma_la-tuklib_cpucores.o | Bin 0 -> 3664 bytes .../liblzma/.libs/liblzma_la-tuklib_physmem.o | Bin 0 -> 2920 bytes .../liblzma/.libs/liblzma_la-vli_decoder.o | Bin 0 -> 4472 bytes .../liblzma/.libs/liblzma_la-vli_encoder.o | Bin 0 -> 4048 bytes .../src/liblzma/.libs/liblzma_la-vli_size.o | Bin 0 -> 2664 bytes xz-5.4.5/src/liblzma/.libs/liblzma_la-x86.o | Bin 0 -> 9768 bytes xz-5.4.5/src/liblzma/Makefile | 2236 ++ xz-5.4.5/src/liblzma/Makefile.am | 130 + xz-5.4.5/src/liblzma/Makefile.in | 2236 ++ xz-5.4.5/src/liblzma/api/Makefile | 630 + xz-5.4.5/src/liblzma/api/Makefile.am | 23 + xz-5.4.5/src/liblzma/api/Makefile.in | 630 + xz-5.4.5/src/liblzma/api/lzma.h | 328 + xz-5.4.5/src/liblzma/api/lzma/base.h | 748 + xz-5.4.5/src/liblzma/api/lzma/bcj.h | 94 + xz-5.4.5/src/liblzma/api/lzma/block.h | 695 + xz-5.4.5/src/liblzma/api/lzma/check.h | 164 + xz-5.4.5/src/liblzma/api/lzma/container.h | 968 + xz-5.4.5/src/liblzma/api/lzma/delta.h | 96 + xz-5.4.5/src/liblzma/api/lzma/filter.h | 770 + xz-5.4.5/src/liblzma/api/lzma/hardware.h | 63 + xz-5.4.5/src/liblzma/api/lzma/index.h | 860 + xz-5.4.5/src/liblzma/api/lzma/index_hash.h | 124 + xz-5.4.5/src/liblzma/api/lzma/lzma12.h | 569 + xz-5.4.5/src/liblzma/api/lzma/stream_flags.h | 266 + xz-5.4.5/src/liblzma/api/lzma/version.h | 135 + xz-5.4.5/src/liblzma/api/lzma/vli.h | 168 + xz-5.4.5/src/liblzma/check/Makefile.inc | 53 + xz-5.4.5/src/liblzma/check/check.c | 174 + xz-5.4.5/src/liblzma/check/check.h | 175 + xz-5.4.5/src/liblzma/check/crc32_fast.c | 82 + xz-5.4.5/src/liblzma/check/crc32_small.c | 68 + xz-5.4.5/src/liblzma/check/crc32_table.c | 22 + xz-5.4.5/src/liblzma/check/crc32_table_be.h | 525 + xz-5.4.5/src/liblzma/check/crc32_table_le.h | 525 + xz-5.4.5/src/liblzma/check/crc32_tablegen.c | 117 + xz-5.4.5/src/liblzma/check/crc32_x86.S | 313 + xz-5.4.5/src/liblzma/check/crc64_fast.c | 538 + xz-5.4.5/src/liblzma/check/crc64_small.c | 58 + xz-5.4.5/src/liblzma/check/crc64_table.c | 33 + xz-5.4.5/src/liblzma/check/crc64_table_be.h | 521 + xz-5.4.5/src/liblzma/check/crc64_table_le.h | 521 + xz-5.4.5/src/liblzma/check/crc64_tablegen.c | 88 + xz-5.4.5/src/liblzma/check/crc64_x86.S | 296 + xz-5.4.5/src/liblzma/check/crc_macros.h | 30 + xz-5.4.5/src/liblzma/check/sha256.c | 196 + xz-5.4.5/src/liblzma/common/Makefile.inc | 104 + xz-5.4.5/src/liblzma/common/alone_decoder.c | 249 + xz-5.4.5/src/liblzma/common/alone_decoder.h | 23 + xz-5.4.5/src/liblzma/common/alone_encoder.c | 152 + xz-5.4.5/src/liblzma/common/auto_decoder.c | 206 + .../src/liblzma/common/block_buffer_decoder.c | 80 + .../src/liblzma/common/block_buffer_encoder.c | 355 + .../src/liblzma/common/block_buffer_encoder.h | 24 + xz-5.4.5/src/liblzma/common/block_decoder.c | 289 + xz-5.4.5/src/liblzma/common/block_decoder.h | 22 + xz-5.4.5/src/liblzma/common/block_encoder.c | 227 + xz-5.4.5/src/liblzma/common/block_encoder.h | 47 + .../src/liblzma/common/block_header_decoder.c | 115 + .../src/liblzma/common/block_header_encoder.c | 132 + xz-5.4.5/src/liblzma/common/block_util.c | 90 + xz-5.4.5/src/liblzma/common/common.c | 481 + xz-5.4.5/src/liblzma/common/common.h | 413 + .../src/liblzma/common/easy_buffer_encoder.c | 27 + .../liblzma/common/easy_decoder_memusage.c | 24 + xz-5.4.5/src/liblzma/common/easy_encoder.c | 24 + .../liblzma/common/easy_encoder_memusage.c | 24 + xz-5.4.5/src/liblzma/common/easy_preset.c | 27 + xz-5.4.5/src/liblzma/common/easy_preset.h | 32 + xz-5.4.5/src/liblzma/common/file_info.c | 855 + .../liblzma/common/filter_buffer_decoder.c | 88 + .../liblzma/common/filter_buffer_encoder.c | 55 + xz-5.4.5/src/liblzma/common/filter_common.c | 385 + xz-5.4.5/src/liblzma/common/filter_common.h | 51 + xz-5.4.5/src/liblzma/common/filter_decoder.c | 198 + xz-5.4.5/src/liblzma/common/filter_decoder.h | 23 + xz-5.4.5/src/liblzma/common/filter_encoder.c | 308 + xz-5.4.5/src/liblzma/common/filter_encoder.h | 27 + .../src/liblzma/common/filter_flags_decoder.c | 46 + .../src/liblzma/common/filter_flags_encoder.c | 56 + .../src/liblzma/common/hardware_cputhreads.c | 34 + .../src/liblzma/common/hardware_physmem.c | 25 + xz-5.4.5/src/liblzma/common/index.c | 1269 + xz-5.4.5/src/liblzma/common/index.h | 81 + xz-5.4.5/src/liblzma/common/index_decoder.c | 362 + xz-5.4.5/src/liblzma/common/index_decoder.h | 25 + xz-5.4.5/src/liblzma/common/index_encoder.c | 263 + xz-5.4.5/src/liblzma/common/index_encoder.h | 23 + xz-5.4.5/src/liblzma/common/index_hash.c | 343 + xz-5.4.5/src/liblzma/common/lzip_decoder.c | 418 + xz-5.4.5/src/liblzma/common/lzip_decoder.h | 22 + xz-5.4.5/src/liblzma/common/memcmplen.h | 173 + .../src/liblzma/common/microlzma_decoder.c | 221 + .../src/liblzma/common/microlzma_encoder.c | 141 + xz-5.4.5/src/liblzma/common/outqueue.c | 287 + xz-5.4.5/src/liblzma/common/outqueue.h | 254 + .../liblzma/common/stream_buffer_decoder.c | 91 + .../liblzma/common/stream_buffer_encoder.c | 142 + xz-5.4.5/src/liblzma/common/stream_decoder.c | 474 + xz-5.4.5/src/liblzma/common/stream_decoder.h | 22 + .../src/liblzma/common/stream_decoder_mt.c | 2018 ++ xz-5.4.5/src/liblzma/common/stream_encoder.c | 355 + .../src/liblzma/common/stream_encoder_mt.c | 1283 + .../src/liblzma/common/stream_flags_common.c | 47 + .../src/liblzma/common/stream_flags_common.h | 36 + .../src/liblzma/common/stream_flags_decoder.c | 88 + .../src/liblzma/common/stream_flags_encoder.c | 86 + .../src/liblzma/common/string_conversion.c | 1324 + xz-5.4.5/src/liblzma/common/vli_decoder.c | 86 + xz-5.4.5/src/liblzma/common/vli_encoder.c | 69 + xz-5.4.5/src/liblzma/common/vli_size.c | 30 + xz-5.4.5/src/liblzma/delta/Makefile.inc | 23 + xz-5.4.5/src/liblzma/delta/delta_common.c | 73 + xz-5.4.5/src/liblzma/delta/delta_common.h | 20 + xz-5.4.5/src/liblzma/delta/delta_decoder.c | 83 + xz-5.4.5/src/liblzma/delta/delta_decoder.h | 26 + xz-5.4.5/src/liblzma/delta/delta_encoder.c | 133 + xz-5.4.5/src/liblzma/delta/delta_encoder.h | 24 + xz-5.4.5/src/liblzma/delta/delta_private.h | 37 + xz-5.4.5/src/liblzma/liblzma.la | 41 + xz-5.4.5/src/liblzma/liblzma.pc | 20 + xz-5.4.5/src/liblzma/liblzma.pc.in | 20 + xz-5.4.5/src/liblzma/liblzma_generic.map | 121 + .../src/liblzma/liblzma_la-alone_decoder.lo | 12 + .../src/liblzma/liblzma_la-alone_decoder.o | Bin 0 -> 13536 bytes .../src/liblzma/liblzma_la-alone_encoder.lo | 12 + .../src/liblzma/liblzma_la-alone_encoder.o | Bin 0 -> 11752 bytes xz-5.4.5/src/liblzma/liblzma_la-arm.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-arm.o | Bin 0 -> 7616 bytes xz-5.4.5/src/liblzma/liblzma_la-arm64.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-arm64.o | Bin 0 -> 8600 bytes xz-5.4.5/src/liblzma/liblzma_la-armthumb.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-armthumb.o | Bin 0 -> 7752 bytes .../src/liblzma/liblzma_la-auto_decoder.lo | 12 + .../src/liblzma/liblzma_la-auto_decoder.o | Bin 0 -> 12392 bytes .../liblzma_la-block_buffer_decoder.lo | 12 + .../liblzma/liblzma_la-block_buffer_decoder.o | Bin 0 -> 7776 bytes .../liblzma_la-block_buffer_encoder.lo | 12 + .../liblzma/liblzma_la-block_buffer_encoder.o | Bin 0 -> 16104 bytes .../src/liblzma/liblzma_la-block_decoder.lo | 12 + .../src/liblzma/liblzma_la-block_decoder.o | Bin 0 -> 14344 bytes .../src/liblzma/liblzma_la-block_encoder.lo | 12 + .../src/liblzma/liblzma_la-block_encoder.o | Bin 0 -> 13328 bytes .../liblzma_la-block_header_decoder.lo | 12 + .../liblzma/liblzma_la-block_header_decoder.o | Bin 0 -> 7552 bytes .../liblzma_la-block_header_encoder.lo | 12 + .../liblzma/liblzma_la-block_header_encoder.o | Bin 0 -> 8936 bytes xz-5.4.5/src/liblzma/liblzma_la-block_util.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-block_util.o | Bin 0 -> 7200 bytes xz-5.4.5/src/liblzma/liblzma_la-check.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-check.o | Bin 0 -> 6112 bytes xz-5.4.5/src/liblzma/liblzma_la-common.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-common.o | Bin 0 -> 17488 bytes xz-5.4.5/src/liblzma/liblzma_la-crc32_fast.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-crc32_fast.o | Bin 0 -> 4552 bytes .../src/liblzma/liblzma_la-crc32_table.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-crc32_table.o | Bin 0 -> 10320 bytes xz-5.4.5/src/liblzma/liblzma_la-crc64_fast.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-crc64_fast.o | Bin 0 -> 9440 bytes .../src/liblzma/liblzma_la-crc64_table.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-crc64_table.o | Bin 0 -> 10328 bytes .../src/liblzma/liblzma_la-delta_common.lo | 12 + .../src/liblzma/liblzma_la-delta_common.o | Bin 0 -> 8056 bytes .../src/liblzma/liblzma_la-delta_decoder.lo | 12 + .../src/liblzma/liblzma_la-delta_decoder.o | Bin 0 -> 8840 bytes .../src/liblzma/liblzma_la-delta_encoder.lo | 12 + .../src/liblzma/liblzma_la-delta_encoder.o | Bin 0 -> 10816 bytes .../liblzma/liblzma_la-easy_buffer_encoder.lo | 12 + .../liblzma/liblzma_la-easy_buffer_encoder.o | Bin 0 -> 6288 bytes .../liblzma_la-easy_decoder_memusage.lo | 12 + .../liblzma_la-easy_decoder_memusage.o | Bin 0 -> 4712 bytes .../src/liblzma/liblzma_la-easy_encoder.lo | 12 + .../src/liblzma/liblzma_la-easy_encoder.o | Bin 0 -> 7856 bytes .../liblzma_la-easy_encoder_memusage.lo | 12 + .../liblzma_la-easy_encoder_memusage.o | Bin 0 -> 4712 bytes .../src/liblzma/liblzma_la-easy_preset.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-easy_preset.o | Bin 0 -> 4560 bytes .../src/liblzma/liblzma_la-fastpos_table.lo | 12 + .../src/liblzma/liblzma_la-fastpos_table.o | Bin 0 -> 10248 bytes xz-5.4.5/src/liblzma/liblzma_la-file_info.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-file_info.o | Bin 0 -> 21256 bytes .../liblzma_la-filter_buffer_decoder.lo | 12 + .../liblzma_la-filter_buffer_decoder.o | Bin 0 -> 6912 bytes .../liblzma_la-filter_buffer_encoder.lo | 12 + .../liblzma_la-filter_buffer_encoder.o | Bin 0 -> 6424 bytes .../src/liblzma/liblzma_la-filter_common.lo | 12 + .../src/liblzma/liblzma_la-filter_common.o | Bin 0 -> 14424 bytes .../src/liblzma/liblzma_la-filter_decoder.lo | 12 + .../src/liblzma/liblzma_la-filter_decoder.o | Bin 0 -> 12280 bytes .../src/liblzma/liblzma_la-filter_encoder.lo | 12 + .../src/liblzma/liblzma_la-filter_encoder.o | Bin 0 -> 16056 bytes .../liblzma_la-filter_flags_decoder.lo | 12 + .../liblzma/liblzma_la-filter_flags_decoder.o | Bin 0 -> 4952 bytes .../liblzma_la-filter_flags_encoder.lo | 12 + .../liblzma/liblzma_la-filter_flags_encoder.o | Bin 0 -> 5576 bytes .../liblzma/liblzma_la-hardware_cputhreads.lo | 12 + .../liblzma/liblzma_la-hardware_cputhreads.o | Bin 0 -> 2416 bytes .../liblzma/liblzma_la-hardware_physmem.lo | 12 + .../src/liblzma/liblzma_la-hardware_physmem.o | Bin 0 -> 2416 bytes xz-5.4.5/src/liblzma/liblzma_la-ia64.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-ia64.o | Bin 0 -> 9728 bytes xz-5.4.5/src/liblzma/liblzma_la-index.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-index.o | Bin 0 -> 37648 bytes .../src/liblzma/liblzma_la-index_decoder.lo | 12 + .../src/liblzma/liblzma_la-index_decoder.o | Bin 0 -> 14640 bytes .../src/liblzma/liblzma_la-index_encoder.lo | 12 + .../src/liblzma/liblzma_la-index_encoder.o | Bin 0 -> 14752 bytes xz-5.4.5/src/liblzma/liblzma_la-index_hash.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-index_hash.o | Bin 0 -> 12792 bytes xz-5.4.5/src/liblzma/liblzma_la-lz_decoder.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-lz_decoder.o | Bin 0 -> 12104 bytes xz-5.4.5/src/liblzma/liblzma_la-lz_encoder.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-lz_encoder.o | Bin 0 -> 17016 bytes .../src/liblzma/liblzma_la-lz_encoder_mf.lo | 12 + .../src/liblzma/liblzma_la-lz_encoder_mf.o | Bin 0 -> 36032 bytes .../src/liblzma/liblzma_la-lzip_decoder.lo | 12 + .../src/liblzma/liblzma_la-lzip_decoder.o | Bin 0 -> 15760 bytes .../src/liblzma/liblzma_la-lzma2_decoder.lo | 12 + .../src/liblzma/liblzma_la-lzma2_decoder.o | Bin 0 -> 13448 bytes .../src/liblzma/liblzma_la-lzma2_encoder.lo | 12 + .../src/liblzma/liblzma_la-lzma2_encoder.o | Bin 0 -> 16816 bytes .../src/liblzma/liblzma_la-lzma_decoder.lo | 12 + .../src/liblzma/liblzma_la-lzma_decoder.o | Bin 0 -> 61072 bytes .../src/liblzma/liblzma_la-lzma_encoder.lo | 12 + .../src/liblzma/liblzma_la-lzma_encoder.o | Bin 0 -> 44832 bytes .../liblzma_la-lzma_encoder_optimum_fast.lo | 12 + .../liblzma_la-lzma_encoder_optimum_fast.o | Bin 0 -> 13008 bytes .../liblzma_la-lzma_encoder_optimum_normal.lo | 12 + .../liblzma_la-lzma_encoder_optimum_normal.o | Bin 0 -> 39328 bytes .../liblzma_la-lzma_encoder_presets.lo | 12 + .../liblzma/liblzma_la-lzma_encoder_presets.o | Bin 0 -> 4792 bytes .../liblzma/liblzma_la-microlzma_decoder.lo | 12 + .../liblzma/liblzma_la-microlzma_decoder.o | Bin 0 -> 13320 bytes .../liblzma/liblzma_la-microlzma_encoder.lo | 12 + .../liblzma/liblzma_la-microlzma_encoder.o | Bin 0 -> 11304 bytes xz-5.4.5/src/liblzma/liblzma_la-outqueue.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-outqueue.o | Bin 0 -> 12496 bytes xz-5.4.5/src/liblzma/liblzma_la-powerpc.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-powerpc.o | Bin 0 -> 7592 bytes .../src/liblzma/liblzma_la-price_table.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-price_table.o | Bin 0 -> 2200 bytes xz-5.4.5/src/liblzma/liblzma_la-sha256.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-sha256.o | Bin 0 -> 39880 bytes .../src/liblzma/liblzma_la-simple_coder.lo | 12 + .../src/liblzma/liblzma_la-simple_coder.o | Bin 0 -> 12432 bytes .../src/liblzma/liblzma_la-simple_decoder.lo | 12 + .../src/liblzma/liblzma_la-simple_decoder.o | Bin 0 -> 4888 bytes .../src/liblzma/liblzma_la-simple_encoder.lo | 12 + .../src/liblzma/liblzma_la-simple_encoder.o | Bin 0 -> 3888 bytes xz-5.4.5/src/liblzma/liblzma_la-sparc.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-sparc.o | Bin 0 -> 7720 bytes .../liblzma_la-stream_buffer_decoder.lo | 12 + .../liblzma_la-stream_buffer_decoder.o | Bin 0 -> 7000 bytes .../liblzma_la-stream_buffer_encoder.lo | 12 + .../liblzma_la-stream_buffer_encoder.o | Bin 0 -> 9728 bytes .../src/liblzma/liblzma_la-stream_decoder.lo | 12 + .../src/liblzma/liblzma_la-stream_decoder.o | Bin 0 -> 17392 bytes .../liblzma/liblzma_la-stream_decoder_mt.lo | 12 + .../liblzma/liblzma_la-stream_decoder_mt.o | Bin 0 -> 51504 bytes .../src/liblzma/liblzma_la-stream_encoder.lo | 12 + .../src/liblzma/liblzma_la-stream_encoder.o | Bin 0 -> 17088 bytes .../liblzma/liblzma_la-stream_encoder_mt.lo | 12 + .../liblzma/liblzma_la-stream_encoder_mt.o | Bin 0 -> 48192 bytes .../liblzma/liblzma_la-stream_flags_common.lo | 12 + .../liblzma/liblzma_la-stream_flags_common.o | Bin 0 -> 5304 bytes .../liblzma_la-stream_flags_decoder.lo | 12 + .../liblzma/liblzma_la-stream_flags_decoder.o | Bin 0 -> 6224 bytes .../liblzma_la-stream_flags_encoder.lo | 12 + .../liblzma/liblzma_la-stream_flags_encoder.o | Bin 0 -> 6456 bytes .../liblzma/liblzma_la-string_conversion.lo | 12 + .../liblzma/liblzma_la-string_conversion.o | Bin 0 -> 35640 bytes .../src/liblzma/liblzma_la-tuklib_cpucores.lo | 12 + .../src/liblzma/liblzma_la-tuklib_cpucores.o | Bin 0 -> 3664 bytes .../src/liblzma/liblzma_la-tuklib_physmem.lo | 12 + .../src/liblzma/liblzma_la-tuklib_physmem.o | Bin 0 -> 2920 bytes .../src/liblzma/liblzma_la-vli_decoder.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-vli_decoder.o | Bin 0 -> 4472 bytes .../src/liblzma/liblzma_la-vli_encoder.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-vli_encoder.o | Bin 0 -> 4048 bytes xz-5.4.5/src/liblzma/liblzma_la-vli_size.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-vli_size.o | Bin 0 -> 2664 bytes xz-5.4.5/src/liblzma/liblzma_la-x86.lo | 12 + xz-5.4.5/src/liblzma/liblzma_la-x86.o | Bin 0 -> 9768 bytes xz-5.4.5/src/liblzma/liblzma_linux.map | 136 + xz-5.4.5/src/liblzma/liblzma_w32res.rc | 12 + xz-5.4.5/src/liblzma/lz/Makefile.inc | 22 + xz-5.4.5/src/liblzma/lz/lz_decoder.c | 304 + xz-5.4.5/src/liblzma/lz/lz_decoder.h | 234 + xz-5.4.5/src/liblzma/lz/lz_encoder.c | 633 + xz-5.4.5/src/liblzma/lz/lz_encoder.h | 341 + xz-5.4.5/src/liblzma/lz/lz_encoder_hash.h | 109 + .../src/liblzma/lz/lz_encoder_hash_table.h | 68 + xz-5.4.5/src/liblzma/lz/lz_encoder_mf.c | 745 + xz-5.4.5/src/liblzma/lzma/Makefile.inc | 44 + xz-5.4.5/src/liblzma/lzma/fastpos.h | 142 + xz-5.4.5/src/liblzma/lzma/fastpos_table.c | 519 + xz-5.4.5/src/liblzma/lzma/fastpos_tablegen.c | 57 + xz-5.4.5/src/liblzma/lzma/lzma2_decoder.c | 311 + xz-5.4.5/src/liblzma/lzma/lzma2_decoder.h | 29 + xz-5.4.5/src/liblzma/lzma/lzma2_encoder.c | 414 + xz-5.4.5/src/liblzma/lzma/lzma2_encoder.h | 43 + xz-5.4.5/src/liblzma/lzma/lzma_common.h | 225 + xz-5.4.5/src/liblzma/lzma/lzma_decoder.c | 1133 + xz-5.4.5/src/liblzma/lzma/lzma_decoder.h | 53 + xz-5.4.5/src/liblzma/lzma/lzma_encoder.c | 784 + xz-5.4.5/src/liblzma/lzma/lzma_encoder.h | 59 + .../liblzma/lzma/lzma_encoder_optimum_fast.c | 170 + .../lzma/lzma_encoder_optimum_normal.c | 859 + .../src/liblzma/lzma/lzma_encoder_presets.c | 64 + .../src/liblzma/lzma/lzma_encoder_private.h | 162 + xz-5.4.5/src/liblzma/rangecoder/Makefile.inc | 21 + xz-5.4.5/src/liblzma/rangecoder/price.h | 93 + xz-5.4.5/src/liblzma/rangecoder/price_table.c | 22 + .../src/liblzma/rangecoder/price_tablegen.c | 87 + .../src/liblzma/rangecoder/range_common.h | 71 + .../src/liblzma/rangecoder/range_decoder.h | 185 + .../src/liblzma/rangecoder/range_encoder.h | 350 + xz-5.4.5/src/liblzma/simple/Makefile.inc | 51 + xz-5.4.5/src/liblzma/simple/arm.c | 75 + xz-5.4.5/src/liblzma/simple/arm64.c | 137 + xz-5.4.5/src/liblzma/simple/armthumb.c | 80 + xz-5.4.5/src/liblzma/simple/ia64.c | 116 + xz-5.4.5/src/liblzma/simple/powerpc.c | 80 + xz-5.4.5/src/liblzma/simple/simple_coder.c | 292 + xz-5.4.5/src/liblzma/simple/simple_coder.h | 81 + xz-5.4.5/src/liblzma/simple/simple_decoder.c | 40 + xz-5.4.5/src/liblzma/simple/simple_decoder.h | 22 + xz-5.4.5/src/liblzma/simple/simple_encoder.c | 38 + xz-5.4.5/src/liblzma/simple/simple_encoder.h | 23 + xz-5.4.5/src/liblzma/simple/simple_private.h | 74 + xz-5.4.5/src/liblzma/simple/sparc.c | 87 + xz-5.4.5/src/liblzma/simple/x86.c | 163 + xz-5.4.5/src/liblzma/validate_map.sh | 165 + .../src/lzmainfo/.deps/lzmainfo-lzmainfo.Po | 316 + .../lzmainfo/.deps/lzmainfo-tuklib_exit.Po | 250 + .../.deps/lzmainfo-tuklib_progname.Po | 220 + xz-5.4.5/src/lzmainfo/.libs/lzmainfo | Bin 0 -> 10712 bytes xz-5.4.5/src/lzmainfo/Makefile | 837 + xz-5.4.5/src/lzmainfo/Makefile.am | 39 + xz-5.4.5/src/lzmainfo/Makefile.in | 837 + xz-5.4.5/src/lzmainfo/lzmainfo | 210 + xz-5.4.5/src/lzmainfo/lzmainfo-lzmainfo.o | Bin 0 -> 15360 bytes xz-5.4.5/src/lzmainfo/lzmainfo-tuklib_exit.o | Bin 0 -> 5800 bytes .../src/lzmainfo/lzmainfo-tuklib_progname.o | Bin 0 -> 2288 bytes xz-5.4.5/src/lzmainfo/lzmainfo.1 | 60 + xz-5.4.5/src/lzmainfo/lzmainfo.c | 221 + xz-5.4.5/src/lzmainfo/lzmainfo_w32res.rc | 12 + xz-5.4.5/src/scripts/Makefile | 700 + xz-5.4.5/src/scripts/Makefile.am | 89 + xz-5.4.5/src/scripts/Makefile.in | 700 + xz-5.4.5/src/scripts/xzdiff | 215 + xz-5.4.5/src/scripts/xzdiff.1 | 79 + xz-5.4.5/src/scripts/xzdiff.in | 215 + xz-5.4.5/src/scripts/xzgrep | 298 + xz-5.4.5/src/scripts/xzgrep.1 | 113 + xz-5.4.5/src/scripts/xzgrep.in | 298 + xz-5.4.5/src/scripts/xzless | 59 + xz-5.4.5/src/scripts/xzless.1 | 69 + xz-5.4.5/src/scripts/xzless.in | 59 + xz-5.4.5/src/scripts/xzmore | 79 + xz-5.4.5/src/scripts/xzmore.1 | 55 + xz-5.4.5/src/scripts/xzmore.in | 79 + xz-5.4.5/src/xz/.deps/xz-args.Po | 416 + xz-5.4.5/src/xz/.deps/xz-coder.Po | 406 + xz-5.4.5/src/xz/.deps/xz-file_io.Po | 421 + xz-5.4.5/src/xz/.deps/xz-hardware.Po | 407 + xz-5.4.5/src/xz/.deps/xz-list.Po | 407 + xz-5.4.5/src/xz/.deps/xz-main.Po | 414 + xz-5.4.5/src/xz/.deps/xz-message.Po | 421 + xz-5.4.5/src/xz/.deps/xz-mytime.Po | 406 + xz-5.4.5/src/xz/.deps/xz-options.Po | 407 + xz-5.4.5/src/xz/.deps/xz-signals.Po | 407 + xz-5.4.5/src/xz/.deps/xz-suffix.Po | 406 + xz-5.4.5/src/xz/.deps/xz-tuklib_exit.Po | 250 + xz-5.4.5/src/xz/.deps/xz-tuklib_mbstr_fw.Po | 216 + .../src/xz/.deps/xz-tuklib_mbstr_width.Po | 278 + .../src/xz/.deps/xz-tuklib_open_stdxxx.Po | 276 + xz-5.4.5/src/xz/.deps/xz-tuklib_progname.Po | 220 + xz-5.4.5/src/xz/.deps/xz-util.Po | 420 + xz-5.4.5/src/xz/.libs/xz | Bin 0 -> 86584 bytes xz-5.4.5/src/xz/Makefile | 1162 + xz-5.4.5/src/xz/Makefile.am | 133 + xz-5.4.5/src/xz/Makefile.in | 1162 + xz-5.4.5/src/xz/args.c | 763 + xz-5.4.5/src/xz/args.h | 44 + xz-5.4.5/src/xz/coder.c | 1109 + xz-5.4.5/src/xz/coder.h | 79 + xz-5.4.5/src/xz/file_io.c | 1403 + xz-5.4.5/src/xz/file_io.h | 179 + xz-5.4.5/src/xz/hardware.c | 338 + xz-5.4.5/src/xz/hardware.h | 75 + xz-5.4.5/src/xz/list.c | 1318 + xz-5.4.5/src/xz/list.h | 18 + xz-5.4.5/src/xz/main.c | 344 + xz-5.4.5/src/xz/main.h | 30 + xz-5.4.5/src/xz/message.c | 1146 + xz-5.4.5/src/xz/message.h | 156 + xz-5.4.5/src/xz/mytime.c | 86 + xz-5.4.5/src/xz/mytime.h | 43 + xz-5.4.5/src/xz/options.c | 359 + xz-5.4.5/src/xz/options.h | 31 + xz-5.4.5/src/xz/private.h | 66 + xz-5.4.5/src/xz/signals.c | 209 + xz-5.4.5/src/xz/signals.h | 43 + xz-5.4.5/src/xz/suffix.c | 401 + xz-5.4.5/src/xz/suffix.h | 36 + xz-5.4.5/src/xz/util.c | 287 + xz-5.4.5/src/xz/util.h | 119 + xz-5.4.5/src/xz/xz | 210 + xz-5.4.5/src/xz/xz-args.o | Bin 0 -> 32032 bytes xz-5.4.5/src/xz/xz-coder.o | Bin 0 -> 34776 bytes xz-5.4.5/src/xz/xz-file_io.o | Bin 0 -> 31656 bytes xz-5.4.5/src/xz/xz-hardware.o | Bin 0 -> 13280 bytes xz-5.4.5/src/xz/xz-list.o | Bin 0 -> 56248 bytes xz-5.4.5/src/xz/xz-main.o | Bin 0 -> 11968 bytes xz-5.4.5/src/xz/xz-message.o | Bin 0 -> 50176 bytes xz-5.4.5/src/xz/xz-mytime.o | Bin 0 -> 6496 bytes xz-5.4.5/src/xz/xz-options.o | Bin 0 -> 13968 bytes xz-5.4.5/src/xz/xz-signals.o | Bin 0 -> 9696 bytes xz-5.4.5/src/xz/xz-suffix.o | Bin 0 -> 10640 bytes xz-5.4.5/src/xz/xz-tuklib_exit.o | Bin 0 -> 5800 bytes xz-5.4.5/src/xz/xz-tuklib_mbstr_fw.o | Bin 0 -> 2912 bytes xz-5.4.5/src/xz/xz-tuklib_mbstr_width.o | Bin 0 -> 4672 bytes xz-5.4.5/src/xz/xz-tuklib_open_stdxxx.o | Bin 0 -> 4160 bytes xz-5.4.5/src/xz/xz-tuklib_progname.o | Bin 0 -> 2288 bytes xz-5.4.5/src/xz/xz-util.o | Bin 0 -> 13944 bytes xz-5.4.5/src/xz/xz.1 | 3020 ++ xz-5.4.5/src/xz/xz_w32res.rc | 12 + .../src/xzdec/.deps/lzmadec-tuklib_exit.Po | 250 + .../xzdec/.deps/lzmadec-tuklib_progname.Po | 220 + xz-5.4.5/src/xzdec/.deps/lzmadec-xzdec.Po | 320 + xz-5.4.5/src/xzdec/.deps/xzdec-tuklib_exit.Po | 250 + .../src/xzdec/.deps/xzdec-tuklib_progname.Po | 220 + xz-5.4.5/src/xzdec/.deps/xzdec-xzdec.Po | 320 + xz-5.4.5/src/xzdec/.libs/lzmadec | Bin 0 -> 19184 bytes xz-5.4.5/src/xzdec/.libs/xzdec | Bin 0 -> 19184 bytes xz-5.4.5/src/xzdec/Makefile | 969 + xz-5.4.5/src/xzdec/Makefile.am | 111 + xz-5.4.5/src/xzdec/Makefile.in | 969 + xz-5.4.5/src/xzdec/lzmadec | 210 + xz-5.4.5/src/xzdec/lzmadec-tuklib_exit.o | Bin 0 -> 5800 bytes xz-5.4.5/src/xzdec/lzmadec-tuklib_progname.o | Bin 0 -> 2288 bytes xz-5.4.5/src/xzdec/lzmadec-xzdec.o | Bin 0 -> 17040 bytes xz-5.4.5/src/xzdec/lzmadec_w32res.rc | 12 + xz-5.4.5/src/xzdec/xzdec | 210 + xz-5.4.5/src/xzdec/xzdec-tuklib_exit.o | Bin 0 -> 5800 bytes xz-5.4.5/src/xzdec/xzdec-tuklib_progname.o | Bin 0 -> 2288 bytes xz-5.4.5/src/xzdec/xzdec-xzdec.o | Bin 0 -> 17080 bytes xz-5.4.5/src/xzdec/xzdec.1 | 146 + xz-5.4.5/src/xzdec/xzdec.c | 326 + xz-5.4.5/src/xzdec/xzdec_w32res.rc | 12 + xz-5.4.5/stamp-h1 | 1 + xz-5.4.5/tests/.deps/create_compress_files.Po | 1 + xz-5.4.5/tests/.deps/test_bcj_exact_size.Po | 1 + xz-5.4.5/tests/.deps/test_block_header.Po | 1 + xz-5.4.5/tests/.deps/test_check.Po | 1 + xz-5.4.5/tests/.deps/test_filter_flags.Po | 1 + xz-5.4.5/tests/.deps/test_filter_str.Po | 1 + xz-5.4.5/tests/.deps/test_hardware.Po | 1 + xz-5.4.5/tests/.deps/test_index.Po | 1 + xz-5.4.5/tests/.deps/test_index_hash.Po | 1 + xz-5.4.5/tests/.deps/test_lzip_decoder.Po | 1 + xz-5.4.5/tests/.deps/test_memlimit.Po | 1 + xz-5.4.5/tests/.deps/test_stream_flags.Po | 1 + xz-5.4.5/tests/.deps/test_vli.Po | 1 + xz-5.4.5/tests/Makefile | 1349 + xz-5.4.5/tests/Makefile.am | 76 + xz-5.4.5/tests/Makefile.in | 1349 + xz-5.4.5/tests/bcj_test.c | 65 + xz-5.4.5/tests/compress_prepared_bcj_sparc | Bin 0 -> 1240 bytes xz-5.4.5/tests/compress_prepared_bcj_x86 | Bin 0 -> 1388 bytes xz-5.4.5/tests/create_compress_files.c | 163 + xz-5.4.5/tests/files/README | 409 + xz-5.4.5/tests/files/bad-0-backward_size.xz | Bin 0 -> 32 bytes xz-5.4.5/tests/files/bad-0-empty-truncated.xz | Bin 0 -> 31 bytes xz-5.4.5/tests/files/bad-0-footer_magic.xz | Bin 0 -> 32 bytes xz-5.4.5/tests/files/bad-0-header_magic.xz | Bin 0 -> 32 bytes xz-5.4.5/tests/files/bad-0-nonempty_index.xz | Bin 0 -> 32 bytes xz-5.4.5/tests/files/bad-0cat-alone.xz | Bin 0 -> 55 bytes xz-5.4.5/tests/files/bad-0cat-header_magic.xz | Bin 0 -> 64 bytes xz-5.4.5/tests/files/bad-0catpad-empty.xz | Bin 0 -> 69 bytes xz-5.4.5/tests/files/bad-0pad-empty.xz | Bin 0 -> 37 bytes xz-5.4.5/tests/files/bad-1-block_header-1.xz | Bin 0 -> 64 bytes xz-5.4.5/tests/files/bad-1-block_header-2.xz | Bin 0 -> 64 bytes xz-5.4.5/tests/files/bad-1-block_header-3.xz | Bin 0 -> 68 bytes xz-5.4.5/tests/files/bad-1-block_header-4.xz | Bin 0 -> 76 bytes xz-5.4.5/tests/files/bad-1-block_header-5.xz | Bin 0 -> 72 bytes xz-5.4.5/tests/files/bad-1-block_header-6.xz | Bin 0 -> 72 bytes xz-5.4.5/tests/files/bad-1-check-crc32-2.xz | Bin 0 -> 72 bytes xz-5.4.5/tests/files/bad-1-check-crc32.xz | Bin 0 -> 68 bytes xz-5.4.5/tests/files/bad-1-check-crc64.xz | Bin 0 -> 72 bytes xz-5.4.5/tests/files/bad-1-check-sha256.xz | Bin 0 -> 96 bytes xz-5.4.5/tests/files/bad-1-lzma2-1.xz | Bin 0 -> 64 bytes xz-5.4.5/tests/files/bad-1-lzma2-10.xz | Bin 0 -> 60 bytes xz-5.4.5/tests/files/bad-1-lzma2-11.xz | Bin 0 -> 64 bytes xz-5.4.5/tests/files/bad-1-lzma2-2.xz | Bin 0 -> 424 bytes xz-5.4.5/tests/files/bad-1-lzma2-3.xz | Bin 0 -> 424 bytes xz-5.4.5/tests/files/bad-1-lzma2-4.xz | Bin 0 -> 408 bytes xz-5.4.5/tests/files/bad-1-lzma2-5.xz | Bin 0 -> 408 bytes xz-5.4.5/tests/files/bad-1-lzma2-6.xz | Bin 0 -> 68 bytes xz-5.4.5/tests/files/bad-1-lzma2-7.xz | Bin 0 -> 408 bytes xz-5.4.5/tests/files/bad-1-lzma2-8.xz | Bin 0 -> 464 bytes xz-5.4.5/tests/files/bad-1-lzma2-9.xz | Bin 0 -> 72 bytes xz-5.4.5/tests/files/bad-1-stream_flags-1.xz | Bin 0 -> 68 bytes xz-5.4.5/tests/files/bad-1-stream_flags-2.xz | Bin 0 -> 68 bytes xz-5.4.5/tests/files/bad-1-stream_flags-3.xz | Bin 0 -> 68 bytes xz-5.4.5/tests/files/bad-1-v0-uncomp-size.lz | Bin 0 -> 42 bytes xz-5.4.5/tests/files/bad-1-v1-crc32.lz | Bin 0 -> 50 bytes xz-5.4.5/tests/files/bad-1-v1-dict-1.lz | Bin 0 -> 50 bytes xz-5.4.5/tests/files/bad-1-v1-dict-2.lz | Bin 0 -> 50 bytes xz-5.4.5/tests/files/bad-1-v1-magic-1.lz | Bin 0 -> 50 bytes xz-5.4.5/tests/files/bad-1-v1-magic-2.lz | Bin 0 -> 50 bytes xz-5.4.5/tests/files/bad-1-v1-member-size.lz | Bin 0 -> 50 bytes .../tests/files/bad-1-v1-trailing-magic.lz | Bin 0 -> 54 bytes xz-5.4.5/tests/files/bad-1-v1-uncomp-size.lz | Bin 0 -> 50 bytes xz-5.4.5/tests/files/bad-1-vli-1.xz | Bin 0 -> 72 bytes xz-5.4.5/tests/files/bad-1-vli-2.xz | Bin 0 -> 76 bytes .../files/bad-2-compressed_data_padding.xz | Bin 0 -> 92 bytes xz-5.4.5/tests/files/bad-2-index-1.xz | Bin 0 -> 92 bytes xz-5.4.5/tests/files/bad-2-index-2.xz | Bin 0 -> 92 bytes xz-5.4.5/tests/files/bad-2-index-3.xz | Bin 0 -> 92 bytes xz-5.4.5/tests/files/bad-2-index-4.xz | Bin 0 -> 92 bytes xz-5.4.5/tests/files/bad-2-index-5.xz | Bin 0 -> 92 bytes .../files/bad-3-index-uncomp-overflow.xz | Bin 0 -> 132 bytes .../files/bad-too_big_size-with_eopm.lzma | Bin 0 -> 37 bytes .../bad-too_small_size-without_eopm-1.lzma | Bin 0 -> 31 bytes .../bad-too_small_size-without_eopm-2.lzma | Bin 0 -> 31 bytes .../bad-too_small_size-without_eopm-3.lzma | Bin 0 -> 36 bytes .../files/bad-unknown_size-without_eopm.lzma | Bin 0 -> 31 bytes xz-5.4.5/tests/files/good-0-empty.xz | Bin 0 -> 32 bytes xz-5.4.5/tests/files/good-0cat-empty.xz | Bin 0 -> 64 bytes xz-5.4.5/tests/files/good-0catpad-empty.xz | Bin 0 -> 68 bytes xz-5.4.5/tests/files/good-0pad-empty.xz | Bin 0 -> 36 bytes xz-5.4.5/tests/files/good-1-3delta-lzma2.xz | Bin 0 -> 528 bytes xz-5.4.5/tests/files/good-1-arm64-lzma2-1.xz | Bin 0 -> 512 bytes xz-5.4.5/tests/files/good-1-arm64-lzma2-2.xz | Bin 0 -> 488 bytes xz-5.4.5/tests/files/good-1-block_header-1.xz | Bin 0 -> 72 bytes xz-5.4.5/tests/files/good-1-block_header-2.xz | Bin 0 -> 68 bytes xz-5.4.5/tests/files/good-1-block_header-3.xz | Bin 0 -> 68 bytes xz-5.4.5/tests/files/good-1-check-crc32.xz | Bin 0 -> 68 bytes xz-5.4.5/tests/files/good-1-check-crc64.xz | Bin 0 -> 72 bytes xz-5.4.5/tests/files/good-1-check-none.xz | Bin 0 -> 64 bytes xz-5.4.5/tests/files/good-1-check-sha256.xz | Bin 0 -> 96 bytes .../tests/files/good-1-delta-lzma2.tiff.xz | Bin 0 -> 51316 bytes .../tests/files/good-1-empty-bcj-lzma2.xz | Bin 0 -> 52 bytes xz-5.4.5/tests/files/good-1-lzma2-1.xz | Bin 0 -> 424 bytes xz-5.4.5/tests/files/good-1-lzma2-2.xz | Bin 0 -> 424 bytes xz-5.4.5/tests/files/good-1-lzma2-3.xz | Bin 0 -> 408 bytes xz-5.4.5/tests/files/good-1-lzma2-4.xz | Bin 0 -> 464 bytes xz-5.4.5/tests/files/good-1-lzma2-5.xz | Bin 0 -> 52 bytes xz-5.4.5/tests/files/good-1-sparc-lzma2.xz | Bin 0 -> 612 bytes xz-5.4.5/tests/files/good-1-v0-trailing-1.lz | Bin 0 -> 59 bytes xz-5.4.5/tests/files/good-1-v0.lz | Bin 0 -> 42 bytes xz-5.4.5/tests/files/good-1-v1-trailing-1.lz | Bin 0 -> 67 bytes xz-5.4.5/tests/files/good-1-v1-trailing-2.lz | Bin 0 -> 70 bytes xz-5.4.5/tests/files/good-1-v1.lz | Bin 0 -> 50 bytes xz-5.4.5/tests/files/good-1-x86-lzma2.xz | Bin 0 -> 716 bytes xz-5.4.5/tests/files/good-2-lzma2.xz | Bin 0 -> 92 bytes xz-5.4.5/tests/files/good-2-v0-v1.lz | Bin 0 -> 78 bytes xz-5.4.5/tests/files/good-2-v1-v0.lz | Bin 0 -> 78 bytes xz-5.4.5/tests/files/good-2-v1-v1.lz | Bin 0 -> 86 bytes .../files/good-known_size-with_eopm.lzma | Bin 0 -> 37 bytes .../files/good-known_size-without_eopm.lzma | Bin 0 -> 31 bytes .../files/good-unknown_size-with_eopm.lzma | Bin 0 -> 37 bytes xz-5.4.5/tests/files/unsupported-1-v234.lz | Bin 0 -> 50 bytes .../tests/files/unsupported-block_header.xz | Bin 0 -> 68 bytes xz-5.4.5/tests/files/unsupported-check.xz | Bin 0 -> 68 bytes .../tests/files/unsupported-filter_flags-1.xz | Bin 0 -> 68 bytes .../tests/files/unsupported-filter_flags-2.xz | Bin 0 -> 68 bytes .../tests/files/unsupported-filter_flags-3.xz | Bin 0 -> 68 bytes xz-5.4.5/tests/ossfuzz/Makefile | 7 + xz-5.4.5/tests/ossfuzz/config/fuzz.dict | 2 + xz-5.4.5/tests/ossfuzz/config/fuzz.options | 2 + xz-5.4.5/tests/ossfuzz/fuzz.c | 82 + xz-5.4.5/tests/test_bcj_exact_size.c | 124 + xz-5.4.5/tests/test_block_header.c | 520 + xz-5.4.5/tests/test_check.c | 390 + xz-5.4.5/tests/test_compress.sh | 150 + xz-5.4.5/tests/test_compress_generated_abc | 3 + xz-5.4.5/tests/test_compress_generated_random | 3 + xz-5.4.5/tests/test_compress_generated_text | 3 + .../tests/test_compress_prepared_bcj_sparc | 3 + xz-5.4.5/tests/test_compress_prepared_bcj_x86 | 3 + xz-5.4.5/tests/test_files.sh | 197 + xz-5.4.5/tests/test_filter_flags.c | 527 + xz-5.4.5/tests/test_filter_str.c | 593 + xz-5.4.5/tests/test_hardware.c | 50 + xz-5.4.5/tests/test_index.c | 1715 ++ xz-5.4.5/tests/test_index_hash.c | 386 + xz-5.4.5/tests/test_lzip_decoder.c | 488 + xz-5.4.5/tests/test_memlimit.c | 173 + xz-5.4.5/tests/test_scripts.sh | 81 + xz-5.4.5/tests/test_stream_flags.c | 479 + xz-5.4.5/tests/test_vli.c | 324 + xz-5.4.5/tests/tests.h | 75 + xz-5.4.5/tests/tuktest.h | 1053 + xz-5.4.5/tests/xzgrep_expected_output | 39 + xz-5.4.5/windows/INSTALL-MSVC.txt | 56 + xz-5.4.5/windows/INSTALL-MinGW.txt | 138 + xz-5.4.5/windows/README-Windows.txt | 122 + xz-5.4.5/windows/build.bash | 204 + xz-5.4.5/windows/vs2013/config.h | 157 + xz-5.4.5/windows/vs2013/liblzma.vcxproj | 363 + xz-5.4.5/windows/vs2013/liblzma_dll.vcxproj | 398 + xz-5.4.5/windows/vs2013/xz_win.sln | 48 + xz-5.4.5/windows/vs2017/config.h | 157 + xz-5.4.5/windows/vs2017/liblzma.vcxproj | 363 + xz-5.4.5/windows/vs2017/liblzma_dll.vcxproj | 398 + xz-5.4.5/windows/vs2017/xz_win.sln | 48 + xz-5.4.5/windows/vs2019/config.h | 157 + xz-5.4.5/windows/vs2019/liblzma.vcxproj | 364 + xz-5.4.5/windows/vs2019/liblzma_dll.vcxproj | 399 + xz-5.4.5/windows/vs2019/xz_win.sln | 51 + xz-install/bin/lzcat | 1 + xz-install/bin/lzcmp | 1 + xz-install/bin/lzdiff | 1 + xz-install/bin/lzegrep | 1 + xz-install/bin/lzfgrep | 1 + xz-install/bin/lzgrep | 1 + xz-install/bin/lzless | 1 + xz-install/bin/lzma | 1 + xz-install/bin/lzmadec | Bin 0 -> 19184 bytes xz-install/bin/lzmainfo | Bin 0 -> 10712 bytes xz-install/bin/lzmore | 1 + xz-install/bin/unlzma | 1 + xz-install/bin/unxz | 1 + xz-install/bin/xz | Bin 0 -> 86584 bytes xz-install/bin/xzcat | 1 + xz-install/bin/xzcmp | 1 + xz-install/bin/xzdec | Bin 0 -> 19184 bytes xz-install/bin/xzdiff | 215 + xz-install/bin/xzegrep | 1 + xz-install/bin/xzfgrep | 1 + xz-install/bin/xzgrep | 298 + xz-install/bin/xzless | 59 + xz-install/bin/xzmore | 79 + xz-install/include/lzma.h | 328 + xz-install/include/lzma/base.h | 748 + xz-install/include/lzma/bcj.h | 94 + xz-install/include/lzma/block.h | 695 + xz-install/include/lzma/check.h | 164 + xz-install/include/lzma/container.h | 968 + xz-install/include/lzma/delta.h | 96 + xz-install/include/lzma/filter.h | 770 + xz-install/include/lzma/hardware.h | 63 + xz-install/include/lzma/index.h | 860 + xz-install/include/lzma/index_hash.h | 124 + xz-install/include/lzma/lzma12.h | 569 + xz-install/include/lzma/stream_flags.h | 266 + xz-install/include/lzma/version.h | 135 + xz-install/include/lzma/vli.h | 168 + xz-install/share/doc/xz/AUTHORS | 39 + xz-install/share/doc/xz/COPYING | 76 + xz-install/share/doc/xz/COPYING.GPLv2 | 339 + xz-install/share/doc/xz/NEWS | 1798 ++ xz-install/share/doc/xz/README | 307 + xz-install/share/doc/xz/THANKS | 174 + xz-install/share/doc/xz/TODO | 109 + xz-install/share/doc/xz/api/annotated.html | 68 + xz-install/share/doc/xz/api/base_8h.html | 580 + xz-install/share/doc/xz/api/bc_s.png | Bin 0 -> 675 bytes xz-install/share/doc/xz/api/bc_sd.png | Bin 0 -> 604 bytes xz-install/share/doc/xz/api/bcj_8h.html | 105 + xz-install/share/doc/xz/api/block_8h.html | 758 + xz-install/share/doc/xz/api/check_8h.html | 340 + xz-install/share/doc/xz/api/classes.html | 60 + xz-install/share/doc/xz/api/closed.png | Bin 0 -> 132 bytes xz-install/share/doc/xz/api/container_8h.html | 1279 + xz-install/share/doc/xz/api/delta_8h.html | 132 + .../dir_b17a1d403082bd69a703ed987cf158fb.html | 104 + xz-install/share/doc/xz/api/doc.svg | 12 + xz-install/share/doc/xz/api/docd.svg | 12 + xz-install/share/doc/xz/api/doxygen.css | 2017 ++ xz-install/share/doc/xz/api/doxygen.svg | 28 + xz-install/share/doc/xz/api/files.html | 74 + xz-install/share/doc/xz/api/filter_8h.html | 1342 + xz-install/share/doc/xz/api/folderclosed.svg | 11 + xz-install/share/doc/xz/api/folderclosedd.svg | 11 + xz-install/share/doc/xz/api/folderopen.svg | 17 + xz-install/share/doc/xz/api/folderopend.svg | 12 + xz-install/share/doc/xz/api/functions.html | 210 + .../share/doc/xz/api/functions_vars.html | 210 + xz-install/share/doc/xz/api/globals.html | 272 + xz-install/share/doc/xz/api/globals_defs.html | 119 + xz-install/share/doc/xz/api/globals_enum.html | 71 + xz-install/share/doc/xz/api/globals_eval.html | 103 + xz-install/share/doc/xz/api/globals_func.html | 177 + xz-install/share/doc/xz/api/globals_type.html | 68 + xz-install/share/doc/xz/api/hardware_8h.html | 123 + xz-install/share/doc/xz/api/index.html | 53 + xz-install/share/doc/xz/api/index_8h.html | 1268 + .../share/doc/xz/api/index__hash_8h.html | 311 + xz-install/share/doc/xz/api/lzma12_8h.html | 436 + xz-install/share/doc/xz/api/lzma_8h.html | 109 + xz-install/share/doc/xz/api/nav_f.png | Bin 0 -> 167 bytes xz-install/share/doc/xz/api/nav_fd.png | Bin 0 -> 144 bytes xz-install/share/doc/xz/api/nav_g.png | Bin 0 -> 95 bytes xz-install/share/doc/xz/api/nav_h.png | Bin 0 -> 97 bytes xz-install/share/doc/xz/api/nav_hd.png | Bin 0 -> 104 bytes xz-install/share/doc/xz/api/open.png | Bin 0 -> 121 bytes xz-install/share/doc/xz/api/splitbar.png | Bin 0 -> 309 bytes xz-install/share/doc/xz/api/splitbard.png | Bin 0 -> 278 bytes .../share/doc/xz/api/stream__flags_8h.html | 348 + .../doc/xz/api/structlzma__allocator.html | 153 + .../share/doc/xz/api/structlzma__block.html | 347 + .../share/doc/xz/api/structlzma__filter.html | 114 + .../doc/xz/api/structlzma__index__iter.html | 407 + .../share/doc/xz/api/structlzma__mt.html | 256 + .../doc/xz/api/structlzma__options__bcj.html | 95 + .../xz/api/structlzma__options__delta.html | 113 + .../doc/xz/api/structlzma__options__lzma.html | 363 + .../share/doc/xz/api/structlzma__stream.html | 251 + .../doc/xz/api/structlzma__stream__flags.html | 134 + xz-install/share/doc/xz/api/sync_off.png | Bin 0 -> 857 bytes xz-install/share/doc/xz/api/sync_on.png | Bin 0 -> 851 bytes xz-install/share/doc/xz/api/tab_a.png | Bin 0 -> 135 bytes xz-install/share/doc/xz/api/tab_ad.png | Bin 0 -> 133 bytes xz-install/share/doc/xz/api/tab_b.png | Bin 0 -> 178 bytes xz-install/share/doc/xz/api/tab_bd.png | Bin 0 -> 157 bytes xz-install/share/doc/xz/api/tab_h.png | Bin 0 -> 179 bytes xz-install/share/doc/xz/api/tab_hd.png | Bin 0 -> 168 bytes xz-install/share/doc/xz/api/tab_s.png | Bin 0 -> 208 bytes xz-install/share/doc/xz/api/tab_sd.png | Bin 0 -> 171 bytes xz-install/share/doc/xz/api/tabs.css | 62 + xz-install/share/doc/xz/api/version_8h.html | 239 + xz-install/share/doc/xz/api/vli_8h.html | 323 + .../share/doc/xz/examples/00_README.txt | 31 + .../share/doc/xz/examples/01_compress_easy.c | 297 + .../share/doc/xz/examples/02_decompress.c | 287 + .../doc/xz/examples/03_compress_custom.c | 193 + .../doc/xz/examples/04_compress_easy_mt.c | 206 + xz-install/share/doc/xz/examples/Makefile | 25 + .../share/doc/xz/examples_old/xz_pipe_comp.c | 127 + .../doc/xz/examples_old/xz_pipe_decomp.c | 123 + xz-install/share/doc/xz/faq.txt | 244 + xz-install/share/doc/xz/history.txt | 150 + xz-install/share/doc/xz/lzma-file-format.txt | 173 + xz-install/share/doc/xz/xz-file-format.txt | 1165 + xz-install/share/man/man1/lzcat.1 | 1 + xz-install/share/man/man1/lzcmp.1 | 1 + xz-install/share/man/man1/lzdiff.1 | 1 + xz-install/share/man/man1/lzegrep.1 | 1 + xz-install/share/man/man1/lzfgrep.1 | 1 + xz-install/share/man/man1/lzgrep.1 | 1 + xz-install/share/man/man1/lzless.1 | 1 + xz-install/share/man/man1/lzma.1 | 1 + xz-install/share/man/man1/lzmadec.1 | 1 + xz-install/share/man/man1/lzmainfo.1 | 60 + xz-install/share/man/man1/lzmore.1 | 1 + xz-install/share/man/man1/unlzma.1 | 1 + xz-install/share/man/man1/unxz.1 | 1 + xz-install/share/man/man1/xz.1 | 3020 ++ xz-install/share/man/man1/xzcat.1 | 1 + xz-install/share/man/man1/xzcmp.1 | 1 + xz-install/share/man/man1/xzdec.1 | 146 + xz-install/share/man/man1/xzdiff.1 | 79 + xz-install/share/man/man1/xzegrep.1 | 1 + xz-install/share/man/man1/xzfgrep.1 | 1 + xz-install/share/man/man1/xzgrep.1 | 113 + xz-install/share/man/man1/xzless.1 | 69 + xz-install/share/man/man1/xzmore.1 | 55 + 1200 files changed, 327825 insertions(+) create mode 100644 test_file.txt create mode 100644 xz-5.4.5.tar.gz create mode 100644 xz-5.4.5/ABOUT-NLS create mode 100644 xz-5.4.5/AUTHORS create mode 100644 xz-5.4.5/CMakeLists.txt create mode 100644 xz-5.4.5/COPYING create mode 100644 xz-5.4.5/COPYING.GPLv2 create mode 100644 xz-5.4.5/COPYING.GPLv3 create mode 100644 xz-5.4.5/COPYING.LGPLv2.1 create mode 100644 xz-5.4.5/ChangeLog create mode 100644 xz-5.4.5/INSTALL create mode 100644 xz-5.4.5/INSTALL.generic create mode 100644 xz-5.4.5/Makefile create mode 100644 xz-5.4.5/Makefile.am create mode 100644 xz-5.4.5/Makefile.in create mode 100644 xz-5.4.5/NEWS create mode 100644 xz-5.4.5/PACKAGERS create mode 100644 xz-5.4.5/README create mode 100644 xz-5.4.5/THANKS create mode 100644 xz-5.4.5/TODO create mode 100644 xz-5.4.5/aclocal.m4 create mode 100755 xz-5.4.5/autogen.sh create mode 100755 xz-5.4.5/build-aux/compile create mode 100755 xz-5.4.5/build-aux/config.guess create mode 100755 xz-5.4.5/build-aux/config.rpath create mode 100755 xz-5.4.5/build-aux/config.sub create mode 100755 xz-5.4.5/build-aux/depcomp create mode 100755 xz-5.4.5/build-aux/install-sh create mode 100644 xz-5.4.5/build-aux/ltmain.sh create mode 100644 xz-5.4.5/build-aux/manconv.sh create mode 100755 xz-5.4.5/build-aux/missing create mode 100755 xz-5.4.5/build-aux/test-driver create mode 100644 xz-5.4.5/build-aux/version.sh create mode 100644 xz-5.4.5/cmake/remove-ordinals.cmake create mode 100644 xz-5.4.5/cmake/tuklib_common.cmake create mode 100644 xz-5.4.5/cmake/tuklib_cpucores.cmake create mode 100644 xz-5.4.5/cmake/tuklib_integer.cmake create mode 100644 xz-5.4.5/cmake/tuklib_large_file_support.cmake create mode 100644 xz-5.4.5/cmake/tuklib_mbstr.cmake create mode 100644 xz-5.4.5/cmake/tuklib_physmem.cmake create mode 100644 xz-5.4.5/cmake/tuklib_progname.cmake create mode 100644 xz-5.4.5/config.h create mode 100644 xz-5.4.5/config.h.in create mode 100755 xz-5.4.5/config.status create mode 100755 xz-5.4.5/configure create mode 100644 xz-5.4.5/configure.ac create mode 100644 xz-5.4.5/doc/api/annotated.html create mode 100644 xz-5.4.5/doc/api/base_8h.html create mode 100644 xz-5.4.5/doc/api/bc_s.png create mode 100644 xz-5.4.5/doc/api/bc_sd.png create mode 100644 xz-5.4.5/doc/api/bcj_8h.html create mode 100644 xz-5.4.5/doc/api/block_8h.html create mode 100644 xz-5.4.5/doc/api/check_8h.html create mode 100644 xz-5.4.5/doc/api/classes.html create mode 100644 xz-5.4.5/doc/api/closed.png create mode 100644 xz-5.4.5/doc/api/container_8h.html create mode 100644 xz-5.4.5/doc/api/delta_8h.html create mode 100644 xz-5.4.5/doc/api/dir_b17a1d403082bd69a703ed987cf158fb.html create mode 100644 xz-5.4.5/doc/api/doc.svg create mode 100644 xz-5.4.5/doc/api/docd.svg create mode 100644 xz-5.4.5/doc/api/doxygen.css create mode 100644 xz-5.4.5/doc/api/doxygen.svg create mode 100644 xz-5.4.5/doc/api/files.html create mode 100644 xz-5.4.5/doc/api/filter_8h.html create mode 100644 xz-5.4.5/doc/api/folderclosed.svg create mode 100644 xz-5.4.5/doc/api/folderclosedd.svg create mode 100644 xz-5.4.5/doc/api/folderopen.svg create mode 100644 xz-5.4.5/doc/api/folderopend.svg create mode 100644 xz-5.4.5/doc/api/functions.html create mode 100644 xz-5.4.5/doc/api/functions_vars.html create mode 100644 xz-5.4.5/doc/api/globals.html create mode 100644 xz-5.4.5/doc/api/globals_defs.html create mode 100644 xz-5.4.5/doc/api/globals_enum.html create mode 100644 xz-5.4.5/doc/api/globals_eval.html create mode 100644 xz-5.4.5/doc/api/globals_func.html create mode 100644 xz-5.4.5/doc/api/globals_type.html create mode 100644 xz-5.4.5/doc/api/hardware_8h.html create mode 100644 xz-5.4.5/doc/api/index.html create mode 100644 xz-5.4.5/doc/api/index_8h.html create mode 100644 xz-5.4.5/doc/api/index__hash_8h.html create mode 100644 xz-5.4.5/doc/api/lzma12_8h.html create mode 100644 xz-5.4.5/doc/api/lzma_8h.html create mode 100644 xz-5.4.5/doc/api/nav_f.png create mode 100644 xz-5.4.5/doc/api/nav_fd.png create mode 100644 xz-5.4.5/doc/api/nav_g.png create mode 100644 xz-5.4.5/doc/api/nav_h.png create mode 100644 xz-5.4.5/doc/api/nav_hd.png create mode 100644 xz-5.4.5/doc/api/open.png create mode 100644 xz-5.4.5/doc/api/splitbar.png create mode 100644 xz-5.4.5/doc/api/splitbard.png create mode 100644 xz-5.4.5/doc/api/stream__flags_8h.html create mode 100644 xz-5.4.5/doc/api/structlzma__allocator.html create mode 100644 xz-5.4.5/doc/api/structlzma__block.html create mode 100644 xz-5.4.5/doc/api/structlzma__filter.html create mode 100644 xz-5.4.5/doc/api/structlzma__index__iter.html create mode 100644 xz-5.4.5/doc/api/structlzma__mt.html create mode 100644 xz-5.4.5/doc/api/structlzma__options__bcj.html create mode 100644 xz-5.4.5/doc/api/structlzma__options__delta.html create mode 100644 xz-5.4.5/doc/api/structlzma__options__lzma.html create mode 100644 xz-5.4.5/doc/api/structlzma__stream.html create mode 100644 xz-5.4.5/doc/api/structlzma__stream__flags.html create mode 100644 xz-5.4.5/doc/api/sync_off.png create mode 100644 xz-5.4.5/doc/api/sync_on.png create mode 100644 xz-5.4.5/doc/api/tab_a.png create mode 100644 xz-5.4.5/doc/api/tab_ad.png create mode 100644 xz-5.4.5/doc/api/tab_b.png create mode 100644 xz-5.4.5/doc/api/tab_bd.png create mode 100644 xz-5.4.5/doc/api/tab_h.png create mode 100644 xz-5.4.5/doc/api/tab_hd.png create mode 100644 xz-5.4.5/doc/api/tab_s.png create mode 100644 xz-5.4.5/doc/api/tab_sd.png create mode 100644 xz-5.4.5/doc/api/tabs.css create mode 100644 xz-5.4.5/doc/api/version_8h.html create mode 100644 xz-5.4.5/doc/api/vli_8h.html create mode 100644 xz-5.4.5/doc/examples/00_README.txt create mode 100644 xz-5.4.5/doc/examples/01_compress_easy.c create mode 100644 xz-5.4.5/doc/examples/02_decompress.c create mode 100644 xz-5.4.5/doc/examples/03_compress_custom.c create mode 100644 xz-5.4.5/doc/examples/04_compress_easy_mt.c create mode 100644 xz-5.4.5/doc/examples/Makefile create mode 100644 xz-5.4.5/doc/examples_old/xz_pipe_comp.c create mode 100644 xz-5.4.5/doc/examples_old/xz_pipe_decomp.c create mode 100644 xz-5.4.5/doc/faq.txt create mode 100644 xz-5.4.5/doc/history.txt create mode 100644 xz-5.4.5/doc/lzma-file-format.txt create mode 100644 xz-5.4.5/doc/man/pdf-a4/lzmainfo-a4.pdf create mode 100644 xz-5.4.5/doc/man/pdf-a4/xz-a4.pdf create mode 100644 xz-5.4.5/doc/man/pdf-a4/xzdec-a4.pdf create mode 100644 xz-5.4.5/doc/man/pdf-a4/xzdiff-a4.pdf create mode 100644 xz-5.4.5/doc/man/pdf-a4/xzgrep-a4.pdf create mode 100644 xz-5.4.5/doc/man/pdf-a4/xzless-a4.pdf create mode 100644 xz-5.4.5/doc/man/pdf-a4/xzmore-a4.pdf create mode 100644 xz-5.4.5/doc/man/pdf-letter/lzmainfo-letter.pdf create mode 100644 xz-5.4.5/doc/man/pdf-letter/xz-letter.pdf create mode 100644 xz-5.4.5/doc/man/pdf-letter/xzdec-letter.pdf create mode 100644 xz-5.4.5/doc/man/pdf-letter/xzdiff-letter.pdf create mode 100644 xz-5.4.5/doc/man/pdf-letter/xzgrep-letter.pdf create mode 100644 xz-5.4.5/doc/man/pdf-letter/xzless-letter.pdf create mode 100644 xz-5.4.5/doc/man/pdf-letter/xzmore-letter.pdf create mode 100644 xz-5.4.5/doc/man/txt/lzmainfo.txt create mode 100644 xz-5.4.5/doc/man/txt/xz.txt create mode 100644 xz-5.4.5/doc/man/txt/xzdec.txt create mode 100644 xz-5.4.5/doc/man/txt/xzdiff.txt create mode 100644 xz-5.4.5/doc/man/txt/xzgrep.txt create mode 100644 xz-5.4.5/doc/man/txt/xzless.txt create mode 100644 xz-5.4.5/doc/man/txt/xzmore.txt create mode 100644 xz-5.4.5/doc/xz-file-format.txt create mode 100644 xz-5.4.5/dos/INSTALL.txt create mode 100644 xz-5.4.5/dos/Makefile create mode 100644 xz-5.4.5/dos/README.txt create mode 100644 xz-5.4.5/dos/config.h create mode 100644 xz-5.4.5/doxygen/Doxyfile create mode 100755 xz-5.4.5/doxygen/update-doxygen create mode 100755 xz-5.4.5/extra/7z2lzma/7z2lzma.bash create mode 100644 xz-5.4.5/extra/scanlzma/scanlzma.c create mode 100755 xz-5.4.5/libtool create mode 100644 xz-5.4.5/m4/ax_check_capsicum.m4 create mode 100644 xz-5.4.5/m4/ax_pthread.m4 create mode 100644 xz-5.4.5/m4/getopt.m4 create mode 100644 xz-5.4.5/m4/gettext.m4 create mode 100644 xz-5.4.5/m4/host-cpu-c-abi.m4 create mode 100644 xz-5.4.5/m4/iconv.m4 create mode 100644 xz-5.4.5/m4/intlmacosx.m4 create mode 100644 xz-5.4.5/m4/lib-ld.m4 create mode 100644 xz-5.4.5/m4/lib-link.m4 create mode 100644 xz-5.4.5/m4/lib-prefix.m4 create mode 100644 xz-5.4.5/m4/libtool.m4 create mode 100644 xz-5.4.5/m4/ltoptions.m4 create mode 100644 xz-5.4.5/m4/ltsugar.m4 create mode 100644 xz-5.4.5/m4/ltversion.m4 create mode 100644 xz-5.4.5/m4/lt~obsolete.m4 create mode 100644 xz-5.4.5/m4/nls.m4 create mode 100644 xz-5.4.5/m4/po.m4 create mode 100644 xz-5.4.5/m4/posix-shell.m4 create mode 100644 xz-5.4.5/m4/progtest.m4 create mode 100644 xz-5.4.5/m4/tuklib_common.m4 create mode 100644 xz-5.4.5/m4/tuklib_cpucores.m4 create mode 100644 xz-5.4.5/m4/tuklib_integer.m4 create mode 100644 xz-5.4.5/m4/tuklib_mbstr.m4 create mode 100644 xz-5.4.5/m4/tuklib_physmem.m4 create mode 100644 xz-5.4.5/m4/tuklib_progname.m4 create mode 100644 xz-5.4.5/m4/visibility.m4 create mode 100755 xz-5.4.5/macosx/build.sh create mode 100644 xz-5.4.5/po/LINGUAS create mode 100644 xz-5.4.5/po/Makefile create mode 100644 xz-5.4.5/po/Makefile.in create mode 100644 xz-5.4.5/po/Makefile.in.in create mode 100644 xz-5.4.5/po/Makevars create mode 100644 xz-5.4.5/po/POTFILES create mode 100644 xz-5.4.5/po/POTFILES.in create mode 100644 xz-5.4.5/po/Rules-quot create mode 100644 xz-5.4.5/po/boldquot.sed create mode 100644 xz-5.4.5/po/ca.gmo create mode 100644 xz-5.4.5/po/ca.po create mode 100644 xz-5.4.5/po/cs.gmo create mode 100644 xz-5.4.5/po/cs.po create mode 100644 xz-5.4.5/po/da.gmo create mode 100644 xz-5.4.5/po/da.po create mode 100644 xz-5.4.5/po/de.gmo create mode 100644 xz-5.4.5/po/de.po create mode 100644 xz-5.4.5/po/en@boldquot.header create mode 100644 xz-5.4.5/po/en@quot.header create mode 100644 xz-5.4.5/po/eo.gmo create mode 100644 xz-5.4.5/po/eo.po create mode 100644 xz-5.4.5/po/es.gmo create mode 100644 xz-5.4.5/po/es.po create mode 100644 xz-5.4.5/po/fi.gmo create mode 100644 xz-5.4.5/po/fi.po create mode 100644 xz-5.4.5/po/fr.gmo create mode 100644 xz-5.4.5/po/fr.po create mode 100644 xz-5.4.5/po/hr.gmo create mode 100644 xz-5.4.5/po/hr.po create mode 100644 xz-5.4.5/po/hu.gmo create mode 100644 xz-5.4.5/po/hu.po create mode 100644 xz-5.4.5/po/insert-header.sin create mode 100644 xz-5.4.5/po/it.gmo create mode 100644 xz-5.4.5/po/it.po create mode 100644 xz-5.4.5/po/ko.gmo create mode 100644 xz-5.4.5/po/ko.po create mode 100644 xz-5.4.5/po/pl.gmo create mode 100644 xz-5.4.5/po/pl.po create mode 100644 xz-5.4.5/po/pt.gmo create mode 100644 xz-5.4.5/po/pt.po create mode 100644 xz-5.4.5/po/pt_BR.gmo create mode 100644 xz-5.4.5/po/pt_BR.po create mode 100644 xz-5.4.5/po/quot.sed create mode 100644 xz-5.4.5/po/remove-potcdate.sin create mode 100644 xz-5.4.5/po/ro.gmo create mode 100644 xz-5.4.5/po/ro.po create mode 100644 xz-5.4.5/po/sr.gmo create mode 100644 xz-5.4.5/po/sr.po create mode 100644 xz-5.4.5/po/stamp-po create mode 100644 xz-5.4.5/po/sv.gmo create mode 100644 xz-5.4.5/po/sv.po create mode 100644 xz-5.4.5/po/tr.gmo create mode 100644 xz-5.4.5/po/tr.po create mode 100644 xz-5.4.5/po/uk.gmo create mode 100644 xz-5.4.5/po/uk.po create mode 100644 xz-5.4.5/po/vi.gmo create mode 100644 xz-5.4.5/po/vi.po create mode 100644 xz-5.4.5/po/zh_CN.gmo create mode 100644 xz-5.4.5/po/zh_CN.po create mode 100644 xz-5.4.5/po/zh_TW.gmo create mode 100644 xz-5.4.5/po/zh_TW.po create mode 100644 xz-5.4.5/po4a/.gitignore create mode 100644 xz-5.4.5/po4a/de.po create mode 100644 xz-5.4.5/po4a/fr.po create mode 100644 xz-5.4.5/po4a/ko.po create mode 100644 xz-5.4.5/po4a/po4a.conf create mode 100644 xz-5.4.5/po4a/pt_BR.po create mode 100644 xz-5.4.5/po4a/ro.po create mode 100644 xz-5.4.5/po4a/uk.po create mode 100755 xz-5.4.5/po4a/update-po create mode 100644 xz-5.4.5/src/Makefile create mode 100644 xz-5.4.5/src/Makefile.am create mode 100644 xz-5.4.5/src/Makefile.in create mode 100644 xz-5.4.5/src/common/common_w32res.rc create mode 100644 xz-5.4.5/src/common/mythread.h create mode 100644 xz-5.4.5/src/common/sysdefs.h create mode 100644 xz-5.4.5/src/common/tuklib_common.h create mode 100644 xz-5.4.5/src/common/tuklib_config.h create mode 100644 xz-5.4.5/src/common/tuklib_cpucores.c create mode 100644 xz-5.4.5/src/common/tuklib_cpucores.h create mode 100644 xz-5.4.5/src/common/tuklib_exit.c create mode 100644 xz-5.4.5/src/common/tuklib_exit.h create mode 100644 xz-5.4.5/src/common/tuklib_gettext.h create mode 100644 xz-5.4.5/src/common/tuklib_integer.h create mode 100644 xz-5.4.5/src/common/tuklib_mbstr.h create mode 100644 xz-5.4.5/src/common/tuklib_mbstr_fw.c create mode 100644 xz-5.4.5/src/common/tuklib_mbstr_width.c create mode 100644 xz-5.4.5/src/common/tuklib_open_stdxxx.c create mode 100644 xz-5.4.5/src/common/tuklib_open_stdxxx.h create mode 100644 xz-5.4.5/src/common/tuklib_physmem.c create mode 100644 xz-5.4.5/src/common/tuklib_physmem.h create mode 100644 xz-5.4.5/src/common/tuklib_progname.c create mode 100644 xz-5.4.5/src/common/tuklib_progname.h create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-alone_decoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-alone_encoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-arm.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-arm64.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-armthumb.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-auto_decoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-block_buffer_decoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-block_buffer_encoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-block_decoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-block_encoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-block_header_decoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-block_header_encoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-block_util.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-check.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-common.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-crc32_fast.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-crc32_small.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-crc32_table.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-crc32_x86.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-crc64_fast.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-crc64_small.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-crc64_table.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-crc64_x86.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-delta_common.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-delta_decoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-delta_encoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-easy_buffer_encoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-easy_decoder_memusage.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-easy_encoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-easy_encoder_memusage.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-easy_preset.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-fastpos_table.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-file_info.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-filter_buffer_decoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-filter_buffer_encoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-filter_common.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-filter_decoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-filter_encoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-filter_flags_decoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-filter_flags_encoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-hardware_cputhreads.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-hardware_physmem.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-ia64.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-index.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-index_decoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-index_encoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-index_hash.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-lz_decoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-lz_encoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-lz_encoder_mf.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-lzip_decoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-lzma2_decoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-lzma2_encoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-lzma_decoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-lzma_encoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-lzma_encoder_optimum_fast.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-lzma_encoder_optimum_normal.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-lzma_encoder_presets.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-microlzma_decoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-microlzma_encoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-outqueue.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-powerpc.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-price_table.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-sha256.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-simple_coder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-simple_decoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-simple_encoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-sparc.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-stream_buffer_decoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-stream_buffer_encoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-stream_decoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-stream_decoder_mt.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-stream_encoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-stream_encoder_mt.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-stream_flags_common.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-stream_flags_decoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-stream_flags_encoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-string_conversion.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-tuklib_cpucores.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-tuklib_physmem.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-vli_decoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-vli_encoder.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-vli_size.Plo create mode 100644 xz-5.4.5/src/liblzma/.deps/liblzma_la-x86.Plo create mode 100755 xz-5.4.5/src/liblzma/.libs/liblzma.5.dylib create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma.a create mode 120000 xz-5.4.5/src/liblzma/.libs/liblzma.dylib create mode 120000 xz-5.4.5/src/liblzma/.libs/liblzma.la create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma.lai create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-alone_decoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-alone_encoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-arm.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-arm64.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-armthumb.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-auto_decoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-block_buffer_decoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-block_buffer_encoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-block_decoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-block_encoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-block_header_decoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-block_header_encoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-block_util.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-check.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-common.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-crc32_fast.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-crc32_table.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-crc64_fast.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-crc64_table.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-delta_common.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-delta_decoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-delta_encoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-easy_buffer_encoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-easy_decoder_memusage.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-easy_encoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-easy_encoder_memusage.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-easy_preset.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-fastpos_table.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-file_info.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-filter_buffer_decoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-filter_buffer_encoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-filter_common.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-filter_decoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-filter_encoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-filter_flags_decoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-filter_flags_encoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-hardware_cputhreads.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-hardware_physmem.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-ia64.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-index.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-index_decoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-index_encoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-index_hash.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-lz_decoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-lz_encoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-lz_encoder_mf.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-lzip_decoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-lzma2_decoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-lzma2_encoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-lzma_decoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-lzma_encoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-lzma_encoder_optimum_fast.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-lzma_encoder_optimum_normal.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-lzma_encoder_presets.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-microlzma_decoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-microlzma_encoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-outqueue.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-powerpc.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-price_table.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-sha256.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-simple_coder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-simple_decoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-simple_encoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-sparc.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-stream_buffer_decoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-stream_buffer_encoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-stream_decoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-stream_decoder_mt.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-stream_encoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-stream_encoder_mt.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-stream_flags_common.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-stream_flags_decoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-stream_flags_encoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-string_conversion.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-tuklib_cpucores.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-tuklib_physmem.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-vli_decoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-vli_encoder.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-vli_size.o create mode 100644 xz-5.4.5/src/liblzma/.libs/liblzma_la-x86.o create mode 100644 xz-5.4.5/src/liblzma/Makefile create mode 100644 xz-5.4.5/src/liblzma/Makefile.am create mode 100644 xz-5.4.5/src/liblzma/Makefile.in create mode 100644 xz-5.4.5/src/liblzma/api/Makefile create mode 100644 xz-5.4.5/src/liblzma/api/Makefile.am create mode 100644 xz-5.4.5/src/liblzma/api/Makefile.in create mode 100644 xz-5.4.5/src/liblzma/api/lzma.h create mode 100644 xz-5.4.5/src/liblzma/api/lzma/base.h create mode 100644 xz-5.4.5/src/liblzma/api/lzma/bcj.h create mode 100644 xz-5.4.5/src/liblzma/api/lzma/block.h create mode 100644 xz-5.4.5/src/liblzma/api/lzma/check.h create mode 100644 xz-5.4.5/src/liblzma/api/lzma/container.h create mode 100644 xz-5.4.5/src/liblzma/api/lzma/delta.h create mode 100644 xz-5.4.5/src/liblzma/api/lzma/filter.h create mode 100644 xz-5.4.5/src/liblzma/api/lzma/hardware.h create mode 100644 xz-5.4.5/src/liblzma/api/lzma/index.h create mode 100644 xz-5.4.5/src/liblzma/api/lzma/index_hash.h create mode 100644 xz-5.4.5/src/liblzma/api/lzma/lzma12.h create mode 100644 xz-5.4.5/src/liblzma/api/lzma/stream_flags.h create mode 100644 xz-5.4.5/src/liblzma/api/lzma/version.h create mode 100644 xz-5.4.5/src/liblzma/api/lzma/vli.h create mode 100644 xz-5.4.5/src/liblzma/check/Makefile.inc create mode 100644 xz-5.4.5/src/liblzma/check/check.c create mode 100644 xz-5.4.5/src/liblzma/check/check.h create mode 100644 xz-5.4.5/src/liblzma/check/crc32_fast.c create mode 100644 xz-5.4.5/src/liblzma/check/crc32_small.c create mode 100644 xz-5.4.5/src/liblzma/check/crc32_table.c create mode 100644 xz-5.4.5/src/liblzma/check/crc32_table_be.h create mode 100644 xz-5.4.5/src/liblzma/check/crc32_table_le.h create mode 100644 xz-5.4.5/src/liblzma/check/crc32_tablegen.c create mode 100644 xz-5.4.5/src/liblzma/check/crc32_x86.S create mode 100644 xz-5.4.5/src/liblzma/check/crc64_fast.c create mode 100644 xz-5.4.5/src/liblzma/check/crc64_small.c create mode 100644 xz-5.4.5/src/liblzma/check/crc64_table.c create mode 100644 xz-5.4.5/src/liblzma/check/crc64_table_be.h create mode 100644 xz-5.4.5/src/liblzma/check/crc64_table_le.h create mode 100644 xz-5.4.5/src/liblzma/check/crc64_tablegen.c create mode 100644 xz-5.4.5/src/liblzma/check/crc64_x86.S create mode 100644 xz-5.4.5/src/liblzma/check/crc_macros.h create mode 100644 xz-5.4.5/src/liblzma/check/sha256.c create mode 100644 xz-5.4.5/src/liblzma/common/Makefile.inc create mode 100644 xz-5.4.5/src/liblzma/common/alone_decoder.c create mode 100644 xz-5.4.5/src/liblzma/common/alone_decoder.h create mode 100644 xz-5.4.5/src/liblzma/common/alone_encoder.c create mode 100644 xz-5.4.5/src/liblzma/common/auto_decoder.c create mode 100644 xz-5.4.5/src/liblzma/common/block_buffer_decoder.c create mode 100644 xz-5.4.5/src/liblzma/common/block_buffer_encoder.c create mode 100644 xz-5.4.5/src/liblzma/common/block_buffer_encoder.h create mode 100644 xz-5.4.5/src/liblzma/common/block_decoder.c create mode 100644 xz-5.4.5/src/liblzma/common/block_decoder.h create mode 100644 xz-5.4.5/src/liblzma/common/block_encoder.c create mode 100644 xz-5.4.5/src/liblzma/common/block_encoder.h create mode 100644 xz-5.4.5/src/liblzma/common/block_header_decoder.c create mode 100644 xz-5.4.5/src/liblzma/common/block_header_encoder.c create mode 100644 xz-5.4.5/src/liblzma/common/block_util.c create mode 100644 xz-5.4.5/src/liblzma/common/common.c create mode 100644 xz-5.4.5/src/liblzma/common/common.h create mode 100644 xz-5.4.5/src/liblzma/common/easy_buffer_encoder.c create mode 100644 xz-5.4.5/src/liblzma/common/easy_decoder_memusage.c create mode 100644 xz-5.4.5/src/liblzma/common/easy_encoder.c create mode 100644 xz-5.4.5/src/liblzma/common/easy_encoder_memusage.c create mode 100644 xz-5.4.5/src/liblzma/common/easy_preset.c create mode 100644 xz-5.4.5/src/liblzma/common/easy_preset.h create mode 100644 xz-5.4.5/src/liblzma/common/file_info.c create mode 100644 xz-5.4.5/src/liblzma/common/filter_buffer_decoder.c create mode 100644 xz-5.4.5/src/liblzma/common/filter_buffer_encoder.c create mode 100644 xz-5.4.5/src/liblzma/common/filter_common.c create mode 100644 xz-5.4.5/src/liblzma/common/filter_common.h create mode 100644 xz-5.4.5/src/liblzma/common/filter_decoder.c create mode 100644 xz-5.4.5/src/liblzma/common/filter_decoder.h create mode 100644 xz-5.4.5/src/liblzma/common/filter_encoder.c create mode 100644 xz-5.4.5/src/liblzma/common/filter_encoder.h create mode 100644 xz-5.4.5/src/liblzma/common/filter_flags_decoder.c create mode 100644 xz-5.4.5/src/liblzma/common/filter_flags_encoder.c create mode 100644 xz-5.4.5/src/liblzma/common/hardware_cputhreads.c create mode 100644 xz-5.4.5/src/liblzma/common/hardware_physmem.c create mode 100644 xz-5.4.5/src/liblzma/common/index.c create mode 100644 xz-5.4.5/src/liblzma/common/index.h create mode 100644 xz-5.4.5/src/liblzma/common/index_decoder.c create mode 100644 xz-5.4.5/src/liblzma/common/index_decoder.h create mode 100644 xz-5.4.5/src/liblzma/common/index_encoder.c create mode 100644 xz-5.4.5/src/liblzma/common/index_encoder.h create mode 100644 xz-5.4.5/src/liblzma/common/index_hash.c create mode 100644 xz-5.4.5/src/liblzma/common/lzip_decoder.c create mode 100644 xz-5.4.5/src/liblzma/common/lzip_decoder.h create mode 100644 xz-5.4.5/src/liblzma/common/memcmplen.h create mode 100644 xz-5.4.5/src/liblzma/common/microlzma_decoder.c create mode 100644 xz-5.4.5/src/liblzma/common/microlzma_encoder.c create mode 100644 xz-5.4.5/src/liblzma/common/outqueue.c create mode 100644 xz-5.4.5/src/liblzma/common/outqueue.h create mode 100644 xz-5.4.5/src/liblzma/common/stream_buffer_decoder.c create mode 100644 xz-5.4.5/src/liblzma/common/stream_buffer_encoder.c create mode 100644 xz-5.4.5/src/liblzma/common/stream_decoder.c create mode 100644 xz-5.4.5/src/liblzma/common/stream_decoder.h create mode 100644 xz-5.4.5/src/liblzma/common/stream_decoder_mt.c create mode 100644 xz-5.4.5/src/liblzma/common/stream_encoder.c create mode 100644 xz-5.4.5/src/liblzma/common/stream_encoder_mt.c create mode 100644 xz-5.4.5/src/liblzma/common/stream_flags_common.c create mode 100644 xz-5.4.5/src/liblzma/common/stream_flags_common.h create mode 100644 xz-5.4.5/src/liblzma/common/stream_flags_decoder.c create mode 100644 xz-5.4.5/src/liblzma/common/stream_flags_encoder.c create mode 100644 xz-5.4.5/src/liblzma/common/string_conversion.c create mode 100644 xz-5.4.5/src/liblzma/common/vli_decoder.c create mode 100644 xz-5.4.5/src/liblzma/common/vli_encoder.c create mode 100644 xz-5.4.5/src/liblzma/common/vli_size.c create mode 100644 xz-5.4.5/src/liblzma/delta/Makefile.inc create mode 100644 xz-5.4.5/src/liblzma/delta/delta_common.c create mode 100644 xz-5.4.5/src/liblzma/delta/delta_common.h create mode 100644 xz-5.4.5/src/liblzma/delta/delta_decoder.c create mode 100644 xz-5.4.5/src/liblzma/delta/delta_decoder.h create mode 100644 xz-5.4.5/src/liblzma/delta/delta_encoder.c create mode 100644 xz-5.4.5/src/liblzma/delta/delta_encoder.h create mode 100644 xz-5.4.5/src/liblzma/delta/delta_private.h create mode 100644 xz-5.4.5/src/liblzma/liblzma.la create mode 100644 xz-5.4.5/src/liblzma/liblzma.pc create mode 100644 xz-5.4.5/src/liblzma/liblzma.pc.in create mode 100644 xz-5.4.5/src/liblzma/liblzma_generic.map create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-alone_decoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-alone_decoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-alone_encoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-alone_encoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-arm.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-arm.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-arm64.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-arm64.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-armthumb.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-armthumb.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-auto_decoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-auto_decoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-block_buffer_decoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-block_buffer_decoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-block_buffer_encoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-block_buffer_encoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-block_decoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-block_decoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-block_encoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-block_encoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-block_header_decoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-block_header_decoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-block_header_encoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-block_header_encoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-block_util.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-block_util.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-check.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-check.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-common.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-common.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-crc32_fast.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-crc32_fast.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-crc32_table.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-crc32_table.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-crc64_fast.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-crc64_fast.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-crc64_table.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-crc64_table.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-delta_common.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-delta_common.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-delta_decoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-delta_decoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-delta_encoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-delta_encoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-easy_buffer_encoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-easy_buffer_encoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-easy_decoder_memusage.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-easy_decoder_memusage.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-easy_encoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-easy_encoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-easy_encoder_memusage.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-easy_encoder_memusage.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-easy_preset.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-easy_preset.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-fastpos_table.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-fastpos_table.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-file_info.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-file_info.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-filter_buffer_decoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-filter_buffer_decoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-filter_buffer_encoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-filter_buffer_encoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-filter_common.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-filter_common.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-filter_decoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-filter_decoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-filter_encoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-filter_encoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-filter_flags_decoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-filter_flags_decoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-filter_flags_encoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-filter_flags_encoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-hardware_cputhreads.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-hardware_cputhreads.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-hardware_physmem.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-hardware_physmem.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-ia64.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-ia64.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-index.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-index.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-index_decoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-index_decoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-index_encoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-index_encoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-index_hash.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-index_hash.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-lz_decoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-lz_decoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-lz_encoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-lz_encoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-lz_encoder_mf.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-lz_encoder_mf.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-lzip_decoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-lzip_decoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-lzma2_decoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-lzma2_decoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-lzma2_encoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-lzma2_encoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-lzma_decoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-lzma_decoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-lzma_encoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-lzma_encoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-lzma_encoder_optimum_fast.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-lzma_encoder_optimum_fast.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-lzma_encoder_optimum_normal.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-lzma_encoder_optimum_normal.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-lzma_encoder_presets.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-lzma_encoder_presets.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-microlzma_decoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-microlzma_decoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-microlzma_encoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-microlzma_encoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-outqueue.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-outqueue.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-powerpc.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-powerpc.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-price_table.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-price_table.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-sha256.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-sha256.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-simple_coder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-simple_coder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-simple_decoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-simple_decoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-simple_encoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-simple_encoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-sparc.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-sparc.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-stream_buffer_decoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-stream_buffer_decoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-stream_buffer_encoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-stream_buffer_encoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-stream_decoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-stream_decoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-stream_decoder_mt.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-stream_decoder_mt.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-stream_encoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-stream_encoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-stream_encoder_mt.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-stream_encoder_mt.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-stream_flags_common.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-stream_flags_common.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-stream_flags_decoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-stream_flags_decoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-stream_flags_encoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-stream_flags_encoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-string_conversion.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-string_conversion.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-tuklib_cpucores.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-tuklib_cpucores.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-tuklib_physmem.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-tuklib_physmem.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-vli_decoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-vli_decoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-vli_encoder.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-vli_encoder.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-vli_size.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-vli_size.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-x86.lo create mode 100644 xz-5.4.5/src/liblzma/liblzma_la-x86.o create mode 100644 xz-5.4.5/src/liblzma/liblzma_linux.map create mode 100644 xz-5.4.5/src/liblzma/liblzma_w32res.rc create mode 100644 xz-5.4.5/src/liblzma/lz/Makefile.inc create mode 100644 xz-5.4.5/src/liblzma/lz/lz_decoder.c create mode 100644 xz-5.4.5/src/liblzma/lz/lz_decoder.h create mode 100644 xz-5.4.5/src/liblzma/lz/lz_encoder.c create mode 100644 xz-5.4.5/src/liblzma/lz/lz_encoder.h create mode 100644 xz-5.4.5/src/liblzma/lz/lz_encoder_hash.h create mode 100644 xz-5.4.5/src/liblzma/lz/lz_encoder_hash_table.h create mode 100644 xz-5.4.5/src/liblzma/lz/lz_encoder_mf.c create mode 100644 xz-5.4.5/src/liblzma/lzma/Makefile.inc create mode 100644 xz-5.4.5/src/liblzma/lzma/fastpos.h create mode 100644 xz-5.4.5/src/liblzma/lzma/fastpos_table.c create mode 100644 xz-5.4.5/src/liblzma/lzma/fastpos_tablegen.c create mode 100644 xz-5.4.5/src/liblzma/lzma/lzma2_decoder.c create mode 100644 xz-5.4.5/src/liblzma/lzma/lzma2_decoder.h create mode 100644 xz-5.4.5/src/liblzma/lzma/lzma2_encoder.c create mode 100644 xz-5.4.5/src/liblzma/lzma/lzma2_encoder.h create mode 100644 xz-5.4.5/src/liblzma/lzma/lzma_common.h create mode 100644 xz-5.4.5/src/liblzma/lzma/lzma_decoder.c create mode 100644 xz-5.4.5/src/liblzma/lzma/lzma_decoder.h create mode 100644 xz-5.4.5/src/liblzma/lzma/lzma_encoder.c create mode 100644 xz-5.4.5/src/liblzma/lzma/lzma_encoder.h create mode 100644 xz-5.4.5/src/liblzma/lzma/lzma_encoder_optimum_fast.c create mode 100644 xz-5.4.5/src/liblzma/lzma/lzma_encoder_optimum_normal.c create mode 100644 xz-5.4.5/src/liblzma/lzma/lzma_encoder_presets.c create mode 100644 xz-5.4.5/src/liblzma/lzma/lzma_encoder_private.h create mode 100644 xz-5.4.5/src/liblzma/rangecoder/Makefile.inc create mode 100644 xz-5.4.5/src/liblzma/rangecoder/price.h create mode 100644 xz-5.4.5/src/liblzma/rangecoder/price_table.c create mode 100644 xz-5.4.5/src/liblzma/rangecoder/price_tablegen.c create mode 100644 xz-5.4.5/src/liblzma/rangecoder/range_common.h create mode 100644 xz-5.4.5/src/liblzma/rangecoder/range_decoder.h create mode 100644 xz-5.4.5/src/liblzma/rangecoder/range_encoder.h create mode 100644 xz-5.4.5/src/liblzma/simple/Makefile.inc create mode 100644 xz-5.4.5/src/liblzma/simple/arm.c create mode 100644 xz-5.4.5/src/liblzma/simple/arm64.c create mode 100644 xz-5.4.5/src/liblzma/simple/armthumb.c create mode 100644 xz-5.4.5/src/liblzma/simple/ia64.c create mode 100644 xz-5.4.5/src/liblzma/simple/powerpc.c create mode 100644 xz-5.4.5/src/liblzma/simple/simple_coder.c create mode 100644 xz-5.4.5/src/liblzma/simple/simple_coder.h create mode 100644 xz-5.4.5/src/liblzma/simple/simple_decoder.c create mode 100644 xz-5.4.5/src/liblzma/simple/simple_decoder.h create mode 100644 xz-5.4.5/src/liblzma/simple/simple_encoder.c create mode 100644 xz-5.4.5/src/liblzma/simple/simple_encoder.h create mode 100644 xz-5.4.5/src/liblzma/simple/simple_private.h create mode 100644 xz-5.4.5/src/liblzma/simple/sparc.c create mode 100644 xz-5.4.5/src/liblzma/simple/x86.c create mode 100644 xz-5.4.5/src/liblzma/validate_map.sh create mode 100644 xz-5.4.5/src/lzmainfo/.deps/lzmainfo-lzmainfo.Po create mode 100644 xz-5.4.5/src/lzmainfo/.deps/lzmainfo-tuklib_exit.Po create mode 100644 xz-5.4.5/src/lzmainfo/.deps/lzmainfo-tuklib_progname.Po create mode 100755 xz-5.4.5/src/lzmainfo/.libs/lzmainfo create mode 100644 xz-5.4.5/src/lzmainfo/Makefile create mode 100644 xz-5.4.5/src/lzmainfo/Makefile.am create mode 100644 xz-5.4.5/src/lzmainfo/Makefile.in create mode 100755 xz-5.4.5/src/lzmainfo/lzmainfo create mode 100644 xz-5.4.5/src/lzmainfo/lzmainfo-lzmainfo.o create mode 100644 xz-5.4.5/src/lzmainfo/lzmainfo-tuklib_exit.o create mode 100644 xz-5.4.5/src/lzmainfo/lzmainfo-tuklib_progname.o create mode 100644 xz-5.4.5/src/lzmainfo/lzmainfo.1 create mode 100644 xz-5.4.5/src/lzmainfo/lzmainfo.c create mode 100644 xz-5.4.5/src/lzmainfo/lzmainfo_w32res.rc create mode 100644 xz-5.4.5/src/scripts/Makefile create mode 100644 xz-5.4.5/src/scripts/Makefile.am create mode 100644 xz-5.4.5/src/scripts/Makefile.in create mode 100755 xz-5.4.5/src/scripts/xzdiff create mode 100644 xz-5.4.5/src/scripts/xzdiff.1 create mode 100644 xz-5.4.5/src/scripts/xzdiff.in create mode 100755 xz-5.4.5/src/scripts/xzgrep create mode 100644 xz-5.4.5/src/scripts/xzgrep.1 create mode 100644 xz-5.4.5/src/scripts/xzgrep.in create mode 100755 xz-5.4.5/src/scripts/xzless create mode 100644 xz-5.4.5/src/scripts/xzless.1 create mode 100644 xz-5.4.5/src/scripts/xzless.in create mode 100755 xz-5.4.5/src/scripts/xzmore create mode 100644 xz-5.4.5/src/scripts/xzmore.1 create mode 100644 xz-5.4.5/src/scripts/xzmore.in create mode 100644 xz-5.4.5/src/xz/.deps/xz-args.Po create mode 100644 xz-5.4.5/src/xz/.deps/xz-coder.Po create mode 100644 xz-5.4.5/src/xz/.deps/xz-file_io.Po create mode 100644 xz-5.4.5/src/xz/.deps/xz-hardware.Po create mode 100644 xz-5.4.5/src/xz/.deps/xz-list.Po create mode 100644 xz-5.4.5/src/xz/.deps/xz-main.Po create mode 100644 xz-5.4.5/src/xz/.deps/xz-message.Po create mode 100644 xz-5.4.5/src/xz/.deps/xz-mytime.Po create mode 100644 xz-5.4.5/src/xz/.deps/xz-options.Po create mode 100644 xz-5.4.5/src/xz/.deps/xz-signals.Po create mode 100644 xz-5.4.5/src/xz/.deps/xz-suffix.Po create mode 100644 xz-5.4.5/src/xz/.deps/xz-tuklib_exit.Po create mode 100644 xz-5.4.5/src/xz/.deps/xz-tuklib_mbstr_fw.Po create mode 100644 xz-5.4.5/src/xz/.deps/xz-tuklib_mbstr_width.Po create mode 100644 xz-5.4.5/src/xz/.deps/xz-tuklib_open_stdxxx.Po create mode 100644 xz-5.4.5/src/xz/.deps/xz-tuklib_progname.Po create mode 100644 xz-5.4.5/src/xz/.deps/xz-util.Po create mode 100755 xz-5.4.5/src/xz/.libs/xz create mode 100644 xz-5.4.5/src/xz/Makefile create mode 100644 xz-5.4.5/src/xz/Makefile.am create mode 100644 xz-5.4.5/src/xz/Makefile.in create mode 100644 xz-5.4.5/src/xz/args.c create mode 100644 xz-5.4.5/src/xz/args.h create mode 100644 xz-5.4.5/src/xz/coder.c create mode 100644 xz-5.4.5/src/xz/coder.h create mode 100644 xz-5.4.5/src/xz/file_io.c create mode 100644 xz-5.4.5/src/xz/file_io.h create mode 100644 xz-5.4.5/src/xz/hardware.c create mode 100644 xz-5.4.5/src/xz/hardware.h create mode 100644 xz-5.4.5/src/xz/list.c create mode 100644 xz-5.4.5/src/xz/list.h create mode 100644 xz-5.4.5/src/xz/main.c create mode 100644 xz-5.4.5/src/xz/main.h create mode 100644 xz-5.4.5/src/xz/message.c create mode 100644 xz-5.4.5/src/xz/message.h create mode 100644 xz-5.4.5/src/xz/mytime.c create mode 100644 xz-5.4.5/src/xz/mytime.h create mode 100644 xz-5.4.5/src/xz/options.c create mode 100644 xz-5.4.5/src/xz/options.h create mode 100644 xz-5.4.5/src/xz/private.h create mode 100644 xz-5.4.5/src/xz/signals.c create mode 100644 xz-5.4.5/src/xz/signals.h create mode 100644 xz-5.4.5/src/xz/suffix.c create mode 100644 xz-5.4.5/src/xz/suffix.h create mode 100644 xz-5.4.5/src/xz/util.c create mode 100644 xz-5.4.5/src/xz/util.h create mode 100755 xz-5.4.5/src/xz/xz create mode 100644 xz-5.4.5/src/xz/xz-args.o create mode 100644 xz-5.4.5/src/xz/xz-coder.o create mode 100644 xz-5.4.5/src/xz/xz-file_io.o create mode 100644 xz-5.4.5/src/xz/xz-hardware.o create mode 100644 xz-5.4.5/src/xz/xz-list.o create mode 100644 xz-5.4.5/src/xz/xz-main.o create mode 100644 xz-5.4.5/src/xz/xz-message.o create mode 100644 xz-5.4.5/src/xz/xz-mytime.o create mode 100644 xz-5.4.5/src/xz/xz-options.o create mode 100644 xz-5.4.5/src/xz/xz-signals.o create mode 100644 xz-5.4.5/src/xz/xz-suffix.o create mode 100644 xz-5.4.5/src/xz/xz-tuklib_exit.o create mode 100644 xz-5.4.5/src/xz/xz-tuklib_mbstr_fw.o create mode 100644 xz-5.4.5/src/xz/xz-tuklib_mbstr_width.o create mode 100644 xz-5.4.5/src/xz/xz-tuklib_open_stdxxx.o create mode 100644 xz-5.4.5/src/xz/xz-tuklib_progname.o create mode 100644 xz-5.4.5/src/xz/xz-util.o create mode 100644 xz-5.4.5/src/xz/xz.1 create mode 100644 xz-5.4.5/src/xz/xz_w32res.rc create mode 100644 xz-5.4.5/src/xzdec/.deps/lzmadec-tuklib_exit.Po create mode 100644 xz-5.4.5/src/xzdec/.deps/lzmadec-tuklib_progname.Po create mode 100644 xz-5.4.5/src/xzdec/.deps/lzmadec-xzdec.Po create mode 100644 xz-5.4.5/src/xzdec/.deps/xzdec-tuklib_exit.Po create mode 100644 xz-5.4.5/src/xzdec/.deps/xzdec-tuklib_progname.Po create mode 100644 xz-5.4.5/src/xzdec/.deps/xzdec-xzdec.Po create mode 100755 xz-5.4.5/src/xzdec/.libs/lzmadec create mode 100755 xz-5.4.5/src/xzdec/.libs/xzdec create mode 100644 xz-5.4.5/src/xzdec/Makefile create mode 100644 xz-5.4.5/src/xzdec/Makefile.am create mode 100644 xz-5.4.5/src/xzdec/Makefile.in create mode 100755 xz-5.4.5/src/xzdec/lzmadec create mode 100644 xz-5.4.5/src/xzdec/lzmadec-tuklib_exit.o create mode 100644 xz-5.4.5/src/xzdec/lzmadec-tuklib_progname.o create mode 100644 xz-5.4.5/src/xzdec/lzmadec-xzdec.o create mode 100644 xz-5.4.5/src/xzdec/lzmadec_w32res.rc create mode 100755 xz-5.4.5/src/xzdec/xzdec create mode 100644 xz-5.4.5/src/xzdec/xzdec-tuklib_exit.o create mode 100644 xz-5.4.5/src/xzdec/xzdec-tuklib_progname.o create mode 100644 xz-5.4.5/src/xzdec/xzdec-xzdec.o create mode 100644 xz-5.4.5/src/xzdec/xzdec.1 create mode 100644 xz-5.4.5/src/xzdec/xzdec.c create mode 100644 xz-5.4.5/src/xzdec/xzdec_w32res.rc create mode 100644 xz-5.4.5/stamp-h1 create mode 100644 xz-5.4.5/tests/.deps/create_compress_files.Po create mode 100644 xz-5.4.5/tests/.deps/test_bcj_exact_size.Po create mode 100644 xz-5.4.5/tests/.deps/test_block_header.Po create mode 100644 xz-5.4.5/tests/.deps/test_check.Po create mode 100644 xz-5.4.5/tests/.deps/test_filter_flags.Po create mode 100644 xz-5.4.5/tests/.deps/test_filter_str.Po create mode 100644 xz-5.4.5/tests/.deps/test_hardware.Po create mode 100644 xz-5.4.5/tests/.deps/test_index.Po create mode 100644 xz-5.4.5/tests/.deps/test_index_hash.Po create mode 100644 xz-5.4.5/tests/.deps/test_lzip_decoder.Po create mode 100644 xz-5.4.5/tests/.deps/test_memlimit.Po create mode 100644 xz-5.4.5/tests/.deps/test_stream_flags.Po create mode 100644 xz-5.4.5/tests/.deps/test_vli.Po create mode 100644 xz-5.4.5/tests/Makefile create mode 100644 xz-5.4.5/tests/Makefile.am create mode 100644 xz-5.4.5/tests/Makefile.in create mode 100644 xz-5.4.5/tests/bcj_test.c create mode 100644 xz-5.4.5/tests/compress_prepared_bcj_sparc create mode 100644 xz-5.4.5/tests/compress_prepared_bcj_x86 create mode 100644 xz-5.4.5/tests/create_compress_files.c create mode 100644 xz-5.4.5/tests/files/README create mode 100644 xz-5.4.5/tests/files/bad-0-backward_size.xz create mode 100644 xz-5.4.5/tests/files/bad-0-empty-truncated.xz create mode 100644 xz-5.4.5/tests/files/bad-0-footer_magic.xz create mode 100644 xz-5.4.5/tests/files/bad-0-header_magic.xz create mode 100644 xz-5.4.5/tests/files/bad-0-nonempty_index.xz create mode 100644 xz-5.4.5/tests/files/bad-0cat-alone.xz create mode 100644 xz-5.4.5/tests/files/bad-0cat-header_magic.xz create mode 100644 xz-5.4.5/tests/files/bad-0catpad-empty.xz create mode 100644 xz-5.4.5/tests/files/bad-0pad-empty.xz create mode 100644 xz-5.4.5/tests/files/bad-1-block_header-1.xz create mode 100644 xz-5.4.5/tests/files/bad-1-block_header-2.xz create mode 100644 xz-5.4.5/tests/files/bad-1-block_header-3.xz create mode 100644 xz-5.4.5/tests/files/bad-1-block_header-4.xz create mode 100644 xz-5.4.5/tests/files/bad-1-block_header-5.xz create mode 100644 xz-5.4.5/tests/files/bad-1-block_header-6.xz create mode 100644 xz-5.4.5/tests/files/bad-1-check-crc32-2.xz create mode 100644 xz-5.4.5/tests/files/bad-1-check-crc32.xz create mode 100644 xz-5.4.5/tests/files/bad-1-check-crc64.xz create mode 100644 xz-5.4.5/tests/files/bad-1-check-sha256.xz create mode 100644 xz-5.4.5/tests/files/bad-1-lzma2-1.xz create mode 100644 xz-5.4.5/tests/files/bad-1-lzma2-10.xz create mode 100644 xz-5.4.5/tests/files/bad-1-lzma2-11.xz create mode 100644 xz-5.4.5/tests/files/bad-1-lzma2-2.xz create mode 100644 xz-5.4.5/tests/files/bad-1-lzma2-3.xz create mode 100644 xz-5.4.5/tests/files/bad-1-lzma2-4.xz create mode 100644 xz-5.4.5/tests/files/bad-1-lzma2-5.xz create mode 100644 xz-5.4.5/tests/files/bad-1-lzma2-6.xz create mode 100644 xz-5.4.5/tests/files/bad-1-lzma2-7.xz create mode 100644 xz-5.4.5/tests/files/bad-1-lzma2-8.xz create mode 100644 xz-5.4.5/tests/files/bad-1-lzma2-9.xz create mode 100644 xz-5.4.5/tests/files/bad-1-stream_flags-1.xz create mode 100644 xz-5.4.5/tests/files/bad-1-stream_flags-2.xz create mode 100644 xz-5.4.5/tests/files/bad-1-stream_flags-3.xz create mode 100644 xz-5.4.5/tests/files/bad-1-v0-uncomp-size.lz create mode 100644 xz-5.4.5/tests/files/bad-1-v1-crc32.lz create mode 100644 xz-5.4.5/tests/files/bad-1-v1-dict-1.lz create mode 100644 xz-5.4.5/tests/files/bad-1-v1-dict-2.lz create mode 100644 xz-5.4.5/tests/files/bad-1-v1-magic-1.lz create mode 100644 xz-5.4.5/tests/files/bad-1-v1-magic-2.lz create mode 100644 xz-5.4.5/tests/files/bad-1-v1-member-size.lz create mode 100644 xz-5.4.5/tests/files/bad-1-v1-trailing-magic.lz create mode 100644 xz-5.4.5/tests/files/bad-1-v1-uncomp-size.lz create mode 100644 xz-5.4.5/tests/files/bad-1-vli-1.xz create mode 100644 xz-5.4.5/tests/files/bad-1-vli-2.xz create mode 100644 xz-5.4.5/tests/files/bad-2-compressed_data_padding.xz create mode 100644 xz-5.4.5/tests/files/bad-2-index-1.xz create mode 100644 xz-5.4.5/tests/files/bad-2-index-2.xz create mode 100644 xz-5.4.5/tests/files/bad-2-index-3.xz create mode 100644 xz-5.4.5/tests/files/bad-2-index-4.xz create mode 100644 xz-5.4.5/tests/files/bad-2-index-5.xz create mode 100644 xz-5.4.5/tests/files/bad-3-index-uncomp-overflow.xz create mode 100644 xz-5.4.5/tests/files/bad-too_big_size-with_eopm.lzma create mode 100644 xz-5.4.5/tests/files/bad-too_small_size-without_eopm-1.lzma create mode 100644 xz-5.4.5/tests/files/bad-too_small_size-without_eopm-2.lzma create mode 100644 xz-5.4.5/tests/files/bad-too_small_size-without_eopm-3.lzma create mode 100644 xz-5.4.5/tests/files/bad-unknown_size-without_eopm.lzma create mode 100644 xz-5.4.5/tests/files/good-0-empty.xz create mode 100644 xz-5.4.5/tests/files/good-0cat-empty.xz create mode 100644 xz-5.4.5/tests/files/good-0catpad-empty.xz create mode 100644 xz-5.4.5/tests/files/good-0pad-empty.xz create mode 100644 xz-5.4.5/tests/files/good-1-3delta-lzma2.xz create mode 100644 xz-5.4.5/tests/files/good-1-arm64-lzma2-1.xz create mode 100644 xz-5.4.5/tests/files/good-1-arm64-lzma2-2.xz create mode 100644 xz-5.4.5/tests/files/good-1-block_header-1.xz create mode 100644 xz-5.4.5/tests/files/good-1-block_header-2.xz create mode 100644 xz-5.4.5/tests/files/good-1-block_header-3.xz create mode 100644 xz-5.4.5/tests/files/good-1-check-crc32.xz create mode 100644 xz-5.4.5/tests/files/good-1-check-crc64.xz create mode 100644 xz-5.4.5/tests/files/good-1-check-none.xz create mode 100644 xz-5.4.5/tests/files/good-1-check-sha256.xz create mode 100644 xz-5.4.5/tests/files/good-1-delta-lzma2.tiff.xz create mode 100644 xz-5.4.5/tests/files/good-1-empty-bcj-lzma2.xz create mode 100644 xz-5.4.5/tests/files/good-1-lzma2-1.xz create mode 100644 xz-5.4.5/tests/files/good-1-lzma2-2.xz create mode 100644 xz-5.4.5/tests/files/good-1-lzma2-3.xz create mode 100644 xz-5.4.5/tests/files/good-1-lzma2-4.xz create mode 100644 xz-5.4.5/tests/files/good-1-lzma2-5.xz create mode 100644 xz-5.4.5/tests/files/good-1-sparc-lzma2.xz create mode 100644 xz-5.4.5/tests/files/good-1-v0-trailing-1.lz create mode 100644 xz-5.4.5/tests/files/good-1-v0.lz create mode 100644 xz-5.4.5/tests/files/good-1-v1-trailing-1.lz create mode 100644 xz-5.4.5/tests/files/good-1-v1-trailing-2.lz create mode 100644 xz-5.4.5/tests/files/good-1-v1.lz create mode 100644 xz-5.4.5/tests/files/good-1-x86-lzma2.xz create mode 100644 xz-5.4.5/tests/files/good-2-lzma2.xz create mode 100644 xz-5.4.5/tests/files/good-2-v0-v1.lz create mode 100644 xz-5.4.5/tests/files/good-2-v1-v0.lz create mode 100644 xz-5.4.5/tests/files/good-2-v1-v1.lz create mode 100644 xz-5.4.5/tests/files/good-known_size-with_eopm.lzma create mode 100644 xz-5.4.5/tests/files/good-known_size-without_eopm.lzma create mode 100644 xz-5.4.5/tests/files/good-unknown_size-with_eopm.lzma create mode 100644 xz-5.4.5/tests/files/unsupported-1-v234.lz create mode 100644 xz-5.4.5/tests/files/unsupported-block_header.xz create mode 100644 xz-5.4.5/tests/files/unsupported-check.xz create mode 100644 xz-5.4.5/tests/files/unsupported-filter_flags-1.xz create mode 100644 xz-5.4.5/tests/files/unsupported-filter_flags-2.xz create mode 100644 xz-5.4.5/tests/files/unsupported-filter_flags-3.xz create mode 100644 xz-5.4.5/tests/ossfuzz/Makefile create mode 100644 xz-5.4.5/tests/ossfuzz/config/fuzz.dict create mode 100644 xz-5.4.5/tests/ossfuzz/config/fuzz.options create mode 100644 xz-5.4.5/tests/ossfuzz/fuzz.c create mode 100644 xz-5.4.5/tests/test_bcj_exact_size.c create mode 100644 xz-5.4.5/tests/test_block_header.c create mode 100644 xz-5.4.5/tests/test_check.c create mode 100755 xz-5.4.5/tests/test_compress.sh create mode 100755 xz-5.4.5/tests/test_compress_generated_abc create mode 100755 xz-5.4.5/tests/test_compress_generated_random create mode 100755 xz-5.4.5/tests/test_compress_generated_text create mode 100755 xz-5.4.5/tests/test_compress_prepared_bcj_sparc create mode 100755 xz-5.4.5/tests/test_compress_prepared_bcj_x86 create mode 100755 xz-5.4.5/tests/test_files.sh create mode 100644 xz-5.4.5/tests/test_filter_flags.c create mode 100644 xz-5.4.5/tests/test_filter_str.c create mode 100644 xz-5.4.5/tests/test_hardware.c create mode 100644 xz-5.4.5/tests/test_index.c create mode 100644 xz-5.4.5/tests/test_index_hash.c create mode 100644 xz-5.4.5/tests/test_lzip_decoder.c create mode 100644 xz-5.4.5/tests/test_memlimit.c create mode 100755 xz-5.4.5/tests/test_scripts.sh create mode 100644 xz-5.4.5/tests/test_stream_flags.c create mode 100644 xz-5.4.5/tests/test_vli.c create mode 100644 xz-5.4.5/tests/tests.h create mode 100644 xz-5.4.5/tests/tuktest.h create mode 100644 xz-5.4.5/tests/xzgrep_expected_output create mode 100644 xz-5.4.5/windows/INSTALL-MSVC.txt create mode 100644 xz-5.4.5/windows/INSTALL-MinGW.txt create mode 100644 xz-5.4.5/windows/README-Windows.txt create mode 100644 xz-5.4.5/windows/build.bash create mode 100644 xz-5.4.5/windows/vs2013/config.h create mode 100644 xz-5.4.5/windows/vs2013/liblzma.vcxproj create mode 100644 xz-5.4.5/windows/vs2013/liblzma_dll.vcxproj create mode 100644 xz-5.4.5/windows/vs2013/xz_win.sln create mode 100644 xz-5.4.5/windows/vs2017/config.h create mode 100644 xz-5.4.5/windows/vs2017/liblzma.vcxproj create mode 100644 xz-5.4.5/windows/vs2017/liblzma_dll.vcxproj create mode 100644 xz-5.4.5/windows/vs2017/xz_win.sln create mode 100644 xz-5.4.5/windows/vs2019/config.h create mode 100644 xz-5.4.5/windows/vs2019/liblzma.vcxproj create mode 100644 xz-5.4.5/windows/vs2019/liblzma_dll.vcxproj create mode 100644 xz-5.4.5/windows/vs2019/xz_win.sln create mode 120000 xz-install/bin/lzcat create mode 120000 xz-install/bin/lzcmp create mode 120000 xz-install/bin/lzdiff create mode 120000 xz-install/bin/lzegrep create mode 120000 xz-install/bin/lzfgrep create mode 120000 xz-install/bin/lzgrep create mode 120000 xz-install/bin/lzless create mode 120000 xz-install/bin/lzma create mode 100755 xz-install/bin/lzmadec create mode 100755 xz-install/bin/lzmainfo create mode 120000 xz-install/bin/lzmore create mode 120000 xz-install/bin/unlzma create mode 120000 xz-install/bin/unxz create mode 100755 xz-install/bin/xz create mode 120000 xz-install/bin/xzcat create mode 120000 xz-install/bin/xzcmp create mode 100755 xz-install/bin/xzdec create mode 100755 xz-install/bin/xzdiff create mode 120000 xz-install/bin/xzegrep create mode 120000 xz-install/bin/xzfgrep create mode 100755 xz-install/bin/xzgrep create mode 100755 xz-install/bin/xzless create mode 100755 xz-install/bin/xzmore create mode 100644 xz-install/include/lzma.h create mode 100644 xz-install/include/lzma/base.h create mode 100644 xz-install/include/lzma/bcj.h create mode 100644 xz-install/include/lzma/block.h create mode 100644 xz-install/include/lzma/check.h create mode 100644 xz-install/include/lzma/container.h create mode 100644 xz-install/include/lzma/delta.h create mode 100644 xz-install/include/lzma/filter.h create mode 100644 xz-install/include/lzma/hardware.h create mode 100644 xz-install/include/lzma/index.h create mode 100644 xz-install/include/lzma/index_hash.h create mode 100644 xz-install/include/lzma/lzma12.h create mode 100644 xz-install/include/lzma/stream_flags.h create mode 100644 xz-install/include/lzma/version.h create mode 100644 xz-install/include/lzma/vli.h create mode 100644 xz-install/share/doc/xz/AUTHORS create mode 100644 xz-install/share/doc/xz/COPYING create mode 100644 xz-install/share/doc/xz/COPYING.GPLv2 create mode 100644 xz-install/share/doc/xz/NEWS create mode 100644 xz-install/share/doc/xz/README create mode 100644 xz-install/share/doc/xz/THANKS create mode 100644 xz-install/share/doc/xz/TODO create mode 100644 xz-install/share/doc/xz/api/annotated.html create mode 100644 xz-install/share/doc/xz/api/base_8h.html create mode 100644 xz-install/share/doc/xz/api/bc_s.png create mode 100644 xz-install/share/doc/xz/api/bc_sd.png create mode 100644 xz-install/share/doc/xz/api/bcj_8h.html create mode 100644 xz-install/share/doc/xz/api/block_8h.html create mode 100644 xz-install/share/doc/xz/api/check_8h.html create mode 100644 xz-install/share/doc/xz/api/classes.html create mode 100644 xz-install/share/doc/xz/api/closed.png create mode 100644 xz-install/share/doc/xz/api/container_8h.html create mode 100644 xz-install/share/doc/xz/api/delta_8h.html create mode 100644 xz-install/share/doc/xz/api/dir_b17a1d403082bd69a703ed987cf158fb.html create mode 100644 xz-install/share/doc/xz/api/doc.svg create mode 100644 xz-install/share/doc/xz/api/docd.svg create mode 100644 xz-install/share/doc/xz/api/doxygen.css create mode 100644 xz-install/share/doc/xz/api/doxygen.svg create mode 100644 xz-install/share/doc/xz/api/files.html create mode 100644 xz-install/share/doc/xz/api/filter_8h.html create mode 100644 xz-install/share/doc/xz/api/folderclosed.svg create mode 100644 xz-install/share/doc/xz/api/folderclosedd.svg create mode 100644 xz-install/share/doc/xz/api/folderopen.svg create mode 100644 xz-install/share/doc/xz/api/folderopend.svg create mode 100644 xz-install/share/doc/xz/api/functions.html create mode 100644 xz-install/share/doc/xz/api/functions_vars.html create mode 100644 xz-install/share/doc/xz/api/globals.html create mode 100644 xz-install/share/doc/xz/api/globals_defs.html create mode 100644 xz-install/share/doc/xz/api/globals_enum.html create mode 100644 xz-install/share/doc/xz/api/globals_eval.html create mode 100644 xz-install/share/doc/xz/api/globals_func.html create mode 100644 xz-install/share/doc/xz/api/globals_type.html create mode 100644 xz-install/share/doc/xz/api/hardware_8h.html create mode 100644 xz-install/share/doc/xz/api/index.html create mode 100644 xz-install/share/doc/xz/api/index_8h.html create mode 100644 xz-install/share/doc/xz/api/index__hash_8h.html create mode 100644 xz-install/share/doc/xz/api/lzma12_8h.html create mode 100644 xz-install/share/doc/xz/api/lzma_8h.html create mode 100644 xz-install/share/doc/xz/api/nav_f.png create mode 100644 xz-install/share/doc/xz/api/nav_fd.png create mode 100644 xz-install/share/doc/xz/api/nav_g.png create mode 100644 xz-install/share/doc/xz/api/nav_h.png create mode 100644 xz-install/share/doc/xz/api/nav_hd.png create mode 100644 xz-install/share/doc/xz/api/open.png create mode 100644 xz-install/share/doc/xz/api/splitbar.png create mode 100644 xz-install/share/doc/xz/api/splitbard.png create mode 100644 xz-install/share/doc/xz/api/stream__flags_8h.html create mode 100644 xz-install/share/doc/xz/api/structlzma__allocator.html create mode 100644 xz-install/share/doc/xz/api/structlzma__block.html create mode 100644 xz-install/share/doc/xz/api/structlzma__filter.html create mode 100644 xz-install/share/doc/xz/api/structlzma__index__iter.html create mode 100644 xz-install/share/doc/xz/api/structlzma__mt.html create mode 100644 xz-install/share/doc/xz/api/structlzma__options__bcj.html create mode 100644 xz-install/share/doc/xz/api/structlzma__options__delta.html create mode 100644 xz-install/share/doc/xz/api/structlzma__options__lzma.html create mode 100644 xz-install/share/doc/xz/api/structlzma__stream.html create mode 100644 xz-install/share/doc/xz/api/structlzma__stream__flags.html create mode 100644 xz-install/share/doc/xz/api/sync_off.png create mode 100644 xz-install/share/doc/xz/api/sync_on.png create mode 100644 xz-install/share/doc/xz/api/tab_a.png create mode 100644 xz-install/share/doc/xz/api/tab_ad.png create mode 100644 xz-install/share/doc/xz/api/tab_b.png create mode 100644 xz-install/share/doc/xz/api/tab_bd.png create mode 100644 xz-install/share/doc/xz/api/tab_h.png create mode 100644 xz-install/share/doc/xz/api/tab_hd.png create mode 100644 xz-install/share/doc/xz/api/tab_s.png create mode 100644 xz-install/share/doc/xz/api/tab_sd.png create mode 100644 xz-install/share/doc/xz/api/tabs.css create mode 100644 xz-install/share/doc/xz/api/version_8h.html create mode 100644 xz-install/share/doc/xz/api/vli_8h.html create mode 100644 xz-install/share/doc/xz/examples/00_README.txt create mode 100644 xz-install/share/doc/xz/examples/01_compress_easy.c create mode 100644 xz-install/share/doc/xz/examples/02_decompress.c create mode 100644 xz-install/share/doc/xz/examples/03_compress_custom.c create mode 100644 xz-install/share/doc/xz/examples/04_compress_easy_mt.c create mode 100644 xz-install/share/doc/xz/examples/Makefile create mode 100644 xz-install/share/doc/xz/examples_old/xz_pipe_comp.c create mode 100644 xz-install/share/doc/xz/examples_old/xz_pipe_decomp.c create mode 100644 xz-install/share/doc/xz/faq.txt create mode 100644 xz-install/share/doc/xz/history.txt create mode 100644 xz-install/share/doc/xz/lzma-file-format.txt create mode 100644 xz-install/share/doc/xz/xz-file-format.txt create mode 120000 xz-install/share/man/man1/lzcat.1 create mode 120000 xz-install/share/man/man1/lzcmp.1 create mode 120000 xz-install/share/man/man1/lzdiff.1 create mode 120000 xz-install/share/man/man1/lzegrep.1 create mode 120000 xz-install/share/man/man1/lzfgrep.1 create mode 120000 xz-install/share/man/man1/lzgrep.1 create mode 120000 xz-install/share/man/man1/lzless.1 create mode 120000 xz-install/share/man/man1/lzma.1 create mode 120000 xz-install/share/man/man1/lzmadec.1 create mode 100644 xz-install/share/man/man1/lzmainfo.1 create mode 120000 xz-install/share/man/man1/lzmore.1 create mode 120000 xz-install/share/man/man1/unlzma.1 create mode 120000 xz-install/share/man/man1/unxz.1 create mode 100644 xz-install/share/man/man1/xz.1 create mode 120000 xz-install/share/man/man1/xzcat.1 create mode 120000 xz-install/share/man/man1/xzcmp.1 create mode 100644 xz-install/share/man/man1/xzdec.1 create mode 100644 xz-install/share/man/man1/xzdiff.1 create mode 120000 xz-install/share/man/man1/xzegrep.1 create mode 120000 xz-install/share/man/man1/xzfgrep.1 create mode 100644 xz-install/share/man/man1/xzgrep.1 create mode 100644 xz-install/share/man/man1/xzless.1 create mode 100644 xz-install/share/man/man1/xzmore.1 diff --git a/test_file.txt b/test_file.txt new file mode 100644 index 000000000..270a2ce0a --- /dev/null +++ b/test_file.txt @@ -0,0 +1 @@ +Test content for XZ compression diff --git a/xz-5.4.5.tar.gz b/xz-5.4.5.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..3dc4c809639c70490e3524d97e102f167bd29284 GIT binary patch literal 2884510 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

Ymc&)SK0@_7a26nC}o~3N}hyV(~ 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 Ta7D@QWfk8F4sducs~s^^XaM0u)VyWBl-q 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%0DDTLX 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 z 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%0AygM}f=S3ap7W=Q~??1p2i^s0- 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

&?Sd%qEJc32F#17{1hW@pUN{PFw%jNe$~nVk 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

DHu*D6czkcL={Hwk} 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 z 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

QBLT@;3>*7nqOsxRO<~& zQsJ1$h1{U#LV zIksb{uK7bVu6etbxfNL%$g)1#Ihg)3YgML<@{|`v^<)$@YSd7$7%s6NY5n$Cf|jKI z8~1I%@oHP3pQ6#r7MkYgkDw(Jg4e8~NF|nZB$Q6K=bdInl9d86lTd7*)sk0`n8?0l z0rW_PP_EoHhkQi>#Og*xpuL@t=8kW*_udwnv)Np6G8(n15=XFBf%NjXSfe!w>nny9 z!>1Pz5roYilN5&PqS6~4ynShj*v1z)PEIoXZPBBTv-KV^$*_pfJ27~C)1A*AXEDQO z%UMAmt+@6i`?oh;8Kg01ikk@!=XSzVQU?Uf&? zUszGI`PLQ{T@rp?Z?VdH)8tkD_=({6ZIr|2?=VG_#|E)bHURxcz$Y?SVAeA7M%HDR zJ#rDa)*sswrTdvMKN%L1xG$p&fx@N~EC*-npG+HkI+#C=JBXi$G|RAx7EqZI4AfE& zeqF9_?f1-1WrAhCJ<4(|#@DOMjL9q4t)yy@17`$nW7a3!!+@=2T1mrPR0$CEdQqF5P(|a#xyi&vjPD4ZUK%yM)w6c%Kj_( zUr$v32cuVinW$!GWccq*R5SjwM71!j$e;QN3ct@(tN!Ow)s{Ba{|njb|8%U{%=OQq zYEye7qyIzEYG!&yroW0-o2e--wQbTH)>J81{9r0$nQ1cDJX0ercPcdnvja?1jvXaZ zOa&q$@*|3^B;p$uLhr*ql$XyeHCTw&Fwtbs%zm6-om-sCZfDWH=W!AC$Z@!Gm~`-2 z2lM88oYdHIUwZ4jdb1;|fj|!FPwQaCXD2bR<1@eQMV|VqsjFu{&xAO?(+XAe*5qu8 z8ww{;v}Hh(c`VOhWSq=EkrLIO%0D+tL<^}m_6Yqr$n}j?MWuGPk}M};<;JJsakvaO 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

Nj6SQz{rQwz7_LvbHWi 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

84nZH0hUjg6H>OD*=6{@gk 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≻vr!huCYvazhXXJ;7G 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Π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ΞGpe{NlvJ91?RNH7TK0bTpI0Q^fEny9RI5 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�>sz2&m` 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%0D3}mH-m;mOMp(vO2|%-uThlm+IF@Zd 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‡b8#`qZH}ci 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�$oLLi&^| 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�t$-QC&wk!CZ{VN9F#o6d z|DT@ozmfmHyQ5t03i03N?HwI|_W%De{&}W!-{`<~*1C?tZUjd^RXDmAT0%y2($>xzCNU;o> znR?82e9v{ej(=>a#ls_`$13B`@pHBvTFl37sm_>(wmjzIcB44}9RWQ{VRQf-9y*M` zZp9V0CzVcgzhHNg^=SP;r5ufbZ^;}42MQP~prCqAnF0gZHfXminO|gEIRg#n14aYe z_@)Xyp=OQcN~p@OZ^>}wUnHr{V%x{=-nm?DLZOuQLtxyuDELLAylJC-?6Zk29`t8e zk3%R9w8s@@0DZgn*t|eh7A833c_v4d4G&BjRU7;QOC>T~SFBpQF0b@xGvyHW6E{15sUa9cb zeXuJKmxnUD#32lb*1FIJc}m0uK&~trmaNM?_YJ!)5Ib3gy-DkRAG^IQPx@VF+X$^P z^w}BNYo_=M9PWDV0*p=1S;L4~Jaf1cGCK+yYK zT`71NbQr|IfVVbOHQFvBCvuu(wyg)_8qXn-VD9d*;c&MZcO5# zVhbCDUW;`C->T<9O!!^FUY`?__&e|~;^rVps#lys+-|5157w3)@FWeagFQ!A*CdA( zjVwaj+3e07@4R(5XZ7X;My8{ebB($SVazAq5T(4qAm|deehYRD>aam7@Zz74lINwQ z{e&N=Bfy@7Rkdc$KYl+WI7ccF4RiJ}=@+*_45*ftV{hMW`%QNEbCBs<)x7ThlIh&8 ztbN~syuanpMBXL(OmuhRa!q|d4IcULPlTe-wO4c}w>TJyQyk>tX|;pO@Q{Sl)5M^3 z57>Kl-%56S{kvuw_P9MYE5)}%FhAl`!_Wkmg4ga8$$C$efJJ;+%_BOxXLIfSc51Ly9ynO< zIfOOrgaSF_wx?_THtsC^38cYY4C=BeLlG1Y!NI{LgwdUZ=_^^WPmvE5l*gSL_18OJ z7<2Gs#YK$Fczek0)ezpbgwZk#?41-uir3}u&-$&;vZ3KGB3w9D-8B8Z%Ti>lIzCYw zEWw{gYJ(zw{{3IrBZErozu!fy-1jH_7cGjCn3IZF^a|SN{t^B6e~FE+f4^HIQ4uJv zHX1--TqhuW@%J>Yn{hc#MRy#XQSW70{|}WgXIYn!=PdrV)V6mAKGoT;W5yJ$!@cw> zK!8SFz7pAGp>;d3p~5(o8!PCiEy1lg9^a59HJ4d` zG=rm#Hvy8}@?_|d629&m1zuvnOoj^cI$p!8X~>X+d4v$bc$!_W*2GTm`ow4n*Q*?C zuE1MSs+(=#*Rt2Myh@u$rp^J7jZ7oQGh-#*C#>#$Q8KKc;k$JXM}pTJW(7>*JrW?6 zv-X1r^KFP^OZ5~l;Pqz^>N2-2EBv0ee%u2B%2~|?ph97t+cdMg#PgEMqBwyXKO-%_ zWtTWW_3x1A%4mk-C(Q*nhrtK+Wkz}3#SMZ-l3$#{TJeN1a_?j${X@xICzn>tA?w2^sfJWw2eH|+beesm_ z^yhy`o$Bl`f6WTJ#*TJTK2d=(Z6$R+g`6Y1OHCd^wfW@DDc?$aj`EHU&bKJ>R!Yr< zkI`2rQGnnjq$n4h+z0D6gtn7Rj42y1f%C}9zXE?oL+dpY_+Y_&@l$`gK;gj6x*lX1 zt;W;vNtRBm@d0M`t9p)Z(WcML%j78 zvl_`0l;#vAK;R#W1#>09Dd6ZMcx3DAl5zA6)g=lne)kLO>j3x^F*rq6+Vi1TYDyM^Kb$C+XQ68ODU%yuM7{yUv`+B1}k5rTpBsRfx>0Fhmx6;-{GKew*{G!3YJcm zfxy!3%itRc%Ru~Rl!IgqNfP~N0e`E+IGT|5f|5tyXLr;6!~qxe?s2eiA#xT_FgoJP9>d4Hr$h8nQZHUre+n(ypB`Nx$Cm64y4$e(1E}c98zK>dL1R{4DNiT z24;~6U-Nu-aBts>`k{bniO#o>^oiqYcr*)cP!Saj;v22J?Yk%>fvqz5j}v3#L|E|P zl8pncfN!lh45pnn327-Bfl>y%*bWA_7UCJKo6TJulKYlmv{spMzDscW-5|wU=Yk;O z%__(g$C|;pxr;!mLQ6Ge6ctZ|bD`i)Fyd8ZzH$Swm35MeHTlvxBLc2dW>R9u6?l;| zmuPJJBQd`f-)4|k?63eu@MM7JZx&^ry78>CzRd5T+b)O<0wKw^Okcg&!&*aO<*pgrBeMBIRBQ<-{)oJ!G3a=be3!Eek1vy>ql1!W_m1vMbo$2E7+ zdy|4W|7LEUQM1Tl)c094Tf>hDdrB#=-`OA!r(V(ApM^Qdyyw<1p*i(lj%KM%Cka7> zf4#>Ron_NdR;VPIMFbMs9-7VY6fQZ(9&V`j(R_zoth1zDsCJ#VF*G~1>ad13`@K5n zPL@ZG|#9QptKJ9${0Q24Xl?kJWm!+Tv%gKorYDiPEWSS_ z0lWABos@emTD5y_cJ9gRixJJDl@`#4@OH`q2x>7@)y|8>Cnv}kST1}+E<}WAL2M4q zumA}Jb2&$b<|-P$OZID_X<+2US1HySMpK{u{%i_D4q#AhIO++>&H&226)>#K5=^tM@rBCL?`wBWDiMN?%n>!>0S4Zp6$Ivi(aRL`)vpJl;~&a z+A-L9^FYuX8U4oqM?^eL5n&d|7wy)C_e_acX$e zLfgxND5B64D?kDMK(E`7UbmqduUo)G;#?b+yhXzCkFjuzMeahC0H6t9gaSdJnTnq0 z))P%k1k6A}D|H?r3Bf{ULh1_(P8DrlC%CA6Qa`z6IfN&0&u%MhPo^^-L=U`2u2~h= z7_Kh#@%0`g=QN4T!Z|EAc{PR>Qb zW^imw!QGvyDTW<7^OLb`VZa;r+R$ zcakhXh%VB>xdqJ$MDDa_S}FvHA~?$IMPUOgQ`UP)nu~?hS^6S$nZ(ZQI0qqgS>RDl zOiUI>=$%o3ehwWeW=klsyT3nc*5@iM3A3Z3O1C7>c>AOdKuSrTz)NZRwxc6}m?K(H zh=-Jxwxop_x$9u|XL)gh7YE5o$?%TcSV%^1E~4=w^EtRrz7Qv1J}X4CIlRmgNAC$S6ERy^r9Q1p!sbwPnZjq6 zrMII$LbFD94=Ro-04KFEtnphrAdX7KOhHY-@Lp7zf6-a4^uM}m|J z_$rc9+;$96`+hc4Nrka4@R)FK_N^^5p`L>QW$-)!SVe{WQ#7sG*I=NA?7oE^5hGY%i)i!UI?qfL2>$7uuXPl?XMm5a!A62y3`aWv+10e z;E3`amv&nx!y;=y3C;clCpoz_i}(@*9kFgHLW|uL%5E2m5lvgb zic%Kkw4S7Jm>F~9q~cPLdtnJxqm%%b?qG>5I8|rM6ay3}x+n2c8O%+lz6fB4qI77Y zpGXvG-je%PwWMz=z*(AN(C&r1vC)6O9@2-IC>zMgc!oA6ru00+X_=s`J8bqW!Zf(5Bb4get8BQv!&zUi2 z4IFdcIEw&NtxuC*UDq{Or^Bsp$&zAiy^YhntX9smbkWP@@t-dR$Tr7|8f38eSgfYu zSJuE$w?&esJ>hy(m?$BRU15L}dsw0viWhp;6el73Tq3u)Sym-4qR&pE$I>tXT6{vm z4Fh}3;}DBBn3rdOct~1Y^8c%Y>);(~(be#?dc(I}mkF5i1NUsa7DWdl+IJDzaI!VT z!dlxT2RIR%VO}YnL=<5^2I5NxfS-*WuZ)gWt(#qgkK@b?@jFi9?!J}0royBgKe>?i zrw@X(o7=%eI04Gnbz@aXt61m+55OjB2)h1?KLB5Yw$7(U0$(m-ClJh+Zc2WN)bWsd zLDmJhj4G@0ND}nN;c=Y*A#-(z&=|5pAvt9#HS=+9BXUlzrJh<%Wk>eKW?S;XKxuEbPyn67$df#3Q9?gA@G1@I}VWr{0l->sjyu&mz z28I>ljF_sKFN-e=1rPSh{uJPAXOM3D6di5H2X1FN;eHk-hQM{~T$P2Xs{)ndPHTy9 zkWtX>V-ueL!2Ec)_6}=!{L4D@OtG*RaiS@Aq@g5kDxIJmMKS~6Pd#EM%_b1gvegwt z8l72io>Hen#6Yo4)(qQ-w-|-tu&juOhoIfg3M^y~3fbd*T&HuvHbFfVn6?Q5QQ^Cc z@lwfATj+JbNEtQ4piOQj-x|Y5#D}Hf?DZFN9Z5BsTEVUHWo1R|5>#Zye`8U0f3$ju z^BP+?-kNS*??Zl-2>jlf`NVB}MOp-m*4-47tX3h^4HqiL`p9naw5HPLb!0k)F;q-6 zysBHDCAwOZxGG;!15RvE>i*vR>=&!Oikr-x@O?KC1c3K~-$RoA- zHs6mig8WTNE}cdTVo7#AW(?U8M-~H@lJqnsh8r-iqFahS>hL{I>jVT zX0Zu^N#16E7n~$^#lW|xqrxw-nn{;K5U472C1zZD>~^3~-pu=%5k)k_o??Jr#k&r5 zmY`fo_{KB3dsAPJn!WdUH(^WQYapLg-F#hNwMZb)++k&uYJk@*q`~t{2-d;wIJ8$- zcGypsiWy5n9oh9u>!FpQk>P4lHVn+ThmV$QD}l z-u{H$uT3nh&!$*RMf2N;BrPR>>Z*Je z>e4K)zJ|XPal+>vjuby)PPk@mYdGtj25+Dc;VsAIlVx)v`G&7957B75@==Zb5;)3Ol6O`?>1&J^Jxh<`aGj^GEbzK;h-5d zCTIzjzsyLxH8}~s{&3pGG{aZ?c56iloa4qTg;20%B3fy$5`oz@2d{y&Synz0gy@C17G7d~Vc@B-2z z9OW$ut7^QTTyZKbgzojkZCIqhIUEEBEE^|Qn$g@XEb-AQNgY`nwrQrkCE-+QX823O zyOd&Sa;1>#9J%ZC#_K)wp1fg#o{VwKy9jy+$ zDU>3qZ$=i1MfCXJ^^=Z7V*wg`>MG7ZrRGkFax)cJ!IH|jYE5zy{P*ZEGCfzlsumQj zNlc^D9aXM2=bh-WFu%y@RXuAi1=SFv(iT#600BWd*knuOq4SJ!3NnhsD?%=LrC1W_ ze@XM%pB`bcvw2bGp3vlQ?jjo)9q8)BS-YgpErkVNc_@{Z1QZmU1{r7X_MSr+)& zD)V@wu=v15kPKu9qOyj9219 z5JAJiXGJQ5Ccm+S;7Q!I#|D`c5Ez-IE}l+apxWl4nfbP$uDe6KMY>vmvSHPKO4LtQ z%s++@8N(JVKE;w)EeUfwRbj*7FZc*5!Zr{bajh5^TBoCNX26#g!M2pw&6>)^xb~$% zRCCEJU7}!;CT#P7Ah8daPB>x>Rxl&bvY=3DA~L5i9_T`jA|67_ymbsPF=vQq(!8&z+bnJx!wR5QWWqCag>g1^TBc! zzps=?&5j{4vl0J<|K2sP6r#XIlsCmgfFOIme>vB+#^~NmC2!Etusmc*LhA&bJ9Xid zY&%76$-EO@_tyRHeaoP3zk^PHUGy$@X7LL7;}}JA()@20_uUL_Vw~Jt?BQrw6V+Cz z#2QvHm0)5znq)Z-`EZ+5?NO~dNvmJTFRXa}>hMsfI^Q5e+cFj5?pV(r&m_j5~{vneN(U9e;&1 zVvSWK{Na-HRu~S6F(gD=zArD+#Hi}JL?HyrO8^PHUr<#}O6bop!F^82R&PRW1)R+3 z^>PvMJvHU&s^6hMn0G#7ih@aZ4tu|VGKa{Vt-@uPgK@B}8B2daauWG?lzgUXm~Ca5 zL?Su~%T!+coOj{SoM?r++uJ$4o)1;aEGbPP&P1D23EBin1pk*>j^Mn79KfXWdEORV zSb!jkMCo@gC7AH{x9|`bkfz((4m9u0=V3|;QcC=Iyzgr%MIl1p*?DCzCPk`buDGO1 z=#r2=_yMhZh52o&;FCugXZZnKCTW9eVtz{MR2DJa(_)JAy4>puI5Z_)TcW@e^QK^* zh~VL#i|p!&Vfuldsw>@TW|nzQX5p3X;(M*WGd@~9hQDf6n|(X&bXE$#q1cZ93VpmK zhOU-Sf{Aln7lY2bVC?AvClrz{`J?wGt!!g1@+b?L%`2gQC?enVlCz45&vo_=lItoG zO|lR_&?Ih(Pec~Hq!%9pxLuv@cd4@8z60YTF`le&l8z(w5gHUlyE&J~V!W8S-PTND zhP>O1*h3BIE_tuQ`0U4-PodhN!ZYPLu5vtg1#<^Zvw5;k#_nCt0wIdy_c^fZE(z8^ z!|Na;pLlf7vawMTPHmm8R)5?0Ng}z237nOM78c`V9t%_9)FXhgqG*|g&TPV}iKk7| z!Em~Ywn8&<%n4h|eaAAlggv}X!B))?#VB&i;zD^(Yv$m*FY|!Af>;;m{yAauMc9JV zz#!`l3<#&$Hv#`1IADa#!EC&8sHLy9FB{1Df7x)(|7*`4Ty>B4y;vIm*9NyM95wnEe#Dp%&Ec#TEgwl%+1(lmWJ=cWAid z^>yP7kcXeL$(WMN*+W^RORE_PGzV29)mvt_AA;@XVZg=XzzQ9K(8U%+5;!ld7zyfe zIc6k49ENZpP=w@r3HrbI+n`V)-bPgl!~6(Q7gm#oBQhQ&mELe0nLEWMph_{NMjj`x zI9`%`!7?H0gnCzD$PrN{LMk38%}YV&1ZGzmQE{casGX)!!g8h-68%{)t}If(Re3L; zy<<)o@7X;O42*<`8T$piX1AViV!8 z-{CGenaa6e%Np&I$8~o$*DodwypwrlIHD48OJQ-2rDn?hmAoizy^A+X-}##KGRVoB zid0eSs;3ObDKLh;td)Dr3`td?`CeBP-LbqRg(nPLM*3QlL36qO4B9uq_oAmY7LvjqWGyEWBf@%F^uI#Gv$y zg_>N9F7`ZK5u#4Pzxqi5jhQmi2P%=xX}9=o?Tq#6Z}`_?fydbyVVA<>NXyVhWy_YD z@jy$_AEjI``KI+fQP1;k-w&Z&6p~0l?^=@HcX>V}@+cJ%dg+_qccaJQo)%|niu%^7 zBTA{hbjSXz0{00?VlsiH`dgp|0WX_(LwqUEygx%3s z?n>FPRcFNRFfFEx*s5!Md)h|rR$tjsV8&LRmAbvaj#XdTQDDecl_k5Q(2}hxQ+7w8 zDO**x?2hJb*+k8&qGAjdTt|kht^VV5n8ru6xIA!tE1LbM4krg)m@qqcS{X+hC_lsb z!F1FCf0t6cNia(ZDXgqb*Itji_Ill4Q{H4hYqLVE^6dv+%saf_9ID#i1kpB|wQ8X- zO9gpODG&6Dvt&DT=Qy^OmJEw&M!67V9t7qTJIfZ+q%umAqC{#Y(ox_evTYloOUQ4o zhtCxol|w@#18)Lf*?Uz<|5P_c1HO^^d3>UH2$CofT~VxAiWhjv|^z%-=FPobBA81mw!`;2vcZXMY&KnS;5BAtOg&e;}Ly> zT1W)b)1ncxV;vJQHr9e{b5Y!~I;b}03<#4XL_L*t_P11ryM@no zt&s)1)iJY%Lf7~@iqvw(_G+=GJP}36*iz}f^p*oTN_AnK$Ma&dgzxGuoH4Y_6>id0(>*21;BJ*oF zo}}y%uUKj_f)=vi?D63FpO&#fWvjHr^6O+x0TB}OL>VkK9 zHB&DLPDKIyvZzvf13LC7{9tDcdFq;SEMU!{hO271D(h_zm+!^MiOj!*@$?X|(WUDu z#@Db&(v~hocNnNg86J9~+*p&!B#Hwf#^6L9*s7v{V%#xHXMdns4ON>4$bc+#kr&j^ z@HopQ*F1TmB-fD`cKyujMiZ6=Zt&P5fPy3mivSBa)v*ccq!3Dq{+gv;7gBB{o2T{g zs{VRd>tsD3!m^V&xXgCja^5fr(}|%A_3uGwE-b91 zK-C*vO`;q-@Px(1oeJh1NzJ^Gq}0(5sDzqkP*|gqUY6&WNx?OI9QC(M)tBP^zoJ|t z*a5{F@6K|(#6jYEO13z~CDfBY*0PZInKLJ;UsCLaiywo^)*_WjoTg9^N75IW;}ki` zq@Q^HViWX6vZO1k&gm*0Sy66avp$*Dl7RX#0Zxxxar|5QWnoG7sC_f1M3ut3k1^)x zoRH8TU06Cjr|@{NGpndIQCHz8Z2mZAa{@dA2Pk79$SsivR zi-vKVX-7w7KE?*Oy>H89PxkN1drEn^qm=K!KeA5x3I6Stzk(rNcCp0A^cSQLfY0{W zG)+UM8(ZwSdc(khIp<>oXDkE5MaVDs4)=}c}C4`ws zS;Kx&5*K9@TKFic2lp++ebtrj4ka6=&?wr*qI!>6GL`?f4SYEz3aoC(?I~cULBae! zPRQ-Z=@yXep&CeT-`iQ?eV|>l8W*4-0SFtOvf`gMda(yh%JjsHY5}CYq#0f78r}l$ zDCSd4Acj>5O3vBwD|AqbDN6tHTnDP_p4tzO|7waa0)0EKYknn#X`hIC1aSXgE!Yzbe~X7zmc7 zD1;?Gv3m090!EmI*|SLY47PUmc(vMR{dXiisJ@1qcARF9v#m-lM|+L9J3Dk4)VdXu z#C1iJy5`m;>l?^o~#opJiXIAc;S=#*uUeCRgVqT zj@8Ed+oYI_P)Ns7cHvlI=*e?K~o1mvXv92 zUUNCzX(O*_+SLYhC739LVvjz`6)AR=>IG`>&LmE*na=q4x=7NvWD#pHlv~abP*i*> zQ^oG0a-)uSs(|V@7@3u|U!*>-!)pafu6QZeMZsZ~@b9N~HCqEEpu7uhVwo>b(4r$Y zZ68>D|5l(Q5q{lsK(9w?SrgF+S1;Lx1rv)}XV)=K!Fow3lOdd|&>@^oUumK)L_I7} zk{!^M3{BOv)r1wQ0##-3A1B7f3rmT6!&_2a>GPsXaZTe(pSm>F@onQae zt6u&?Q}(QN4BVlj3AzAhR)=Vbz~W3*wrcIm^{Bi~DZz8VsnF!H67G3%lD`@AFy1)A6&P|MJDXFYSKgmDdlFg@=j*&i{9U%ezOm zoJ9c&{jfhG#idG>q`wpRWRyd7+mEI=&J}jLeU+;uIG@|B@J!i6m^&T|Q>x&rbt1U# zvq>FK5rZ*}3>~`)`90oaA{(+)evMfwEuHzx zwLP@^X_Z=C+G{Duej?FEJhWoOE?HJXR+8p4x2%vg&@RRcv0WV;%o)|VQkr7|DuH|E zvu4g?1eA9&)fJX~I=%?s+o0%T3K%blUMrD;e2>9R%DR%?Ly#_@_gg`znUKKxoAhH< z$U3yh?$tTlrJ(LJ+u_;Pl;%cUF#(s_ssJ_kyemkVPn)wfXOiXdn~a_tn#iEPFvAVJN5_IZB078nnM+4O>na~d1d#h$SrHU;!JJPg6+eDkR?!` z5v0^XCGSh>8Q0HMo~x+_r93rYL~3CsmxIrgr6AP&3F~@e1(6J1GcR|bZiJMaH+D+E z+HB&|4QkMPA-_3&e(`stsoxU7g7>-{K+5*sZL@~{4Q4B`M zI^}BDepV@)he?Ni4t%M2h&Q=+4UY*0!Z^6jbQ>ssalaO?8K-t^&6$=s4|No{_{~oU zlPOr7cAprF4XOJT^Mpuz=Q4tLz0oEV6+rm10?28^3VBC>pJD!->>0OUkCov7kU($0!qPBKT5W!X zn+Tp2Fv@GsP!@L7Bf4Y)Vc804iop8n7L(Fa)c3o10!bNZIE5CRStPhArp(asWCKiZ zqBH*4+7JXtz>G`ArWs)1{cN7SIkGRG(4x36<@w0$aVt9~;4_tz3Kxm;%M0i=mFQXL zN-4~)Y2>X*cw;&!nlJg;bciV_-ASnC@5wD(jml8kFJ-C<4N<*9_1DFH+1#P^?X2nI z!nFlU@;E?-$8|b9fu7?Vp0ZR?cn$O{p2rL8D0eeGiQ0;>vQxB^>)r zrVu9dURql(KhbyHg(T_qkc;QG08R-?BzgXEg=+L5PcG;0UW78qnyM<9tWd3`&Fik< zplq}?EtbcRj#ev!W3Jes{#ICKaO*$_ju;C0Qr%i<4KLE7Ad=tdD3Y4gc5Q@#DUbjv zHbvE13Q)>6fp0bQbLtyFL71`cyJjmbqb-Skq|;y@2;);05y(?LBieI5aA^xiRSv44 zjMMr;uz6gi#U?V?Y>DL+0oY+S=vfj*Ud;^_6E^qRN=xfBAKOi)lCra?wZLx)<5t7FOLp-ExnEG0<+30;VG(>{hY zwBO-~iPmA&Rc!KZJH6Bil$24%Lo!eHegi~X01mnzZLh{g zMJx-mlq^h$y|ODZA8g+``>~FnR;Lk7Jx<4yLfm&;327q9se z4)+Q7Nh$Mv1d5Q%-F5>=#H;>13fdPU*xg=6+8wWAwClw!afp zaMw{``7ueJ0Y|er+$+@AV7YdUVm5`z40VWgsX_}kNijCb*xIrZLW1s2<788JqiX?VaM%_GvIrPkVQJM*_N^#ts+4(^Jlf#<+3I z77|p{dm`na37&$-4XVH^C|XqrvGcJFBzzKI-Xf%)qT5+P_?NrIDT|0ky@%u-!dz;ojmou9}#im&pNgK=3g~mhbs%8l%R7KFjkZ2>e43akhrbgPju(VdX z9GfQMPq5Z__({^(&98@ChcK+)t!5A}6rdv*|sGCZFs| z)tK2b*_DcZii}M5F+}?$dt)#Dh(~ox><$I$ew6ptKnvQ+?#$W`9?Z8vKD!g*Fd)C! z?OIgowvp+AD3YyJ`1Rm}VFvlfQnT<|TbQj#fl34dQq}GPRB~N4sW`BJgM$mtlDlvq zcgdM#S=3KHWwPiou z1UL?&3#@I~+{xhPECtk{et~A4%pap(>Rkz0IDd*PEwFi=6lFZd|r39VI3Xfj>1wf|$2ft~s)fyDGr87by9ME}Yg;_b+4)?5( zl=UaNVF zbM2^vrdcWQ?d50sHQ3j^g_P2*+!K#KMrBbliDdmUZHRGO!gM_16ro^c3I&`+>kljG z?Knzh^ci>^+duh-TyfJWpAUOI)m-?_tUe)()kf_JUk;8Ya#6$X*2GfKGsFpn1Dq}P z#?z&8T3b3dg4?a}aCT(^MMITCcQbUjh;}G}-I7xhb&!I}-(ko7EyS6oL61tR1IZTe zg=7bFj89w2Ro9jB%6Gt2q*4)x@jfO+V#;6^iYtO9YwLpTfZ%k}tQX?F12SdYy&(O* zh2u&0q1Rw0Hn3Me#?~=VMzx2nkmBgi1y*K3-%D(T(bPKA;f{Gkl>s+$ZUlh&xFMNmaWCR?5bLohAid?=? z0R3?nl-MTt>N|mhPti`OMA|3j!s0!7*%vbu?YN_gd&f>dl_?hvj$GS;#wm#$^+;X4 zBt8Y=Npij3_n2N;P~0IahFMs1>t~OmxjOM8D|YNro@-QTAao0a0K1g?-Foq`G_#_< z_1PVrz&)9)^i)cqxn21h7&B$_trBimvb?E47_Ig-p*BrV&T=s+ZZFlMax}^ zA~FuNoO${l=P01-?5(#ja~JnAiiUd4h#B%$b@b54Sd}66U`W3YdApqDq}(W(PR_G< zfdm*oq4PIX@9UgP8&}Zv%(5hSNFn`(-aA%-NX_4ypB=;|p6P!`)ChuSJDYtLz_a&l zE}R}1!okXNjWC=4N;B3DSDi_!FdpY$146Z!uXhe}VpSg#T8wqTQU8hKcZr=%lT>5} zPGO)#my(bg7eY=Dg{o>GuFsZ%s~CzF)B*Ak=|BMv3rMGEN}cegaX``+nt*m*I#OS~ ztRc`CoCA8+{D@E3_lk>p&Eka=38b&>k)NGz2Q1W#PI2x4ur?GDou~Hz_Ze}Vj!$DQ z$er@0B1?q6r2|)+s4vVQm*z+cMTGDko6FoJ2lF9*aj$N$DuN>|$dENV#{K%&JpOn` z6b3E}y@Z+NlPTHEY~IWt!x94^$W=?!stRW#jPFYnYwm_X=WXFFUnntBQZ;zpgCz>w zo=b2~`n{rC;V!4}dSNtOnlxw18AALx?~gvyajZZz=)0JnPo>ka*6TXwtzsaaJkB70 zyb+M#BZF36uHSOc8Z=8muI&nvsCE=v^kiJU>Pi-k+2 zenP4Gc^!|R8Pc>1O9f|4aTRa@sc43*m#0DK3*K1u(lHXFi!GO_L?LSBF`nfHLm^Zyh_%qcbn`bZ!yhGT%jZBr`%DFn))j5=5^sgf@>cHg;)7q1x4_HL(+iF zUq}uf`D@9r@sbb=%Y!7hBfG)wc5&c6tC#*K15XA3_*H!9x~u3 z7Cm&Q<|wcfJAOFV6Y-CUB7P&>@lOmpaed}hD#WdRlnG*+v zkQmC$RX{E$T6K%KQoS0Ct*PRx2?_H77i}*(4uOYgEAycO@>%_XdeO%i0~4R##6YZz zqdqtxD;#NY;WlLt`Z|ES&r=05!!4}xG_uZLm?wrq!q?n>od31?dkg>2-&Stb>wtW@ zsggUKkHRIFzr%itDzeJy?SO}@HwULNDX*aYI`vBl#ybVxDlIl_8jG4YTVX7#Kiy8* z92#I%b7+9`w>(`inIm)ql>~Jdg}4#RjDg&v8KJ@!bGGtneCZVAzMJ=U80}&yEl1&@ z|2;XIcYD~f;- z1+=2cGEu3T+oYS8f-rCD@k|-8pcJind92|tt>1z*m3&7)P`9qMe-ev65UQ{*(ErS* zq`qw_)D4bLnQ7t(i5<3oLq&!o3CWZQ|ir-@hYeia?!O%7Pv>Zj|nodySq~H+{D2Z<;3=IgNa)%3dO2@(pwkT!SE6lI&fYMj- z!+JnA4@y0%To_g=HB-&Ft7NZ(rjC-s>?EjkoU~g4ZL*lM)zt-oPs!7spw-+`rO9B6 z#E7df64uhyngEshaJnU%%EKxj%jEcKSm@jcHO64(FSwyU#GP-4?k>m{+n)tKLJ&{;QxE4W-l93XY3b zaQw-%0)_Q3yY-26f*f}2)6fYzw8j0(agIpDkOE61DFw9bNeqw@Tkv+di|d5=TC%Mi zUrnXC@Ax5hW*W%?$D&!HOewliG$^+hjvwN^fUjz9FZ`dn?45eq4;*S@+0i6KDO9}v zE>guA8}S0`>e`l^prK&&b0^5hXOVQ~6Q^D**V~^hX#C*vJ=gh*&gZ&YDIwp|ANn$v z;nz3lS|EP1NsLo4w@#3_i&b4p`M!g%_P6cW z(X+F^?XODt8?V1)erhc>Po|#JG4`wG>TBvdR+zqX^N_M&*|p;I(<$mqxwp}l$%!q; zbfO%DYU*tQ*j(g1a;wV5|2ng(c`K54c_tX^NUjzgJE(-jXT217!_h9BRkP(b?bk$@ zEwDd?4WZL(S+3kd>5wYErYkVz#U!4*bCqRkPVQ9T0Br1-fI*de!M1BkU=WHXF*%un zFuD3zUL`YkjjdD7&5*a(b8;qgnv$#XzHr4dqF&0rt8MD;xw=#eaj4GSb;l0#U5Bns zrq9@tUsQyloWOg64&qCOFPNDSm{9Bk42yLw zWIoXnpwplt6ho%!aQ#ajm?opjTNCXLHSMaw`H&|!u z%rC3RF`XEb`a#0>B;CSyMzgD!GvvQRE%&V6mjD1#C>+`yi8LE^Xh4JL>~Eu!-xWx4 zlD*pA2T-bL*-Rjpwce%G`LKn9qQzsk3__o&Pl^{XE} zmxJ;^LB78D!5;JAU+2Bu{FQVg&#N}n%yu_Bvn7~Sn%?d|&GdHv;iea=vJ_5lZ_$I# ztLN;L9vbh&DV_DC?5dWq_wA(qDWJGqJP1M~$jpOK^7r1^Ny_= z1O9|u9)^^kA*wQVPwW`0Ro`h%x@)}RKk@=c^Q<*X!4h_miYO(YZ%Hk0_x}3Ncf<2L z>v`2}uG*HTcWVlNLlu@MM4aMJuUA<^Q=p;ZZl@d9bqQ1l&d?G-?-DBNDgZkd84GKk zTYb1TP_>yEvG5UFFeXyv1IJzhECEAyX8sQn_+dqjnJK5#o#w51388;~%1pyOQfC#hzFpSe)vf&)*twZS zoF{Pk4wPIyK7Lg8?oFKf8?^2z+TVn)9`=fQPOyM-xEUc};eCxxerm7`VGQVe6I0OP zVmdyVZ$maueJidhmlvEO+^hGPR?{1*&<6X0Q`}5>@tINTNC28}FD$|ph6}Z(ZjK;# z3XLJpO@ntxxuXO6R_^5=Ix<%}MGIGsTCiwkCWAChu36AqB4kbw_f%wZ>naHG0QgvD zwi5PQU9xriM%g@3{n^4gFzD1Mu8@)?b;_{A0!axlMBtD$6I$}Qg&8e$lYyVhitZCD za8Rr;8KMrd|L^Cl0D0x5R4E#|M{Xj|hbnbiFI_q>CKxY-s;1MWOX9c|a*kE1vf@%< zn}V*ki!V25#*c0jj-uqSU3A>gv+gHfzO$qEF;g!qqsN+i(tl?B=)|!@kMm$}_m-bJ zKJs>T^!UJ*pQ}|K<7H#VE29HXAr%#H3`98gEURmGOKpld#N7!h zogW74#0J|`gd9?rCmm>8GnP|s*0B`T8r29V*d7<`;kd;Ggg#N>AQa$tu~0WhzOv8O8X_nT?W-2nx3pC@C0NS}lgp7ZjMLV_iZ|Mg(i1N}@Ph-&!QMMm3ajCGy@^_#VXP z&Y?1}%9wMCSFW=%0qEURIg&2GW`3nMJn>GeFNc7`Zw?81g|P>=(azhg7V}x zq$uBGuB7)RNjJH~!5j%~u2A`UlGNEzw$sj?xo%npFnU9LVnKzs-YANB3$RwUR(CU@H#5OD=0qOaKrfU&(DO%GE1|; zO6io;sV5;dl@~A$x&1Qd6*Mod7!CO0m~@HO&*wupji?UV1Sgqc+#*t!T@g>cN!Idk zd%(8A+d?XYWe!WN^2b9H-4*krgDtz=db|`s$PyFY64sFuxHeNrCo}i`1>am+lmaIT zhEA-9f&2oIyB-xrse{4URV2Ax0Ubt~XjYZr>)Gzt_V;!7!5{r?uY<+a*NH#%cAJk;*4**8z-)b}XV%x( z-LbPbNQ}u2fPr=31!(g(Lho>!?~MDd0&2i|rc>+p?e1?gohtYC?HjKQ*Cvi-2M_Fi z4O%plxR*Ab+I*M7N@o695h2G4BmR)Yduj+(eV#egp-au*2Fh5f2R791i#S)*XH&@1 zg|Jy-X(_-4S41a4B09aml&6gzj->(y&#dr@N{K64QZ4#|{;zRn5+Dw{(fWvQGe%B! zmxhkRe+HiGU< zs$8x`kYr0fkVd$Q56G3b^H^T9lmHBsCNoHnXnz?q$xj7qW zHt8vdbPB%LA;g%6bi&eAbL;t^Yg+a$T zZl1e%-{JJq(amD*q(S-g*~rlkuj?xyCQp(@r|4vYi4#^auQKF4q+jGl?6SMmM84O} zthalR0C2<&R)@wbO*!H`CmcF}S)=Q3^IdYyQo+p@H_;>`T-uXHHi{^^ksobKZnH+E zIkrH)mIO6go+nKQav>KwS(cOcfd<#jxb>LDS;Knu*IW{KEId=__)?IiM2!L|;Us6S zPP%Z;ZFcl85vmfD0(&tf+CWtY6TnnJNF?@w7xrV7H_&o89SxX8QPW36h|^ZGFcutf zAQSD7167EC{@diafb1}5R5vkdRiiRB* zu=tjMG!6m1il&U{o~v9HB3LwlNeorMo8D4x)lt9%%B2oTn}1CW*2e5DMa(~Zj8f=> zJpHX`&uhzOjf~i@E!=aL>mED^8!Hgy^NN>}my)kLkz#l*>5ZFcpH(n^%zQ`FigDeS?@ zw9C6k#{_JcTT;*jt3$_?8yr=uXzH1`%T))o_hAdA%|&n~UmTasQ+2`3LXl2Fp`Rm+Hwn$=QK7nTK=5XEpMKkWpAB=7iDZzB2V1elRaY19ATJi$zPFzt`$DryKOs8={S6tCALR zq~HpBfo&PBWv*+n>Ji)7ns(BDT**#nT^82SEiNk-oDs|3z@@V}<2n(Ud{)$$s;-oMRE%k_&S_`^mi>3M1ez($>2BT=cQ(rVmrswR< zP^G<3_pZl6BvCa{fx~G_sGCt4Iv1I1OeEEkyf%&+A2wXuq_jyppG7Arp(uGy6IIkhR0x>oq^=nJHEjHs=4NeDI~6u3ztZ@HKxH96Gcp?vceul4VLR zNwUM%&^`1?sh%v1Ezahopjxynk-tv0bJxfl;S>Z7n|;d5k=0v{obHU`iC{Dcg|Wmw zmavhxKqZOfAy9(}JgK>~J<|!eg5~zStHX@Y52w^oD8!fOU#p^>D5ZiO1EC&KN)--B zUF}&=6jl{9c5f&B4{blMzluEaE|TY2KpMvR?c?ZVh>jwy6ANx*up^*5{tYmTL7d+p=KPrpSNS zrU(@Ae!DU{jH-75=GI0a_!qfnEp;|F$%4Fwyg08Rvn5UET;hcUMwSXquE()Hb@jiX z=p`%eS=#*aSSwXwnY9>{7~1@*n4_9_7drC|-z7_e=owzL(utWsI=m3=XP-!}o{z#E z9XT{IZkdLbnOt76dB@HGmxm&#JHK32P-K_cDW1VN$Ex5hy<1JzGSeTs3&Z14wMAv_ zW0!6!E^Mw2D&_d@ac7v86Eiqe(W4ZgEy5$I3ff*()1lfSs2>s_AvNP93k?taZvAy! zCjfoYti_zbyBxrTDzn9}Q0SP-5z@rqI?o4npGpLHF(KXsH&SqXsx<-n^RgpRk`gII zUYh&<3N*agV8OZeYEo)Cc;XNQp+yC?@fU+!fXd5$)gs`Z2fpGCSgbt>)!oquVPcYga>(LI4 z3?C^T^NJm_O|~wahG4*Q76ToVx5FK^Pr|We4aTB|@;8A~a;!EooEitoC`H0aAv)Iw z*lR2WDV@v;ym}`wlKa=lEgkV1XKRK5Gh z`L+UCg+=GZUF)Wqg8JVQEvLgq7Zs6=i`)gh!yq0+Uj@ELsC;c{S{>5&Xt+yD7snvl zHLhjsD;?}{ZycWu1F=~&qXi*ctL|I&dIGmZlW+HCZ~@?kv$fZ1V?0A&Ng$stJI7v| z3L3{#t}XIpzl&sT)=<_;4R~{~WClOUqzE6+SniL#(C95Vf^+%+TB8HaNbi{KLS&$M z?q@&$<=^am?clywf6CFwpZ(q6{oT)h{_}$%0f-l2&nx@(K%BPT7fG1x`x(lOOOj(r zr_lA(ky`FE58LS1eFDbB-^TnuA)q6rmPHWKVmCv4kWh6v~&M)Vw_Y7jTZWA zYX#HZWmxcOOwHh-9Hg3LelJDyZO=Q9POCC>{HRfX%lN~g>Uafpi_RPmgyXUJ_kW3o z>o5Di-$i28gE|cD;c+}dW^0#rDnr?Bu-sMVy2rSF-1mC-+ESwHuJ#1@y4X?xNogx~ zSyX}NnNr8jFEz$SW#-oh)+;lW|Lo`a8{@U1F|HK)TkUsvu(m7jZr{0cXZuc=P@Gw$ zI5w~DHXnC%>?{j?Lr;50dx!Upo(}w{(_UZ@tDY6;J(ZBUpRBE|wcBk;5f#c}mQ!pi z>MGzGY zy{%)ntkdi{h;3`FWtveVNbLK>CW1L#i*~a$Zgl#aqPCG*;HieK*E(U&G(VNJCS6Z) zP1OCJtj1luGK1AWuT8u*-MBWtMFkT5w&?R+V~h{U&z|}hI0pyE>fok zb|!goiRe-&K+Q)z+ShzPb(~i7BKZF&Obei?pM|&wY}X9U2Y=cM>bellCXpDE=yF#x zerGlE%;#WFakHeEfE#TL+U-4C-0hFO(#h3X%9=Yp9;1GvV)m(5sS8}tEeS_gf++(% zmAG6d>F#&cdefZoLA!E7$B&LyD}!U0h|%iu(UNHJtYEU56*Ud-;BOK;DGMV$g|&nM z%TOQtZs}N>+k?GZmAHxe0V@s>RX{Nk_*){!CabfB)_ClvAnc!qcSbZJx;-@>c2yJ#|4`q(;6*sdah`JW_&BiN zitA6nSz1@V?gDY3rN$;|gxvaf5e z%WwVG4d>($*o0zbwz*}6}ZP7Rd17m!<^pjk( zXe7I`S1=wG4y!iWRJ7OEl#}qMAB)Ivb~c(X;pOlEK~d@=rHalf ztIEpTiOhp9$)RprB;^{T`^^V*9VTM?^`96=MZ@63GBThXopP=0To8v*i-3eqT$OJy zo(`Y>YwxZ!vZ-G5PcH0h^5NfcXMUs~wg|MQmWu=?TBl&kg*GXj9nQC?3!xH72ecYR z*cEC8&L@+U1AmQkLXUjGS!uu|wdsuxk=(G)B8^_7J1#S5GWIC8Jz>EILXa+t4k=9Y zF_&xiZx4pY$rf?M{M>TI&B1IsOUIR-0`1#Tl16OHABX8-avVvAtwJkr2H^tr8s|Y=|qv zh1dD1Vt6zy=LR`K(U8@;WWT5{A7QD967wP}&4J|tjYX0ddF`kLrk)}T>#Ir3r%+oD z3zqgj2{O8EVXuGm_cordFR;>I^aYzAWmCN9ORl!bwZ)ivJ#I@e_B&zT`LJ9%oF2<+ zmt1m7UBB#>;%)H}_LSZl|M!a;5JR>(ug9XSCxPY2KYO`_gF^E!S<(>`^q+fOgUHULP!~(?eqD0c z_KDhBbQ6inzm+r~yS)CK9OQfz>UhIA?x;$)yI9VTFOg4!hT^>WX(oEwC6aHn`v1?q z3rJV-9~MQR79^EPtQJBAv5^pB!U7tc_cf=Z#7{M0u0H`6z|MjcEQH)4FN1O<)fXb~ zZlRD9BJyxXNzd#x8GDXN14;CPB+$mn$Y15vflXUN_(-h$gv*YZ(|AF3OtU`WMZQnl z_(^@g*h@&x_ckPs-@p@V+Z9G@mvyGBE-wB9$Zn`d^Xt)H#lojfbs(5)hydzh>viNE zwVzJlTEVkAH4l`vq^7*5sRUfuLHiAAz~%OYg?AM>j*)b-W)u7e&PU^5j`f&aBbkV!XUij{HPzzeRye$TaCy& z7i-QNFQR6%9qk~}j19kB;_NTko7QROqY`FsrKPZvrkJ+1nf_u1w6jI(b5tvG5~y5% z0;BGncY#1vSv@!+-y^WlyCNnuyD2oHITlX4{%!HcD4_e#g7AdMOAa}7X@TQH|9CB* zXjlBahEGjxCrj_Y)@vd~sL)@myf-1+cni|#GI~bu6FJYO(XUw0*OdOZgKPjI&A+66 z-y9>Ae1z||Sn}VGtgO)At{>%#dIaLG;hC!70`qqG%I?IcL#z&r(Dunu??5iphkpYJ zF8}4j|Buz9-umz#JOkP)AtE3Rk862n6&gOr{bho$cM8brA`@{dNlAl9zlebj7){{Orp5($i|278yDEF)( zJJZUWw-de8C?i^i^aG}##gpUnZ+!9g&YkTi_a5*2^m_Z@!@bAkfMTC7Qn>;kug=WU zzG!SGDTV%uW(G^oEeXz&|YU*y%)ZHy3V*F<=X-Pdtk|KZT(%v=Nm@$%# zd(0;1@DbjJg&ww^NJxAGWdNTVWrp_MjEv?BW z_-b-V)%mL;Ajb@MARp=L2 zPcE7>T1z1fIMjJ+AmLECS^+r#<#N6qP`bV=;6crI@V?I!sPiL#7X^pc(tl3etZk)Y z4ES%*UP>{Kcnuab-qac|^?h7X4;ZJADb^>?VG5NTeq4e{h&o#NO*pX2bg_RNvOqLD z9~n7bOYVr}QaEj#Q{zf0*JL^0kdL<49>Q1QIpb#KZ1IZ;(2oAWo=u;vqt%d4SSty2q| zhCPTb!DE{C%hVU71ec$(vgs?MEnYI8`UCFC%9VqatJ#%5O0wrC({h&hjUOx9QkXGbfjQjo2)56GmBeSW2ZpW?jx7i!^byt#%?I#XteU+@{ zz~{u|<8R}3{Jw+2^QLdA23V_Ur*aH9yX@^Gt~lSYMS)eDgdW!gdYkj7g7VVj>EXvV zK1Uznn%IxLT<`fh=O0j+2mQit+MA7E1H2o5%;pjvGep>n<+5e|*gcuIBfC z1l;6ihec_bM9}k~|53{kuqtZUAQ3dVaR$2h|*`tZwx;HWTzQ{->=EfA-Rc-?tz3wt5M=M*hm-P)YdG(_w42qO(n1OBibjL@a+rVtyu7v4%l zJO4`$y^cFT{1;kc+7Cs%i6k-FVvU*pzs`i%|4d{W?2GzK1~Gi}6~>|)7uuRkj$dZi z8`eU9t9R8+Z(px7HSOwiyUwmPEr*S*>ux#pH}zWcpRaEOtL>U!Zfn7MySnP$uyH+D zaaaA4>-8GfTvXnEaTQTmi+UR0BKP=JA!$&24@lL3-);&@hUf&z==l-Sxq1>KJQCj5 zrv!8L1cuxNxrV`}2saI5@ntIf$@8~5s~Q)x_#UFqr7m61{3?*-*%;S2!VuF6q z6oRHhs>_;4SE~q3;b=vg*H*kG(Z+Z~)hl~`{6`KYQ8i&oTjm64!=REsBb|xMApNtV zK?%wfHI7OIH2DVmAvHXTE_}OHW|`oX#JkA&6J&=GH~&|I^uk&b>9RjZnI?p($aM2h zi(Tf9xdn4bebU^pS?JdC$L;EKol8LYJX5;ghorE+3s9uWs$!N zocwQzT^%LEYQj|t6KIC$%a%a9Oh7^~gR=S)@$dP0w?}|!n|aQNAoUrB@|!AC7Tt`h zs;YWTSX#$dIcs$Q8t-*joU#zK9o+_vEhpN-izgqH(8cm1eC4}3E4#L8eq1XIr3kDQ z-Cv}~CsYjFmy(Xkld<)o%bb1#b9kG|@YeZBJoS_A7UflWGwxkSD9v^U*P8+lVbC2{ zN0hqbeAYiyvYIRDvLn%TE3978JUylj?e|^wf@5fx_%k@>^g{`Xemypj?8>6Dw&YeM z-(IWTt`7$C5up&;zx`^!$P-qXZry2IS6K^{+KFnK#vrC-=5rQF$XaSjsa+_i>p#TF zE5Vvp&OAEKYDJ&MLk=CkM@#lv(stoVaG_c6YS|syw2dMwV7`|Umb5bepZ{>MqB(4u ziix|nV$u;c$Hy{*tV1_@-czoMLL>dbc=+;~j}eVekU_#O!*>=>JQT(W=n^kzsUJ8v zeY9(pYhtyrj5tCuS(=&*Svs4ehaEml(?9uzXGWjNW!CN1HM_n&PmiiAq zWBOlM;$N(lxGXe4zS{avq8P>xrPRfO$^~DMs=?n-zU{YzZE6mFQ(FSGb07zzmCQ&% z9sE(Q2+tc1bEcQ56<4n%In>;%W}!~yVNiPr2eS@<4u5uq*$5Y@qHhO>!NLHu4=sCxlw;Y-BI9Iv0F(98O=U$7x@Vc3BrBZWf{}lToeii@V~fy_)fhXi>lI9^Ne`s--kcF0zN9{XO3itYUKixjcR}iX)gg5 zny{sppaW z6Ftz46ZAu@rOW{AKOy|8k+l;;StGyp*V?6kB9LiBOo1kgA4();Z;#8#x`H1+aHYzd zg?7MzR8z6P=?K`XH;Z99Kp3<-zO81~04(QvEfgJakt=r3s?esZ4fMwt0sJ!@K!{KM zP~%Nnlw8*$9Tq2Z_bX&(3viTtBFYY0pk}myw|GjEwkdsnhPkG(c@A4Zh10)^MhE8< zbRuRXSBvSVEI8kbt0Q6Uw&q!C-e_14jBDI}H(viR<2Z(q82?F2bri&G5O`3*d+~GI zdnd;KD)hKeDeP8<4Vd%K&!`M~?5n|JzTVky(8ukMRKz`<2B;J$v~~yXOa|F#l#M!U z>oqUd%lj&oylFpZP}gF=7rKxP)yj^NXK{};rg22!GgtT-ygrD2FEVf256dAkmoO1; zkjM5XI;LYJN^`I>JkEwsU$%E5%}L$0bOBN)e2g@Q0cG(kuyH{QLi-=yj{Faf)V*Pq zD7>MNh~olzx8Zu`&Q=ITaprwjRU7f~&3B{q*5rv+Cy!1Ay!`5MyjUK&USApZa8cG~ zQysX#=_QrKYI`McM=6u#GAZ0zYSonZL|`ExAlsMr0?WXK3)BvMfn9j>*5|x`LHlk0 zB&^7;2p-%Xu!j!vMj&l(sI30=hyT}y|MA1OoU*FwJN&4YSmsC84gkU71a=6&c0Gu% z`J{<3sScphSaD;?g-@4VBZ@Oe;h>C#pM>$NI0icBe}Tw zDD||GrS)qE97Ct8H{{n&L&d`nKUi*<1w@t}+QG2%aF+aGg0r%oC7(@#(T?YaKxlv2 zl`3j!U;m;LxX=jki-94Z=ogP$Z*|q_UV%eEabh;+MZQKhtt@ zUR&5EA3!>qbMopmC?;H7SZg{e0|d!^i^W$Xjd}ut%gU+r+0*3HFMWYB$Y1&c6l2M! zHV#%kwf;w+uAh|3Dg4#Q2iCG1z8_ajii(uC*C6}AodlE>!%o((sv2ZEW=Tx9n)_2Y zZx#P%nEMr^FVqt9A{&H2Kh$(14*ABqjtau8P~aYutxYe5lKv?bqVgok8r6k)q6#d} zmdD%Lbycsh#%6x#b`e+p3&mL)q<>tmuwm)thsm!e*=agXu6$~#tyo{u|7`NoC_83Gz=k{ssAyr?qF7vU!*QDMH?LjS9#9Ig*O?lMUY@v2q~m`-G3oY|s+Gv9Sl4~`bK zFn@8eYtNsg6xJWp`y1xZ2noo9NxaKiMHs&Ml+Cz#;&ceMx|x%Z+#b@#vP! zQq`SJfdPrwj(#mB=+MKi6%vGOBDAXI#I%WWcBnAA7X%-^@JF1XiD&8$h~5oB!yiNq z@GLg}g#OES>B>u|-Kp|`iw3D7K?sMbHXKCL-oXEG%dWFqdr!C!3HBSg_kL)kHnDIy z*V~Q46ln@ z3tsdEE5WXjs8><1?|MIk4q%c}75aw=n<07+1Lq?9NLH(98j?g=)~(0eMT6b0i-NwY564eVQ zUu;Q4hFL|WiFS~efr4S1It>>VtoRECLw#SBtk7^GP9k@u>|nlrLb8+e-5|&2t%h?5 zKJ*U+o)+UD2OhOQ3z(S17XcB@_XNfCeaDihaf1yRJx!64(E57Upx*U8+rqSPsEQPn5zDTfFS{r)fS%)fGS2|4&@SU!B1FXf7jQX z4Uq0Js>;p7cZIr6N>Hgn&zI)N(5a%0rZV$UEY!G#(6a#^AFL2XVHOAh#z69v`ZBpq z%g4maC-5_gN2|7;I+sw<77Uy6IhmTw#`Wd0M{8?U6SuXkA15TQHyeTY-RY?k{3!2x z*HPdP@}n=d3H`rn=@KeLr>8#r;Yjq7kWgO`41dHa z@;&$!4|KM}?MqNx|C3_NmBrhVLT)>J!Qv&5t*#skp-1_Z3HW}n$kRgc!P=w;SzzCA zjEM~;WJ0X7+x-i-OULgx(xL%XP7{Eh1^OteylEuOGnzgg;@Vly)cu~*?1PIy2r`G{ zRIa5i(wh8pM@rC26RZ%@Z`CWyYOV1yZi66W+FT-YP_5EP4RG{D$^rM`KQ-sdyaQmBZfUBM@CvBoYtvg^FVE|}1_%_7k2rV58{#^F#-OY>08uTt2%xgzf( z_`dP^0AIC&^MKR-ZC}2{)e9S-ZI=lTwnY0BpuuYD%$)KU;@VsY0uBK)%NK#+rC+_( zRq2(9%Tl-K^Xg4?{eCke1%Gq>RZ{S4ay~W$L!wC*&5=R%!hEFR?OOU9-CzGMsk1atI$K%oh#%1c>9%OvibLwT-3gUhK_ zFM>y$47i}~-+QFJJF_m^A#*{8bft)Iwsz)(k6jdU9g1yeg0`f_VwqmF@joySp95lc|-8A1qQT zlqgdZLf#5Ayp4Y-(Xf%c=7+9!dI!mGEGM_#iir7<9=b zdz;CT`r3+TO9-s(ABDl=AZR9;F^y!eb#t~kgS`<3n*45C#Z|rz`yljNj#A)*pyZy9 zt_MW3&9P|z23(US$iY-f*n2MGU0>crZKCs|YA^|ZxtnJFrpDU!Q3kQ-KE9qPx>MDY z@pRHL24u5^sr{C^>UK7sr5EnV?<>F)usaZxyUrr-17hz=N(gvqMoQha;|_(Sma9U>K^TMSIFej%*^q@VE%c$gKVgse zg*7Of@JqL|!*M#x9G7x1R?ea$PouEFd{0V;H|8S!v{uov#V8PRhX!_n$Gdm#kog(l zNN9h_+C!I0Ai8KxwG+1D-f(U$eA>?>V);GvZ2U2uAU~`tPhXEv7@U7f1&VN1*o_pA z;M)sNf&Tiz3Mob*az!s==Uu5!&ZE0G16(|dEun23<<$%`?Q62ZF@FctrD&Mh``{RM zC|TZ<8ll6M_8&KU5jfT_r2PT6?T?&#@pXS&`=K#{8GV_$p%n((K63BphldMH09Pw5 zaOe^(bCkwj^QP70Mq|7uR3AC@ne-LlQvTDr#0w_jT@kF9zj=X_3#tgvGJm^4!Xc00 zpGC=bt!0eWl2*(*?|H3Lukmkqmif0n{4XE=6_yL_+Xq>Rq(-NT4wwKJoD%**EbC8uYL9V)ie49=U&pLJ1C7#5poOoN0`~zerv|IbN6^Q8PjuwA41)9^$9%hF@aNWXT3Xqb+{;e0a+dt|kbeK)httWVdomrr zIhl>S!}PO8-hF>+g=IcWXZf_K@Wo!7-Ak(~OKwfa?OVAO7A-Q8SPOHnn!=N-zR^lwKr^=NpvSyWC*WNGS%PMn?l%*D>R)3Md{(bn~TAdmG43~Zv3A(r%r#wKK*zI=VLOh-DEt$OL;5Y4e{`14e z&&OviA7?F}$B%(Q=5B_)WCMj_^zTx(r`H8MFnm{gP$E*C#x(iHI!6#c)|DX|zQ2&V zNHh#)<&a+&=p!^FQ`aX~66&m)aoPz4Dkw^>oD40w^;$DmXo^;{e-jL8958p))Rku= z^e3pn|L|S18eDpO3;UCYtT_B|Q$`X3)Um0^G1|sYk!bXQ)Mlc>x$>g0i;B6fjR%C% z5QVI2K`WEXwzAWhKD#)n>k^8rS~zI!2g@d?#zr{mp9Sfv|FE|td@`i&>=?+Hi$F0t3JQ3;`7zt|&|U9`=ACe^~3 z@Xbpt9!S?U8OX8fSStgIqrsw2KVY7EAknB(%ZKFpm#Dq9YK;z`u!0e{A4a&d)@{KF z5kK}7sT$x!_-IUNr~^4^{L!UyaaAp7Z4c=X-utNS{h7~cQjM-BUNT)8V56gUpaaYo zhYX0wxQ(Cf)e4od&FgZcYF2&t9DH$v75xj%&T-j3Kw%Be$3>!JLL9JCf&S07T3%9l z2DBRVJ$vs(V?eo{O7}y>Wd6;htvVM!|H6HZ6kVpNj?Qzx$rf$vPI4K^u-J`I^ATL` z_zk6KCzPOgI4kdixs3e>-iu$F{kOVSxBvRvAU1<)I67EL^U#AvPG-bpCsg@eR8xT^?ar0|_; zMnuEZ$Yt0zrdVji1R(Km5;_ajwSe>}#I$wVtn(&ox?$Q)Jnio^6r{b(hEf!AQN@sm zdek_5^9Rb(3rv%R<(d?Q!@>u>e*sTS$0!~9r(u6xZ~7|fFREhZ18KZi5-n7v8k>_- zKg4094f%sw3CT;^oen1vTAs~{w41R`I9ET9T5UqL8by|WGKuZKVy-H*HzN{aMT-=h z_m@~>B+7n-Cf}bhSA?7SpHV#u-nWJ?_zS5ZT06&G0gIZ1br0!&61)3%9RGvZ^e@Z) zTff@x)#HB~pV)uDO#5$pK0BV4)^MxYV%|(^jKz8L>DZc2gDfkOlld&ki`f*drIYz! zoDY-Hbdu%;+DpmrPUp!mE$nB>vtw&jon~e7rv2<$TFl7on#n_*ft4&hn4VEuHJ@bc|0|2wc3@9pgGgT2_l$|NNKEMt?gxB7x6Ba9muiSVx& zi9s$_lY#jBOpYw%KwI*-Z#jFGKY|g-=$ODh0{>aJtBkIN7uC!txf(LAG=S~{p@{c- z_xlvjq=KV@Vh{5rT1f1G|C%8EcLh7OAOe2303wsl$BICEG`!I zPgFuMP}o$Wn`ANkgm9tnN;u~$IQ#EY2H6jys=~UaFcBEk=l2r+ZQGT<4yr42qTA1O zq>{NVJ-CeZ^V8go$2VJApfK)12Lzkz;L%PC#pU&VrbBfmn42-7SF)po5rT*Sz&7RE z#NhUQCU{p*518JBP8~TRekuTc=4>FF_$z3v{)`!^ekv81{5qf|_t!CVgqJD-0d^4k zWxJ(r)%>i{ph*@5(u^`^7Dh@y(%;{CynXAH?MM3wNirhx4?j{fkWGn zqG*QttIfxu|HB~y3{xMI1#pr6ztP)>^#8ThjZgIdUxEIA<5#NV|1YbhgP7laaOWZD z>1(TTV5hhCLRz|PP8Y->RVko;5~>l8A!{f_%$(d!6^)hW7>SK9qq0l8SRcoHvEyv4 zp?r?6P(G`p_adcTKQvOzRcWEGk(&Gwdl=U9`YUF4a~khku6mUnM>|(R?tm2VQkr#( zI?cz5B+`;%8Z`{h@wY|g<*HJ^IPzn!PJgff$5rRQ#?Cuch~X@3eRzOat&+mqk?~+& z%y>vN0#U;y;>*IP(i%a<`(psL`E$706p3w*T5cTamzXmCKGVPaC6R}N$>4`es>6CB zj~H|rR|Qry?o1C-E2OBo{M(<@kSXal35`-m)n5EYME@)ZQ7Ko1+E=~0y5~uF7q=J8 z%%2diPh5M$Z=?SvBt9VlNgTsLgPW7|F2{>OB-oUNM7#51J|O&-3X1rwpMOTx^^Y%@ z2wWSnAcAEJH>*g-2M+r{=~vDQi+0^*jROSyy%5gMHgXk};(q`IT4lO<-ML3rLkJxU zqDI{?j8X4+tATz0CW$$s@N+dPDQw7PjDnycvkAa8308%5YZ#uE-^3E8{V()a1Bu&S z&eP{N{xHtiR0HfIR}1|LF4$x)5o{9W{NG~4q{aUa2F5SV|KHzOulxV|pXmSpit%5c z!&RVzIpifSL~Z-_rs$6oAKg{YQA~7y3se^TE#`-Qv#A#pvCzM zkCzE+l3wIEPr^Y8IWDmUKOlMp^3Af>H}d&Y#uQoyp!^7X7&I3+FH{n^E1ULhBAsk2 z;u4aWUBdC)RIyH#6bVaRc@J^Ngs!=;^yVc|*L&M{cOEhJBZ6&vcoClK@6mg})fl%W_~1Dhq+#UyhLLflBd#*RTHsbNKH=)9t@Y5P)C~n}3donQtUv zC<~J5|6H=u6$39NxU(%BZXtZ@ce&v5k9@Kil_mbF?@aZtvh^a>eynPs|15Z89o_b} z#Aj$3z9*p-(`Mp33?yIqKos&QUib&28-LUCAUwFIMDjN`8c z7EVlqRo~x~8>ZdXfjm%S(;^zYNWwaL0kIPJ^T~v2&UeoIlh&v z`x8LYFGc@9nSJr*qnAEz)%fbhMw|YR>N4v8{od+of79y!z0K9NUrRPV(f@yC^N)lk zznu8b=EnMJZ2w(d|HS_LB>wZiP*%^*Eo%l^tMBT;%If;TO7D7`&G+Ep{T+k54~@Ol z{s5&o_p&d~vtn8$qpX5bJn3+jj_lD`K@IODQ(>C@-3Jf%_IETZ5!ztWlk@*^{tr_& z!SJKB{PH|Moz_ja^u_M8Z@s;7vM$`F>J8?3ts{Aw?Q&-aQ5xl{EU8a@6p@+A_i|GRU zj=ifH@==>jxSw5U5X)sjT^I>Ki58Vpync2=(b13ozV;H=H zEoM6$<}^Eld2MI{D%*R|*fJZ<&+;;{A|tiu%<&XtL-sry&S&TE*a7GS4Ju$+1TVK! zR@r+pb9(+xncL}^9hY{|z+l;yjievl|4;Y{SW8wzUHt;kpb9h;fzonBw z4ui_2!EW!|*?w~G@jmt`(dELri<@@-ceWq-Ag8r#TL}L0a+3P@o|MxgnEolq%&eSb zqntW%Bgu->oEFRe?p+8H!z=u9RPQv0>6u-ZqqJjJV-?=`Wd9MS4`sy=cA6bz`^q7{ z(KeK)2OC)~XdUV85BKag{?9x6&Q7!oSP+5XYSy3H-Q_1^EPIZzE(T`guIV={C)v#J{jr;X>GR>=ov4RCFYNi>o+rs!R%mnVTi0OuF@mBSV4+>X$~iseM}B5vE3Q+UUE-+O+U>;Ak6(~HN(wX zoWDQGN;@<#`elV;WEu)+IT+ct-haIP_{qLKc9Z?>^Z(=ab`%7>H7(0*p3LU1%s}!I--sXDH&}WSZwZy-}ZWuJIh5hBiFxU8~|*5j-{V5GQ?lFz5vK7=t&I zx|3a2fF5t}nm7sm;#T2Y+gR*Bh4|+0 zYG{zv0WZoXgR~rieCsCr_VAt#&;QX_SvbrqR3qzS@6|&;Y&>Ee+r6U7M_HMXdN#Fc zxskFEysKW@`P_E$c>Dg%^RL|xL%U3}Dc4_`Ec4&4{r|Cre;3>T{k8SgwVM6k|AhbX zm-FY-)>fXGS{7J4eaGjldh|H`#5eHq`3BH2&|f=PS-pC&(!1K|7|^bPPBJgx@8@U3 zbVg1B_=x@;!-wE7xW!@-PCF$fy^UrCrEz|Py64~p%zu)dw;tZ#esKHYezLu{b8pxF zfC3bn%6@`CCKFx~rWT7d-^cq1np^Hu;11Pk1 zt)%4<`XAs&Yb{!R9j%TfY5T~lRrEWR;}NB8TH#~SgpdWnFQH)(dhMDQsnvxP`j5b; zge?NCKvWje#;qVqpM%TESW$K?_o6;zJD!b?QI$)lAs0X*A1OWnP`PM|(8%WzwHDG0 z{;{o`y04ucLZ-U^Vw@eNq}e<7iBp9Y+|R!La6ErLtrBhI4azypfNi!FpM&iDf28AM z>a%K=)pBO%|Cn2u2KwRP{M!@KBgw2LWomm2ACEx0>m+I29XE0fW@7j8S9xFg8b#0$EH^JlNCQt&Ym|(pwBnM_c-jUg5K8*gW>?;Y&+HuhjEj#0I_{6YQ~lHh7f)ztv4{gQ-@*hJh*cy|nvW zH7vDDu}tdkXc&fumyiHLQ>PNAVd&YcvM<>uIrqY7+EIPQ?7C5IcQgpWimf`F6@!Zv zhk%R+cyBSa8%*}waQ-EhQg-QCbv}nHVac-O3YV3cmbo=rZIh|na zfGc2rm_OI6UimWFU2V<7DT+HbFG$wO9$q%KDQS^ChnA$=lF?K@gPK7TJRN}L*mRlU zS9PQ2YEiCQti+6#D6Vn5Khc$yt3et~o%Fh(LDF}%xJ9bKAyOP?Rxg@Xh8jeU-DvIHMHMG z)B37~WtP>qm68m4`;yZGG}4WGW54Dy+M)L~xaqwoO_McgM! z+}l~VV=UJzM<1#)Su8tod9cR{LpvXJOY`bYm5iVmRKw}cYn&7|^@wrvBa-^DO5)?A zjYgo~)dxiR@C<~ictqU635$W7Q|Zz1ih>%QjvAXz*!qs{b0-i!oMU}EL;tbT+R8{J zz?fWe{*TYWp%itbqnv2=vJ-I6o6!_JI!C2#YsX3xdn{EIxRyGJwO`TmM=AwHK!Oh^ zj9eB~$J8{DKvp*j!+p@)hv(me#*C)aj^xm)V^%yHtMI87p%D6qseA1xWw$rE2OHL8 z!H4b)^caJEIRB1S)D!S*&aodPz9=yxwezxzXsvPoD^@d|z zhLKTd+idQGxJhbP&E)(Ydw8T|AMPhtp3sGpY;yiRYlL30qc;yfN>l&{1^{sgzb$<3X1N9AqQ~XIT^00sBA?1Uv#uNjIHAcWb97ZA1!GO5^O^ zUfSw71*$|aj7MM*PDggPq)_4}$;&dQz>u{G0oCCGlI)exZJ5mAsIvmYE-^czxD`)x z7{h8_g3m_+->`o+}DSPRzubJb6i*i5daRq_!Wu;Y^2y-6HnF!b&L)Gf#7)RMg~foIR(hCL3Xh zAdO@RTI!aa$eB65n4LDLr%6jv--Oe=gjEMZA7lZn?k~+p81)7`@+3vCPk(t?B=W)` zm2g`Ejvra$X~K?D8VvF@8Syl+K(vp*C%BcYTb_E_MbR6{lH2eLv>; zvg2!f+tk#tY6$O29m-{_K`u!RWsAn zGnfTBW3o_fXH~ZDZ?cnFpduEG(!q+jKjZOAvZQvccb3*i_laFB1~j6Izy}TzbT}>L zz=!}qWm=|gKF;5tVngXfsM-KPY=k}pd%BT~i@VWcHnZ2O z+0Dp;+>q{k{tl|vu3^nDPTJl&1LrVU`~o#=IJTAQ%`ahf`%4lpm-j6(CN7;Ct<F7)IYDPfB+pylm2bXGFjIgWX zARLbnN~@utq{>7jyS|4^TIS40@ z!C+!_f?5;0M9IfvrYESYjdg5>cOTha)~>edoWt}W_DnU7v{E~D4?t4kG#{rBX0$J} z!zOFb!`7rdnR88hz}c(B%+c0@z;ZF>2+88>&a683%ylB>%E$bQ^|olpWc+8 zUUjGct2fc-3N1{B8Cp%W%ktv<`$ayPN?3s!;2U(mp+Rv+xMAzpx*JzF6J(*F#@%;~ zo5&CMU6YUkg8~?fn{+>F(%s89>FQed>UytxjmB(^n|0SU>qvgMi_OBPyOFw}S$Cyb zr~~5ymE}3cE~n4Q^5DJ9@j$(Fts&eE z&QU8U0G0@n4~|ojco@gR@W8}c07uhOLo&}aBvT`o1vde}Rnq>ZP45)Fo4q0el2k@O zLkN@iD=St28f9NB`qtY0zPXi?=ieEEHc$Yhk)kwWT!e;^3bDg&u$Zz*BXoPY`|}{Y zZ~N0uKPSXLXQ&OC$M#=g@^1dY+ZZzzw& zZcvPY(UYv7n9q4#13-=M~9;`IDe-?4D5P4%@T)?ck&fh zJ89s!knwG^DXPR(l*N%f$AM;#8W;`$#+%#K4RDWS47vlDg>EUkUX#I-nQN%Wc~+PrR-162Lee`DWm~SoZ;t6?0t7+yygOfM4?F0E}+!SCQg z3a-xNVja;w$$j2SbByi*ZZlpP;5o1+C@yW>WOjxazs}|*JF3~lA7+7qWhg`#ojxxh_fRMDKN^V zG$5=_rj59sjs&I~AV1Dy@J3}hWy0VhRYB57A63Lrx#I2QkwcLp$m;n-b(K5G-*19LT5i>WOQ&^9*!Mt$(0413g{(3HZU!Yz?iUV z^Z7s8WlFKkGjxXy@`4U?YmAPaSzv@l0NP7P-6jCx2$eNDapNs&XZK4fL_9Mx+0r`R z&+Z>9YG>pfABmej9pw^)g_FSEM1UHr=%Ap2!9c;7A|$YcF!}{^K#~y7xakCSe0K4H zH9X4guqBA)v6dg||Mid$x#=nH7@`YyUfM_O0z5^pmwk?4b*-u&NXGf$Vg8(DHGdgF zbs=-tf5~1f!nL(3g6iNP*jf{SmjLBFJE*hb)S_pnK7qk|1bYM;oKtrN+3Gv#@S`ze z)jz9-R%P=ihW~ott&T4=y*5b+= zkA|cjNfHe`#Qo&IhKg=dhz zww}x9t*Y$+w1+mm8<*gek_C&oEHl&ytmp&eV+z1W)OiCV4Yq0|;)a}#7rHQ%xHHa& zix^q|rYebF3pgsFgHG@3~j}jaRf%b!Pf+H-NYixxpQWFh>(q@5pyX7VN3S| zf}EHZhfc?bL81aZNLWQy5s4$eiN-@(WYVi=3O=m7OF@y7tg>4{LJg=$25Eu4?i#$x z4FyDWs!Tmidw3ubh3qE3My=I2#l1nNnO1c~lV@NuqZRF^Q+AiJCPHl-r^WgIAafZ^ zM;RQ%>z)88(W=iP{ps}q!jvvikk0}J%s=I!n-5Cg3L#Em+D9;cxz~Tl9`{4nyQWQ4 z|M_~N3|_!|*p07-rl`NDhp?gNc7~Z$#!QG(qZA%Cd)B3dZ!L!9v~cL_mX`Oh~bR`1DUH~D>l*$PK z6>!m5sla@2a8hT4VYkOSWMB}Ix9~0z*e-eMp)w#bt1v?t9h#gL9J{A(@$qYC*yqIr z(Q#{QJmoVuz9>A2$v=t#8J%L2>A){6$nbjzN~YtX)#tz%22&Q0NTasEZKgm$xaR8^ zsvvr7wEKe@0|P*Q(U94-6(w`a(Sg{#I87$i9b%Zm!XAg;nvLo?KTu#BsH^0 zNeipHW=3hj=4VB)S&ClTy=-u6ji*BzGB5%PXZi%nTXmfFH#T*5_Fu6Lwx4-H=Ruor zx{V3aN7ex~F{3eHc_Fdbc+w&!f?#p7ZLOvg6eWB*fy=g zZBJPlOG<4+05+PkFz=x=Czd|S3-_hes1*x(j5P|VK`xVw7+UFwh!50NbdPm82n9H2 zvoG8g=*tkOb%4YEhiOAf*+ZRYhmYH2Z>39dDkOGLdmQ;Vv_A_ohzK5sI1F$^;=zbd zgl@&!281T7DSHD_baI0Jr%`O3K!0)lGZ*&{kmM(6a?xA8+pki>uu=%<2+odLCrULZ z9bwH^BHnBxOw9HYQ@w0oobjg^NibRKQn`FlvYrOo;4-#nM(g^Zd;lvY86$*>=X^YC z+=)87f*|Ld&c%idZbLW#(&W+heNWTLjsVpDJRd=t45oI=;51=7ht~XN_T`o9wBLYi z(z)e_R(FTnQcyfGZp_{ZJ?bVJ^*|koH`1B_E_j0DS%)-K7|6sfYcLKfz7L-QSr0@x zD#_vFLS>W^gjw0@tj7CGl36ukAsm`n z`n*nTWb}RZNTm06Agd38tGLiASOFxzAz{_7KWgL1>*Ev#lfwj8ZZVn$qE!w1dNAyp z+N@%>?kQ|qdW-!TEO*GNMLnsW{THoxV~?yUb%+L;IAA5!kgaU>@<_Qt-i}z?G|(h? z&G=Z-JB4ymneqWU7Wu)XWs+ctO@jU68ic14S%SSym#B(chCJ3AnN9@S%rr*|xCSBL z(BAGn+IHQ%2B8GjW$461ywS3ng{w3LbbjoNMXU+#gT{uOCeXw-fkO)lGpy|yDJl;C zE^C)#ocs!_rNeX^C#G?U(uP8xYm3$z(>^Ln) z&(abPXtiaUc;bO(=cJrI&nGU!5CtYdtu-^p3RsM-u(S5u_3*RsP+gL6@6bszL&g%_sjGrPYClxsST>2(y7kkSY*LVNosgZMcQmCRI=Nu?g*1ptN5m31=qc zffYNPvyRVi(8NfR)%0PPH6fu=VC&^nLD>^y^chdoIe87cR$w#OUa2E0?V1)HsLVief(^wAAOfn`P-r5Fz^S1ff0)@pHnD`O>H95n z>_F-8m;?+Id5YE`MJ-6A-59c->VsBU4E}gO_|0H?I_?sGK(LLA8T1nhIX8I_1Yu3V ze6%P60j|LEV+8QT1u#Uz0aYPQI-hB=(6`ZIA39Cw76y!-qY_V?5Ao4NHW%d% zqnfCe%DO1BtlFBkqis#IQIH`puMln>Zjew?ih*jDL{7`Wwk$iE3^D!mOt#;k%UI>Rw$)n;b-s+1zH9d8Q0dF~Ay;GNZe6~) zR#W>jR`0IX^gj9KT21lGMDx4Wp!sE@`dw>K{W8)0u3bX++tYbd$3&7bo6gd)%AJp= z4v9x#WrZ?LOt0Y_&iN9K=25W7kd9P2_{EL5;ic84|B+TOpShb^9h;O==3;m6cCs3L zGsxUG1_S+^Z+wywc+5Fxvf?PUTU&&y-^ZEKKTK_vd+StTw%9^#tO27D8KxDHk?fr2 zv&=h?eX4QTabOd83c&cYj02%8I%14!95z=7%Tay`mfW-f_^$a1Oz?0aQGk3Ixe)rF4)4r;=oFzzCWKwTHb74UZaT zB?A7FS$Y1C;u>ric?s&IkWa|fOiirXKBknpt4AMja^1l(3r)Y&6Qqx3B0QEM>*|1@AEK9Z1qk5fgkJ@hC;3q#0ip zK9Cf)*g}1@ec$D`%Fs3TnKCp8B8|e*m%}3*sz1x8;a&;R0x>Y6GIVVx5pE|zx}dI} z1|*BjogHTdajO2r1dFV;1Y^~_<5&YgG;lsT?*vEZ14JnfiFljowz6QeVJFcptZ7+3 zS=^@!Q;9m6D^S!H0Y_vkgUU_{Str=TqNS5UuY}9oVOGJdsOfRsLri_M0({~S9PAXw zjp!_;AB}!CbHRK%SY%A!6XfD@*J`s{KOZ1bI6NP!7dRm7)DH91@txB`-~=FIXDMMT zS4JIy&c9hi$AU)#YPnXa1V@#=AMKbRWGK}#Q_9eH{BGzDIz9hR2|#Q(p#VxwEb%-g zOT@J{C;h`+ijHuo76l=>Wmnw+#v@4wWpRRlvLp%;nUo8F;1%0$;{r%g(XFq z?M;t|j)@Xy6@lmVkRj>oNj5`;YDT3VFo%7lXfdBmV$Kx8L#zh*@G5;XdT+?2LL$-S zxv6NLgJ}<4;<-$cBqicN>G1&{1Z)o-s*U=H;UVAxKrOR2>Lc(>yF_8*B>YxGZ_ z{(=A2$*RmHc-F5?Cf10kINDMrO9*KQ$d~}LlmkqB8J={K z0@pSb+(CNLaXxT~l_IQA4RmQC{Cb{rLjX=Ys&)?|qGE>r!6s8dG<}tvGhk-_XorGJ z14#eSCOVTt+9k7!O4>lr1{=T=OHTu$Cx4Jp(`Ha8OL)>wrX~By0T}oix!6p@2ul@1 zGCU@#r`Tk6`xGg|fe0oEn9Gydlp2996?zI#jHeYln#8Zy@KUBV6Zqyt;(LugGL=rt zbyFa#^dkP;{Rq=_7)rg=__SiIv#RN;LOf0b|5mL-Xe{FK(#Xl>n^}VuXR1>=aoG2? zP*n%qoQxA48HY;_R`wq5?|$Ar1Inx2+5P-|EFu;>kUam8GV|P80LZqNjuFnb?HHju zk!l9Y>Bvs9%h3;YG+xYz*ax5nM3Eqg2~KG%I!L9EfVrnh7egbIA{VpH8dSeCN4eZc zoLVQmZCn*5-~p2;0J8!urZDqo`XwMrMD7DPuxY>=+r*lh0(oiL&YBA0v+3mtR87`U zJ%y8^rwP6+QylNe1D(j~ulNEwkPNY@VCn_?xo)V;V^u#F1SO!!h~gf`l5%WQe9T769Q~*Yi5_d=`I_?98x@%@ym{i%J@>RkTrpprs9I~aD`AG4~B*etvL)D5@(Nx zoJYY!E@kF;&PNy>$Ef4bZi9|#FZaWXxJq%IVa2z&>TpkGMg^^MT@TofRa8z0&TCQm zwg=6{1V{(fbPSm$La55l6JLl$7!t9FhU0{cPU3E|LrUq5q+Lv16D9N#4GenfEV~mR zm??;UO~+`6-6ti7OS1H6`~GsX!jJ{j`RUXVgNJ0~rk#wOD}7NRL$dV28ury7;C;v0 zcr54xLdMybV|@?`&Z?4P@b!E~oLoVW#LF%FkSP0+t;HDrg<{RSRAfpPoE%qIf8&x9 zB7T06PgOP#ZK{r^c0XA0%Vm|)Ox4jzv{sytiXL2=g5bS!8Zwn9=0VZ7rhb?$2Y9VL z$KK3owrhRlaB?vWNM3O(;RaESgaVSe6>w9t_OiYT#VKe3cj6l`zlBFfTCQ(E=ED2C zd;7L2_N)Hts{6_p8OMCWIkD+>lck4RN4)7n4?H41Es^7wsMQ)6T(s~-ol&(TNmasF zW3y|pyBuyB6Xd~wY;)DK$7*1aw?$m-j(Zo6I5^Vzm-U0>ZhkXa>f=9!jK^}~%wcr7 zvPL&d(W^3o7z~UI6Evz)=PHCs2n>H=^bdq3%D4_P+3 zR#OwzjSqLgE^vo>s3)0^%xRx^PWxLCnB@``4zSyb8c5gL&`ya^2Wgvw$uDRgVoxp1 z3c0#OO=#CVwn$=;WB)Lf<2#^jLZ+wTyo!ce7n;Ed4u%fhegsbT8Y{DTm&TRoi~S+t zL)aC;WGqQg61SM;#T*+fuHhQ$Cdk;Y7M82fcwuL3cMOzA;ruCII}nhj8a@=d+Ot?s zRZbTZ%VIk}jw7KK5meEZ04L~<3NMr|=$f}K33p_dFsA^aZy2SIrgv^#fSngz)l|pI z^T|d>k=;V)-#N_5v&qMOR~2K1NCUoXTE5w4VH42}YkY7NH^;6wpQz-b=K@sGZ zCbbhd_#)I3ry~Zsdpb-9u+tzyN#{ubj?4>tPa0s-aP$e3)TwichQ zJbWFhwtTQsVd=P2JKfL%ijfk&rzT&)X=8+b4a_G{a)fS_hD^KgL)0fk59c#*Z{gWV zmWy#Ut7}~gidWYRU=ITbU*iYP8!Hf6#Sy5>wQh0;C3A%yCcYE+F-to^B~fvZ=ZR|o z+c~!TJVX1i;i#*f#~;ffVuC{?3G3zDUZgs%QibCYof)Zjh-{+&5l(!GNo%+3pWkwuQZ&|v6;>F z77g0%?cN=aPi{2pJ@gX}Y=e;R@R%kiOBO|H8eR7i|HNaHeKp{&qqtQ@UWoKUu={;x zv_**rULm8n;t>+kxum;;#S;RXOE6tq%^~d=@j-VgrrqugdD!IY^10ERCU64!Irm_du<2DxFiuPb zL!pC))PZU~KwKA<&XK`m^(L;-ByoF+isMUVi6Q4L-|a1t)}5}S`$|6mq^Z^rykZ#R z%qg=7j&EGJmC+pO4+CUwP0gfkWOR7Zka{GS5d2Uy#!;vU>-;o+bgf}xBZp-TxLeWH z!AYg&Q;w>h0`0JMSl85>AHi;JR>-J62d?an$qOLo=CXdP#O}!N(8+f7&S@fUw|our zW;-qs$1v=?(4)-d$WhXvXMleWD`W0CT}=eOL5I0m_uz>Lyg7`pkb#NkLZv?X*04V+ z4advKkbkB}2@!x`6^_ZzILC^jVi^iDEgC2ZjP_<*`)QJf6c$r_*WK~ZH&kn4*mc+gxJ+p)_nYM`D?WF zby54KPLcJHTNQeQ{u%9~Y$whq;+EDCBGKRMl@N7joJ)RDzV z%c-3UP14?EjQWs~^8Y#|YI6SVS@2%4=)slB2UXgDJEpRKrEL`PsyBd&5n7IdQ0J++ z`lE~!GJIc{+Y(p6bSJXlf$ixK)lt0+^jampHo!6cZgP~(B+N9O93}S`l&{Z4pm|K7 zIjwlZcBEuCdCceyPj<)9gHVA8nB3c>Fl(l^#aO`9@j?H?)TJ^tQR6MfV;X*_97x_l zwP>_ed@-tkatrx8Dn;NC=A8$09@Q1|Hc}|1O!$2lKIn1k$8dB^M}M6=KW_%}_BtO>>_n zDD@EVot%}!P`BVZPABBH0sY(YbZ+++@XjbzSBX8qiK?T!VspDYwZ&jz!B&c_j+ zeKO@Jqg}tr9RZ|^5*N32*O#)Hy2aSh)UiWOsJGV*#u$LcgA$|_045f!@P(2{?5CzJ zZu~O}mqeC<@(T;C{wAFYESIN^j{`467&BX`+GWi3ij4bLkaJcVlubA> zCZwt|Ej6UMHWHa23$(Rd6(+nF_Ws&s24#1woG@!^_6ZI&bOuE6Y#vSUZ zr>BT100q`g5PoNx>)#R5Z8-|#Iz5eoD|t1S!gKo6Xj%^F@vE@5Xf5qEbg}}GXD{SP zSN-|@hSWy5qrdnLv(1)Y;+6&YDSNQjIQ!}E>Z8e&$f1-oF2qz_Qp`Cem|jVFR(uhW zWOu~u@>N)^Y^yRVGge8Kr9dassks#2Ha(V~DUHQObQ6{Hl^V&w!4MhAr;&^h<0Z>7 zhr&xjBh;(F+ww@lFH#ON79_6y zZUtg&rs-i2^xWNxKb4x`Tu3TLz|-72XC1N)F&KIhmqV-*8-TcEb7Y*&N_64+I>!t- z^vN^CtWV4&s+N6$0G~i$zcAl8d>pEAKEc@3^lW&mn9M3{;WtU@tZUAj&Scda)r_Qx z$qVbrkk7`=reG67H;w0_aM_@v`g}%{$*S*kFq6_8b$*1+Ai!h=)U2Mm9Oa|N!ImY- z$g~QoT?^o88cvrvMTuFmDq-4!+>pjpw4g)=An%<|fr%Om>P4aR79WBRI4$!T((oZu z3=_haak(aXzvO2@Jp?y7eATikT!uldb(wNPkn;mpahchU%S%#MN=hw>A{Z+&6K6t3 z5`5R;53Qg(PK#m25en`Nk>rFe#)Krvmhq8uJvZS*DxxEfEhjDHALKRwZ%#88l&`oI z4pd75Z!IG6WD>8bkXvJR{+$yJf!S|1*AIXv!Zvo3NH<_pPR_prWy#?Z`kFo@i>3~+ z$20*yFTKtNL*jZHYeY%64C^U^QUH}{oyc3YlxnujsN1l{oX6Oq?%csT4VxELMWi%^ z;B*Kf$?c70_vmlwCt z_MV8l=+}D1L{Y?1scF-|gY@EN5=q_Y^Kbh;Qcd~RfH8Tq+Z2B&aM8l)%sFtJInh1< zsGjw|V6Q0{pYMJ#pRqqL@h=A}J!{O^B}z_tR?N*qOc^IAf^y*@GI7I^+@bae zrYq1aM#8rqCiOLUTh%BT3R+>fC|-;}RdTS+?D+>VORy;ND%!}axRhm=*!f%E@~ob4 z!J1Xls9G5W*gIjmF1CTJkMW6%CSfA1L`&B_`Mo61(ZS$qa{1aKekoPLRvVodly*|P zPIXRfVEKq^rvM|I-9JQMEfkd33=R{j%Oq9(b5W*JJtk`uDUY^XBvi@pnlU&lfzXjz zzwohcd=y(7xZ~esY_d^8+@&K{EJ(&FJ3Oe+lk-i%-BDUBnV&SvBE>UskspoE{}IZa zPgtFUhMd1&A@6+1z(;ywDv5%IFV73U+`dFV#(lovF+{|THyD2dBEz+^?Q5GSPxcR1 zw)b!C?otvg@^0Wjs`10=U+t}uJj16~s#~BntoC~0x9;WMXY8iNHX4MKp#x;CgMz4O zehJcNHKx;y68FHNM5wh4jTfiMnD&(a2!XYC_2NE?>aWY@kBigl9u)B6e#tHjZXh@+Fsh$HW^~GYm+fQ`M+u_yIc^i1j#lp#i&ipdk9~2db|JYH#qd4OBKErB;*RdvXu`K+l>* z0(S||U+nhF{V()iUSB4gtzM%!-MoB(L0aoliCG^~*b4oW3JXb*)k@YzQLA}Z^W5_Y@$4-ZzZUE8>Ru<~1- z+)_PMwHmSS z-qCRW9dMt}vAaey+fhyPzK7IL6+PM`&Y2BWzs0RDfHn|~DIp^rnw@9ND;phA-I>Wq z$~m7-DUCc}37y7Ev$rV;fXpm9hF2Q!mf4fzlt`l-H#n09NT2|GX z52&`*{HNFkW zznl>7ewnUy5-5(ie)-<5|6IKz;>xDpZPu^zk-2Bv%LJ!{z#&|Oz*&PjOmdx!c@%PluU6><$c%o{q8rxXhU<#9Nu7x5l`gLt z*2l$%go`>F5=CLpF8L6DJQ{yI2BBN@fwEJgxqAT8RrVaLQeGLnU_%py9jj3paG)J3LG(q0M2zAq4bR((w~%{O7;WUNM7Q+omJM#Ye_li9J0 zNlp*vST=YRPagU!+?V1=pz*GN2_9K!!`)h&z$)5w(*|z6RZ>-SW(hgF90H$Q#ApuH z+no4HMC4^eWtbFyUJEL!kuH7$g(W-=5_TH}Fzl@MR*{x%lYd^Na(%p|Dkt)VBt&5G zzTQ`*1V`8c43{!gI&|y@mGp@HxgqgWD3C`!rzd`e&^08`^Z+(b?jxv&{3VP)BJ_o+ znvky&st0DZ3OdXbF;3;y5dfP}nUs1qs^a8FfeZ<2tbkz{oB;8Mwh&sEjU`7g%(p5B zbjSOjy`v_Cmps3=`9k25w45xuKD=^vJf93Me>v7Oz09>I(`Q+EGQ8x~d3xywS9T=~ zFAJUVs10+TMiI4W)Y$$X+hNZ_Yv0^!)uBLe31@r z@;$ZUN)PO6=3eLX=!6~HBeez?`}(Tv;3R*cfsg zYhP5eOQEUdBv74)04(Hm(vUE(YU(z|xWiQjk4L<#hb=i*AT0>a3aSuyOsx%F;x&S) zZIaS6spG6L{#`R+ft`n+6*LSG!)TRC2L&T6c_m%dVEJN;||A9(Zo$yBmqB zqZ;ruF$*)@g$2#+JWuc(u`^5SkhRvLfy$MnBCU6a>U0?Q_6jZIq)5i}ch}s(+qSlS z%eRPmMskj=LbBD{vVS{PDZ83B*YQWQ{pkMI`WF0iu<{s`i>*HXwz+OU-VXiP>#Nt< zlWn%P+~Au%&>i+}+3WYG9QDqRV87;RVRp9?g;f^jU&U{#HfMLg!v}(?Z_OZ<5jgFuT4D;FmsmmB_^cfVR%PfP@&yE|W~vvg zs@Q~^-UM+RcPWihhvTv;b_B7Gb;guXVN(9AGd_X8h7<{LeTT@``pdn|WyHwR!(ryx zEel8qD&V7r((qfcglidvFT8~qM%YG9p-_~SCJ+Voy>&oFa3GWSW#VzP3jwi^EFu6# zyR*Q0#5UF(2lelTN>F?XmYQ`LLbh!EemTX-W)g%zJedW5e@z#zU*a2ndHN$ij;my@&s37(B(~jOVdT z1D5bWo3itClof~+nWQIC?3x%I&fl4j@~PRobw3VmBOC>eHacv@lf>H56w>eVnI})= zQ~>AYQAM7Egc=R_^wj`qus}ZVYst-xWP3fid9`C4>jkCN({-!%|9$;8 z??FnWeHap=T~T}U%bM23sw0ReH~Vw+g%Z0m$}0T9mveV|t53TT<`PWzE|FiTG6J|s z0_L)qv;mU&BYIs0h4btd_M|7iXC}9RHN-DO%zK@rH>iE#=%R%*+(^E$8;(;w96r0q zYWO850OPhplmRj*dFlg7W46LSV@w=kE(uIJ_Qcpm6FySQII>`O>=C*c!(m>O>SUD~ zP^jS;<_@b$sM20d8r1y4#L5hSyQMl(96*BVmSo88i%3n#`r*}24;(SIRAU`rU7Nx< z%Qi>@)UR+@OQPJ7=ffh>tUPAvBtOZP1M}>60(Q5C!reaNvm~EeTX-3SFBXi2ZCl(zX*2(zREWvcokg`yzFr^0$+j~DTpwXC`iqKDBXzSjzV2+*%Vxh zW-?`c4OEIRw{-B54++};T6?i#OapGFWku^?* zP@xXMgeg|f2`GMZ@{!@#l-}|SCl!kgfK$2zcs5qm;DogMH>?!54|(OrefY5(GC)g} z0xs!8(6W)vSbB|LeUzn8mr&wG&sy#V?Sxod0xQ_Hy@6f zQFC^|yD7~Wjsf6ZsiH*(TzU?Q1`stJCyka^E4^~g=M0>6NZ{k=-dE_L7}5O1Q76x< zIcH3%z;aFjJ#cilA7z(2zWi>{y2S5jT>?0uo~0$GZ#*F57c(szbQa3|2=yM#&|<~< zQ9-558uTHEPBOt_UFVW|ex5>yl?0U0nh}YTMIybBbMqSdgz9h*6TwA?2LvfRUYAr+ zh_a#oVdSfv4yLG*?oxOj)=NbuQz$S9$iY!l#II0fgb$BX2)Z3wyBG`CSg{10h%R&V zuq6MtPGX;slhqS-JJy$RK7d?h9TGufk0X#mwgYAr)*Yx6{|34s^}HNQ&7ahp6zD?d zx;PDG;T@_wpiaO4@b<&x(ZiePZ#hH=0lbB{CLGv^`-zA_F&jfhbetVAd6gYbh@ccy z&oYJRP+ZJ`$~YvMq;DF<_^9|672DOYw1@dD4QcC8?9KB85g$Tk)qpu{NY~36$eM`W z6phh;e4fvO?Rl)X=W)gf08EdX$~r@VK$!?wKEzHD3Nz)`LuH$(0`QH9oUZ0bv9I6w zihkpGS{%LjdtC)DE*K!pcDzL6x2u=G7Fjk`J}vy46?os5whSN5tG;c87+xWa+V-{L z#V~2vpB?9NQpS$k^{Ha-3mZ->QLiLd{JIAN2id9Y?dRX8{7vFO4Jg3kmk8zvixqoL zNp;ra3?H7qW2HyJ1_`s*oPG=+~6e-?w-%&SdF?D!W zt4Xjk&J5N23TOo{+$RN>F?G~iuh9xHo+=JopM)&~YN7%PN*reif0`8Y$pA#*q1x%i z$St0{FmUzZbUdCu0|+85r5hNIpz1BJ?L6AwefWU=H=qCA-~HV;-gsjl>z*KD@aDbU zo8W_5bRn(!-Os}>+!t)@Fh4;yb^hMoqOaiK^aI)nc!XuHb}4(HF?L?BY)(<=uNUk z_sQWkOQm>uH(A9!VH?*;kkJF$mjJ*Od2i^?C_d~-K}y)$2Wa@+Aw_?qdUN>3SUIZ$Rq|dzQq!rgB-ra}0@4Z0z zICsAzg06FxBO&y{`m@5>5GVV%umb8w3rH(D%iU?ZzHkurYwZ&KYT{^Y>snAm;#b|d zb?Dq}G@cc!>sog`9iJShHMf!o0&+(q1CT6Tz#LD5u2y+4P?^49uzKXOCAA$cjxky^X@NFNDt5tAd z?CIskfAfOzf6&M^uPqN<1C|bv2cq_L>T2Ib!hVWrlAJwDYp~K)N5}*3&3EmPac9qc zkQzwv)_laUVuyKMF6g7`q}%g^$R?3cbX%w*-5vxy7+lM4ATq5`C!dv|d|?!agxu66 z)q1}_2CxOIZVKXgqlew_i2HPsiKd|n5Tw2_^mbacKn+nQ%xV|bTiRytkK59YJ`=@g z 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

yqb6Ou#RTK^aatSDpL7%X^ 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�MCJiDX(V404n-2hh&~HPwnSRs*9Y2U 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�K4W;HPfv58wRydi4IE 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 z z`#mLpRC}Nz_2OMeSGtA-UVIiA44ow}GZJ$!khYu2Pzc%=MOsWXhK|%qhC)>bEMQRX z)(*H*m*#X3W9mgn3c!1gvJo-y2PdidH()CHjd&fe`B<i!inoaL%q8Y($JiDmD6_rDm3V0jRfy8EP+8LU`$lxEn9L3CGL| zD4{zl4@319-ap!M$Ku+ zOOslJAE|H-AyT3k?*3KWr(n1}V0tk>0{Kpj-T5);Ymm^nwh*#L$5@k%i-1YVz2qLw zr_|F^NRJ*lNWM!I^@EY4V4=?c#kPDb4>!I^M3CiNzg|Cgtt=5?U8co2-y(@uq-vjm2C=P)t0_M|YP9J^l z-DAsX>QX0SOOFd}Z{sdy`iKnE0*qaMN?}F4AW7m*q~u|61cDBEPe#MYjY3JIu?@=prgx(h=to#7%7%< z4n`qc+GU53k``HuK_tV5AsHx>I*EZ;SOeT2iO`vRwTTvol<1^@3 =x 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 L$lci;} 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

2y*)A^>!T|IfX<>!JV8gS7`=?7yFj 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

;{Bsc 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 +
+
Data Structures
+
+
+
Here are the data structures with brief descriptions:
+ + + + + + + + + + + +
 Clzma_allocatorCustom functions for memory handling
 Clzma_blockOptions for the Block and Block Header encoders and decoders
 Clzma_filterFilter options
 Clzma_index_iterIterator to get information about Blocks and Streams
 Clzma_mtMultithreading options
 Clzma_options_bcjOptions for BCJ filters
 Clzma_options_deltaOptions for the Delta filter
 Clzma_options_lzmaOptions specific to the LZMA1 and LZMA2 filters
 Clzma_streamPassing data to and from liblzma
 Clzma_stream_flagsOptions for encoding/decoding Stream Header and Stream Footer
+
+
+ + + + diff --git a/xz-5.4.5/doc/api/base_8h.html b/xz-5.4.5/doc/api/base_8h.html new file mode 100644 index 000000000..417ccefa6 --- /dev/null +++ b/xz-5.4.5/doc/api/base_8h.html @@ -0,0 +1,580 @@ + + + + + + + +liblzma (XZ Utils): lzma/base.h File Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + + +
+
+ +
base.h File Reference
+
+
+ +

Data types and functions used in many places in liblzma API. +More...

+ + + + + + + + +

+Data Structures

struct  lzma_allocator
 Custom functions for memory handling. More...
 
struct  lzma_stream
 Passing data to and from liblzma. More...
 
+ + + + +

+Macros

#define LZMA_STREAM_INIT
 Initialization for lzma_stream.
 
+ + + + + + + +

+Typedefs

typedef unsigned char lzma_bool
 Boolean.
 
typedef struct lzma_internal_s lzma_internal
 Internal data structure.
 
+ + + + + + + + + + +

+Enumerations

enum  lzma_reserved_enum { LZMA_RESERVED_ENUM = 0 + }
 Type of reserved enumeration variable in structures. More...
 
enum  lzma_ret {
+  LZMA_OK = 0 +, LZMA_STREAM_END = 1 +, LZMA_NO_CHECK = 2 +, LZMA_UNSUPPORTED_CHECK = 3 +,
+  LZMA_GET_CHECK = 4 +, LZMA_MEM_ERROR = 5 +, LZMA_MEMLIMIT_ERROR = 6 +, LZMA_FORMAT_ERROR = 7 +,
+  LZMA_OPTIONS_ERROR = 8 +, LZMA_DATA_ERROR = 9 +, LZMA_BUF_ERROR = 10 +, LZMA_PROG_ERROR = 11 +,
+  LZMA_SEEK_NEEDED = 12 +, LZMA_RET_INTERNAL1 = 101 +, LZMA_RET_INTERNAL2 = 102 +, LZMA_RET_INTERNAL3 = 103 +,
+  LZMA_RET_INTERNAL4 = 104 +, LZMA_RET_INTERNAL5 = 105 +, LZMA_RET_INTERNAL6 = 106 +, LZMA_RET_INTERNAL7 = 107 +,
+  LZMA_RET_INTERNAL8 = 108 +
+ }
 Return values used by several functions in liblzma. More...
 
enum  lzma_action {
+  LZMA_RUN = 0 +, LZMA_SYNC_FLUSH = 1 +, LZMA_FULL_FLUSH = 2 +, LZMA_FULL_BARRIER = 4 +,
+  LZMA_FINISH = 3 +
+ }
 The `action' argument for lzma_code() More...
 
+ + + + + + + + + + + + + + + + + + + +

+Functions

lzma_ret lzma_code (lzma_stream *strm, lzma_action action) lzma_nothrow lzma_attr_warn_unused_result
 Encode or decode data.
 
void lzma_end (lzma_stream *strm) lzma_nothrow
 Free memory allocated for the coder data structures.
 
void lzma_get_progress (lzma_stream *strm, uint64_t *progress_in, uint64_t *progress_out) lzma_nothrow
 Get progress information.
 
uint64_t lzma_memusage (const lzma_stream *strm) lzma_nothrow lzma_attr_pure
 Get the memory usage of decoder filter chain.
 
uint64_t lzma_memlimit_get (const lzma_stream *strm) lzma_nothrow lzma_attr_pure
 Get the current memory usage limit.
 
lzma_ret lzma_memlimit_set (lzma_stream *strm, uint64_t memlimit) lzma_nothrow
 Set the memory usage limit.
 
+

Detailed Description

+

Data types and functions used in many places in liblzma API.

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Macro Definition Documentation

+ +

◆ LZMA_STREAM_INIT

+ +
+
+ + + + +
#define LZMA_STREAM_INIT
+
+Value:
{ NULL, 0, 0, NULL, 0, 0, NULL, NULL, \
+
NULL, NULL, NULL, NULL, 0, 0, 0, 0, \
+
LZMA_RESERVED_ENUM, LZMA_RESERVED_ENUM }
+
+

Initialization for lzma_stream.

+

When you declare an instance of lzma_stream, you can immediately initialize it so that initialization functions know that no memory has been allocated yet:

+

lzma_stream strm = LZMA_STREAM_INIT;

+

If you need to initialize a dynamically allocated lzma_stream, you can use memset(strm_pointer, 0, sizeof(lzma_stream)). Strictly speaking, this violates the C standard since NULL may have different internal representation than zero, but it should be portable enough in practice. Anyway, for maximum portability, you can use something like this:

+

lzma_stream tmp = LZMA_STREAM_INIT; *strm = tmp;

+ +
+
+

Typedef Documentation

+ +

◆ lzma_bool

+ +
+
+ + + + +
typedef unsigned char lzma_bool
+
+ +

Boolean.

+

This is here because C89 doesn't have stdbool.h. To set a value for variables having type lzma_bool, you can use

    +
  • C99's `true' and `false' from stdbool.h;
  • +
  • C++'s internal `true' and `false'; or
  • +
  • integers one (true) and zero (false).
  • +
+ +
+
+ +

◆ lzma_internal

+ +
+
+ + + + +
typedef struct lzma_internal_s lzma_internal
+
+ +

Internal data structure.

+

The contents of this structure is not visible outside the library.

+ +
+
+

Enumeration Type Documentation

+ +

◆ lzma_reserved_enum

+ +
+
+ + + + +
enum lzma_reserved_enum
+
+ +

Type of reserved enumeration variable in structures.

+

To avoid breaking library ABI when new features are added, several structures contain extra variables that may be used in future. Since sizeof(enum) can be different than sizeof(int), and sizeof(enum) may even vary depending on the range of enumeration constants, we specify a separate type to be used for reserved enumeration variables. All enumeration constants in liblzma API will be non-negative and less than 128, which should guarantee that the ABI won't break even when new constants are added to existing enumerations.

+ +
+
+ +

◆ lzma_ret

+ +
+
+ + + + +
enum lzma_ret
+
+ +

Return values used by several functions in liblzma.

+

Check the descriptions of specific functions to find out which return values they can return. With some functions the return values may have more specific meanings than described here; those differences are described per-function basis.

+ + + + + + + + + + + + + + +
Enumerator
LZMA_OK 

Operation completed successfully.

+
LZMA_STREAM_END 

End of stream was reached.

+

In encoder, LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, or LZMA_FINISH was finished. In decoder, this indicates that all the data was successfully decoded.

+

In all cases, when LZMA_STREAM_END is returned, the last output bytes should be picked from strm->next_out.

+
LZMA_NO_CHECK 

Input stream has no integrity check.

+

This return value can be returned only if the LZMA_TELL_NO_CHECK flag was used when initializing the decoder. LZMA_NO_CHECK is just a warning, and the decoding can be continued normally.

+

It is possible to call lzma_get_check() immediately after lzma_code has returned LZMA_NO_CHECK. The result will naturally be LZMA_CHECK_NONE, but the possibility to call lzma_get_check() may be convenient in some applications.

+
LZMA_UNSUPPORTED_CHECK 

Cannot calculate the integrity check.

+

The usage of this return value is different in encoders and decoders.

+

Encoders can return this value only from the initialization function. If initialization fails with this value, the encoding cannot be done, because there's no way to produce output with the correct integrity check.

+

Decoders can return this value only from lzma_code() and only if the LZMA_TELL_UNSUPPORTED_CHECK flag was used when initializing the decoder. The decoding can still be continued normally even if the check type is unsupported, but naturally the check will not be validated, and possible errors may go undetected.

+

With decoder, it is possible to call lzma_get_check() immediately after lzma_code() has returned LZMA_UNSUPPORTED_CHECK. This way it is possible to find out what the unsupported Check ID was.

+
LZMA_GET_CHECK 

Integrity check type is now available.

+

This value can be returned only by the lzma_code() function and only if the decoder was initialized with the LZMA_TELL_ANY_CHECK flag. LZMA_GET_CHECK tells the application that it may now call lzma_get_check() to find out the Check ID. This can be used, for example, to implement a decoder that accepts only files that have strong enough integrity check.

+
LZMA_MEM_ERROR 

Cannot allocate memory.

+

Memory allocation failed, or the size of the allocation would be greater than SIZE_MAX.

+

Due to internal implementation reasons, the coding cannot be continued even if more memory were made available after LZMA_MEM_ERROR.

+
LZMA_MEMLIMIT_ERROR 

Memory usage limit was reached.

+

Decoder would need more memory than allowed by the specified memory usage limit. To continue decoding, the memory usage limit has to be increased with lzma_memlimit_set().

+

liblzma 5.2.6 and earlier had a bug in single-threaded .xz decoder (lzma_stream_decoder()) which made it impossible to continue decoding after LZMA_MEMLIMIT_ERROR even if the limit was increased using lzma_memlimit_set(). Other decoders worked correctly.

+
LZMA_FORMAT_ERROR 

File format not recognized.

+

The decoder did not recognize the input as supported file format. This error can occur, for example, when trying to decode .lzma format file with lzma_stream_decoder, because lzma_stream_decoder accepts only the .xz format.

+
LZMA_OPTIONS_ERROR 

Invalid or unsupported options.

+

Invalid or unsupported options, for example

    +
  • unsupported filter(s) or filter options; or
  • +
  • reserved bits set in headers (decoder only).
  • +
+

Rebuilding liblzma with more features enabled, or upgrading to a newer version of liblzma may help.

+
LZMA_DATA_ERROR 

Data is corrupt.

+

The usage of this return value is different in encoders and decoders. In both encoder and decoder, the coding cannot continue after this error.

+

Encoders return this if size limits of the target file format would be exceeded. These limits are huge, thus getting this error from an encoder is mostly theoretical. For example, the maximum compressed and uncompressed size of a .xz Stream is roughly 8 EiB (2^63 bytes).

+

Decoders return this error if the input data is corrupt. This can mean, for example, invalid CRC32 in headers or invalid check of uncompressed data.

+
LZMA_BUF_ERROR 

No progress is possible.

+

This error code is returned when the coder cannot consume any new input and produce any new output. The most common reason for this error is that the input stream being decoded is truncated or corrupt.

+

This error is not fatal. Coding can be continued normally by providing more input and/or more output space, if possible.

+

Typically the first call to lzma_code() that can do no progress returns LZMA_OK instead of LZMA_BUF_ERROR. Only the second consecutive call doing no progress will return LZMA_BUF_ERROR. This is intentional.

+

With zlib, Z_BUF_ERROR may be returned even if the application is doing nothing wrong, so apps will need to handle Z_BUF_ERROR specially. The above hack guarantees that liblzma never returns LZMA_BUF_ERROR to properly written applications unless the input file is truncated or corrupt. This should simplify the applications a little.

+
LZMA_PROG_ERROR 

Programming error.

+

This indicates that the arguments given to the function are invalid or the internal state of the decoder is corrupt.

    +
  • Function arguments are invalid or the structures pointed by the argument pointers are invalid e.g. if strm->next_out has been set to NULL and strm->avail_out > 0 when calling lzma_code().
  • +
  • lzma_* functions have been called in wrong order e.g. lzma_code() was called right after lzma_end().
  • +
  • If errors occur randomly, the reason might be flaky hardware.
  • +
+

If you think that your code is correct, this error code can be a sign of a bug in liblzma. See the documentation how to report bugs.

+
LZMA_SEEK_NEEDED 

Request to change the input file position.

+

Some coders can do random access in the input file. The initialization functions of these coders take the file size as an argument. No other coders can return LZMA_SEEK_NEEDED.

+

When this value is returned, the application must seek to the file position given in lzma_stream.seek_pos. This value is guaranteed to never exceed the file size that was specified at the coder initialization.

+

After seeking the application should read new input and pass it normally via lzma_stream.next_in and .avail_in.

+
+ +
+
+ +

◆ lzma_action

+ +
+
+ + + + +
enum lzma_action
+
+ +

The `action' argument for lzma_code()

+

After the first use of LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, LZMA_FULL_BARRIER, or LZMA_FINISH, the same `action' must be used until lzma_code() returns LZMA_STREAM_END. Also, the amount of input (that is, strm->avail_in) must not be modified by the application until lzma_code() returns LZMA_STREAM_END. Changing the `action' or modifying the amount of input will make lzma_code() return LZMA_PROG_ERROR.

+ + + + + + +
Enumerator
LZMA_RUN 

Continue coding.

+

Encoder: Encode as much input as possible. Some internal buffering will probably be done (depends on the filter chain in use), which causes latency: the input used won't usually be decodeable from the output of the same lzma_code() call.

+

Decoder: Decode as much input as possible and produce as much output as possible.

+
LZMA_SYNC_FLUSH 

Make all the input available at output.

+

Normally the encoder introduces some latency. LZMA_SYNC_FLUSH forces all the buffered data to be available at output without resetting the internal state of the encoder. This way it is possible to use compressed stream for example for communication over network.

+

Only some filters support LZMA_SYNC_FLUSH. Trying to use LZMA_SYNC_FLUSH with filters that don't support it will make lzma_code() return LZMA_OPTIONS_ERROR. For example, LZMA1 doesn't support LZMA_SYNC_FLUSH but LZMA2 does.

+

Using LZMA_SYNC_FLUSH very often can dramatically reduce the compression ratio. With some filters (for example, LZMA2), fine-tuning the compression options may help mitigate this problem significantly (for example, match finder with LZMA2).

+

Decoders don't support LZMA_SYNC_FLUSH.

+
LZMA_FULL_FLUSH 

Finish encoding of the current Block.

+

All the input data going to the current Block must have been given to the encoder (the last bytes can still be pending in *next_in). Call lzma_code() with LZMA_FULL_FLUSH until it returns LZMA_STREAM_END. Then continue normally with LZMA_RUN or finish the Stream with LZMA_FINISH.

+

This action is currently supported only by Stream encoder and easy encoder (which uses Stream encoder). If there is no unfinished Block, no empty Block is created.

+
LZMA_FULL_BARRIER 

Finish encoding of the current Block.

+

This is like LZMA_FULL_FLUSH except that this doesn't necessarily wait until all the input has been made available via the output buffer. That is, lzma_code() might return LZMA_STREAM_END as soon as all the input has been consumed (avail_in == 0).

+

LZMA_FULL_BARRIER is useful with a threaded encoder if one wants to split the .xz Stream into Blocks at specific offsets but doesn't care if the output isn't flushed immediately. Using LZMA_FULL_BARRIER allows keeping the threads busy while LZMA_FULL_FLUSH would make lzma_code() wait until all the threads have finished until more data could be passed to the encoder.

+

With a lzma_stream initialized with the single-threaded lzma_stream_encoder() or lzma_easy_encoder(), LZMA_FULL_BARRIER is an alias for LZMA_FULL_FLUSH.

+
LZMA_FINISH 

Finish the coding operation.

+

All the input data must have been given to the encoder (the last bytes can still be pending in next_in). Call lzma_code() with LZMA_FINISH until it returns LZMA_STREAM_END. Once LZMA_FINISH has been used, the amount of input must no longer be changed by the application.

+

When decoding, using LZMA_FINISH is optional unless the LZMA_CONCATENATED flag was used when the decoder was initialized. When LZMA_CONCATENATED was not used, the only effect of LZMA_FINISH is that the amount of input must not be changed just like in the encoder.

+
+ +
+
+

Function Documentation

+ +

◆ lzma_code()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_code (lzma_streamstrm,
lzma_action action 
)
+
+ +

Encode or decode data.

+

Once the lzma_stream has been successfully initialized (e.g. with lzma_stream_encoder()), the actual encoding or decoding is done using this function. The application has to update strm->next_in, strm->avail_in, strm->next_out, and strm->avail_out to pass input to and get output from liblzma.

+

See the description of the coder-specific initialization function to find out what `action' values are supported by the coder.

+
Parameters
+ + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
actionAction for this function to take. Must be a valid lzma_action enum value.
+
+
+
Returns
Any valid lzma_ret. See the lzma_ret enum description for more information.
+ +
+
+ +

◆ lzma_end()

+ +
+
+ + + + + + + + +
void lzma_end (lzma_streamstrm)
+
+ +

Free memory allocated for the coder data structures.

+

After lzma_end(strm), strm->internal is guaranteed to be NULL. No other members of the lzma_stream structure are touched.

+
Note
zlib indicates an error if application end()s unfinished stream structure. liblzma doesn't do this, and assumes that application knows what it is doing.
+
Parameters
+ + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
+
+
+ +
+
+ +

◆ lzma_get_progress()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void lzma_get_progress (lzma_streamstrm,
uint64_t * progress_in,
uint64_t * progress_out 
)
+
+ +

Get progress information.

+

In single-threaded mode, applications can get progress information from strm->total_in and strm->total_out. In multi-threaded mode this is less useful because a significant amount of both input and output data gets buffered internally by liblzma. This makes total_in and total_out give misleading information and also makes the progress indicator updates non-smooth.

+

This function gives realistic progress information also in multi-threaded mode by taking into account the progress made by each thread. In single-threaded mode *progress_in and *progress_out are set to strm->total_in and strm->total_out, respectively.

+
Parameters
+ + + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
[out]progress_inPointer to the number of input bytes processed.
[out]progress_outPointer to the number of output bytes processed.
+
+
+ +
+
+ +

◆ lzma_memusage()

+ +
+
+ + + + + + + + +
uint64_t lzma_memusage (const lzma_streamstrm)
+
+ +

Get the memory usage of decoder filter chain.

+

This function is currently supported only when *strm has been initialized with a function that takes a memlimit argument. With other functions, you should use e.g. lzma_raw_encoder_memusage() or lzma_raw_decoder_memusage() to estimate the memory requirements.

+

This function is useful e.g. after LZMA_MEMLIMIT_ERROR to find out how big the memory usage limit should have been to decode the input. Note that this may give misleading information if decoding .xz Streams that have multiple Blocks, because each Block can have different memory requirements.

+
Parameters
+ + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
+
+
+
Returns
How much memory is currently allocated for the filter decoders. If no filter chain is currently allocated, some non-zero value is still returned, which is less than or equal to what any filter chain would indicate as its memory requirement.
+

If this function isn't supported by *strm or some other error occurs, zero is returned.

+ +
+
+ +

◆ lzma_memlimit_get()

+ +
+
+ + + + + + + + +
uint64_t lzma_memlimit_get (const lzma_streamstrm)
+
+ +

Get the current memory usage limit.

+

This function is supported only when *strm has been initialized with a function that takes a memlimit argument.

+
Parameters
+ + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
+
+
+
Returns
On success, the current memory usage limit is returned (always non-zero). On error, zero is returned.
+ +
+
+ +

◆ lzma_memlimit_set()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_memlimit_set (lzma_streamstrm,
uint64_t memlimit 
)
+
+ +

Set the memory usage limit.

+

This function is supported only when *strm has been initialized with a function that takes a memlimit argument.

+

liblzma 5.2.3 and earlier has a bug where memlimit value of 0 causes this function to do nothing (leaving the limit unchanged) and still return LZMA_OK. Later versions treat 0 as if 1 had been specified (so lzma_memlimit_get() will return 1 even if you specify 0 here).

+

liblzma 5.2.6 and earlier had a bug in single-threaded .xz decoder (lzma_stream_decoder()) which made it impossible to continue decoding after LZMA_MEMLIMIT_ERROR even if the limit was increased using lzma_memlimit_set(). Other decoders worked correctly.

+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: New memory usage limit successfully set.
  • +
  • LZMA_MEMLIMIT_ERROR: The new limit is too small. The limit was not changed.
  • +
  • LZMA_PROG_ERROR: Invalid arguments, e.g. *strm doesn't support memory usage limit.
  • +
+
+ +
+
+
+ + + + diff --git a/xz-5.4.5/doc/api/bc_s.png b/xz-5.4.5/doc/api/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..bb50b82755724aa2bbb16c2743af773b1386eec0 GIT binary patch literal 675 zcmV;U0$lxxP)(p}e1CdG^3iYBlMX&OWuM9IP%aF37hzN^N5Q3nW zfnrKTP`wc=OAL$X7iMmAYg?NI5=o<(BBecdw%eZ7zi{{-&Utn|oI4KRKLG1`J|uQl z%0R`Q(D07h8b9qO$vF?!a>{NS+fdp7_u!mVAQEoOn-tyQHZ`c~@zmj4gX;tjotMd0zslj->(EI;oD07fl^HpAfxhwyQ9I=L6!=OzJw zkr4_1X`5;y9Dy2ipPc{z$j&ZTzPY}@!jEFv=~n;%*}2DPG9U94igC{FJqQ4hooAFh zxs?9VF;qKV001K^BE~kUj+94GJuwadjM`*dUXx-s1gFBE_o1tO3;-BSxRfH9u5b2- zXGYL<{Bh>cOGL|n>a;J0!qL@Bu5Eji3G~|Yl`4Afo8d^LXVoyvy2I>1xZScy;OFv6 zU;1|}Z5>Jj?FOr}F+bPjpNR$=bw4PF?x%ady?C9`z+>ZV)c5qSCs&rWx`PO^L=b+= zM&9eg)eS9owA!EJsHl`gq3>Jl-BkuCIdD4<2^X>yd$hMJ5u2D}f#zE$d8@NQv^XY{ z@wZI?zzB=?4+KT$1`#E+SYBT8-|64YY{D-XX``Gku1``{TUt!^6v*_nf)sk)CsKidPWnnFJ0F zpt_wBu(GAPJ8`S-%|7s~YzbjtWyV$_CofduGxwJWSeY>iW_A^a0X#Q53%?Z2%IsCw z{!o3ie1pHg5-o|C-r9R_Z*%>HZ0Icb`&BUIuGKyA4GN#$-&}7PjC9`LHKL|_IWFw> zGIjabFm#*^@`sG8GiKNDYs&BJZ@v7d8mYm66!G0IT&}y5^LC&^Po8P!2_3Bx8^3uw z(87i?vEvl4Rb!+9s0JDo zIz<2pD>TIoVlmL57E literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/api/bcj_8h.html b/xz-5.4.5/doc/api/bcj_8h.html new file mode 100644 index 000000000..1dabca436 --- /dev/null +++ b/xz-5.4.5/doc/api/bcj_8h.html @@ -0,0 +1,105 @@ + + + + + + + +liblzma (XZ Utils): lzma/bcj.h File Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + + +
+
+ +
bcj.h File Reference
+
+
+ +

Branch/Call/Jump conversion filters. +More...

+ + + + + +

+Data Structures

struct  lzma_options_bcj
 Options for BCJ filters. More...
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Macros

+#define LZMA_FILTER_X86   LZMA_VLI_C(0x04)
 Filter for x86 binaries.
 
+#define LZMA_FILTER_POWERPC   LZMA_VLI_C(0x05)
 Filter for Big endian PowerPC binaries.
 
+#define LZMA_FILTER_IA64   LZMA_VLI_C(0x06)
 Filter for IA-64 (Itanium) binaries.
 
+#define LZMA_FILTER_ARM   LZMA_VLI_C(0x07)
 Filter for ARM binaries.
 
+#define LZMA_FILTER_ARMTHUMB   LZMA_VLI_C(0x08)
 Filter for ARM-Thumb binaries.
 
+#define LZMA_FILTER_SPARC   LZMA_VLI_C(0x09)
 Filter for SPARC binaries.
 
+#define LZMA_FILTER_ARM64   LZMA_VLI_C(0x0A)
 Filter for ARM64 binaries.
 
+

Detailed Description

+

Branch/Call/Jump conversion filters.

+
Note
Never include this file directly. Use <lzma.h> instead.
+
+ + + + diff --git a/xz-5.4.5/doc/api/block_8h.html b/xz-5.4.5/doc/api/block_8h.html new file mode 100644 index 000000000..e2e1702a8 --- /dev/null +++ b/xz-5.4.5/doc/api/block_8h.html @@ -0,0 +1,758 @@ + + + + + + + +liblzma (XZ Utils): lzma/block.h File Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + + +
+
+ +
block.h File Reference
+
+
+ +

.xz Block handling +More...

+ + + + + +

+Data Structures

struct  lzma_block
 Options for the Block and Block Header encoders and decoders. More...
 
+ + + + + + + + +

+Macros

+#define LZMA_BLOCK_HEADER_SIZE_MIN   8
 
+#define LZMA_BLOCK_HEADER_SIZE_MAX   1024
 
#define lzma_block_header_size_decode(b)   (((uint32_t)(b) + 1) * 4)
 Decode the Block Header Size field.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

lzma_ret lzma_block_header_size (lzma_block *block) lzma_nothrow lzma_attr_warn_unused_result
 Calculate Block Header Size.
 
lzma_ret lzma_block_header_encode (const lzma_block *block, uint8_t *out) lzma_nothrow lzma_attr_warn_unused_result
 Encode Block Header.
 
lzma_ret lzma_block_header_decode (lzma_block *block, const lzma_allocator *allocator, const uint8_t *in) lzma_nothrow lzma_attr_warn_unused_result
 Decode Block Header.
 
lzma_ret lzma_block_compressed_size (lzma_block *block, lzma_vli unpadded_size) lzma_nothrow lzma_attr_warn_unused_result
 Validate and set Compressed Size according to Unpadded Size.
 
lzma_vli lzma_block_unpadded_size (const lzma_block *block) lzma_nothrow lzma_attr_pure
 Calculate Unpadded Size.
 
lzma_vli lzma_block_total_size (const lzma_block *block) lzma_nothrow lzma_attr_pure
 Calculate the total encoded size of a Block.
 
lzma_ret lzma_block_encoder (lzma_stream *strm, lzma_block *block) lzma_nothrow lzma_attr_warn_unused_result
 Initialize .xz Block encoder.
 
lzma_ret lzma_block_decoder (lzma_stream *strm, lzma_block *block) lzma_nothrow lzma_attr_warn_unused_result
 Initialize .xz Block decoder.
 
size_t lzma_block_buffer_bound (size_t uncompressed_size) lzma_nothrow
 Calculate maximum output size for single-call Block encoding.
 
lzma_ret lzma_block_buffer_encode (lzma_block *block, const lzma_allocator *allocator, const uint8_t *in, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow lzma_attr_warn_unused_result
 Single-call .xz Block encoder.
 
lzma_ret lzma_block_uncomp_encode (lzma_block *block, const uint8_t *in, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow lzma_attr_warn_unused_result
 Single-call uncompressed .xz Block encoder.
 
lzma_ret lzma_block_buffer_decode (lzma_block *block, const lzma_allocator *allocator, const uint8_t *in, size_t *in_pos, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow
 Single-call .xz Block decoder.
 
+

Detailed Description

+

.xz Block handling

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Macro Definition Documentation

+ +

◆ lzma_block_header_size_decode

+ +
+
+ + + + + + + + +
#define lzma_block_header_size_decode( b)   (((uint32_t)(b) + 1) * 4)
+
+ +

Decode the Block Header Size field.

+

To decode Block Header using lzma_block_header_decode(), the size of the Block Header has to be known and stored into lzma_block.header_size. The size can be calculated from the first byte of a Block using this macro. Note that if the first byte is 0x00, it indicates beginning of Index; use this macro only when the byte is not 0x00.

+

There is no encoding macro because lzma_block_header_size() and lzma_block_header_encode() should be used.

+ +
+
+

Function Documentation

+ +

◆ lzma_block_header_size()

+ +
+
+ + + + + + + + +
lzma_ret lzma_block_header_size (lzma_blockblock)
+
+ +

Calculate Block Header Size.

+

Calculate the minimum size needed for the Block Header field using the settings specified in the lzma_block structure. Note that it is OK to increase the calculated header_size value as long as it is a multiple of four and doesn't exceed LZMA_BLOCK_HEADER_SIZE_MAX. Increasing header_size just means that lzma_block_header_encode() will add Header Padding.

+
Note
This doesn't check that all the options are valid i.e. this may return LZMA_OK even if lzma_block_header_encode() or lzma_block_encoder() would fail. If you want to validate the filter chain, consider using lzma_memlimit_encoder() which as a side-effect validates the filter chain.
+
Parameters
+ + +
blockBlock options
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Size calculated successfully and stored to block->header_size.
  • +
  • LZMA_OPTIONS_ERROR: Unsupported version, filters or filter options.
  • +
  • LZMA_PROG_ERROR: Invalid values like compressed_size == 0.
  • +
+
+ +
+
+ +

◆ lzma_block_header_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_block_header_encode (const lzma_blockblock,
uint8_t * out 
)
+
+ +

Encode Block Header.

+

The caller must have calculated the size of the Block Header already with lzma_block_header_size(). If a value larger than the one calculated by lzma_block_header_size() is used, the Block Header will be padded to the specified size.

+
Parameters
+ + + +
blockBlock options to be encoded.
[out]outBeginning of the output buffer. This must be at least block->header_size bytes.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Encoding was successful. block->header_size bytes were written to output buffer.
  • +
  • LZMA_OPTIONS_ERROR: Invalid or unsupported options.
  • +
  • LZMA_PROG_ERROR: Invalid arguments, for example block->header_size is invalid or block->filters is NULL.
  • +
+
+ +
+
+ +

◆ lzma_block_header_decode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_block_header_decode (lzma_blockblock,
const lzma_allocatorallocator,
const uint8_t * in 
)
+
+ +

Decode Block Header.

+

block->version should (usually) be set to the highest value supported by the application. If the application sets block->version to a value higher than supported by the current liblzma version, this function will downgrade block->version to the highest value supported by it. Thus one should check the value of block->version after calling this function if block->version was set to a non-zero value and the application doesn't otherwise know that the liblzma version being used is new enough to support the specified block->version.

+

The size of the Block Header must have already been decoded with lzma_block_header_size_decode() macro and stored to block->header_size.

+

The integrity check type from Stream Header must have been stored to block->check.

+

block->filters must have been allocated, but they don't need to be initialized (possible existing filter options are not freed).

+
Parameters
+ + + + +
[out]blockDestination for Block options
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() (and also free() if an error occurs).
inBeginning of the input buffer. This must be at least block->header_size bytes.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Decoding was successful. block->header_size bytes were read from the input buffer.
  • +
  • LZMA_OPTIONS_ERROR: The Block Header specifies some unsupported options such as unsupported filters. This can happen also if block->version was set to a too low value compared to what would be required to properly represent the information stored in the Block Header.
  • +
  • LZMA_DATA_ERROR: Block Header is corrupt, for example, the CRC32 doesn't match.
  • +
  • LZMA_PROG_ERROR: Invalid arguments, for example block->header_size is invalid or block->filters is NULL.
  • +
+
+ +
+
+ +

◆ lzma_block_compressed_size()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_block_compressed_size (lzma_blockblock,
lzma_vli unpadded_size 
)
+
+ +

Validate and set Compressed Size according to Unpadded Size.

+

Block Header stores Compressed Size, but Index has Unpadded Size. If the application has already parsed the Index and is now decoding Blocks, it can calculate Compressed Size from Unpadded Size. This function does exactly that with error checking:

+
    +
  • Compressed Size calculated from Unpadded Size must be positive integer, that is, Unpadded Size must be big enough that after Block Header and Check fields there's still at least one byte for Compressed Size.
  • +
  • If Compressed Size was present in Block Header, the new value calculated from Unpadded Size is compared against the value from Block Header.
  • +
+
Note
This function must be called _after_ decoding the Block Header field so that it can properly validate Compressed Size if it was present in Block Header.
+
Parameters
+ + + +
blockBlock options: block->header_size must already be set with lzma_block_header_size().
unpadded_sizeUnpadded Size from the Index field in bytes
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: block->compressed_size was set successfully.
  • +
  • LZMA_DATA_ERROR: unpadded_size is too small compared to block->header_size and lzma_check_size(block->check).
  • +
  • LZMA_PROG_ERROR: Some values are invalid. For example, block->header_size must be a multiple of four and between 8 and 1024 inclusive.
  • +
+
+ +
+
+ +

◆ lzma_block_unpadded_size()

+ +
+
+ + + + + + + + +
lzma_vli lzma_block_unpadded_size (const lzma_blockblock)
+
+ +

Calculate Unpadded Size.

+

The Index field stores Unpadded Size and Uncompressed Size. The latter can be taken directly from the lzma_block structure after coding a Block, but Unpadded Size needs to be calculated from Block Header Size, Compressed Size, and size of the Check field. This is where this function is needed.

+
Parameters
+ + +
blockBlock options: block->header_size must already be set with lzma_block_header_size().
+
+
+
Returns
Unpadded Size on success, or zero on error.
+ +
+
+ +

◆ lzma_block_total_size()

+ +
+
+ + + + + + + + +
lzma_vli lzma_block_total_size (const lzma_blockblock)
+
+ +

Calculate the total encoded size of a Block.

+

This is equivalent to lzma_block_unpadded_size() except that the returned value includes the size of the Block Padding field.

+
Parameters
+ + +
blockBlock options: block->header_size must already be set with lzma_block_header_size().
+
+
+
Returns
On success, total encoded size of the Block. On error, zero is returned.
+ +
+
+ +

◆ lzma_block_encoder()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_block_encoder (lzma_streamstrm,
lzma_blockblock 
)
+
+ +

Initialize .xz Block encoder.

+

Valid actions for lzma_code() are LZMA_RUN, LZMA_SYNC_FLUSH (only if the filter chain supports it), and LZMA_FINISH.

+

The Block encoder encodes the Block Data, Block Padding, and Check value. It does NOT encode the Block Header which can be encoded with lzma_block_header_encode().

+
Parameters
+ + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
blockBlock options: block->version, block->check, and block->filters must have been initialized.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: All good, continue with lzma_code().
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_UNSUPPORTED_CHECK: block->check specifies a Check ID that is not supported by this build of liblzma. Initializing the encoder failed.
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_block_decoder()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_block_decoder (lzma_streamstrm,
lzma_blockblock 
)
+
+ +

Initialize .xz Block decoder.

+

Valid actions for lzma_code() are LZMA_RUN and LZMA_FINISH. Using LZMA_FINISH is not required. It is supported only for convenience.

+

The Block decoder decodes the Block Data, Block Padding, and Check value. It does NOT decode the Block Header which can be decoded with lzma_block_header_decode().

+
Parameters
+ + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
blockBlock options
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: All good, continue with lzma_code().
  • +
  • LZMA_PROG_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
+
+ +
+
+ +

◆ lzma_block_buffer_bound()

+ +
+
+ + + + + + + + +
size_t lzma_block_buffer_bound (size_t uncompressed_size)
+
+ +

Calculate maximum output size for single-call Block encoding.

+

This is equivalent to lzma_stream_buffer_bound() but for .xz Blocks. See the documentation of lzma_stream_buffer_bound().

+
Parameters
+ + +
uncompressed_sizeSize of the data to be encoded with the single-call Block encoder.
+
+
+
Returns
Maximum output size in bytes for single-call Block encoding.
+ +
+
+ +

◆ lzma_block_buffer_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_block_buffer_encode (lzma_blockblock,
const lzma_allocatorallocator,
const uint8_t * in,
size_t in_size,
uint8_t * out,
size_t * out_pos,
size_t out_size 
)
+
+ +

Single-call .xz Block encoder.

+

In contrast to the multi-call encoder initialized with lzma_block_encoder(), this function encodes also the Block Header. This is required to make it possible to write appropriate Block Header also in case the data isn't compressible, and different filter chain has to be used to encode the data in uncompressed form using uncompressed chunks of the LZMA2 filter.

+

When the data isn't compressible, header_size, compressed_size, and uncompressed_size are set just like when the data was compressible, but it is possible that header_size is too small to hold the filter chain specified in block->filters, because that isn't necessarily the filter chain that was actually used to encode the data. lzma_block_unpadded_size() still works normally, because it doesn't read the filters array.

+
Parameters
+ + + + + + + + +
blockBlock options: block->version, block->check, and block->filters must have been initialized.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
inBeginning of the input buffer
in_sizeSize of the input buffer
[out]outBeginning of the output buffer
[out]out_posThe next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds.
out_sizeSize of the out buffer; the first byte into which no data is written to is out[out_size].
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Encoding was successful.
  • +
  • LZMA_BUF_ERROR: Not enough output buffer space.
  • +
  • LZMA_UNSUPPORTED_CHECK
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_DATA_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_block_uncomp_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_block_uncomp_encode (lzma_blockblock,
const uint8_t * in,
size_t in_size,
uint8_t * out,
size_t * out_pos,
size_t out_size 
)
+
+ +

Single-call uncompressed .xz Block encoder.

+

This is like lzma_block_buffer_encode() except this doesn't try to compress the data and instead encodes the data using LZMA2 uncompressed chunks. The required output buffer size can be determined with lzma_block_buffer_bound().

+

Since the data won't be compressed, this function ignores block->filters. This function doesn't take lzma_allocator because this function doesn't allocate any memory from the heap.

+
Parameters
+ + + + + + + +
blockBlock options: block->version, block->check, and block->filters must have been initialized.
inBeginning of the input buffer
in_sizeSize of the input buffer
[out]outBeginning of the output buffer
[out]out_posThe next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds.
out_sizeSize of the out buffer; the first byte into which no data is written to is out[out_size].
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Encoding was successful.
  • +
  • LZMA_BUF_ERROR: Not enough output buffer space.
  • +
  • LZMA_UNSUPPORTED_CHECK
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_DATA_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_block_buffer_decode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_block_buffer_decode (lzma_blockblock,
const lzma_allocatorallocator,
const uint8_t * in,
size_t * in_pos,
size_t in_size,
uint8_t * out,
size_t * out_pos,
size_t out_size 
)
+
+ +

Single-call .xz Block decoder.

+

This is single-call equivalent of lzma_block_decoder(), and requires that the caller has already decoded Block Header and checked its memory usage.

+
Parameters
+ + + + + + + + + +
blockBlock options
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
inBeginning of the input buffer
in_posThe next byte will be read from in[*in_pos]. *in_pos is updated only if decoding succeeds.
in_sizeSize of the input buffer; the first byte that won't be read is in[in_size].
[out]outBeginning of the output buffer
[out]out_posThe next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds.
out_sizeSize of the out buffer; the first byte into which no data is written to is out[out_size].
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Decoding was successful.
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_DATA_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_BUF_ERROR: Output buffer was too small.
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+
+ + + + diff --git a/xz-5.4.5/doc/api/check_8h.html b/xz-5.4.5/doc/api/check_8h.html new file mode 100644 index 000000000..2323c6c2b --- /dev/null +++ b/xz-5.4.5/doc/api/check_8h.html @@ -0,0 +1,340 @@ + + + + + + + +liblzma (XZ Utils): lzma/check.h File Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + + +
+
+ +
check.h File Reference
+
+
+ +

Integrity checks. +More...

+ + + + + + + + +

+Macros

#define LZMA_CHECK_ID_MAX   15
 Maximum valid Check ID.
 
+#define LZMA_CHECK_SIZE_MAX   64
 Maximum size of a Check field.
 
+ + + + +

+Enumerations

enum  lzma_check { LZMA_CHECK_NONE = 0 +, LZMA_CHECK_CRC32 = 1 +, LZMA_CHECK_CRC64 = 4 +, LZMA_CHECK_SHA256 = 10 + }
 Type of the integrity check (Check ID) More...
 
+ + + + + + + + + + + + + + + + +

+Functions

lzma_bool lzma_check_is_supported (lzma_check check) lzma_nothrow lzma_attr_const
 Test if the given Check ID is supported.
 
uint32_t lzma_check_size (lzma_check check) lzma_nothrow lzma_attr_const
 Get the size of the Check field with the given Check ID.
 
uint32_t lzma_crc32 (const uint8_t *buf, size_t size, uint32_t crc) lzma_nothrow lzma_attr_pure
 Calculate CRC32.
 
uint64_t lzma_crc64 (const uint8_t *buf, size_t size, uint64_t crc) lzma_nothrow lzma_attr_pure
 Calculate CRC64.
 
lzma_check lzma_get_check (const lzma_stream *strm) lzma_nothrow
 Get the type of the integrity check.
 
+

Detailed Description

+

Integrity checks.

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Macro Definition Documentation

+ +

◆ LZMA_CHECK_ID_MAX

+ +
+
+ + + + +
#define LZMA_CHECK_ID_MAX   15
+
+ +

Maximum valid Check ID.

+

The .xz file format specification specifies 16 Check IDs (0-15). Some of them are only reserved, that is, no actual Check algorithm has been assigned. When decoding, liblzma still accepts unknown Check IDs for future compatibility. If a valid but unsupported Check ID is detected, liblzma can indicate a warning; see the flags LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK, and LZMA_TELL_ANY_CHECK in container.h.

+ +
+
+

Enumeration Type Documentation

+ +

◆ lzma_check

+ +
+
+ + + + +
enum lzma_check
+
+ +

Type of the integrity check (Check ID)

+

The .xz format supports multiple types of checks that are calculated from the uncompressed data. They vary in both speed and ability to detect errors.

+ + + + + +
Enumerator
LZMA_CHECK_NONE 

No Check is calculated.

+

Size of the Check field: 0 bytes

+
LZMA_CHECK_CRC32 

CRC32 using the polynomial from the IEEE 802.3 standard

+

Size of the Check field: 4 bytes

+
LZMA_CHECK_CRC64 

CRC64 using the polynomial from the ECMA-182 standard

+

Size of the Check field: 8 bytes

+
LZMA_CHECK_SHA256 

SHA-256

+

Size of the Check field: 32 bytes

+
+ +
+
+

Function Documentation

+ +

◆ lzma_check_is_supported()

+ +
+
+ + + + + + + + +
lzma_bool lzma_check_is_supported (lzma_check check) const
+
+ +

Test if the given Check ID is supported.

+

LZMA_CHECK_NONE and LZMA_CHECK_CRC32 are always supported (even if liblzma is built with limited features).

+
Note
It is safe to call this with a value that is not in the range [0, 15]; in that case the return value is always false.
+
Parameters
+ + +
checkCheck ID
+
+
+
Returns
lzma_bool:
    +
  • true if Check ID is supported by this liblzma build.
  • +
  • false otherwise.
  • +
+
+ +
+
+ +

◆ lzma_check_size()

+ +
+
+ + + + + + + + +
uint32_t lzma_check_size (lzma_check check) const
+
+ +

Get the size of the Check field with the given Check ID.

+

Although not all Check IDs have a check algorithm associated, the size of every Check is already frozen. This function returns the size (in bytes) of the Check field with the specified Check ID. The values are: { 0, 4, 4, 4, 8, 8, 8, 16, 16, 16, 32, 32, 32, 64, 64, 64 }

+
Parameters
+ + +
checkCheck ID
+
+
+
Returns
Size of the Check field in bytes. If the argument is not in the range [0, 15], UINT32_MAX is returned.
+ +
+
+ +

◆ lzma_crc32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
uint32_t lzma_crc32 (const uint8_t * buf,
size_t size,
uint32_t crc 
)
+
+ +

Calculate CRC32.

+

Calculate CRC32 using the polynomial from the IEEE 802.3 standard.

+
Parameters
+ + + + +
bufPointer to the input buffer
sizeSize of the input buffer
crcPreviously returned CRC value. This is used to calculate the CRC of a big buffer in smaller chunks. Set to zero when starting a new calculation.
+
+
+
Returns
Updated CRC value, which can be passed to this function again to continue CRC calculation.
+ +
+
+ +

◆ lzma_crc64()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
uint64_t lzma_crc64 (const uint8_t * buf,
size_t size,
uint64_t crc 
)
+
+ +

Calculate CRC64.

+

Calculate CRC64 using the polynomial from the ECMA-182 standard.

+

This function is used similarly to lzma_crc32().

+
Parameters
+ + + + +
bufPointer to the input buffer
sizeSize of the input buffer
crcPreviously returned CRC value. This is used to calculate the CRC of a big buffer in smaller chunks. Set to zero when starting a new calculation.
+
+
+
Returns
Updated CRC value, which can be passed to this function again to continue CRC calculation.
+ +
+
+ +

◆ lzma_get_check()

+ +
+
+ + + + + + + + +
lzma_check lzma_get_check (const lzma_streamstrm)
+
+ +

Get the type of the integrity check.

+

This function can be called only immediately after lzma_code() has returned LZMA_NO_CHECK, LZMA_UNSUPPORTED_CHECK, or LZMA_GET_CHECK. Calling this function in any other situation has undefined behavior.

+
Parameters
+ + +
strmPointer to lzma_stream meeting the above conditions.
+
+
+
Returns
Check ID in the lzma_stream, or undefined if called improperly.
+ +
+
+
+ + + + diff --git a/xz-5.4.5/doc/api/classes.html b/xz-5.4.5/doc/api/classes.html new file mode 100644 index 000000000..a0102708e --- /dev/null +++ b/xz-5.4.5/doc/api/classes.html @@ -0,0 +1,60 @@ + + + + + + + +liblzma (XZ Utils): Data Structure Index + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + +
+
+
Data Structure Index
+
+ + + + + diff --git a/xz-5.4.5/doc/api/closed.png b/xz-5.4.5/doc/api/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..91f4888ee17262b4806c76323626d329235dcb3a GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@9ySxP~>QR7+=1z ze1G))zi(vS7I$(Av~uz+|Mb|9sln^-Z-$Um25D~L1zt_xrv9y;n<5=klF)I@OT5)w f_JfPi8gs^qZ6X2(*o4!8#xi)i`njxgN@xNA$Ehk- literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/api/container_8h.html b/xz-5.4.5/doc/api/container_8h.html new file mode 100644 index 000000000..332b2b104 --- /dev/null +++ b/xz-5.4.5/doc/api/container_8h.html @@ -0,0 +1,1279 @@ + + + + + + + +liblzma (XZ Utils): lzma/container.h File Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + + +
+
+ +
container.h File Reference
+
+
+ +

File formats. +More...

+ + + + + +

+Data Structures

struct  lzma_mt
 Multithreading options. More...
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define LZMA_PRESET_DEFAULT   UINT32_C(6)
 Default compression preset.
 
#define LZMA_PRESET_LEVEL_MASK   UINT32_C(0x1F)
 Mask for preset level.
 
#define LZMA_PRESET_EXTREME   (UINT32_C(1) << 31)
 Extreme compression preset.
 
#define LZMA_TELL_NO_CHECK   UINT32_C(0x01)
 
#define LZMA_TELL_UNSUPPORTED_CHECK   UINT32_C(0x02)
 
#define LZMA_TELL_ANY_CHECK   UINT32_C(0x04)
 
#define LZMA_IGNORE_CHECK   UINT32_C(0x10)
 
#define LZMA_CONCATENATED   UINT32_C(0x08)
 
#define LZMA_FAIL_FAST   UINT32_C(0x20)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

uint64_t lzma_easy_encoder_memusage (uint32_t preset) lzma_nothrow lzma_attr_pure
 Calculate approximate memory usage of easy encoder.
 
uint64_t lzma_easy_decoder_memusage (uint32_t preset) lzma_nothrow lzma_attr_pure
 Calculate approximate decoder memory usage of a preset.
 
lzma_ret lzma_easy_encoder (lzma_stream *strm, uint32_t preset, lzma_check check) lzma_nothrow lzma_attr_warn_unused_result
 Initialize .xz Stream encoder using a preset number.
 
lzma_ret lzma_easy_buffer_encode (uint32_t preset, lzma_check check, const lzma_allocator *allocator, const uint8_t *in, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow
 Single-call .xz Stream encoding using a preset number.
 
lzma_ret lzma_stream_encoder (lzma_stream *strm, const lzma_filter *filters, lzma_check check) lzma_nothrow lzma_attr_warn_unused_result
 Initialize .xz Stream encoder using a custom filter chain.
 
uint64_t lzma_stream_encoder_mt_memusage (const lzma_mt *options) lzma_nothrow lzma_attr_pure
 Calculate approximate memory usage of multithreaded .xz encoder.
 
lzma_ret lzma_stream_encoder_mt (lzma_stream *strm, const lzma_mt *options) lzma_nothrow lzma_attr_warn_unused_result
 Initialize multithreaded .xz Stream encoder.
 
lzma_ret lzma_alone_encoder (lzma_stream *strm, const lzma_options_lzma *options) lzma_nothrow lzma_attr_warn_unused_result
 Initialize .lzma encoder (legacy file format)
 
size_t lzma_stream_buffer_bound (size_t uncompressed_size) lzma_nothrow
 Calculate output buffer size for single-call Stream encoder.
 
lzma_ret lzma_stream_buffer_encode (lzma_filter *filters, lzma_check check, const lzma_allocator *allocator, const uint8_t *in, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow lzma_attr_warn_unused_result
 Single-call .xz Stream encoder.
 
lzma_ret lzma_microlzma_encoder (lzma_stream *strm, const lzma_options_lzma *options) lzma_nothrow
 MicroLZMA encoder.
 
lzma_ret lzma_stream_decoder (lzma_stream *strm, uint64_t memlimit, uint32_t flags) lzma_nothrow lzma_attr_warn_unused_result
 Initialize .xz Stream decoder.
 
lzma_ret lzma_stream_decoder_mt (lzma_stream *strm, const lzma_mt *options) lzma_nothrow lzma_attr_warn_unused_result
 Initialize multithreaded .xz Stream decoder.
 
lzma_ret lzma_auto_decoder (lzma_stream *strm, uint64_t memlimit, uint32_t flags) lzma_nothrow lzma_attr_warn_unused_result
 Decode .xz, .lzma, and .lz (lzip) files with autodetection.
 
lzma_ret lzma_alone_decoder (lzma_stream *strm, uint64_t memlimit) lzma_nothrow lzma_attr_warn_unused_result
 Initialize .lzma decoder (legacy file format)
 
lzma_ret lzma_lzip_decoder (lzma_stream *strm, uint64_t memlimit, uint32_t flags) lzma_nothrow lzma_attr_warn_unused_result
 Initialize .lz (lzip) decoder (a foreign file format)
 
lzma_ret lzma_stream_buffer_decode (uint64_t *memlimit, uint32_t flags, const lzma_allocator *allocator, const uint8_t *in, size_t *in_pos, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow lzma_attr_warn_unused_result
 Single-call .xz Stream decoder.
 
lzma_ret lzma_microlzma_decoder (lzma_stream *strm, uint64_t comp_size, uint64_t uncomp_size, lzma_bool uncomp_size_is_exact, uint32_t dict_size) lzma_nothrow
 MicroLZMA decoder.
 
+

Detailed Description

+

File formats.

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Macro Definition Documentation

+ +

◆ LZMA_PRESET_DEFAULT

+ +
+
+ + + + +
#define LZMA_PRESET_DEFAULT   UINT32_C(6)
+
+ +

Default compression preset.

+

It's not straightforward to recommend a default preset, because in some cases keeping the resource usage relatively low is more important that getting the maximum compression ratio.

+ +
+
+ +

◆ LZMA_PRESET_LEVEL_MASK

+ +
+
+ + + + +
#define LZMA_PRESET_LEVEL_MASK   UINT32_C(0x1F)
+
+ +

Mask for preset level.

+

This is useful only if you need to extract the level from the preset variable. That should be rare.

+ +
+
+ +

◆ LZMA_PRESET_EXTREME

+ +
+
+ + + + +
#define LZMA_PRESET_EXTREME   (UINT32_C(1) << 31)
+
+ +

Extreme compression preset.

+

This flag modifies the preset to make the encoding significantly slower while improving the compression ratio only marginally. This is useful when you don't mind spending time to get as small result as possible.

+

This flag doesn't affect the memory usage requirements of the decoder (at least not significantly). The memory usage of the encoder may be increased a little but only at the lowest preset levels (0-3).

+ +
+
+ +

◆ LZMA_TELL_NO_CHECK

+ +
+
+ + + + +
#define LZMA_TELL_NO_CHECK   UINT32_C(0x01)
+
+

This flag makes lzma_code() return LZMA_NO_CHECK if the input stream being decoded has no integrity check. Note that when used with lzma_auto_decoder(), all .lzma files will trigger LZMA_NO_CHECK if LZMA_TELL_NO_CHECK is used.

+ +
+
+ +

◆ LZMA_TELL_UNSUPPORTED_CHECK

+ +
+
+ + + + +
#define LZMA_TELL_UNSUPPORTED_CHECK   UINT32_C(0x02)
+
+

This flag makes lzma_code() return LZMA_UNSUPPORTED_CHECK if the input stream has an integrity check, but the type of the integrity check is not supported by this liblzma version or build. Such files can still be decoded, but the integrity check cannot be verified.

+ +
+
+ +

◆ LZMA_TELL_ANY_CHECK

+ +
+
+ + + + +
#define LZMA_TELL_ANY_CHECK   UINT32_C(0x04)
+
+

This flag makes lzma_code() return LZMA_GET_CHECK as soon as the type of the integrity check is known. The type can then be got with lzma_get_check().

+ +
+
+ +

◆ LZMA_IGNORE_CHECK

+ +
+
+ + + + +
#define LZMA_IGNORE_CHECK   UINT32_C(0x10)
+
+

This flag makes lzma_code() not calculate and verify the integrity check of the compressed data in .xz files. This means that invalid integrity check values won't be detected and LZMA_DATA_ERROR won't be returned in such cases.

+

This flag only affects the checks of the compressed data itself; the CRC32 values in the .xz headers will still be verified normally.

+

Don't use this flag unless you know what you are doing. Possible reasons to use this flag:

+
    +
  • Trying to recover data from a corrupt .xz file.
  • +
  • Speeding up decompression, which matters mostly with SHA-256 or with files that have compressed extremely well. It's recommended to not use this flag for this purpose unless the file integrity is verified externally in some other way.
  • +
+

Support for this flag was added in liblzma 5.1.4beta.

+ +
+
+ +

◆ LZMA_CONCATENATED

+ +
+
+ + + + +
#define LZMA_CONCATENATED   UINT32_C(0x08)
+
+

This flag enables decoding of concatenated files with file formats that allow concatenating compressed files as is. From the formats currently supported by liblzma, only the .xz and .lz formats allow concatenated files. Concatenated files are not allowed with the legacy .lzma format.

+

This flag also affects the usage of the `action' argument for lzma_code(). When LZMA_CONCATENATED is used, lzma_code() won't return LZMA_STREAM_END unless LZMA_FINISH is used as `action'. Thus, the application has to set LZMA_FINISH in the same way as it does when encoding.

+

If LZMA_CONCATENATED is not used, the decoders still accept LZMA_FINISH as `action' for lzma_code(), but the usage of LZMA_FINISH isn't required.

+ +
+
+ +

◆ LZMA_FAIL_FAST

+ +
+
+ + + + +
#define LZMA_FAIL_FAST   UINT32_C(0x20)
+
+

This flag makes the threaded decoder report errors (like LZMA_DATA_ERROR) as soon as they are detected. This saves time when the application has no interest in a partially decompressed truncated or corrupt file. Note that due to timing randomness, if the same truncated or corrupt input is decompressed multiple times with this flag, a different amount of output may be produced by different runs, and even the error code might vary.

+

When using LZMA_FAIL_FAST, it is recommended to use LZMA_FINISH to tell the decoder when no more input will be coming because it can help fast detection and reporting of truncated files. Note that in this situation truncated files might be diagnosed with LZMA_DATA_ERROR instead of LZMA_OK or LZMA_BUF_ERROR!

+

Without this flag the threaded decoder will provide as much output as possible at first and then report the pending error. This default behavior matches the single-threaded decoder and provides repeatable behavior with truncated or corrupt input. There are a few special cases where the behavior can still differ like memory allocation failures (LZMA_MEM_ERROR).

+

Single-threaded decoders currently ignore this flag.

+

Support for this flag was added in liblzma 5.3.3alpha. Note that in older versions this flag isn't supported (LZMA_OPTIONS_ERROR) even by functions that ignore this flag in newer liblzma versions.

+ +
+
+

Function Documentation

+ +

◆ lzma_easy_encoder_memusage()

+ +
+
+ + + + + + + + +
uint64_t lzma_easy_encoder_memusage (uint32_t preset)
+
+ +

Calculate approximate memory usage of easy encoder.

+

This function is a wrapper for lzma_raw_encoder_memusage().

+
Parameters
+ + +
presetCompression preset (level and possible flags)
+
+
+
Returns
Number of bytes of memory required for the given preset when encoding or UINT64_MAX on error.
+ +
+
+ +

◆ lzma_easy_decoder_memusage()

+ +
+
+ + + + + + + + +
uint64_t lzma_easy_decoder_memusage (uint32_t preset)
+
+ +

Calculate approximate decoder memory usage of a preset.

+

This function is a wrapper for lzma_raw_decoder_memusage().

+
Parameters
+ + +
presetCompression preset (level and possible flags)
+
+
+
Returns
Number of bytes of memory required to decompress a file that was compressed using the given preset or UINT64_MAX on error.
+ +
+
+ +

◆ lzma_easy_encoder()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_easy_encoder (lzma_streamstrm,
uint32_t preset,
lzma_check check 
)
+
+ +

Initialize .xz Stream encoder using a preset number.

+

This function is intended for those who just want to use the basic features of liblzma (that is, most developers out there).

+

If initialization fails (return value is not LZMA_OK), all the memory allocated for *strm by liblzma is always freed. Thus, there is no need to call lzma_end() after failed initialization.

+

If initialization succeeds, use lzma_code() to do the actual encoding. Valid values for `action' (the second argument of lzma_code()) are LZMA_RUN, LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, and LZMA_FINISH. In future, there may be compression levels or flags that don't support LZMA_SYNC_FLUSH.

+
Parameters
+ + + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
presetCompression preset to use. A preset consist of level number and zero or more flags. Usually flags aren't used, so preset is simply a number [0, 9] which match the options -0 ... -9 of the xz command line tool. Additional flags can be be set using bitwise-or with the preset level number, e.g. 6 | LZMA_PRESET_EXTREME.
checkIntegrity check type to use. See check.h for available checks. The xz command line tool defaults to LZMA_CHECK_CRC64, which is a good choice if you are unsure. LZMA_CHECK_CRC32 is good too as long as the uncompressed file is not many gigabytes.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Initialization succeeded. Use lzma_code() to encode your data.
  • +
  • LZMA_MEM_ERROR: Memory allocation failed.
  • +
  • LZMA_OPTIONS_ERROR: The given compression preset is not supported by this build of liblzma.
  • +
  • LZMA_UNSUPPORTED_CHECK: The given check type is not supported by this liblzma build.
  • +
  • LZMA_PROG_ERROR: One or more of the parameters have values that will never be valid. For example, strm == NULL.
  • +
+
+ +
+
+ +

◆ lzma_easy_buffer_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_easy_buffer_encode (uint32_t preset,
lzma_check check,
const lzma_allocatorallocator,
const uint8_t * in,
size_t in_size,
uint8_t * out,
size_t * out_pos,
size_t out_size 
)
+
+ +

Single-call .xz Stream encoding using a preset number.

+

The maximum required output buffer size can be calculated with lzma_stream_buffer_bound().

+
Parameters
+ + + + + + + + + +
presetCompression preset to use. See the description in lzma_easy_encoder().
checkType of the integrity check to calculate from uncompressed data.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
inBeginning of the input buffer
in_sizeSize of the input buffer
[out]outBeginning of the output buffer
[out]out_posThe next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds.
out_sizeSize of the out buffer; the first byte into which no data is written to is out[out_size].
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Encoding was successful.
  • +
  • LZMA_BUF_ERROR: Not enough output buffer space.
  • +
  • LZMA_UNSUPPORTED_CHECK
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_DATA_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_stream_encoder()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_stream_encoder (lzma_streamstrm,
const lzma_filterfilters,
lzma_check check 
)
+
+ +

Initialize .xz Stream encoder using a custom filter chain.

+
Parameters
+ + + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
filtersArray of filters terminated with .id == LZMA_VLI_UNKNOWN. See filters.h for more information.
checkType of the integrity check to calculate from uncompressed data.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Initialization was successful.
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_UNSUPPORTED_CHECK
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_stream_encoder_mt_memusage()

+ +
+
+ + + + + + + + +
uint64_t lzma_stream_encoder_mt_memusage (const lzma_mtoptions)
+
+ +

Calculate approximate memory usage of multithreaded .xz encoder.

+

Since doing the encoding in threaded mode doesn't affect the memory requirements of single-threaded decompressor, you can use lzma_easy_decoder_memusage(options->preset) or lzma_raw_decoder_memusage(options->filters) to calculate the decompressor memory requirements.

+
Parameters
+ + +
optionsCompression options
+
+
+
Returns
Number of bytes of memory required for encoding with the given options. If an error occurs, for example due to unsupported preset or filter chain, UINT64_MAX is returned.
+ +
+
+ +

◆ lzma_stream_encoder_mt()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_stream_encoder_mt (lzma_streamstrm,
const lzma_mtoptions 
)
+
+ +

Initialize multithreaded .xz Stream encoder.

+

This provides the functionality of lzma_easy_encoder() and lzma_stream_encoder() as a single function for multithreaded use.

+

The supported actions for lzma_code() are LZMA_RUN, LZMA_FULL_FLUSH, LZMA_FULL_BARRIER, and LZMA_FINISH. Support for LZMA_SYNC_FLUSH might be added in the future.

+
Parameters
+ + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
optionsPointer to multithreaded compression options
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_UNSUPPORTED_CHECK
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_alone_encoder()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_alone_encoder (lzma_streamstrm,
const lzma_options_lzmaoptions 
)
+
+ +

Initialize .lzma encoder (legacy file format)

+

The .lzma format is sometimes called the LZMA_Alone format, which is the reason for the name of this function. The .lzma format supports only the LZMA1 filter. There is no support for integrity checks like CRC32.

+

Use this function if and only if you need to create files readable by legacy LZMA tools such as LZMA Utils 4.32.x. Moving to the .xz format is strongly recommended.

+

The valid action values for lzma_code() are LZMA_RUN and LZMA_FINISH. No kind of flushing is supported, because the file format doesn't make it possible.

+
Parameters
+ + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
optionsPointer to encoder options
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_stream_buffer_bound()

+ +
+
+ + + + + + + + +
size_t lzma_stream_buffer_bound (size_t uncompressed_size)
+
+ +

Calculate output buffer size for single-call Stream encoder.

+

When trying to compress incompressible data, the encoded size will be slightly bigger than the input data. This function calculates how much output buffer space is required to be sure that lzma_stream_buffer_encode() doesn't return LZMA_BUF_ERROR.

+

The calculated value is not exact, but it is guaranteed to be big enough. The actual maximum output space required may be slightly smaller (up to about 100 bytes). This should not be a problem in practice.

+

If the calculated maximum size doesn't fit into size_t or would make the Stream grow past LZMA_VLI_MAX (which should never happen in practice), zero is returned to indicate the error.

+
Note
The limit calculated by this function applies only to single-call encoding. Multi-call encoding may (and probably will) have larger maximum expansion when encoding incompressible data. Currently there is no function to calculate the maximum expansion of multi-call encoding.
+
Parameters
+ + +
uncompressed_sizeSize in bytes of the uncompressed input data
+
+
+
Returns
Maximum number of bytes needed to store the compressed data.
+ +
+
+ +

◆ lzma_stream_buffer_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_stream_buffer_encode (lzma_filterfilters,
lzma_check check,
const lzma_allocatorallocator,
const uint8_t * in,
size_t in_size,
uint8_t * out,
size_t * out_pos,
size_t out_size 
)
+
+ +

Single-call .xz Stream encoder.

+
Parameters
+ + + + + + + + + +
filtersArray of filters terminated with .id == LZMA_VLI_UNKNOWN. See filters.h for more information.
checkType of the integrity check to calculate from uncompressed data.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
inBeginning of the input buffer
in_sizeSize of the input buffer
[out]outBeginning of the output buffer
[out]out_posThe next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds.
out_sizeSize of the out buffer; the first byte into which no data is written to is out[out_size].
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Encoding was successful.
  • +
  • LZMA_BUF_ERROR: Not enough output buffer space.
  • +
  • LZMA_UNSUPPORTED_CHECK
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_DATA_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_microlzma_encoder()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_microlzma_encoder (lzma_streamstrm,
const lzma_options_lzmaoptions 
)
+
+ +

MicroLZMA encoder.

+

The MicroLZMA format is a raw LZMA stream whose first byte (always 0x00) has been replaced with bitwise-negation of the LZMA properties (lc/lp/pb). This encoding ensures that the first byte of MicroLZMA stream is never 0x00. There is no end of payload marker and thus the uncompressed size must be stored separately. For the best error detection the dictionary size should be stored separately as well but alternatively one may use the uncompressed size as the dictionary size when decoding.

+

With the MicroLZMA encoder, lzma_code() behaves slightly unusually. The action argument must be LZMA_FINISH and the return value will never be LZMA_OK. Thus the encoding is always done with a single lzma_code() after the initialization. The benefit of the combination of initialization function and lzma_code() is that memory allocations can be re-used for better performance.

+

lzma_code() will try to encode as much input as is possible to fit into the given output buffer. If not all input can be encoded, the stream will be finished without encoding all the input. The caller must check both input and output buffer usage after lzma_code() (total_in and total_out in lzma_stream can be convenient). Often lzma_code() can fill the output buffer completely if there is a lot of input, but sometimes a few bytes may remain unused because the next LZMA symbol would require more space.

+

lzma_stream.avail_out must be at least 6. Otherwise LZMA_PROG_ERROR will be returned.

+

The LZMA dictionary should be reasonably low to speed up the encoder re-initialization. A good value is bigger than the resulting uncompressed size of most of the output chunks. For example, if output size is 4 KiB, dictionary size of 32 KiB or 64 KiB is good. If the data compresses extremely well, even 128 KiB may be useful.

+

The MicroLZMA format and this encoder variant were made with the EROFS file system in mind. This format may be convenient in other embedded uses too where many small streams are needed. XZ Embedded includes a decoder for this format.

+
Parameters
+ + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
optionsPointer to encoder options
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_STREAM_END: All good. Check the amounts of input used and output produced. Store the amount of input used (uncompressed size) as it needs to be known to decompress the data.
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_PROG_ERROR: In addition to the generic reasons for this error code, this may also be returned if there isn't enough output space (6 bytes) to create a valid MicroLZMA stream.
  • +
+
+ +
+
+ +

◆ lzma_stream_decoder()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_stream_decoder (lzma_streamstrm,
uint64_t memlimit,
uint32_t flags 
)
+
+ +

Initialize .xz Stream decoder.

+
Parameters
+ + + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
memlimitMemory usage limit as bytes. Use UINT64_MAX to effectively disable the limiter. liblzma 5.2.3 and earlier don't allow 0 here and return LZMA_PROG_ERROR; later versions treat 0 as if 1 had been specified.
flagsBitwise-or of zero or more of the decoder flags: LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK, LZMA_TELL_ANY_CHECK, LZMA_IGNORE_CHECK, LZMA_CONCATENATED, LZMA_FAIL_FAST
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Initialization was successful.
  • +
  • LZMA_MEM_ERROR: Cannot allocate memory.
  • +
  • LZMA_OPTIONS_ERROR: Unsupported flags
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_stream_decoder_mt()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_stream_decoder_mt (lzma_streamstrm,
const lzma_mtoptions 
)
+
+ +

Initialize multithreaded .xz Stream decoder.

+

The decoder can decode multiple Blocks in parallel. This requires that each Block Header contains the Compressed Size and Uncompressed size fields which are added by the multi-threaded encoder, see lzma_stream_encoder_mt().

+

A Stream with one Block will only utilize one thread. A Stream with multiple Blocks but without size information in Block Headers will be processed in single-threaded mode in the same way as done by lzma_stream_decoder(). Concatenated Streams are processed one Stream at a time; no inter-Stream parallelization is done.

+

This function behaves like lzma_stream_decoder() when options->threads == 1 and options->memlimit_threading <= 1.

+
Parameters
+ + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
optionsPointer to multithreaded compression options
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Initialization was successful.
  • +
  • LZMA_MEM_ERROR: Cannot allocate memory.
  • +
  • LZMA_MEMLIMIT_ERROR: Memory usage limit was reached.
  • +
  • LZMA_OPTIONS_ERROR: Unsupported flags.
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_auto_decoder()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_auto_decoder (lzma_streamstrm,
uint64_t memlimit,
uint32_t flags 
)
+
+ +

Decode .xz, .lzma, and .lz (lzip) files with autodetection.

+

This decoder autodetects between the .xz, .lzma, and .lz file formats, and calls lzma_stream_decoder(), lzma_alone_decoder(), or lzma_lzip_decoder() once the type of the input file has been detected.

+

Support for .lz was added in 5.4.0.

+

If the flag LZMA_CONCATENATED is used and the input is a .lzma file: For historical reasons concatenated .lzma files aren't supported. If there is trailing data after one .lzma stream, lzma_code() will return LZMA_DATA_ERROR. (lzma_alone_decoder() doesn't have such a check as it doesn't support any decoder flags. It will return LZMA_STREAM_END after one .lzma stream.)

+
Parameters
+ + + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
memlimitMemory usage limit as bytes. Use UINT64_MAX to effectively disable the limiter. liblzma 5.2.3 and earlier don't allow 0 here and return LZMA_PROG_ERROR; later versions treat 0 as if 1 had been specified.
flagsBitwise-or of zero or more of the decoder flags: LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK, LZMA_TELL_ANY_CHECK, LZMA_IGNORE_CHECK, LZMA_CONCATENATED, LZMA_FAIL_FAST
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Initialization was successful.
  • +
  • LZMA_MEM_ERROR: Cannot allocate memory.
  • +
  • LZMA_OPTIONS_ERROR: Unsupported flags
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_alone_decoder()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_alone_decoder (lzma_streamstrm,
uint64_t memlimit 
)
+
+ +

Initialize .lzma decoder (legacy file format)

+

Valid `action' arguments to lzma_code() are LZMA_RUN and LZMA_FINISH. There is no need to use LZMA_FINISH, but it's allowed because it may simplify certain types of applications.

+
Parameters
+ + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
memlimitMemory usage limit as bytes. Use UINT64_MAX to effectively disable the limiter. liblzma 5.2.3 and earlier don't allow 0 here and return LZMA_PROG_ERROR; later versions treat 0 as if 1 had been specified.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_lzip_decoder()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_lzip_decoder (lzma_streamstrm,
uint64_t memlimit,
uint32_t flags 
)
+
+ +

Initialize .lz (lzip) decoder (a foreign file format)

+

This decoder supports the .lz format version 0 and the unextended .lz format version 1:

+
    +
  • Files in the format version 0 were produced by lzip 1.3 and older. Such files aren't common but may be found from file archives as a few source packages were released in this format. People might have old personal files in this format too. Decompression support for the format version 0 was removed in lzip 1.18.
  • +
  • lzip 1.3 added decompression support for .lz format version 1 files. Compression support was added in lzip 1.4. In lzip 1.6 the .lz format version 1 was extended to support the Sync Flush marker. This extension is not supported by liblzma. lzma_code() will return LZMA_DATA_ERROR at the location of the Sync Flush marker. In practice files with the Sync Flush marker are very rare and thus liblzma can decompress almost all .lz files.
  • +
+

Just like with lzma_stream_decoder() for .xz files, LZMA_CONCATENATED should be used when decompressing normal standalone .lz files.

+

The .lz format allows putting non-.lz data at the end of a file after at least one valid .lz member. That is, one can append custom data at the end of a .lz file and the decoder is required to ignore it. In liblzma this is relevant only when LZMA_CONCATENATED is used. In that case lzma_code() will return LZMA_STREAM_END and leave lzma_stream.next_in pointing to the first byte of the non-.lz data. An exception to this is if the first 1-3 bytes of the non-.lz data are identical to the .lz magic bytes (0x4C, 0x5A, 0x49, 0x50; "LZIP" in US-ASCII). In such a case the 1-3 bytes will have been ignored by lzma_code(). If one wishes to locate the non-.lz data reliably, one must ensure that the first byte isn't 0x4C. Actually one should ensure that none of the first four bytes of trailing data are equal to the magic bytes because lzip >= 1.20 requires it by default.

+
Parameters
+ + + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
memlimitMemory usage limit as bytes. Use UINT64_MAX to effectively disable the limiter.
flagsBitwise-or of flags, or zero for no flags. All decoder flags listed above are supported although only LZMA_CONCATENATED and (in very rare cases) LZMA_IGNORE_CHECK are actually useful. LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK, and LZMA_FAIL_FAST do nothing. LZMA_TELL_ANY_CHECK is supported for consistency only as CRC32 is always used in the .lz format.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Initialization was successful.
  • +
  • LZMA_MEM_ERROR: Cannot allocate memory.
  • +
  • LZMA_OPTIONS_ERROR: Unsupported flags
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_stream_buffer_decode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_stream_buffer_decode (uint64_t * memlimit,
uint32_t flags,
const lzma_allocatorallocator,
const uint8_t * in,
size_t * in_pos,
size_t in_size,
uint8_t * out,
size_t * out_pos,
size_t out_size 
)
+
+ +

Single-call .xz Stream decoder.

+
Parameters
+ + + + + + + + + + +
memlimitPointer to how much memory the decoder is allowed to allocate. The value pointed by this pointer is modified if and only if LZMA_MEMLIMIT_ERROR is returned.
flagsBitwise-or of zero or more of the decoder flags: LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK, LZMA_IGNORE_CHECK, LZMA_CONCATENATED, LZMA_FAIL_FAST. Note that LZMA_TELL_ANY_CHECK is not allowed and will return LZMA_PROG_ERROR.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
inBeginning of the input buffer
in_posThe next byte will be read from in[*in_pos]. *in_pos is updated only if decoding succeeds.
in_sizeSize of the input buffer; the first byte that won't be read is in[in_size].
[out]outBeginning of the output buffer
[out]out_posThe next byte will be written to out[*out_pos]. *out_pos is updated only if decoding succeeds.
out_sizeSize of the out buffer; the first byte into which no data is written to is out[out_size].
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Decoding was successful.
  • +
  • LZMA_FORMAT_ERROR
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_DATA_ERROR
  • +
  • LZMA_NO_CHECK: This can be returned only if using the LZMA_TELL_NO_CHECK flag.
  • +
  • LZMA_UNSUPPORTED_CHECK: This can be returned only if using the LZMA_TELL_UNSUPPORTED_CHECK flag.
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_MEMLIMIT_ERROR: Memory usage limit was reached. The minimum required memlimit value was stored to *memlimit.
  • +
  • LZMA_BUF_ERROR: Output buffer was too small.
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_microlzma_decoder()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_microlzma_decoder (lzma_streamstrm,
uint64_t comp_size,
uint64_t uncomp_size,
lzma_bool uncomp_size_is_exact,
uint32_t dict_size 
)
+
+ +

MicroLZMA decoder.

+

See lzma_microlzma_encoder() for more information.

+

The lzma_code() usage with this decoder is completely normal. The special behavior of lzma_code() applies to lzma_microlzma_encoder() only.

+
Parameters
+ + + + + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
comp_sizeCompressed size of the MicroLZMA stream. The caller must somehow know this exactly.
uncomp_sizeUncompressed size of the MicroLZMA stream. If the exact uncompressed size isn't known, this can be set to a value that is at most as big as the exact uncompressed size would be, but then the next argument uncomp_size_is_exact must be false.
uncomp_size_is_exactIf true, uncomp_size must be exactly correct. This will improve error detection at the end of the stream. If the exact uncompressed size isn't known, this must be false. uncomp_size must still be at most as big as the exact uncompressed size is. Setting this to false when the exact size is known will work but error detection at the end of the stream will be weaker.
dict_sizeLZMA dictionary size that was used when compressing the data. It is OK to use a bigger value too but liblzma will then allocate more memory than would actually be required and error detection will be slightly worse. (Note that with the implementation in XZ Embedded it doesn't affect the memory usage if one specifies bigger dictionary than actually required.)
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+
+ + + + diff --git a/xz-5.4.5/doc/api/delta_8h.html b/xz-5.4.5/doc/api/delta_8h.html new file mode 100644 index 000000000..dd64be266 --- /dev/null +++ b/xz-5.4.5/doc/api/delta_8h.html @@ -0,0 +1,132 @@ + + + + + + + +liblzma (XZ Utils): lzma/delta.h File Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + + +
+
+ +
delta.h File Reference
+
+
+ +

Delta filter. +More...

+ + + + + +

+Data Structures

struct  lzma_options_delta
 Options for the Delta filter. More...
 
+ + + + + + + + + + +

+Macros

#define LZMA_FILTER_DELTA   LZMA_VLI_C(0x03)
 Filter ID.
 
+#define LZMA_DELTA_DIST_MIN   1
 Minimum value for lzma_options_delta.dist.
 
+#define LZMA_DELTA_DIST_MAX   256
 Maximum value for lzma_options_delta.dist.
 
+ + + + +

+Enumerations

enum  lzma_delta_type { LZMA_DELTA_TYPE_BYTE + }
 Type of the delta calculation. More...
 
+

Detailed Description

+

Delta filter.

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Macro Definition Documentation

+ +

◆ LZMA_FILTER_DELTA

+ +
+
+ + + + +
#define LZMA_FILTER_DELTA   LZMA_VLI_C(0x03)
+
+ +

Filter ID.

+

Filter ID of the Delta filter. This is used as lzma_filter.id.

+ +
+
+

Enumeration Type Documentation

+ +

◆ lzma_delta_type

+ +
+
+ + + + +
enum lzma_delta_type
+
+ +

Type of the delta calculation.

+

Currently only byte-wise delta is supported. Other possible types could be, for example, delta of 16/32/64-bit little/big endian integers, but these are not currently planned since byte-wise delta is almost as good.

+ +
+
+
+ + + + diff --git a/xz-5.4.5/doc/api/dir_b17a1d403082bd69a703ed987cf158fb.html b/xz-5.4.5/doc/api/dir_b17a1d403082bd69a703ed987cf158fb.html new file mode 100644 index 000000000..ff360ae05 --- /dev/null +++ b/xz-5.4.5/doc/api/dir_b17a1d403082bd69a703ed987cf158fb.html @@ -0,0 +1,104 @@ + + + + + + + +liblzma (XZ Utils): lzma Directory Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + + +
+
+
lzma Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

 base.h
 Data types and functions used in many places in liblzma API.
 
 bcj.h
 Branch/Call/Jump conversion filters.
 
 block.h
 .xz Block handling
 
 check.h
 Integrity checks.
 
 container.h
 File formats.
 
 delta.h
 Delta filter.
 
 filter.h
 Common filter related types and functions.
 
 hardware.h
 Hardware information.
 
 index.h
 Handling of .xz Index and related information.
 
 index_hash.h
 Validate Index by using a hash function.
 
 lzma12.h
 LZMA1 and LZMA2 filters.
 
 stream_flags.h
 .xz Stream Header and Stream Footer encoder and decoder
 
 version.h
 Version number.
 
 vli.h
 Variable-length integer handling.
 
+
+ + + + diff --git a/xz-5.4.5/doc/api/doc.svg b/xz-5.4.5/doc/api/doc.svg new file mode 100644 index 000000000..296728b1f --- /dev/null +++ b/xz-5.4.5/doc/api/doc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/xz-5.4.5/doc/api/docd.svg b/xz-5.4.5/doc/api/docd.svg new file mode 100644 index 000000000..65cf4b50f --- /dev/null +++ b/xz-5.4.5/doc/api/docd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/xz-5.4.5/doc/api/doxygen.css b/xz-5.4.5/doc/api/doxygen.css new file mode 100644 index 000000000..6ce281302 --- /dev/null +++ b/xz-5.4.5/doc/api/doxygen.css @@ -0,0 +1,2017 @@ +/* The standard CSS for doxygen 1.9.7*/ + +html { +/* page base colors */ +--page-background-color: white; +--page-foreground-color: black; +--page-link-color: #144779; +--page-visited-link-color: #195794; + +/* index */ +--index-odd-item-bg-color: #F3F8FD; +--index-even-item-bg-color: white; +--index-header-color: black; +--index-separator-color: #A0A0A0; + +/* header */ +--header-background-color: #F5F9FD; +--header-separator-color: #A0C7EE; +--header-gradient-image: url('nav_h.png'); +--group-header-separator-color: #4491DE; +--group-header-color: #113B65; +--inherit-header-color: gray; + +--footer-foreground-color: #0C2B4A; +--footer-logo-width: 104px; +--citation-label-color: #10375F; +--glow-color: cyan; + +--title-background-color: white; +--title-separator-color: #1E67AF; +--directory-separator-color: #62A3E4; +--separator-color: #1B5D9E; + +--blockquote-background-color: #F1F7FC; +--blockquote-border-color: #62A3E4; + +--scrollbar-thumb-color: #62A3E4; +--scrollbar-background-color: #F5F9FD; + +--icon-background-color: #257FD9; +--icon-foreground-color: white; +--icon-doc-image: url('doc.svg'); +--icon-folder-open-image: url('folderopen.svg'); +--icon-folder-closed-image: url('folderclosed.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #F5F9FD; +--memdecl-separator-color: #C8DFF5; +--memdecl-foreground-color: #555; +--memdecl-template-color: #195794; + +/* detailed member list */ +--memdef-border-color: #74ADE7; +--memdef-title-background-color: #D0E3F6; +--memdef-title-gradient-image: url('nav_f.png'); +--memdef-proto-background-color: #CAE0F5; +--memdef-proto-text-color: #0A233D; +--memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--memdef-doc-background-color: white; +--memdef-param-name-color: #602020; +--memdef-template-color: #195794; + +/* tables */ +--table-cell-border-color: #0D2F50; +--table-header-background-color: #123E6A; +--table-header-foreground-color: #FFFFFF; + +/* labels */ +--label-background-color: #257FD9; +--label-left-top-border-color: #1E67AF; +--label-right-bottom-border-color: #A0C7EE; +--label-foreground-color: white; + +/** navigation bar/tree/menu */ +--nav-background-color: #F5F9FD; +--nav-foreground-color: #113C67; +--nav-gradient-image: url('tab_b.png'); +--nav-gradient-hover-image: url('tab_h.png'); +--nav-gradient-active-image: url('tab_a.png'); +--nav-gradient-active-image-parent: url("../tab_a.png"); +--nav-separator-image: url('tab_s.png'); +--nav-breadcrumb-image: url('bc_s.png'); +--nav-breadcrumb-border-color: #9CC5EE; +--nav-splitbar-image: url('splitbar.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #0B2845; +--nav-text-hover-color: white; +--nav-text-active-color: white; +--nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #113C67; +--nav-menu-background-color: white; +--nav-menu-foreground-color: #555555; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.5); +--nav-arrow-color: #62A3E4; +--nav-arrow-selected-color: #62A3E4; + +/* table of contents */ +--toc-background-color: #EEF5FC; +--toc-border-color: #BFD9F4; +--toc-header-color: #195794; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: white; +--search-foreground-color: #909090; +--search-magnification-image: url('mag.svg'); +--search-magnification-select-image: url('mag_sel.svg'); +--search-active-color: black; +--search-filter-background-color: #F5F9FD; +--search-filter-foreground-color: black; +--search-filter-border-color: #5098E0; +--search-filter-highlight-text-color: white; +--search-filter-highlight-bg-color: #144779; +--search-results-foreground-color: #174F86; +--search-results-background-color: #E2EEFA; +--search-results-border-color: black; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #555; + +/** code fragments */ +--code-keyword-color: #008000; +--code-type-keyword-color: #604020; +--code-flow-keyword-color: #E08000; +--code-comment-color: #800000; +--code-preprocessor-color: #806020; +--code-string-literal-color: #002080; +--code-char-literal-color: #008080; +--code-xml-cdata-color: black; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #195794; +--code-external-link-color: #195794; +--fragment-foreground-color: black; +--fragment-background-color: #F9FBFE; +--fragment-border-color: #A0C7EE; +--fragment-lineno-border-color: #00FF00; +--fragment-lineno-background-color: #E8E8E8; +--fragment-lineno-foreground-color: black; +--fragment-lineno-link-fg-color: #195794; +--fragment-lineno-link-bg-color: #D8D8D8; +--fragment-lineno-link-hover-fg-color: #195794; +--fragment-lineno-link-hover-bg-color: #C8C8C8; +--tooltip-foreground-color: black; +--tooltip-background-color: white; +--tooltip-border-color: gray; +--tooltip-doc-color: grey; +--tooltip-declaration-color: #006318; +--tooltip-link-color: #195794; +--tooltip-shadow: 1px 1px 7px gray; + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +} + +@media (prefers-color-scheme: dark) { + html:not(.dark-mode) { + color-scheme: dark; + +/* page base colors */ +--page-background-color: black; +--page-foreground-color: #C9D1D9; +--page-link-color: #5098E0; +--page-visited-link-color: #6DA9E5; + +/* index */ +--index-odd-item-bg-color: #02070C; +--index-even-item-bg-color: black; +--index-header-color: #A0C7EE; +--index-separator-color: #10375F; + +/* header */ +--header-background-color: #010407; +--header-separator-color: #040F1A; +--header-gradient-image: url('nav_hd.png'); +--group-header-separator-color: #0B2845; +--group-header-color: #5098E0; +--inherit-header-color: #A0A0A0; + +--footer-foreground-color: #206DBA; +--footer-logo-width: 60px; +--citation-label-color: #5098E0; +--glow-color: cyan; + +--title-background-color: #010509; +--title-separator-color: #113A63; +--directory-separator-color: #0B2845; +--separator-color: #0B2845; + +--blockquote-background-color: #030C14; +--blockquote-border-color: #0B2845; + +--scrollbar-thumb-color: #0B2845; +--scrollbar-background-color: #010407; + +--icon-background-color: #10375F; +--icon-foreground-color: #A0C7EE; +--icon-doc-image: url('docd.svg'); +--icon-folder-open-image: url('folderopend.svg'); +--icon-folder-closed-image: url('folderclosedd.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #02070C; +--memdecl-separator-color: #0D2D4D; +--memdecl-foreground-color: #BBB; +--memdecl-template-color: #3488DC; + +/* detailed member list */ +--memdef-border-color: #092138; +--memdef-title-background-color: #071829; +--memdef-title-gradient-image: url('nav_fd.png'); +--memdef-proto-background-color: #061524; +--memdef-proto-text-color: #64A4E4; +--memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); +--memdef-doc-background-color: black; +--memdef-param-name-color: #D28757; +--memdef-template-color: #3488DC; + +/* tables */ +--table-cell-border-color: #0B2845; +--table-header-background-color: #0B2845; +--table-header-foreground-color: #A0C7EE; + +/* labels */ +--label-background-color: #113B65; +--label-left-top-border-color: #195794; +--label-right-bottom-border-color: #0B2845; +--label-foreground-color: #CCCCCC; + +/** navigation bar/tree/menu */ +--nav-background-color: #030C14; +--nav-foreground-color: #113C67; +--nav-gradient-image: url('tab_bd.png'); +--nav-gradient-hover-image: url('tab_hd.png'); +--nav-gradient-active-image: url('tab_ad.png'); +--nav-gradient-active-image-parent: url("../tab_ad.png"); +--nav-separator-image: url('tab_sd.png'); +--nav-breadcrumb-image: url('bc_sd.png'); +--nav-breadcrumb-border-color: #0C2B4A; +--nav-splitbar-image: url('splitbard.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #8ABAEA; +--nav-text-hover-color: #C5DDF5; +--nav-text-active-color: #C5DDF5; +--nav-text-normal-shadow: 0px 1px 1px black; +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #8ABAEA; +--nav-menu-background-color: #000204; +--nav-menu-foreground-color: #BBBBBB; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.2); +--nav-arrow-color: #10375F; +--nav-arrow-selected-color: #5098E0; + +/* table of contents */ +--toc-background-color: #04101B; +--toc-border-color: #081D32; +--toc-header-color: #6DA9E5; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: black; +--search-foreground-color: #C5C5C5; +--search-magnification-image: url('mag_d.svg'); +--search-magnification-select-image: url('mag_seld.svg'); +--search-active-color: #C5C5C5; +--search-filter-background-color: #030C14; +--search-filter-foreground-color: #5098E0; +--search-filter-border-color: #3488DC; +--search-filter-highlight-text-color: #93BFEC; +--search-filter-highlight-bg-color: #0B2845; +--search-results-background-color: #030C14; +--search-results-foreground-color: #5098E0; +--search-results-border-color: #3488DC; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #0E3255; + +/** code fragments */ +--code-keyword-color: #CC99CD; +--code-type-keyword-color: #AB99CD; +--code-flow-keyword-color: #E08000; +--code-comment-color: #717790; +--code-preprocessor-color: #65CABE; +--code-string-literal-color: #7EC699; +--code-char-literal-color: #00E0F0; +--code-xml-cdata-color: #C9D1D9; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #79C0FF; +--code-external-link-color: #79C0FF; +--fragment-foreground-color: #C9D1D9; +--fragment-background-color: black; +--fragment-border-color: #30363D; +--fragment-lineno-border-color: #30363D; +--fragment-lineno-background-color: black; +--fragment-lineno-foreground-color: #6E7681; +--fragment-lineno-link-fg-color: #6E7681; +--fragment-lineno-link-bg-color: #303030; +--fragment-lineno-link-hover-fg-color: #8E96A1; +--fragment-lineno-link-hover-bg-color: #505050; +--tooltip-foreground-color: #C9D1D9; +--tooltip-background-color: #202020; +--tooltip-border-color: #C9D1D9; +--tooltip-doc-color: #D9E1E9; +--tooltip-declaration-color: #20C348; +--tooltip-link-color: #79C0FF; +--tooltip-shadow: none; + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +}} +body { + background-color: var(--page-background-color); + color: var(--page-foreground-color); +} + +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 22px; +} + +/* @group Heading Levels */ + +.title { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 28px; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h1.groupheader { + font-size: 150%; +} + +h2.groupheader { + border-bottom: 1px solid var(--group-header-separator-color); + color: var(--group-header-color); + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--glow-color); +} + +dt { + font-weight: bold; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL { + background-image: var(--nav-gradient-active-image); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: var(--index-separator-color); +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: var(--index-header-color); +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.even { + background-color: var(--index-even-item-bg-color); +} + +.classindex dl.odd { + background-color: var(--index-odd-item-bg-color); +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: var(--page-link-color); + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: var(--page-visited-link-color); +} + +a:hover { + text-decoration: underline; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: var(--code-link-color); +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: var(--code-external-link-color); +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid var(--fragment-border-color); + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: var(--font-family-monospace); + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + color: var(--fragment-foreground-color); + background-color: var(--fragment-background-color); + border: 1px solid var(--fragment-border-color); +} + +div.line { + font-family: var(--font-family-monospace); + font-size: 13px; + min-height: 13px; + line-height: 1.2; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: var(--glow-color); + box-shadow: 0 0 10px var(--glow-color); +} + + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid var(--fragment-lineno-border-color); + color: var(--fragment-lineno-foreground-color); + background-color: var(--fragment-lineno-background-color); + white-space: pre; +} +span.lineno a, span.lineno a:visited { + color: var(--fragment-lineno-link-fg-color); + background-color: var(--fragment-lineno-link-bg-color); +} + +span.lineno a:hover { + color: var(--fragment-lineno-link-hover-fg-color); + background-color: var(--fragment-lineno-link-hover-bg-color); +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + color: var(--page-foreground-color); + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +p.formulaDsp { + text-align: center; +} + +img.dark-mode-visible { + display: none; +} +img.light-mode-visible { + display: none; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; + width: var(--footer-logo-width); +} + +.compoundTemplParams { + color: var(--memdecl-template-color); + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: var(--code-keyword-color); +} + +span.keywordtype { + color: var(--code-type-keyword-color); +} + +span.keywordflow { + color: var(--code-flow-keyword-color); +} + +span.comment { + color: var(--code-comment-color); +} + +span.preprocessor { + color: var(--code-preprocessor-color); +} + +span.stringliteral { + color: var(--code-string-literal-color); +} + +span.charliteral { + color: var(--code-char-literal-color); +} + +span.xmlcdata { + color: var(--code-xml-cdata-color); +} + +span.vhdldigit { + color: var(--code-vhdl-digit-color); +} + +span.vhdlchar { + color: var(--code-vhdl-char-color); +} + +span.vhdlkeyword { + color: var(--code-vhdl-keyword-color); +} + +span.vhdllogic { + color: var(--code-vhdl-logic-color); +} + +blockquote { + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid var(--table-cell-border-color); +} + +th.dirtab { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid var(--separator-color); +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: var(--memdecl-background-color); + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: var(--memdecl-foreground-color); +} + +.memSeparator { + border-bottom: 1px solid var(--memdecl-separator-color); + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: var(--memdecl-template-color); + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: var(--memdef-title-gradient-image); + background-repeat: repeat-x; + background-color: var(--memdef-title-background-color); + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: var(--memdef-template-color); + font-weight: normal; + margin-left: 9px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px var(--glow-color); +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 0px 6px 0px; + color: var(--memdef-proto-text-color); + font-weight: bold; + text-shadow: var(--memdef-proto-text-shadow); + background-color: var(--memdef-proto-background-color); + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; +} + +.overload { + font-family: var(--font-family-monospace); + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 10px 2px 10px; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: var(--memdef-doc-background-color); + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: var(--memdef-param-name-color); + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: var(--font-family-monospace); + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); + text-shadow: none; + color: var(--label-foreground-color); + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid var(--directory-separator-color); + border-bottom: 1px solid var(--directory-separator-color); + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.odd { + padding-left: 6px; + background-color: var(--index-odd-item-bg-color); +} + +.directory tr.even { + padding-left: 6px; + background-color: var(--index-even-item-bg-color); +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: var(--page-link-color); +} + +.arrow { + color: var(--nav-arrow-color); + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: var(--font-family-icon); + line-height: normal; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-open-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-closed-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-doc-image); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: var(--footer-foreground-color); +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + margin-bottom: 10px; + border: 1px solid var(--memdef-border-color); + border-spacing: 0px; + border-radius: 4px; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid var(--memdef-border-color); +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image: var(--memdef-title-gradient-image); + background-repeat:repeat-x; + background-color: var(--memdef-title-background-color); + font-size: 90%; + color: var(--memdef-proto-text-color); + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: var(--nav-gradient-image); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image: var(--nav-gradient-image); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:var(--nav-text-normal-color); + border:solid 1px var(--nav-breadcrumb-border-color); + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:var(--nav-breadcrumb-image); + background-repeat:no-repeat; + background-position:right; + color: var(--nav-foreground-color); +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: var(--nav-text-normal-color); + font-family: var(--font-family-nav); + text-shadow: var(--nav-text-normal-shadow); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color: var(--footer-foreground-color); + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image: var(--header-gradient-image); + background-repeat:repeat-x; + background-color: var(--header-background-color); + margin: 0px; + border-bottom: 1px solid var(--header-separator-color); +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font-size: 200%; + font-family: var(--font-family-title); + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font-size: 90%; + font-family: var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font-size: 50%; + font-family: 50% var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid var(--title-separator-color); + background-color: var(--title-background-color); +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:var(--citation-label-color); + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent; + font: 10px/1.2 var(--font-family-toc); + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 var(--font-family-toc); + color: var(--toc-header-color); + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 15px; +} + +div.toc li.level4 { + margin-left: 15px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +span.obfuscator { + display: none; +} + +.inherit_header { + font-weight: bold; + color: var(--inherit-header-color); + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + /*white-space: nowrap;*/ + color: var(--tooltip-foreground-color); + background-color: var(--tooltip-background-color); + border: 1px solid var(--tooltip-border-color); + border-radius: 4px 4px 4px 4px; + box-shadow: var(--tooltip-shadow); + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: var(--tooltip-doc-color); + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip a { + color: var(--tooltip-link-color); +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: var(--tooltip-declaration-color); +} + +#powerTip div { + margin: 0px; + padding: 0px; + font-size: 12px; + font-family: var(--font-family-tooltip); + line-height: 16px; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +tt, code, kbd, samp +{ + display: inline-block; +} +/* @end */ + +u { + text-decoration: underline; +} + +details>summary { + list-style-type: none; +} + +details > summary::-webkit-details-marker { + display: none; +} + +details>summary::before { + content: "\25ba"; + padding-right:4px; + font-size: 80%; +} + +details[open]>summary::before { + content: "\25bc"; + padding-right:4px; + font-size: 80%; +} + +body { + scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); +} + +::-webkit-scrollbar { + background-color: var(--scrollbar-background-color); + height: 12px; + width: 12px; +} +::-webkit-scrollbar-thumb { + border-radius: 6px; + box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color); + border: solid 2px transparent; +} +::-webkit-scrollbar-corner { + background-color: var(--scrollbar-background-color); +} + diff --git a/xz-5.4.5/doc/api/doxygen.svg b/xz-5.4.5/doc/api/doxygen.svg new file mode 100644 index 000000000..363aa45fc --- /dev/null +++ b/xz-5.4.5/doc/api/doxygen.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xz-5.4.5/doc/api/files.html b/xz-5.4.5/doc/api/files.html new file mode 100644 index 000000000..459665c7c --- /dev/null +++ b/xz-5.4.5/doc/api/files.html @@ -0,0 +1,74 @@ + + + + + + + +liblzma (XZ Utils): File List + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + +
+
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+
[detail level 12]
+ + + + + + + + + + + + + + + + +
  lzma
 base.hData types and functions used in many places in liblzma API
 bcj.hBranch/Call/Jump conversion filters
 block.h.xz Block handling
 check.hIntegrity checks
 container.hFile formats
 delta.hDelta filter
 filter.hCommon filter related types and functions
 hardware.hHardware information
 index.hHandling of .xz Index and related information
 index_hash.hValidate Index by using a hash function
 lzma12.hLZMA1 and LZMA2 filters
 stream_flags.h.xz Stream Header and Stream Footer encoder and decoder
 version.hVersion number
 vli.hVariable-length integer handling
 lzma.hThe public API of liblzma data compression library
+
+
+ + + + diff --git a/xz-5.4.5/doc/api/filter_8h.html b/xz-5.4.5/doc/api/filter_8h.html new file mode 100644 index 000000000..7f2ffaaa2 --- /dev/null +++ b/xz-5.4.5/doc/api/filter_8h.html @@ -0,0 +1,1342 @@ + + + + + + + +liblzma (XZ Utils): lzma/filter.h File Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + + +
+
+ +
filter.h File Reference
+
+
+ +

Common filter related types and functions. +More...

+ + + + + +

+Data Structures

struct  lzma_filter
 Filter options. More...
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define LZMA_FILTERS_MAX   4
 Maximum number of filters in a chain.
 
#define LZMA_STR_ALL_FILTERS   UINT32_C(0x01)
 Allow or show all filters.
 
#define LZMA_STR_NO_VALIDATION   UINT32_C(0x02)
 Do not validate the filter chain in lzma_str_to_filters()
 
#define LZMA_STR_ENCODER   UINT32_C(0x10)
 Stringify encoder options.
 
#define LZMA_STR_DECODER   UINT32_C(0x20)
 Stringify decoder options.
 
#define LZMA_STR_GETOPT_LONG   UINT32_C(0x40)
 Produce xz-compatible getopt_long() syntax.
 
#define LZMA_STR_NO_SPACES   UINT32_C(0x80)
 Use two dashes "--" instead of a space to separate filters.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

lzma_bool lzma_filter_encoder_is_supported (lzma_vli id) lzma_nothrow lzma_attr_const
 Test if the given Filter ID is supported for encoding.
 
lzma_bool lzma_filter_decoder_is_supported (lzma_vli id) lzma_nothrow lzma_attr_const
 Test if the given Filter ID is supported for decoding.
 
lzma_ret lzma_filters_copy (const lzma_filter *src, lzma_filter *dest, const lzma_allocator *allocator) lzma_nothrow lzma_attr_warn_unused_result
 Copy the filters array.
 
void lzma_filters_free (lzma_filter *filters, const lzma_allocator *allocator) lzma_nothrow
 Free the options in the array of lzma_filter structures.
 
uint64_t lzma_raw_encoder_memusage (const lzma_filter *filters) lzma_nothrow lzma_attr_pure
 Calculate approximate memory requirements for raw encoder.
 
uint64_t lzma_raw_decoder_memusage (const lzma_filter *filters) lzma_nothrow lzma_attr_pure
 Calculate approximate memory requirements for raw decoder.
 
lzma_ret lzma_raw_encoder (lzma_stream *strm, const lzma_filter *filters) lzma_nothrow lzma_attr_warn_unused_result
 Initialize raw encoder.
 
lzma_ret lzma_raw_decoder (lzma_stream *strm, const lzma_filter *filters) lzma_nothrow lzma_attr_warn_unused_result
 Initialize raw decoder.
 
lzma_ret lzma_filters_update (lzma_stream *strm, const lzma_filter *filters) lzma_nothrow
 Update the filter chain in the encoder.
 
lzma_ret lzma_raw_buffer_encode (const lzma_filter *filters, const lzma_allocator *allocator, const uint8_t *in, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow
 Single-call raw encoder.
 
lzma_ret lzma_raw_buffer_decode (const lzma_filter *filters, const lzma_allocator *allocator, const uint8_t *in, size_t *in_pos, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow
 Single-call raw decoder.
 
lzma_ret lzma_properties_size (uint32_t *size, const lzma_filter *filter) lzma_nothrow
 Get the size of the Filter Properties field.
 
lzma_ret lzma_properties_encode (const lzma_filter *filter, uint8_t *props) lzma_nothrow
 Encode the Filter Properties field.
 
lzma_ret lzma_properties_decode (lzma_filter *filter, const lzma_allocator *allocator, const uint8_t *props, size_t props_size) lzma_nothrow
 Decode the Filter Properties field.
 
lzma_ret lzma_filter_flags_size (uint32_t *size, const lzma_filter *filter) lzma_nothrow lzma_attr_warn_unused_result
 Calculate encoded size of a Filter Flags field.
 
lzma_ret lzma_filter_flags_encode (const lzma_filter *filter, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow lzma_attr_warn_unused_result
 Encode Filter Flags into given buffer.
 
lzma_ret lzma_filter_flags_decode (lzma_filter *filter, const lzma_allocator *allocator, const uint8_t *in, size_t *in_pos, size_t in_size) lzma_nothrow lzma_attr_warn_unused_result
 Decode Filter Flags from given buffer.
 
const char * lzma_str_to_filters (const char *str, int *error_pos, lzma_filter *filters, uint32_t flags, const lzma_allocator *allocator) lzma_nothrow lzma_attr_warn_unused_result
 Convert a string to a filter chain.
 
lzma_ret lzma_str_from_filters (char **str, const lzma_filter *filters, uint32_t flags, const lzma_allocator *allocator) lzma_nothrow lzma_attr_warn_unused_result
 Convert a filter chain to a string.
 
lzma_ret lzma_str_list_filters (char **str, lzma_vli filter_id, uint32_t flags, const lzma_allocator *allocator) lzma_nothrow lzma_attr_warn_unused_result
 List available filters and/or their options (for help message)
 
+

Detailed Description

+

Common filter related types and functions.

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Macro Definition Documentation

+ +

◆ LZMA_FILTERS_MAX

+ +
+
+ + + + +
#define LZMA_FILTERS_MAX   4
+
+ +

Maximum number of filters in a chain.

+

A filter chain can have 1-4 filters, of which three are allowed to change the size of the data. Usually only one or two filters are needed.

+ +
+
+ +

◆ LZMA_STR_ALL_FILTERS

+ +
+
+ + + + +
#define LZMA_STR_ALL_FILTERS   UINT32_C(0x01)
+
+ +

Allow or show all filters.

+

By default only the filters supported in the .xz format are accept by lzma_str_to_filters() or shown by lzma_str_list_filters().

+ +
+
+ +

◆ LZMA_STR_NO_VALIDATION

+ +
+
+ + + + +
#define LZMA_STR_NO_VALIDATION   UINT32_C(0x02)
+
+ +

Do not validate the filter chain in lzma_str_to_filters()

+

By default lzma_str_to_filters() can return an error if the filter chain as a whole isn't usable in the .xz format or in the raw encoder or decoder. With this flag, this validation is skipped. This flag doesn't affect the handling of the individual filter options. To allow non-.xz filters also LZMA_STR_ALL_FILTERS is needed.

+ +
+
+ +

◆ LZMA_STR_ENCODER

+ +
+
+ + + + +
#define LZMA_STR_ENCODER   UINT32_C(0x10)
+
+ +

Stringify encoder options.

+

Show the filter-specific options that the encoder will use. This may be useful for verbose diagnostic messages.

+

Note that if options were decoded from .xz headers then the encoder options may be undefined. This flag shouldn't be used in such a situation.

+ +
+
+ +

◆ LZMA_STR_DECODER

+ +
+
+ + + + +
#define LZMA_STR_DECODER   UINT32_C(0x20)
+
+ +

Stringify decoder options.

+

Show the filter-specific options that the decoder will use. This may be useful for showing what filter options were decoded from file headers.

+ +
+
+ +

◆ LZMA_STR_GETOPT_LONG

+ +
+
+ + + + +
#define LZMA_STR_GETOPT_LONG   UINT32_C(0x40)
+
+ +

Produce xz-compatible getopt_long() syntax.

+

That is, "delta:dist=2 lzma2:dict=4MiB,pb=1,lp=1" becomes "--delta=dist=2 --lzma2=dict=4MiB,pb=1,lp=1".

+

This syntax is compatible with xz 5.0.0 as long as the filters and their options are supported too.

+ +
+
+ +

◆ LZMA_STR_NO_SPACES

+ +
+
+ + + + +
#define LZMA_STR_NO_SPACES   UINT32_C(0x80)
+
+ +

Use two dashes "--" instead of a space to separate filters.

+

That is, "delta:dist=2 lzma2:pb=1,lp=1" becomes "delta:dist=2--lzma2:pb=1,lp=1". This looks slightly odd but this kind of strings should be usable on the command line without quoting. However, it is possible that future versions with new filter options might produce strings that require shell quoting anyway as the exact set of possible characters isn't frozen for now.

+

It is guaranteed that the single quote (') will never be used in filter chain strings (even if LZMA_STR_NO_SPACES isn't used).

+ +
+
+

Function Documentation

+ +

◆ lzma_filter_encoder_is_supported()

+ +
+
+ + + + + + + + +
lzma_bool lzma_filter_encoder_is_supported (lzma_vli id) const
+
+ +

Test if the given Filter ID is supported for encoding.

+
Parameters
+ + +
idFilter ID
+
+
+
Returns
lzma_bool:
    +
  • true if the Filter ID is supported for encoding by this liblzma build.
  • +
  • false otherwise.
  • +
+
+ +
+
+ +

◆ lzma_filter_decoder_is_supported()

+ +
+
+ + + + + + + + +
lzma_bool lzma_filter_decoder_is_supported (lzma_vli id) const
+
+ +

Test if the given Filter ID is supported for decoding.

+
Parameters
+ + +
idFilter ID
+
+
+
Returns
lzma_bool:
    +
  • true if the Filter ID is supported for decoding by this liblzma build.
  • +
  • false otherwise.
  • +
+
+ +
+
+ +

◆ lzma_filters_copy()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_filters_copy (const lzma_filtersrc,
lzma_filterdest,
const lzma_allocatorallocator 
)
+
+ +

Copy the filters array.

+

Copy the Filter IDs and filter-specific options from src to dest. Up to LZMA_FILTERS_MAX filters are copied, plus the terminating .id == LZMA_VLI_UNKNOWN. Thus, dest should have at least LZMA_FILTERS_MAX + 1 elements space unless the caller knows that src is smaller than that.

+

Unless the filter-specific options is NULL, the Filter ID has to be supported by liblzma, because liblzma needs to know the size of every filter-specific options structure. The filter-specific options are not validated. If options is NULL, any unsupported Filter IDs are copied without returning an error.

+

Old filter-specific options in dest are not freed, so dest doesn't need to be initialized by the caller in any way.

+

If an error occurs, memory possibly already allocated by this function is always freed. liblzma versions older than 5.2.7 may modify the dest array and leave its contents in an undefined state if an error occurs. liblzma 5.2.7 and newer only modify the dest array when returning LZMA_OK.

+
Parameters
+ + + + +
srcArray of filters terminated with .id == LZMA_VLI_UNKNOWN.
[out]destDestination filter array
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_OPTIONS_ERROR: Unsupported Filter ID and its options is not NULL.
  • +
  • LZMA_PROG_ERROR: src or dest is NULL.
  • +
+
+ +
+
+ +

◆ lzma_filters_free()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void lzma_filters_free (lzma_filterfilters,
const lzma_allocatorallocator 
)
+
+ +

Free the options in the array of lzma_filter structures.

+

This frees the filter chain options. The filters array itself is not freed.

+

The filters array must have at most LZMA_FILTERS_MAX + 1 elements including the terminating element which must have .id = LZMA_VLI_UNKNOWN. For all elements before the terminating element:

    +
  • options will be freed using the given lzma_allocator or, if allocator is NULL, using free().
  • +
  • options will be set to NULL.
  • +
  • id will be set to LZMA_VLI_UNKNOWN.
  • +
+

If filters is NULL, this does nothing. Again, this never frees the filters array itself.

+
Parameters
+ + + +
filtersArray of filters terminated with .id == LZMA_VLI_UNKNOWN.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
+
+
+ +
+
+ +

◆ lzma_raw_encoder_memusage()

+ +
+
+ + + + + + + + +
uint64_t lzma_raw_encoder_memusage (const lzma_filterfilters)
+
+ +

Calculate approximate memory requirements for raw encoder.

+

This function can be used to calculate the memory requirements for Block and Stream encoders too because Block and Stream encoders don't need significantly more memory than raw encoder.

+
Parameters
+ + +
filtersArray of filters terminated with .id == LZMA_VLI_UNKNOWN.
+
+
+
Returns
Number of bytes of memory required for the given filter chain when encoding or UINT64_MAX on error.
+ +
+
+ +

◆ lzma_raw_decoder_memusage()

+ +
+
+ + + + + + + + +
uint64_t lzma_raw_decoder_memusage (const lzma_filterfilters)
+
+ +

Calculate approximate memory requirements for raw decoder.

+

This function can be used to calculate the memory requirements for Block and Stream decoders too because Block and Stream decoders don't need significantly more memory than raw decoder.

+
Parameters
+ + +
filtersArray of filters terminated with .id == LZMA_VLI_UNKNOWN.
+
+
+
Returns
Number of bytes of memory required for the given filter chain when decoding or UINT64_MAX on error.
+ +
+
+ +

◆ lzma_raw_encoder()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_raw_encoder (lzma_streamstrm,
const lzma_filterfilters 
)
+
+ +

Initialize raw encoder.

+

This function may be useful when implementing custom file formats.

+

The `action' with lzma_code() can be LZMA_RUN, LZMA_SYNC_FLUSH (if the filter chain supports it), or LZMA_FINISH.

+
Parameters
+ + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
filtersArray of filters terminated with .id == LZMA_VLI_UNKNOWN.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_raw_decoder()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_raw_decoder (lzma_streamstrm,
const lzma_filterfilters 
)
+
+ +

Initialize raw decoder.

+

The initialization of raw decoder goes similarly to raw encoder.

+

The `action' with lzma_code() can be LZMA_RUN or LZMA_FINISH. Using LZMA_FINISH is not required, it is supported just for convenience.

+
Parameters
+ + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
filtersArray of filters terminated with .id == LZMA_VLI_UNKNOWN.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_filters_update()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_filters_update (lzma_streamstrm,
const lzma_filterfilters 
)
+
+ +

Update the filter chain in the encoder.

+

This function may be called after lzma_code() has returned LZMA_STREAM_END when LZMA_FULL_BARRIER, LZMA_FULL_FLUSH, or LZMA_SYNC_FLUSH was used:

+
    +
  • After LZMA_FULL_BARRIER or LZMA_FULL_FLUSH: Single-threaded .xz Stream encoder (lzma_stream_encoder()) and (since liblzma 5.4.0) multi-threaded Stream encoder (lzma_stream_encoder_mt()) allow setting a new filter chain to be used for the next Block(s).
  • +
  • After LZMA_SYNC_FLUSH: Raw encoder (lzma_raw_encoder()), Block encoder (lzma_block_encoder()), and single-threaded .xz Stream encoder (lzma_stream_encoder()) allow changing certain filter-specific options in the middle of encoding. The actual filters in the chain (Filter IDs) must not be changed! Currently only the lc, lp, and pb options of LZMA2 (not LZMA1) can be changed this way.
  • +
  • In the future some filters might allow changing some of their options without any barrier or flushing but currently such filters don't exist.
  • +
+

This function may also be called when no data has been compressed yet although this is rarely useful. In that case, this function will behave as if LZMA_FULL_FLUSH (Stream encoders) or LZMA_SYNC_FLUSH (Raw or Block encoder) had been used right before calling this function.

+
Parameters
+ + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
filtersArray of filters terminated with .id == LZMA_VLI_UNKNOWN.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_MEMLIMIT_ERROR
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_raw_buffer_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_raw_buffer_encode (const lzma_filterfilters,
const lzma_allocatorallocator,
const uint8_t * in,
size_t in_size,
uint8_t * out,
size_t * out_pos,
size_t out_size 
)
+
+ +

Single-call raw encoder.

+
Note
There is no function to calculate how big output buffer would surely be big enough. (lzma_stream_buffer_bound() works only for lzma_stream_buffer_encode(); raw encoder won't necessarily meet that bound.)
+
Parameters
+ + + + + + + + +
filtersArray of filters terminated with .id == LZMA_VLI_UNKNOWN.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
inBeginning of the input buffer
in_sizeSize of the input buffer
[out]outBeginning of the output buffer
[out]out_posThe next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds.
out_sizeSize of the out buffer; the first byte into which no data is written to is out[out_size].
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Encoding was successful.
  • +
  • LZMA_BUF_ERROR: Not enough output buffer space.
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_DATA_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_raw_buffer_decode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_raw_buffer_decode (const lzma_filterfilters,
const lzma_allocatorallocator,
const uint8_t * in,
size_t * in_pos,
size_t in_size,
uint8_t * out,
size_t * out_pos,
size_t out_size 
)
+
+ +

Single-call raw decoder.

+
Parameters
+ + + + + + + + + +
filtersArray of filters terminated with .id == LZMA_VLI_UNKNOWN.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
inBeginning of the input buffer
in_posThe next byte will be read from in[*in_pos]. *in_pos is updated only if decoding succeeds.
in_sizeSize of the input buffer; the first byte that won't be read is in[in_size].
[out]outBeginning of the output buffer
[out]out_posThe next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds.
out_sizeSize of the out buffer; the first byte into which no data is written to is out[out_size].
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Decoding was successful.
  • +
  • LZMA_BUF_ERROR: Not enough output buffer space.
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_DATA_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_properties_size()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_properties_size (uint32_t * size,
const lzma_filterfilter 
)
+
+ +

Get the size of the Filter Properties field.

+

This function may be useful when implementing custom file formats using the raw encoder and decoder.

+
Note
This function validates the Filter ID, but does not necessarily validate the options. Thus, it is possible that this returns LZMA_OK while the following call to lzma_properties_encode() returns LZMA_OPTIONS_ERROR.
+
Parameters
+ + + +
[out]sizePointer to uint32_t to hold the size of the properties
filterFilter ID and options (the size of the properties may vary depending on the options)
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_properties_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_properties_encode (const lzma_filterfilter,
uint8_t * props 
)
+
+ +

Encode the Filter Properties field.

+
Note
Even this function won't validate more options than actually necessary. Thus, it is possible that encoding the properties succeeds but using the same options to initialize the encoder will fail.
+
+If lzma_properties_size() indicated that the size of the Filter Properties field is zero, calling lzma_properties_encode() is not required, but it won't do any harm either.
+
Parameters
+ + + +
filterFilter ID and options
[out]propsBuffer to hold the encoded options. The size of the buffer must have been already determined with lzma_properties_size().
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_properties_decode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_properties_decode (lzma_filterfilter,
const lzma_allocatorallocator,
const uint8_t * props,
size_t props_size 
)
+
+ +

Decode the Filter Properties field.

+
Parameters
+ + + + + +
filterfilter->id must have been set to the correct Filter ID. filter->options doesn't need to be initialized (it's not freed by this function). The decoded options will be stored in filter->options; it's application's responsibility to free it when appropriate. filter->options is set to NULL if there are no properties or if an error occurs.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free(). and in case of an error, also free().
propsInput buffer containing the properties.
props_sizeSize of the properties. This must be the exact size; giving too much or too little input will return LZMA_OPTIONS_ERROR.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
+
+ +
+
+ +

◆ lzma_filter_flags_size()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_filter_flags_size (uint32_t * size,
const lzma_filterfilter 
)
+
+ +

Calculate encoded size of a Filter Flags field.

+

Knowing the size of Filter Flags is useful to know when allocating memory to hold the encoded Filter Flags.

+
Note
If you need to calculate size of List of Filter Flags, you need to loop over every lzma_filter entry.
+
Parameters
+ + + +
[out]sizePointer to integer to hold the calculated size
filterFilter ID and associated options whose encoded size is to be calculated
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: *size set successfully. Note that this doesn't guarantee that filter->options is valid, thus lzma_filter_flags_encode() may still fail.
  • +
  • LZMA_OPTIONS_ERROR: Unknown Filter ID or unsupported options.
  • +
  • LZMA_PROG_ERROR: Invalid options
  • +
+
+ +
+
+ +

◆ lzma_filter_flags_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_filter_flags_encode (const lzma_filterfilter,
uint8_t * out,
size_t * out_pos,
size_t out_size 
)
+
+ +

Encode Filter Flags into given buffer.

+

In contrast to some functions, this doesn't allocate the needed buffer. This is due to how this function is used internally by liblzma.

+
Parameters
+ + + + + +
filterFilter ID and options to be encoded
[out]outBeginning of the output buffer
[out]out_posout[*out_pos] is the next write position. This is updated by the encoder.
out_sizeout[out_size] is the first byte to not write.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Encoding was successful.
  • +
  • LZMA_OPTIONS_ERROR: Invalid or unsupported options.
  • +
  • LZMA_PROG_ERROR: Invalid options or not enough output buffer space (you should have checked it with lzma_filter_flags_size()).
  • +
+
+ +
+
+ +

◆ lzma_filter_flags_decode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_filter_flags_decode (lzma_filterfilter,
const lzma_allocatorallocator,
const uint8_t * in,
size_t * in_pos,
size_t in_size 
)
+
+ +

Decode Filter Flags from given buffer.

+

The decoded result is stored into *filter. The old value of filter->options is not free()d. If anything other than LZMA_OK is returned, filter->options is set to NULL.

+
Parameters
+ + + + + + +
[out]filterDestination filter. The decoded Filter ID will be stored in filter->id. If options are needed they will be allocated and the pointer will be stored in filter->options.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
inBeginning of the input buffer
[out]in_posThe next byte will be read from in[*in_pos]. *in_pos is updated only if decoding succeeds.
in_sizeSize of the input buffer; the first byte that won't be read is in[in_size].
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_DATA_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_str_to_filters()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
const char * lzma_str_to_filters (const char * str,
int * error_pos,
lzma_filterfilters,
uint32_t flags,
const lzma_allocatorallocator 
)
+
+ +

Convert a string to a filter chain.

+

This tries to make it easier to write applications that allow users to set custom compression options. This only handles the filter configuration (including presets) but not the number of threads, block size, check type, or memory limits.

+

The input string can be either a preset or a filter chain. Presets begin with a digit 0-9 and may be followed by zero or more flags which are lower-case letters. Currently only "e" is supported, matching LZMA_PRESET_EXTREME. For partial xz command line syntax compatibility, a preset string may start with a single dash "-".

+

A filter chain consists of one or more "filtername:opt1=value1,opt2=value2" strings separated by one or more spaces. Leading and trailing spaces are ignored. All names and values must be lower-case. Extra commas in the option list are ignored. The order of filters is significant: when encoding, the uncompressed input data goes to the leftmost filter first. Normally "lzma2" is the last filter in the chain.

+

If one wishes to avoid spaces, for example, to avoid shell quoting, it is possible to use two dashes "--" instead of spaces to separate the filters.

+

For xz command line compatibility, each filter may be prefixed with two dashes "--" and the colon ":" separating the filter name from the options may be replaced with an equals sign "=".

+

By default, only filters that can be used in the .xz format are accepted. To allow all filters (LZMA1) use the flag LZMA_STR_ALL_FILTERS.

+

By default, very basic validation is done for the filter chain as a whole, for example, that LZMA2 is only used as the last filter in the chain. The validation isn't perfect though and it's possible that this function succeeds but using the filter chain for encoding or decoding will still result in LZMA_OPTIONS_ERROR. To disable this validation, use the flag LZMA_STR_NO_VALIDATION.

+

The available filter names and their options are available via lzma_str_list_filters(). See the xz man page for the description of filter names and options.

+

For command line applications, below is an example how an error message can be displayed. Note the use of an empty string for the field width. If "^" was used there it would create an off-by-one error except at the very beginning of the line.

+
const char *str = ...; // From user
+ +
int pos;
+
const char *msg = lzma_str_to_filters(str, &pos, filters, 0, NULL);
+
if (msg != NULL) {
+
printf("%s: Error in XZ compression options:\n", argv[0]);
+
printf("%s: %s\n", argv[0], str);
+
printf("%s: %*s^\n", argv[0], errpos, "");
+
printf("%s: %s\n", argv[0], msg);
+
}
+
Parameters
+ + + + + + +
strUser-supplied string describing a preset or a filter chain. If a default value is needed and you don't know what would be good, use "6" since that is the default preset in xz too.
[out]error_posIf this isn't NULL, this value will be set on both success and on all errors. This tells the location of the error in the string. This is an int to make it straightforward to use this as printf() field width. The value is guaranteed to be in the range [0, INT_MAX] even if strlen(str) somehow was greater than INT_MAX.
[out]filtersAn array of lzma_filter structures. There must be LZMA_FILTERS_MAX + 1 (that is, five) elements in the array. The old contents are ignored so it doesn't need to be initialized. This array is modified only if this function returns NULL. Once the allocated filter options are no longer needed, lzma_filters_free() can be used to free the options (it doesn't free the filters array itself).
flagsBitwise-or of zero or more of the flags LZMA_STR_ALL_FILTERS and LZMA_STR_NO_VALIDATION.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
+
+
+
Returns
On success, NULL is returned. On error, a statically-allocated error message is returned which together with the error_pos should give some idea what is wrong.
+ +
+
+ +

◆ lzma_str_from_filters()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_str_from_filters (char ** str,
const lzma_filterfilters,
uint32_t flags,
const lzma_allocatorallocator 
)
+
+ +

Convert a filter chain to a string.

+

Use cases:

+
    +
  • Verbose output showing the full encoder options to the user (use LZMA_STR_ENCODER in flags)
  • +
  • Showing the filters and options that are required to decode a file (use LZMA_STR_DECODER in flags)
  • +
  • Showing the filter names without any options in informational messages where the technical details aren't important (no flags). In this case the .options in the filters array are ignored and may be NULL even if a filter has a mandatory options structure.
  • +
+

Note that even if the filter chain was specified using a preset, the resulting filter chain isn't reversed to a preset. So if you specify "6" to lzma_str_to_filters() then lzma_str_from_filters() will produce a string containing "lzma2".

+
Parameters
+ + + + + +
[out]strOn success *str will be set to point to an allocated string describing the given filter chain. Old value is ignored. On error *str is always set to NULL.
filtersArray of filters terminated with .id == LZMA_VLI_UNKNOWN.
flagsBitwise-or of zero or more of the flags LZMA_STR_ENCODER, LZMA_STR_DECODER, LZMA_STR_GETOPT_LONG, and LZMA_STR_NO_SPACES.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_OPTIONS_ERROR: Empty filter chain (filters[0].id == LZMA_VLI_UNKNOWN) or the filter chain includes a Filter ID that is not supported by this function.
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_str_list_filters()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_str_list_filters (char ** str,
lzma_vli filter_id,
uint32_t flags,
const lzma_allocatorallocator 
)
+
+ +

List available filters and/or their options (for help message)

+

If a filter_id is given then only one line is created which contains the filter name. If LZMA_STR_ENCODER or LZMA_STR_DECODER is used then the options read by the encoder or decoder are printed on the same line.

+

If filter_id is LZMA_VLI_UNKNOWN then all supported .xz-compatible filters are listed:

+
    +
  • If neither LZMA_STR_ENCODER nor LZMA_STR_DECODER is used then the supported filter names are listed on a single line separated by spaces.
  • +
  • If LZMA_STR_ENCODER or LZMA_STR_DECODER is used then filters and the supported options are listed one filter per line. There won't be a newline after the last filter.
  • +
  • If LZMA_STR_ALL_FILTERS is used then the list will include also those filters that cannot be used in the .xz format (LZMA1).
  • +
+
Parameters
+ + + + + +
strOn success *str will be set to point to an allocated string listing the filters and options. Old value is ignored. On error *str is always set to NULL.
filter_idFilter ID or LZMA_VLI_UNKNOWN.
flagsBitwise-or of zero or more of the flags LZMA_STR_ALL_FILTERS, LZMA_STR_ENCODER, LZMA_STR_DECODER, and LZMA_STR_GETOPT_LONG.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_OPTIONS_ERROR: Unsupported filter_id or flags
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+
+ + + + diff --git a/xz-5.4.5/doc/api/folderclosed.svg b/xz-5.4.5/doc/api/folderclosed.svg new file mode 100644 index 000000000..47d22df81 --- /dev/null +++ b/xz-5.4.5/doc/api/folderclosed.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/xz-5.4.5/doc/api/folderclosedd.svg b/xz-5.4.5/doc/api/folderclosedd.svg new file mode 100644 index 000000000..8fe003120 --- /dev/null +++ b/xz-5.4.5/doc/api/folderclosedd.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/xz-5.4.5/doc/api/folderopen.svg b/xz-5.4.5/doc/api/folderopen.svg new file mode 100644 index 000000000..9565570fd --- /dev/null +++ b/xz-5.4.5/doc/api/folderopen.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/xz-5.4.5/doc/api/folderopend.svg b/xz-5.4.5/doc/api/folderopend.svg new file mode 100644 index 000000000..e72e22595 --- /dev/null +++ b/xz-5.4.5/doc/api/folderopend.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/xz-5.4.5/doc/api/functions.html b/xz-5.4.5/doc/api/functions.html new file mode 100644 index 000000000..b50cf73c3 --- /dev/null +++ b/xz-5.4.5/doc/api/functions.html @@ -0,0 +1,210 @@ + + + + + + + +liblzma (XZ Utils): Data Fields + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + + + +
+
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- h -

+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- v -

+
+ + + + diff --git a/xz-5.4.5/doc/api/functions_vars.html b/xz-5.4.5/doc/api/functions_vars.html new file mode 100644 index 000000000..f6d689cb9 --- /dev/null +++ b/xz-5.4.5/doc/api/functions_vars.html @@ -0,0 +1,210 @@ + + + + + + + +liblzma (XZ Utils): Data Fields - Variables + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + + + +
+
+
Here is a list of all documented variables with links to the struct/union documentation for each field:
+ +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- h -

+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- v -

+
+ + + + diff --git a/xz-5.4.5/doc/api/globals.html b/xz-5.4.5/doc/api/globals.html new file mode 100644 index 000000000..f80423cd9 --- /dev/null +++ b/xz-5.4.5/doc/api/globals.html @@ -0,0 +1,272 @@ + + + + + + + +liblzma (XZ Utils): Globals + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + + + +
+
+
Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:
+ +

- l -

+
+ + + + diff --git a/xz-5.4.5/doc/api/globals_defs.html b/xz-5.4.5/doc/api/globals_defs.html new file mode 100644 index 000000000..a7b945c67 --- /dev/null +++ b/xz-5.4.5/doc/api/globals_defs.html @@ -0,0 +1,119 @@ + + + + + + + +liblzma (XZ Utils): Globals + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + + + +
+
+
Here is a list of all documented macros with links to the documentation:
+ +

- l -

+
+ + + + diff --git a/xz-5.4.5/doc/api/globals_enum.html b/xz-5.4.5/doc/api/globals_enum.html new file mode 100644 index 000000000..18208713c --- /dev/null +++ b/xz-5.4.5/doc/api/globals_enum.html @@ -0,0 +1,71 @@ + + + + + + + +liblzma (XZ Utils): Globals + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + + +
+
+
Here is a list of all documented enums with links to the documentation:
+
+ + + + diff --git a/xz-5.4.5/doc/api/globals_eval.html b/xz-5.4.5/doc/api/globals_eval.html new file mode 100644 index 000000000..51424c774 --- /dev/null +++ b/xz-5.4.5/doc/api/globals_eval.html @@ -0,0 +1,103 @@ + + + + + + + +liblzma (XZ Utils): Globals + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + + + +
+
+
Here is a list of all documented enum values with links to the documentation:
+ +

- l -

+
+ + + + diff --git a/xz-5.4.5/doc/api/globals_func.html b/xz-5.4.5/doc/api/globals_func.html new file mode 100644 index 000000000..091e51904 --- /dev/null +++ b/xz-5.4.5/doc/api/globals_func.html @@ -0,0 +1,177 @@ + + + + + + + +liblzma (XZ Utils): Globals + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + + + +
+
+
Here is a list of all documented functions with links to the documentation:
+ +

- l -

+
+ + + + diff --git a/xz-5.4.5/doc/api/globals_type.html b/xz-5.4.5/doc/api/globals_type.html new file mode 100644 index 000000000..cd7aa3f35 --- /dev/null +++ b/xz-5.4.5/doc/api/globals_type.html @@ -0,0 +1,68 @@ + + + + + + + +liblzma (XZ Utils): Globals + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + + +
+
+
Here is a list of all documented typedefs with links to the documentation:
+
+ + + + diff --git a/xz-5.4.5/doc/api/hardware_8h.html b/xz-5.4.5/doc/api/hardware_8h.html new file mode 100644 index 000000000..fd302e2a5 --- /dev/null +++ b/xz-5.4.5/doc/api/hardware_8h.html @@ -0,0 +1,123 @@ + + + + + + + +liblzma (XZ Utils): lzma/hardware.h File Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + + +
+
+ +
hardware.h File Reference
+
+
+ +

Hardware information. +More...

+ + + + + + + + +

+Functions

uint64_t lzma_physmem (void) lzma_nothrow
 Get the total amount of physical memory (RAM) in bytes.
 
uint32_t lzma_cputhreads (void) lzma_nothrow
 Get the number of processor cores or threads.
 
+

Detailed Description

+

Hardware information.

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Since liblzma can consume a lot of system resources, it also provides ways to limit the resource usage. Applications linking against liblzma need to do the actual decisions how much resources to let liblzma to use. To ease making these decisions, liblzma provides functions to find out the relevant capabilities of the underlying hardware. Currently there is only a function to find out the amount of RAM, but in the future there will be also a function to detect how many concurrent threads the system can run.

+
Note
On some operating systems, these function may temporarily load a shared library or open file descriptor(s) to find out the requested hardware information. Unless the application assumes that specific file descriptors are not touched by other threads, this should have no effect on thread safety. Possible operations involving file descriptors will restart the syscalls if they return EINTR.
+

Function Documentation

+ +

◆ lzma_physmem()

+ +
+
+ + + + + + + + +
uint64_t lzma_physmem (void )
+
+ +

Get the total amount of physical memory (RAM) in bytes.

+

This function may be useful when determining a reasonable memory usage limit for decompressing or how much memory it is OK to use for compressing.

+
Returns
On success, the total amount of physical memory in bytes is returned. If the amount of RAM cannot be determined, zero is returned. This can happen if an error occurs or if there is no code in liblzma to detect the amount of RAM on the specific operating system.
+ +
+
+ +

◆ lzma_cputhreads()

+ +
+
+ + + + + + + + +
uint32_t lzma_cputhreads (void )
+
+ +

Get the number of processor cores or threads.

+

This function may be useful when determining how many threads to use. If the hardware supports more than one thread per CPU core, the number of hardware threads is returned if that information is available.

+
Returns
On success, the number of available CPU threads or cores is returned. If this information isn't available or an error occurs, zero is returned.
+ +
+
+
+ + + + diff --git a/xz-5.4.5/doc/api/index.html b/xz-5.4.5/doc/api/index.html new file mode 100644 index 000000000..b3f8ccedb --- /dev/null +++ b/xz-5.4.5/doc/api/index.html @@ -0,0 +1,53 @@ + + + + + + + +liblzma (XZ Utils): liblzma (XZ Utils) + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + +
+
+
liblzma (XZ Utils)
+
+
+

liblzma is a public domain general-purpose data compression library with a zlib-like API. The native file format is .xz, but also the old .lzma format and raw (no headers) streams are supported. Multiple compression algorithms (filters) are supported. Currently LZMA2 is the primary filter.

+

liblzma is part of XZ Utils https://tukaani.org/xz/. XZ Utils includes a gzip-like command line tool named xz and some other tools. XZ Utils is developed and maintained by Lasse Collin and Jia Tan.

+

Major parts of liblzma are based on Igor Pavlov's public domain LZMA SDK https://7-zip.org/sdk.html.

+

The SHA-256 implementation is based on the public domain code found from 7-Zip https://7-zip.org/, which has a modified version of the public domain SHA-256 code found from Crypto++ https://www.cryptopp.com/. The SHA-256 code in Crypto++ was written by Kevin Springle and Wei Dai.

+
+
+ + + + diff --git a/xz-5.4.5/doc/api/index_8h.html b/xz-5.4.5/doc/api/index_8h.html new file mode 100644 index 000000000..f0de050dd --- /dev/null +++ b/xz-5.4.5/doc/api/index_8h.html @@ -0,0 +1,1268 @@ + + + + + + + +liblzma (XZ Utils): lzma/index.h File Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + + +
+
+ +
index.h File Reference
+
+
+ +

Handling of .xz Index and related information. +More...

+ + + + + +

+Data Structures

struct  lzma_index_iter
 Iterator to get information about Blocks and Streams. More...
 
+ + + + +

+Typedefs

typedef struct lzma_index_s lzma_index
 Opaque data type to hold the Index(es) and other information.
 
+ + + + +

+Enumerations

enum  lzma_index_iter_mode { LZMA_INDEX_ITER_ANY = 0 +, LZMA_INDEX_ITER_STREAM = 1 +, LZMA_INDEX_ITER_BLOCK = 2 +, LZMA_INDEX_ITER_NONEMPTY_BLOCK = 3 + }
 Operation mode for lzma_index_iter_next() More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

uint64_t lzma_index_memusage (lzma_vli streams, lzma_vli blocks) lzma_nothrow
 Calculate memory usage of lzma_index.
 
uint64_t lzma_index_memused (const lzma_index *i) lzma_nothrow
 Calculate the memory usage of an existing lzma_index.
 
lzma_indexlzma_index_init (const lzma_allocator *allocator) lzma_nothrow
 Allocate and initialize a new lzma_index structure.
 
void lzma_index_end (lzma_index *i, const lzma_allocator *allocator) lzma_nothrow
 Deallocate lzma_index.
 
lzma_ret lzma_index_append (lzma_index *i, const lzma_allocator *allocator, lzma_vli unpadded_size, lzma_vli uncompressed_size) lzma_nothrow lzma_attr_warn_unused_result
 Add a new Block to lzma_index.
 
lzma_ret lzma_index_stream_flags (lzma_index *i, const lzma_stream_flags *stream_flags) lzma_nothrow lzma_attr_warn_unused_result
 Set the Stream Flags.
 
uint32_t lzma_index_checks (const lzma_index *i) lzma_nothrow lzma_attr_pure
 Get the types of integrity Checks.
 
lzma_ret lzma_index_stream_padding (lzma_index *i, lzma_vli stream_padding) lzma_nothrow lzma_attr_warn_unused_result
 Set the amount of Stream Padding.
 
lzma_vli lzma_index_stream_count (const lzma_index *i) lzma_nothrow lzma_attr_pure
 Get the number of Streams.
 
lzma_vli lzma_index_block_count (const lzma_index *i) lzma_nothrow lzma_attr_pure
 Get the number of Blocks.
 
lzma_vli lzma_index_size (const lzma_index *i) lzma_nothrow lzma_attr_pure
 Get the size of the Index field as bytes.
 
lzma_vli lzma_index_stream_size (const lzma_index *i) lzma_nothrow lzma_attr_pure
 Get the total size of the Stream.
 
lzma_vli lzma_index_total_size (const lzma_index *i) lzma_nothrow lzma_attr_pure
 Get the total size of the Blocks.
 
lzma_vli lzma_index_file_size (const lzma_index *i) lzma_nothrow lzma_attr_pure
 Get the total size of the file.
 
lzma_vli lzma_index_uncompressed_size (const lzma_index *i) lzma_nothrow lzma_attr_pure
 Get the uncompressed size of the file.
 
void lzma_index_iter_init (lzma_index_iter *iter, const lzma_index *i) lzma_nothrow
 Initialize an iterator.
 
void lzma_index_iter_rewind (lzma_index_iter *iter) lzma_nothrow
 Rewind the iterator.
 
lzma_bool lzma_index_iter_next (lzma_index_iter *iter, lzma_index_iter_mode mode) lzma_nothrow lzma_attr_warn_unused_result
 Get the next Block or Stream.
 
lzma_bool lzma_index_iter_locate (lzma_index_iter *iter, lzma_vli target) lzma_nothrow
 Locate a Block.
 
lzma_ret lzma_index_cat (lzma_index *dest, lzma_index *src, const lzma_allocator *allocator) lzma_nothrow lzma_attr_warn_unused_result
 Concatenate lzma_indexes.
 
lzma_indexlzma_index_dup (const lzma_index *i, const lzma_allocator *allocator) lzma_nothrow lzma_attr_warn_unused_result
 Duplicate lzma_index.
 
lzma_ret lzma_index_encoder (lzma_stream *strm, const lzma_index *i) lzma_nothrow lzma_attr_warn_unused_result
 Initialize .xz Index encoder.
 
lzma_ret lzma_index_decoder (lzma_stream *strm, lzma_index **i, uint64_t memlimit) lzma_nothrow lzma_attr_warn_unused_result
 Initialize .xz Index decoder.
 
lzma_ret lzma_index_buffer_encode (const lzma_index *i, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow
 Single-call .xz Index encoder.
 
lzma_ret lzma_index_buffer_decode (lzma_index **i, uint64_t *memlimit, const lzma_allocator *allocator, const uint8_t *in, size_t *in_pos, size_t in_size) lzma_nothrow
 Single-call .xz Index decoder.
 
lzma_ret lzma_file_info_decoder (lzma_stream *strm, lzma_index **dest_index, uint64_t memlimit, uint64_t file_size) lzma_nothrow
 Initialize a .xz file information decoder.
 
+

Detailed Description

+

Handling of .xz Index and related information.

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Typedef Documentation

+ +

◆ lzma_index

+ +
+
+ + + + +
typedef struct lzma_index_s lzma_index
+
+ +

Opaque data type to hold the Index(es) and other information.

+

lzma_index often holds just one .xz Index and possibly the Stream Flags of the same Stream and size of the Stream Padding field. However, multiple lzma_indexes can be concatenated with lzma_index_cat() and then there may be information about multiple Streams in the same lzma_index.

+

Notes about thread safety: Only one thread may modify lzma_index at a time. All functions that take non-const pointer to lzma_index modify it. As long as no thread is modifying the lzma_index, getting information from the same lzma_index can be done from multiple threads at the same time with functions that take a const pointer to lzma_index or use lzma_index_iter. The same iterator must be used only by one thread at a time, of course, but there can be as many iterators for the same lzma_index as needed.

+ +
+
+

Enumeration Type Documentation

+ +

◆ lzma_index_iter_mode

+ +
+
+ + + + +
enum lzma_index_iter_mode
+
+ +

Operation mode for lzma_index_iter_next()

+ + + + + +
Enumerator
LZMA_INDEX_ITER_ANY 

Get the next Block or Stream.

+

Go to the next Block if the current Stream has at least one Block left. Otherwise go to the next Stream even if it has no Blocks. If the Stream has no Blocks (lzma_index_iter.stream.block_count == 0), lzma_index_iter.block will have undefined values.

+
LZMA_INDEX_ITER_STREAM 

Get the next Stream.

+

Go to the next Stream even if the current Stream has unread Blocks left. If the next Stream has at least one Block, the iterator will point to the first Block. If there are no Blocks, lzma_index_iter.block will have undefined values.

+
LZMA_INDEX_ITER_BLOCK 

Get the next Block.

+

Go to the next Block if the current Stream has at least one Block left. If the current Stream has no Blocks left, the next Stream with at least one Block is located and the iterator will be made to point to the first Block of that Stream.

+
LZMA_INDEX_ITER_NONEMPTY_BLOCK 

Get the next non-empty Block.

+

This is like LZMA_INDEX_ITER_BLOCK except that it will skip Blocks whose Uncompressed Size is zero.

+
+ +
+
+

Function Documentation

+ +

◆ lzma_index_memusage()

+ +
+
+ + + + + + + + + + + + + + + + + + +
uint64_t lzma_index_memusage (lzma_vli streams,
lzma_vli blocks 
)
+
+ +

Calculate memory usage of lzma_index.

+

On disk, the size of the Index field depends on both the number of Records stored and the size of the Records (due to variable-length integer encoding). When the Index is kept in lzma_index structure, the memory usage depends only on the number of Records/Blocks stored in the Index(es), and in case of concatenated lzma_indexes, the number of Streams. The size in RAM is almost always significantly bigger than in the encoded form on disk.

+

This function calculates an approximate amount of memory needed to hold the given number of Streams and Blocks in lzma_index structure. This value may vary between CPU architectures and also between liblzma versions if the internal implementation is modified.

+
Parameters
+ + + +
streamsNumber of Streams
blocksNumber of Blocks
+
+
+
Returns
Approximate memory in bytes needed in a lzma_index structure.
+ +
+
+ +

◆ lzma_index_memused()

+ +
+
+ + + + + + + + +
uint64_t lzma_index_memused (const lzma_indexi)
+
+ +

Calculate the memory usage of an existing lzma_index.

+

This is a shorthand for lzma_index_memusage(lzma_index_stream_count(i), lzma_index_block_count(i)).

+
Parameters
+ + +
iPointer to lzma_index structure
+
+
+
Returns
Approximate memory in bytes used by the lzma_index structure.
+ +
+
+ +

◆ lzma_index_init()

+ +
+
+ + + + + + + + +
lzma_index * lzma_index_init (const lzma_allocatorallocator)
+
+ +

Allocate and initialize a new lzma_index structure.

+
Parameters
+ + +
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
+
+
+
Returns
On success, a pointer to an empty initialized lzma_index is returned. If allocation fails, NULL is returned.
+ +
+
+ +

◆ lzma_index_end()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void lzma_index_end (lzma_indexi,
const lzma_allocatorallocator 
)
+
+ +

Deallocate lzma_index.

+

If i is NULL, this does nothing.

+
Parameters
+ + + +
iPointer to lzma_index structure to deallocate
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
+
+
+ +
+
+ +

◆ lzma_index_append()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_index_append (lzma_indexi,
const lzma_allocatorallocator,
lzma_vli unpadded_size,
lzma_vli uncompressed_size 
)
+
+ +

Add a new Block to lzma_index.

+
Parameters
+ + + + + +
iPointer to a lzma_index structure
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
unpadded_sizeUnpadded Size of a Block. This can be calculated with lzma_block_unpadded_size() after encoding or decoding the Block.
uncompressed_sizeUncompressed Size of a Block. This can be taken directly from lzma_block structure after encoding or decoding the Block.
+
+
+

Appending a new Block does not invalidate iterators. For example, if an iterator was pointing to the end of the lzma_index, after lzma_index_append() it is possible to read the next Block with an existing iterator.

+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_DATA_ERROR: Compressed or uncompressed size of the Stream or size of the Index field would grow too big.
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_index_stream_flags()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_index_stream_flags (lzma_indexi,
const lzma_stream_flagsstream_flags 
)
+
+ +

Set the Stream Flags.

+

Set the Stream Flags of the last (and typically the only) Stream in lzma_index. This can be useful when reading information from the lzma_index, because to decode Blocks, knowing the integrity check type is needed.

+
Parameters
+ + + +
iPointer to lzma_index structure
stream_flagsPointer to lzma_stream_flags structure. This is copied into the internal preallocated structure, so the caller doesn't need to keep the flags' data available after calling this function.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_OPTIONS_ERROR: Unsupported stream_flags->version.
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_index_checks()

+ +
+
+ + + + + + + + +
uint32_t lzma_index_checks (const lzma_indexi)
+
+ +

Get the types of integrity Checks.

+

If lzma_index_stream_flags() is used to set the Stream Flags for every Stream, lzma_index_checks() can be used to get a bitmask to indicate which Check types have been used. It can be useful e.g. if showing the Check types to the user.

+

The bitmask is 1 << check_id, e.g. CRC32 is 1 << 1 and SHA-256 is 1 << 10.

+
Parameters
+ + +
iPointer to lzma_index structure
+
+
+
Returns
Bitmask indicating which Check types are used in the lzma_index
+ +
+
+ +

◆ lzma_index_stream_padding()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_index_stream_padding (lzma_indexi,
lzma_vli stream_padding 
)
+
+ +

Set the amount of Stream Padding.

+

Set the amount of Stream Padding of the last (and typically the only) Stream in the lzma_index. This is needed when planning to do random-access reading within multiple concatenated Streams.

+

By default, the amount of Stream Padding is assumed to be zero bytes.

+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_DATA_ERROR: The file size would grow too big.
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_index_stream_count()

+ +
+
+ + + + + + + + +
lzma_vli lzma_index_stream_count (const lzma_indexi)
+
+ +

Get the number of Streams.

+
Parameters
+ + +
iPointer to lzma_index structure
+
+
+
Returns
Number of Streams in the lzma_index
+ +
+
+ +

◆ lzma_index_block_count()

+ +
+
+ + + + + + + + +
lzma_vli lzma_index_block_count (const lzma_indexi)
+
+ +

Get the number of Blocks.

+

This returns the total number of Blocks in lzma_index. To get number of Blocks in individual Streams, use lzma_index_iter.

+
Parameters
+ + +
iPointer to lzma_index structure
+
+
+
Returns
Number of blocks in the lzma_index
+ +
+
+ +

◆ lzma_index_size()

+ +
+
+ + + + + + + + +
lzma_vli lzma_index_size (const lzma_indexi)
+
+ +

Get the size of the Index field as bytes.

+

This is needed to verify the Backward Size field in the Stream Footer.

+
Parameters
+ + +
iPointer to lzma_index structure
+
+
+
Returns
Size in bytes of the Index
+ +
+
+ +

◆ lzma_index_stream_size()

+ +
+
+ + + + + + + + +
lzma_vli lzma_index_stream_size (const lzma_indexi)
+
+ +

Get the total size of the Stream.

+

If multiple lzma_indexes have been combined, this works as if the Blocks were in a single Stream. This is useful if you are going to combine Blocks from multiple Streams into a single new Stream.

+
Parameters
+ + +
iPointer to lzma_index structure
+
+
+
Returns
Size in bytes of the Stream (if all Blocks are combined into one Stream).
+ +
+
+ +

◆ lzma_index_total_size()

+ +
+
+ + + + + + + + +
lzma_vli lzma_index_total_size (const lzma_indexi)
+
+ +

Get the total size of the Blocks.

+

This doesn't include the Stream Header, Stream Footer, Stream Padding, or Index fields.

+
Parameters
+ + +
iPointer to lzma_index structure
+
+
+
Returns
Size in bytes of all Blocks in the Stream(s)
+ +
+
+ +

◆ lzma_index_file_size()

+ +
+
+ + + + + + + + +
lzma_vli lzma_index_file_size (const lzma_indexi)
+
+ +

Get the total size of the file.

+

When no lzma_indexes have been combined with lzma_index_cat() and there is no Stream Padding, this function is identical to lzma_index_stream_size(). If multiple lzma_indexes have been combined, this includes also the headers of each separate Stream and the possible Stream Padding fields.

+
Parameters
+ + +
iPointer to lzma_index structure
+
+
+
Returns
Total size of the .xz file in bytes
+ +
+
+ +

◆ lzma_index_uncompressed_size()

+ +
+
+ + + + + + + + +
lzma_vli lzma_index_uncompressed_size (const lzma_indexi)
+
+ +

Get the uncompressed size of the file.

+
Parameters
+ + +
iPointer to lzma_index structure
+
+
+
Returns
Size in bytes of the uncompressed data in the file
+ +
+
+ +

◆ lzma_index_iter_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void lzma_index_iter_init (lzma_index_iteriter,
const lzma_indexi 
)
+
+ +

Initialize an iterator.

+

This function associates the iterator with the given lzma_index, and calls lzma_index_iter_rewind() on the iterator.

+

This function doesn't allocate any memory, thus there is no lzma_index_iter_end(). The iterator is valid as long as the associated lzma_index is valid, that is, until lzma_index_end() or using it as source in lzma_index_cat(). Specifically, lzma_index doesn't become invalid if new Blocks are added to it with lzma_index_append() or if it is used as the destination in lzma_index_cat().

+

It is safe to make copies of an initialized lzma_index_iter, for example, to easily restart reading at some particular position.

+
Parameters
+ + + +
iterPointer to a lzma_index_iter structure
ilzma_index to which the iterator will be associated
+
+
+ +
+
+ +

◆ lzma_index_iter_rewind()

+ +
+
+ + + + + + + + +
void lzma_index_iter_rewind (lzma_index_iteriter)
+
+ +

Rewind the iterator.

+

Rewind the iterator so that next call to lzma_index_iter_next() will return the first Block or Stream.

+
Parameters
+ + +
iterPointer to a lzma_index_iter structure
+
+
+ +
+
+ +

◆ lzma_index_iter_next()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_bool lzma_index_iter_next (lzma_index_iteriter,
lzma_index_iter_mode mode 
)
+
+ +

Get the next Block or Stream.

+
Parameters
+ + + +
iterIterator initialized with lzma_index_iter_init()
modeSpecify what kind of information the caller wants to get. See lzma_index_iter_mode for details.
+
+
+
Returns
lzma_bool:
    +
  • true if no Block or Stream matching the mode is found. *iter is not updated (failure).
  • +
  • false if the next Block or Stream matching the mode was found. *iter is updated (success).
  • +
+
+ +
+
+ +

◆ lzma_index_iter_locate()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_bool lzma_index_iter_locate (lzma_index_iteriter,
lzma_vli target 
)
+
+ +

Locate a Block.

+

If it is possible to seek in the .xz file, it is possible to parse the Index field(s) and use lzma_index_iter_locate() to do random-access reading with granularity of Block size.

+

If the target is smaller than the uncompressed size of the Stream (can be checked with lzma_index_uncompressed_size()):

    +
  • Information about the Stream and Block containing the requested uncompressed offset is stored into *iter.
  • +
  • Internal state of the iterator is adjusted so that lzma_index_iter_next() can be used to read subsequent Blocks or Streams.
  • +
+

If the target is greater than the uncompressed size of the Stream, *iter is not modified.

+
Parameters
+ + + +
iterIterator that was earlier initialized with lzma_index_iter_init().
targetUncompressed target offset which the caller would like to locate from the Stream
+
+
+
Returns
lzma_bool:
    +
  • true if the target is greater than or equal to the uncompressed size of the Stream (failure)
  • +
  • false if the target is smaller than the uncompressed size of the Stream (success)
  • +
+
+ +
+
+ +

◆ lzma_index_cat()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_index_cat (lzma_indexdest,
lzma_indexsrc,
const lzma_allocatorallocator 
)
+
+ +

Concatenate lzma_indexes.

+

Concatenating lzma_indexes is useful when doing random-access reading in multi-Stream .xz file, or when combining multiple Streams into single Stream.

+
Parameters
+ + + + +
[out]destlzma_index after which src is appended
srclzma_index to be appended after dest. If this function succeeds, the memory allocated for src is freed or moved to be part of dest, and all iterators pointing to src will become invalid.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: lzma_indexes were concatenated successfully. src is now a dangling pointer.
  • +
  • LZMA_DATA_ERROR: *dest would grow too big.
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_index_dup()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_index * lzma_index_dup (const lzma_indexi,
const lzma_allocatorallocator 
)
+
+ +

Duplicate lzma_index.

+
Parameters
+ + + +
iPointer to lzma_index structure to be duplicated
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
+
+
+
Returns
A copy of the lzma_index, or NULL if memory allocation failed.
+ +
+
+ +

◆ lzma_index_encoder()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_index_encoder (lzma_streamstrm,
const lzma_indexi 
)
+
+ +

Initialize .xz Index encoder.

+
Parameters
+ + + +
strmPointer to properly prepared lzma_stream
iPointer to lzma_index which should be encoded.
+
+
+

The valid `action' values for lzma_code() are LZMA_RUN and LZMA_FINISH. It is enough to use only one of them (you can choose freely).

+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Initialization succeeded, continue with lzma_code().
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_index_decoder()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_index_decoder (lzma_streamstrm,
lzma_index ** i,
uint64_t memlimit 
)
+
+ +

Initialize .xz Index decoder.

+
Parameters
+ + + + +
strmPointer to properly prepared lzma_stream
[out]iThe decoded Index will be made available via this pointer. Initially this function will set *i to NULL (the old value is ignored). If decoding succeeds (lzma_code() returns LZMA_STREAM_END), *i will be set to point to a new lzma_index, which the application has to later free with lzma_index_end().
memlimitHow much memory the resulting lzma_index is allowed to require. liblzma 5.2.3 and earlier don't allow 0 here and return LZMA_PROG_ERROR; later versions treat 0 as if 1 had been specified.
+
+
+

Valid `action' arguments to lzma_code() are LZMA_RUN and LZMA_FINISH. There is no need to use LZMA_FINISH, but it's allowed because it may simplify certain types of applications.

+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Initialization succeeded, continue with lzma_code().
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+
Note
liblzma 5.2.3 and older list also LZMA_MEMLIMIT_ERROR here but that error code has never been possible from this initialization function.
+ +
+
+ +

◆ lzma_index_buffer_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_index_buffer_encode (const lzma_indexi,
uint8_t * out,
size_t * out_pos,
size_t out_size 
)
+
+ +

Single-call .xz Index encoder.

+
Note
This function doesn't take allocator argument since all the internal data is allocated on stack.
+
Parameters
+ + + + + +
ilzma_index to be encoded
[out]outBeginning of the output buffer
[out]out_posThe next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds.
out_sizeSize of the out buffer; the first byte into which no data is written to is out[out_size].
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Encoding was successful.
  • +
  • LZMA_BUF_ERROR: Output buffer is too small. Use lzma_index_size() to find out how much output space is needed.
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_index_buffer_decode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_index_buffer_decode (lzma_index ** i,
uint64_t * memlimit,
const lzma_allocatorallocator,
const uint8_t * in,
size_t * in_pos,
size_t in_size 
)
+
+ +

Single-call .xz Index decoder.

+
Parameters
+ + + + + + + +
[out]iIf decoding succeeds, *i will point to a new lzma_index, which the application has to later free with lzma_index_end(). If an error occurs, *i will be NULL. The old value of *i is always ignored and thus doesn't need to be initialized by the caller.
[out]memlimitPointer to how much memory the resulting lzma_index is allowed to require. The value pointed by this pointer is modified if and only if LZMA_MEMLIMIT_ERROR is returned.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
inBeginning of the input buffer
in_posThe next byte will be read from in[*in_pos]. *in_pos is updated only if decoding succeeds.
in_sizeSize of the input buffer; the first byte that won't be read is in[in_size].
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Decoding was successful.
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_MEMLIMIT_ERROR: Memory usage limit was reached. The minimum required memlimit value was stored to *memlimit.
  • +
  • LZMA_DATA_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_file_info_decoder()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_file_info_decoder (lzma_streamstrm,
lzma_index ** dest_index,
uint64_t memlimit,
uint64_t file_size 
)
+
+ +

Initialize a .xz file information decoder.

+

This decoder decodes the Stream Header, Stream Footer, Index, and Stream Padding field(s) from the input .xz file and stores the resulting combined index in *dest_index. This information can be used to get the uncompressed file size with lzma_index_uncompressed_size(*dest_index) or, for example, to implement random access reading by locating the Blocks in the Streams.

+

To get the required information from the .xz file, lzma_code() may ask the application to seek in the input file by returning LZMA_SEEK_NEEDED and having the target file position specified in lzma_stream.seek_pos. The number of seeks required depends on the input file and how big buffers the application provides. When possible, the decoder will seek backward and forward in the given buffer to avoid useless seek requests. Thus, if the application provides the whole file at once, no external seeking will be required (that is, lzma_code() won't return LZMA_SEEK_NEEDED).

+

The value in lzma_stream.total_in can be used to estimate how much data liblzma had to read to get the file information. However, due to seeking and the way total_in is updated, the value of total_in will be somewhat inaccurate (a little too big). Thus, total_in is a good estimate but don't expect to see the same exact value for the same file if you change the input buffer size or switch to a different liblzma version.

+

Valid `action' arguments to lzma_code() are LZMA_RUN and LZMA_FINISH. You only need to use LZMA_RUN; LZMA_FINISH is only supported because it might be convenient for some applications. If you use LZMA_FINISH and if lzma_code() asks the application to seek, remember to reset `action' back to LZMA_RUN unless you hit the end of the file again.

+

Possible return values from lzma_code():

    +
  • LZMA_OK: All OK so far, more input needed
  • +
  • LZMA_SEEK_NEEDED: Provide more input starting from the absolute file position strm->seek_pos
  • +
  • LZMA_STREAM_END: Decoding was successful, *dest_index has been set
  • +
  • LZMA_FORMAT_ERROR: The input file is not in the .xz format (the expected magic bytes were not found from the beginning of the file)
  • +
  • LZMA_OPTIONS_ERROR: File looks valid but contains headers that aren't supported by this version of liblzma
  • +
  • LZMA_DATA_ERROR: File is corrupt
  • +
  • LZMA_BUF_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_MEMLIMIT_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
Parameters
+ + + + + +
strmPointer to a properly prepared lzma_stream
[out]dest_indexPointer to a pointer where the decoder will put the decoded lzma_index. The old value of *dest_index is ignored (not freed).
memlimitHow much memory the resulting lzma_index is allowed to require. Use UINT64_MAX to effectively disable the limiter.
file_sizeSize of the input .xz file
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+
+ + + + diff --git a/xz-5.4.5/doc/api/index__hash_8h.html b/xz-5.4.5/doc/api/index__hash_8h.html new file mode 100644 index 000000000..1f568ed16 --- /dev/null +++ b/xz-5.4.5/doc/api/index__hash_8h.html @@ -0,0 +1,311 @@ + + + + + + + +liblzma (XZ Utils): lzma/index_hash.h File Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + + +
+
+ +
index_hash.h File Reference
+
+
+ +

Validate Index by using a hash function. +More...

+ + + + + +

+Typedefs

+typedef struct lzma_index_hash_s lzma_index_hash
 Opaque data type to hold the Index hash.
 
+ + + + + + + + + + + + + + + + +

+Functions

lzma_index_hashlzma_index_hash_init (lzma_index_hash *index_hash, const lzma_allocator *allocator) lzma_nothrow lzma_attr_warn_unused_result
 Allocate and initialize a new lzma_index_hash structure.
 
void lzma_index_hash_end (lzma_index_hash *index_hash, const lzma_allocator *allocator) lzma_nothrow
 Deallocate lzma_index_hash structure.
 
lzma_ret lzma_index_hash_append (lzma_index_hash *index_hash, lzma_vli unpadded_size, lzma_vli uncompressed_size) lzma_nothrow lzma_attr_warn_unused_result
 Add a new Record to an Index hash.
 
lzma_ret lzma_index_hash_decode (lzma_index_hash *index_hash, const uint8_t *in, size_t *in_pos, size_t in_size) lzma_nothrow lzma_attr_warn_unused_result
 Decode and validate the Index field.
 
lzma_vli lzma_index_hash_size (const lzma_index_hash *index_hash) lzma_nothrow lzma_attr_pure
 Get the size of the Index field as bytes.
 
+

Detailed Description

+

Validate Index by using a hash function.

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Hashing makes it possible to use constant amount of memory to validate Index of arbitrary size.

+

Function Documentation

+ +

◆ lzma_index_hash_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_index_hash * lzma_index_hash_init (lzma_index_hashindex_hash,
const lzma_allocatorallocator 
)
+
+ +

Allocate and initialize a new lzma_index_hash structure.

+

If index_hash is NULL, this function allocates and initializes a new lzma_index_hash structure and returns a pointer to it. If allocation fails, NULL is returned.

+

If index_hash is non-NULL, this function reinitializes the lzma_index_hash structure and returns the same pointer. In this case, return value cannot be NULL or a different pointer than the index_hash that was given as an argument.

+
Parameters
+ + + +
index_hashPointer to a lzma_index_hash structure or NULL.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
+
+
+
Returns
Initialized lzma_index_hash structure on success or NULL on failure.
+ +
+
+ +

◆ lzma_index_hash_end()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void lzma_index_hash_end (lzma_index_hashindex_hash,
const lzma_allocatorallocator 
)
+
+ +

Deallocate lzma_index_hash structure.

+
Parameters
+ + + +
index_hashPointer to a lzma_index_hash structure to free.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
+
+
+ +
+
+ +

◆ lzma_index_hash_append()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_index_hash_append (lzma_index_hashindex_hash,
lzma_vli unpadded_size,
lzma_vli uncompressed_size 
)
+
+ +

Add a new Record to an Index hash.

+
Parameters
+ + + + +
index_hashPointer to a lzma_index_hash structure
unpadded_sizeUnpadded Size of a Block
uncompressed_sizeUncompressed Size of a Block
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_DATA_ERROR: Compressed or uncompressed size of the Stream or size of the Index field would grow too big.
  • +
  • LZMA_PROG_ERROR: Invalid arguments or this function is being used when lzma_index_hash_decode() has already been used.
  • +
+
+ +
+
+ +

◆ lzma_index_hash_decode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_index_hash_decode (lzma_index_hashindex_hash,
const uint8_t * in,
size_t * in_pos,
size_t in_size 
)
+
+ +

Decode and validate the Index field.

+

After telling the sizes of all Blocks with lzma_index_hash_append(), the actual Index field is decoded with this function. Specifically, once decoding of the Index field has been started, no more Records can be added using lzma_index_hash_append().

+

This function doesn't use lzma_stream structure to pass the input data. Instead, the input buffer is specified using three arguments. This is because it matches better the internal APIs of liblzma.

+
Parameters
+ + + + + +
index_hashPointer to a lzma_index_hash structure
inPointer to the beginning of the input buffer
[out]in_posin[*in_pos] is the next byte to process
in_sizein[in_size] is the first byte not to process
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: So far good, but more input is needed.
  • +
  • LZMA_STREAM_END: Index decoded successfully and it matches the Records given with lzma_index_hash_append().
  • +
  • LZMA_DATA_ERROR: Index is corrupt or doesn't match the information given with lzma_index_hash_append().
  • +
  • LZMA_BUF_ERROR: Cannot progress because *in_pos >= in_size.
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_index_hash_size()

+ +
+
+ + + + + + + + +
lzma_vli lzma_index_hash_size (const lzma_index_hashindex_hash)
+
+ +

Get the size of the Index field as bytes.

+

This is needed to verify the Backward Size field in the Stream Footer.

+
Parameters
+ + +
index_hashPointer to a lzma_index_hash structure
+
+
+
Returns
Size of the Index field in bytes.
+ +
+
+
+ + + + diff --git a/xz-5.4.5/doc/api/lzma12_8h.html b/xz-5.4.5/doc/api/lzma12_8h.html new file mode 100644 index 000000000..1d8330ce1 --- /dev/null +++ b/xz-5.4.5/doc/api/lzma12_8h.html @@ -0,0 +1,436 @@ + + + + + + + +liblzma (XZ Utils): lzma/lzma12.h File Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + + +
+
+ +
lzma12.h File Reference
+
+
+ +

LZMA1 and LZMA2 filters. +More...

+ + + + + +

+Data Structures

struct  lzma_options_lzma
 Options specific to the LZMA1 and LZMA2 filters. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define LZMA_FILTER_LZMA1   LZMA_VLI_C(0x4000000000000001)
 LZMA1 Filter ID (for raw encoder/decoder only, not in .xz)
 
#define LZMA_FILTER_LZMA1EXT   LZMA_VLI_C(0x4000000000000002)
 LZMA1 Filter ID with extended options (for raw encoder/decoder)
 
#define LZMA_FILTER_LZMA2   LZMA_VLI_C(0x21)
 LZMA2 Filter ID.
 
+#define LZMA_DICT_SIZE_MIN   UINT32_C(4096)
 
+#define LZMA_DICT_SIZE_DEFAULT   (UINT32_C(1) << 23)
 
+#define LZMA_LCLP_MIN   0
 
+#define LZMA_LCLP_MAX   4
 
+#define LZMA_LC_DEFAULT   3
 
+#define LZMA_LP_DEFAULT   0
 
+#define LZMA_PB_MIN   0
 
+#define LZMA_PB_MAX   4
 
+#define LZMA_PB_DEFAULT   2
 
+#define LZMA_LZMA1EXT_ALLOW_EOPM   UINT32_C(0x01)
 
#define lzma_set_ext_size(opt_lzma2, u64size)
 Macro to set the 64-bit uncompressed size in ext_size_*.
 
+ + + + + + + +

+Enumerations

enum  lzma_match_finder {
+  LZMA_MF_HC3 = 0x03 +, LZMA_MF_HC4 = 0x04 +, LZMA_MF_BT2 = 0x12 +, LZMA_MF_BT3 = 0x13 +,
+  LZMA_MF_BT4 = 0x14 +
+ }
 Match finders. More...
 
enum  lzma_mode { LZMA_MODE_FAST = 1 +, LZMA_MODE_NORMAL = 2 + }
 Compression modes. More...
 
+ + + + + + + + + + +

+Functions

lzma_bool lzma_mf_is_supported (lzma_match_finder match_finder) lzma_nothrow lzma_attr_const
 Test if given match finder is supported.
 
lzma_bool lzma_mode_is_supported (lzma_mode mode) lzma_nothrow lzma_attr_const
 Test if given compression mode is supported.
 
lzma_bool lzma_lzma_preset (lzma_options_lzma *options, uint32_t preset) lzma_nothrow
 Set a compression preset to lzma_options_lzma structure.
 
+

Detailed Description

+

LZMA1 and LZMA2 filters.

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Macro Definition Documentation

+ +

◆ LZMA_FILTER_LZMA1

+ +
+
+ + + + +
#define LZMA_FILTER_LZMA1   LZMA_VLI_C(0x4000000000000001)
+
+ +

LZMA1 Filter ID (for raw encoder/decoder only, not in .xz)

+

LZMA1 is the very same thing as what was called just LZMA in LZMA Utils, 7-Zip, and LZMA SDK. It's called LZMA1 here to prevent developers from accidentally using LZMA when they actually want LZMA2.

+ +
+
+ +

◆ LZMA_FILTER_LZMA1EXT

+ +
+
+ + + + +
#define LZMA_FILTER_LZMA1EXT   LZMA_VLI_C(0x4000000000000002)
+
+ +

LZMA1 Filter ID with extended options (for raw encoder/decoder)

+

This is like LZMA_FILTER_LZMA1 but with this ID a few extra options are supported in the lzma_options_lzma structure:

+
    +
  • A flag to tell the encoder if the end of payload marker (EOPM) alias end of stream (EOS) marker must be written at the end of the stream. In contrast, LZMA_FILTER_LZMA1 always writes the end marker.
  • +
  • Decoder needs to be told the uncompressed size of the stream or that it is unknown (using the special value UINT64_MAX). If the size is known, a flag can be set to allow the presence of the end marker anyway. In contrast, LZMA_FILTER_LZMA1 always behaves as if the uncompressed size was unknown.
  • +
+

This allows handling file formats where LZMA1 streams are used but where the end marker isn't allowed or where it might not (always) be present. This extended LZMA1 functionality is provided as a Filter ID for raw encoder and decoder instead of adding new encoder and decoder initialization functions because this way it is possible to also use extra filters, for example, LZMA_FILTER_X86 in a filter chain with LZMA_FILTER_LZMA1EXT, which might be needed to handle some file formats.

+ +
+
+ +

◆ LZMA_FILTER_LZMA2

+ +
+
+ + + + +
#define LZMA_FILTER_LZMA2   LZMA_VLI_C(0x21)
+
+ +

LZMA2 Filter ID.

+

Usually you want this instead of LZMA1. Compared to LZMA1, LZMA2 adds support for LZMA_SYNC_FLUSH, uncompressed chunks (smaller expansion when trying to compress incompressible data), possibility to change lc/lp/pb in the middle of encoding, and some other internal improvements.

+ +
+
+ +

◆ lzma_set_ext_size

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define lzma_set_ext_size( opt_lzma2,
 u64size 
)
+
+Value:
do { \
+
(opt_lzma2).ext_size_low = (uint32_t)(u64size); \
+
(opt_lzma2).ext_size_high = (uint32_t)((uint64_t)(u64size) >> 32); \
+
} while (0)
+
+

Macro to set the 64-bit uncompressed size in ext_size_*.

+

This might be convenient when decoding using LZMA_FILTER_LZMA1EXT. This isn't used with LZMA_FILTER_LZMA1 or LZMA_FILTER_LZMA2.

+ +
+
+

Enumeration Type Documentation

+ +

◆ lzma_match_finder

+ +
+
+ + + + +
enum lzma_match_finder
+
+ +

Match finders.

+

Match finder has major effect on both speed and compression ratio. Usually hash chains are faster than binary trees.

+

If you will use LZMA_SYNC_FLUSH often, the hash chains may be a better choice, because binary trees get much higher compression ratio penalty with LZMA_SYNC_FLUSH.

+

The memory usage formulas are only rough estimates, which are closest to reality when dict_size is a power of two. The formulas are more complex in reality, and can also change a little between liblzma versions. Use lzma_raw_encoder_memusage() to get more accurate estimate of memory usage.

+ + + + + + +
Enumerator
LZMA_MF_HC3 

Hash Chain with 2- and 3-byte hashing.

+

Minimum nice_len: 3

+

Memory usage:

    +
  • dict_size <= 16 MiB: dict_size * 7.5
  • +
  • dict_size > 16 MiB: dict_size * 5.5 + 64 MiB
  • +
+
LZMA_MF_HC4 

Hash Chain with 2-, 3-, and 4-byte hashing.

+

Minimum nice_len: 4

+

Memory usage:

    +
  • dict_size <= 32 MiB: dict_size * 7.5
  • +
  • dict_size > 32 MiB: dict_size * 6.5
  • +
+
LZMA_MF_BT2 

Binary Tree with 2-byte hashing.

+

Minimum nice_len: 2

+

Memory usage: dict_size * 9.5

+
LZMA_MF_BT3 

Binary Tree with 2- and 3-byte hashing.

+

Minimum nice_len: 3

+

Memory usage:

    +
  • dict_size <= 16 MiB: dict_size * 11.5
  • +
  • dict_size > 16 MiB: dict_size * 9.5 + 64 MiB
  • +
+
LZMA_MF_BT4 

Binary Tree with 2-, 3-, and 4-byte hashing.

+

Minimum nice_len: 4

+

Memory usage:

    +
  • dict_size <= 32 MiB: dict_size * 11.5
  • +
  • dict_size > 32 MiB: dict_size * 10.5
  • +
+
+ +
+
+ +

◆ lzma_mode

+ +
+
+ + + + +
enum lzma_mode
+
+ +

Compression modes.

+

This selects the function used to analyze the data produced by the match finder.

+ + + +
Enumerator
LZMA_MODE_FAST 

Fast compression.

+

Fast mode is usually at its best when combined with a hash chain match finder.

+
LZMA_MODE_NORMAL 

Normal compression.

+

This is usually notably slower than fast mode. Use this together with binary tree match finders to expose the full potential of the LZMA1 or LZMA2 encoder.

+
+ +
+
+

Function Documentation

+ +

◆ lzma_mf_is_supported()

+ +
+
+ + + + + + + + +
lzma_bool lzma_mf_is_supported (lzma_match_finder match_finder) const
+
+ +

Test if given match finder is supported.

+

It is safe to call this with a value that isn't listed in lzma_match_finder enumeration; the return value will be false.

+

There is no way to list which match finders are available in this particular liblzma version and build. It would be useless, because a new match finder, which the application developer wasn't aware, could require giving additional options to the encoder that the older match finders don't need.

+
Parameters
+ + +
match_finderMatch finder ID
+
+
+
Returns
lzma_bool:
    +
  • true if the match finder is supported by this liblzma build.
  • +
  • false otherwise.
  • +
+
+ +
+
+ +

◆ lzma_mode_is_supported()

+ +
+
+ + + + + + + + +
lzma_bool lzma_mode_is_supported (lzma_mode mode) const
+
+ +

Test if given compression mode is supported.

+

It is safe to call this with a value that isn't listed in lzma_mode enumeration; the return value will be false.

+

There is no way to list which modes are available in this particular liblzma version and build. It would be useless, because a new compression mode, which the application developer wasn't aware, could require giving additional options to the encoder that the older modes don't need.

+
Parameters
+ + +
modeMode ID.
+
+
+
Returns
lzma_bool:
    +
  • true if the compression mode is supported by this liblzma build.
  • +
  • false otherwise.
  • +
+
+ +
+
+ +

◆ lzma_lzma_preset()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_bool lzma_lzma_preset (lzma_options_lzmaoptions,
uint32_t preset 
)
+
+ +

Set a compression preset to lzma_options_lzma structure.

+

0 is the fastest and 9 is the slowest. These match the switches -0 .. -9 of the xz command line tool. In addition, it is possible to bitwise-or flags to the preset. Currently only LZMA_PRESET_EXTREME is supported. The flags are defined in container.h, because the flags are used also with lzma_easy_encoder().

+

The preset levels are subject to changes between liblzma versions.

+

This function is available only if LZMA1 or LZMA2 encoder has been enabled when building liblzma.

+

If features (like certain match finders) have been disabled at build time, then the function may return success (false) even though the resulting LZMA1/LZMA2 options may not be usable for encoder initialization (LZMA_OPTIONS_ERROR).

+
Parameters
+ + + +
[out]optionsPointer to LZMA1 or LZMA2 options to be filled
presetPreset level bitwse-ORed with preset flags
+
+
+
Returns
lzma_bool:
    +
  • true if the preset is not supported (failure).
  • +
  • false otherwise (success).
  • +
+
+ +
+
+
+ + + + diff --git a/xz-5.4.5/doc/api/lzma_8h.html b/xz-5.4.5/doc/api/lzma_8h.html new file mode 100644 index 000000000..ec417c61a --- /dev/null +++ b/xz-5.4.5/doc/api/lzma_8h.html @@ -0,0 +1,109 @@ + + + + + + + +liblzma (XZ Utils): lzma.h File Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + +
+
+ +
lzma.h File Reference
+
+
+ +

The public API of liblzma data compression library. +More...

+
#include <stddef.h>
+#include <inttypes.h>
+#include <limits.h>
+#include "lzma/version.h"
+#include "lzma/base.h"
+#include "lzma/vli.h"
+#include "lzma/check.h"
+#include "lzma/filter.h"
+#include "lzma/bcj.h"
+#include "lzma/delta.h"
+#include "lzma/lzma12.h"
+#include "lzma/container.h"
+#include "lzma/stream_flags.h"
+#include "lzma/block.h"
+#include "lzma/index.h"
+#include "lzma/index_hash.h"
+#include "lzma/hardware.h"
+
+ + + + + + + + + + + + + + + + + + + +

+Macros

+#define UINT32_C(n)   n ## U
 
+#define UINT64_C(n)   n ## UL
 
+#define UINT32_MAX   (UINT32_C(4294967295))
 
+#define UINT64_MAX   (UINT64_C(18446744073709551615))
 
+#define lzma_nothrow
 
+#define lzma_attr_pure   lzma_attribute((__pure__))
 
+#define lzma_attr_const   lzma_attribute((__const__))
 
+#define lzma_attr_warn_unused_result    lzma_attribute((__warn_unused_result__))
 
+#define LZMA_H_INTERNAL   1
 
+

Detailed Description

+

The public API of liblzma data compression library.

+
+ + + + diff --git a/xz-5.4.5/doc/api/nav_f.png b/xz-5.4.5/doc/api/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..113913eaa56e4145c9e230464e2774a1958fbb18 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQhA;(jv*C{Z|_4>Cfp$O@pL!>jDxDQA6l;ljC_SC^akRl7m1EkR z^8!C~@JLJSO_zvIka>LX&atNKVo5G5>r5ppSM9C0mvsJHc{ca|{cr4Vxo-VauzQj5 R=s(bA22WQ%mvv4FO#qoTKQ{mX literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/api/nav_fd.png b/xz-5.4.5/doc/api/nav_fd.png new file mode 100644 index 0000000000000000000000000000000000000000..978df01c4190e8cab4a9cd995038ae24371c3f48 GIT binary patch literal 144 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQsJI1jv*C{Z|6F4H5l-)EYCdZ zJfW+Jo%MX(k^lcsL`e%)1=JkcaC5E=)7>&f*_kCv^V_cGoqFcH-$w7q&wr-RcWeF^ uO^-c3>C!3&`-!`()g4^t-TOPeS@^S??9sOT`D=hyFnGH9xvXf0 literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/api/nav_g.png b/xz-5.4.5/doc/api/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KHHF(Z# u5H|SuW~29pi(6K5-B?$rEGR#3YT7@hqhc)0RTU|bAWfdGelF{r5}E)|h#SxV literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/api/nav_hd.png b/xz-5.4.5/doc/api/nav_hd.png new file mode 100644 index 0000000000000000000000000000000000000000..b717d9318da1ab94004d9b1b42528e92b2a3f7d4 GIT binary patch literal 104 zcmeAS@N?(olHy`uVBq!ia0vp^j6lr8!2~3AUOE6t27ON#$B+ufw{s8jGAM8y;p6Vi zXD|4#>DbA4Dduvt(?&Blp3qpK&p%^sc7OO^x|&%{mM=!-GUIZPUQbs)mvv4FO#tfp B9d`f# literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/api/open.png b/xz-5.4.5/doc/api/open.png new file mode 100644 index 0000000000000000000000000000000000000000..b4e49d8d519a9546fb43e696b94f9684be3f802f GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V4xTQKAr*{o?{4I6FyLW1&|U6% zzV6D+{&|TGE=A2v*{3GQee?dt@xeS-`Z?=Vi*NTHoZj5e^I_WO$SBd%+^gmDbvE;! U$xhIW2b#s;>FVdQ&MBb@0C~PD9RL6T literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/api/splitbar.png b/xz-5.4.5/doc/api/splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..ee781cf3bd133714948f4e956156387a39f32c54 GIT binary patch literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf@Vh3;jeBBpMz* zSLi(8b}>OYU`KN?_nD268fp@K z-~Aun@ZbM-_dxgMuXm^W%io{3KYm_}tX#aDOl;1zopr07jXD5&!@I literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/api/splitbard.png b/xz-5.4.5/doc/api/splitbard.png new file mode 100644 index 0000000000000000000000000000000000000000..aa4d029077d128278c8bde17b37003d5a828a4ac GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf@Vh8#_e;B-}0< zZ)VnhVRW!d=W^qM&V@52ved36WN@=BOWT$b&v&RPo-wIN{`=p9549gXE7`Z_$B(z) z9zK0}^Yh`CCm&W=9r~wnNW^uGRF~-`}tQ|Mh;@_xJna!naSq-mm>9lqfS1wqJbwn>R*7S?cj( S&W}KkGI+ZBxvX + + + + + + +liblzma (XZ Utils): lzma/stream_flags.h File Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + + +
+
+ +
stream_flags.h File Reference
+
+
+ +

.xz Stream Header and Stream Footer encoder and decoder +More...

+ + + + + +

+Data Structures

struct  lzma_stream_flags
 Options for encoding/decoding Stream Header and Stream Footer. More...
 
+ + + + + + + + + + +

+Macros

#define LZMA_STREAM_HEADER_SIZE   12
 Size of Stream Header and Stream Footer.
 
+#define LZMA_BACKWARD_SIZE_MIN   4
 Minimum value for lzma_stream_flags.backward_size.
 
+#define LZMA_BACKWARD_SIZE_MAX   (LZMA_VLI_C(1) << 34)
 Maximum value for lzma_stream_flags.backward_size.
 
+ + + + + + + + + + + + + + + + +

+Functions

lzma_ret lzma_stream_header_encode (const lzma_stream_flags *options, uint8_t *out) lzma_nothrow lzma_attr_warn_unused_result
 Encode Stream Header.
 
lzma_ret lzma_stream_footer_encode (const lzma_stream_flags *options, uint8_t *out) lzma_nothrow lzma_attr_warn_unused_result
 Encode Stream Footer.
 
lzma_ret lzma_stream_header_decode (lzma_stream_flags *options, const uint8_t *in) lzma_nothrow lzma_attr_warn_unused_result
 Decode Stream Header.
 
lzma_ret lzma_stream_footer_decode (lzma_stream_flags *options, const uint8_t *in) lzma_nothrow lzma_attr_warn_unused_result
 Decode Stream Footer.
 
lzma_ret lzma_stream_flags_compare (const lzma_stream_flags *a, const lzma_stream_flags *b) lzma_nothrow lzma_attr_pure
 Compare two lzma_stream_flags structures.
 
+

Detailed Description

+

.xz Stream Header and Stream Footer encoder and decoder

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Macro Definition Documentation

+ +

◆ LZMA_STREAM_HEADER_SIZE

+ +
+
+ + + + +
#define LZMA_STREAM_HEADER_SIZE   12
+
+ +

Size of Stream Header and Stream Footer.

+

Stream Header and Stream Footer have the same size and they are not going to change even if a newer version of the .xz file format is developed in future.

+ +
+
+

Function Documentation

+ +

◆ lzma_stream_header_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_stream_header_encode (const lzma_stream_flagsoptions,
uint8_t * out 
)
+
+ +

Encode Stream Header.

+
Parameters
+ + + +
optionsStream Header options to be encoded. options->backward_size is ignored and doesn't need to be initialized.
[out]outBeginning of the output buffer of LZMA_STREAM_HEADER_SIZE bytes.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Encoding was successful.
  • +
  • LZMA_OPTIONS_ERROR: options->version is not supported by this liblzma version.
  • +
  • LZMA_PROG_ERROR: Invalid options.
  • +
+
+ +
+
+ +

◆ lzma_stream_footer_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_stream_footer_encode (const lzma_stream_flagsoptions,
uint8_t * out 
)
+
+ +

Encode Stream Footer.

+
Parameters
+ + + +
optionsStream Footer options to be encoded.
[out]outBeginning of the output buffer of LZMA_STREAM_HEADER_SIZE bytes.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Encoding was successful.
  • +
  • LZMA_OPTIONS_ERROR: options->version is not supported by this liblzma version.
  • +
  • LZMA_PROG_ERROR: Invalid options.
  • +
+
+ +
+
+ +

◆ lzma_stream_header_decode()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_stream_header_decode (lzma_stream_flagsoptions,
const uint8_t * in 
)
+
+ +

Decode Stream Header.

+

options->backward_size is always set to LZMA_VLI_UNKNOWN. This is to help comparing Stream Flags from Stream Header and Stream Footer with lzma_stream_flags_compare().

+
Note
When decoding .xz files that contain multiple Streams, it may make sense to print "file format not recognized" only if decoding of the Stream Header of the first Stream gives LZMA_FORMAT_ERROR. If non-first Stream Header gives LZMA_FORMAT_ERROR, the message used for LZMA_DATA_ERROR is probably more appropriate. For example, the Stream decoder in liblzma uses LZMA_DATA_ERROR if LZMA_FORMAT_ERROR is returned by lzma_stream_header_decode() when decoding non-first Stream.
+
Parameters
+ + + +
[out]optionsTarget for the decoded Stream Header options.
inBeginning of the input buffer of LZMA_STREAM_HEADER_SIZE bytes.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Decoding was successful.
  • +
  • LZMA_FORMAT_ERROR: Magic bytes don't match, thus the given buffer cannot be Stream Header.
  • +
  • LZMA_DATA_ERROR: CRC32 doesn't match, thus the header is corrupt.
  • +
  • LZMA_OPTIONS_ERROR: Unsupported options are present in the header.
  • +
+
+ +
+
+ +

◆ lzma_stream_footer_decode()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_stream_footer_decode (lzma_stream_flagsoptions,
const uint8_t * in 
)
+
+ +

Decode Stream Footer.

+
Note
If Stream Header was already decoded successfully, but decoding Stream Footer returns LZMA_FORMAT_ERROR, the application should probably report some other error message than "file format not recognized". The file likely is corrupt (possibly truncated). The Stream decoder in liblzma uses LZMA_DATA_ERROR in this situation.
+
Parameters
+ + + +
[out]optionsTarget for the decoded Stream Footer options.
inBeginning of the input buffer of LZMA_STREAM_HEADER_SIZE bytes.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Decoding was successful.
  • +
  • LZMA_FORMAT_ERROR: Magic bytes don't match, thus the given buffer cannot be Stream Footer.
  • +
  • LZMA_DATA_ERROR: CRC32 doesn't match, thus the Stream Footer is corrupt.
  • +
  • LZMA_OPTIONS_ERROR: Unsupported options are present in Stream Footer.
  • +
+
+ +
+
+ +

◆ lzma_stream_flags_compare()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_stream_flags_compare (const lzma_stream_flagsa,
const lzma_stream_flagsb 
)
+
+ +

Compare two lzma_stream_flags structures.

+

backward_size values are compared only if both are not LZMA_VLI_UNKNOWN.

+
Parameters
+ + + +
aPointer to lzma_stream_flags structure
bPointer to lzma_stream_flags structure
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Both are equal. If either had backward_size set to LZMA_VLI_UNKNOWN, backward_size values were not compared or validated.
  • +
  • LZMA_DATA_ERROR: The structures differ.
  • +
  • LZMA_OPTIONS_ERROR: version in either structure is greater than the maximum supported version (currently zero).
  • +
  • LZMA_PROG_ERROR: Invalid value, e.g. invalid check or backward_size.
  • +
+
+ +
+
+
+ + + + diff --git a/xz-5.4.5/doc/api/structlzma__allocator.html b/xz-5.4.5/doc/api/structlzma__allocator.html new file mode 100644 index 000000000..593647b15 --- /dev/null +++ b/xz-5.4.5/doc/api/structlzma__allocator.html @@ -0,0 +1,153 @@ + + + + + + + +liblzma (XZ Utils): lzma_allocator Struct Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + +
+
+ +
lzma_allocator Struct Reference
+
+
+ +

Custom functions for memory handling. + More...

+ +

#include <base.h>

+ + + + + + + + + + + +

+Data Fields

void *(* alloc )(void *opaque, size_t nmemb, size_t size)
 Pointer to a custom memory allocation function.
 
void(* free )(void *opaque, void *ptr)
 Pointer to a custom memory freeing function.
 
void * opaque
 Pointer passed to .alloc() and .free()
 
+

Detailed Description

+

Custom functions for memory handling.

+

A pointer to lzma_allocator may be passed via lzma_stream structure to liblzma, and some advanced functions take a pointer to lzma_allocator as a separate function argument. The library will use the functions specified in lzma_allocator for memory handling instead of the default malloc() and free(). C++ users should note that the custom memory handling functions must not throw exceptions.

+

Single-threaded mode only: liblzma doesn't make an internal copy of lzma_allocator. Thus, it is OK to change these function pointers in the middle of the coding process, but obviously it must be done carefully to make sure that the replacement `free' can deallocate memory allocated by the earlier `alloc' function(s).

+

Multithreaded mode: liblzma might internally store pointers to the lzma_allocator given via the lzma_stream structure. The application must not change the allocator pointer in lzma_stream or the contents of the pointed lzma_allocator structure until lzma_end() has been used to free the memory associated with that lzma_stream. The allocation functions might be called simultaneously from multiple threads, and thus they must be thread safe.

+

Field Documentation

+ +

◆ alloc

+ +
+
+ + + + +
void *(* lzma_allocator::alloc) (void *opaque, size_t nmemb, size_t size)
+
+ +

Pointer to a custom memory allocation function.

+

If you don't want a custom allocator, but still want custom free(), set this to NULL and liblzma will use the standard malloc().

+
Parameters
+ + + + +
opaquelzma_allocator.opaque (see below)
nmembNumber of elements like in calloc(). liblzma will always set nmemb to 1, so it is safe to ignore nmemb in a custom allocator if you like. The nmemb argument exists only for compatibility with zlib and libbzip2.
sizeSize of an element in bytes. liblzma never sets this to zero.
+
+
+
Returns
Pointer to the beginning of a memory block of `size' bytes, or NULL if allocation fails for some reason. When allocation fails, functions of liblzma return LZMA_MEM_ERROR.
+

The allocator should not waste time zeroing the allocated buffers. This is not only about speed, but also memory usage, since the operating system kernel doesn't necessarily allocate the requested memory in physical memory until it is actually used. With small input files, liblzma may actually need only a fraction of the memory that it requested for allocation.

+
Note
LZMA_MEM_ERROR is also used when the size of the allocation would be greater than SIZE_MAX. Thus, don't assume that the custom allocator must have returned NULL if some function from liblzma returns LZMA_MEM_ERROR.
+ +
+
+ +

◆ free

+ +
+
+ + + + +
void(* lzma_allocator::free) (void *opaque, void *ptr)
+
+ +

Pointer to a custom memory freeing function.

+

If you don't want a custom freeing function, but still want a custom allocator, set this to NULL and liblzma will use the standard free().

+
Parameters
+ + + +
opaquelzma_allocator.opaque (see below)
ptrPointer returned by lzma_allocator.alloc(), or when it is set to NULL, a pointer returned by the standard malloc().
+
+
+ +
+
+ +

◆ opaque

+ +
+
+ + + + +
void* lzma_allocator::opaque
+
+ +

Pointer passed to .alloc() and .free()

+

opaque is passed as the first argument to lzma_allocator.alloc() and lzma_allocator.free(). This intended to ease implementing custom memory allocation functions for use with liblzma.

+

If you don't need this, you should set this to NULL.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/xz-5.4.5/doc/api/structlzma__block.html b/xz-5.4.5/doc/api/structlzma__block.html new file mode 100644 index 000000000..69aa24562 --- /dev/null +++ b/xz-5.4.5/doc/api/structlzma__block.html @@ -0,0 +1,347 @@ + + + + + + + +liblzma (XZ Utils): lzma_block Struct Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + +
+
+ +
lzma_block Struct Reference
+
+
+ +

Options for the Block and Block Header encoders and decoders. + More...

+ +

#include <block.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

uint32_t version
 Block format version.
 
uint32_t header_size
 Size of the Block Header field in bytes.
 
lzma_check check
 Type of integrity Check.
 
lzma_vli compressed_size
 Size of the Compressed Data in bytes.
 
lzma_vli uncompressed_size
 Uncompressed Size in bytes.
 
lzma_filterfilters
 Array of filters.
 
uint8_t raw_check [LZMA_CHECK_SIZE_MAX]
 Raw value stored in the Check field.
 
lzma_bool ignore_check
 A flag to Block decoder to not verify the Check field.
 
+

Detailed Description

+

Options for the Block and Block Header encoders and decoders.

+

Different Block handling functions use different parts of this structure. Some read some members, other functions write, and some do both. Only the members listed for reading need to be initialized when the specified functions are called. The members marked for writing will be assigned new values at some point either by calling the given function or by later calls to lzma_code().

+

Field Documentation

+ +

◆ version

+ +
+
+ + + + +
uint32_t lzma_block::version
+
+ +

Block format version.

+

To prevent API and ABI breakages when new features are needed, a version number is used to indicate which members in this structure are in use:

    +
  • liblzma >= 5.0.0: version = 0 is supported.
  • +
  • liblzma >= 5.1.4beta: Support for version = 1 was added, which adds the ignore_check member.
  • +
+

If version is greater than one, most Block related functions will return LZMA_OPTIONS_ERROR (lzma_block_header_decode() works with any version value).

+

Read by:

+

Written by:

+ +
+
+ +

◆ header_size

+ +
+
+ + + + +
uint32_t lzma_block::header_size
+
+
+ +

◆ check

+ +
+
+ + + + +
lzma_check lzma_block::check
+
+ +

Type of integrity Check.

+

The Check ID is not stored into the Block Header, thus its value must be provided also when decoding.

+

Read by:

+ +
+
+ +

◆ compressed_size

+ +
+
+ + + + +
lzma_vli lzma_block::compressed_size
+
+ +

Size of the Compressed Data in bytes.

+

Encoding: If this is not LZMA_VLI_UNKNOWN, Block Header encoder will store this value to the Block Header. Block encoder doesn't care about this value, but will set it once the encoding has been finished.

+

Decoding: If this is not LZMA_VLI_UNKNOWN, Block decoder will verify that the size of the Compressed Data field matches compressed_size.

+

Usually you don't know this value when encoding in streamed mode, and thus cannot write this field into the Block Header.

+

In non-streamed mode you can reserve space for this field before encoding the actual Block. After encoding the data, finish the Block by encoding the Block Header. Steps in detail:

+
    +
  • Set compressed_size to some big enough value. If you don't know better, use LZMA_VLI_MAX, but remember that bigger values take more space in Block Header.
  • +
  • Call lzma_block_header_size() to see how much space you need to reserve for the Block Header.
  • +
  • Encode the Block using lzma_block_encoder() and lzma_code(). It sets compressed_size to the correct value.
  • +
  • Use lzma_block_header_encode() to encode the Block Header. Because space was reserved in the first step, you don't need to call lzma_block_header_size() anymore, because due to reserving, header_size has to be big enough. If it is "too big", lzma_block_header_encode() will add enough Header Padding to make Block Header to match the size specified by header_size.
  • +
+

Read by:

+

Written by:

+ +
+
+ +

◆ uncompressed_size

+ +
+
+ + + + +
lzma_vli lzma_block::uncompressed_size
+
+ +

Uncompressed Size in bytes.

+

This is handled very similarly to compressed_size above.

+

uncompressed_size is needed by fewer functions than compressed_size. This is because uncompressed_size isn't needed to validate that Block stays within proper limits.

+

Read by:

+

Written by:

+ +
+
+ +

◆ filters

+ +
+
+ + + + +
lzma_filter* lzma_block::filters
+
+ +

Array of filters.

+

There can be 1-4 filters. The end of the array is marked with .id = LZMA_VLI_UNKNOWN.

+

Read by:

+

Written by:

    +
  • lzma_block_header_decode(): Note that this does NOT free() the old filter options structures. All unused filters[] will have .id == LZMA_VLI_UNKNOWN and .options == NULL. If decoding fails, all filters[] are guaranteed to be LZMA_VLI_UNKNOWN and NULL.
  • +
+
Note
Because of the array is terminated with .id = LZMA_VLI_UNKNOWN, the actual array must have LZMA_FILTERS_MAX + 1 members or the Block Header decoder will overflow the buffer.
+ +
+
+ +

◆ raw_check

+ +
+
+ + + + +
uint8_t lzma_block::raw_check[LZMA_CHECK_SIZE_MAX]
+
+ +

Raw value stored in the Check field.

+

After successful coding, the first lzma_check_size(check) bytes of this array contain the raw value stored in the Check field.

+

Note that CRC32 and CRC64 are stored in little endian byte order. Take it into account if you display the Check values to the user.

+

Written by:

+ +
+
+ +

◆ ignore_check

+ +
+
+ + + + +
lzma_bool lzma_block::ignore_check
+
+ +

A flag to Block decoder to not verify the Check field.

+

This member is supported by liblzma >= 5.1.4beta if .version >= 1.

+

If this is set to true, the integrity check won't be calculated and verified. Unless you know what you are doing, you should leave this to false. (A reason to set this to true is when the file integrity is verified externally anyway and you want to speed up the decompression, which matters mostly when using SHA-256 as the integrity check.)

+

If .version >= 1, read by:

+

Written by (.version is ignored):

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/xz-5.4.5/doc/api/structlzma__filter.html b/xz-5.4.5/doc/api/structlzma__filter.html new file mode 100644 index 000000000..b78081c5e --- /dev/null +++ b/xz-5.4.5/doc/api/structlzma__filter.html @@ -0,0 +1,114 @@ + + + + + + + +liblzma (XZ Utils): lzma_filter Struct Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + +
+
+ +
lzma_filter Struct Reference
+
+
+ +

Filter options. + More...

+ +

#include <filter.h>

+ + + + + + + + +

+Data Fields

lzma_vli id
 Filter ID.
 
void * options
 Pointer to filter-specific options structure.
 
+

Detailed Description

+

Filter options.

+

This structure is used to pass a Filter ID and a pointer to the filter's options to liblzma. A few functions work with a single lzma_filter structure, while most functions expect a filter chain.

+

A filter chain is indicated with an array of lzma_filter structures. The array is terminated with .id = LZMA_VLI_UNKNOWN. Thus, the filter array must have LZMA_FILTERS_MAX + 1 elements (that is, five) to be able to hold any arbitrary filter chain. This is important when using lzma_block_header_decode() from block.h, because a filter array that is too small would make liblzma write past the end of the array.

+

Field Documentation

+ +

◆ id

+ +
+
+ + + + +
lzma_vli lzma_filter::id
+
+ +

Filter ID.

+

Use constants whose name begin with `LZMA_FILTER_' to specify different filters. In an array of lzma_filter structures, use LZMA_VLI_UNKNOWN to indicate end of filters.

+
Note
This is not an enum, because on some systems enums cannot be 64-bit.
+ +
+
+ +

◆ options

+ +
+
+ + + + +
void* lzma_filter::options
+
+ +

Pointer to filter-specific options structure.

+

If the filter doesn't need options, set this to NULL. If id is set to LZMA_VLI_UNKNOWN, options is ignored, and thus doesn't need be initialized.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/xz-5.4.5/doc/api/structlzma__index__iter.html b/xz-5.4.5/doc/api/structlzma__index__iter.html new file mode 100644 index 000000000..d75595a71 --- /dev/null +++ b/xz-5.4.5/doc/api/structlzma__index__iter.html @@ -0,0 +1,407 @@ + + + + + + + +liblzma (XZ Utils): lzma_index_iter Struct Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + +
+
+ +
lzma_index_iter Struct Reference
+
+
+ +

Iterator to get information about Blocks and Streams. + More...

+ +

#include <index.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

+struct { 
 
   const lzma_stream_flags *   flags 
 Pointer to Stream Flags. More...
 
   lzma_vli   number 
 Stream number in the lzma_index. More...
 
   lzma_vli   block_count 
 Number of Blocks in the Stream. More...
 
   lzma_vli   compressed_offset 
 Compressed start offset of this Stream. More...
 
   lzma_vli   uncompressed_offset 
 Uncompressed start offset of this Stream. More...
 
   lzma_vli   compressed_size 
 Compressed size of this Stream. More...
 
+   lzma_vli   uncompressed_size 
 Uncompressed size of this Stream.
 
   lzma_vli   padding 
 Size of Stream Padding after this Stream. More...
 
stream 
 
+struct { 
 
   lzma_vli   number_in_file 
 Block number in the file. More...
 
   lzma_vli   compressed_file_offset 
 Compressed start offset of this Block. More...
 
   lzma_vli   uncompressed_file_offset 
 Uncompressed start offset of this Block. More...
 
   lzma_vli   number_in_stream 
 Block number in this Stream. More...
 
   lzma_vli   compressed_stream_offset 
 Compressed start offset of this Block. More...
 
   lzma_vli   uncompressed_stream_offset 
 Uncompressed start offset of this Block. More...
 
   lzma_vli   uncompressed_size 
 Uncompressed size of this Block. More...
 
   lzma_vli   unpadded_size 
 Unpadded size of this Block. More...
 
   lzma_vli   total_size 
 Total compressed size. More...
 
block 
 
+

Detailed Description

+

Iterator to get information about Blocks and Streams.

+

Field Documentation

+ +

◆ flags

+ +
+
+ + + + +
const lzma_stream_flags* lzma_index_iter::flags
+
+ +

Pointer to Stream Flags.

+

This is NULL if Stream Flags have not been set for this Stream with lzma_index_stream_flags().

+ +
+
+ +

◆ number

+ +
+
+ + + + +
lzma_vli lzma_index_iter::number
+
+ +

Stream number in the lzma_index.

+

The first Stream is 1.

+ +
+
+ +

◆ block_count

+ +
+
+ + + + +
lzma_vli lzma_index_iter::block_count
+
+ +

Number of Blocks in the Stream.

+

If this is zero, the block structure below has undefined values.

+ +
+
+ +

◆ compressed_offset

+ +
+
+ + + + +
lzma_vli lzma_index_iter::compressed_offset
+
+ +

Compressed start offset of this Stream.

+

The offset is relative to the beginning of the lzma_index (i.e. usually the beginning of the .xz file).

+ +
+
+ +

◆ uncompressed_offset

+ +
+
+ + + + +
lzma_vli lzma_index_iter::uncompressed_offset
+
+ +

Uncompressed start offset of this Stream.

+

The offset is relative to the beginning of the lzma_index (i.e. usually the beginning of the .xz file).

+ +
+
+ +

◆ compressed_size

+ +
+
+ + + + +
lzma_vli lzma_index_iter::compressed_size
+
+ +

Compressed size of this Stream.

+

This includes all headers except the possible Stream Padding after this Stream.

+ +
+
+ +

◆ uncompressed_size

+ +
+
+ + + + +
lzma_vli lzma_index_iter::uncompressed_size
+
+ +

Uncompressed size of this Stream.

+

Uncompressed size of this Block.

+

You should pass this to the Block decoder if you will decode this Block. It will allow the Block decoder to validate the uncompressed size.

+ +
+
+ +

◆ padding

+ +
+
+ + + + +
lzma_vli lzma_index_iter::padding
+
+ +

Size of Stream Padding after this Stream.

+

If it hasn't been set with lzma_index_stream_padding(), this defaults to zero. Stream Padding is always a multiple of four bytes.

+ +
+
+ +

◆ number_in_file

+ +
+
+ + + + +
lzma_vli lzma_index_iter::number_in_file
+
+ +

Block number in the file.

+

The first Block is 1.

+ +
+
+ +

◆ compressed_file_offset

+ +
+
+ + + + +
lzma_vli lzma_index_iter::compressed_file_offset
+
+ +

Compressed start offset of this Block.

+

This offset is relative to the beginning of the lzma_index (i.e. usually the beginning of the .xz file). Normally this is where you should seek in the .xz file to start decompressing this Block.

+ +
+
+ +

◆ uncompressed_file_offset

+ +
+
+ + + + +
lzma_vli lzma_index_iter::uncompressed_file_offset
+
+ +

Uncompressed start offset of this Block.

+

This offset is relative to the beginning of the lzma_index (i.e. usually the beginning of the .xz file).

+

When doing random-access reading, it is possible that the target offset is not exactly at Block boundary. One will need to compare the target offset against uncompressed_file_offset or uncompressed_stream_offset, and possibly decode and throw away some amount of data before reaching the target offset.

+ +
+
+ +

◆ number_in_stream

+ +
+
+ + + + +
lzma_vli lzma_index_iter::number_in_stream
+
+ +

Block number in this Stream.

+

The first Block is 1.

+ +
+
+ +

◆ compressed_stream_offset

+ +
+
+ + + + +
lzma_vli lzma_index_iter::compressed_stream_offset
+
+ +

Compressed start offset of this Block.

+

This offset is relative to the beginning of the Stream containing this Block.

+ +
+
+ +

◆ uncompressed_stream_offset

+ +
+
+ + + + +
lzma_vli lzma_index_iter::uncompressed_stream_offset
+
+ +

Uncompressed start offset of this Block.

+

This offset is relative to the beginning of the Stream containing this Block.

+ +
+
+ +

◆ unpadded_size

+ +
+
+ + + + +
lzma_vli lzma_index_iter::unpadded_size
+
+ +

Unpadded size of this Block.

+

You should pass this to the Block decoder if you will decode this Block. It will allow the Block decoder to validate the unpadded size.

+ +
+
+ +

◆ total_size

+ +
+
+ + + + +
lzma_vli lzma_index_iter::total_size
+
+ +

Total compressed size.

+

This includes all headers and padding in this Block. This is useful if you need to know how many bytes the Block decoder will actually read.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/xz-5.4.5/doc/api/structlzma__mt.html b/xz-5.4.5/doc/api/structlzma__mt.html new file mode 100644 index 000000000..17a16cc4a --- /dev/null +++ b/xz-5.4.5/doc/api/structlzma__mt.html @@ -0,0 +1,256 @@ + + + + + + + +liblzma (XZ Utils): lzma_mt Struct Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + +
+
+ +
lzma_mt Struct Reference
+
+
+ +

Multithreading options. + More...

+ +

#include <container.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

uint32_t flags
 Flags.
 
+uint32_t threads
 Number of worker threads to use.
 
uint64_t block_size
 Encoder only: Maximum uncompressed size of a Block.
 
uint32_t timeout
 Timeout to allow lzma_code() to return early.
 
uint32_t preset
 Encoder only: Compression preset.
 
const lzma_filterfilters
 Encoder only: Filter chain (alternative to a preset)
 
lzma_check check
 Encoder only: Integrity check type.
 
uint64_t memlimit_threading
 Memory usage limit to reduce the number of threads.
 
uint64_t memlimit_stop
 Memory usage limit that should never be exceeded.
 
+

Detailed Description

+

Multithreading options.

+

Field Documentation

+ +

◆ flags

+ +
+
+ + + + +
uint32_t lzma_mt::flags
+
+ +

Flags.

+

Set this to zero if no flags are wanted.

+

Encoder: No flags are currently supported.

+

Decoder: Bitwise-or of zero or more of the decoder flags:

    +
  • LZMA_TELL_NO_CHECK
  • +
  • LZMA_TELL_UNSUPPORTED_CHECK
  • +
  • LZMA_TELL_ANY_CHECK
  • +
  • LZMA_IGNORE_CHECK
  • +
  • LZMA_CONCATENATED
  • +
  • LZMA_FAIL_FAST
  • +
+ +
+
+ +

◆ block_size

+ +
+
+ + + + +
uint64_t lzma_mt::block_size
+
+ +

Encoder only: Maximum uncompressed size of a Block.

+

The encoder will start a new .xz Block every block_size bytes. Using LZMA_FULL_FLUSH or LZMA_FULL_BARRIER with lzma_code() the caller may tell liblzma to start a new Block earlier.

+

With LZMA2, a recommended block size is 2-4 times the LZMA2 dictionary size. With very small dictionaries, it is recommended to use at least 1 MiB block size for good compression ratio, even if this is more than four times the dictionary size. Note that these are only recommendations for typical use cases; feel free to use other values. Just keep in mind that using a block size less than the LZMA2 dictionary size is waste of RAM.

+

Set this to 0 to let liblzma choose the block size depending on the compression options. For LZMA2 it will be 3*dict_size or 1 MiB, whichever is more.

+

For each thread, about 3 * block_size bytes of memory will be allocated. This may change in later liblzma versions. If so, the memory usage will probably be reduced, not increased.

+ +
+
+ +

◆ timeout

+ +
+
+ + + + +
uint32_t lzma_mt::timeout
+
+ +

Timeout to allow lzma_code() to return early.

+

Multithreading can make liblzma consume input and produce output in a very bursty way: it may first read a lot of input to fill internal buffers, then no input or output occurs for a while.

+

In single-threaded mode, lzma_code() won't return until it has either consumed all the input or filled the output buffer. If this is done in multithreaded mode, it may cause a call lzma_code() to take even tens of seconds, which isn't acceptable in all applications.

+

To avoid very long blocking times in lzma_code(), a timeout (in milliseconds) may be set here. If lzma_code() would block longer than this number of milliseconds, it will return with LZMA_OK. Reasonable values are 100 ms or more. The xz command line tool uses 300 ms.

+

If long blocking times are acceptable, set timeout to a special value of 0. This will disable the timeout mechanism and will make lzma_code() block until all the input is consumed or the output buffer has been filled.

+
Note
Even with a timeout, lzma_code() might sometimes take a long time to return. No timing guarantees are made.
+ +
+
+ +

◆ preset

+ +
+
+ + + + +
uint32_t lzma_mt::preset
+
+ +

Encoder only: Compression preset.

+

The preset is set just like with lzma_easy_encoder(). The preset is ignored if filters below is non-NULL.

+ +
+
+ +

◆ filters

+ +
+
+ + + + +
const lzma_filter* lzma_mt::filters
+
+ +

Encoder only: Filter chain (alternative to a preset)

+

If this is NULL, the preset above is used. Otherwise the preset is ignored and the filter chain specified here is used.

+ +
+
+ +

◆ check

+ +
+
+ + + + +
lzma_check lzma_mt::check
+
+ +

Encoder only: Integrity check type.

+

See check.h for available checks. The xz command line tool defaults to LZMA_CHECK_CRC64, which is a good choice if you are unsure.

+ +
+
+ +

◆ memlimit_threading

+ +
+
+ + + + +
uint64_t lzma_mt::memlimit_threading
+
+ +

Memory usage limit to reduce the number of threads.

+

Encoder: Ignored.

+

Decoder:

+

If the number of threads has been set so high that more than memlimit_threading bytes of memory would be needed, the number of threads will be reduced so that the memory usage will not exceed memlimit_threading bytes. However, if memlimit_threading cannot be met even in single-threaded mode, then decoding will continue in single-threaded mode and memlimit_threading may be exceeded even by a large amount. That is, memlimit_threading will never make lzma_code() return LZMA_MEMLIMIT_ERROR. To truly cap the memory usage, see memlimit_stop below.

+

Setting memlimit_threading to UINT64_MAX or a similar huge value means that liblzma is allowed to keep the whole compressed file and the whole uncompressed file in memory in addition to the memory needed by the decompressor data structures used by each thread! In other words, a reasonable value limit must be set here or it will cause problems sooner or later. If you have no idea what a reasonable value could be, try lzma_physmem() / 4 as a starting point. Setting this limit will never prevent decompression of a file; this will only reduce the number of threads.

+

If memlimit_threading is greater than memlimit_stop, then the value of memlimit_stop will be used for both.

+ +
+
+ +

◆ memlimit_stop

+ +
+
+ + + + +
uint64_t lzma_mt::memlimit_stop
+
+ +

Memory usage limit that should never be exceeded.

+

Encoder: Ignored.

+

Decoder: If decompressing will need more than this amount of memory even in the single-threaded mode, then lzma_code() will return LZMA_MEMLIMIT_ERROR.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/xz-5.4.5/doc/api/structlzma__options__bcj.html b/xz-5.4.5/doc/api/structlzma__options__bcj.html new file mode 100644 index 000000000..b9620921c --- /dev/null +++ b/xz-5.4.5/doc/api/structlzma__options__bcj.html @@ -0,0 +1,95 @@ + + + + + + + +liblzma (XZ Utils): lzma_options_bcj Struct Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + +
+
+ +
lzma_options_bcj Struct Reference
+
+
+ +

Options for BCJ filters. + More...

+ +

#include <bcj.h>

+ + + + + +

+Data Fields

uint32_t start_offset
 Start offset for conversions.
 
+

Detailed Description

+

Options for BCJ filters.

+

The BCJ filters never change the size of the data. Specifying options for them is optional: if pointer to options is NULL, default value is used. You probably never need to specify options to BCJ filters, so just set the options pointer to NULL and be happy.

+

If options with non-default values have been specified when encoding, the same options must also be specified when decoding.

+
Note
At the moment, none of the BCJ filters support LZMA_SYNC_FLUSH. If LZMA_SYNC_FLUSH is specified, LZMA_OPTIONS_ERROR will be returned. If there is need, partial support for LZMA_SYNC_FLUSH can be added in future. Partial means that flushing would be possible only at offsets that are multiple of 2, 4, or 16 depending on the filter, except x86 which cannot be made to support LZMA_SYNC_FLUSH predictably.
+

Field Documentation

+ +

◆ start_offset

+ +
+
+ + + + +
uint32_t lzma_options_bcj::start_offset
+
+ +

Start offset for conversions.

+

This setting is useful only when the same filter is used _separately_ for multiple sections of the same executable file, and the sections contain cross-section branch/call/jump instructions. In that case it is beneficial to set the start offset of the non-first sections so that the relative addresses of the cross-section branch/call/jump instructions will use the same absolute addresses as in the first section.

+

When the pointer to options is NULL, the default value (zero) is used.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/xz-5.4.5/doc/api/structlzma__options__delta.html b/xz-5.4.5/doc/api/structlzma__options__delta.html new file mode 100644 index 000000000..294586dee --- /dev/null +++ b/xz-5.4.5/doc/api/structlzma__options__delta.html @@ -0,0 +1,113 @@ + + + + + + + +liblzma (XZ Utils): lzma_options_delta Struct Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + +
+
+ +
lzma_options_delta Struct Reference
+
+
+ +

Options for the Delta filter. + More...

+ +

#include <delta.h>

+ + + + + + + +

+Data Fields

lzma_delta_type type
 
uint32_t dist
 Delta distance.
 
+

Detailed Description

+

Options for the Delta filter.

+

These options are needed by both encoder and decoder.

+

Field Documentation

+ +

◆ type

+ +
+
+ + + + +
lzma_delta_type lzma_options_delta::type
+
+

For now, this must always be LZMA_DELTA_TYPE_BYTE.

+ +
+
+ +

◆ dist

+ +
+
+ + + + +
uint32_t lzma_options_delta::dist
+
+ +

Delta distance.

+

With the only currently supported type, LZMA_DELTA_TYPE_BYTE, the distance is as bytes.

+

Examples:

    +
  • 16-bit stereo audio: distance = 4 bytes
  • +
  • 24-bit RGB image data: distance = 3 bytes
  • +
+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/xz-5.4.5/doc/api/structlzma__options__lzma.html b/xz-5.4.5/doc/api/structlzma__options__lzma.html new file mode 100644 index 000000000..f8e3adf4d --- /dev/null +++ b/xz-5.4.5/doc/api/structlzma__options__lzma.html @@ -0,0 +1,363 @@ + + + + + + + +liblzma (XZ Utils): lzma_options_lzma Struct Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + +
+
+ +
lzma_options_lzma Struct Reference
+
+
+ +

Options specific to the LZMA1 and LZMA2 filters. + More...

+ +

#include <lzma12.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

uint32_t dict_size
 Dictionary size in bytes.
 
const uint8_t * preset_dict
 Pointer to an initial dictionary.
 
uint32_t preset_dict_size
 Size of the preset dictionary.
 
uint32_t lc
 Number of literal context bits.
 
uint32_t lp
 Number of literal position bits.
 
uint32_t pb
 Number of position bits.
 
lzma_mode mode
 
uint32_t nice_len
 Nice length of a match.
 
lzma_match_finder mf
 
uint32_t depth
 Maximum search depth in the match finder.
 
uint32_t ext_flags
 For LZMA_FILTER_LZMA1EXT: Extended flags.
 
uint32_t ext_size_low
 For LZMA_FILTER_LZMA1EXT: Uncompressed size (low bits)
 
uint32_t ext_size_high
 For LZMA_FILTER_LZMA1EXT: Uncompressed size (high bits)
 
+

Detailed Description

+

Options specific to the LZMA1 and LZMA2 filters.

+

Since LZMA1 and LZMA2 share most of the code, it's simplest to share the options structure too. For encoding, all but the reserved variables need to be initialized unless specifically mentioned otherwise. lzma_lzma_preset() can be used to get a good starting point.

+

For raw decoding, both LZMA1 and LZMA2 need dict_size, preset_dict, and preset_dict_size (if preset_dict != NULL). LZMA1 needs also lc, lp, and pb.

+

Field Documentation

+ +

◆ dict_size

+ +
+
+ + + + +
uint32_t lzma_options_lzma::dict_size
+
+ +

Dictionary size in bytes.

+

Dictionary size indicates how many bytes of the recently processed uncompressed data is kept in memory. One method to reduce size of the uncompressed data is to store distance-length pairs, which indicate what data to repeat from the dictionary buffer. Thus, the bigger the dictionary, the better the compression ratio usually is.

+

Maximum size of the dictionary depends on multiple things:

    +
  • Memory usage limit
  • +
  • Available address space (not a problem on 64-bit systems)
  • +
  • Selected match finder (encoder only)
  • +
+

Currently the maximum dictionary size for encoding is 1.5 GiB (i.e. (UINT32_C(1) << 30) + (UINT32_C(1) << 29)) even on 64-bit systems for certain match finder implementation reasons. In the future, there may be match finders that support bigger dictionaries.

+

Decoder already supports dictionaries up to 4 GiB - 1 B (i.e. UINT32_MAX), so increasing the maximum dictionary size of the encoder won't cause problems for old decoders.

+

Because extremely small dictionaries sizes would have unneeded overhead in the decoder, the minimum dictionary size is 4096 bytes.

+
Note
When decoding, too big dictionary does no other harm than wasting memory.
+ +
+
+ +

◆ preset_dict

+ +
+
+ + + + +
const uint8_t* lzma_options_lzma::preset_dict
+
+ +

Pointer to an initial dictionary.

+

It is possible to initialize the LZ77 history window using a preset dictionary. It is useful when compressing many similar, relatively small chunks of data independently from each other. The preset dictionary should contain typical strings that occur in the files being compressed. The most probable strings should be near the end of the preset dictionary.

+

This feature should be used only in special situations. For now, it works correctly only with raw encoding and decoding. Currently none of the container formats supported by liblzma allow preset dictionary when decoding, thus if you create a .xz or .lzma file with preset dictionary, it cannot be decoded with the regular decoder functions. In the future, the .xz format will likely get support for preset dictionary though.

+ +
+
+ +

◆ preset_dict_size

+ +
+
+ + + + +
uint32_t lzma_options_lzma::preset_dict_size
+
+ +

Size of the preset dictionary.

+

Specifies the size of the preset dictionary. If the size is bigger than dict_size, only the last dict_size bytes are processed.

+

This variable is read only when preset_dict is not NULL. If preset_dict is not NULL but preset_dict_size is zero, no preset dictionary is used (identical to only setting preset_dict to NULL).

+ +
+
+ +

◆ lc

+ +
+
+ + + + +
uint32_t lzma_options_lzma::lc
+
+ +

Number of literal context bits.

+

How many of the highest bits of the previous uncompressed eight-bit byte (also known as `literal') are taken into account when predicting the bits of the next literal.

+

E.g. in typical English text, an upper-case letter is often followed by a lower-case letter, and a lower-case letter is usually followed by another lower-case letter. In the US-ASCII character set, the highest three bits are 010 for upper-case letters and 011 for lower-case letters. When lc is at least 3, the literal coding can take advantage of this property in the uncompressed data.

+

There is a limit that applies to literal context bits and literal position bits together: lc + lp <= 4. Without this limit the decoding could become very slow, which could have security related results in some cases like email servers doing virus scanning. This limit also simplifies the internal implementation in liblzma.

+

There may be LZMA1 streams that have lc + lp > 4 (maximum possible lc would be 8). It is not possible to decode such streams with liblzma.

+ +
+
+ +

◆ lp

+ +
+
+ + + + +
uint32_t lzma_options_lzma::lp
+
+ +

Number of literal position bits.

+

lp affects what kind of alignment in the uncompressed data is assumed when encoding literals. A literal is a single 8-bit byte. See pb below for more information about alignment.

+ +
+
+ +

◆ pb

+ +
+
+ + + + +
uint32_t lzma_options_lzma::pb
+
+ +

Number of position bits.

+

pb affects what kind of alignment in the uncompressed data is assumed in general. The default means four-byte alignment (2^ pb =2^2=4), which is often a good choice when there's no better guess.

+

When the alignment is known, setting pb accordingly may reduce the file size a little. E.g. with text files having one-byte alignment (US-ASCII, ISO-8859-*, UTF-8), setting pb=0 can improve compression slightly. For UTF-16 text, pb=1 is a good choice. If the alignment is an odd number like 3 bytes, pb=0 might be the best choice.

+

Even though the assumed alignment can be adjusted with pb and lp, LZMA1 and LZMA2 still slightly favor 16-byte alignment. It might be worth taking into account when designing file formats that are likely to be often compressed with LZMA1 or LZMA2.

+ +
+
+ +

◆ mode

+ +
+
+ + + + +
lzma_mode lzma_options_lzma::mode
+
+

Compression mode

+ +
+
+ +

◆ nice_len

+ +
+
+ + + + +
uint32_t lzma_options_lzma::nice_len
+
+ +

Nice length of a match.

+

This determines how many bytes the encoder compares from the match candidates when looking for the best match. Once a match of at least nice_len bytes long is found, the encoder stops looking for better candidates and encodes the match. (Naturally, if the found match is actually longer than nice_len, the actual length is encoded; it's not truncated to nice_len.)

+

Bigger values usually increase the compression ratio and compression time. For most files, 32 to 128 is a good value, which gives very good compression ratio at good speed.

+

The exact minimum value depends on the match finder. The maximum is 273, which is the maximum length of a match that LZMA1 and LZMA2 can encode.

+ +
+
+ +

◆ mf

+ +
+
+ + + + +
lzma_match_finder lzma_options_lzma::mf
+
+

Match finder ID

+ +
+
+ +

◆ depth

+ +
+
+ + + + +
uint32_t lzma_options_lzma::depth
+
+ +

Maximum search depth in the match finder.

+

For every input byte, match finder searches through the hash chain or binary tree in a loop, each iteration going one step deeper in the chain or tree. The searching stops if

    +
  • a match of at least nice_len bytes long is found;
  • +
  • all match candidates from the hash chain or binary tree have been checked; or
  • +
  • maximum search depth is reached.
  • +
+

Maximum search depth is needed to prevent the match finder from wasting too much time in case there are lots of short match candidates. On the other hand, stopping the search before all candidates have been checked can reduce compression ratio.

+

Setting depth to zero tells liblzma to use an automatic default value, that depends on the selected match finder and nice_len. The default is in the range [4, 200] or so (it may vary between liblzma versions).

+

Using a bigger depth value than the default can increase compression ratio in some cases. There is no strict maximum value, but high values (thousands or millions) should be used with care: the encoder could remain fast enough with typical input, but malicious input could cause the match finder to slow down dramatically, possibly creating a denial of service attack.

+ +
+
+ +

◆ ext_flags

+ +
+
+ + + + +
uint32_t lzma_options_lzma::ext_flags
+
+ +

For LZMA_FILTER_LZMA1EXT: Extended flags.

+

This is used only with LZMA_FILTER_LZMA1EXT.

+

Currently only one flag is supported, LZMA_LZMA1EXT_ALLOW_EOPM:

+
    +
  • Encoder: If the flag is set, then end marker is written just like it is with LZMA_FILTER_LZMA1. Without this flag the end marker isn't written and the application has to store the uncompressed size somewhere outside the compressed stream. To decompress streams without the end marker, the application has to set the correct uncompressed size in ext_size_low and ext_size_high.
  • +
  • Decoder: If the uncompressed size in ext_size_low and ext_size_high is set to the special value UINT64_MAX (indicating unknown uncompressed size) then this flag is ignored and the end marker must always be present, that is, the behavior is identical to LZMA_FILTER_LZMA1.

    +

    Otherwise, if this flag isn't set, then the input stream must not have the end marker; if the end marker is detected then it will result in LZMA_DATA_ERROR. This is useful when it is known that the stream must not have the end marker and strict validation is wanted.

    +

    If this flag is set, then it is autodetected if the end marker is present after the specified number of uncompressed bytes has been decompressed (ext_size_low and ext_size_high). The end marker isn't allowed in any other position. This behavior is useful when uncompressed size is known but the end marker may or may not be present. This is the case, for example, in .7z files (valid .7z files that have the end marker in LZMA1 streams are rare but they do exist).

    +
  • +
+ +
+
+ +

◆ ext_size_low

+ +
+
+ + + + +
uint32_t lzma_options_lzma::ext_size_low
+
+ +

For LZMA_FILTER_LZMA1EXT: Uncompressed size (low bits)

+

The 64-bit uncompressed size is needed for decompression with LZMA_FILTER_LZMA1EXT. The size is ignored by the encoder.

+

The special value UINT64_MAX indicates that the uncompressed size is unknown and that the end of payload marker (also known as end of stream marker) must be present to indicate the end of the LZMA1 stream. Any other value indicates the expected uncompressed size of the LZMA1 stream. (If LZMA1 was used together with filters that change the size of the data then the uncompressed size of the LZMA1 stream could be different than the final uncompressed size of the filtered stream.)

+

ext_size_low holds the least significant 32 bits of the uncompressed size. The most significant 32 bits must be set in ext_size_high. The macro lzma_ext_size_set(opt_lzma, u64size) can be used to set these members.

+

The 64-bit uncompressed size is split into two uint32_t variables because there were no reserved uint64_t members and using the same options structure for LZMA_FILTER_LZMA1, LZMA_FILTER_LZMA1EXT, and LZMA_FILTER_LZMA2 was otherwise more convenient than having a new options structure for LZMA_FILTER_LZMA1EXT. (Replacing two uint32_t members with one uint64_t changes the ABI on some systems as the alignment of this struct can increase from 4 bytes to 8.)

+ +
+
+ +

◆ ext_size_high

+ +
+
+ + + + +
uint32_t lzma_options_lzma::ext_size_high
+
+ +

For LZMA_FILTER_LZMA1EXT: Uncompressed size (high bits)

+

This holds the most significant 32 bits of the uncompressed size.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/xz-5.4.5/doc/api/structlzma__stream.html b/xz-5.4.5/doc/api/structlzma__stream.html new file mode 100644 index 000000000..5a0c7842b --- /dev/null +++ b/xz-5.4.5/doc/api/structlzma__stream.html @@ -0,0 +1,251 @@ + + + + + + + +liblzma (XZ Utils): lzma_stream Struct Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + +
+
+ +
lzma_stream Struct Reference
+
+
+ +

Passing data to and from liblzma. + More...

+ +

#include <base.h>

+ + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

const uint8_t * next_in
 
size_t avail_in
 
uint64_t total_in
 
uint8_t * next_out
 
size_t avail_out
 
uint64_t total_out
 
const lzma_allocatorallocator
 Custom memory allocation functions.
 
lzma_internalinternal
 
uint64_t seek_pos
 New seek input position for LZMA_SEEK_NEEDED.
 
+

Detailed Description

+

Passing data to and from liblzma.

+

The lzma_stream structure is used for

    +
  • passing pointers to input and output buffers to liblzma;
  • +
  • defining custom memory handler functions; and
  • +
  • holding a pointer to coder-specific internal data structures.
  • +
+

Typical usage:

+
    +
  • After allocating lzma_stream (on stack or with malloc()), it must be initialized to LZMA_STREAM_INIT (see LZMA_STREAM_INIT for details).
  • +
  • Initialize a coder to the lzma_stream, for example by using lzma_easy_encoder() or lzma_auto_decoder(). Some notes:
      +
    • In contrast to zlib, strm->next_in and strm->next_out are ignored by all initialization functions, thus it is safe to not initialize them yet.
    • +
    • The initialization functions always set strm->total_in and strm->total_out to zero.
    • +
    • If the initialization function fails, no memory is left allocated that would require freeing with lzma_end() even if some memory was associated with the lzma_stream structure when the initialization function was called.
    • +
    +
  • +
  • Use lzma_code() to do the actual work.
  • +
  • Once the coding has been finished, the existing lzma_stream can be reused. It is OK to reuse lzma_stream with different initialization function without calling lzma_end() first. Old allocations are automatically freed.
  • +
  • Finally, use lzma_end() to free the allocated memory. lzma_end() never frees the lzma_stream structure itself.
  • +
+

Application may modify the values of total_in and total_out as it wants. They are updated by liblzma to match the amount of data read and written but aren't used for anything else except as a possible return values from lzma_get_progress().

+

Field Documentation

+ +

◆ next_in

+ +
+
+ + + + +
const uint8_t* lzma_stream::next_in
+
+

Pointer to the next input byte.

+ +
+
+ +

◆ avail_in

+ +
+
+ + + + +
size_t lzma_stream::avail_in
+
+

Number of available input bytes in next_in.

+ +
+
+ +

◆ total_in

+ +
+
+ + + + +
uint64_t lzma_stream::total_in
+
+

Total number of bytes read by liblzma.

+ +
+
+ +

◆ next_out

+ +
+
+ + + + +
uint8_t* lzma_stream::next_out
+
+

Pointer to the next output position.

+ +
+
+ +

◆ avail_out

+ +
+
+ + + + +
size_t lzma_stream::avail_out
+
+

Amount of free space in next_out.

+ +
+
+ +

◆ total_out

+ +
+
+ + + + +
uint64_t lzma_stream::total_out
+
+

Total number of bytes written by liblzma.

+ +
+
+ +

◆ allocator

+ +
+
+ + + + +
const lzma_allocator* lzma_stream::allocator
+
+ +

Custom memory allocation functions.

+

In most cases this is NULL which makes liblzma use the standard malloc() and free().

+
Note
In 5.0.x this is not a const pointer.
+ +
+
+ +

◆ internal

+ +
+
+ + + + +
lzma_internal* lzma_stream::internal
+
+

Internal state is not visible to applications.

+ +
+
+ +

◆ seek_pos

+ +
+
+ + + + +
uint64_t lzma_stream::seek_pos
+
+ +

New seek input position for LZMA_SEEK_NEEDED.

+

When lzma_code() returns LZMA_SEEK_NEEDED, the new input position needed by liblzma will be available seek_pos. The value is guaranteed to not exceed the file size that was specified when this lzma_stream was initialized.

+

In all other situations the value of this variable is undefined.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/xz-5.4.5/doc/api/structlzma__stream__flags.html b/xz-5.4.5/doc/api/structlzma__stream__flags.html new file mode 100644 index 000000000..9098ff35e --- /dev/null +++ b/xz-5.4.5/doc/api/structlzma__stream__flags.html @@ -0,0 +1,134 @@ + + + + + + + +liblzma (XZ Utils): lzma_stream_flags Struct Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + +
+
+ +
lzma_stream_flags Struct Reference
+
+
+ +

Options for encoding/decoding Stream Header and Stream Footer. + More...

+ +

#include <stream_flags.h>

+ + + + + + + + + + + +

+Data Fields

uint32_t version
 Stream Flags format version.
 
lzma_vli backward_size
 Backward Size.
 
lzma_check check
 Check ID.
 
+

Detailed Description

+

Options for encoding/decoding Stream Header and Stream Footer.

+

Field Documentation

+ +

◆ version

+ +
+
+ + + + +
uint32_t lzma_stream_flags::version
+
+ +

Stream Flags format version.

+

To prevent API and ABI breakages if new features are needed in Stream Header or Stream Footer, a version number is used to indicate which members in this structure are in use. For now, version must always be zero. With non-zero version, the lzma_stream_header_encode() and lzma_stream_footer_encode() will return LZMA_OPTIONS_ERROR.

+

lzma_stream_header_decode() and lzma_stream_footer_decode() will always set this to the lowest value that supports all the features indicated by the Stream Flags field. The application must check that the version number set by the decoding functions is supported by the application. Otherwise it is possible that the application will decode the Stream incorrectly.

+ +
+
+ +

◆ backward_size

+ +
+
+ + + + +
lzma_vli lzma_stream_flags::backward_size
+
+ +

Backward Size.

+

Backward Size must be a multiple of four bytes. In this Stream format version, Backward Size is the size of the Index field.

+

Backward Size isn't actually part of the Stream Flags field, but it is convenient to include in this structure anyway. Backward Size is present only in the Stream Footer. There is no need to initialize backward_size when encoding Stream Header.

+

lzma_stream_header_decode() always sets backward_size to LZMA_VLI_UNKNOWN so that it is convenient to use lzma_stream_flags_compare() when both Stream Header and Stream Footer have been decoded.

+ +
+
+ +

◆ check

+ +
+
+ + + + +
lzma_check lzma_stream_flags::check
+
+ +

Check ID.

+

This indicates the type of the integrity check calculated from uncompressed data.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ + + + diff --git a/xz-5.4.5/doc/api/sync_off.png b/xz-5.4.5/doc/api/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..9b04abe7b1a4a904dbf01117324af43d05d975df GIT binary patch literal 857 zcmV-f1E&0mP)RK!MmJ8e?sMR33{j#6fWv zFjNabf_iaW%mJ7Jn`joRMY}ky|I-ZUYm>P2KRVYJr#K}(OcmfA@mY#l0Zi2qu}Ql~ z%dctCqN|bT0Zaom*e>xvo55b;1xS>hl?#xRX+|bMGInu5J)#15#Cre+@>j>LV|V@g-+3}EoCs8j*`iLb_L%jMX{ayGt}XMPeM14!!8KVz(`&Ly<96qhsU z+ig?PRiZeOiQo`c$Lcmb{D!^jxs-enFsM*Whf{geRD;H+7 z-Csug@+htBXegs~X@2~=Fvr4~O&*$R4NK`%0bHuJdzFvi1~>K$U$C74Z{|XnKjTM91VyoUvs^yva-`l_G#E+3*{Y(H771%BR>W_*6 zHI>#=KeM^c%ie~_gyQAbfiQnO9K{?NMzpAzboY*sYc=z-+X{@=liv?=_+sy@*yV^i z?7o!72JL~@D~sq{SA@eBozb2P{e-%I1DIg0$H|qp(r8bz+xA`T=j$84>mTV+0a~RI z)Zd+5m`^a^X2EPLA7B2H&#&DFnBbK;F3z=hBeUEV>f@(-e*uOXQ~_R+#x0R$IHasO z99=()oA;kg8er$!4z_*O$MB;efJ95Qe4q}w_yIK@#e&UdAALMLlynD}GqQR1G|aQn z_?qg=w<=j_0ZPOjF%w`KgkvA@589@`r?xi0H2Fw%o|w_j3bnn|c@FTRJ{5;2%gI~B zCnEJR3NVpchz@<{`h=q|w`0ji9W<3m(keirtFeKpZweT%$!4H03q(NFs}mrWNL0YT jRkjk>W1U9cH$bB2-KVUfSrFd;00000NkvXXu0mjfZgZH0 literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/api/sync_on.png b/xz-5.4.5/doc/api/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..34a5b8b9e149a2c7206c5d4c6dbbac350e831648 GIT binary patch literal 851 zcmV-Z1FZasP)}AzI?k0GT`#C&WJSJ75a~ zAW5D0Tr2>11}?EhY!ExeG3!5dz#8v}3;!dzwfV$1;=@b@)`+h%j0)gceJVDY9~{NC zZDw`V^CEy*pgMa-+%ZScDaruS$yd@T^0`=*p#_96#S!;#f`brUxB2fUFvBy!Gsy+0+Uyk3Gab{ao zffax)DocHw*;+>Z^Z5WzwX`&s({1yqsh9(htX}Py8tXR=OM~p+5Wt<2*kJ2k%4c5T za~SF!mKK!(1q&0KZBBtf&!!N2`*P^%AF*v+mBnu^+DGfd9NieSC0DIB>|)33Ubd~A z(!R<| zT^yjhDS+2CHKLAlqx2432NJO`JofyL?6TeGM>%`xPrw#~DnoyAfq|i0G=34` zXmgONc~0`O;$63%aM@Gqq(-;B_a;Nbw*iv%s}ZQ_xgzoaTjIMGA-0;Jq9blGxtdb|+Xvf9e_<0U6Q%A&sr`^f#i9;gw2nEPY zEk>6$x%I-awqN6yPq8{~(_E_n$-a$uOubV;BGQe(+Nwmes8gpv{31~WAE?_({1{If dn{R+*{{hh3sp;)O3Wxvz002ovPDHLkV1m1Wn)Ltx literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/api/tab_a.png b/xz-5.4.5/doc/api/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3181cdfee9651c3d6339c31639918cfc99e8b897 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QhuH;jv*C{Z|9!oZ7|?*&fUI9 zNc@Q4M#kUo!-c*ZyFU?szA~2a?az>N(O;|Pu4(t+Gz<}JFg$saefRsjbMICr>y({2 keD_?Ha`Dc|-{r6HTg5Sl8!xs#0W_Jx)78&qol`;+0372nCjbBd literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/api/tab_ad.png b/xz-5.4.5/doc/api/tab_ad.png new file mode 100644 index 0000000000000000000000000000000000000000..361538649d79e2ff3969b117738b979aadcd799e GIT binary patch literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qa+w8jv*C{Z|7d*ZE)alzFlP5 zyK~3?9orVw?O^77_%v_^V@22JfVaynmN9THSz)yJcFxtD182{rs69V<{rR`kY3cdP jj=jIPu6$|k&)8UpP=;%Hi!-x<<}!G?`njxgN@xNApSv{) literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/api/tab_b.png b/xz-5.4.5/doc/api/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..3feec4f7f44f7772967b906effc107e504ac5441 GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qk9-Ajv*C{Z||PxJmetK@^QOy zHAjcI_eREiF@=Aw9TN^`g@iPnIGvX+mZY4i@NS>ev*YHeC%&5}m?k z<=O5@wcR#%mHV&nyRm&{QTfa6w~;$JPn8CAaEP~?GceBit$%&rRRKP`#eYxjj?sI~ d|9o{GOEIUUNn%{_CZHo2JYD@<);T3K0RUU0L}CB{ literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/api/tab_bd.png b/xz-5.4.5/doc/api/tab_bd.png new file mode 100644 index 0000000000000000000000000000000000000000..9fd6635243f227610c228f7c52e49ddba13168c0 GIT binary patch literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QYoG;jv*C{Z|7d*Z8i{at}V+5 zY19&^33=Mhxa)s`C}-Xw1^@HkUY0rht6BNn=UL$4DuL(zhc{`TefCu?YvQtA2h~%W zy{pZiNBtA~d)sQkGmbXL4XF*~@1p~@?ebmH{$6OxgTG8~q=dz;A2j?9w2#5l)z4*} HQ$iB}aPU5W literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/api/tab_h.png b/xz-5.4.5/doc/api/tab_h.png new file mode 100644 index 0000000000000000000000000000000000000000..abb3d3dc0247c14658879fd0ba0060fc1fd1c04d GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QdOQVjv*C{Z|~maJmetY`f#Qt zW9!lBCJBNUJrtbeTK3G=_?O7qwPE)%o!gsu!$mgs^cUxg8`;d8W}RbXcI)$jS0&3W z)!IGwcI$kfm?gYo+eD+%iBtBb-(ydUUGT!@=&jiu6U@Vnr^<)^{XM^TWopgro=xSg enbn7{P8Z*zFOnH!WYZ3G1%s!npUXO@geCxmMn#kW literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/api/tab_hd.png b/xz-5.4.5/doc/api/tab_hd.png new file mode 100644 index 0000000000000000000000000000000000000000..c59e413501ff1fa233b0e4f45a60bb9862f95946 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qu&@Pjv*C{Z|4Sb9Wsz;zPu#h z8ed9tV}BQ);Co9*5K_@i+_wkmxOCy TdPs8st!D6a^>bP0l+XkK=<7ry literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/api/tab_s.png b/xz-5.4.5/doc/api/tab_s.png new file mode 100644 index 0000000000000000000000000000000000000000..a3f26f55096f52bd0634b9bdb82427ec8cfc670e GIT binary patch literal 208 zcmV;>05AWEP)z10001&NklimRaiSkV;fW7NNVdiA*rq;m1RVEAt}xxO7oCHvN;VgCjt3!NNyDH zJM_s80*tc}O-gbA0000< KMNUMnLSTZaj8qZ; literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/api/tab_sd.png b/xz-5.4.5/doc/api/tab_sd.png new file mode 100644 index 0000000000000000000000000000000000000000..5d4917aedbe97c0d2aa40718ff7d0d8317ddc525 GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QbnFFjv*C{Z|C~*H5rJsEYHv2 zcAL#`km2HyR=t=F38zbU{O8TtXfKmuWdGj#p6G=<>(|G%ESeN5ZdG>v^q5=r>)F{m z_L++%?`{0Q; + + + + + + +liblzma (XZ Utils): lzma/version.h File Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + + +
+
+ +
version.h File Reference
+
+
+ +

Version number. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

+#define LZMA_VERSION_MAJOR   5
 Major version number of the liblzma release.
 
+#define LZMA_VERSION_MINOR   4
 Minor version number of the liblzma release.
 
+#define LZMA_VERSION_PATCH   5
 Patch version number of the liblzma release.
 
#define LZMA_VERSION_STABILITY   LZMA_VERSION_STABILITY_STABLE
 Version stability marker.
 
+#define LZMA_VERSION_COMMIT   ""
 Commit version number of the liblzma release.
 
+#define LZMA_VERSION_STABILITY_ALPHA   0
 
+#define LZMA_VERSION_STABILITY_BETA   1
 
+#define LZMA_VERSION_STABILITY_STABLE   2
 
#define LZMA_VERSION
 Compile-time version number.
 
+#define LZMA_VERSION_STABILITY_STRING   "alpha"
 
+#define LZMA_VERSION_STRING_C_(major, minor, patch, stability, commit)    #major "." #minor "." #patch stability commit
 
+#define LZMA_VERSION_STRING_C(major, minor, patch, stability, commit)    LZMA_VERSION_STRING_C_(major, minor, patch, stability, commit)
 
#define LZMA_VERSION_STRING
 Compile-time version as a string.
 
+ + + + + + + +

+Functions

uint32_t lzma_version_number (void) lzma_nothrow lzma_attr_const
 Run-time version number as an integer.
 
const char * lzma_version_string (void) lzma_nothrow lzma_attr_const
 Run-time version as a string.
 
+

Detailed Description

+

Version number.

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Macro Definition Documentation

+ +

◆ LZMA_VERSION_STABILITY

+ +
+
+ + + + +
#define LZMA_VERSION_STABILITY   LZMA_VERSION_STABILITY_STABLE
+
+ +

Version stability marker.

+

This will always be one of three values:

    +
  • LZMA_VERSION_STABILITY_ALPHA
  • +
  • LZMA_VERSION_STABILITY_BETA
  • +
  • LZMA_VERSION_STABILITY_STABLE
  • +
+ +
+
+ +

◆ LZMA_VERSION

+ +
+
+ + + + +
#define LZMA_VERSION
+
+Value:
(LZMA_VERSION_MAJOR * UINT32_C(10000000) \
+
+ LZMA_VERSION_MINOR * UINT32_C(10000) \
+
+ LZMA_VERSION_PATCH * UINT32_C(10) \
+ +
+

Compile-time version number.

+

The version number is of format xyyyzzzs where

    +
  • x = major
  • +
  • yyy = minor
  • +
  • zzz = revision
  • +
  • s indicates stability: 0 = alpha, 1 = beta, 2 = stable
  • +
+

The same xyyyzzz triplet is never reused with different stability levels. For example, if 5.1.0alpha has been released, there will never be 5.1.0beta or 5.1.0 stable.

+
Note
The version number of liblzma has nothing to with the version number of Igor Pavlov's LZMA SDK.
+ +
+
+ +

◆ LZMA_VERSION_STRING

+ +
+
+ + + + +
#define LZMA_VERSION_STRING
+
+Value:
LZMA_VERSION_STRING_C( \
+ +
LZMA_VERSION_PATCH, LZMA_VERSION_STABILITY_STRING, \
+ +
+

Compile-time version as a string.

+

This can be for example "4.999.5alpha", "4.999.8beta", or "5.0.0" (stable versions don't have any "stable" suffix). In future, a snapshot built from source code repository may include an additional suffix, for example "4.999.8beta-21-g1d92". The commit ID won't be available in numeric form in LZMA_VERSION macro.

+ +
+
+

Function Documentation

+ +

◆ lzma_version_number()

+ +
+
+ + + + + + + + +
uint32_t lzma_version_number (void ) const
+
+ +

Run-time version number as an integer.

+

This allows an application to compare if it was built against the same, older, or newer version of liblzma that is currently running.

+
Returns
The value of LZMA_VERSION macro at the compile time of liblzma
+ +
+
+ +

◆ lzma_version_string()

+ +
+
+ + + + + + + + +
const char * lzma_version_string (void ) const
+
+ +

Run-time version as a string.

+

This function may be useful to display which version of liblzma an application is currently using.

+
Returns
Run-time version of liblzma
+ +
+
+
+ + + + diff --git a/xz-5.4.5/doc/api/vli_8h.html b/xz-5.4.5/doc/api/vli_8h.html new file mode 100644 index 000000000..4e3da1f29 --- /dev/null +++ b/xz-5.4.5/doc/api/vli_8h.html @@ -0,0 +1,323 @@ + + + + + + + +liblzma (XZ Utils): lzma/vli.h File Reference + + + + + + +
+
+ + + + + + +
+
liblzma (XZ Utils) 5.4.5 +
+
+
+ + + + + +
+
+ +
vli.h File Reference
+
+
+ +

Variable-length integer handling. +More...

+ + + + + + + + + + + + + + + + + +

+Macros

+#define LZMA_VLI_MAX   (UINT64_MAX / 2)
 Maximum supported value of a variable-length integer.
 
+#define LZMA_VLI_UNKNOWN   UINT64_MAX
 VLI value to denote that the value is unknown.
 
+#define LZMA_VLI_BYTES_MAX   9
 Maximum supported encoded length of variable length integers.
 
+#define LZMA_VLI_C(n)   UINT64_C(n)
 VLI constant suffix.
 
#define lzma_vli_is_valid(vli)    ((vli) <= LZMA_VLI_MAX || (vli) == LZMA_VLI_UNKNOWN)
 Validate a variable-length integer.
 
+ + + + +

+Typedefs

typedef uint64_t lzma_vli
 Variable-length integer type.
 
+ + + + + + + + + + +

+Functions

lzma_ret lzma_vli_encode (lzma_vli vli, size_t *vli_pos, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow
 Encode a variable-length integer.
 
lzma_ret lzma_vli_decode (lzma_vli *vli, size_t *vli_pos, const uint8_t *in, size_t *in_pos, size_t in_size) lzma_nothrow
 Decode a variable-length integer.
 
uint32_t lzma_vli_size (lzma_vli vli) lzma_nothrow lzma_attr_pure
 Get the number of bytes required to encode a VLI.
 
+

Detailed Description

+

Variable-length integer handling.

+
Note
Never include this file directly. Use <lzma.h> instead.
+

In the .xz format, most integers are encoded in a variable-length representation, which is sometimes called little endian base-128 encoding. This saves space when smaller values are more likely than bigger values.

+

The encoding scheme encodes seven bits to every byte, using minimum number of bytes required to represent the given value. Encodings that use non-minimum number of bytes are invalid, thus every integer has exactly one encoded representation. The maximum number of bits in a VLI is 63, thus the vli argument must be less than or equal to UINT64_MAX / 2. You should use LZMA_VLI_MAX for clarity.

+

Macro Definition Documentation

+ +

◆ lzma_vli_is_valid

+ +
+
+ + + + + + + + +
#define lzma_vli_is_valid( vli)    ((vli) <= LZMA_VLI_MAX || (vli) == LZMA_VLI_UNKNOWN)
+
+ +

Validate a variable-length integer.

+

This is useful to test that application has given acceptable values for example in the uncompressed_size and compressed_size variables.

+
Returns
True if the integer is representable as VLI or if it indicates unknown value. False if the integer cannot be represented as VLI.
+ +
+
+

Typedef Documentation

+ +

◆ lzma_vli

+ +
+
+ + + + +
typedef uint64_t lzma_vli
+
+ +

Variable-length integer type.

+

Valid VLI values are in the range [0, LZMA_VLI_MAX]. Unknown value is indicated with LZMA_VLI_UNKNOWN, which is the maximum value of the underlying integer type.

+

lzma_vli will be uint64_t for the foreseeable future. If a bigger size is needed in the future, it is guaranteed that 2 * LZMA_VLI_MAX will not overflow lzma_vli. This simplifies integer overflow detection.

+ +
+
+

Function Documentation

+ +

◆ lzma_vli_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_vli_encode (lzma_vli vli,
size_t * vli_pos,
uint8_t * out,
size_t * out_pos,
size_t out_size 
)
+
+ +

Encode a variable-length integer.

+

This function has two modes: single-call and multi-call. Single-call mode encodes the whole integer at once; it is an error if the output buffer is too small. Multi-call mode saves the position in *vli_pos, and thus it is possible to continue encoding if the buffer becomes full before the whole integer has been encoded.

+
Parameters
+ + + + + + +
vliInteger to be encoded
[out]vli_posHow many VLI-encoded bytes have already been written out. When starting to encode a new integer in multi-call mode, *vli_pos must be set to zero. To use single-call encoding, set vli_pos to NULL.
[out]outBeginning of the output buffer
[out]out_posThe next byte will be written to out[*out_pos].
out_sizeSize of the out buffer; the first byte into which no data is written to is out[out_size].
+
+
+
Returns
Slightly different return values are used in multi-call and single-call modes.
+

Single-call (vli_pos == NULL):

    +
  • LZMA_OK: Integer successfully encoded.
  • +
  • LZMA_PROG_ERROR: Arguments are not sane. This can be due to too little output space; single-call mode doesn't use LZMA_BUF_ERROR, since the application should have checked the encoded size with lzma_vli_size().
  • +
+

Multi-call (vli_pos != NULL):

    +
  • LZMA_OK: So far all OK, but the integer is not completely written out yet.
  • +
  • LZMA_STREAM_END: Integer successfully encoded.
  • +
  • LZMA_BUF_ERROR: No output space was provided.
  • +
  • LZMA_PROG_ERROR: Arguments are not sane.
  • +
+ +
+
+ +

◆ lzma_vli_decode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_vli_decode (lzma_vlivli,
size_t * vli_pos,
const uint8_t * in,
size_t * in_pos,
size_t in_size 
)
+
+ +

Decode a variable-length integer.

+

Like lzma_vli_encode(), this function has single-call and multi-call modes.

+
Parameters
+ + + + + + +
[out]vliPointer to decoded integer. The decoder will initialize it to zero when *vli_pos == 0, so application isn't required to initialize *vli.
[out]vli_posHow many bytes have already been decoded. When starting to decode a new integer in multi-call mode, *vli_pos must be initialized to zero. To use single-call decoding, set vli_pos to NULL.
inBeginning of the input buffer
[out]in_posThe next byte will be read from in[*in_pos].
in_sizeSize of the input buffer; the first byte that won't be read is in[in_size].
+
+
+
Returns
Slightly different return values are used in multi-call and single-call modes.
+

Single-call (vli_pos == NULL):

    +
  • LZMA_OK: Integer successfully decoded.
  • +
  • LZMA_DATA_ERROR: Integer is corrupt. This includes hitting the end of the input buffer before the whole integer was decoded; providing no input at all will use LZMA_DATA_ERROR.
  • +
  • LZMA_PROG_ERROR: Arguments are not sane.
  • +
+

Multi-call (vli_pos != NULL):

    +
  • LZMA_OK: So far all OK, but the integer is not completely decoded yet.
  • +
  • LZMA_STREAM_END: Integer successfully decoded.
  • +
  • LZMA_DATA_ERROR: Integer is corrupt.
  • +
  • LZMA_BUF_ERROR: No input was provided.
  • +
  • LZMA_PROG_ERROR: Arguments are not sane.
  • +
+ +
+
+ +

◆ lzma_vli_size()

+ +
+
+ + + + + + + + +
uint32_t lzma_vli_size (lzma_vli vli)
+
+ +

Get the number of bytes required to encode a VLI.

+
Parameters
+ + +
vliInteger whose encoded size is to be determined
+
+
+
Returns
Number of bytes on success (1-9). If vli isn't valid, zero is returned.
+ +
+
+
+ + + + diff --git a/xz-5.4.5/doc/examples/00_README.txt b/xz-5.4.5/doc/examples/00_README.txt new file mode 100644 index 000000000..120e1eb7e --- /dev/null +++ b/xz-5.4.5/doc/examples/00_README.txt @@ -0,0 +1,31 @@ + +liblzma example programs +======================== + +Introduction + + The examples are written so that the same comments aren't + repeated (much) in later files. + + On POSIX systems, the examples should build by just typing "make". + + The examples that use stdin or stdout don't set stdin and stdout + to binary mode. On systems where it matters (e.g. Windows) it is + possible that the examples won't work without modification. + + +List of examples + + 01_compress_easy.c Multi-call compression using + a compression preset + + 02_decompress.c Multi-call decompression + + 03_compress_custom.c Like 01_compress_easy.c but using + a custom filter chain + (x86 BCJ + LZMA2) + + 04_compress_easy_mt.c Multi-threaded multi-call + compression using a compression + preset + diff --git a/xz-5.4.5/doc/examples/01_compress_easy.c b/xz-5.4.5/doc/examples/01_compress_easy.c new file mode 100644 index 000000000..ec32a379b --- /dev/null +++ b/xz-5.4.5/doc/examples/01_compress_easy.c @@ -0,0 +1,297 @@ +/////////////////////////////////////////////////////////////////////////////// +// +/// \file 01_compress_easy.c +/// \brief Compress from stdin to stdout in multi-call mode +/// +/// Usage: ./01_compress_easy PRESET < INFILE > OUTFILE +/// +/// Example: ./01_compress_easy 6 < foo > foo.xz +// +// Author: Lasse Collin +// +// This file has been put into the public domain. +// You can do whatever you want with this file. +// +/////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include +#include +#include + + +static void +show_usage_and_exit(const char *argv0) +{ + fprintf(stderr, "Usage: %s PRESET < INFILE > OUTFILE\n" + "PRESET is a number 0-9 and can optionally be " + "followed by `e' to indicate extreme preset\n", + argv0); + exit(EXIT_FAILURE); +} + + +static uint32_t +get_preset(int argc, char **argv) +{ + // One argument whose first char must be 0-9. + if (argc != 2 || argv[1][0] < '0' || argv[1][0] > '9') + show_usage_and_exit(argv[0]); + + // Calculate the preste level 0-9. + uint32_t preset = argv[1][0] - '0'; + + // If there is a second char, it must be 'e'. It will set + // the LZMA_PRESET_EXTREME flag. + if (argv[1][1] != '\0') { + if (argv[1][1] != 'e' || argv[1][2] != '\0') + show_usage_and_exit(argv[0]); + + preset |= LZMA_PRESET_EXTREME; + } + + return preset; +} + + +static bool +init_encoder(lzma_stream *strm, uint32_t preset) +{ + // Initialize the encoder using a preset. Set the integrity to check + // to CRC64, which is the default in the xz command line tool. If + // the .xz file needs to be decompressed with XZ Embedded, use + // LZMA_CHECK_CRC32 instead. + lzma_ret ret = lzma_easy_encoder(strm, preset, LZMA_CHECK_CRC64); + + // Return successfully if the initialization went fine. + if (ret == LZMA_OK) + return true; + + // Something went wrong. The possible errors are documented in + // lzma/container.h (src/liblzma/api/lzma/container.h in the source + // package or e.g. /usr/include/lzma/container.h depending on the + // install prefix). + const char *msg; + switch (ret) { + case LZMA_MEM_ERROR: + msg = "Memory allocation failed"; + break; + + case LZMA_OPTIONS_ERROR: + msg = "Specified preset is not supported"; + break; + + case LZMA_UNSUPPORTED_CHECK: + msg = "Specified integrity check is not supported"; + break; + + default: + // This is most likely LZMA_PROG_ERROR indicating a bug in + // this program or in liblzma. It is inconvenient to have a + // separate error message for errors that should be impossible + // to occur, but knowing the error code is important for + // debugging. That's why it is good to print the error code + // at least when there is no good error message to show. + msg = "Unknown error, possibly a bug"; + break; + } + + fprintf(stderr, "Error initializing the encoder: %s (error code %u)\n", + msg, ret); + return false; +} + + +static bool +compress(lzma_stream *strm, FILE *infile, FILE *outfile) +{ + // This will be LZMA_RUN until the end of the input file is reached. + // This tells lzma_code() when there will be no more input. + lzma_action action = LZMA_RUN; + + // Buffers to temporarily hold uncompressed input + // and compressed output. + uint8_t inbuf[BUFSIZ]; + uint8_t outbuf[BUFSIZ]; + + // Initialize the input and output pointers. Initializing next_in + // and avail_in isn't really necessary when we are going to encode + // just one file since LZMA_STREAM_INIT takes care of initializing + // those already. But it doesn't hurt much and it will be needed + // if encoding more than one file like we will in 02_decompress.c. + // + // While we don't care about strm->total_in or strm->total_out in this + // example, it is worth noting that initializing the encoder will + // always reset total_in and total_out to zero. But the encoder + // initialization doesn't touch next_in, avail_in, next_out, or + // avail_out. + strm->next_in = NULL; + strm->avail_in = 0; + strm->next_out = outbuf; + strm->avail_out = sizeof(outbuf); + + // Loop until the file has been successfully compressed or until + // an error occurs. + while (true) { + // Fill the input buffer if it is empty. + if (strm->avail_in == 0 && !feof(infile)) { + strm->next_in = inbuf; + strm->avail_in = fread(inbuf, 1, sizeof(inbuf), + infile); + + if (ferror(infile)) { + fprintf(stderr, "Read error: %s\n", + strerror(errno)); + return false; + } + + // Once the end of the input file has been reached, + // we need to tell lzma_code() that no more input + // will be coming and that it should finish the + // encoding. + if (feof(infile)) + action = LZMA_FINISH; + } + + // Tell liblzma do the actual encoding. + // + // This reads up to strm->avail_in bytes of input starting + // from strm->next_in. avail_in will be decremented and + // next_in incremented by an equal amount to match the + // number of input bytes consumed. + // + // Up to strm->avail_out bytes of compressed output will be + // written starting from strm->next_out. avail_out and next_out + // will be incremented by an equal amount to match the number + // of output bytes written. + // + // The encoder has to do internal buffering, which means that + // it may take quite a bit of input before the same data is + // available in compressed form in the output buffer. + lzma_ret ret = lzma_code(strm, action); + + // If the output buffer is full or if the compression finished + // successfully, write the data from the output buffer to + // the output file. + if (strm->avail_out == 0 || ret == LZMA_STREAM_END) { + // When lzma_code() has returned LZMA_STREAM_END, + // the output buffer is likely to be only partially + // full. Calculate how much new data there is to + // be written to the output file. + size_t write_size = sizeof(outbuf) - strm->avail_out; + + if (fwrite(outbuf, 1, write_size, outfile) + != write_size) { + fprintf(stderr, "Write error: %s\n", + strerror(errno)); + return false; + } + + // Reset next_out and avail_out. + strm->next_out = outbuf; + strm->avail_out = sizeof(outbuf); + } + + // Normally the return value of lzma_code() will be LZMA_OK + // until everything has been encoded. + if (ret != LZMA_OK) { + // Once everything has been encoded successfully, the + // return value of lzma_code() will be LZMA_STREAM_END. + // + // It is important to check for LZMA_STREAM_END. Do not + // assume that getting ret != LZMA_OK would mean that + // everything has gone well. + if (ret == LZMA_STREAM_END) + return true; + + // It's not LZMA_OK nor LZMA_STREAM_END, + // so it must be an error code. See lzma/base.h + // (src/liblzma/api/lzma/base.h in the source package + // or e.g. /usr/include/lzma/base.h depending on the + // install prefix) for the list and documentation of + // possible values. Most values listen in lzma_ret + // enumeration aren't possible in this example. + const char *msg; + switch (ret) { + case LZMA_MEM_ERROR: + msg = "Memory allocation failed"; + break; + + case LZMA_DATA_ERROR: + // This error is returned if the compressed + // or uncompressed size get near 8 EiB + // (2^63 bytes) because that's where the .xz + // file format size limits currently are. + // That is, the possibility of this error + // is mostly theoretical unless you are doing + // something very unusual. + // + // Note that strm->total_in and strm->total_out + // have nothing to do with this error. Changing + // those variables won't increase or decrease + // the chance of getting this error. + msg = "File size limits exceeded"; + break; + + default: + // This is most likely LZMA_PROG_ERROR, but + // if this program is buggy (or liblzma has + // a bug), it may be e.g. LZMA_BUF_ERROR or + // LZMA_OPTIONS_ERROR too. + // + // It is inconvenient to have a separate + // error message for errors that should be + // impossible to occur, but knowing the error + // code is important for debugging. That's why + // it is good to print the error code at least + // when there is no good error message to show. + msg = "Unknown error, possibly a bug"; + break; + } + + fprintf(stderr, "Encoder error: %s (error code %u)\n", + msg, ret); + return false; + } + } +} + + +extern int +main(int argc, char **argv) +{ + // Get the preset number from the command line. + uint32_t preset = get_preset(argc, argv); + + // Initialize a lzma_stream structure. When it is allocated on stack, + // it is simplest to use LZMA_STREAM_INIT macro like below. When it + // is allocated on heap, using memset(strmptr, 0, sizeof(*strmptr)) + // works (as long as NULL pointers are represented with zero bits + // as they are on practically all computers today). + lzma_stream strm = LZMA_STREAM_INIT; + + // Initialize the encoder. If it succeeds, compress from + // stdin to stdout. + bool success = init_encoder(&strm, preset); + if (success) + success = compress(&strm, stdin, stdout); + + // Free the memory allocated for the encoder. If we were encoding + // multiple files, this would only need to be done after the last + // file. See 02_decompress.c for handling of multiple files. + // + // It is OK to call lzma_end() multiple times or when it hasn't been + // actually used except initialized with LZMA_STREAM_INIT. + lzma_end(&strm); + + // Close stdout to catch possible write errors that can occur + // when pending data is flushed from the stdio buffers. + if (fclose(stdout)) { + fprintf(stderr, "Write error: %s\n", strerror(errno)); + success = false; + } + + return success ? EXIT_SUCCESS : EXIT_FAILURE; +} diff --git a/xz-5.4.5/doc/examples/02_decompress.c b/xz-5.4.5/doc/examples/02_decompress.c new file mode 100644 index 000000000..98339befa --- /dev/null +++ b/xz-5.4.5/doc/examples/02_decompress.c @@ -0,0 +1,287 @@ +/////////////////////////////////////////////////////////////////////////////// +// +/// \file 02_decompress.c +/// \brief Decompress .xz files to stdout +/// +/// Usage: ./02_decompress INPUT_FILES... > OUTFILE +/// +/// Example: ./02_decompress foo.xz bar.xz > foobar +// +// Author: Lasse Collin +// +// This file has been put into the public domain. +// You can do whatever you want with this file. +// +/////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include +#include +#include + + +static bool +init_decoder(lzma_stream *strm) +{ + // Initialize a .xz decoder. The decoder supports a memory usage limit + // and a set of flags. + // + // The memory usage of the decompressor depends on the settings used + // to compress a .xz file. It can vary from less than a megabyte to + // a few gigabytes, but in practice (at least for now) it rarely + // exceeds 65 MiB because that's how much memory is required to + // decompress files created with "xz -9". Settings requiring more + // memory take extra effort to use and don't (at least for now) + // provide significantly better compression in most cases. + // + // Memory usage limit is useful if it is important that the + // decompressor won't consume gigabytes of memory. The need + // for limiting depends on the application. In this example, + // no memory usage limiting is used. This is done by setting + // the limit to UINT64_MAX. + // + // The .xz format allows concatenating compressed files as is: + // + // echo foo | xz > foobar.xz + // echo bar | xz >> foobar.xz + // + // When decompressing normal standalone .xz files, LZMA_CONCATENATED + // should always be used to support decompression of concatenated + // .xz files. If LZMA_CONCATENATED isn't used, the decoder will stop + // after the first .xz stream. This can be useful when .xz data has + // been embedded inside another file format. + // + // Flags other than LZMA_CONCATENATED are supported too, and can + // be combined with bitwise-or. See lzma/container.h + // (src/liblzma/api/lzma/container.h in the source package or e.g. + // /usr/include/lzma/container.h depending on the install prefix) + // for details. + lzma_ret ret = lzma_stream_decoder( + strm, UINT64_MAX, LZMA_CONCATENATED); + + // Return successfully if the initialization went fine. + if (ret == LZMA_OK) + return true; + + // Something went wrong. The possible errors are documented in + // lzma/container.h (src/liblzma/api/lzma/container.h in the source + // package or e.g. /usr/include/lzma/container.h depending on the + // install prefix). + // + // Note that LZMA_MEMLIMIT_ERROR is never possible here. If you + // specify a very tiny limit, the error will be delayed until + // the first headers have been parsed by a call to lzma_code(). + const char *msg; + switch (ret) { + case LZMA_MEM_ERROR: + msg = "Memory allocation failed"; + break; + + case LZMA_OPTIONS_ERROR: + msg = "Unsupported decompressor flags"; + break; + + default: + // This is most likely LZMA_PROG_ERROR indicating a bug in + // this program or in liblzma. It is inconvenient to have a + // separate error message for errors that should be impossible + // to occur, but knowing the error code is important for + // debugging. That's why it is good to print the error code + // at least when there is no good error message to show. + msg = "Unknown error, possibly a bug"; + break; + } + + fprintf(stderr, "Error initializing the decoder: %s (error code %u)\n", + msg, ret); + return false; +} + + +static bool +decompress(lzma_stream *strm, const char *inname, FILE *infile, FILE *outfile) +{ + // When LZMA_CONCATENATED flag was used when initializing the decoder, + // we need to tell lzma_code() when there will be no more input. + // This is done by setting action to LZMA_FINISH instead of LZMA_RUN + // in the same way as it is done when encoding. + // + // When LZMA_CONCATENATED isn't used, there is no need to use + // LZMA_FINISH to tell when all the input has been read, but it + // is still OK to use it if you want. When LZMA_CONCATENATED isn't + // used, the decoder will stop after the first .xz stream. In that + // case some unused data may be left in strm->next_in. + lzma_action action = LZMA_RUN; + + uint8_t inbuf[BUFSIZ]; + uint8_t outbuf[BUFSIZ]; + + strm->next_in = NULL; + strm->avail_in = 0; + strm->next_out = outbuf; + strm->avail_out = sizeof(outbuf); + + while (true) { + if (strm->avail_in == 0 && !feof(infile)) { + strm->next_in = inbuf; + strm->avail_in = fread(inbuf, 1, sizeof(inbuf), + infile); + + if (ferror(infile)) { + fprintf(stderr, "%s: Read error: %s\n", + inname, strerror(errno)); + return false; + } + + // Once the end of the input file has been reached, + // we need to tell lzma_code() that no more input + // will be coming. As said before, this isn't required + // if the LZMA_CONCATENATED flag isn't used when + // initializing the decoder. + if (feof(infile)) + action = LZMA_FINISH; + } + + lzma_ret ret = lzma_code(strm, action); + + if (strm->avail_out == 0 || ret == LZMA_STREAM_END) { + size_t write_size = sizeof(outbuf) - strm->avail_out; + + if (fwrite(outbuf, 1, write_size, outfile) + != write_size) { + fprintf(stderr, "Write error: %s\n", + strerror(errno)); + return false; + } + + strm->next_out = outbuf; + strm->avail_out = sizeof(outbuf); + } + + if (ret != LZMA_OK) { + // Once everything has been decoded successfully, the + // return value of lzma_code() will be LZMA_STREAM_END. + // + // It is important to check for LZMA_STREAM_END. Do not + // assume that getting ret != LZMA_OK would mean that + // everything has gone well or that when you aren't + // getting more output it must have successfully + // decoded everything. + if (ret == LZMA_STREAM_END) + return true; + + // It's not LZMA_OK nor LZMA_STREAM_END, + // so it must be an error code. See lzma/base.h + // (src/liblzma/api/lzma/base.h in the source package + // or e.g. /usr/include/lzma/base.h depending on the + // install prefix) for the list and documentation of + // possible values. Many values listen in lzma_ret + // enumeration aren't possible in this example, but + // can be made possible by enabling memory usage limit + // or adding flags to the decoder initialization. + const char *msg; + switch (ret) { + case LZMA_MEM_ERROR: + msg = "Memory allocation failed"; + break; + + case LZMA_FORMAT_ERROR: + // .xz magic bytes weren't found. + msg = "The input is not in the .xz format"; + break; + + case LZMA_OPTIONS_ERROR: + // For example, the headers specify a filter + // that isn't supported by this liblzma + // version (or it hasn't been enabled when + // building liblzma, but no-one sane does + // that unless building liblzma for an + // embedded system). Upgrading to a newer + // liblzma might help. + // + // Note that it is unlikely that the file has + // accidentally became corrupt if you get this + // error. The integrity of the .xz headers is + // always verified with a CRC32, so + // unintentionally corrupt files can be + // distinguished from unsupported files. + msg = "Unsupported compression options"; + break; + + case LZMA_DATA_ERROR: + msg = "Compressed file is corrupt"; + break; + + case LZMA_BUF_ERROR: + // Typically this error means that a valid + // file has got truncated, but it might also + // be a damaged part in the file that makes + // the decoder think the file is truncated. + // If you prefer, you can use the same error + // message for this as for LZMA_DATA_ERROR. + msg = "Compressed file is truncated or " + "otherwise corrupt"; + break; + + default: + // This is most likely LZMA_PROG_ERROR. + msg = "Unknown error, possibly a bug"; + break; + } + + fprintf(stderr, "%s: Decoder error: " + "%s (error code %u)\n", + inname, msg, ret); + return false; + } + } +} + + +extern int +main(int argc, char **argv) +{ + if (argc <= 1) { + fprintf(stderr, "Usage: %s FILES...\n", argv[0]); + return EXIT_FAILURE; + } + + lzma_stream strm = LZMA_STREAM_INIT; + + bool success = true; + + // Try to decompress all files. + for (int i = 1; i < argc; ++i) { + if (!init_decoder(&strm)) { + // Decoder initialization failed. There's no point + // to retry it so we need to exit. + success = false; + break; + } + + FILE *infile = fopen(argv[i], "rb"); + + if (infile == NULL) { + fprintf(stderr, "%s: Error opening the " + "input file: %s\n", + argv[i], strerror(errno)); + success = false; + } else { + success &= decompress(&strm, argv[i], infile, stdout); + fclose(infile); + } + } + + // Free the memory allocated for the decoder. This only needs to be + // done after the last file. + lzma_end(&strm); + + if (fclose(stdout)) { + fprintf(stderr, "Write error: %s\n", strerror(errno)); + success = false; + } + + return success ? EXIT_SUCCESS : EXIT_FAILURE; +} diff --git a/xz-5.4.5/doc/examples/03_compress_custom.c b/xz-5.4.5/doc/examples/03_compress_custom.c new file mode 100644 index 000000000..40c85e365 --- /dev/null +++ b/xz-5.4.5/doc/examples/03_compress_custom.c @@ -0,0 +1,193 @@ +/////////////////////////////////////////////////////////////////////////////// +// +/// \file 03_compress_custom.c +/// \brief Compress in multi-call mode using x86 BCJ and LZMA2 +/// +/// Usage: ./03_compress_custom < INFILE > OUTFILE +/// +/// Example: ./03_compress_custom < foo > foo.xz +// +// Author: Lasse Collin +// +// This file has been put into the public domain. +// You can do whatever you want with this file. +// +/////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include +#include +#include + + +static bool +init_encoder(lzma_stream *strm) +{ + // Use the default preset (6) for LZMA2. + // + // The lzma_options_lzma structure and the lzma_lzma_preset() function + // are declared in lzma/lzma12.h (src/liblzma/api/lzma/lzma12.h in the + // source package or e.g. /usr/include/lzma/lzma12.h depending on + // the install prefix). + lzma_options_lzma opt_lzma2; + if (lzma_lzma_preset(&opt_lzma2, LZMA_PRESET_DEFAULT)) { + // It should never fail because the default preset + // (and presets 0-9 optionally with LZMA_PRESET_EXTREME) + // are supported by all stable liblzma versions. + // + // (The encoder initialization later in this function may + // still fail due to unsupported preset *if* the features + // required by the preset have been disabled at build time, + // but no-one does such things except on embedded systems.) + fprintf(stderr, "Unsupported preset, possibly a bug\n"); + return false; + } + + // Now we could customize the LZMA2 options if we wanted. For example, + // we could set the the dictionary size (opt_lzma2.dict_size) to + // something else than the default (8 MiB) of the default preset. + // See lzma/lzma12.h for details of all LZMA2 options. + // + // The x86 BCJ filter will try to modify the x86 instruction stream so + // that LZMA2 can compress it better. The x86 BCJ filter doesn't need + // any options so it will be set to NULL below. + // + // Construct the filter chain. The uncompressed data goes first to + // the first filter in the array, in this case the x86 BCJ filter. + // The array is always terminated by setting .id = LZMA_VLI_UNKNOWN. + // + // See lzma/filter.h for more information about the lzma_filter + // structure. + lzma_filter filters[] = { + { .id = LZMA_FILTER_X86, .options = NULL }, + { .id = LZMA_FILTER_LZMA2, .options = &opt_lzma2 }, + { .id = LZMA_VLI_UNKNOWN, .options = NULL }, + }; + + // Initialize the encoder using the custom filter chain. + lzma_ret ret = lzma_stream_encoder(strm, filters, LZMA_CHECK_CRC64); + + if (ret == LZMA_OK) + return true; + + const char *msg; + switch (ret) { + case LZMA_MEM_ERROR: + msg = "Memory allocation failed"; + break; + + case LZMA_OPTIONS_ERROR: + // We are no longer using a plain preset so this error + // message has been edited accordingly compared to + // 01_compress_easy.c. + msg = "Specified filter chain is not supported"; + break; + + case LZMA_UNSUPPORTED_CHECK: + msg = "Specified integrity check is not supported"; + break; + + default: + msg = "Unknown error, possibly a bug"; + break; + } + + fprintf(stderr, "Error initializing the encoder: %s (error code %u)\n", + msg, ret); + return false; +} + + +// This function is identical to the one in 01_compress_easy.c. +static bool +compress(lzma_stream *strm, FILE *infile, FILE *outfile) +{ + lzma_action action = LZMA_RUN; + + uint8_t inbuf[BUFSIZ]; + uint8_t outbuf[BUFSIZ]; + + strm->next_in = NULL; + strm->avail_in = 0; + strm->next_out = outbuf; + strm->avail_out = sizeof(outbuf); + + while (true) { + if (strm->avail_in == 0 && !feof(infile)) { + strm->next_in = inbuf; + strm->avail_in = fread(inbuf, 1, sizeof(inbuf), + infile); + + if (ferror(infile)) { + fprintf(stderr, "Read error: %s\n", + strerror(errno)); + return false; + } + + if (feof(infile)) + action = LZMA_FINISH; + } + + lzma_ret ret = lzma_code(strm, action); + + if (strm->avail_out == 0 || ret == LZMA_STREAM_END) { + size_t write_size = sizeof(outbuf) - strm->avail_out; + + if (fwrite(outbuf, 1, write_size, outfile) + != write_size) { + fprintf(stderr, "Write error: %s\n", + strerror(errno)); + return false; + } + + strm->next_out = outbuf; + strm->avail_out = sizeof(outbuf); + } + + if (ret != LZMA_OK) { + if (ret == LZMA_STREAM_END) + return true; + + const char *msg; + switch (ret) { + case LZMA_MEM_ERROR: + msg = "Memory allocation failed"; + break; + + case LZMA_DATA_ERROR: + msg = "File size limits exceeded"; + break; + + default: + msg = "Unknown error, possibly a bug"; + break; + } + + fprintf(stderr, "Encoder error: %s (error code %u)\n", + msg, ret); + return false; + } + } +} + + +extern int +main(void) +{ + lzma_stream strm = LZMA_STREAM_INIT; + + bool success = init_encoder(&strm); + if (success) + success = compress(&strm, stdin, stdout); + + lzma_end(&strm); + + if (fclose(stdout)) { + fprintf(stderr, "Write error: %s\n", strerror(errno)); + success = false; + } + + return success ? EXIT_SUCCESS : EXIT_FAILURE; +} diff --git a/xz-5.4.5/doc/examples/04_compress_easy_mt.c b/xz-5.4.5/doc/examples/04_compress_easy_mt.c new file mode 100644 index 000000000..efe56975c --- /dev/null +++ b/xz-5.4.5/doc/examples/04_compress_easy_mt.c @@ -0,0 +1,206 @@ +/////////////////////////////////////////////////////////////////////////////// +// +/// \file 04_compress_easy_mt.c +/// \brief Compress in multi-call mode using LZMA2 in multi-threaded mode +/// +/// Usage: ./04_compress_easy_mt < INFILE > OUTFILE +/// +/// Example: ./04_compress_easy_mt < foo > foo.xz +// +// Author: Lasse Collin +// +// This file has been put into the public domain. +// You can do whatever you want with this file. +// +/////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include +#include +#include + + +static bool +init_encoder(lzma_stream *strm) +{ + // The threaded encoder takes the options as pointer to + // a lzma_mt structure. + lzma_mt mt = { + // No flags are needed. + .flags = 0, + + // Let liblzma determine a sane block size. + .block_size = 0, + + // Use no timeout for lzma_code() calls by setting timeout + // to zero. That is, sometimes lzma_code() might block for + // a long time (from several seconds to even minutes). + // If this is not OK, for example due to progress indicator + // needing updates, specify a timeout in milliseconds here. + // See the documentation of lzma_mt in lzma/container.h for + // information how to choose a reasonable timeout. + .timeout = 0, + + // Use the default preset (6) for LZMA2. + // To use a preset, filters must be set to NULL. + .preset = LZMA_PRESET_DEFAULT, + .filters = NULL, + + // Use CRC64 for integrity checking. See also + // 01_compress_easy.c about choosing the integrity check. + .check = LZMA_CHECK_CRC64, + }; + + // Detect how many threads the CPU supports. + mt.threads = lzma_cputhreads(); + + // If the number of CPU cores/threads cannot be detected, + // use one thread. Note that this isn't the same as the normal + // single-threaded mode as this will still split the data into + // blocks and use more RAM than the normal single-threaded mode. + // You may want to consider using lzma_easy_encoder() or + // lzma_stream_encoder() instead of lzma_stream_encoder_mt() if + // lzma_cputhreads() returns 0 or 1. + if (mt.threads == 0) + mt.threads = 1; + + // If the number of CPU cores/threads exceeds threads_max, + // limit the number of threads to keep memory usage lower. + // The number 8 is arbitrarily chosen and may be too low or + // high depending on the compression preset and the computer + // being used. + // + // FIXME: A better way could be to check the amount of RAM + // (or available RAM) and use lzma_stream_encoder_mt_memusage() + // to determine if the number of threads should be reduced. + const uint32_t threads_max = 8; + if (mt.threads > threads_max) + mt.threads = threads_max; + + // Initialize the threaded encoder. + lzma_ret ret = lzma_stream_encoder_mt(strm, &mt); + + if (ret == LZMA_OK) + return true; + + const char *msg; + switch (ret) { + case LZMA_MEM_ERROR: + msg = "Memory allocation failed"; + break; + + case LZMA_OPTIONS_ERROR: + // We are no longer using a plain preset so this error + // message has been edited accordingly compared to + // 01_compress_easy.c. + msg = "Specified filter chain is not supported"; + break; + + case LZMA_UNSUPPORTED_CHECK: + msg = "Specified integrity check is not supported"; + break; + + default: + msg = "Unknown error, possibly a bug"; + break; + } + + fprintf(stderr, "Error initializing the encoder: %s (error code %u)\n", + msg, ret); + return false; +} + + +// This function is identical to the one in 01_compress_easy.c. +static bool +compress(lzma_stream *strm, FILE *infile, FILE *outfile) +{ + lzma_action action = LZMA_RUN; + + uint8_t inbuf[BUFSIZ]; + uint8_t outbuf[BUFSIZ]; + + strm->next_in = NULL; + strm->avail_in = 0; + strm->next_out = outbuf; + strm->avail_out = sizeof(outbuf); + + while (true) { + if (strm->avail_in == 0 && !feof(infile)) { + strm->next_in = inbuf; + strm->avail_in = fread(inbuf, 1, sizeof(inbuf), + infile); + + if (ferror(infile)) { + fprintf(stderr, "Read error: %s\n", + strerror(errno)); + return false; + } + + if (feof(infile)) + action = LZMA_FINISH; + } + + lzma_ret ret = lzma_code(strm, action); + + if (strm->avail_out == 0 || ret == LZMA_STREAM_END) { + size_t write_size = sizeof(outbuf) - strm->avail_out; + + if (fwrite(outbuf, 1, write_size, outfile) + != write_size) { + fprintf(stderr, "Write error: %s\n", + strerror(errno)); + return false; + } + + strm->next_out = outbuf; + strm->avail_out = sizeof(outbuf); + } + + if (ret != LZMA_OK) { + if (ret == LZMA_STREAM_END) + return true; + + const char *msg; + switch (ret) { + case LZMA_MEM_ERROR: + msg = "Memory allocation failed"; + break; + + case LZMA_DATA_ERROR: + msg = "File size limits exceeded"; + break; + + default: + msg = "Unknown error, possibly a bug"; + break; + } + + fprintf(stderr, "Encoder error: %s (error code %u)\n", + msg, ret); + return false; + } + } +} + + +extern int +main(void) +{ + lzma_stream strm = LZMA_STREAM_INIT; + + bool success = init_encoder(&strm); + if (success) + success = compress(&strm, stdin, stdout); + + lzma_end(&strm); + + if (fclose(stdout)) { + fprintf(stderr, "Write error: %s\n", strerror(errno)); + success = false; + } + + return success ? EXIT_SUCCESS : EXIT_FAILURE; +} diff --git a/xz-5.4.5/doc/examples/Makefile b/xz-5.4.5/doc/examples/Makefile new file mode 100644 index 000000000..e8839d881 --- /dev/null +++ b/xz-5.4.5/doc/examples/Makefile @@ -0,0 +1,25 @@ +# +# Author: Lasse Collin +# +# This file has been put into the public domain. +# You can do whatever you want with this file. +# + +CC = c99 +CFLAGS = -g +LDFLAGS = -llzma + +PROGS = \ + 01_compress_easy \ + 02_decompress \ + 03_compress_custom \ + 04_compress_easy_mt \ + 11_file_info + +all: $(PROGS) + +.c: + $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) + +clean: + -rm -f $(PROGS) diff --git a/xz-5.4.5/doc/examples_old/xz_pipe_comp.c b/xz-5.4.5/doc/examples_old/xz_pipe_comp.c new file mode 100644 index 000000000..9f9224bca --- /dev/null +++ b/xz-5.4.5/doc/examples_old/xz_pipe_comp.c @@ -0,0 +1,127 @@ +/* + * xz_pipe_comp.c + * A simple example of pipe-only xz compressor implementation. + * version: 2010-07-12 - by Daniel Mealha Cabrita + * Not copyrighted -- provided to the public domain. + * + * Compiling: + * Link with liblzma. GCC example: + * $ gcc -llzma xz_pipe_comp.c -o xz_pipe_comp + * + * Usage example: + * $ cat some_file | ./xz_pipe_comp > some_file.xz + */ + +#include +#include +#include +#include +#include + + +/* COMPRESSION SETTINGS */ + +/* analogous to xz CLI options: -0 to -9 */ +#define COMPRESSION_LEVEL 6 + +/* boolean setting, analogous to xz CLI option: -e */ +#define COMPRESSION_EXTREME true + +/* see: /usr/include/lzma/check.h LZMA_CHECK_* */ +#define INTEGRITY_CHECK LZMA_CHECK_CRC64 + + +/* read/write buffer sizes */ +#define IN_BUF_MAX 4096 +#define OUT_BUF_MAX 4096 + +/* error codes */ +#define RET_OK 0 +#define RET_ERROR_INIT 1 +#define RET_ERROR_INPUT 2 +#define RET_ERROR_OUTPUT 3 +#define RET_ERROR_COMPRESSION 4 + + +/* note: in_file and out_file must be open already */ +int xz_compress (FILE *in_file, FILE *out_file) +{ + uint32_t preset = COMPRESSION_LEVEL | (COMPRESSION_EXTREME ? LZMA_PRESET_EXTREME : 0); + lzma_check check = INTEGRITY_CHECK; + lzma_stream strm = LZMA_STREAM_INIT; /* alloc and init lzma_stream struct */ + uint8_t in_buf [IN_BUF_MAX]; + uint8_t out_buf [OUT_BUF_MAX]; + size_t in_len; /* length of useful data in in_buf */ + size_t out_len; /* length of useful data in out_buf */ + bool in_finished = false; + bool out_finished = false; + lzma_action action; + lzma_ret ret_xz; + int ret; + + ret = RET_OK; + + /* initialize xz encoder */ + ret_xz = lzma_easy_encoder (&strm, preset, check); + if (ret_xz != LZMA_OK) { + fprintf (stderr, "lzma_easy_encoder error: %d\n", (int) ret_xz); + return RET_ERROR_INIT; + } + + while ((! in_finished) && (! out_finished)) { + /* read incoming data */ + in_len = fread (in_buf, 1, IN_BUF_MAX, in_file); + + if (feof (in_file)) { + in_finished = true; + } + if (ferror (in_file)) { + in_finished = true; + ret = RET_ERROR_INPUT; + } + + strm.next_in = in_buf; + strm.avail_in = in_len; + + /* if no more data from in_buf, flushes the + internal xz buffers and closes the xz data + with LZMA_FINISH */ + action = in_finished ? LZMA_FINISH : LZMA_RUN; + + /* loop until there's no pending compressed output */ + do { + /* out_buf is clean at this point */ + strm.next_out = out_buf; + strm.avail_out = OUT_BUF_MAX; + + /* compress data */ + ret_xz = lzma_code (&strm, action); + + if ((ret_xz != LZMA_OK) && (ret_xz != LZMA_STREAM_END)) { + fprintf (stderr, "lzma_code error: %d\n", (int) ret_xz); + out_finished = true; + ret = RET_ERROR_COMPRESSION; + } else { + /* write compressed data */ + out_len = OUT_BUF_MAX - strm.avail_out; + fwrite (out_buf, 1, out_len, out_file); + if (ferror (out_file)) { + out_finished = true; + ret = RET_ERROR_OUTPUT; + } + } + } while (strm.avail_out == 0); + } + + lzma_end (&strm); + return ret; +} + +int main () +{ + int ret; + + ret = xz_compress (stdin, stdout); + return ret; +} + diff --git a/xz-5.4.5/doc/examples_old/xz_pipe_decomp.c b/xz-5.4.5/doc/examples_old/xz_pipe_decomp.c new file mode 100644 index 000000000..fb5ad8951 --- /dev/null +++ b/xz-5.4.5/doc/examples_old/xz_pipe_decomp.c @@ -0,0 +1,123 @@ +/* + * xz_pipe_decomp.c + * A simple example of pipe-only xz decompressor implementation. + * version: 2012-06-14 - by Daniel Mealha Cabrita + * Not copyrighted -- provided to the public domain. + * + * Compiling: + * Link with liblzma. GCC example: + * $ gcc -llzma xz_pipe_decomp.c -o xz_pipe_decomp + * + * Usage example: + * $ cat some_file.xz | ./xz_pipe_decomp > some_file + */ + +#include +#include +#include +#include +#include + + +/* read/write buffer sizes */ +#define IN_BUF_MAX 4096 +#define OUT_BUF_MAX 4096 + +/* error codes */ +#define RET_OK 0 +#define RET_ERROR_INIT 1 +#define RET_ERROR_INPUT 2 +#define RET_ERROR_OUTPUT 3 +#define RET_ERROR_DECOMPRESSION 4 + + +/* note: in_file and out_file must be open already */ +int xz_decompress (FILE *in_file, FILE *out_file) +{ + lzma_stream strm = LZMA_STREAM_INIT; /* alloc and init lzma_stream struct */ + const uint32_t flags = LZMA_TELL_UNSUPPORTED_CHECK | LZMA_CONCATENATED; + const uint64_t memory_limit = UINT64_MAX; /* no memory limit */ + uint8_t in_buf [IN_BUF_MAX]; + uint8_t out_buf [OUT_BUF_MAX]; + size_t in_len; /* length of useful data in in_buf */ + size_t out_len; /* length of useful data in out_buf */ + bool in_finished = false; + bool out_finished = false; + lzma_action action; + lzma_ret ret_xz; + int ret; + + ret = RET_OK; + + /* initialize xz decoder */ + ret_xz = lzma_stream_decoder (&strm, memory_limit, flags); + if (ret_xz != LZMA_OK) { + fprintf (stderr, "lzma_stream_decoder error: %d\n", (int) ret_xz); + return RET_ERROR_INIT; + } + + while ((! in_finished) && (! out_finished)) { + /* read incoming data */ + in_len = fread (in_buf, 1, IN_BUF_MAX, in_file); + + if (feof (in_file)) { + in_finished = true; + } + if (ferror (in_file)) { + in_finished = true; + ret = RET_ERROR_INPUT; + } + + strm.next_in = in_buf; + strm.avail_in = in_len; + + /* if no more data from in_buf, flushes the + internal xz buffers and closes the decompressed data + with LZMA_FINISH */ + action = in_finished ? LZMA_FINISH : LZMA_RUN; + + /* loop until there's no pending decompressed output */ + do { + /* out_buf is clean at this point */ + strm.next_out = out_buf; + strm.avail_out = OUT_BUF_MAX; + + /* decompress data */ + ret_xz = lzma_code (&strm, action); + + if ((ret_xz != LZMA_OK) && (ret_xz != LZMA_STREAM_END)) { + fprintf (stderr, "lzma_code error: %d\n", (int) ret_xz); + out_finished = true; + ret = RET_ERROR_DECOMPRESSION; + } else { + /* write decompressed data */ + out_len = OUT_BUF_MAX - strm.avail_out; + fwrite (out_buf, 1, out_len, out_file); + if (ferror (out_file)) { + out_finished = true; + ret = RET_ERROR_OUTPUT; + } + } + } while (strm.avail_out == 0); + } + + /* Bug fix (2012-06-14): If no errors were detected, check + that the last lzma_code() call returned LZMA_STREAM_END. + If not, the file is probably truncated. */ + if ((ret == RET_OK) && (ret_xz != LZMA_STREAM_END)) { + fprintf (stderr, "Input truncated or corrupt\n"); + ret = RET_ERROR_DECOMPRESSION; + } + + lzma_end (&strm); + return ret; +} + +int main () +{ + int ret; + + ret = xz_decompress (stdin, stdout); + return ret; +} + diff --git a/xz-5.4.5/doc/faq.txt b/xz-5.4.5/doc/faq.txt new file mode 100644 index 000000000..3f9068b4b --- /dev/null +++ b/xz-5.4.5/doc/faq.txt @@ -0,0 +1,244 @@ + +XZ Utils FAQ +============ + +Q: What do the letters XZ mean? + +A: Nothing. They are just two letters, which come from the file format + suffix .xz. The .xz suffix was selected, because it seemed to be + pretty much unused. It has no deeper meaning. + + +Q: What are LZMA and LZMA2? + +A: LZMA stands for Lempel-Ziv-Markov chain-Algorithm. It is the name + of the compression algorithm designed by Igor Pavlov for 7-Zip. + LZMA is based on LZ77 and range encoding. + + LZMA2 is an updated version of the original LZMA to fix a couple of + practical issues. In context of XZ Utils, LZMA is called LZMA1 to + emphasize that LZMA is not the same thing as LZMA2. LZMA2 is the + primary compression algorithm in the .xz file format. + + +Q: There are many LZMA related projects. How does XZ Utils relate to them? + +A: 7-Zip and LZMA SDK are the original projects. LZMA SDK is roughly + a subset of the 7-Zip source tree. + + p7zip is 7-Zip's command-line tools ported to POSIX-like systems. + + LZMA Utils provide a gzip-like lzma tool for POSIX-like systems. + LZMA Utils are based on LZMA SDK. XZ Utils are the successor to + LZMA Utils. + + There are several other projects using LZMA. Most are more or less + based on LZMA SDK. See . + + +Q: Why is liblzma named liblzma if its primary file format is .xz? + Shouldn't it be e.g. libxz? + +A: When the designing of the .xz format began, the idea was to replace + the .lzma format and use the same .lzma suffix. It would have been + quite OK to reuse the suffix when there were very few .lzma files + around. However, the old .lzma format became popular before the + new format was finished. The new format was renamed to .xz but the + name of liblzma wasn't changed. + + +Q: Do XZ Utils support the .7z format? + +A: No. Use 7-Zip (Windows) or p7zip (POSIX-like systems) to handle .7z + files. + + +Q: I have many .tar.7z files. Can I convert them to .tar.xz without + spending hours recompressing the data? + +A: In the "extra" directory, there is a script named 7z2lzma.bash which + is able to convert some .7z files to the .lzma format (not .xz). It + needs the 7za (or 7z) command from p7zip. The script may silently + produce corrupt output if certain assumptions are not met, so + decompress the resulting .lzma file and compare it against the + original before deleting the original file! + + +Q: I have many .lzma files. Can I quickly convert them to the .xz format? + +A: For now, no. Since XZ Utils supports the .lzma format, it's usually + not too bad to keep the old files in the old format. If you want to + do the conversion anyway, you need to decompress the .lzma files and + then recompress to the .xz format. + + Technically, there is a way to make the conversion relatively fast + (roughly twice the time that normal decompression takes). Writing + such a tool would take quite a bit of time though, and would probably + be useful to only a few people. If you really want such a conversion + tool, contact Lasse Collin and offer some money. + + +Q: I have installed xz, but my tar doesn't recognize .tar.xz files. + How can I extract .tar.xz files? + +A: xz -dc foo.tar.xz | tar xf - + + +Q: Can I recover parts of a broken .xz file (e.g. a corrupted CD-R)? + +A: It may be possible if the file consists of multiple blocks, which + typically is not the case if the file was created in single-threaded + mode. There is no recovery program yet. + + +Q: Is (some part of) XZ Utils patented? + +A: Lasse Collin is not aware of any patents that could affect XZ Utils. + However, due to the nature of software patents, it's not possible to + guarantee that XZ Utils isn't affected by any third party patent(s). + + +Q: Where can I find documentation about the file format and algorithms? + +A: The .xz format is documented in xz-file-format.txt. It is a container + format only, and doesn't include descriptions of any non-trivial + filters. + + Documenting LZMA and LZMA2 is planned, but for now, there is no other + documentation than the source code. Before you begin, you should know + the basics of LZ77 and range-coding algorithms. LZMA is based on LZ77, + but LZMA is a lot more complex. Range coding is used to compress + the final bitstream like Huffman coding is used in Deflate. + + +Q: I cannot find BCJ and BCJ2 filters. Don't they exist in liblzma? + +A: BCJ filter is called "x86" in liblzma. BCJ2 is not included, + because it requires using more than one encoded output stream. + + +Q: I need to use a script that runs "xz -9". On a system with 256 MiB + of RAM, xz says that it cannot allocate memory. Can I make the + script work without modifying it? + +A: Set a default memory usage limit for compression. You can do it e.g. + in a shell initialization script such as ~/.bashrc or /etc/profile: + + XZ_DEFAULTS=--memlimit-compress=150MiB + export XZ_DEFAULTS + + xz will then scale the compression settings down so that the given + memory usage limit is not reached. This way xz shouldn't run out + of memory. + + Check also that memory-related resource limits are high enough. + On most systems, "ulimit -a" will show the current resource limits. + + +Q: How do I create files that can be decompressed with XZ Embedded? + +A: See the documentation in XZ Embedded. In short, something like + this is a good start: + + xz --check=crc32 --lzma2=preset=6e,dict=64KiB + + Or if a BCJ filter is needed too, e.g. if compressing + a kernel image for PowerPC: + + xz --check=crc32 --powerpc --lzma2=preset=6e,dict=64KiB + + Adjust the dictionary size to get a good compromise between + compression ratio and decompressor memory usage. Note that + in single-call decompression mode of XZ Embedded, a big + dictionary doesn't increase memory usage. + + +Q: How is multi-threaded compression implemented in XZ Utils? + +A: The simplest method is splitting the uncompressed data into blocks + and compressing them in parallel independent from each other. + This is currently the only threading method supported in XZ Utils. + Since the blocks are compressed independently, they can also be + decompressed independently. Together with the index feature in .xz, + this allows using threads to create .xz files for random-access + reading. This also makes threaded decompression possible. + + The independent blocks method has a couple of disadvantages too. It + will compress worse than a single-block method. Often the difference + is not too big (maybe 1-2 %) but sometimes it can be too big. Also, + the memory usage of the compressor increases linearly when adding + threads. + + At least two other threading methods are possible but these haven't + been implemented in XZ Utils: + + Match finder parallelization has been in 7-Zip for ages. It doesn't + affect compression ratio or memory usage significantly. Among the + three threading methods, only this is useful when compressing small + files (files that are not significantly bigger than the dictionary). + Unfortunately this method scales only to about two CPU cores. + + The third method is pigz-style threading (I use that name, because + pigz uses that method). It doesn't + affect compression ratio significantly and scales to many cores. + The memory usage scales linearly when threads are added. This isn't + significant with pigz, because Deflate uses only a 32 KiB dictionary, + but with LZMA2 the memory usage will increase dramatically just like + with the independent-blocks method. There is also a constant + computational overhead, which may make pigz-method a bit dull on + dual-core compared to the parallel match finder method, but with more + cores the overhead is not a big deal anymore. + + Combining the threading methods will be possible and also useful. + For example, combining match finder parallelization with pigz-style + threading or independent-blocks-threading can cut the memory usage + by 50 %. + + +Q: I told xz to use many threads but it is using only one or two + processor cores. What is wrong? + +A: Since multi-threaded compression is done by splitting the data into + blocks that are compressed individually, if the input file is too + small for the block size, then many threads cannot be used. The + default block size increases when the compression level is + increased. For example, xz -6 uses 8 MiB LZMA2 dictionary and + 24 MiB blocks, and xz -9 uses 64 MiB LZMA dictionary and 192 MiB + blocks. If the input file is 100 MiB, xz -6 can use five threads + of which one will finish quickly as it has only 4 MiB to compress. + However, for the same file, xz -9 can only use one thread. + + One can adjust block size with --block-size=SIZE but making the + block size smaller than LZMA2 dictionary is waste of RAM: using + xz -9 with 6 MiB blocks isn't any better than using xz -6 with + 6 MiB blocks. The default settings use a block size bigger than + the LZMA2 dictionary size because this was seen as a reasonable + compromise between RAM usage and compression ratio. + + When decompressing, the ability to use threads depends on how the + file was created. If it was created in multi-threaded mode then + it can be decompressed in multi-threaded mode too if there are + multiple blocks in the file. + + +Q: How do I build a program that needs liblzmadec (lzmadec.h)? + +A: liblzmadec is part of LZMA Utils. XZ Utils has liblzma, but no + liblzmadec. The code using liblzmadec should be ported to use + liblzma instead. If you cannot or don't want to do that, download + LZMA Utils from . + + +Q: The default build of liblzma is too big. How can I make it smaller? + +A: Give --enable-small to the configure script. Use also appropriate + --enable or --disable options to include only those filter encoders + and decoders and integrity checks that you actually need. Use + CFLAGS=-Os (with GCC) or equivalent to tell your compiler to optimize + for size. See INSTALL for information about configure options. + + If the result is still too big, take a look at XZ Embedded. It is + a separate project, which provides a limited but significantly + smaller XZ decoder implementation than XZ Utils. You can find it + at . + diff --git a/xz-5.4.5/doc/history.txt b/xz-5.4.5/doc/history.txt new file mode 100644 index 000000000..8545e2322 --- /dev/null +++ b/xz-5.4.5/doc/history.txt @@ -0,0 +1,150 @@ + +History of LZMA Utils and XZ Utils +================================== + +Tukaani distribution + + In 2005, there was a small group working on the Tukaani distribution, + which was a Slackware fork. One of the project's goals was to fit the + distro on a single 700 MiB ISO-9660 image. Using LZMA instead of gzip + helped a lot. Roughly speaking, one could fit data that took 1000 MiB + in gzipped form into 700 MiB with LZMA. Naturally, the compression + ratio varied across packages, but this was what we got on average. + + Slackware packages have traditionally had .tgz as the filename suffix, + which is an abbreviation of .tar.gz. A logical naming for LZMA + compressed packages was .tlz, being an abbreviation of .tar.lzma. + + At the end of the year 2007, there was no distribution under the + Tukaani project anymore, but development of LZMA Utils was kept going. + Still, there were .tlz packages around, because at least Vector Linux + (a Slackware based distribution) used LZMA for its packages. + + First versions of the modified pkgtools used the LZMA_Alone tool from + Igor Pavlov's LZMA SDK as is. It was fine, because users wouldn't need + to interact with LZMA_Alone directly. But people soon wanted to use + LZMA for other files too, and the interface of LZMA_Alone wasn't + comfortable for those used to gzip and bzip2. + + +First steps of LZMA Utils + + The first version of LZMA Utils (4.22.0) included a shell script called + lzmash. It was a wrapper that had a gzip-like command-line interface. It + used the LZMA_Alone tool from LZMA SDK to do all the real work. zgrep, + zdiff, and related scripts from gzip were adapted to work with LZMA and + were part of the first LZMA Utils release too. + + LZMA Utils 4.22.0 included also lzmadec, which was a small (less than + 10 KiB) decoder-only command-line tool. It was written on top of the + decoder-only C code found from the LZMA SDK. lzmadec was convenient in + situations where LZMA_Alone (a few hundred KiB) would be too big. + + lzmash and lzmadec were written by Lasse Collin. + + +Second generation + + The lzmash script was an ugly and not very secure hack. The last + version of LZMA Utils to use lzmash was 4.27.1. + + LZMA Utils 4.32.0beta1 introduced a new lzma command-line tool written + by Ville Koskinen. It was written in C++, and used the encoder and + decoder from C++ LZMA SDK with some little modifications. This tool + replaced both the lzmash script and the LZMA_Alone command-line tool + in LZMA Utils. + + Introducing this new tool caused some temporary incompatibilities, + because the LZMA_Alone executable was simply named lzma like the new + command-line tool, but they had a completely different command-line + interface. The file format was still the same. + + Lasse wrote liblzmadec, which was a small decoder-only library based + on the C code found from LZMA SDK. liblzmadec had an API similar to + zlib, although there were some significant differences, which made it + non-trivial to use it in some applications designed for zlib and + libbzip2. + + The lzmadec command-line tool was converted to use liblzmadec. + + Alexandre SauvĆ© helped converting the build system to use GNU + Autotools. This made it easier to test for certain less portable + features needed by the new command-line tool. + + Since the new command-line tool never got completely finished (for + example, it didn't support the LZMA_OPT environment variable), the + intent was to not call 4.32.x stable. Similarly, liblzmadec wasn't + polished, but appeared to work well enough, so some people started + using it too. + + Because the development of the third generation of LZMA Utils was + delayed considerably (3-4 years), the 4.32.x branch had to be kept + maintained. It got some bug fixes now and then, and finally it was + decided to call it stable, although most of the missing features were + never added. + + +File format problems + + The file format used by LZMA_Alone was primitive. It was designed with + embedded systems in mind, and thus provided only a minimal set of + features. The two biggest problems for non-embedded use were the lack + of magic bytes and an integrity check. + + Igor and Lasse started developing a new file format with some help + from Ville Koskinen. Also Mark Adler, Mikko Pouru, H. Peter Anvin, + and Lars Wirzenius helped with some minor things at some point of the + development. Designing the new format took quite a long time (actually, + too long a time would be a more appropriate expression). It was mostly + because Lasse was quite slow at getting things done due to personal + reasons. + + Originally the new format was supposed to use the same .lzma suffix + that was already used by the old file format. Switching to the new + format wouldn't have caused much trouble when the old format wasn't + used by many people. But since the development of the new format took + such a long time, the old format got quite popular, and it was decided + that the new file format must use a different suffix. + + It was decided to use .xz as the suffix of the new file format. The + first stable .xz file format specification was finally released in + December 2008. In addition to fixing the most obvious problems of + the old .lzma format, the .xz format added some new features like + support for multiple filters (compression algorithms), filter chaining + (like piping on the command line), and limited random-access reading. + + Currently the primary compression algorithm used in .xz is LZMA2. + It is an extension on top of the original LZMA to fix some practical + problems: LZMA2 adds support for flushing the encoder, uncompressed + chunks, eases stateful decoder implementations, and improves support + for multithreading. Since LZMA2 is better than the original LZMA, the + original LZMA is not supported in .xz. + + +Transition to XZ Utils + + The early versions of XZ Utils were called LZMA Utils. The first + releases were 4.42.0alphas. They dropped the rest of the C++ LZMA SDK. + The code was still directly based on LZMA SDK but ported to C and + converted from a callback API to a stateful API. Later, Igor Pavlov + made a C version of the LZMA encoder too; these ports from C++ to C + were independent in LZMA SDK and LZMA Utils. + + The core of the new LZMA Utils was liblzma, a compression library with + a zlib-like API. liblzma supported both the old and new file format. + The gzip-like lzma command-line tool was rewritten to use liblzma. + + The new LZMA Utils code base was renamed to XZ Utils when the name + of the new file format had been decided. The liblzma compression + library retained its name though, because changing it would have + caused unnecessary breakage in applications already using the early + liblzma snapshots. + + The xz command-line tool can emulate the gzip-like lzma tool by + creating appropriate symlinks (e.g. lzma -> xz). Thus, practically + all scripts using the lzma tool from LZMA Utils will work as is with + XZ Utils (and will keep using the old .lzma format). Still, the .lzma + format is more or less deprecated. XZ Utils will keep supporting it, + but new applications should use the .xz format, and migrating old + applications to .xz is often a good idea too. + diff --git a/xz-5.4.5/doc/lzma-file-format.txt b/xz-5.4.5/doc/lzma-file-format.txt new file mode 100644 index 000000000..4865defd5 --- /dev/null +++ b/xz-5.4.5/doc/lzma-file-format.txt @@ -0,0 +1,173 @@ + +The .lzma File Format +===================== + + 0. Preface + 0.1. Notices and Acknowledgements + 0.2. Changes + 1. File Format + 1.1. Header + 1.1.1. Properties + 1.1.2. Dictionary Size + 1.1.3. Uncompressed Size + 1.2. LZMA Compressed Data + 2. References + + +0. Preface + + This document describes the .lzma file format, which is + sometimes also called LZMA_Alone format. It is a legacy file + format, which is being or has been replaced by the .xz format. + The MIME type of the .lzma format is `application/x-lzma'. + + The most commonly used software to handle .lzma files are + LZMA SDK, LZMA Utils, 7-Zip, and XZ Utils. This document + describes some of the differences between these implementations + and gives hints what subset of the .lzma format is the most + portable. + + +0.1. Notices and Acknowledgements + + This file format was designed by Igor Pavlov for use in + LZMA SDK. This document was written by Lasse Collin + using the documentation found + from the LZMA SDK. + + This document has been put into the public domain. + + +0.2. Changes + + Last modified: 2022-07-13 21:00+0300 + + Compared to the previous version (2011-04-12 11:55+0300) + the section 1.1.3 was modified to allow End of Payload Marker + with a known Uncompressed Size. + + +1. File Format + + +-+-+-+-+-+-+-+-+-+-+-+-+-+==========================+ + | Header | LZMA Compressed Data | + +-+-+-+-+-+-+-+-+-+-+-+-+-+==========================+ + + The .lzma format file consist of 13-byte Header followed by + the LZMA Compressed Data. + + Unlike the .gz, .bz2, and .xz formats, it is not possible to + concatenate multiple .lzma files as is and expect the + decompression tool to decode the resulting file as if it were + a single .lzma file. + + For example, the command line tools from LZMA Utils and + LZMA SDK silently ignore all the data after the first .lzma + stream. In contrast, the command line tool from XZ Utils + considers the .lzma file to be corrupt if there is data after + the first .lzma stream. + + +1.1. Header + + +------------+----+----+----+----+--+--+--+--+--+--+--+--+ + | Properties | Dictionary Size | Uncompressed Size | + +------------+----+----+----+----+--+--+--+--+--+--+--+--+ + + +1.1.1. Properties + + The Properties field contains three properties. An abbreviation + is given in parentheses, followed by the value range of the + property. The field consists of + + 1) the number of literal context bits (lc, [0, 8]); + 2) the number of literal position bits (lp, [0, 4]); and + 3) the number of position bits (pb, [0, 4]). + + The properties are encoded using the following formula: + + Properties = (pb * 5 + lp) * 9 + lc + + The following C code illustrates a straightforward way to + decode the Properties field: + + uint8_t lc, lp, pb; + uint8_t prop = get_lzma_properties(); + if (prop > (4 * 5 + 4) * 9 + 8) + return LZMA_PROPERTIES_ERROR; + + pb = prop / (9 * 5); + prop -= pb * 9 * 5; + lp = prop / 9; + lc = prop - lp * 9; + + XZ Utils has an additional requirement: lc + lp <= 4. Files + which don't follow this requirement cannot be decompressed + with XZ Utils. Usually this isn't a problem since the most + common lc/lp/pb values are 3/0/2. It is the only lc/lp/pb + combination that the files created by LZMA Utils can have, + but LZMA Utils can decompress files with any lc/lp/pb. + + +1.1.2. Dictionary Size + + Dictionary Size is stored as an unsigned 32-bit little endian + integer. Any 32-bit value is possible, but for maximum + portability, only sizes of 2^n and 2^n + 2^(n-1) should be + used. + + LZMA Utils creates only files with dictionary size 2^n, + 16 <= n <= 25. LZMA Utils can decompress files with any + dictionary size. + + XZ Utils creates and decompresses .lzma files only with + dictionary sizes 2^n and 2^n + 2^(n-1). If some other + dictionary size is specified when compressing, the value + stored in the Dictionary Size field is a rounded up, but the + specified value is still used in the actual compression code. + + +1.1.3. Uncompressed Size + + Uncompressed Size is stored as unsigned 64-bit little endian + integer. A special value of 0xFFFF_FFFF_FFFF_FFFF indicates + that Uncompressed Size is unknown. End of Payload Marker (*) + is used if Uncompressed Size is unknown. End of Payload Marker + is allowed but rarely used if Uncompressed Size is known. + XZ Utils 5.2.5 and older don't support .lzma files that have + End of Payload Marker together with a known Uncompressed Size. + + XZ Utils rejects files whose Uncompressed Size field specifies + a known size that is 256 GiB or more. This is to reject false + positives when trying to guess if the input file is in the + .lzma format. When Uncompressed Size is unknown, there is no + limit for the uncompressed size of the file. + + (*) Some tools use the term End of Stream (EOS) marker + instead of End of Payload Marker. + + +1.2. LZMA Compressed Data + + Detailed description of the format of this field is out of + scope of this document. + + +2. References + + LZMA SDK - The original LZMA implementation + http://7-zip.org/sdk.html + + 7-Zip + http://7-zip.org/ + + LZMA Utils - LZMA adapted to POSIX-like systems + http://tukaani.org/lzma/ + + XZ Utils - The next generation of LZMA Utils + http://tukaani.org/xz/ + + The .xz file format - The successor of the .lzma format + http://tukaani.org/xz/xz-file-format.txt + diff --git a/xz-5.4.5/doc/man/pdf-a4/lzmainfo-a4.pdf b/xz-5.4.5/doc/man/pdf-a4/lzmainfo-a4.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0ee526f0dfdfcd35a89118216b8f330298e7c030 GIT binary patch literal 16384 zcmb_@2V7Ij(zqZU6r_s^p*JB3AwZBKz4zX0fY1U-sM4zx1p%chh$u}2L7GSr6cA8A zkS+pJr3xZVi-uHh0?@Iz_cXnoXc4p4(**QDhx{As|P+?ID?v9nDdpgn*Fls(EFg$vL``Xb$>fet`I z-aqlQb#˧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 OPzaFfucV_)@&5p#e<2+J literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/man/pdf-a4/xz-a4.pdf b/xz-5.4.5/doc/man/pdf-a4/xz-a4.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5f1a30cad3c18e15dd088bf36c2e272f688a9e65 GIT binary patch literal 114746 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

qJ7KO)&2~zcBLaE=Qz% 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 AKmY&$ literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/man/pdf-a4/xzdiff-a4.pdf b/xz-5.4.5/doc/man/pdf-a4/xzdiff-a4.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1189d84ee8271ff3b2dea390479a3a4fe040054d GIT binary patch literal 17200 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 literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/man/pdf-a4/xzgrep-a4.pdf b/xz-5.4.5/doc/man/pdf-a4/xzgrep-a4.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2cb352864d482c943e25b454c96620e224f1cd0d GIT binary patch literal 18338 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 PJlyb4^3X{rN@D&WwBZte literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/man/pdf-a4/xzless-a4.pdf b/xz-5.4.5/doc/man/pdf-a4/xzless-a4.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4a8e8e6181a0f2e3df8f263c6155af50c276de2f GIT binary patch literal 15029 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 literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/man/pdf-a4/xzmore-a4.pdf b/xz-5.4.5/doc/man/pdf-a4/xzmore-a4.pdf new file mode 100644 index 0000000000000000000000000000000000000000..687074b9866b15c80937a2f70bd838407d59fd33 GIT binary patch literal 15203 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 literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/man/pdf-letter/lzmainfo-letter.pdf b/xz-5.4.5/doc/man/pdf-letter/lzmainfo-letter.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d953045abe7a8a890e40501724e283eee040e8c9 GIT binary patch literal 16394 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 U+%Z_7BH}Ozko2#lsZ93&0N6My$^ZZW literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/man/pdf-letter/xz-letter.pdf b/xz-5.4.5/doc/man/pdf-letter/xz-letter.pdf new file mode 100644 index 0000000000000000000000000000000000000000..440f2949a1033001d934c1a6ac04ddae37336ed3 GIT binary patch literal 115882 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 z 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 literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/man/pdf-letter/xzdiff-letter.pdf b/xz-5.4.5/doc/man/pdf-letter/xzdiff-letter.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9c7ab611388a416a0dda4ffe8fa43630bfb66578 GIT binary patch literal 17227 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 literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/man/pdf-letter/xzless-letter.pdf b/xz-5.4.5/doc/man/pdf-letter/xzless-letter.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9a8e2312c4c6c5f8b53637ef327f249c95005f9b GIT binary patch literal 15022 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 O0H^>5QqOL}aam5Ro-oL`VoJ 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 literal 0 HcmV?d00001 diff --git a/xz-5.4.5/doc/man/txt/lzmainfo.txt b/xz-5.4.5/doc/man/txt/lzmainfo.txt new file mode 100644 index 000000000..fa4e51cc7 --- /dev/null +++ b/xz-5.4.5/doc/man/txt/lzmainfo.txt @@ -0,0 +1,40 @@ +LZMAINFO(1) XZ Utils LZMAINFO(1) + + + +NAME + lzmainfo - show information stored in the .lzma file header + +SYNOPSIS + lzmainfo [--help] [--version] [file...] + +DESCRIPTION + lzmainfo shows information stored in the .lzma file header. It reads + the first 13 bytes from the specified file, decodes the header, and + prints it to standard output in human readable format. If no files are + given or file is -, standard input is read. + + Usually the most interesting information is the uncompressed size and + the dictionary size. Uncompressed size can be shown only if the file + is in the non-streamed .lzma format variant. The amount of memory re- + quired to decompress the file is a few dozen kilobytes plus the dictio- + nary size. + + lzmainfo is included in XZ Utils primarily for backward compatibility + with LZMA Utils. + +EXIT STATUS + 0 All is good. + + 1 An error occurred. + +BUGS + lzmainfo uses MB while the correct suffix would be MiB (2^20 bytes). + This is to keep the output compatible with LZMA Utils. + +SEE ALSO + xz(1) + + + +Tukaani 2013-06-30 LZMAINFO(1) diff --git a/xz-5.4.5/doc/man/txt/xz.txt b/xz-5.4.5/doc/man/txt/xz.txt new file mode 100644 index 000000000..4fec85b82 --- /dev/null +++ b/xz-5.4.5/doc/man/txt/xz.txt @@ -0,0 +1,1586 @@ +XZ(1) XZ Utils XZ(1) + + + +NAME + xz, unxz, xzcat, lzma, unlzma, lzcat - Compress or decompress .xz and + .lzma files + +SYNOPSIS + xz [option...] [file...] + +COMMAND ALIASES + unxz is equivalent to xz --decompress. + xzcat is equivalent to xz --decompress --stdout. + lzma is equivalent to xz --format=lzma. + unlzma is equivalent to xz --format=lzma --decompress. + lzcat is equivalent to xz --format=lzma --decompress --stdout. + + When writing scripts that need to decompress files, it is recommended + to always use the name xz with appropriate arguments (xz -d or xz -dc) + instead of the names unxz and xzcat. + +DESCRIPTION + xz is a general-purpose data compression tool with command line syntax + similar to gzip(1) and bzip2(1). The native file format is the .xz + format, but the legacy .lzma format used by LZMA Utils and raw com- + pressed streams with no container format headers are also supported. + In addition, decompression of the .lz format used by lzip is supported. + + xz compresses or decompresses each file according to the selected oper- + ation mode. If no files are given or file is -, xz reads from standard + input and writes the processed data to standard output. xz will refuse + (display an error and skip the file) to write compressed data to stan- + dard output if it is a terminal. Similarly, xz will refuse to read + compressed data from standard input if it is a terminal. + + Unless --stdout is specified, files other than - are written to a new + file whose name is derived from the source file name: + + o When compressing, the suffix of the target file format (.xz or + .lzma) is appended to the source filename to get the target file- + name. + + o When decompressing, the .xz, .lzma, or .lz suffix is removed from + the filename to get the target filename. xz also recognizes the + suffixes .txz and .tlz, and replaces them with the .tar suffix. + + If the target file already exists, an error is displayed and the file + is skipped. + + Unless writing to standard output, xz will display a warning and skip + the file if any of the following applies: + + o File is not a regular file. Symbolic links are not followed, and + thus they are not considered to be regular files. + + o File has more than one hard link. + + o File has setuid, setgid, or sticky bit set. + + o The operation mode is set to compress and the file already has a + suffix of the target file format (.xz or .txz when compressing to + the .xz format, and .lzma or .tlz when compressing to the .lzma for- + mat). + + o The operation mode is set to decompress and the file doesn't have a + suffix of any of the supported file formats (.xz, .txz, .lzma, .tlz, + or .lz). + + After successfully compressing or decompressing the file, xz copies the + owner, group, permissions, access time, and modification time from the + source file to the target file. If copying the group fails, the per- + missions are modified so that the target file doesn't become accessible + to users who didn't have permission to access the source file. xz + doesn't support copying other metadata like access control lists or ex- + tended attributes yet. + + Once the target file has been successfully closed, the source file is + removed unless --keep was specified. The source file is never removed + if the output is written to standard output or if an error occurs. + + Sending SIGINFO or SIGUSR1 to the xz process makes it print progress + information to standard error. This has only limited use since when + standard error is a terminal, using --verbose will display an automati- + cally updating progress indicator. + + Memory usage + The memory usage of xz varies from a few hundred kilobytes to several + gigabytes depending on the compression settings. The settings used + when compressing a file determine the memory requirements of the decom- + pressor. Typically the decompressor needs 5 % to 20 % of the amount of + memory that the compressor needed when creating the file. For example, + decompressing a file created with xz -9 currently requires 65 MiB of + memory. Still, it is possible to have .xz files that require several + gigabytes of memory to decompress. + + Especially users of older systems may find the possibility of very + large memory usage annoying. To prevent uncomfortable surprises, xz + has a built-in memory usage limiter, which is disabled by default. + While some operating systems provide ways to limit the memory usage of + processes, relying on it wasn't deemed to be flexible enough (for exam- + ple, using ulimit(1) to limit virtual memory tends to cripple mmap(2)). + + The memory usage limiter can be enabled with the command line option + --memlimit=limit. Often it is more convenient to enable the limiter by + default by setting the environment variable XZ_DEFAULTS, for example, + XZ_DEFAULTS=--memlimit=150MiB. It is possible to set the limits sepa- + rately for compression and decompression by using --memlimit-com- + press=limit and --memlimit-decompress=limit. Using these two options + outside XZ_DEFAULTS is rarely useful because a single run of xz cannot + do both compression and decompression and --memlimit=limit (or -M + limit) is shorter to type on the command line. + + If the specified memory usage limit is exceeded when decompressing, xz + will display an error and decompressing the file will fail. If the + limit is exceeded when compressing, xz will try to scale the settings + down so that the limit is no longer exceeded (except when using --for- + mat=raw or --no-adjust). This way the operation won't fail unless the + limit is very small. The scaling of the settings is done in steps that + don't match the compression level presets, for example, if the limit is + only slightly less than the amount required for xz -9, the settings + will be scaled down only a little, not all the way down to xz -8. + + Concatenation and padding with .xz files + It is possible to concatenate .xz files as is. xz will decompress such + files as if they were a single .xz file. + + It is possible to insert padding between the concatenated parts or af- + ter the last part. The padding must consist of null bytes and the size + of the padding must be a multiple of four bytes. This can be useful, + for example, if the .xz file is stored on a medium that measures file + sizes in 512-byte blocks. + + Concatenation and padding are not allowed with .lzma files or raw + streams. + +OPTIONS + Integer suffixes and special values + In most places where an integer argument is expected, an optional suf- + fix is supported to easily indicate large integers. There must be no + space between the integer and the suffix. + + KiB Multiply the integer by 1,024 (2^10). Ki, k, kB, K, and KB are + accepted as synonyms for KiB. + + MiB Multiply the integer by 1,048,576 (2^20). Mi, m, M, and MB are + accepted as synonyms for MiB. + + GiB Multiply the integer by 1,073,741,824 (2^30). Gi, g, G, and GB + are accepted as synonyms for GiB. + + The special value max can be used to indicate the maximum integer value + supported by the option. + + Operation mode + If multiple operation mode options are given, the last one takes ef- + fect. + + -z, --compress + Compress. This is the default operation mode when no operation + mode option is specified and no other operation mode is implied + from the command name (for example, unxz implies --decompress). + + -d, --decompress, --uncompress + Decompress. + + -t, --test + Test the integrity of compressed files. This option is equiva- + lent to --decompress --stdout except that the decompressed data + is discarded instead of being written to standard output. No + files are created or removed. + + -l, --list + Print information about compressed files. No uncompressed out- + put is produced, and no files are created or removed. In list + mode, the program cannot read the compressed data from standard + input or from other unseekable sources. + + The default listing shows basic information about files, one + file per line. To get more detailed information, use also the + --verbose option. For even more information, use --verbose + twice, but note that this may be slow, because getting all the + extra information requires many seeks. The width of verbose + output exceeds 80 characters, so piping the output to, for exam- + ple, less -S may be convenient if the terminal isn't wide + enough. + + The exact output may vary between xz versions and different lo- + cales. For machine-readable output, --robot --list should be + used. + + Operation modifiers + -k, --keep + Don't delete the input files. + + Since xz 5.2.6, this option also makes xz compress or decompress + even if the input is a symbolic link to a regular file, has more + than one hard link, or has the setuid, setgid, or sticky bit + set. The setuid, setgid, and sticky bits are not copied to the + target file. In earlier versions this was only done with + --force. + + -f, --force + This option has several effects: + + o If the target file already exists, delete it before compress- + ing or decompressing. + + o Compress or decompress even if the input is a symbolic link + to a regular file, has more than one hard link, or has the + setuid, setgid, or sticky bit set. The setuid, setgid, and + sticky bits are not copied to the target file. + + o When used with --decompress --stdout and xz cannot recognize + the type of the source file, copy the source file as is to + standard output. This allows xzcat --force to be used like + cat(1) for files that have not been compressed with xz. Note + that in future, xz might support new compressed file formats, + which may make xz decompress more types of files instead of + copying them as is to standard output. --format=format can + be used to restrict xz to decompress only a single file for- + mat. + + -c, --stdout, --to-stdout + Write the compressed or decompressed data to standard output in- + stead of a file. This implies --keep. + + --single-stream + Decompress only the first .xz stream, and silently ignore possi- + ble remaining input data following the stream. Normally such + trailing garbage makes xz display an error. + + xz never decompresses more than one stream from .lzma files or + raw streams, but this option still makes xz ignore the possible + trailing data after the .lzma file or raw stream. + + This option has no effect if the operation mode is not --decom- + press or --test. + + --no-sparse + Disable creation of sparse files. By default, if decompressing + into a regular file, xz tries to make the file sparse if the de- + compressed data contains long sequences of binary zeros. It + also works when writing to standard output as long as standard + output is connected to a regular file and certain additional + conditions are met to make it safe. Creating sparse files may + save disk space and speed up the decompression by reducing the + amount of disk I/O. + + -S .suf, --suffix=.suf + When compressing, use .suf as the suffix for the target file in- + stead of .xz or .lzma. If not writing to standard output and + the source file already has the suffix .suf, a warning is dis- + played and the file is skipped. + + When decompressing, recognize files with the suffix .suf in ad- + dition to files with the .xz, .txz, .lzma, .tlz, or .lz suffix. + If the source file has the suffix .suf, the suffix is removed to + get the target filename. + + When compressing or decompressing raw streams (--format=raw), + the suffix must always be specified unless writing to standard + output, because there is no default suffix for raw streams. + + --files[=file] + Read the filenames to process from file; if file is omitted, + filenames are read from standard input. Filenames must be ter- + minated with the newline character. A dash (-) is taken as a + regular filename; it doesn't mean standard input. If filenames + are given also as command line arguments, they are processed be- + fore the filenames read from file. + + --files0[=file] + This is identical to --files[=file] except that each filename + must be terminated with the null character. + + Basic file format and compression options + -F format, --format=format + Specify the file format to compress or decompress: + + auto This is the default. When compressing, auto is equiva- + lent to xz. When decompressing, the format of the input + file is automatically detected. Note that raw streams + (created with --format=raw) cannot be auto-detected. + + xz Compress to the .xz file format, or accept only .xz files + when decompressing. + + lzma, alone + Compress to the legacy .lzma file format, or accept only + .lzma files when decompressing. The alternative name + alone is provided for backwards compatibility with LZMA + Utils. + + lzip Accept only .lz files when decompressing. Compression is + not supported. + + The .lz format version 0 and the unextended version 1 are + supported. Version 0 files were produced by lzip 1.3 and + older. Such files aren't common but may be found from + file archives as a few source packages were released in + this format. People might have old personal files in + this format too. Decompression support for the format + version 0 was removed in lzip 1.18. + + lzip 1.4 and later create files in the format version 1. + The sync flush marker extension to the format version 1 + was added in lzip 1.6. This extension is rarely used and + isn't supported by xz (diagnosed as corrupt input). + + raw Compress or uncompress a raw stream (no headers). This + is meant for advanced users only. To decode raw streams, + you need use --format=raw and explicitly specify the fil- + ter chain, which normally would have been stored in the + container headers. + + -C check, --check=check + Specify the type of the integrity check. The check is calcu- + lated from the uncompressed data and stored in the .xz file. + This option has an effect only when compressing into the .xz + format; the .lzma format doesn't support integrity checks. The + integrity check (if any) is verified when the .xz file is decom- + pressed. + + Supported check types: + + none Don't calculate an integrity check at all. This is usu- + ally a bad idea. This can be useful when integrity of + the data is verified by other means anyway. + + crc32 Calculate CRC32 using the polynomial from IEEE-802.3 + (Ethernet). + + crc64 Calculate CRC64 using the polynomial from ECMA-182. This + is the default, since it is slightly better than CRC32 at + detecting damaged files and the speed difference is neg- + ligible. + + sha256 Calculate SHA-256. This is somewhat slower than CRC32 + and CRC64. + + Integrity of the .xz headers is always verified with CRC32. It + is not possible to change or disable it. + + --ignore-check + Don't verify the integrity check of the compressed data when de- + compressing. The CRC32 values in the .xz headers will still be + verified normally. + + Do not use this option unless you know what you are doing. Pos- + sible reasons to use this option: + + o Trying to recover data from a corrupt .xz file. + + o Speeding up decompression. This matters mostly with SHA-256 + or with files that have compressed extremely well. It's rec- + ommended to not use this option for this purpose unless the + file integrity is verified externally in some other way. + + -0 ... -9 + Select a compression preset level. The default is -6. If mul- + tiple preset levels are specified, the last one takes effect. + If a custom filter chain was already specified, setting a com- + pression preset level clears the custom filter chain. + + The differences between the presets are more significant than + with gzip(1) and bzip2(1). The selected compression settings + determine the memory requirements of the decompressor, thus us- + ing a too high preset level might make it painful to decompress + the file on an old system with little RAM. Specifically, it's + not a good idea to blindly use -9 for everything like it often + is with gzip(1) and bzip2(1). + + -0 ... -3 + These are somewhat fast presets. -0 is sometimes faster + than gzip -9 while compressing much better. The higher + ones often have speed comparable to bzip2(1) with compa- + rable or better compression ratio, although the results + depend a lot on the type of data being compressed. + + -4 ... -6 + Good to very good compression while keeping decompressor + memory usage reasonable even for old systems. -6 is the + default, which is usually a good choice for distributing + files that need to be decompressible even on systems with + only 16 MiB RAM. (-5e or -6e may be worth considering + too. See --extreme.) + + -7 ... -9 + These are like -6 but with higher compressor and decom- + pressor memory requirements. These are useful only when + compressing files bigger than 8 MiB, 16 MiB, and 32 MiB, + respectively. + + On the same hardware, the decompression speed is approximately a + constant number of bytes of compressed data per second. In + other words, the better the compression, the faster the decom- + pression will usually be. This also means that the amount of + uncompressed output produced per second can vary a lot. + + The following table summarises the features of the presets: + + Preset DictSize CompCPU CompMem DecMem + -0 256 KiB 0 3 MiB 1 MiB + -1 1 MiB 1 9 MiB 2 MiB + -2 2 MiB 2 17 MiB 3 MiB + -3 4 MiB 3 32 MiB 5 MiB + -4 4 MiB 4 48 MiB 5 MiB + -5 8 MiB 5 94 MiB 9 MiB + -6 8 MiB 6 94 MiB 9 MiB + -7 16 MiB 6 186 MiB 17 MiB + -8 32 MiB 6 370 MiB 33 MiB + -9 64 MiB 6 674 MiB 65 MiB + + Column descriptions: + + o DictSize is the LZMA2 dictionary size. It is waste of memory + to use a dictionary bigger than the size of the uncompressed + file. This is why it is good to avoid using the presets -7 + ... -9 when there's no real need for them. At -6 and lower, + the amount of memory wasted is usually low enough to not mat- + ter. + + o CompCPU is a simplified representation of the LZMA2 settings + that affect compression speed. The dictionary size affects + speed too, so while CompCPU is the same for levels -6 ... -9, + higher levels still tend to be a little slower. To get even + slower and thus possibly better compression, see --extreme. + + o CompMem contains the compressor memory requirements in the + single-threaded mode. It may vary slightly between xz ver- + sions. Memory requirements of some of the future multi- + threaded modes may be dramatically higher than that of the + single-threaded mode. + + o DecMem contains the decompressor memory requirements. That + is, the compression settings determine the memory require- + ments of the decompressor. The exact decompressor memory us- + age is slightly more than the LZMA2 dictionary size, but the + values in the table have been rounded up to the next full + MiB. + + -e, --extreme + Use a slower variant of the selected compression preset level + (-0 ... -9) to hopefully get a little bit better compression ra- + tio, but with bad luck this can also make it worse. Decompres- + sor memory usage is not affected, but compressor memory usage + increases a little at preset levels -0 ... -3. + + Since there are two presets with dictionary sizes 4 MiB and + 8 MiB, the presets -3e and -5e use slightly faster settings + (lower CompCPU) than -4e and -6e, respectively. That way no two + presets are identical. + + Preset DictSize CompCPU CompMem DecMem + -0e 256 KiB 8 4 MiB 1 MiB + -1e 1 MiB 8 13 MiB 2 MiB + -2e 2 MiB 8 25 MiB 3 MiB + -3e 4 MiB 7 48 MiB 5 MiB + -4e 4 MiB 8 48 MiB 5 MiB + -5e 8 MiB 7 94 MiB 9 MiB + -6e 8 MiB 8 94 MiB 9 MiB + -7e 16 MiB 8 186 MiB 17 MiB + -8e 32 MiB 8 370 MiB 33 MiB + -9e 64 MiB 8 674 MiB 65 MiB + + For example, there are a total of four presets that use 8 MiB + dictionary, whose order from the fastest to the slowest is -5, + -6, -5e, and -6e. + + --fast + --best These are somewhat misleading aliases for -0 and -9, respec- + tively. These are provided only for backwards compatibility + with LZMA Utils. Avoid using these options. + + --block-size=size + When compressing to the .xz format, split the input data into + blocks of size bytes. The blocks are compressed independently + from each other, which helps with multi-threading and makes lim- + ited random-access decompression possible. This option is typi- + cally used to override the default block size in multi-threaded + mode, but this option can be used in single-threaded mode too. + + In multi-threaded mode about three times size bytes will be al- + located in each thread for buffering input and output. The de- + fault size is three times the LZMA2 dictionary size or 1 MiB, + whichever is more. Typically a good value is 2-4 times the size + of the LZMA2 dictionary or at least 1 MiB. Using size less than + the LZMA2 dictionary size is waste of RAM because then the LZMA2 + dictionary buffer will never get fully used. The sizes of the + blocks are stored in the block headers, which a future version + of xz will use for multi-threaded decompression. + + In single-threaded mode no block splitting is done by default. + Setting this option doesn't affect memory usage. No size infor- + mation is stored in block headers, thus files created in single- + threaded mode won't be identical to files created in multi- + threaded mode. The lack of size information also means that a + future version of xz won't be able decompress the files in + multi-threaded mode. + + --block-list=sizes + When compressing to the .xz format, start a new block after the + given intervals of uncompressed data. + + The uncompressed sizes of the blocks are specified as a comma- + separated list. Omitting a size (two or more consecutive com- + mas) is a shorthand to use the size of the previous block. + + If the input file is bigger than the sum of sizes, the last + value in sizes is repeated until the end of the file. A special + value of 0 may be used as the last value to indicate that the + rest of the file should be encoded as a single block. + + If one specifies sizes that exceed the encoder's block size (ei- + ther the default value in threaded mode or the value specified + with --block-size=size), the encoder will create additional + blocks while keeping the boundaries specified in sizes. For ex- + ample, if one specifies --block-size=10MiB + --block-list=5MiB,10MiB,8MiB,12MiB,24MiB and the input file is + 80 MiB, one will get 11 blocks: 5, 10, 8, 10, 2, 10, 10, 4, 10, + 10, and 1 MiB. + + In multi-threaded mode the sizes of the blocks are stored in the + block headers. This isn't done in single-threaded mode, so the + encoded output won't be identical to that of the multi-threaded + mode. + + --flush-timeout=timeout + When compressing, if more than timeout milliseconds (a positive + integer) has passed since the previous flush and reading more + input would block, all the pending input data is flushed from + the encoder and made available in the output stream. This can + be useful if xz is used to compress data that is streamed over a + network. Small timeout values make the data available at the + receiving end with a small delay, but large timeout values give + better compression ratio. + + This feature is disabled by default. If this option is speci- + fied more than once, the last one takes effect. The special + timeout value of 0 can be used to explicitly disable this fea- + ture. + + This feature is not available on non-POSIX systems. + + This feature is still experimental. Currently xz is unsuitable + for decompressing the stream in real time due to how xz does + buffering. + + --memlimit-compress=limit + Set a memory usage limit for compression. If this option is + specified multiple times, the last one takes effect. + + If the compression settings exceed the limit, xz will attempt to + adjust the settings downwards so that the limit is no longer ex- + ceeded and display a notice that automatic adjustment was done. + The adjustments are done in this order: reducing the number of + threads, switching to single-threaded mode if even one thread in + multi-threaded mode exceeds the limit, and finally reducing the + LZMA2 dictionary size. + + When compressing with --format=raw or if --no-adjust has been + specified, only the number of threads may be reduced since it + can be done without affecting the compressed output. + + If the limit cannot be met even with the adjustments described + above, an error is displayed and xz will exit with exit status + 1. + + The limit can be specified in multiple ways: + + o The limit can be an absolute value in bytes. Using an inte- + ger suffix like MiB can be useful. Example: --memlimit-com- + press=80MiB + + o The limit can be specified as a percentage of total physical + memory (RAM). This can be useful especially when setting the + XZ_DEFAULTS environment variable in a shell initialization + script that is shared between different computers. That way + the limit is automatically bigger on systems with more mem- + ory. Example: --memlimit-compress=70% + + o The limit can be reset back to its default value by setting + it to 0. This is currently equivalent to setting the limit + to max (no memory usage limit). + + For 32-bit xz there is a special case: if the limit would be + over 4020 MiB, the limit is set to 4020 MiB. On MIPS32 2000 MiB + is used instead. (The values 0 and max aren't affected by this. + A similar feature doesn't exist for decompression.) This can be + helpful when a 32-bit executable has access to 4 GiB address + space (2 GiB on MIPS32) while hopefully doing no harm in other + situations. + + See also the section Memory usage. + + --memlimit-decompress=limit + Set a memory usage limit for decompression. This also affects + the --list mode. If the operation is not possible without ex- + ceeding the limit, xz will display an error and decompressing + the file will fail. See --memlimit-compress=limit for possible + ways to specify the limit. + + --memlimit-mt-decompress=limit + Set a memory usage limit for multi-threaded decompression. This + can only affect the number of threads; this will never make xz + refuse to decompress a file. If limit is too low to allow any + multi-threading, the limit is ignored and xz will continue in + single-threaded mode. Note that if also --memlimit-decompress + is used, it will always apply to both single-threaded and multi- + threaded modes, and so the effective limit for multi-threading + will never be higher than the limit set with --memlimit-decom- + press. + + In contrast to the other memory usage limit options, --mem- + limit-mt-decompress=limit has a system-specific default limit. + xz --info-memory can be used to see the current value. + + This option and its default value exist because without any + limit the threaded decompressor could end up allocating an in- + sane amount of memory with some input files. If the default + limit is too low on your system, feel free to increase the limit + but never set it to a value larger than the amount of usable RAM + as with appropriate input files xz will attempt to use that + amount of memory even with a low number of threads. Running out + of memory or swapping will not improve decompression perfor- + mance. + + See --memlimit-compress=limit for possible ways to specify the + limit. Setting limit to 0 resets the limit to the default sys- + tem-specific value. + + -M limit, --memlimit=limit, --memory=limit + This is equivalent to specifying --memlimit-compress=limit + --memlimit-decompress=limit --memlimit-mt-decompress=limit. + + --no-adjust + Display an error and exit if the memory usage limit cannot be + met without adjusting settings that affect the compressed out- + put. That is, this prevents xz from switching the encoder from + multi-threaded mode to single-threaded mode and from reducing + the LZMA2 dictionary size. Even when this option is used the + number of threads may be reduced to meet the memory usage limit + as that won't affect the compressed output. + + Automatic adjusting is always disabled when creating raw streams + (--format=raw). + + -T threads, --threads=threads + Specify the number of worker threads to use. Setting threads to + a special value 0 makes xz use up to as many threads as the pro- + cessor(s) on the system support. The actual number of threads + can be fewer than threads if the input file is not big enough + for threading with the given settings or if using more threads + would exceed the memory usage limit. + + The single-threaded and multi-threaded compressors produce dif- + ferent output. Single-threaded compressor will give the small- + est file size but only the output from the multi-threaded com- + pressor can be decompressed using multiple threads. Setting + threads to 1 will use the single-threaded mode. Setting threads + to any other value, including 0, will use the multi-threaded + compressor even if the system supports only one hardware thread. + (xz 5.2.x used single-threaded mode in this situation.) + + To use multi-threaded mode with only one thread, set threads to + +1. The + prefix has no effect with values other than 1. A + memory usage limit can still make xz switch to single-threaded + mode unless --no-adjust is used. Support for the + prefix was + added in xz 5.4.0. + + If an automatic number of threads has been requested and no mem- + ory usage limit has been specified, then a system-specific de- + fault soft limit will be used to possibly limit the number of + threads. It is a soft limit in sense that it is ignored if the + number of threads becomes one, thus a soft limit will never stop + xz from compressing or decompressing. This default soft limit + will not make xz switch from multi-threaded mode to single- + threaded mode. The active limits can be seen with xz + --info-memory. + + Currently the only threading method is to split the input into + blocks and compress them independently from each other. The de- + fault block size depends on the compression level and can be + overridden with the --block-size=size option. + + Threaded decompression only works on files that contain multiple + blocks with size information in block headers. All large enough + files compressed in multi-threaded mode meet this condition, but + files compressed in single-threaded mode don't even if + --block-size=size has been used. + + Custom compressor filter chains + A custom filter chain allows specifying the compression settings in de- + tail instead of relying on the settings associated to the presets. + When a custom filter chain is specified, preset options (-0 ... -9 and + --extreme) earlier on the command line are forgotten. If a preset op- + tion is specified after one or more custom filter chain options, the + new preset takes effect and the custom filter chain options specified + earlier are forgotten. + + A filter chain is comparable to piping on the command line. When com- + pressing, the uncompressed input goes to the first filter, whose output + goes to the next filter (if any). The output of the last filter gets + written to the compressed file. The maximum number of filters in the + chain is four, but typically a filter chain has only one or two fil- + ters. + + Many filters have limitations on where they can be in the filter chain: + some filters can work only as the last filter in the chain, some only + as a non-last filter, and some work in any position in the chain. De- + pending on the filter, this limitation is either inherent to the filter + design or exists to prevent security issues. + + A custom filter chain is specified by using one or more filter options + in the order they are wanted in the filter chain. That is, the order + of filter options is significant! When decoding raw streams (--for- + mat=raw), the filter chain is specified in the same order as it was + specified when compressing. + + Filters take filter-specific options as a comma-separated list. Extra + commas in options are ignored. Every option has a default value, so + you need to specify only those you want to change. + + To see the whole filter chain and options, use xz -vv (that is, use + --verbose twice). This works also for viewing the filter chain options + used by presets. + + --lzma1[=options] + --lzma2[=options] + Add LZMA1 or LZMA2 filter to the filter chain. These filters + can be used only as the last filter in the chain. + + LZMA1 is a legacy filter, which is supported almost solely due + to the legacy .lzma file format, which supports only LZMA1. + LZMA2 is an updated version of LZMA1 to fix some practical is- + sues of LZMA1. The .xz format uses LZMA2 and doesn't support + LZMA1 at all. Compression speed and ratios of LZMA1 and LZMA2 + are practically the same. + + LZMA1 and LZMA2 share the same set of options: + + preset=preset + Reset all LZMA1 or LZMA2 options to preset. Preset con- + sist of an integer, which may be followed by single-let- + ter preset modifiers. The integer can be from 0 to 9, + matching the command line options -0 ... -9. The only + supported modifier is currently e, which matches --ex- + treme. If no preset is specified, the default values of + LZMA1 or LZMA2 options are taken from the preset 6. + + dict=size + Dictionary (history buffer) size indicates how many bytes + of the recently processed uncompressed data is kept in + memory. The algorithm tries to find repeating byte se- + quences (matches) in the uncompressed data, and replace + them with references to the data currently in the dictio- + nary. The bigger the dictionary, the higher is the + chance to find a match. Thus, increasing dictionary size + usually improves compression ratio, but a dictionary big- + ger than the uncompressed file is waste of memory. + + Typical dictionary size is from 64 KiB to 64 MiB. The + minimum is 4 KiB. The maximum for compression is cur- + rently 1.5 GiB (1536 MiB). The decompressor already sup- + ports dictionaries up to one byte less than 4 GiB, which + is the maximum for the LZMA1 and LZMA2 stream formats. + + Dictionary size and match finder (mf) together determine + the memory usage of the LZMA1 or LZMA2 encoder. The same + (or bigger) dictionary size is required for decompressing + that was used when compressing, thus the memory usage of + the decoder is determined by the dictionary size used + when compressing. The .xz headers store the dictionary + size either as 2^n or 2^n + 2^(n-1), so these sizes are + somewhat preferred for compression. Other sizes will get + rounded up when stored in the .xz headers. + + lc=lc Specify the number of literal context bits. The minimum + is 0 and the maximum is 4; the default is 3. In addi- + tion, the sum of lc and lp must not exceed 4. + + All bytes that cannot be encoded as matches are encoded + as literals. That is, literals are simply 8-bit bytes + that are encoded one at a time. + + The literal coding makes an assumption that the highest + lc bits of the previous uncompressed byte correlate with + the next byte. For example, in typical English text, an + upper-case letter is often followed by a lower-case let- + ter, and a lower-case letter is usually followed by an- + other lower-case letter. In the US-ASCII character set, + the highest three bits are 010 for upper-case letters and + 011 for lower-case letters. When lc is at least 3, the + literal coding can take advantage of this property in the + uncompressed data. + + The default value (3) is usually good. If you want maxi- + mum compression, test lc=4. Sometimes it helps a little, + and sometimes it makes compression worse. If it makes it + worse, test lc=2 too. + + lp=lp Specify the number of literal position bits. The minimum + is 0 and the maximum is 4; the default is 0. + + Lp affects what kind of alignment in the uncompressed + data is assumed when encoding literals. See pb below for + more information about alignment. + + pb=pb Specify the number of position bits. The minimum is 0 + and the maximum is 4; the default is 2. + + Pb affects what kind of alignment in the uncompressed + data is assumed in general. The default means four-byte + alignment (2^pb=2^2=4), which is often a good choice when + there's no better guess. + + When the alignment is known, setting pb accordingly may + reduce the file size a little. For example, with text + files having one-byte alignment (US-ASCII, ISO-8859-*, + UTF-8), setting pb=0 can improve compression slightly. + For UTF-16 text, pb=1 is a good choice. If the alignment + is an odd number like 3 bytes, pb=0 might be the best + choice. + + Even though the assumed alignment can be adjusted with pb + and lp, LZMA1 and LZMA2 still slightly favor 16-byte + alignment. It might be worth taking into account when + designing file formats that are likely to be often com- + pressed with LZMA1 or LZMA2. + + mf=mf Match finder has a major effect on encoder speed, memory + usage, and compression ratio. Usually Hash Chain match + finders are faster than Binary Tree match finders. The + default depends on the preset: 0 uses hc3, 1-3 use hc4, + and the rest use bt4. + + The following match finders are supported. The memory + usage formulas below are rough approximations, which are + closest to the reality when dict is a power of two. + + hc3 Hash Chain with 2- and 3-byte hashing + Minimum value for nice: 3 + Memory usage: + dict * 7.5 (if dict <= 16 MiB); + dict * 5.5 + 64 MiB (if dict > 16 MiB) + + hc4 Hash Chain with 2-, 3-, and 4-byte hashing + Minimum value for nice: 4 + Memory usage: + dict * 7.5 (if dict <= 32 MiB); + dict * 6.5 (if dict > 32 MiB) + + bt2 Binary Tree with 2-byte hashing + Minimum value for nice: 2 + Memory usage: dict * 9.5 + + bt3 Binary Tree with 2- and 3-byte hashing + Minimum value for nice: 3 + Memory usage: + dict * 11.5 (if dict <= 16 MiB); + dict * 9.5 + 64 MiB (if dict > 16 MiB) + + bt4 Binary Tree with 2-, 3-, and 4-byte hashing + Minimum value for nice: 4 + Memory usage: + dict * 11.5 (if dict <= 32 MiB); + dict * 10.5 (if dict > 32 MiB) + + mode=mode + Compression mode specifies the method to analyze the data + produced by the match finder. Supported modes are fast + and normal. The default is fast for presets 0-3 and nor- + mal for presets 4-9. + + Usually fast is used with Hash Chain match finders and + normal with Binary Tree match finders. This is also what + the presets do. + + nice=nice + Specify what is considered to be a nice length for a + match. Once a match of at least nice bytes is found, the + algorithm stops looking for possibly better matches. + + Nice can be 2-273 bytes. Higher values tend to give bet- + ter compression ratio at the expense of speed. The de- + fault depends on the preset. + + depth=depth + Specify the maximum search depth in the match finder. + The default is the special value of 0, which makes the + compressor determine a reasonable depth from mf and nice. + + Reasonable depth for Hash Chains is 4-100 and 16-1000 for + Binary Trees. Using very high values for depth can make + the encoder extremely slow with some files. Avoid set- + ting the depth over 1000 unless you are prepared to in- + terrupt the compression in case it is taking far too + long. + + When decoding raw streams (--format=raw), LZMA2 needs only the + dictionary size. LZMA1 needs also lc, lp, and pb. + + --x86[=options] + --arm[=options] + --armthumb[=options] + --arm64[=options] + --powerpc[=options] + --ia64[=options] + --sparc[=options] + Add a branch/call/jump (BCJ) filter to the filter chain. These + filters can be used only as a non-last filter in the filter + chain. + + A BCJ filter converts relative addresses in the machine code to + their absolute counterparts. This doesn't change the size of + the data but it increases redundancy, which can help LZMA2 to + produce 0-15 % smaller .xz file. The BCJ filters are always re- + versible, so using a BCJ filter for wrong type of data doesn't + cause any data loss, although it may make the compression ratio + slightly worse. The BCJ filters are very fast and use an in- + significant amount of memory. + + These BCJ filters have known problems related to the compression + ratio: + + o Some types of files containing executable code (for example, + object files, static libraries, and Linux kernel modules) + have the addresses in the instructions filled with filler + values. These BCJ filters will still do the address conver- + sion, which will make the compression worse with these files. + + o If a BCJ filter is applied on an archive, it is possible that + it makes the compression ratio worse than not using a BCJ + filter. For example, if there are similar or even identical + executables then filtering will likely make the files less + similar and thus compression is worse. The contents of non- + executable files in the same archive can matter too. In + practice one has to try with and without a BCJ filter to see + which is better in each situation. + + Different instruction sets have different alignment: the exe- + cutable file must be aligned to a multiple of this value in the + input data to make the filter work. + + Filter Alignment Notes + x86 1 32-bit or 64-bit x86 + ARM 4 + ARM-Thumb 2 + ARM64 4 4096-byte alignment is best + PowerPC 4 Big endian only + IA-64 16 Itanium + SPARC 4 + + Since the BCJ-filtered data is usually compressed with LZMA2, + the compression ratio may be improved slightly if the LZMA2 op- + tions are set to match the alignment of the selected BCJ filter. + For example, with the IA-64 filter, it's good to set pb=4 or + even pb=4,lp=4,lc=0 with LZMA2 (2^4=16). The x86 filter is an + exception; it's usually good to stick to LZMA2's default four- + byte alignment when compressing x86 executables. + + All BCJ filters support the same options: + + start=offset + Specify the start offset that is used when converting be- + tween relative and absolute addresses. The offset must + be a multiple of the alignment of the filter (see the ta- + ble above). The default is zero. In practice, the de- + fault is good; specifying a custom offset is almost never + useful. + + --delta[=options] + Add the Delta filter to the filter chain. The Delta filter can + be only used as a non-last filter in the filter chain. + + Currently only simple byte-wise delta calculation is supported. + It can be useful when compressing, for example, uncompressed + bitmap images or uncompressed PCM audio. However, special pur- + pose algorithms may give significantly better results than Delta + + LZMA2. This is true especially with audio, which compresses + faster and better, for example, with flac(1). + + Supported options: + + dist=distance + Specify the distance of the delta calculation in bytes. + distance must be 1-256. The default is 1. + + For example, with dist=2 and eight-byte input A1 B1 A2 B3 + A3 B5 A4 B7, the output will be A1 B1 01 02 01 02 01 02. + + Other options + -q, --quiet + Suppress warnings and notices. Specify this twice to suppress + errors too. This option has no effect on the exit status. That + is, even if a warning was suppressed, the exit status to indi- + cate a warning is still used. + + -v, --verbose + Be verbose. If standard error is connected to a terminal, xz + will display a progress indicator. Specifying --verbose twice + will give even more verbose output. + + The progress indicator shows the following information: + + o Completion percentage is shown if the size of the input file + is known. That is, the percentage cannot be shown in pipes. + + o Amount of compressed data produced (compressing) or consumed + (decompressing). + + o Amount of uncompressed data consumed (compressing) or pro- + duced (decompressing). + + o Compression ratio, which is calculated by dividing the amount + of compressed data processed so far by the amount of uncom- + pressed data processed so far. + + o Compression or decompression speed. This is measured as the + amount of uncompressed data consumed (compression) or pro- + duced (decompression) per second. It is shown after a few + seconds have passed since xz started processing the file. + + o Elapsed time in the format M:SS or H:MM:SS. + + o Estimated remaining time is shown only when the size of the + input file is known and a couple of seconds have already + passed since xz started processing the file. The time is + shown in a less precise format which never has any colons, + for example, 2 min 30 s. + + When standard error is not a terminal, --verbose will make xz + print the filename, compressed size, uncompressed size, compres- + sion ratio, and possibly also the speed and elapsed time on a + single line to standard error after compressing or decompressing + the file. The speed and elapsed time are included only when the + operation took at least a few seconds. If the operation didn't + finish, for example, due to user interruption, also the comple- + tion percentage is printed if the size of the input file is + known. + + -Q, --no-warn + Don't set the exit status to 2 even if a condition worth a warn- + ing was detected. This option doesn't affect the verbosity + level, thus both --quiet and --no-warn have to be used to not + display warnings and to not alter the exit status. + + --robot + Print messages in a machine-parsable format. This is intended + to ease writing frontends that want to use xz instead of li- + blzma, which may be the case with various scripts. The output + with this option enabled is meant to be stable across xz re- + leases. See the section ROBOT MODE for details. + + --info-memory + Display, in human-readable format, how much physical memory + (RAM) and how many processor threads xz thinks the system has + and the memory usage limits for compression and decompression, + and exit successfully. + + -h, --help + Display a help message describing the most commonly used op- + tions, and exit successfully. + + -H, --long-help + Display a help message describing all features of xz, and exit + successfully + + -V, --version + Display the version number of xz and liblzma in human readable + format. To get machine-parsable output, specify --robot before + --version. + +ROBOT MODE + The robot mode is activated with the --robot option. It makes the out- + put of xz easier to parse by other programs. Currently --robot is sup- + ported only together with --version, --info-memory, and --list. It + will be supported for compression and decompression in the future. + + Version + xz --robot --version prints the version number of xz and liblzma in the + following format: + + XZ_VERSION=XYYYZZZS + LIBLZMA_VERSION=XYYYZZZS + + X Major version. + + YYY Minor version. Even numbers are stable. Odd numbers are alpha + or beta versions. + + ZZZ Patch level for stable releases or just a counter for develop- + ment releases. + + S Stability. 0 is alpha, 1 is beta, and 2 is stable. S should be + always 2 when YYY is even. + + XYYYZZZS are the same on both lines if xz and liblzma are from the same + XZ Utils release. + + Examples: 4.999.9beta is 49990091 and 5.0.0 is 50000002. + + Memory limit information + xz --robot --info-memory prints a single line with multiple tab-sepa- + rated columns: + + 1. Total amount of physical memory (RAM) in bytes. + + 2. Memory usage limit for compression in bytes (--memlimit-compress). + A special value of 0 indicates the default setting which for sin- + gle-threaded mode is the same as no limit. + + 3. Memory usage limit for decompression in bytes (--memlimit-decom- + press). A special value of 0 indicates the default setting which + for single-threaded mode is the same as no limit. + + 4. Since xz 5.3.4alpha: Memory usage for multi-threaded decompression + in bytes (--memlimit-mt-decompress). This is never zero because a + system-specific default value shown in the column 5 is used if no + limit has been specified explicitly. This is also never greater + than the value in the column 3 even if a larger value has been + specified with --memlimit-mt-decompress. + + 5. Since xz 5.3.4alpha: A system-specific default memory usage limit + that is used to limit the number of threads when compressing with + an automatic number of threads (--threads=0) and no memory usage + limit has been specified (--memlimit-compress). This is also used + as the default value for --memlimit-mt-decompress. + + 6. Since xz 5.3.4alpha: Number of available processor threads. + + In the future, the output of xz --robot --info-memory may have more + columns, but never more than a single line. + + List mode + xz --robot --list uses tab-separated output. The first column of every + line has a string that indicates the type of the information found on + that line: + + name This is always the first line when starting to list a file. The + second column on the line is the filename. + + file This line contains overall information about the .xz file. This + line is always printed after the name line. + + stream This line type is used only when --verbose was specified. There + are as many stream lines as there are streams in the .xz file. + + block This line type is used only when --verbose was specified. There + are as many block lines as there are blocks in the .xz file. + The block lines are shown after all the stream lines; different + line types are not interleaved. + + summary + This line type is used only when --verbose was specified twice. + This line is printed after all block lines. Like the file line, + the summary line contains overall information about the .xz + file. + + totals This line is always the very last line of the list output. It + shows the total counts and sizes. + + The columns of the file lines: + 2. Number of streams in the file + 3. Total number of blocks in the stream(s) + 4. Compressed size of the file + 5. Uncompressed size of the file + 6. Compression ratio, for example, 0.123. If ratio is over + 9.999, three dashes (---) are displayed instead of the ra- + tio. + 7. Comma-separated list of integrity check names. The follow- + ing strings are used for the known check types: None, CRC32, + CRC64, and SHA-256. For unknown check types, Unknown-N is + used, where N is the Check ID as a decimal number (one or + two digits). + 8. Total size of stream padding in the file + + The columns of the stream lines: + 2. Stream number (the first stream is 1) + 3. Number of blocks in the stream + 4. Compressed start offset + 5. Uncompressed start offset + 6. Compressed size (does not include stream padding) + 7. Uncompressed size + 8. Compression ratio + 9. Name of the integrity check + 10. Size of stream padding + + The columns of the block lines: + 2. Number of the stream containing this block + 3. Block number relative to the beginning of the stream (the + first block is 1) + 4. Block number relative to the beginning of the file + 5. Compressed start offset relative to the beginning of the + file + 6. Uncompressed start offset relative to the beginning of the + file + 7. Total compressed size of the block (includes headers) + 8. Uncompressed size + 9. Compression ratio + 10. Name of the integrity check + + If --verbose was specified twice, additional columns are included on + the block lines. These are not displayed with a single --verbose, be- + cause getting this information requires many seeks and can thus be + slow: + 11. Value of the integrity check in hexadecimal + 12. Block header size + 13. Block flags: c indicates that compressed size is present, + and u indicates that uncompressed size is present. If the + flag is not set, a dash (-) is shown instead to keep the + string length fixed. New flags may be added to the end of + the string in the future. + 14. Size of the actual compressed data in the block (this ex- + cludes the block header, block padding, and check fields) + 15. Amount of memory (in bytes) required to decompress this + block with this xz version + 16. Filter chain. Note that most of the options used at com- + pression time cannot be known, because only the options that + are needed for decompression are stored in the .xz headers. + + The columns of the summary lines: + 2. Amount of memory (in bytes) required to decompress this file + with this xz version + 3. yes or no indicating if all block headers have both com- + pressed size and uncompressed size stored in them + Since xz 5.1.2alpha: + 4. Minimum xz version required to decompress the file + + The columns of the totals line: + 2. Number of streams + 3. Number of blocks + 4. Compressed size + 5. Uncompressed size + 6. Average compression ratio + 7. Comma-separated list of integrity check names that were + present in the files + 8. Stream padding size + 9. Number of files. This is here to keep the order of the ear- + lier columns the same as on file lines. + + If --verbose was specified twice, additional columns are included on + the totals line: + 10. Maximum amount of memory (in bytes) required to decompress + the files with this xz version + 11. yes or no indicating if all block headers have both com- + pressed size and uncompressed size stored in them + Since xz 5.1.2alpha: + 12. Minimum xz version required to decompress the file + + Future versions may add new line types and new columns can be added to + the existing line types, but the existing columns won't be changed. + +EXIT STATUS + 0 All is good. + + 1 An error occurred. + + 2 Something worth a warning occurred, but no actual errors oc- + curred. + + Notices (not warnings or errors) printed on standard error don't affect + the exit status. + +ENVIRONMENT + xz parses space-separated lists of options from the environment vari- + ables XZ_DEFAULTS and XZ_OPT, in this order, before parsing the options + from the command line. Note that only options are parsed from the en- + vironment variables; all non-options are silently ignored. Parsing is + done with getopt_long(3) which is used also for the command line argu- + ments. + + XZ_DEFAULTS + User-specific or system-wide default options. Typically this is + set in a shell initialization script to enable xz's memory usage + limiter by default. Excluding shell initialization scripts and + similar special cases, scripts must never set or unset XZ_DE- + FAULTS. + + XZ_OPT This is for passing options to xz when it is not possible to set + the options directly on the xz command line. This is the case + when xz is run by a script or tool, for example, GNU tar(1): + + XZ_OPT=-2v tar caf foo.tar.xz foo + + Scripts may use XZ_OPT, for example, to set script-specific de- + fault compression options. It is still recommended to allow + users to override XZ_OPT if that is reasonable. For example, in + sh(1) scripts one may use something like this: + + XZ_OPT=${XZ_OPT-"-7e"} + export XZ_OPT + +LZMA UTILS COMPATIBILITY + The command line syntax of xz is practically a superset of lzma, un- + lzma, and lzcat as found from LZMA Utils 4.32.x. In most cases, it is + possible to replace LZMA Utils with XZ Utils without breaking existing + scripts. There are some incompatibilities though, which may sometimes + cause problems. + + Compression preset levels + The numbering of the compression level presets is not identical in xz + and LZMA Utils. The most important difference is how dictionary sizes + are mapped to different presets. Dictionary size is roughly equal to + the decompressor memory usage. + + Level xz LZMA Utils + -0 256 KiB N/A + -1 1 MiB 64 KiB + -2 2 MiB 1 MiB + -3 4 MiB 512 KiB + -4 4 MiB 1 MiB + -5 8 MiB 2 MiB + -6 8 MiB 4 MiB + -7 16 MiB 8 MiB + -8 32 MiB 16 MiB + -9 64 MiB 32 MiB + + The dictionary size differences affect the compressor memory usage too, + but there are some other differences between LZMA Utils and XZ Utils, + which make the difference even bigger: + + Level xz LZMA Utils 4.32.x + -0 3 MiB N/A + -1 9 MiB 2 MiB + -2 17 MiB 12 MiB + -3 32 MiB 12 MiB + -4 48 MiB 16 MiB + -5 94 MiB 26 MiB + -6 94 MiB 45 MiB + -7 186 MiB 83 MiB + -8 370 MiB 159 MiB + -9 674 MiB 311 MiB + + The default preset level in LZMA Utils is -7 while in XZ Utils it is + -6, so both use an 8 MiB dictionary by default. + + Streamed vs. non-streamed .lzma files + The uncompressed size of the file can be stored in the .lzma header. + LZMA Utils does that when compressing regular files. The alternative + is to mark that uncompressed size is unknown and use end-of-payload + marker to indicate where the decompressor should stop. LZMA Utils uses + this method when uncompressed size isn't known, which is the case, for + example, in pipes. + + xz supports decompressing .lzma files with or without end-of-payload + marker, but all .lzma files created by xz will use end-of-payload + marker and have uncompressed size marked as unknown in the .lzma + header. This may be a problem in some uncommon situations. For exam- + ple, a .lzma decompressor in an embedded device might work only with + files that have known uncompressed size. If you hit this problem, you + need to use LZMA Utils or LZMA SDK to create .lzma files with known un- + compressed size. + + Unsupported .lzma files + The .lzma format allows lc values up to 8, and lp values up to 4. LZMA + Utils can decompress files with any lc and lp, but always creates files + with lc=3 and lp=0. Creating files with other lc and lp is possible + with xz and with LZMA SDK. + + The implementation of the LZMA1 filter in liblzma requires that the sum + of lc and lp must not exceed 4. Thus, .lzma files, which exceed this + limitation, cannot be decompressed with xz. + + LZMA Utils creates only .lzma files which have a dictionary size of 2^n + (a power of 2) but accepts files with any dictionary size. liblzma ac- + cepts only .lzma files which have a dictionary size of 2^n or 2^n + + 2^(n-1). This is to decrease false positives when detecting .lzma + files. + + These limitations shouldn't be a problem in practice, since practically + all .lzma files have been compressed with settings that liblzma will + accept. + + Trailing garbage + When decompressing, LZMA Utils silently ignore everything after the + first .lzma stream. In most situations, this is a bug. This also + means that LZMA Utils don't support decompressing concatenated .lzma + files. + + If there is data left after the first .lzma stream, xz considers the + file to be corrupt unless --single-stream was used. This may break ob- + scure scripts which have assumed that trailing garbage is ignored. + +NOTES + Compressed output may vary + The exact compressed output produced from the same uncompressed input + file may vary between XZ Utils versions even if compression options are + identical. This is because the encoder can be improved (faster or bet- + ter compression) without affecting the file format. The output can + vary even between different builds of the same XZ Utils version, if + different build options are used. + + The above means that once --rsyncable has been implemented, the result- + ing files won't necessarily be rsyncable unless both old and new files + have been compressed with the same xz version. This problem can be + fixed if a part of the encoder implementation is frozen to keep rsynca- + ble output stable across xz versions. + + Embedded .xz decompressors + Embedded .xz decompressor implementations like XZ Embedded don't neces- + sarily support files created with integrity check types other than none + and crc32. Since the default is --check=crc64, you must use + --check=none or --check=crc32 when creating files for embedded systems. + + Outside embedded systems, all .xz format decompressors support all the + check types, or at least are able to decompress the file without veri- + fying the integrity check if the particular check is not supported. + + XZ Embedded supports BCJ filters, but only with the default start off- + set. + +EXAMPLES + Basics + Compress the file foo into foo.xz using the default compression level + (-6), and remove foo if compression is successful: + + xz foo + + Decompress bar.xz into bar and don't remove bar.xz even if decompres- + sion is successful: + + xz -dk bar.xz + + Create baz.tar.xz with the preset -4e (-4 --extreme), which is slower + than the default -6, but needs less memory for compression and decom- + pression (48 MiB and 5 MiB, respectively): + + tar cf - baz | xz -4e > baz.tar.xz + + A mix of compressed and uncompressed files can be decompressed to stan- + dard output with a single command: + + xz -dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt + + Parallel compression of many files + On GNU and *BSD, find(1) and xargs(1) can be used to parallelize com- + pression of many files: + + find . -type f \! -name '*.xz' -print0 \ + | xargs -0r -P4 -n16 xz -T1 + + The -P option to xargs(1) sets the number of parallel xz processes. + The best value for the -n option depends on how many files there are to + be compressed. If there are only a couple of files, the value should + probably be 1; with tens of thousands of files, 100 or even more may be + appropriate to reduce the number of xz processes that xargs(1) will + eventually create. + + The option -T1 for xz is there to force it to single-threaded mode, be- + cause xargs(1) is used to control the amount of parallelization. + + Robot mode + Calculate how many bytes have been saved in total after compressing + multiple files: + + xz --robot --list *.xz | awk '/^totals/{print $5-$4}' + + A script may want to know that it is using new enough xz. The follow- + ing sh(1) script checks that the version number of the xz tool is at + least 5.0.0. This method is compatible with old beta versions, which + didn't support the --robot option: + + if ! eval "$(xz --robot --version 2> /dev/null)" || + [ "$XZ_VERSION" -lt 50000002 ]; then + echo "Your xz is too old." + fi + unset XZ_VERSION LIBLZMA_VERSION + + Set a memory usage limit for decompression using XZ_OPT, but if a limit + has already been set, don't increase it: + + NEWLIM=$((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 + + Custom compressor filter chains + The simplest use for custom filter chains is customizing a LZMA2 pre- + set. This can be useful, because the presets cover only a subset of + the potentially useful combinations of compression settings. + + The CompCPU columns of the tables from the descriptions of the options + -0 ... -9 and --extreme are useful when customizing LZMA2 presets. + Here are the relevant parts collected from those two tables: + + Preset CompCPU + -0 0 + -1 1 + -2 2 + -3 3 + -4 4 + -5 5 + -6 6 + -5e 7 + -6e 8 + + If you know that a file requires somewhat big dictionary (for example, + 32 MiB) to compress well, but you want to compress it quicker than xz + -8 would do, a preset with a low CompCPU value (for example, 1) can be + modified to use a bigger dictionary: + + xz --lzma2=preset=1,dict=32MiB foo.tar + + With certain files, the above command may be faster than xz -6 while + compressing significantly better. However, it must be emphasized that + only some files benefit from a big dictionary while keeping the CompCPU + value low. The most obvious situation, where a big dictionary can help + a lot, is an archive containing very similar files of at least a few + megabytes each. The dictionary size has to be significantly bigger + than any individual file to allow LZMA2 to take full advantage of the + similarities between consecutive files. + + If very high compressor and decompressor memory usage is fine, and the + file being compressed is at least several hundred megabytes, it may be + useful to use an even bigger dictionary than the 64 MiB that xz -9 + would use: + + xz -vv --lzma2=dict=192MiB big_foo.tar + + Using -vv (--verbose --verbose) like in the above example can be useful + to see the memory requirements of the compressor and decompressor. Re- + member that using a dictionary bigger than the size of the uncompressed + file is waste of memory, so the above command isn't useful for small + files. + + Sometimes the compression time doesn't matter, but the decompressor + memory usage has to be kept low, for example, to make it possible to + decompress the file on an embedded system. The following command uses + -6e (-6 --extreme) as a base and sets the dictionary to only 64 KiB. + The resulting file can be decompressed with XZ Embedded (that's why + there is --check=crc32) using about 100 KiB of memory. + + xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo + + If you want to squeeze out as many bytes as possible, adjusting the + number of literal context bits (lc) and number of position bits (pb) + can sometimes help. Adjusting the number of literal position bits (lp) + might help too, but usually lc and pb are more important. For example, + a source code archive contains mostly US-ASCII text, so something like + the following might give slightly (like 0.1 %) smaller file than xz -6e + (try also without lc=4): + + xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar + + Using another filter together with LZMA2 can improve compression with + certain file types. For example, to compress a x86-32 or x86-64 shared + library using the x86 BCJ filter: + + xz --x86 --lzma2 libfoo.so + + Note that the order of the filter options is significant. If --x86 is + specified after --lzma2, xz will give an error, because there cannot be + any filter after LZMA2, and also because the x86 BCJ filter cannot be + used as the last filter in the chain. + + The Delta filter together with LZMA2 can give good results with bitmap + images. It should usually beat PNG, which has a few more advanced fil- + ters than simple delta but uses Deflate for the actual compression. + + The image has to be saved in uncompressed format, for example, as un- + compressed TIFF. The distance parameter of the Delta filter is set to + match the number of bytes per pixel in the image. For example, 24-bit + RGB bitmap needs dist=3, and it is also good to pass pb=0 to LZMA2 to + accommodate the three-byte alignment: + + xz --delta=dist=3 --lzma2=pb=0 foo.tiff + + If multiple images have been put into a single archive (for example, + .tar), the Delta filter will work on that too as long as all images + have the same number of bytes per pixel. + +SEE ALSO + xzdec(1), xzdiff(1), xzgrep(1), xzless(1), xzmore(1), gzip(1), + bzip2(1), 7z(1) + + XZ Utils: + XZ Embedded: + LZMA SDK: + + + +Tukaani 2023-07-17 XZ(1) diff --git a/xz-5.4.5/doc/man/txt/xzdec.txt b/xz-5.4.5/doc/man/txt/xzdec.txt new file mode 100644 index 000000000..a914e2026 --- /dev/null +++ b/xz-5.4.5/doc/man/txt/xzdec.txt @@ -0,0 +1,80 @@ +XZDEC(1) XZ Utils XZDEC(1) + + + +NAME + xzdec, lzmadec - Small .xz and .lzma decompressors + +SYNOPSIS + xzdec [option...] [file...] + lzmadec [option...] [file...] + +DESCRIPTION + xzdec is a liblzma-based decompression-only tool for .xz (and only .xz) + files. xzdec is intended to work as a drop-in replacement for xz(1) in + the most common situations where a script has been written to use xz + --decompress --stdout (and possibly a few other commonly used options) + to decompress .xz files. lzmadec is identical to xzdec except that lz- + madec supports .lzma files instead of .xz files. + + To reduce the size of the executable, xzdec doesn't support multi- + threading or localization, and doesn't read options from XZ_DEFAULTS + and XZ_OPT environment variables. xzdec doesn't support displaying in- + termediate progress information: sending SIGINFO to xzdec does nothing, + but sending SIGUSR1 terminates the process instead of displaying + progress information. + +OPTIONS + -d, --decompress, --uncompress + Ignored for xz(1) compatibility. xzdec supports only decompres- + sion. + + -k, --keep + Ignored for xz(1) compatibility. xzdec never creates or removes + any files. + + -c, --stdout, --to-stdout + Ignored for xz(1) compatibility. xzdec always writes the decom- + pressed data to standard output. + + -q, --quiet + Specifying this once does nothing since xzdec never displays any + warnings or notices. Specify this twice to suppress errors. + + -Q, --no-warn + Ignored for xz(1) compatibility. xzdec never uses the exit sta- + tus 2. + + -h, --help + Display a help message and exit successfully. + + -V, --version + Display the version number of xzdec and liblzma. + +EXIT STATUS + 0 All was good. + + 1 An error occurred. + + xzdec doesn't have any warning messages like xz(1) has, thus the exit + status 2 is not used by xzdec. + +NOTES + Use xz(1) instead of xzdec or lzmadec for normal everyday use. xzdec + or lzmadec are meant only for situations where it is important to have + a smaller decompressor than the full-featured xz(1). + + xzdec and lzmadec are not really that small. The size can be reduced + further by dropping features from liblzma at compile time, but that + shouldn't usually be done for executables distributed in typical non- + embedded operating system distributions. If you need a truly small .xz + decompressor, consider using XZ Embedded. + +SEE ALSO + xz(1) + + XZ Embedded: + + + +Tukaani 2017-04-19 XZDEC(1) diff --git a/xz-5.4.5/doc/man/txt/xzdiff.txt b/xz-5.4.5/doc/man/txt/xzdiff.txt new file mode 100644 index 000000000..681b00c5c --- /dev/null +++ b/xz-5.4.5/doc/man/txt/xzdiff.txt @@ -0,0 +1,37 @@ +XZDIFF(1) XZ Utils XZDIFF(1) + + + +NAME + xzcmp, xzdiff, lzcmp, lzdiff - compare compressed files + +SYNOPSIS + xzcmp [cmp_options] file1 [file2] + xzdiff [diff_options] file1 [file2] + lzcmp [cmp_options] file1 [file2] + lzdiff [diff_options] file1 [file2] + +DESCRIPTION + xzcmp and xzdiff invoke cmp(1) or diff(1) on files compressed with + xz(1), lzma(1), gzip(1), bzip2(1), lzop(1), or zstd(1). All options + specified are passed directly to cmp(1) or diff(1). If only one file + is specified, then the files compared are file1 (which must have a suf- + fix of a supported compression format) and file1 from which the com- + pression format suffix has been stripped. If two files are specified, + then they are uncompressed if necessary and fed to cmp(1) or diff(1). + The exit status from cmp(1) or diff(1) is preserved unless a decompres- + sion error occurs; then exit status is 2. + + The names lzcmp and lzdiff are provided for backward compatibility with + LZMA Utils. + +SEE ALSO + cmp(1), diff(1), xz(1), gzip(1), bzip2(1), lzop(1), zstd(1), zdiff(1) + +BUGS + Messages from the cmp(1) or diff(1) programs refer to temporary file- + names instead of those specified. + + + +Tukaani 2021-06-04 XZDIFF(1) diff --git a/xz-5.4.5/doc/man/txt/xzgrep.txt b/xz-5.4.5/doc/man/txt/xzgrep.txt new file mode 100644 index 000000000..596520ca4 --- /dev/null +++ b/xz-5.4.5/doc/man/txt/xzgrep.txt @@ -0,0 +1,49 @@ +XZGREP(1) XZ Utils XZGREP(1) + + + +NAME + xzgrep - search compressed files for a regular expression + +SYNOPSIS + xzgrep [grep_options] [-e] pattern [file...] + xzegrep ... + xzfgrep ... + lzgrep ... + lzegrep ... + lzfgrep ... + +DESCRIPTION + xzgrep invokes grep(1) on files which may be either uncompressed or + compressed with xz(1), lzma(1), gzip(1), bzip2(1), lzop(1), or zstd(1). + All options specified are passed directly to grep(1). + + If no file is specified, then standard input is decompressed if neces- + sary and fed to grep(1). When reading from standard input, gzip(1), + bzip2(1), lzop(1), and zstd(1) compressed files are not supported. + + If xzgrep is invoked as xzegrep or xzfgrep then grep -E or grep -F is + used instead of grep(1). The same applies to names lzgrep, lzegrep, + and lzfgrep, which are provided for backward compatibility with LZMA + Utils. + +EXIT STATUS + 0 At least one match was found from at least one of the input + files. No errors occurred. + + 1 No matches were found from any of the input files. No errors + occurred. + + >1 One or more errors occurred. It is unknown if matches were + found. + +ENVIRONMENT + GREP If the GREP environment variable is set, xzgrep uses it instead + of grep(1), grep -E, or grep -F. + +SEE ALSO + grep(1), xz(1), gzip(1), bzip2(1), lzop(1), zstd(1), zgrep(1) + + + +Tukaani 2022-07-19 XZGREP(1) diff --git a/xz-5.4.5/doc/man/txt/xzless.txt b/xz-5.4.5/doc/man/txt/xzless.txt new file mode 100644 index 000000000..5c14c80c2 --- /dev/null +++ b/xz-5.4.5/doc/man/txt/xzless.txt @@ -0,0 +1,39 @@ +XZLESS(1) XZ Utils XZLESS(1) + + + +NAME + xzless, lzless - view xz or lzma compressed (text) files + +SYNOPSIS + xzless [file...] + lzless [file...] + +DESCRIPTION + xzless is a filter that displays text from compressed files to a termi- + nal. It works on files compressed with xz(1) or lzma(1). If no files + are given, xzless reads from standard input. + + xzless uses less(1) to present its output. Unlike xzmore, its choice + of pager cannot be altered by setting an environment variable. Com- + mands are based on both more(1) and vi(1) and allow back and forth + movement and searching. See the less(1) manual for more information. + + The command named lzless is provided for backward compatibility with + LZMA Utils. + +ENVIRONMENT + LESSMETACHARS + A list of characters special to the shell. Set by xzless unless + it is already set in the environment. + + LESSOPEN + Set to a command line to invoke the xz(1) decompressor for pre- + processing the input files to less(1). + +SEE ALSO + less(1), xz(1), xzmore(1), zless(1) + + + +Tukaani 2010-09-27 XZLESS(1) diff --git a/xz-5.4.5/doc/man/txt/xzmore.txt b/xz-5.4.5/doc/man/txt/xzmore.txt new file mode 100644 index 000000000..5a9d86c78 --- /dev/null +++ b/xz-5.4.5/doc/man/txt/xzmore.txt @@ -0,0 +1,34 @@ +XZMORE(1) XZ Utils XZMORE(1) + + + +NAME + xzmore, lzmore - view xz or lzma compressed (text) files + +SYNOPSIS + xzmore [file...] + lzmore [file...] + +DESCRIPTION + xzmore is a filter which allows examination of xz(1) or lzma(1) com- + pressed text files one screenful at a time on a soft-copy terminal. + + To use a pager other than the default more, set environment variable + PAGER to the name of the desired program. The name lzmore is provided + for backward compatibility with LZMA Utils. + + e or q When the prompt --More--(Next file: file) is printed, this com- + mand causes xzmore to exit. + + s When the prompt --More--(Next file: file) is printed, this com- + mand causes xzmore to skip the next file and continue. + + For list of keyboard commands supported while actually viewing the con- + tent of a file, refer to manual of the pager you use, usually more(1). + +SEE ALSO + more(1), xz(1), xzless(1), zmore(1) + + + +Tukaani 2013-06-30 XZMORE(1) diff --git a/xz-5.4.5/doc/xz-file-format.txt b/xz-5.4.5/doc/xz-file-format.txt new file mode 100644 index 000000000..09c83e0c8 --- /dev/null +++ b/xz-5.4.5/doc/xz-file-format.txt @@ -0,0 +1,1165 @@ + +The .xz File Format +=================== + +Version 1.1.0 (2022-12-11) + + + 0. Preface + 0.1. Notices and Acknowledgements + 0.2. Getting the Latest Version + 0.3. Version History + 1. Conventions + 1.1. Byte and Its Representation + 1.2. Multibyte Integers + 2. Overall Structure of .xz File + 2.1. Stream + 2.1.1. Stream Header + 2.1.1.1. Header Magic Bytes + 2.1.1.2. Stream Flags + 2.1.1.3. CRC32 + 2.1.2. Stream Footer + 2.1.2.1. CRC32 + 2.1.2.2. Backward Size + 2.1.2.3. Stream Flags + 2.1.2.4. Footer Magic Bytes + 2.2. Stream Padding + 3. Block + 3.1. Block Header + 3.1.1. Block Header Size + 3.1.2. Block Flags + 3.1.3. Compressed Size + 3.1.4. Uncompressed Size + 3.1.5. List of Filter Flags + 3.1.6. Header Padding + 3.1.7. CRC32 + 3.2. Compressed Data + 3.3. Block Padding + 3.4. Check + 4. Index + 4.1. Index Indicator + 4.2. Number of Records + 4.3. List of Records + 4.3.1. Unpadded Size + 4.3.2. Uncompressed Size + 4.4. Index Padding + 4.5. CRC32 + 5. Filter Chains + 5.1. Alignment + 5.2. Security + 5.3. Filters + 5.3.1. LZMA2 + 5.3.2. Branch/Call/Jump Filters for Executables + 5.3.3. Delta + 5.3.3.1. Format of the Encoded Output + 5.4. Custom Filter IDs + 5.4.1. Reserved Custom Filter ID Ranges + 6. Cyclic Redundancy Checks + 7. References + + +0. Preface + + This document describes the .xz file format (filename suffix + ".xz", MIME type "application/x-xz"). It is intended that this + this format replace the old .lzma format used by LZMA SDK and + LZMA Utils. + + +0.1. Notices and Acknowledgements + + This file format was designed by Lasse Collin + and Igor Pavlov. + + Special thanks for helping with this document goes to + Ville Koskinen. Thanks for helping with this document goes to + Mark Adler, H. Peter Anvin, Mikko Pouru, and Lars Wirzenius. + + This document has been put into the public domain. + + +0.2. Getting the Latest Version + + The latest official version of this document can be downloaded + from . + + Specific versions of this document have a filename + xz-file-format-X.Y.Z.txt where X.Y.Z is the version number. + For example, the version 1.0.0 of this document is available + at . + + +0.3. Version History + + Version Date Description + + 1.1.0 2022-12-11 Added ARM64 filter and clarified 32-bit + ARM endianness in Section 5.3.2, + language improvements in Section 5.4 + + 1.0.4 2009-08-27 Language improvements in Sections 1.2, + 2.1.1.2, 3.1.1, 3.1.2, and 5.3.1 + + 1.0.3 2009-06-05 Spelling fixes in Sections 5.1 and 5.4 + + 1.0.2 2009-06-04 Typo fixes in Sections 4 and 5.3.1 + + 1.0.1 2009-06-01 Typo fix in Section 0.3 and minor + clarifications to Sections 2, 2.2, + 3.3, 4.4, and 5.3.2 + + 1.0.0 2009-01-14 The first official version + + +1. Conventions + + The key words "MUST", "MUST NOT", "REQUIRED", "SHOULD", + "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in [RFC-2119]. + + Indicating a warning means displaying a message, returning + appropriate exit status, or doing something else to let the + user know that something worth warning occurred. The operation + SHOULD still finish if a warning is indicated. + + Indicating an error means displaying a message, returning + appropriate exit status, or doing something else to let the + user know that something prevented successfully finishing the + operation. The operation MUST be aborted once an error has + been indicated. + + +1.1. Byte and Its Representation + + In this document, byte is always 8 bits. + + A "null byte" has all bits unset. That is, the value of a null + byte is 0x00. + + To represent byte blocks, this document uses notation that + is similar to the notation used in [RFC-1952]: + + +-------+ + | Foo | One byte. + +-------+ + + +---+---+ + | Foo | Two bytes; that is, some of the vertical bars + +---+---+ can be missing. + + +=======+ + | Foo | Zero or more bytes. + +=======+ + + In this document, a boxed byte or a byte sequence declared + using this notation is called "a field". The example field + above would be called "the Foo field" or plain "Foo". + + If there are many fields, they may be split to multiple lines. + This is indicated with an arrow ("--->"): + + +=====+ + | Foo | + +=====+ + + +=====+ + ---> | Bar | + +=====+ + + The above is equivalent to this: + + +=====+=====+ + | Foo | Bar | + +=====+=====+ + + +1.2. Multibyte Integers + + Multibyte integers of static length, such as CRC values, + are stored in little endian byte order (least significant + byte first). + + When smaller values are more likely than bigger values (for + example file sizes), multibyte integers are encoded in a + variable-length representation: + - Numbers in the range [0, 127] are copied as is, and take + one byte of space. + - Bigger numbers will occupy two or more bytes. All but the + last byte of the multibyte representation have the highest + (eighth) bit set. + + For now, the value of the variable-length integers is limited + to 63 bits, which limits the encoded size of the integer to + nine bytes. These limits may be increased in the future if + needed. + + The following C code illustrates encoding and decoding of + variable-length integers. The functions return the number of + bytes occupied by the integer (1-9), or zero on error. + + #include + #include + + size_t + encode(uint8_t buf[static 9], uint64_t num) + { + if (num > UINT64_MAX / 2) + return 0; + + size_t i = 0; + + while (num >= 0x80) { + buf[i++] = (uint8_t)(num) | 0x80; + num >>= 7; + } + + buf[i++] = (uint8_t)(num); + + return i; + } + + size_t + decode(const uint8_t buf[], size_t size_max, uint64_t *num) + { + if (size_max == 0) + return 0; + + if (size_max > 9) + size_max = 9; + + *num = buf[0] & 0x7F; + size_t i = 0; + + while (buf[i++] & 0x80) { + if (i >= size_max || buf[i] == 0x00) + return 0; + + *num |= (uint64_t)(buf[i] & 0x7F) << (i * 7); + } + + return i; + } + + +2. Overall Structure of .xz File + + A standalone .xz files consist of one or more Streams which may + have Stream Padding between or after them: + + +========+================+========+================+ + | Stream | Stream Padding | Stream | Stream Padding | ... + +========+================+========+================+ + + The sizes of Stream and Stream Padding are always multiples + of four bytes, thus the size of every valid .xz file MUST be + a multiple of four bytes. + + While a typical file contains only one Stream and no Stream + Padding, a decoder handling standalone .xz files SHOULD support + files that have more than one Stream or Stream Padding. + + In contrast to standalone .xz files, when the .xz file format + is used as an internal part of some other file format or + communication protocol, it usually is expected that the decoder + stops after the first Stream, and doesn't look for Stream + Padding or possibly other Streams. + + +2.1. Stream + + +-+-+-+-+-+-+-+-+-+-+-+-+=======+=======+ +=======+ + | Stream Header | Block | Block | ... | Block | + +-+-+-+-+-+-+-+-+-+-+-+-+=======+=======+ +=======+ + + +=======+-+-+-+-+-+-+-+-+-+-+-+-+ + ---> | Index | Stream Footer | + +=======+-+-+-+-+-+-+-+-+-+-+-+-+ + + All the above fields have a size that is a multiple of four. If + Stream is used as an internal part of another file format, it + is RECOMMENDED to make the Stream start at an offset that is + a multiple of four bytes. + + Stream Header, Index, and Stream Footer are always present in + a Stream. The maximum size of the Index field is 16 GiB (2^34). + + There are zero or more Blocks. The maximum number of Blocks is + limited only by the maximum size of the Index field. + + Total size of a Stream MUST be less than 8 EiB (2^63 bytes). + The same limit applies to the total amount of uncompressed + data stored in a Stream. + + If an implementation supports handling .xz files with multiple + concatenated Streams, it MAY apply the above limits to the file + as a whole instead of limiting per Stream basis. + + +2.1.1. Stream Header + + +---+---+---+---+---+---+-------+------+--+--+--+--+ + | Header Magic Bytes | Stream Flags | CRC32 | + +---+---+---+---+---+---+-------+------+--+--+--+--+ + + +2.1.1.1. Header Magic Bytes + + The first six (6) bytes of the Stream are so called Header + Magic Bytes. They can be used to identify the file type. + + Using a C array and ASCII: + const uint8_t HEADER_MAGIC[6] + = { 0xFD, '7', 'z', 'X', 'Z', 0x00 }; + + In plain hexadecimal: + FD 37 7A 58 5A 00 + + Notes: + - The first byte (0xFD) was chosen so that the files cannot + be erroneously detected as being in .lzma format, in which + the first byte is in the range [0x00, 0xE0]. + - The sixth byte (0x00) was chosen to prevent applications + from misdetecting the file as a text file. + + If the Header Magic Bytes don't match, the decoder MUST + indicate an error. + + +2.1.1.2. Stream Flags + + The first byte of Stream Flags is always a null byte. In the + future, this byte may be used to indicate a new Stream version + or other Stream properties. + + The second byte of Stream Flags is a bit field: + + Bit(s) Mask Description + 0-3 0x0F Type of Check (see Section 3.4): + ID Size Check name + 0x00 0 bytes None + 0x01 4 bytes CRC32 + 0x02 4 bytes (Reserved) + 0x03 4 bytes (Reserved) + 0x04 8 bytes CRC64 + 0x05 8 bytes (Reserved) + 0x06 8 bytes (Reserved) + 0x07 16 bytes (Reserved) + 0x08 16 bytes (Reserved) + 0x09 16 bytes (Reserved) + 0x0A 32 bytes SHA-256 + 0x0B 32 bytes (Reserved) + 0x0C 32 bytes (Reserved) + 0x0D 64 bytes (Reserved) + 0x0E 64 bytes (Reserved) + 0x0F 64 bytes (Reserved) + 4-7 0xF0 Reserved for future use; MUST be zero for now. + + Implementations SHOULD support at least the Check IDs 0x00 + (None) and 0x01 (CRC32). Supporting other Check IDs is + OPTIONAL. If an unsupported Check is used, the decoder SHOULD + indicate a warning or error. + + If any reserved bit is set, the decoder MUST indicate an error. + It is possible that there is a new field present which the + decoder is not aware of, and can thus parse the Stream Header + incorrectly. + + +2.1.1.3. CRC32 + + The CRC32 is calculated from the Stream Flags field. It is + stored as an unsigned 32-bit little endian integer. If the + calculated value does not match the stored one, the decoder + MUST indicate an error. + + The idea is that Stream Flags would always be two bytes, even + if new features are needed. This way old decoders will be able + to verify the CRC32 calculated from Stream Flags, and thus + distinguish between corrupt files (CRC32 doesn't match) and + files that the decoder doesn't support (CRC32 matches but + Stream Flags has reserved bits set). + + +2.1.2. Stream Footer + + +-+-+-+-+---+---+---+---+-------+------+----------+---------+ + | CRC32 | Backward Size | Stream Flags | Footer Magic Bytes | + +-+-+-+-+---+---+---+---+-------+------+----------+---------+ + + +2.1.2.1. CRC32 + + The CRC32 is calculated from the Backward Size and Stream Flags + fields. It is stored as an unsigned 32-bit little endian + integer. If the calculated value does not match the stored one, + the decoder MUST indicate an error. + + The reason to have the CRC32 field before the Backward Size and + Stream Flags fields is to keep the four-byte fields aligned to + a multiple of four bytes. + + +2.1.2.2. Backward Size + + Backward Size is stored as a 32-bit little endian integer, + which indicates the size of the Index field as multiple of + four bytes, minimum value being four bytes: + + real_backward_size = (stored_backward_size + 1) * 4; + + If the stored value does not match the real size of the Index + field, the decoder MUST indicate an error. + + Using a fixed-size integer to store Backward Size makes + it slightly simpler to parse the Stream Footer when the + application needs to parse the Stream backwards. + + +2.1.2.3. Stream Flags + + This is a copy of the Stream Flags field from the Stream + Header. The information stored to Stream Flags is needed + when parsing the Stream backwards. The decoder MUST compare + the Stream Flags fields in both Stream Header and Stream + Footer, and indicate an error if they are not identical. + + +2.1.2.4. Footer Magic Bytes + + As the last step of the decoding process, the decoder MUST + verify the existence of Footer Magic Bytes. If they don't + match, an error MUST be indicated. + + Using a C array and ASCII: + const uint8_t FOOTER_MAGIC[2] = { 'Y', 'Z' }; + + In hexadecimal: + 59 5A + + The primary reason to have Footer Magic Bytes is to make + it easier to detect incomplete files quickly, without + uncompressing. If the file does not end with Footer Magic Bytes + (excluding Stream Padding described in Section 2.2), it cannot + be undamaged, unless someone has intentionally appended garbage + after the end of the Stream. + + +2.2. Stream Padding + + Only the decoders that support decoding of concatenated Streams + MUST support Stream Padding. + + Stream Padding MUST contain only null bytes. To preserve the + four-byte alignment of consecutive Streams, the size of Stream + Padding MUST be a multiple of four bytes. Empty Stream Padding + is allowed. If these requirements are not met, the decoder MUST + indicate an error. + + Note that non-empty Stream Padding is allowed at the end of the + file; there doesn't need to be a new Stream after non-empty + Stream Padding. This can be convenient in certain situations + [GNU-tar]. + + The possibility of Stream Padding MUST be taken into account + when designing an application that parses Streams backwards, + and the application supports concatenated Streams. + + +3. Block + + +==============+=================+===============+=======+ + | Block Header | Compressed Data | Block Padding | Check | + +==============+=================+===============+=======+ + + +3.1. Block Header + + +-------------------+-------------+=================+ + | Block Header Size | Block Flags | Compressed Size | + +-------------------+-------------+=================+ + + +===================+======================+ + ---> | Uncompressed Size | List of Filter Flags | + +===================+======================+ + + +================+--+--+--+--+ + ---> | Header Padding | CRC32 | + +================+--+--+--+--+ + + +3.1.1. Block Header Size + + This field overlaps with the Index Indicator field (see + Section 4.1). + + This field contains the size of the Block Header field, + including the Block Header Size field itself. Valid values are + in the range [0x01, 0xFF], which indicate the size of the Block + Header as multiples of four bytes, minimum size being eight + bytes: + + real_header_size = (encoded_header_size + 1) * 4; + + If a Block Header bigger than 1024 bytes is needed in the + future, a new field can be added between the Block Header and + Compressed Data fields. The presence of this new field would + be indicated in the Block Header field. + + +3.1.2. Block Flags + + The Block Flags field is a bit field: + + Bit(s) Mask Description + 0-1 0x03 Number of filters (1-4) + 2-5 0x3C Reserved for future use; MUST be zero for now. + 6 0x40 The Compressed Size field is present. + 7 0x80 The Uncompressed Size field is present. + + If any reserved bit is set, the decoder MUST indicate an error. + It is possible that there is a new field present which the + decoder is not aware of, and can thus parse the Block Header + incorrectly. + + +3.1.3. Compressed Size + + This field is present only if the appropriate bit is set in + the Block Flags field (see Section 3.1.2). + + The Compressed Size field contains the size of the Compressed + Data field, which MUST be non-zero. Compressed Size is stored + using the encoding described in Section 1.2. If the Compressed + Size doesn't match the size of the Compressed Data field, the + decoder MUST indicate an error. + + +3.1.4. Uncompressed Size + + This field is present only if the appropriate bit is set in + the Block Flags field (see Section 3.1.2). + + The Uncompressed Size field contains the size of the Block + after uncompressing. Uncompressed Size is stored using the + encoding described in Section 1.2. If the Uncompressed Size + does not match the real uncompressed size, the decoder MUST + indicate an error. + + Storing the Compressed Size and Uncompressed Size fields serves + several purposes: + - The decoder knows how much memory it needs to allocate + for a temporary buffer in multithreaded mode. + - Simple error detection: wrong size indicates a broken file. + - Seeking forwards to a specific location in streamed mode. + + It should be noted that the only reliable way to determine + the real uncompressed size is to uncompress the Block, + because the Block Header and Index fields may contain + (intentionally or unintentionally) invalid information. + + +3.1.5. List of Filter Flags + + +================+================+ +================+ + | Filter 0 Flags | Filter 1 Flags | ... | Filter n Flags | + +================+================+ +================+ + + The number of Filter Flags fields is stored in the Block Flags + field (see Section 3.1.2). + + The format of each Filter Flags field is as follows: + + +===========+====================+===================+ + | Filter ID | Size of Properties | Filter Properties | + +===========+====================+===================+ + + Both Filter ID and Size of Properties are stored using the + encoding described in Section 1.2. Size of Properties indicates + the size of the Filter Properties field as bytes. The list of + officially defined Filter IDs and the formats of their Filter + Properties are described in Section 5.3. + + Filter IDs greater than or equal to 0x4000_0000_0000_0000 + (2^62) are reserved for implementation-specific internal use. + These Filter IDs MUST never be used in List of Filter Flags. + + +3.1.6. Header Padding + + This field contains as many null byte as it is needed to make + the Block Header have the size specified in Block Header Size. + If any of the bytes are not null bytes, the decoder MUST + indicate an error. It is possible that there is a new field + present which the decoder is not aware of, and can thus parse + the Block Header incorrectly. + + +3.1.7. CRC32 + + The CRC32 is calculated over everything in the Block Header + field except the CRC32 field itself. It is stored as an + unsigned 32-bit little endian integer. If the calculated + value does not match the stored one, the decoder MUST indicate + an error. + + By verifying the CRC32 of the Block Header before parsing the + actual contents allows the decoder to distinguish between + corrupt and unsupported files. + + +3.2. Compressed Data + + The format of Compressed Data depends on Block Flags and List + of Filter Flags. Excluding the descriptions of the simplest + filters in Section 5.3, the format of the filter-specific + encoded data is out of scope of this document. + + +3.3. Block Padding + + Block Padding MUST contain 0-3 null bytes to make the size of + the Block a multiple of four bytes. This can be needed when + the size of Compressed Data is not a multiple of four. If any + of the bytes in Block Padding are not null bytes, the decoder + MUST indicate an error. + + +3.4. Check + + The type and size of the Check field depends on which bits + are set in the Stream Flags field (see Section 2.1.1.2). + + The Check, when used, is calculated from the original + uncompressed data. If the calculated Check does not match the + stored one, the decoder MUST indicate an error. If the selected + type of Check is not supported by the decoder, it SHOULD + indicate a warning or error. + + +4. Index + + +-----------------+===================+ + | Index Indicator | Number of Records | + +-----------------+===================+ + + +=================+===============+-+-+-+-+ + ---> | List of Records | Index Padding | CRC32 | + +=================+===============+-+-+-+-+ + + Index serves several purposes. Using it, one can + - verify that all Blocks in a Stream have been processed; + - find out the uncompressed size of a Stream; and + - quickly access the beginning of any Block (random access). + + +4.1. Index Indicator + + This field overlaps with the Block Header Size field (see + Section 3.1.1). The value of Index Indicator is always 0x00. + + +4.2. Number of Records + + This field indicates how many Records there are in the List + of Records field, and thus how many Blocks there are in the + Stream. The value is stored using the encoding described in + Section 1.2. If the decoder has decoded all the Blocks of the + Stream, and then notices that the Number of Records doesn't + match the real number of Blocks, the decoder MUST indicate an + error. + + +4.3. List of Records + + List of Records consists of as many Records as indicated by the + Number of Records field: + + +========+========+ + | Record | Record | ... + +========+========+ + + Each Record contains information about one Block: + + +===============+===================+ + | Unpadded Size | Uncompressed Size | + +===============+===================+ + + If the decoder has decoded all the Blocks of the Stream, it + MUST verify that the contents of the Records match the real + Unpadded Size and Uncompressed Size of the respective Blocks. + + Implementation hint: It is possible to verify the Index with + constant memory usage by calculating for example SHA-256 of + both the real size values and the List of Records, then + comparing the hash values. Implementing this using + non-cryptographic hash like CRC32 SHOULD be avoided unless + small code size is important. + + If the decoder supports random-access reading, it MUST verify + that Unpadded Size and Uncompressed Size of every completely + decoded Block match the sizes stored in the Index. If only + partial Block is decoded, the decoder MUST verify that the + processed sizes don't exceed the sizes stored in the Index. + + +4.3.1. Unpadded Size + + This field indicates the size of the Block excluding the Block + Padding field. That is, Unpadded Size is the size of the Block + Header, Compressed Data, and Check fields. Unpadded Size is + stored using the encoding described in Section 1.2. The value + MUST never be zero; with the current structure of Blocks, the + actual minimum value for Unpadded Size is five. + + Implementation note: Because the size of the Block Padding + field is not included in Unpadded Size, calculating the total + size of a Stream or doing random-access reading requires + calculating the actual size of the Blocks by rounding Unpadded + Sizes up to the next multiple of four. + + The reason to exclude Block Padding from Unpadded Size is to + ease making a raw copy of Compressed Data without Block + Padding. This can be useful, for example, if someone wants + to convert Streams to some other file format quickly. + + +4.3.2. Uncompressed Size + + This field indicates the Uncompressed Size of the respective + Block as bytes. The value is stored using the encoding + described in Section 1.2. + + +4.4. Index Padding + + This field MUST contain 0-3 null bytes to pad the Index to + a multiple of four bytes. If any of the bytes are not null + bytes, the decoder MUST indicate an error. + + +4.5. CRC32 + + The CRC32 is calculated over everything in the Index field + except the CRC32 field itself. The CRC32 is stored as an + unsigned 32-bit little endian integer. If the calculated + value does not match the stored one, the decoder MUST indicate + an error. + + +5. Filter Chains + + The Block Flags field defines how many filters are used. When + more than one filter is used, the filters are chained; that is, + the output of one filter is the input of another filter. The + following figure illustrates the direction of data flow. + + v Uncompressed Data ^ + | Filter 0 | + Encoder | Filter 1 | Decoder + | Filter n | + v Compressed Data ^ + + +5.1. Alignment + + Alignment of uncompressed input data is usually the job of + the application producing the data. For example, to get the + best results, an archiver tool should make sure that all + PowerPC executable files in the archive stream start at + offsets that are multiples of four bytes. + + Some filters, for example LZMA2, can be configured to take + advantage of specified alignment of input data. Note that + taking advantage of aligned input can be beneficial also when + a filter is not the first filter in the chain. For example, + if you compress PowerPC executables, you may want to use the + PowerPC filter and chain that with the LZMA2 filter. Because + not only the input but also the output alignment of the PowerPC + filter is four bytes, it is now beneficial to set LZMA2 + settings so that the LZMA2 encoder can take advantage of its + four-byte-aligned input data. + + The output of the last filter in the chain is stored to the + Compressed Data field, which is is guaranteed to be aligned + to a multiple of four bytes relative to the beginning of the + Stream. This can increase + - speed, if the filtered data is handled multiple bytes at + a time by the filter-specific encoder and decoder, + because accessing aligned data in computer memory is + usually faster; and + - compression ratio, if the output data is later compressed + with an external compression tool. + + +5.2. Security + + If filters would be allowed to be chained freely, it would be + possible to create malicious files, that would be very slow to + decode. Such files could be used to create denial of service + attacks. + + Slow files could occur when multiple filters are chained: + + v Compressed input data + | Filter 1 decoder (last filter) + | Filter 0 decoder (non-last filter) + v Uncompressed output data + + The decoder of the last filter in the chain produces a lot of + output from little input. Another filter in the chain takes the + output of the last filter, and produces very little output + while consuming a lot of input. As a result, a lot of data is + moved inside the filter chain, but the filter chain as a whole + gets very little work done. + + To prevent this kind of slow files, there are restrictions on + how the filters can be chained. These restrictions MUST be + taken into account when designing new filters. + + The maximum number of filters in the chain has been limited to + four, thus there can be at maximum of three non-last filters. + Of these three non-last filters, only two are allowed to change + the size of the data. + + The non-last filters, that change the size of the data, MUST + have a limit how much the decoder can compress the data: the + decoder SHOULD produce at least n bytes of output when the + filter is given 2n bytes of input. This limit is not + absolute, but significant deviations MUST be avoided. + + The above limitations guarantee that if the last filter in the + chain produces 4n bytes of output, the chain as a whole will + produce at least n bytes of output. + + +5.3. Filters + +5.3.1. LZMA2 + + LZMA (Lempel-Ziv-Markov chain-Algorithm) is a general-purpose + compression algorithm with high compression ratio and fast + decompression. LZMA is based on LZ77 and range coding + algorithms. + + LZMA2 is an extension on top of the original LZMA. LZMA2 uses + LZMA internally, but adds support for flushing the encoder, + uncompressed chunks, eases stateful decoder implementations, + and improves support for multithreading. Thus, the plain LZMA + will not be supported in this file format. + + Filter ID: 0x21 + Size of Filter Properties: 1 byte + Changes size of data: Yes + Allow as a non-last filter: No + Allow as the last filter: Yes + + Preferred alignment: + Input data: Adjustable to 1/2/4/8/16 byte(s) + Output data: 1 byte + + The format of the one-byte Filter Properties field is as + follows: + + Bits Mask Description + 0-5 0x3F Dictionary Size + 6-7 0xC0 Reserved for future use; MUST be zero for now. + + Dictionary Size is encoded with one-bit mantissa and five-bit + exponent. The smallest dictionary size is 4 KiB and the biggest + is 4 GiB. + + Raw value Mantissa Exponent Dictionary size + 0 2 11 4 KiB + 1 3 11 6 KiB + 2 2 12 8 KiB + 3 3 12 12 KiB + 4 2 13 16 KiB + 5 3 13 24 KiB + 6 2 14 32 KiB + ... ... ... ... + 35 3 27 768 MiB + 36 2 28 1024 MiB + 37 3 29 1536 MiB + 38 2 30 2048 MiB + 39 3 30 3072 MiB + 40 2 31 4096 MiB - 1 B + + Instead of having a table in the decoder, the dictionary size + can be decoded using the following C code: + + const uint8_t bits = get_dictionary_flags() & 0x3F; + if (bits > 40) + return DICTIONARY_TOO_BIG; // Bigger than 4 GiB + + uint32_t dictionary_size; + if (bits == 40) { + dictionary_size = UINT32_MAX; + } else { + dictionary_size = 2 | (bits & 1); + dictionary_size <<= bits / 2 + 11; + } + + +5.3.2. Branch/Call/Jump Filters for Executables + + These filters convert relative branch, call, and jump + instructions to their absolute counterparts in executable + files. This conversion increases redundancy and thus + compression ratio. + + Size of Filter Properties: 0 or 4 bytes + Changes size of data: No + Allow as a non-last filter: Yes + Allow as the last filter: No + + Below is the list of filters in this category. The alignment + is the same for both input and output data. + + Filter ID Alignment Description + 0x04 1 byte x86 filter (BCJ) + 0x05 4 bytes PowerPC (big endian) filter + 0x06 16 bytes IA64 filter + 0x07 4 bytes ARM filter [1] + 0x08 2 bytes ARM Thumb filter [1] + 0x09 4 bytes SPARC filter + 0x0A 4 bytes ARM64 filter [2] + + [1] These are for little endian instruction encoding. + This must not be confused with data endianness. + A processor configured for big endian data access + may still use little endian instruction encoding. + The filters don't care about the data endianness. + + [2] 4096-byte alignment gives the best results + because the address in the ADRP instruction + is a multiple of 4096 bytes. + + If the size of Filter Properties is four bytes, the Filter + Properties field contains the start offset used for address + conversions. It is stored as an unsigned 32-bit little endian + integer. The start offset MUST be a multiple of the alignment + of the filter as listed in the table above; if it isn't, the + decoder MUST indicate an error. If the size of Filter + Properties is zero, the start offset is zero. + + Setting the start offset may be useful if an executable has + multiple sections, and there are many cross-section calls. + Taking advantage of this feature usually requires usage of + the Subblock filter, whose design is not complete yet. + + +5.3.3. Delta + + The Delta filter may increase compression ratio when the value + of the next byte correlates with the value of an earlier byte + at specified distance. + + Filter ID: 0x03 + Size of Filter Properties: 1 byte + Changes size of data: No + Allow as a non-last filter: Yes + Allow as the last filter: No + + Preferred alignment: + Input data: 1 byte + Output data: Same as the original input data + + The Properties byte indicates the delta distance, which can be + 1-256 bytes backwards from the current byte: 0x00 indicates + distance of 1 byte and 0xFF distance of 256 bytes. + + +5.3.3.1. Format of the Encoded Output + + The code below illustrates both encoding and decoding with + the Delta filter. + + // Distance is in the range [1, 256]. + const unsigned int distance = get_properties_byte() + 1; + uint8_t pos = 0; + uint8_t delta[256]; + + memset(delta, 0, sizeof(delta)); + + while (1) { + const int byte = read_byte(); + if (byte == EOF) + break; + + uint8_t tmp = delta[(uint8_t)(distance + pos)]; + if (is_encoder) { + tmp = (uint8_t)(byte) - tmp; + delta[pos] = (uint8_t)(byte); + } else { + tmp = (uint8_t)(byte) + tmp; + delta[pos] = tmp; + } + + write_byte(tmp); + --pos; + } + + +5.4. Custom Filter IDs + + If a developer wants to use custom Filter IDs, there are two + choices. The first choice is to contact Lasse Collin and ask + him to allocate a range of IDs for the developer. + + The second choice is to generate a 40-bit random integer + which the developer can use as a personal Developer ID. + To minimize the risk of collisions, Developer ID has to be + a randomly generated integer, not manually selected "hex word". + The following command, which works on many free operating + systems, can be used to generate Developer ID: + + dd if=/dev/urandom bs=5 count=1 | hexdump + + The developer can then use the Developer ID to create unique + (well, hopefully unique) Filter IDs. + + Bits Mask Description + 0-15 0x0000_0000_0000_FFFF Filter ID + 16-55 0x00FF_FFFF_FFFF_0000 Developer ID + 56-62 0x3F00_0000_0000_0000 Static prefix: 0x3F + + The resulting 63-bit integer will use 9 bytes of space when + stored using the encoding described in Section 1.2. To get + a shorter ID, see the beginning of this Section how to + request a custom ID range. + + +5.4.1. Reserved Custom Filter ID Ranges + + Range Description + 0x0000_0300 - 0x0000_04FF Reserved to ease .7z compatibility + 0x0002_0000 - 0x0007_FFFF Reserved to ease .7z compatibility + 0x0200_0000 - 0x07FF_FFFF Reserved to ease .7z compatibility + + +6. Cyclic Redundancy Checks + + There are several incompatible variations to calculate CRC32 + and CRC64. For simplicity and clarity, complete examples are + provided to calculate the checks as they are used in this file + format. Implementations MAY use different code as long as it + gives identical results. + + The program below reads data from standard input, calculates + the CRC32 and CRC64 values, and prints the calculated values + as big endian hexadecimal strings to standard output. + + #include + #include + #include + + uint32_t crc32_table[256]; + uint64_t crc64_table[256]; + + void + init(void) + { + static const uint32_t poly32 = UINT32_C(0xEDB88320); + static const uint64_t poly64 + = UINT64_C(0xC96C5795D7870F42); + + for (size_t i = 0; i < 256; ++i) { + uint32_t crc32 = i; + uint64_t crc64 = i; + + for (size_t j = 0; j < 8; ++j) { + if (crc32 & 1) + crc32 = (crc32 >> 1) ^ poly32; + else + crc32 >>= 1; + + if (crc64 & 1) + crc64 = (crc64 >> 1) ^ poly64; + else + crc64 >>= 1; + } + + crc32_table[i] = crc32; + crc64_table[i] = crc64; + } + } + + uint32_t + crc32(const uint8_t *buf, size_t size, uint32_t crc) + { + crc = ~crc; + for (size_t i = 0; i < size; ++i) + crc = crc32_table[buf[i] ^ (crc & 0xFF)] + ^ (crc >> 8); + return ~crc; + } + + uint64_t + crc64(const uint8_t *buf, size_t size, uint64_t crc) + { + crc = ~crc; + for (size_t i = 0; i < size; ++i) + crc = crc64_table[buf[i] ^ (crc & 0xFF)] + ^ (crc >> 8); + return ~crc; + } + + int + main() + { + init(); + + uint32_t value32 = 0; + uint64_t value64 = 0; + uint64_t total_size = 0; + uint8_t buf[8192]; + + while (1) { + const size_t buf_size + = fread(buf, 1, sizeof(buf), stdin); + if (buf_size == 0) + break; + + total_size += buf_size; + value32 = crc32(buf, buf_size, value32); + value64 = crc64(buf, buf_size, value64); + } + + printf("Bytes: %" PRIu64 "\n", total_size); + printf("CRC-32: 0x%08" PRIX32 "\n", value32); + printf("CRC-64: 0x%016" PRIX64 "\n", value64); + + return 0; + } + + +7. References + + LZMA SDK - The original LZMA implementation + http://7-zip.org/sdk.html + + LZMA Utils - LZMA adapted to POSIX-like systems + http://tukaani.org/lzma/ + + XZ Utils - The next generation of LZMA Utils + http://tukaani.org/xz/ + + [RFC-1952] + GZIP file format specification version 4.3 + http://www.ietf.org/rfc/rfc1952.txt + - Notation of byte boxes in section "2.1. Overall conventions" + + [RFC-2119] + Key words for use in RFCs to Indicate Requirement Levels + http://www.ietf.org/rfc/rfc2119.txt + + [GNU-tar] + GNU tar 1.21 manual + http://www.gnu.org/software/tar/manual/html_node/Blocking-Factor.html + - Node 9.4.2 "Blocking Factor", paragraph that begins + "gzip will complain about trailing garbage" + - Note that this URL points to the latest version of the + manual, and may some day not contain the note which is in + 1.21. For the exact version of the manual, download GNU + tar 1.21: ftp://ftp.gnu.org/pub/gnu/tar/tar-1.21.tar.gz + diff --git a/xz-5.4.5/dos/INSTALL.txt b/xz-5.4.5/dos/INSTALL.txt new file mode 100644 index 000000000..e5ba85bdb --- /dev/null +++ b/xz-5.4.5/dos/INSTALL.txt @@ -0,0 +1,78 @@ + +Building XZ Utils for DOS +========================= + +Introduction + + This document explains how to build XZ Utils for DOS using DJGPP. + The resulting binaries should run at least on various DOS versions + and under Windows 95/98/98SE/ME. + + This is somewhat experimental and has got very little testing. + + Note: Makefile and config.h are updated only now and then. This + means that if you checked out a development version, building for + DOS might not work without updating Makefile and config.h first. + + +Getting and Installing DJGPP + + You may use to help + deciding what to download. If you are only interested in building + XZ Utils, the zip-picker may list files that you don't strictly + need. However, using the zip-picker can still be worth it to get a + nice short summary of installation instructions (they can be found + from readme.1st too). + + For a more manual method, first select a mirror from + and go the + subdirectory named "current". You need the following files: + + unzip32.exe (if you don't already have a LFN-capable unzipper) + v2/djdev205.zip + v2gnu/bnu234b.zip + v2gnu/gcc920b.zip + v2gnu/mak43b.zip + v2misc/csdpmi7b.zip + + If newer versions are available, probably you should try them first. + Note that versions older than djdev205.zip aren't supported. Also + note that you want csdpmi7b.zip even if you run under Windows or + DOSEMU because the XZ Utils Makefile will embed cwsdstub.exe to + the resulting xz.exe. + + See the instructions in readme.1st found from djdev205.zip. Here's + a short summary, but you should still read readme.1st. + + C:\> mkdir DJGPP + C:\> cd DJGPP + C:\DJGPP> c:\download\unzip32 c:\download\djdev205.zip + C:\DJGPP> c:\download\unzip32 c:\download\bnu234b.zip + C:\DJGPP> c:\download\unzip32 c:\download\gcc920b.zip + C:\DJGPP> c:\download\unzip32 c:\download\mak43b.zip + C:\DJGPP> c:\download\unzip32 c:\download\csdpmi7b.zip + + C:\DJGPP> set PATH=C:\DJGPP\BIN;%PATH% + C:\DJGPP> set DJGPP=C:\DJGPP\DJGPP.ENV + + You may want to add the last two lines into AUTOEXEC.BAT or have, + for example, DJGPP.BAT which you can run before using DJGPP. + + Make sure you use completely upper case path in the DJGPP environment + variable. This is not required by DJGPP, but the XZ Utils Makefile is + a bit stupid and expects that everything in DJGPP environment variable + is uppercase. + + +Building + + You need to have an environment that supports long filenames (LFN). + Once you have built XZ Utils, the resulting binaries can be run + without long filename support. + + Run "make" in this directory (the directory containing this + INSTALL.txt). You should get xz.exe (and a bunch of temporary files). + Other tools are not built. Having e.g. xzdec.exe doesn't save much + space compared to xz.exe because the DJGPP runtime makes the .exe + quite big anyway. + diff --git a/xz-5.4.5/dos/Makefile b/xz-5.4.5/dos/Makefile new file mode 100644 index 000000000..793adc1ce --- /dev/null +++ b/xz-5.4.5/dos/Makefile @@ -0,0 +1,149 @@ +############################################################################### +# +# Makefile to build XZ Utils using DJGPP +# +# Author: Lasse Collin +# +# This file has been put into the public domain. +# You can do whatever you want with this file. +# +############################################################################### + +# For debugging, set comment "#define NDEBUG 1" from config.h to enable +# the assert() macro, set STRIP=rem to disable stripping, and finally +# e.g. CFLAGS="-g -O0". +CC = gcc +STRIP = strip +CPPFLAGS = +CFLAGS = -g -Wall -Wextra -Wfatal-errors -march=i386 -mtune=i686 -O2 +LDFLAGS = -lemu + +ALL_CFLAGS = -std=gnu99 + +ALL_CPPFLAGS = \ + -I. \ + -I../lib \ + -I../src/common \ + -I../src/liblzma/api \ + -I../src/liblzma/common \ + -I../src/liblzma/check \ + -I../src/liblzma/rangecoder \ + -I../src/liblzma/lz \ + -I../src/liblzma/lzma \ + -I../src/liblzma/delta \ + -I../src/liblzma/simple \ + -DHAVE_CONFIG_H + +ALL_CPPFLAGS += $(CPPFLAGS) +ALL_CFLAGS += $(CFLAGS) + +.PHONY: all +all: xz.exe + +SRCS_C = \ + ../lib/getopt.c \ + ../lib/getopt1.c \ + ../src/common/tuklib_cpucores.c \ + ../src/common/tuklib_exit.c \ + ../src/common/tuklib_mbstr_fw.c \ + ../src/common/tuklib_mbstr_width.c \ + ../src/common/tuklib_open_stdxxx.c \ + ../src/common/tuklib_physmem.c \ + ../src/common/tuklib_progname.c \ + ../src/liblzma/check/check.c \ + ../src/liblzma/check/crc32_table.c \ + ../src/liblzma/check/crc64_table.c \ + ../src/liblzma/check/sha256.c \ + ../src/liblzma/common/alone_decoder.c \ + ../src/liblzma/common/alone_encoder.c \ + ../src/liblzma/common/block_decoder.c \ + ../src/liblzma/common/block_encoder.c \ + ../src/liblzma/common/block_header_decoder.c \ + ../src/liblzma/common/block_header_encoder.c \ + ../src/liblzma/common/block_util.c \ + ../src/liblzma/common/common.c \ + ../src/liblzma/common/file_info.c \ + ../src/liblzma/common/filter_common.c \ + ../src/liblzma/common/filter_decoder.c \ + ../src/liblzma/common/filter_encoder.c \ + ../src/liblzma/common/filter_flags_decoder.c \ + ../src/liblzma/common/filter_flags_encoder.c \ + ../src/liblzma/common/hardware_physmem.c \ + ../src/liblzma/common/index.c \ + ../src/liblzma/common/index_decoder.c \ + ../src/liblzma/common/index_encoder.c \ + ../src/liblzma/common/index_hash.c \ + ../src/liblzma/common/lzip_decoder.c \ + ../src/liblzma/common/stream_decoder.c \ + ../src/liblzma/common/stream_encoder.c \ + ../src/liblzma/common/stream_flags_common.c \ + ../src/liblzma/common/stream_flags_decoder.c \ + ../src/liblzma/common/stream_flags_encoder.c \ + ../src/liblzma/common/string_conversion.c \ + ../src/liblzma/common/vli_decoder.c \ + ../src/liblzma/common/vli_encoder.c \ + ../src/liblzma/common/vli_size.c \ + ../src/liblzma/delta/delta_common.c \ + ../src/liblzma/delta/delta_decoder.c \ + ../src/liblzma/delta/delta_encoder.c \ + ../src/liblzma/lz/lz_decoder.c \ + ../src/liblzma/lz/lz_encoder.c \ + ../src/liblzma/lz/lz_encoder_mf.c \ + ../src/liblzma/lzma/fastpos_table.c \ + ../src/liblzma/lzma/lzma2_decoder.c \ + ../src/liblzma/lzma/lzma2_encoder.c \ + ../src/liblzma/lzma/lzma_decoder.c \ + ../src/liblzma/lzma/lzma_encoder.c \ + ../src/liblzma/lzma/lzma_encoder_optimum_fast.c \ + ../src/liblzma/lzma/lzma_encoder_optimum_normal.c \ + ../src/liblzma/lzma/lzma_encoder_presets.c \ + ../src/liblzma/rangecoder/price_table.c \ + ../src/liblzma/simple/arm.c \ + ../src/liblzma/simple/arm64.c \ + ../src/liblzma/simple/armthumb.c \ + ../src/liblzma/simple/ia64.c \ + ../src/liblzma/simple/powerpc.c \ + ../src/liblzma/simple/simple_coder.c \ + ../src/liblzma/simple/simple_decoder.c \ + ../src/liblzma/simple/simple_encoder.c \ + ../src/liblzma/simple/sparc.c \ + ../src/liblzma/simple/x86.c \ + ../src/xz/args.c \ + ../src/xz/coder.c \ + ../src/xz/file_io.c \ + ../src/xz/hardware.c \ + ../src/xz/list.c \ + ../src/xz/main.c \ + ../src/xz/message.c \ + ../src/xz/mytime.c \ + ../src/xz/options.c \ + ../src/xz/signals.c \ + ../src/xz/suffix.c \ + ../src/xz/util.c +SRCS_ASM = \ + ../src/liblzma/check/crc32_x86.S \ + ../src/liblzma/check/crc64_x86.S + +OBJS_C = $(SRCS_C:.c=.o) +OBJS_ASM = $(SRCS_ASM:.S=.o) +OBJS = $(OBJS_C) $(OBJS_ASM) + +getopt.h: + update ../lib/getopt.in.h getopt.h + +$(OBJS): getopt.h + +$(OBJS_C): %.o: %.c + $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $< + +$(OBJS_ASM): %.o: %.S + $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $< + +# Make xz.exe not depend on an external DPMI server. +xz.exe: $(OBJS) + $(CC) $(ALL_CFLAGS) $(OBJS) $(LDFLAGS) -o $@ + $(STRIP) --strip-all $@ + exe2coff $@ + del $@ + copy /b $(DJGPP:DJGPP.ENV=BIN\CWSDSTUB.EXE) + $(@:.exe=) $@ + del $(@:.exe=) diff --git a/xz-5.4.5/dos/README.txt b/xz-5.4.5/dos/README.txt new file mode 100644 index 000000000..0e8f6c086 --- /dev/null +++ b/xz-5.4.5/dos/README.txt @@ -0,0 +1,123 @@ + +XZ Utils on DOS +=============== + +DOS-specific filename handling + + xz detects at runtime if long filename (LFN) support is + available and will use it by default. It can be disabled by + setting an environment variable: + + set lfn=n + + When xz is in LFN mode, it behaves pretty much the same as it + does on other operating systems. Examples: + + xz foo.tar -> foo.tar.xz + xz -d foo.tar.xz -> foo.tar + + xz -F lzma foo.tar -> foo.tar.lzma + xz -d foo.tar.lzma -> foo.tar + + When LFN support isn't available or it is disabled with LFN=n + environment setting, xz works in short filename (SFN) mode. This + affects filename suffix handling when compressing. + + When compressing to the .xz format in SFN mode: + + - Files without an extension get .xz just like on LFN systems. + + - *.tar files become *.txz (shorthand for *.tar.xz). *.txz + is recognized by xz on all supported operating systems. + (Try to avoid confusing this with gzipped .txt files.) + + - Files with 1-3 character extension have their extension modified + so that the last character is a dash ("-"). If the extension + is already three characters, the last character is lost. The + resulting *.?- or *.??- filename is recognized in LFN mode, but + it isn't recognized by xz on other operating systems. + + Examples: + + xz foo -> foo.xz | xz -d foo.xz -> foo + xz foo.tar -> foo.txz | xz -d foo.txz -> foo.tar + xz foo.c -> foo.c- | xz -d foo.c- -> foo.c + xz read.me -> read.me- | xz -d read.me- -> read.me + xz foo.txt -> foo.tx- | xz -d foo.tx- -> foo.tx ! + + Note that in the last example above, the third character of the + filename extension is lost. + + When compressing to the legacy .lzma format in SFN mode: + + - *.tar files become *.tlz (shorthand for *.tar.lzma). *.tlz + is recognized by xz on all supported operating systems. + + - Other files become *.lzm. The original filename extension + is lost. *.lzm is recognized also in LFN mode, but it is not + recognized by xz on other operating systems. + + Examples: + + xz -F lzma foo -> foo.lzm | xz -d foo.lzm -> foo + xz -F lzma foo.tar -> foo.tlz | xz -d foo.tlz -> foo.tar + xz -F lzma foo.c -> foo.lzm | xz -d foo.lzm -> foo ! + xz -F lzma read.me -> read.lzm | xz -d read.lzm -> read ! + xz -F lzma foo.txt -> foo.lzm | xz -d foo.lzm -> foo ! + + When compressing with a custom suffix (-S .SUF, --suffix=.SUF) to + any file format: + + - If the suffix begins with a dot, the filename extension is + replaced with the new suffix. The original extension is lost. + + - If the suffix doesn't begin with a dot and the filename has no + extension and the filename given on the command line doesn't + have a dot at the end, the custom suffix is appended just like + on LFN systems. + + - If the suffix doesn't begin with a dot and the filename has + an extension (or an extension-less filename is given with a dot + at the end), the last 1-3 characters of the filename extension + may get overwritten to fit the given custom suffix. + + Examples: + + xz -S x foo -> foox | xz -dS x foox -> foo + xz -S x foo. -> foo.x | xz -dS x foo.x -> foo + xz -S .x foo -> foo.x | xz -dS .x foo.x -> foo + xz -S .x foo. -> foo.x | xz -dS .x foo.x -> foo + xz -S x.y foo -> foox.y | xz -dS x.y foox.y -> foo + xz -S .a foo.c -> foo.a | xz -dS .a foo.a -> foo ! + xz -S a foo.c -> foo.ca | xz -dS a foo.ca -> foo.c + xz -S ab foo.c -> foo.cab | xz -dS ab foo.cab -> foo.c + xz -S ab read.me -> read.mab | xz -dS ab read.mab -> read.m ! + xz -S ab foo.txt -> foo.tab | xz -dS ab foo.tab -> foo.t ! + xz -S abc foo.txt -> foo.abc | xz -dS abc foo.abc -> foo ! + + When decompressing, the suffix handling in SFN mode is the same as + in LFN mode. The DOS-specific filenames *.lzm, *.?-, and *.??- are + recognized also in LFN mode. + + xz handles certain uncommon situations safely: + + - If the generated output filename refers to the same file as + the input file, xz detects this and refuses to compress or + decompress the input file even if --force is used. This can + happen when giving an overlong filename in SFN mode. E.g. + "xz -S x foo.texinfo" would try to write to foo.tex which on + SFN system is the same file as foo.texinfo. + + - If the generated output filename is a special file like "con" + or "prn", xz detects this and refuses to compress or decompress + the input file even if --force is used. + + +Bugs + + xz doesn't necessarily work in Dosbox. It should work in DOSEMU. + + Pressing Ctrl-c or Ctrl-Break won't remove the incomplete target file + when running under Windows XP Command Prompt (something goes wrong + with SIGINT handling). It works correctly under Windows 95/98/98SE/ME. + diff --git a/xz-5.4.5/dos/config.h b/xz-5.4.5/dos/config.h new file mode 100644 index 000000000..67b72f8fc --- /dev/null +++ b/xz-5.4.5/dos/config.h @@ -0,0 +1,153 @@ +/* How many MiB of RAM to assume if the real amount cannot be determined. */ +#define ASSUME_RAM 32 + +/* Define to 1 if crc32 integrity check is enabled. */ +#define HAVE_CHECK_CRC32 1 + +/* Define to 1 if crc64 integrity check is enabled. */ +#define HAVE_CHECK_CRC64 1 + +/* Define to 1 if sha256 integrity check is enabled. */ +#define HAVE_CHECK_SHA256 1 + +/* Define to 1 if any of HAVE_DECODER_foo have been defined. */ +#define HAVE_DECODERS 1 + +/* Define to 1 if arm decoder is enabled. */ +#define HAVE_DECODER_ARM 1 + +/* Define to 1 if arm64 decoder is enabled. */ +#define HAVE_DECODER_ARM64 1 + +/* Define to 1 if armthumb decoder is enabled. */ +#define HAVE_DECODER_ARMTHUMB 1 + +/* Define to 1 if delta decoder is enabled. */ +#define HAVE_DECODER_DELTA 1 + +/* Define to 1 if ia64 decoder is enabled. */ +#define HAVE_DECODER_IA64 1 + +/* Define to 1 if lzma1 decoder is enabled. */ +#define HAVE_DECODER_LZMA1 1 + +/* Define to 1 if lzma2 decoder is enabled. */ +#define HAVE_DECODER_LZMA2 1 + +/* Define to 1 if powerpc decoder is enabled. */ +#define HAVE_DECODER_POWERPC 1 + +/* Define to 1 if sparc decoder is enabled. */ +#define HAVE_DECODER_SPARC 1 + +/* Define to 1 if x86 decoder is enabled. */ +#define HAVE_DECODER_X86 1 + +/* Define to 1 if any of HAVE_ENCODER_foo have been defined. */ +#define HAVE_ENCODERS 1 + +/* Define to 1 if arm encoder is enabled. */ +#define HAVE_ENCODER_ARM 1 + +/* Define to 1 if arm64 encoder is enabled. */ +#define HAVE_ENCODER_ARM64 1 + +/* Define to 1 if armthumb encoder is enabled. */ +#define HAVE_ENCODER_ARMTHUMB 1 + +/* Define to 1 if delta encoder is enabled. */ +#define HAVE_ENCODER_DELTA 1 + +/* Define to 1 if ia64 encoder is enabled. */ +#define HAVE_ENCODER_IA64 1 + +/* Define to 1 if lzma1 encoder is enabled. */ +#define HAVE_ENCODER_LZMA1 1 + +/* Define to 1 if lzma2 encoder is enabled. */ +#define HAVE_ENCODER_LZMA2 1 + +/* Define to 1 if powerpc encoder is enabled. */ +#define HAVE_ENCODER_POWERPC 1 + +/* Define to 1 if sparc encoder is enabled. */ +#define HAVE_ENCODER_SPARC 1 + +/* Define to 1 if x86 encoder is enabled. */ +#define HAVE_ENCODER_X86 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LIMITS_H 1 + +/* Define to 1 if .lz (lzip) decompression support is enabled. */ +#define HAVE_LZIP_DECODER 1 + +/* Define to 1 to enable bt2 match finder. */ +#define HAVE_MF_BT2 1 + +/* Define to 1 to enable bt3 match finder. */ +#define HAVE_MF_BT3 1 + +/* Define to 1 to enable bt4 match finder. */ +#define HAVE_MF_BT4 1 + +/* Define to 1 to enable hc3 match finder. */ +#define HAVE_MF_HC3 1 + +/* Define to 1 to enable hc4 match finder. */ +#define HAVE_MF_HC4 1 + +/* Define to 1 if stdbool.h conforms to C99. */ +#define HAVE_STDBOOL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the `utimes' function. */ +#define HAVE_UTIMES 1 + +/* Define to 1 or 0, depending whether the compiler supports simple visibility + declarations. */ +#define HAVE_VISIBILITY 0 + +/* Define to 1 if the system has the type `_Bool'. */ +#define HAVE__BOOL 1 + +/* Define to 1 if the GNU C extension __builtin_assume_aligned is supported. + */ +#define HAVE___BUILTIN_ASSUME_ALIGNED 1 + +/* Define to 1 if the GNU C extensions __builtin_bswap16/32/64 are supported. + */ +#define HAVE___BUILTIN_BSWAPXX 1 + +/* Define to 1 to disable debugging code. */ +#define NDEBUG 1 + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "xz@tukaani.org" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "XZ Utils" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "https://tukaani.org/xz/" + +/* The size of `size_t', as computed by sizeof. */ +#define SIZEOF_SIZE_T 4 + +/* Define to 1 if the system supports fast unaligned access to 16-bit and + 32-bit integers. */ +#define TUKLIB_FAST_UNALIGNED_ACCESS 1 diff --git a/xz-5.4.5/doxygen/Doxyfile b/xz-5.4.5/doxygen/Doxyfile new file mode 100644 index 000000000..14350cf44 --- /dev/null +++ b/xz-5.4.5/doxygen/Doxyfile @@ -0,0 +1,2687 @@ +# Doxyfile 1.9.6 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). +# +# Note: +# +# Use doxygen to compare the used configuration file with the template +# configuration file: +# doxygen -x [configFile] +# Use doxygen to compare the used configuration file with the template +# configuration file without replacing the environment variables or CMake type +# replacement variables: +# doxygen -x_noenv [configFile] + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the configuration +# file that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# https://www.gnu.org/software/libiconv/ for the list of possible encodings. +# The default value is: UTF-8. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. + +PROJECT_NAME = "liblzma (XZ Utils)" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. + +PROJECT_NUMBER = + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer a +# quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = + +# With the PROJECT_LOGO tag one can specify a logo or an icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy +# the logo to the output directory. + +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where doxygen was started. If +# left blank the current directory will be used. + +OUTPUT_DIRECTORY = ../doc + +# If the CREATE_SUBDIRS tag is set to YES then doxygen will create up to 4096 +# sub-directories (in 2 levels) under the output directory of each output format +# and will distribute the generated files over these directories. Enabling this +# option can be useful when feeding doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. Adapt CREATE_SUBDIRS_LEVEL to +# control the number of sub-directories. +# The default value is: NO. + +CREATE_SUBDIRS = NO + +# Controls the number of sub-directories that will be created when +# CREATE_SUBDIRS tag is set to YES. Level 0 represents 16 directories, and every +# level increment doubles the number of directories, resulting in 4096 +# directories at level 8 which is the default and also the maximum value. The +# sub-directories are organized in 2 levels, the first level always has a fixed +# number of 16 directories. +# Minimum value: 0, maximum value: 8, default value: 8. +# This tag requires that the tag CREATE_SUBDIRS is set to YES. + +CREATE_SUBDIRS_LEVEL = 8 + +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Bulgarian, +# Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, English +# (United States), Esperanto, Farsi (Persian), Finnish, French, German, Greek, +# Hindi, Hungarian, Indonesian, Italian, Japanese, Japanese-en (Japanese with +# English messages), Korean, Korean-en (Korean with English messages), Latvian, +# Lithuanian, Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, +# Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, +# Swedish, Turkish, Ukrainian and Vietnamese. +# The default value is: English. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. +# The default value is: YES. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. +# The default value is: YES. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# doxygen will generate a detailed section even if there is only a brief +# description. +# The default value is: NO. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. +# The default value is: NO. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used +# The default value is: YES. + +FULL_PATH_NAMES = YES + +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the path to +# strip. +# +# Note that you can specify absolute paths here, but also relative paths, which +# will be relative from the directory where doxygen is started. +# This tag requires that the tag FULL_PATH_NAMES is set to YES. + +STRIP_FROM_PATH = ../src/liblzma/api + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# less readable) file names. This can be useful is your file systems doesn't +# support long names like on DOS, Mac, or CD-ROM. +# The default value is: NO. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) +# The default value is: NO. + +JAVADOC_AUTOBRIEF = NO + +# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line +# such as +# /*************** +# as being the beginning of a Javadoc-style comment "banner". If set to NO, the +# Javadoc-style will behave just like regular comments and it will not be +# interpreted by doxygen. +# The default value is: NO. + +JAVADOC_BANNER = NO + +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) +# The default value is: NO. + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. +# +# Note that setting this tag to YES also means that rational rose comments are +# not recognized any more. +# The default value is: NO. + +MULTILINE_CPP_IS_BRIEF = NO + +# By default Python docstrings are displayed as preformatted text and doxygen's +# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the +# doxygen's special commands can be used and the contents of the docstring +# documentation blocks is shown as doxygen documentation. +# The default value is: YES. + +PYTHON_DOCSTRING = YES + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# page for each member. If set to NO, the documentation of a member will be part +# of the file/class/namespace that contains it. +# The default value is: NO. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. +# Minimum value: 1, maximum value: 16, default value: 4. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:^^" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". Note that you cannot put \n's in the value part of an alias +# to insert newlines (in the resulting output). You can put ^^ in the value part +# of an alias to insert a newline as if a physical newline was in the original +# file. When you need a literal { or } or , in the value part of an alias you +# have to escape them by means of a backslash (\), this can lead to conflicts +# with the commands \{ and \} for these it is advised to use the version @{ and +# @} or use a double escape (\\{ and \\}) + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources. Doxygen will then generate output that is tailored for Fortran. +# The default value is: NO. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for VHDL. +# The default value is: NO. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice +# sources only. Doxygen will then generate output that is more tailored for that +# language. For instance, namespaces will be presented as modules, types will be +# separated into more groups, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_SLICE = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, JavaScript, +# Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice, +# VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: +# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser +# tries to guess whether the code is fixed or free formatted code, this is the +# default for Fortran type files). For instance to make doxygen treat .inc files +# as Fortran files (default is PHP), and .f files as C (default is Fortran), +# use: inc=Fortran f=C. +# +# Note: For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. When specifying no_extension you should add +# * to the FILE_PATTERNS. +# +# Note see also the list of default file extension mappings. + +EXTENSION_MAPPING = + +# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable +# documentation. See https://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you can +# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. +# The default value is: YES. + +MARKDOWN_SUPPORT = NO + +# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up +# to that level are automatically included in the table of contents, even if +# they do not have an id attribute. +# Note: This feature currently applies only to Markdown headings. +# Minimum value: 0, maximum value: 99, default value: 5. +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. + +TOC_INCLUDE_HEADINGS = 5 + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. +# The default value is: YES. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. +# The default value is: NO. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen +# will parse them like normal C++ but will assume all classes use public instead +# of private inheritance when no explicit protection keyword is present. +# The default value is: NO. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. + +IDL_PROPERTY_SUPPORT = NO + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. +# The default value is: NO. + +DISTRIBUTE_GROUP_DOC = NO + +# If one adds a struct or class to a group and this option is enabled, then also +# any nested class or struct is added to the same group. By default this option +# is disabled and one has to add nested compounds explicitly via \ingroup. +# The default value is: NO. + +GROUP_NESTED_COMPOUNDS = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. +# The default value is: NO. + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). +# The default value is: NO. + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. +# The default value is: NO. + +TYPEDEF_HIDES_STRUCT = NO + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. + +LOOKUP_CACHE_SIZE = 0 + +# The NUM_PROC_THREADS specifies the number of threads doxygen is allowed to use +# during processing. When set to 0 doxygen will based this on the number of +# cores available in the system. You can set it explicitly to a value larger +# than 0 to get more control over the balance between CPU load and processing +# speed. At this moment only the input processing can be done using multiple +# threads. Since this is still an experimental feature the default is set to 1, +# which effectively disables parallel processing. Please report any issues you +# encounter. Generating dot graphs in parallel is controlled by the +# DOT_NUM_THREADS setting. +# Minimum value: 0, maximum value: 32, default value: 1. + +NUM_PROC_THREADS = 1 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will +# be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual +# methods of a class will be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIV_VIRTUAL = NO + +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# included in the documentation. +# The default value is: NO. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. + +EXTRACT_LOCAL_CLASSES = NO + +# This flag is only useful for Objective-C code. If set to YES, local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO, only methods in the interface are +# included. +# The default value is: NO. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. + +EXTRACT_ANON_NSPACES = NO + +# If this flag is set to YES, the name of an unnamed parameter in a declaration +# will be determined by the corresponding definition. By default unnamed +# parameters remain unnamed in the output. +# The default value is: YES. + +RESOLVE_UNNAMED_PARAMS = YES + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO, these classes will be included in the various overviews. This option +# will also hide undocumented C++ concepts if enabled. This option has no effect +# if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# declarations. If set to NO, these declarations will be included in the +# documentation. +# The default value is: NO. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO, these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. + +INTERNAL_DOCS = NO + +# With the correct setting of option CASE_SENSE_NAMES doxygen will better be +# able to match the capabilities of the underlying filesystem. In case the +# filesystem is case sensitive (i.e. it supports files in the same directory +# whose names only differ in casing), the option must be set to YES to properly +# deal with such files in case they appear in the input. For filesystems that +# are not case sensitive the option should be set to NO to properly deal with +# output files written for symbols that only differ in casing, such as for two +# classes, one named CLASS and the other named Class, and to also support +# references to files without having to specify the exact matching casing. On +# Windows (including Cygwin) and MacOS, users should typically set this option +# to NO, whereas on Linux or other Unix flavors it should typically be set to +# YES. +# Possible values are: SYSTEM, NO and YES. +# The default value is: SYSTEM. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES, the +# scope will be hidden. +# The default value is: NO. + +HIDE_SCOPE_NAMES = NO + +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# append additional text to a page's title, such as Class Reference. If set to +# YES the compound reference will be hidden. +# The default value is: NO. + +HIDE_COMPOUND_REFERENCE= NO + +# If the SHOW_HEADERFILE tag is set to YES then the documentation for a class +# will show which file needs to be included to use the class. +# The default value is: YES. + +SHOW_HEADERFILE = YES + +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. + +SHOW_INCLUDE_FILES = YES + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. +# The default value is: YES. + +SORT_MEMBER_DOCS = NO + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. +# The default value is: YES. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. +# The default value is: YES. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if ... \endif and \cond +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = NO + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. See also section "Changing the +# layout of pages" for information. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + +WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + +WARN_IF_UNDOCUMENTED = YES + +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as documenting some parameters in +# a documented function twice, or documenting parameters that don't exist or +# using markup commands wrongly. +# The default value is: YES. + +WARN_IF_DOC_ERROR = YES + +# If WARN_IF_INCOMPLETE_DOC is set to YES, doxygen will warn about incomplete +# function parameter documentation. If set to NO, doxygen will accept that some +# parameters have no documentation without warning. +# The default value is: YES. + +WARN_IF_INCOMPLETE_DOC = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO, doxygen will only warn about wrong parameter +# documentation, but not about the absence of documentation. If EXTRACT_ALL is +# set to YES then this flag will automatically be disabled. See also +# WARN_IF_INCOMPLETE_DOC +# The default value is: NO. + +WARN_NO_PARAMDOC = NO + +# If WARN_IF_UNDOC_ENUM_VAL option is set to YES, doxygen will warn about +# undocumented enumeration values. If set to NO, doxygen will accept +# undocumented enumeration values. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: NO. + +WARN_IF_UNDOC_ENUM_VAL = NO + +# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS +# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but +# at the end of the doxygen process doxygen will return with a non-zero status. +# Possible values are: NO, YES and FAIL_ON_WARNINGS. +# The default value is: NO. + +WARN_AS_ERROR = NO + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# See also: WARN_LINE_FORMAT +# The default value is: $file:$line: $text. + +WARN_FORMAT = "$file:$line: $text" + +# In the $text part of the WARN_FORMAT command it is possible that a reference +# to a more specific place is given. To make it easier to jump to this place +# (outside of doxygen) the user can define a custom "cut" / "paste" string. +# Example: +# WARN_LINE_FORMAT = "'vi $file +$line'" +# See also: WARN_FORMAT +# The default value is: at line $line of file $file. + +WARN_LINE_FORMAT = "at line $line of file $file" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). In case the file specified cannot be opened for writing the +# warning and error messages are written to standard error. When as file - is +# specified the warning and error messages are written to standard output +# (stdout). + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING +# Note: If this tag is empty the current directory is searched. + +INPUT = ../src/liblzma/api + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: +# https://www.gnu.org/software/libiconv/) for the list of possible encodings. +# See also: INPUT_FILE_ENCODING +# The default value is: UTF-8. + +INPUT_ENCODING = UTF-8 + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses The INPUT_FILE_ENCODING tag can be used to specify +# character encoding on a per file pattern basis. Doxygen will compare the file +# name with each pattern and apply the encoding instead of the default +# INPUT_ENCODING) if there is a match. The character encodings are a list of the +# form: pattern=encoding (like *.php=ISO-8859-1). See cfg_input_encoding +# "INPUT_ENCODING" for further information on supported encodings. + +INPUT_FILE_ENCODING = + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# read by doxygen. +# +# Note the list of default checked file patterns might differ from the list of +# default file extension mappings. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, +# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, +# *.hh, *.hxx, *.hpp, *.h++, *.l, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, +# *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C +# comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, +# *.vhdl, *.ucf, *.qsf and *.ice. + +FILE_PATTERNS = *.c \ + *.h + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + +EXCLUDE_SYMLINKS = YES + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# ANamespace::AClass, ANamespace::*Test +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories use the pattern */test/* + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command: +# +# +# +# where is the value of the INPUT_FILTER tag, and is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. +# +# Note that doxygen will use the data processed and written to standard output +# for further processing, therefore nothing else, like debug statements or used +# commands (so in case of a Windows batch file always use @echo OFF), should be +# written to standard output. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = + +# The Fortran standard specifies that for fixed formatted Fortran code all +# characters from position 72 are to be considered as comment. A common +# extension is to allow longer lines before the automatic comment starts. The +# setting FORTRAN_COMMENT_AFTER will also make it possible that longer lines can +# be processed before the automatic comment starts. +# Minimum value: 7, maximum value: 10000, default value: 72. + +FORTRAN_COMMENT_AFTER = 72 + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. +# The default value is: NO. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# entity all documented functions referencing it will be listed. +# The default value is: NO. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. + +REFERENCES_RELATION = YES + +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. + +REFERENCES_LINK_SOURCE = YES + +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = NO + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see https://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + +VERBATIM_HEADERS = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + +ALPHABETICAL_INDEX = NO + +# The IGNORE_PREFIX tag can be used to specify a prefix (or a list of prefixes) +# that should be ignored while generating the index headers. The IGNORE_PREFIX +# tag works for classes, function and member names. The entity will be placed in +# the alphabetical list under the first letter of the entity name that remains +# after removing the prefix. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# The default value is: YES. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_OUTPUT = api + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefore more robust against future updates. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). +# Note: Since the styling of scrollbars can currently not be overruled in +# Webkit/Chromium, the styling will be left out of the default doxygen.css if +# one or more extra stylesheets have been specified. So if scrollbar +# customization is desired it has to be added explicitly. For an example see the +# documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE tag can be used to specify if the generated HTML output +# should be rendered with a dark or light theme. +# Possible values are: LIGHT always generate light mode output, DARK always +# generate dark mode output, AUTO_LIGHT automatically set the mode according to +# the user preference, use light mode if no preference is set (the default), +# AUTO_DARK automatically set the mode according to the user preference, use +# dark mode if no preference is set and TOGGLE allow to user to switch between +# light and dark mode via a button. +# The default value is: AUTO_LIGHT. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE = AUTO_LIGHT + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the style sheet and background images according to +# this color. Hue is specified as an angle on a color-wheel, see +# https://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. +# Minimum value: 0, maximum value: 359, default value: 220. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_HUE = 210 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use gray-scales only. A +# value of 255 will produce the most vivid colors. +# Minimum value: 0, maximum value: 255, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_SAT = 180 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. +# Minimum value: 40, maximum value: 240, default value: 80. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_GAMMA = 110 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting this +# to YES can help to show when doxygen was last run and thus if the +# documentation is up to date. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_TIMESTAMP = NO + +# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML +# documentation will contain a main index with vertical navigation menus that +# are dynamically created via JavaScript. If disabled, the navigation index will +# consists of multiple levels of tabs that are statically embedded in every HTML +# page. Disable this option to support browsers that do not have JavaScript, +# like the Qt help browser. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_MENUS = NO + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_SECTIONS = NO + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. +# Minimum value: 0, maximum value: 9999, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: +# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To +# create a documentation set, doxygen will generate a Makefile in the HTML +# output directory. Running make will produce the docset in that directory and +# running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy +# genXcode/_index.html for more information. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_DOCSET = NO + +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# The default value is: Doxygen generated docs. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# This tag determines the URL of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDURL = + +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. +# The default value is: org.doxygen.Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. +# The default value is: Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# on Windows. In the beginning of 2021 Microsoft took the original page, with +# a.o. the download links, offline the HTML help workshop was already many years +# in maintenance mode). You can download the HTML help workshop from the web +# archives at Installation executable (see: +# http://web.archive.org/web/20160201063255/http://download.microsoft.com/downlo +# ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe). +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_HTMLHELP = NO + +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be +# written to the html output directory. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_FILE = + +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler (hhc.exe). If non-empty, +# doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +HHC_LOCATION = + +# The GENERATE_CHI flag controls if a separate .chi index file is generated +# (YES) or that it should be included in the main .chm file (NO). +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +GENERATE_CHI = NO + +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) +# and project file content. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_INDEX_ENCODING = + +# The BINARY_TOC flag controls whether a binary table of contents is generated +# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders). +# The default value is: doc. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_VIRTUAL_FOLDER = doc + +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_SECT_FILTER_ATTRS = + +# The QHG_LOCATION tag can be used to specify the location (absolute path +# including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to +# run qhelpgenerator on the generated .qhp file. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can +# further fine tune the look of the index (see "Fine-tuning the output"). As an +# example, the default style sheet generated by doxygen has an example that +# shows how to put an image at the root of the tree instead of the PROJECT_NAME. +# Since the tree basically has the same information as the tab index, you could +# consider setting DISABLE_INDEX to YES when enabling this option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_TREEVIEW = NO + +# When both GENERATE_TREEVIEW and DISABLE_INDEX are set to YES, then the +# FULL_SIDEBAR option determines if the side bar is limited to only the treeview +# area (value NO) or if it should extend to the full height of the window (value +# YES). Setting this to YES gives a layout similar to +# https://docs.readthedocs.io with more room for contents, but less room for the +# project logo, title, and description. If either GENERATE_TREEVIEW or +# DISABLE_INDEX is set to NO, this option has no effect. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FULL_SIDEBAR = NO + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. +# Minimum value: 0, maximum value: 20, default value: 4. +# This tag requires that the tag GENERATE_HTML is set to YES. + +ENUM_VALUES_PER_LINE = 4 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. +# Minimum value: 0, maximum value: 1500, default value: 250. +# This tag requires that the tag GENERATE_HTML is set to YES. + +TREEVIEW_WIDTH = 250 + +# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# external symbols imported via tag files in a separate window. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +EXT_LINKS_IN_WINDOW = NO + +# If the OBFUSCATE_EMAILS tag is set to YES, doxygen will obfuscate email +# addresses. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +OBFUSCATE_EMAILS = YES + +# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg +# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see +# https://inkscape.org) to generate formulas as SVG images instead of PNGs for +# the HTML output. These images will generally look nicer at scaled resolutions. +# Possible values are: png (the default) and svg (looks nicer but requires the +# pdf2svg or inkscape tool). +# The default value is: png. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FORMULA_FORMAT = png + +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. +# Minimum value: 8, maximum value: 50, default value: 10. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_FONTSIZE = 10 + +# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands +# to create new LaTeX commands to be used in formulas as building blocks. See +# the section "Including formulas" for details. + +FORMULA_MACROFILE = + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# https://www.mathjax.org) which uses client side JavaScript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = NO + +# With MATHJAX_VERSION it is possible to specify the MathJax version to be used. +# Note that the different versions of MathJax have different requirements with +# regards to the different settings, so it is possible that also other MathJax +# settings have to be changed when switching between the different MathJax +# versions. +# Possible values are: MathJax_2 and MathJax_3. +# The default value is: MathJax_2. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_VERSION = MathJax_2 + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. For more details about the output format see MathJax +# version 2 (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) and MathJax version 3 +# (see: +# http://docs.mathjax.org/en/latest/web/components/output.html). +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility. This is the name for Mathjax version 2, for MathJax version 3 +# this will be translated into chtml), NativeMML (i.e. MathML. Only supported +# for NathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This +# is the name for Mathjax version 3, for MathJax version 2 this will be +# translated into HTML-CSS) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from https://www.mathjax.org before deployment. The default value is: +# - in case of MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2 +# - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3 +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/ + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# for MathJax version 2 (see +# https://docs.mathjax.org/en/v2.7-latest/tex.html#tex-and-latex-extensions): +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# For example for MathJax version 3 (see +# http://docs.mathjax.org/en/latest/input/tex/extensions/index.html): +# MATHJAX_EXTENSIONS = ams +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use + S +# (what the is depends on the OS and browser, but it is typically +# , /

I!$BgJ~ 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 diff --git a/xz-5.4.5/AUTHORS b/xz-5.4.5/AUTHORS new file mode 100644 index 000000000..69bbfc3ef --- /dev/null +++ b/xz-5.4.5/AUTHORS @@ -0,0 +1,39 @@ + +Authors of XZ Utils +=================== + + XZ Utils is developed and maintained by Lasse Collin + and Jia Tan . + + Major parts of liblzma are based on code written by Igor Pavlov, + specifically the LZMA SDK . Without + this code, XZ Utils wouldn't exist. + + The SHA-256 implementation in liblzma is based on the code found from + 7-Zip , which has a modified version of the SHA-256 + code found from Crypto++ . The SHA-256 code + in Crypto++ was written by Kevin Springle and Wei Dai. + + Some scripts have been adapted from gzip. The original versions + were written by Jean-loup Gailly, Charles Levert, and Paul Eggert. + Andrew Dudman helped adapting the scripts and their man pages for + XZ Utils. + + The initial version of the threaded .xz decompressor was written + by Sebastian Andrzej Siewior. + + The initial version of the .lz (lzip) decoder was written + by Michał Górny. + + CLMUL-accelerated CRC code was contributed by Ilya Kurdyukov. + + Other authors: + - Jonathan Nieder + - Joachim Henke + + The GNU Autotools-based build system contains files from many authors, + which I'm not trying to list here. + + Several people have contributed fixes or reported bugs. Most of them + are mentioned in the file THANKS. + diff --git a/xz-5.4.5/CMakeLists.txt b/xz-5.4.5/CMakeLists.txt new file mode 100644 index 000000000..b214d71d8 --- /dev/null +++ b/xz-5.4.5/CMakeLists.txt @@ -0,0 +1,1383 @@ +############################################################################# +# +# Very limited CMake support for building some parts of XZ Utils +# +# For now, this is intended to be useful to build static or shared liblzma +# on Windows with MSVC (to avoid the need to maintain Visual Studio project +# files). Building liblzma on a few other platforms should work too but it +# is somewhat experimental and not as portable as using ./configure. +# +# On some platforms this builds also xz and xzdec, but these are +# highly experimental and meant for testing only: +# - No replacement getopt_long(), libc must have it +# - No sandboxing support +# - No translations +# +# Other missing things: +# - No xzgrep or other scripts or their symlinks +# - No xz tests (liblzma tests only) +# +# NOTE: Even if the code compiles without warnings, the end result may be +# different than via ./configure. Specifically, the list of #defines +# may be different (if so, probably this CMakeLists.txt got them wrong). +# +# This file provides the following installation components (if you only +# need liblzma, install only its components!): +# - liblzma_Runtime +# - liblzma_Development +# - xz (on some platforms only) +# - xzdec (on some platforms only) +# +# To find the target liblzma::liblzma from other packages, use the CONFIG +# option with find_package() to avoid a conflict with the FindLibLZMA module +# with case-insensitive file systems. For example, to require liblzma 5.2.5 +# or a newer compatible version: +# +# find_package(liblzma 5.2.5 REQUIRED CONFIG) +# target_link_libraries(my_application liblzma::liblzma) +# +############################################################################# +# +# Author: Lasse Collin +# +# This file has been put into the public domain. +# You can do whatever you want with this file. +# +############################################################################# + +cmake_minimum_required(VERSION 3.13...3.27 FATAL_ERROR) + +include(CMakePushCheckState) +include(CheckIncludeFile) +include(CheckSymbolExists) +include(CheckStructHasMember) +include(CheckCSourceCompiles) +include(cmake/tuklib_large_file_support.cmake) +include(cmake/tuklib_integer.cmake) +include(cmake/tuklib_cpucores.cmake) +include(cmake/tuklib_physmem.cmake) +include(cmake/tuklib_progname.cmake) +include(cmake/tuklib_mbstr.cmake) + +set(PACKAGE_NAME "XZ Utils") +set(PACKAGE_BUGREPORT "xz@tukaani.org") +set(PACKAGE_URL "https://tukaani.org/xz/") + +# Get the package version from version.h into PACKAGE_VERSION variable. +file(READ src/liblzma/api/lzma/version.h PACKAGE_VERSION) +string(REGEX REPLACE +"^.*\n\ +#define LZMA_VERSION_MAJOR ([0-9]+)\n\ +.*\ +#define LZMA_VERSION_MINOR ([0-9]+)\n\ +.*\ +#define LZMA_VERSION_PATCH ([0-9]+)\n\ +.*$" + "\\1.\\2.\\3" PACKAGE_VERSION "${PACKAGE_VERSION}") + +# Among other things, this gives us variables xz_VERSION and xz_VERSION_MAJOR. +project(xz VERSION "${PACKAGE_VERSION}" LANGUAGES C) + +# We need a compiler that supports enough C99 or newer (variable-length arrays +# aren't needed, those are optional in C17). Setting CMAKE_C_STANDARD here +# makes it the default for all targets. It doesn't affect the INTERFACE so +# liblzma::liblzma won't end up with INTERFACE_COMPILE_FEATURES "c_std_99" +# (the API headers are C89 and C++ compatible). +set(CMAKE_C_STANDARD 99) +set(CMAKE_C_STANDARD_REQUIRED ON) + +# On Apple OSes, don't build executables as bundles: +set(CMAKE_MACOSX_BUNDLE OFF) + +# windres from GNU binutils can be tricky with command line arguments +# that contain spaces or other funny characters. Unfortunately we need +# a space in PACKAGE_NAME. Using \x20 to encode the US-ASCII space seems +# to work in both cmd.exe and /bin/sh. +# +# However, even \x20 isn't enough in all situations, resulting in +# "syntax error" from windres. Using --use-temp-file prevents windres +# from using popen() and this seems to fix the problem. +# +# llvm-windres from Clang/LLVM 16.0.6 and older: The \x20 results +# in "XZx20Utils" in the compiled binary. The option --use-temp-file +# makes no difference. +# +# llvm-windres 17.0.0 and later: It emulates GNU windres more accurately, so +# the workarounds used with GNU windres must be used with llvm-windres too. +# +# CMake 3.27 doesn't have CMAKE_RC_COMPILER_ID so we rely on +# CMAKE_C_COMPILER_ID. +if((MINGW OR CYGWIN OR MSYS) AND ( + NOT CMAKE_C_COMPILER_ID STREQUAL "Clang" OR + CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "17")) + # Use workarounds with GNU windres and llvm-windres >= 17.0.0. The \x20 + # in PACKAGE_NAME_DEFINITION works with gcc and clang too so we don't need + # to worry how to pass different flags to windres and the C compiler. + # Keep the original PACKAGE_NAME intact for generation of liblzma.pc. + string(APPEND CMAKE_RC_FLAGS " --use-temp-file") + string(REPLACE " " "\\x20" PACKAGE_NAME_DEFINITION "${PACKAGE_NAME}") +else() + # Elsewhere a space is safe. This also keeps things compatible with + # EBCDIC in case CMake-based build is ever done on such a system. + set(PACKAGE_NAME_DEFINITION "${PACKAGE_NAME}") +endif() + +# Definitions common to all targets: +add_compile_definitions( + # Package info: + PACKAGE_NAME="${PACKAGE_NAME_DEFINITION}" + PACKAGE_BUGREPORT="${PACKAGE_BUGREPORT}" + PACKAGE_URL="${PACKAGE_URL}" + + # Standard headers and types are available: + HAVE_STDBOOL_H + HAVE__BOOL + HAVE_STDINT_H + HAVE_INTTYPES_H + + # Always enable CRC32 since liblzma should never build without it. + HAVE_CHECK_CRC32 + + # Disable assert() checks when no build type has been specified. Non-empty + # build types like "Release" and "Debug" handle this by default. + $<$:NDEBUG> +) + + +###################### +# System definitions # +###################### + +# _GNU_SOURCE and such definitions. This specific macro is special since +# it also adds the definitions to CMAKE_REQUIRED_DEFINITIONS. +tuklib_use_system_extensions(ALL) + +# Check for large file support. It's required on some 32-bit platforms and +# even on 64-bit MinGW-w64 to get 64-bit off_t. This can be forced off on +# the CMake command line if needed: -DLARGE_FILE_SUPPORT=OFF +tuklib_large_file_support(ALL) + +# This is needed by liblzma and xz. +tuklib_integer(ALL) + +# This is used for liblzma.pc generation to add -lrt if needed. +set(LIBS) + +# Check for clock_gettime(). Do this before checking for threading so +# that we know there if CLOCK_MONOTONIC is available. +if(NOT WIN32) + check_symbol_exists(clock_gettime time.h HAVE_CLOCK_GETTIME) + + if(NOT HAVE_CLOCK_GETTIME) + # With glibc <= 2.17 or Solaris 10 this needs librt. + # Add librt for the next check for HAVE_CLOCK_GETTIME. If it is + # found after including the library, we know that librt is required. + list(INSERT CMAKE_REQUIRED_LIBRARIES 0 rt) + check_symbol_exists(clock_gettime time.h HAVE_CLOCK_GETTIME_LIBRT) + + # If it was found now, add librt to all targets and keep it in + # CMAKE_REQUIRED_LIBRARIES for further tests too. + if(HAVE_CLOCK_GETTIME_LIBRT) + link_libraries(rt) + set(LIBS "-lrt") # For liblzma.pc + else() + list(REMOVE_AT CMAKE_REQUIRED_LIBRARIES 0) + endif() + endif() + + if(HAVE_CLOCK_GETTIME OR HAVE_CLOCK_GETTIME_LIBRT) + add_compile_definitions(HAVE_CLOCK_GETTIME) + + # Check if CLOCK_MONOTONIC is available for clock_gettime(). + check_symbol_exists(CLOCK_MONOTONIC time.h HAVE_CLOCK_MONOTONIC) + tuklib_add_definition_if(ALL HAVE_CLOCK_MONOTONIC) + endif() +endif() + +# Options for new enough GCC or Clang on any arch or operating system: +if(CMAKE_C_COMPILER_ID MATCHES GNU|Clang) + # configure.ac has a long list but it won't be copied here: + add_compile_options(-Wall -Wextra) +endif() + + +############################################################################# +# liblzma +############################################################################# + +option(BUILD_SHARED_LIBS "Build liblzma as a shared library instead of static") + +add_library(liblzma + src/common/mythread.h + src/common/sysdefs.h + src/common/tuklib_common.h + src/common/tuklib_config.h + src/common/tuklib_integer.h + src/common/tuklib_physmem.c + src/common/tuklib_physmem.h + src/liblzma/api/lzma.h + src/liblzma/api/lzma/base.h + src/liblzma/api/lzma/bcj.h + src/liblzma/api/lzma/block.h + src/liblzma/api/lzma/check.h + src/liblzma/api/lzma/container.h + src/liblzma/api/lzma/delta.h + src/liblzma/api/lzma/filter.h + src/liblzma/api/lzma/hardware.h + src/liblzma/api/lzma/index.h + src/liblzma/api/lzma/index_hash.h + src/liblzma/api/lzma/lzma12.h + src/liblzma/api/lzma/stream_flags.h + src/liblzma/api/lzma/version.h + src/liblzma/api/lzma/vli.h + src/liblzma/check/check.c + src/liblzma/check/check.h + src/liblzma/check/crc_macros.h + src/liblzma/common/block_util.c + src/liblzma/common/common.c + src/liblzma/common/common.h + src/liblzma/common/easy_preset.c + src/liblzma/common/easy_preset.h + src/liblzma/common/filter_common.c + src/liblzma/common/filter_common.h + src/liblzma/common/hardware_physmem.c + src/liblzma/common/index.c + src/liblzma/common/index.h + src/liblzma/common/memcmplen.h + src/liblzma/common/stream_flags_common.c + src/liblzma/common/stream_flags_common.h + src/liblzma/common/string_conversion.c + src/liblzma/common/vli_size.c +) + +target_include_directories(liblzma PRIVATE + src/liblzma/api + src/liblzma/common + src/liblzma/check + src/liblzma/lz + src/liblzma/rangecoder + src/liblzma/lzma + src/liblzma/delta + src/liblzma/simple + src/common +) + + +###################### +# Size optimizations # +###################### + +option(ENABLE_SMALL "Reduce code size at expense of speed. \ +This may be useful together with CMAKE_BUILD_TYPE=MinSizeRel.") + +if(ENABLE_SMALL) + add_compile_definitions(HAVE_SMALL) +endif() + + +########## +# Checks # +########## + +set(ADDITIONAL_SUPPORTED_CHECKS crc64 sha256) + +set(ADDITIONAL_CHECK_TYPES "${ADDITIONAL_SUPPORTED_CHECKS}" CACHE STRING + "Additional check types to support (crc32 is always built)") + +foreach(CHECK IN LISTS ADDITIONAL_CHECK_TYPES) + if(NOT CHECK IN_LIST ADDITIONAL_SUPPORTED_CHECKS) + message(FATAL_ERROR "'${CHECK}' is not a supported check type") + endif() +endforeach() + +if(ENABLE_SMALL) + target_sources(liblzma PRIVATE src/liblzma/check/crc32_small.c) +else() + target_sources(liblzma PRIVATE + src/liblzma/check/crc32_fast.c + src/liblzma/check/crc32_table.c + src/liblzma/check/crc32_table_be.h + src/liblzma/check/crc32_table_le.h + ) +endif() + +if("crc64" IN_LIST ADDITIONAL_CHECK_TYPES) + add_compile_definitions("HAVE_CHECK_CRC64") + + if(ENABLE_SMALL) + target_sources(liblzma PRIVATE src/liblzma/check/crc64_small.c) + else() + target_sources(liblzma PRIVATE + src/liblzma/check/crc64_fast.c + src/liblzma/check/crc64_table.c + src/liblzma/check/crc64_table_be.h + src/liblzma/check/crc64_table_le.h + ) + endif() +endif() + +if("sha256" IN_LIST ADDITIONAL_CHECK_TYPES) + add_compile_definitions("HAVE_CHECK_SHA256") + target_sources(liblzma PRIVATE src/liblzma/check/sha256.c) +endif() + + +################# +# Match finders # +################# + +set(SUPPORTED_MATCH_FINDERS hc3 hc4 bt2 bt3 bt4) + +set(MATCH_FINDERS "${SUPPORTED_MATCH_FINDERS}" CACHE STRING + "Match finders to support (at least one is required for LZMA1 or LZMA2)") + +foreach(MF IN LISTS MATCH_FINDERS) + if(MF IN_LIST SUPPORTED_MATCH_FINDERS) + string(TOUPPER "${MF}" MF_UPPER) + add_compile_definitions("HAVE_MF_${MF_UPPER}") + else() + message(FATAL_ERROR "'${MF}' is not a supported match finder") + endif() +endforeach() + + +############# +# Threading # +############# + +# Supported threading methods: +# ON - autodetect the best threading method. The autodetection will +# prefer Windows threading (win95 or vista) over posix if both are +# available. vista threads will be used over win95 unless it is a +# 32-bit build. +# OFF - Disable threading. +# posix - Use posix threading (pthreads), or throw an error if not available. +# win95 - Use Windows win95 threading, or throw an error if not available. +# vista - Use Windows vista threading, or throw an error if not available. +set(SUPPORTED_THREADING_METHODS ON OFF posix win95 vista) + +set(ENABLE_THREADS ON CACHE STRING + "Threading method: Set to 'ON' to autodetect, 'OFF' to disable threading.") + +# Create dropdown in CMake GUI since only 1 threading method is possible +# to select in a build. +set_property(CACHE ENABLE_THREADS + PROPERTY STRINGS "${SUPPORTED_THREADING_METHODS}") + +# This is a flag variable set when win95 threads are used. We must ensure +# the combination of enable_small and win95 threads is not used without a +# compiler supporting attribute __constructor__. +set(USE_WIN95_THREADS OFF) + +# This is a flag variable set when posix threads (pthreads) are used. +# It's needed when creating liblzma-config.cmake where dependency on +# Threads::Threads is only needed with pthreads. +set(USE_POSIX_THREADS OFF) + +if(NOT ENABLE_THREADS IN_LIST SUPPORTED_THREADING_METHODS) + message(FATAL_ERROR "'${ENABLE_THREADS}' is not a supported " + "threading method") +endif() + +if(ENABLE_THREADS) + # Also set THREADS_PREFER_PTHREAD_FLAG since the flag has no effect + # for Windows threading. + set(THREADS_PREFER_PTHREAD_FLAG TRUE) + find_package(Threads REQUIRED) + + # If both Windows and posix threading are available, prefer Windows. + # Note that on Cygwin CMAKE_USE_WIN32_THREADS_INIT is false. + if(CMAKE_USE_WIN32_THREADS_INIT AND NOT ENABLE_THREADS STREQUAL "posix") + if(ENABLE_THREADS STREQUAL "win95" + OR (ENABLE_THREADS STREQUAL "ON" + AND CMAKE_SIZEOF_VOID_P EQUAL 4)) + # Use Windows 95 (and thus XP) compatible threads. + # This avoids use of features that were added in + # Windows Vista. This is used for 32-bit x86 builds for + # compatibility reasons since it makes no measurable difference + # in performance compared to Vista threads. + set(USE_WIN95_THREADS ON) + add_compile_definitions(MYTHREAD_WIN95) + else() + add_compile_definitions(MYTHREAD_VISTA) + endif() + elseif(CMAKE_USE_PTHREADS_INIT) + if(ENABLE_THREADS STREQUAL "posix" OR ENABLE_THREADS STREQUAL "ON") + # The threading library only needs to be explicitly linked + # for posix threads, so this is needed for creating + # liblzma-config.cmake later. + set(USE_POSIX_THREADS ON) + + target_link_libraries(liblzma Threads::Threads) + add_compile_definitions(MYTHREAD_POSIX) + + # Check if pthread_condattr_setclock() exists to + # use CLOCK_MONOTONIC. + if(HAVE_CLOCK_MONOTONIC) + list(INSERT CMAKE_REQUIRED_LIBRARIES 0 + "${CMAKE_THREAD_LIBS_INIT}") + check_symbol_exists(pthread_condattr_setclock pthread.h + HAVE_PTHREAD_CONDATTR_SETCLOCK) + tuklib_add_definition_if(ALL HAVE_PTHREAD_CONDATTR_SETCLOCK) + endif() + else() + message(SEND_ERROR + "Windows threading method was requested but a compatible " + "library could not be found") + endif() + else() + message(SEND_ERROR "No supported threading library found") + endif() + + target_sources(liblzma PRIVATE + src/common/tuklib_cpucores.c + src/common/tuklib_cpucores.h + src/liblzma/common/hardware_cputhreads.c + src/liblzma/common/outqueue.c + src/liblzma/common/outqueue.h + ) +endif() + + +############ +# Encoders # +############ + +set(SIMPLE_FILTERS + x86 + arm + armthumb + arm64 + powerpc + ia64 + sparc +) + +# The SUPPORTED_FILTERS are shared between Encoders and Decoders +# since only lzip does not appear in both lists. lzip is a special +# case anyway, so it is handled separately in the Decoders section. +set(SUPPORTED_FILTERS + lzma1 + lzma2 + delta + "${SIMPLE_FILTERS}" +) + +set(ENCODERS "${SUPPORTED_FILTERS}" CACHE STRING "Encoders to support") + +# If LZMA2 is enabled, then LZMA1 must also be enabled. +if(NOT "lzma1" IN_LIST ENCODERS AND "lzma2" IN_LIST ENCODERS) + message(FATAL_ERROR "LZMA2 encoder requires that LZMA1 is also enabled") +endif() + +# If LZMA1 is enabled, then at least one match finder must be enabled. +if(MATCH_FINDERS STREQUAL "" AND "lzma1" IN_LIST ENCODERS) + message(FATAL_ERROR "At least 1 match finder is required for an " + "LZ-based encoder") +endif() + +set(HAVE_DELTA_CODER OFF) +set(SIMPLE_ENCODERS OFF) +set(HAVE_ENCODERS OFF) + +foreach(ENCODER IN LISTS ENCODERS) + if(ENCODER IN_LIST SUPPORTED_FILTERS) + set(HAVE_ENCODERS ON) + + if(NOT SIMPLE_ENCODERS AND ENCODER IN_LIST SIMPLE_FILTERS) + set(SIMPLE_ENCODERS ON) + endif() + + string(TOUPPER "${ENCODER}" ENCODER_UPPER) + add_compile_definitions("HAVE_ENCODER_${ENCODER_UPPER}") + else() + message(FATAL_ERROR "'${ENCODER}' is not a supported encoder") + endif() +endforeach() + +if(HAVE_ENCODERS) + add_compile_definitions(HAVE_ENCODERS) + + target_sources(liblzma PRIVATE + src/liblzma/common/alone_encoder.c + src/liblzma/common/block_buffer_encoder.c + src/liblzma/common/block_buffer_encoder.h + src/liblzma/common/block_encoder.c + src/liblzma/common/block_encoder.h + src/liblzma/common/block_header_encoder.c + src/liblzma/common/easy_buffer_encoder.c + src/liblzma/common/easy_encoder.c + src/liblzma/common/easy_encoder_memusage.c + src/liblzma/common/filter_buffer_encoder.c + src/liblzma/common/filter_encoder.c + src/liblzma/common/filter_encoder.h + src/liblzma/common/filter_flags_encoder.c + src/liblzma/common/index_encoder.c + src/liblzma/common/index_encoder.h + src/liblzma/common/stream_buffer_encoder.c + src/liblzma/common/stream_encoder.c + src/liblzma/common/stream_flags_encoder.c + src/liblzma/common/vli_encoder.c + ) + + if(ENABLE_THREADS) + target_sources(liblzma PRIVATE + src/liblzma/common/stream_encoder_mt.c + ) + endif() + + if(SIMPLE_ENCODERS) + target_sources(liblzma PRIVATE + src/liblzma/simple/simple_encoder.c + src/liblzma/simple/simple_encoder.h + ) + endif() + + if("lzma1" IN_LIST ENCODERS) + target_sources(liblzma PRIVATE + src/liblzma/lzma/lzma_encoder.c + src/liblzma/lzma/lzma_encoder.h + src/liblzma/lzma/lzma_encoder_optimum_fast.c + src/liblzma/lzma/lzma_encoder_optimum_normal.c + src/liblzma/lzma/lzma_encoder_private.h + src/liblzma/lzma/fastpos.h + src/liblzma/lz/lz_encoder.c + src/liblzma/lz/lz_encoder.h + src/liblzma/lz/lz_encoder_hash.h + src/liblzma/lz/lz_encoder_hash_table.h + src/liblzma/lz/lz_encoder_mf.c + src/liblzma/rangecoder/price.h + src/liblzma/rangecoder/price_table.c + src/liblzma/rangecoder/range_encoder.h + ) + + if(NOT ENABLE_SMALL) + target_sources(liblzma PRIVATE src/liblzma/lzma/fastpos_table.c) + endif() + endif() + + if("lzma2" IN_LIST ENCODERS) + target_sources(liblzma PRIVATE + src/liblzma/lzma/lzma2_encoder.c + src/liblzma/lzma/lzma2_encoder.h + ) + endif() + + if("delta" IN_LIST ENCODERS) + set(HAVE_DELTA_CODER ON) + target_sources(liblzma PRIVATE + src/liblzma/delta/delta_encoder.c + src/liblzma/delta/delta_encoder.h + ) + endif() +endif() + + +############ +# Decoders # +############ + +set(DECODERS "${SUPPORTED_FILTERS}" CACHE STRING "Decoders to support") + +set(SIMPLE_DECODERS OFF) +set(HAVE_DECODERS OFF) + +foreach(DECODER IN LISTS DECODERS) + if(DECODER IN_LIST SUPPORTED_FILTERS) + set(HAVE_DECODERS ON) + + if(NOT SIMPLE_DECODERS AND DECODER IN_LIST SIMPLE_FILTERS) + set(SIMPLE_DECODERS ON) + endif() + + string(TOUPPER "${DECODER}" DECODER_UPPER) + add_compile_definitions("HAVE_DECODER_${DECODER_UPPER}") + else() + message(FATAL_ERROR "'${DECODER}' is not a supported decoder") + endif() +endforeach() + +if(HAVE_DECODERS) + add_compile_definitions(HAVE_DECODERS) + + target_sources(liblzma PRIVATE + src/liblzma/common/alone_decoder.c + src/liblzma/common/alone_decoder.h + src/liblzma/common/auto_decoder.c + src/liblzma/common/block_buffer_decoder.c + src/liblzma/common/block_decoder.c + src/liblzma/common/block_decoder.h + src/liblzma/common/block_header_decoder.c + src/liblzma/common/easy_decoder_memusage.c + src/liblzma/common/file_info.c + src/liblzma/common/filter_buffer_decoder.c + src/liblzma/common/filter_decoder.c + src/liblzma/common/filter_decoder.h + src/liblzma/common/filter_flags_decoder.c + src/liblzma/common/index_decoder.c + src/liblzma/common/index_decoder.h + src/liblzma/common/index_hash.c + src/liblzma/common/stream_buffer_decoder.c + src/liblzma/common/stream_decoder.c + src/liblzma/common/stream_flags_decoder.c + src/liblzma/common/stream_decoder.h + src/liblzma/common/vli_decoder.c + ) + + if(ENABLE_THREADS) + target_sources(liblzma PRIVATE + src/liblzma/common/stream_decoder_mt.c + ) + endif() + + if(SIMPLE_DECODERS) + target_sources(liblzma PRIVATE + src/liblzma/simple/simple_decoder.c + src/liblzma/simple/simple_decoder.h + ) + endif() + + if("lzma1" IN_LIST DECODERS) + target_sources(liblzma PRIVATE + src/liblzma/lzma/lzma_decoder.c + src/liblzma/lzma/lzma_decoder.h + src/liblzma/rangecoder/range_decoder.h + src/liblzma/lz/lz_decoder.c + src/liblzma/lz/lz_decoder.h + ) + endif() + + if("lzma2" IN_LIST DECODERS) + target_sources(liblzma PRIVATE + src/liblzma/lzma/lzma2_decoder.c + src/liblzma/lzma/lzma2_decoder.h + ) + endif() + + if("delta" IN_LIST DECODERS) + set(HAVE_DELTA_CODER ON) + target_sources(liblzma PRIVATE + src/liblzma/delta/delta_decoder.c + src/liblzma/delta/delta_decoder.h + ) + endif() +endif() + +# Some sources must appear if the filter is configured as either +# an encoder or decoder. +if("lzma1" IN_LIST ENCODERS OR "lzma1" IN_LIST DECODERS) + target_sources(liblzma PRIVATE + src/liblzma/rangecoder/range_common.h + src/liblzma/lzma/lzma_encoder_presets.c + src/liblzma/lzma/lzma_common.h + ) +endif() + +if(HAVE_DELTA_CODER) + target_sources(liblzma PRIVATE + src/liblzma/delta/delta_common.c + src/liblzma/delta/delta_common.h + src/liblzma/delta/delta_private.h + ) +endif() + +if(SIMPLE_ENCODERS OR SIMPLE_DECODERS) + target_sources(liblzma PRIVATE + src/liblzma/simple/simple_coder.c + src/liblzma/simple/simple_coder.h + src/liblzma/simple/simple_private.h + ) +endif() + +foreach(SIMPLE_CODER IN LISTS SIMPLE_FILTERS) + if(SIMPLE_CODER IN_LIST ENCODERS OR SIMPLE_CODER IN_LIST DECODERS) + target_sources(liblzma PRIVATE "src/liblzma/simple/${SIMPLE_CODER}.c") + endif() +endforeach() + + +############# +# MicroLZMA # +############# + +option(MICROLZMA_ENCODER + "MicroLZMA encoder (needed by specific applications only)" ON) + +option(MICROLZMA_DECODER + "MicroLZMA decoder (needed by specific applications only)" ON) + +if(MICROLZMA_ENCODER) + if(NOT "lzma1" IN_LIST ENCODERS) + message(FATAL_ERROR "The LZMA1 encoder is required to support the " + "MicroLZMA encoder") + endif() + + target_sources(liblzma PRIVATE src/liblzma/common/microlzma_encoder.c) +endif() + +if(MICROLZMA_DECODER) + if(NOT "lzma1" IN_LIST DECODERS) + message(FATAL_ERROR "The LZMA1 decoder is required to support the " + "MicroLZMA decoder") + endif() + + target_sources(liblzma PRIVATE src/liblzma/common/microlzma_decoder.c) +endif() + + +############################# +# lzip (.lz) format support # +############################# + +option(LZIP_DECODER "Support lzip decoder" ON) + +if(LZIP_DECODER) + # If lzip decoder support is requested, make sure LZMA1 decoder is enabled. + if(NOT "lzma1" IN_LIST DECODERS) + message(FATAL_ERROR "The LZMA1 decoder is required to support the " + "lzip decoder") + endif() + + add_compile_definitions(HAVE_LZIP_DECODER) + + target_sources(liblzma PRIVATE + src/liblzma/common/lzip_decoder.c + src/liblzma/common/lzip_decoder.h + ) +endif() + +### + +# Put the tuklib functions under the lzma_ namespace. +target_compile_definitions(liblzma PRIVATE TUKLIB_SYMBOL_PREFIX=lzma_) +tuklib_cpucores(liblzma) +tuklib_physmem(liblzma) + +# While liblzma can be built without tuklib_cpucores or tuklib_physmem +# modules, the liblzma API functions lzma_cputhreads() and lzma_physmem() +# will then be useless (which isn't too bad but still unfortunate). Since +# I expect the CMake-based builds to be only used on systems that are +# supported by these tuklib modules, problems with these tuklib modules +# are considered a hard error for now. This hopefully helps to catch bugs +# in the CMake versions of the tuklib checks. +if(NOT TUKLIB_CPUCORES_FOUND OR NOT TUKLIB_PHYSMEM_FOUND) + # Use SEND_ERROR instead of FATAL_ERROR. If someone reports a bug, + # seeing the results of the remaining checks can be useful too. + message(SEND_ERROR + "tuklib_cpucores() or tuklib_physmem() failed. " + "Unless you really are building for a system where these " + "modules are not supported (unlikely), this is a bug in the " + "included cmake/tuklib_*.cmake files that should be fixed. " + "To build anyway, edit this CMakeLists.txt to ignore this error.") +endif() + +# Check for __attribute__((__constructor__)) support. +# This needs -Werror because some compilers just warn +# about this being unsupported. +cmake_push_check_state() +set(CMAKE_REQUIRED_FLAGS "-Werror") +check_c_source_compiles(" + __attribute__((__constructor__)) + static void my_constructor_func(void) { return; } + int main(void) { return 0; } + " + HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR) +cmake_pop_check_state() +tuklib_add_definition_if(liblzma HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR) + +# The Win95 threading lacks a thread-safe one-time initialization function. +# The one-time initialization is needed for crc32_small.c and crc64_small.c +# create the CRC tables. So if small mode is enabled, the threading mode is +# win95, and the compiler does not support attribute constructor, then we +# would end up with a multithreaded build that is thread-unsafe. As a +# result this configuration is not allowed. +if(USE_WIN95_THREADS AND ENABLE_SMALL AND NOT HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR) + message(SEND_ERROR "Threading method win95 and ENABLE_SMALL " + "cannot be used at the same time with a compiler " + "that doesn't support " + "__attribute__((__constructor__))") +endif() + +# cpuid.h +check_include_file(cpuid.h HAVE_CPUID_H) +tuklib_add_definition_if(liblzma HAVE_CPUID_H) + +# immintrin.h: +check_include_file(immintrin.h HAVE_IMMINTRIN_H) +if(HAVE_IMMINTRIN_H) + target_compile_definitions(liblzma PRIVATE HAVE_IMMINTRIN_H) + + # SSE2 intrinsics: + check_c_source_compiles(" + #include + int main(void) + { + __m128i x = { 0 }; + _mm_movemask_epi8(x); + return 0; + } + " + HAVE__MM_MOVEMASK_EPI8) + tuklib_add_definition_if(liblzma HAVE__MM_MOVEMASK_EPI8) + + # CLMUL intrinsic: + option(ALLOW_CLMUL_CRC "Allow carryless multiplication for CRC \ +calculation if supported by the system" ON) + + if(ALLOW_CLMUL_CRC) + check_c_source_compiles(" + #include + #if defined(__e2k__) && __iset__ < 6 + # error + #endif + #if (defined(__GNUC__) || defined(__clang__)) \ + && !defined(__EDG__) + __attribute__((__target__(\"ssse3,sse4.1,pclmul\"))) + #endif + __m128i my_clmul(__m128i a) + { + const __m128i b = _mm_set_epi64x(1, 2); + return _mm_clmulepi64_si128(a, b, 0); + } + int main(void) { return 0; } + " + HAVE_USABLE_CLMUL) + tuklib_add_definition_if(liblzma HAVE_USABLE_CLMUL) + endif() +endif() + +# Support -fvisiblity=hidden when building shared liblzma. +# These lines do nothing on Windows (even under Cygwin). +# HAVE_VISIBILITY should always be defined to 0 or 1. +if(BUILD_SHARED_LIBS) + set_target_properties(liblzma PROPERTIES C_VISIBILITY_PRESET hidden) + target_compile_definitions(liblzma PRIVATE HAVE_VISIBILITY=1) +else() + target_compile_definitions(liblzma PRIVATE HAVE_VISIBILITY=0) +endif() + +if(WIN32) + if(BUILD_SHARED_LIBS) + # Add the Windows resource file for liblzma.dll. + target_sources(liblzma PRIVATE src/liblzma/liblzma_w32res.rc) + + set_target_properties(liblzma PROPERTIES + LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/common/common_w32res.rc" + ) + + # Export the public API symbols with __declspec(dllexport). + target_compile_definitions(liblzma PRIVATE DLL_EXPORT) + + if(NOT MSVC) + # Create a DEF file. The linker puts the ordinal numbers there + # too so the output from the linker isn't our final file. + target_link_options(liblzma PRIVATE + "-Wl,--output-def,liblzma.def.in") + + # Remove the ordinal numbers from the DEF file so that + # no one will create an import library that links by ordinal + # instead of by name. We don't maintain a DEF file so the + # ordinal numbers aren't stable. + add_custom_command(TARGET liblzma POST_BUILD + COMMAND "${CMAKE_COMMAND}" + -DINPUT_FILE=liblzma.def.in + -DOUTPUT_FILE=liblzma.def + -P + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/remove-ordinals.cmake" + BYPRODUCTS "liblzma.def" + VERBATIM) + endif() + else() + # Disable __declspec(dllimport) when linking against static liblzma. + target_compile_definitions(liblzma INTERFACE LZMA_API_STATIC) + endif() +elseif(BUILD_SHARED_LIBS AND CMAKE_SYSTEM_NAME STREQUAL "Linux") + # GNU/Linux-specific symbol versioning for shared liblzma. + # Note that adding link options doesn't affect static builds + # but HAVE_SYMBOL_VERSIONS_LINUX must not be used with static builds + # because it would put symbol versions into the static library which + # can cause problems. It's clearer if all symver related things are + # omitted when not building a shared library. + # + # NOTE: Set it explicitly to 1 to make it clear that versioning is + # done unconditionally in the C files. + target_compile_definitions(liblzma PRIVATE HAVE_SYMBOL_VERSIONS_LINUX=1) + target_link_options(liblzma PRIVATE + "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/src/liblzma/liblzma_linux.map" + ) + set_target_properties(liblzma PROPERTIES + LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/liblzma/liblzma_linux.map" + ) +elseif(BUILD_SHARED_LIBS AND CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") + # Symbol versioning for shared liblzma for non-GNU/Linux. + # FIXME? What about Solaris? + target_link_options(liblzma PRIVATE + "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/src/liblzma/liblzma_generic.map" + ) + set_target_properties(liblzma PROPERTIES + LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/liblzma/liblzma_generic.map" + ) +endif() + +set_target_properties(liblzma PROPERTIES + # At least for now the package versioning matches the rules used for + # shared library versioning (excluding development releases) so it is + # fine to use the package version here. + SOVERSION "${xz_VERSION_MAJOR}" + VERSION "${xz_VERSION}" + + # It's liblzma.so or liblzma.dll, not libliblzma.so or lzma.dll. + # Avoid the name lzma.dll because it would conflict with LZMA SDK. + PREFIX "" + IMPORT_PREFIX "" +) + +# Create liblzma-config-version.cmake. +# +# FIXME: SameMajorVersion is correct for stable releases but it is wrong +# for development releases where each release may have incompatible changes. +include(CMakePackageConfigHelpers) +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/liblzma-config-version.cmake" + VERSION "${liblzma_VERSION}" + COMPATIBILITY SameMajorVersion) + +# Create liblzma-config.cmake. We use this spelling instead of +# liblzmaConfig.cmake to make find_package work in case insensitive +# manner even with case sensitive file systems. This gives more consistent +# behavior between operating systems. This optionally includes a dependency +# on a threading library, so the contents are created in two separate parts. +# The "second half" is always needed, so create it first. +set(LZMA_CONFIG_CONTENTS +"include(\"\${CMAKE_CURRENT_LIST_DIR}/liblzma-targets.cmake\") + +if(NOT TARGET LibLZMA::LibLZMA) + # Be compatible with the spelling used by the FindLibLZMA module. This + # doesn't use ALIAS because it would make CMake resolve LibLZMA::LibLZMA + # to liblzma::liblzma instead of keeping the original spelling. Keeping + # the original spelling is important for good FindLibLZMA compatibility. + add_library(LibLZMA::LibLZMA INTERFACE IMPORTED) + set_target_properties(LibLZMA::LibLZMA PROPERTIES + INTERFACE_LINK_LIBRARIES liblzma::liblzma) +endif() +") + +if(USE_POSIX_THREADS) + set(LZMA_CONFIG_CONTENTS +"include(CMakeFindDependencyMacro) +set(THREADS_PREFER_PTHREAD_FLAG TRUE) +find_dependency(Threads) + +${LZMA_CONFIG_CONTENTS} +") +endif() + +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/liblzma-config.cmake" + "${LZMA_CONFIG_CONTENTS}") + +# Set CMAKE_INSTALL_LIBDIR and friends. +include(GNUInstallDirs) + +# Create liblzma.pc. +set(prefix "${CMAKE_INSTALL_PREFIX}") +set(exec_prefix "${CMAKE_INSTALL_PREFIX}") +set(libdir "${CMAKE_INSTALL_FULL_LIBDIR}") +set(includedir "${CMAKE_INSTALL_FULL_INCLUDEDIR}") +set(PTHREAD_CFLAGS "${CMAKE_THREAD_LIBS_INIT}") +configure_file(src/liblzma/liblzma.pc.in liblzma.pc + @ONLY + NEWLINE_STYLE LF) + +# Install the library binary. The INCLUDES specifies the include path that +# is exported for other projects to use but it doesn't install any files. +install(TARGETS liblzma EXPORT liblzmaTargets + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + COMPONENT liblzma_Runtime + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + COMPONENT liblzma_Runtime + NAMELINK_COMPONENT liblzma_Development + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + COMPONENT liblzma_Development + INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") + +# Install the liblzma API headers. These use a subdirectory so +# this has to be done as a separate step. +install(DIRECTORY src/liblzma/api/ + COMPONENT liblzma_Development + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" + FILES_MATCHING PATTERN "*.h") + +# Install the CMake files that other packages can use to find liblzma. +set(liblzma_INSTALL_CMAKEDIR + "${CMAKE_INSTALL_LIBDIR}/cmake/liblzma" + CACHE STRING "Path to liblzma's .cmake files") + +install(EXPORT liblzmaTargets + NAMESPACE liblzma:: + FILE liblzma-targets.cmake + DESTINATION "${liblzma_INSTALL_CMAKEDIR}" + COMPONENT liblzma_Development) + +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/liblzma-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/liblzma-config-version.cmake" + DESTINATION "${liblzma_INSTALL_CMAKEDIR}" + COMPONENT liblzma_Development) + +if(NOT MSVC) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/liblzma.pc" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" + COMPONENT liblzma_Development) +endif() + + +############################################################################# +# getopt_long +############################################################################# + +# The command line tools needs this. +check_symbol_exists(getopt_long getopt.h HAVE_GETOPT_LONG) + + +############################################################################# +# xzdec +############################################################################# + +if(HAVE_GETOPT_LONG AND HAVE_DECODERS) + add_executable(xzdec + src/common/sysdefs.h + src/common/tuklib_common.h + src/common/tuklib_config.h + src/common/tuklib_exit.c + src/common/tuklib_exit.h + src/common/tuklib_gettext.h + src/common/tuklib_progname.c + src/common/tuklib_progname.h + src/xzdec/xzdec.c + ) + + target_include_directories(xzdec PRIVATE + src/common + src/liblzma/api + ) + + target_link_libraries(xzdec PRIVATE liblzma) + + if(WIN32) + # Add the Windows resource file for xzdec.exe. + target_sources(xzdec PRIVATE src/xzdec/xzdec_w32res.rc) + set_target_properties(xzdec PROPERTIES + LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/common/common_w32res.rc" + ) + endif() + + tuklib_progname(xzdec) + + install(TARGETS xzdec + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + COMPONENT xzdec) + + if(UNIX) + install(FILES src/xzdec/xzdec.1 + DESTINATION "${CMAKE_INSTALL_MANDIR}/man1" + COMPONENT xzdec) + endif() +endif() + + +############################################################################# +# xz +############################################################################# + +if(NOT MSVC AND HAVE_GETOPT_LONG) + add_executable(xz + src/common/mythread.h + src/common/sysdefs.h + src/common/tuklib_common.h + src/common/tuklib_config.h + src/common/tuklib_exit.c + src/common/tuklib_exit.h + src/common/tuklib_gettext.h + src/common/tuklib_integer.h + src/common/tuklib_mbstr.h + src/common/tuklib_mbstr_fw.c + src/common/tuklib_mbstr_width.c + src/common/tuklib_open_stdxxx.c + src/common/tuklib_open_stdxxx.h + src/common/tuklib_progname.c + src/common/tuklib_progname.h + src/xz/args.c + src/xz/args.h + src/xz/coder.c + src/xz/coder.h + src/xz/file_io.c + src/xz/file_io.h + src/xz/hardware.c + src/xz/hardware.h + src/xz/main.c + src/xz/main.h + src/xz/message.c + src/xz/message.h + src/xz/mytime.c + src/xz/mytime.h + src/xz/options.c + src/xz/options.h + src/xz/private.h + src/xz/signals.c + src/xz/signals.h + src/xz/suffix.c + src/xz/suffix.h + src/xz/util.c + src/xz/util.h + ) + + target_include_directories(xz PRIVATE + src/common + src/liblzma/api + ) + + if(HAVE_DECODERS) + target_sources(xz PRIVATE + src/xz/list.c + src/xz/list.h + ) + endif() + + target_link_libraries(xz PRIVATE liblzma) + + target_compile_definitions(xz PRIVATE ASSUME_RAM=128) + + if(WIN32) + # Add the Windows resource file for xz.exe. + target_sources(xz PRIVATE src/xz/xz_w32res.rc) + set_target_properties(xz PROPERTIES + LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/common/common_w32res.rc" + ) + endif() + + tuklib_progname(xz) + tuklib_mbstr(xz) + + check_symbol_exists(optreset getopt.h HAVE_OPTRESET) + tuklib_add_definition_if(xz HAVE_OPTRESET) + + check_symbol_exists(posix_fadvise fcntl.h HAVE_POSIX_FADVISE) + tuklib_add_definition_if(xz HAVE_POSIX_FADVISE) + + # How to get file time: + check_struct_has_member("struct stat" st_atim.tv_nsec + "sys/types.h;sys/stat.h" + HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC) + if(HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC) + tuklib_add_definitions(xz HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC) + else() + check_struct_has_member("struct stat" st_atimespec.tv_nsec + "sys/types.h;sys/stat.h" + HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC) + if(HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC) + tuklib_add_definitions(xz HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC) + else() + check_struct_has_member("struct stat" st_atimensec + "sys/types.h;sys/stat.h" + HAVE_STRUCT_STAT_ST_ATIMENSEC) + tuklib_add_definition_if(xz HAVE_STRUCT_STAT_ST_ATIMENSEC) + endif() + endif() + + # How to set file time: + check_symbol_exists(futimens "sys/types.h;sys/stat.h" HAVE_FUTIMENS) + if(HAVE_FUTIMENS) + tuklib_add_definitions(xz HAVE_FUTIMENS) + else() + check_symbol_exists(futimes "sys/time.h" HAVE_FUTIMES) + if(HAVE_FUTIMES) + tuklib_add_definitions(xz HAVE_FUTIMES) + else() + check_symbol_exists(futimesat "sys/time.h" HAVE_FUTIMESAT) + if(HAVE_FUTIMESAT) + tuklib_add_definitions(xz HAVE_FUTIMESAT) + else() + check_symbol_exists(utimes "sys/time.h" HAVE_UTIMES) + if(HAVE_UTIMES) + tuklib_add_definitions(xz HAVE_UTIMES) + else() + check_symbol_exists(_futime "sys/utime.h" HAVE__FUTIME) + if(HAVE__FUTIME) + tuklib_add_definitions(xz HAVE__FUTIME) + else() + check_symbol_exists(utime "utime.h" HAVE_UTIME) + tuklib_add_definition_if(xz HAVE_UTIME) + endif() + endif() + endif() + endif() + endif() + + install(TARGETS xz + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + COMPONENT xz) + + if(UNIX) + install(FILES src/xz/xz.1 + DESTINATION "${CMAKE_INSTALL_MANDIR}/man1" + COMPONENT xz) + + option(CREATE_XZ_SYMLINKS "Create unxz and xzcat symlinks" ON) + option(CREATE_LZMA_SYMLINKS "Create lzma, unlzma, and lzcat symlinks" + ON) + set(XZ_LINKS) + + if(CREATE_XZ_SYMLINKS) + list(APPEND XZ_LINKS "unxz" "xzcat") + endif() + + if(CREATE_LZMA_SYMLINKS) + list(APPEND XZ_LINKS "lzma" "unlzma" "lzcat") + endif() + + # With Windows Cygwin and MSYS2 the symlinking is complicated. Both + # of these environments set the UNIX variable so they will try to + # make the symlinks. The ability for Cygwin and MSYS2 to make + # broken symlinks is determined by the CYGWIN and MSYS2 environment + # variables, respectively. Broken symlinks are needed for the man + # page symlinks and for determining if the xz and lzma symlinks need + # to depend on the xz target or not. If broken symlinks cannot be + # made then the xz binary must be created before the symlinks. + set(ALLOW_BROKEN_SYMLINKS ON) + + if(CMAKE_SYSTEM_NAME STREQUAL "CYGWIN") + # The Cygwin env variable can be set to four possible values: + # + # 1. "lnk". Create symlinks as Windows shortcuts. + # + # 2. "native". Create symlinks as native Windows symlinks + # if supported by the system. Fallback to "lnk" if native + # symlinks are not supported. + # + # 3. "nativestrict". Create symlinks as native Windows symlinks + # if supported by the system. If the target of the symlink + # does not exist or the creation of the symlink fails for any + # reason, do not create the symlink. + # + # 4. "sys". Create symlinks as plain files with a special + # system attribute containing the path to the symlink target. + # + # So, the only case we care about for broken symlinks is + # "nativestrict" since all other values mean that broken + # symlinks are allowed. If the env variable is not set the + # default is "native". If the env variable is set but not + # assigned one of the four values, then the default is the same + # as option 1 "lnk". + string(FIND "$ENV{CYGWIN}" "winsymlinks:nativestrict" SYMLINK_POS) + if(SYMLINK_POS GREATER -1) + set(ALLOW_BROKEN_SYMLINKS OFF) + endif() + elseif(CMAKE_SYSTEM_NAME STREQUAL "MSYS") + # The MSYS env variable behaves similar to the CYGWIN but has a + # different default behavior. If winsymlinks is set but not + # assigned one of the four supported values, the default is to + # *copy* the target to the symlink destination. This will fail + # if the target does not exist so broken symlinks cannot be + # allowed. + string(FIND "$ENV{MSYS}" "winsymlinks" SYMLINK_POS) + if(SYMLINK_POS GREATER -1) + string(FIND "$ENV{MSYS}" "winsymlinks:nativestrict" + SYMLINK_POS) + if(SYMLINK_POS GREATER -1) + set(ALLOW_BROKEN_SYMLINKS OFF) + endif() + else() + set(ALLOW_BROKEN_SYMLINKS OFF) + endif() + endif() + + # Create symlinks in the build directory and then install them. + # + # The symlinks do not likely need any special extension since + # even on Windows the symlink can still be executed without + # the .exe extension. + foreach(LINK IN LISTS XZ_LINKS) + add_custom_target("create_${LINK}" ALL + "${CMAKE_COMMAND}" -E create_symlink + "$" "${LINK}" + BYPRODUCTS "${LINK}" + VERBATIM) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${LINK}" + DESTINATION "${CMAKE_INSTALL_BINDIR}" + COMPONENT xz) + + # Only create the man page symlinks if the symlinks can be + # created broken. The symlinks will not be valid until install + # so they cannot be created on these system environments. + if(ALLOW_BROKEN_SYMLINKS) + add_custom_target("create_${LINK}.1" ALL + "${CMAKE_COMMAND}" -E create_symlink "xz.1" "${LINK}.1" + BYPRODUCTS "${LINK}.1" + VERBATIM) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${LINK}.1" + DESTINATION "${CMAKE_INSTALL_MANDIR}/man1" + COMPONENT xz) + else() + # Add the xz target as dependency when broken symlinks + # cannot be made. This ensures parallel builds do not fail + # since it will enforce the order of creating xz first, then + # the symlinks. + add_dependencies("create_${LINK}" xz) + endif() + endforeach() + endif() +endif() + + +############################################################################# +# Tests +############################################################################# + +include(CTest) + +if(BUILD_TESTING) + set(LIBLZMA_TESTS + test_bcj_exact_size + test_block_header + test_check + test_filter_flags + test_filter_str + test_hardware + test_index + test_index_hash + test_lzip_decoder + test_memlimit + test_stream_flags + test_vli + ) + + foreach(TEST IN LISTS LIBLZMA_TESTS) + add_executable("${TEST}" "tests/${TEST}.c") + + target_include_directories("${TEST}" PRIVATE + src/common + src/liblzma/api + src/liblzma + ) + + target_link_libraries("${TEST}" PRIVATE liblzma) + + # Put the test programs into their own subdirectory so they don't + # pollute the top-level dir which might contain xz and xzdec. + set_target_properties("${TEST}" PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/tests_bin" + ) + + add_test(NAME "${TEST}" + COMMAND "${CMAKE_CURRENT_BINARY_DIR}/tests_bin/${TEST}" + ) + + # Set srcdir environment variable so that the tests find their + # input files from the source tree. + # + # Set the return code for skipped tests to match Automake convention. + set_tests_properties("${TEST}" PROPERTIES + ENVIRONMENT "srcdir=${CMAKE_CURRENT_SOURCE_DIR}/tests" + SKIP_RETURN_CODE 77 + ) + endforeach() +endif() diff --git a/xz-5.4.5/COPYING b/xz-5.4.5/COPYING new file mode 100644 index 000000000..e54eeacfb --- /dev/null +++ b/xz-5.4.5/COPYING @@ -0,0 +1,76 @@ + +XZ Utils Licensing +================== + + Different licenses apply to different files in this package. Here + is a rough summary of which licenses apply to which parts of this + package (but check the individual files to be sure!): + + - liblzma is in the public domain. + + - xz, xzdec, and lzmadec command line tools are in the public + domain unless GNU getopt_long had to be compiled and linked + in from the lib directory. The getopt_long code is under + GNU LGPLv2.1+. + + - The scripts to grep, diff, and view compressed files have been + adapted from gzip. These scripts and their documentation are + under GNU GPLv2+. + + - All the documentation in the doc directory and most of the + XZ Utils specific documentation files in other directories + are in the public domain. + + Note: The JavaScript files (under the MIT license) have + been removed from the Doxygen-generated HTML version of the + liblzma API documentation. Doxygen itself is under the GNU GPL + but the remaining files generated by Doxygen are not affected + by the licenses used in Doxygen because Doxygen licensing has + the following exception: + + "Documents produced by doxygen are derivative works + derived from the input used in their production; + they are not affected by this license." + + - Translated messages are in the public domain. + + - The build system contains public domain files, and files that + are under GNU GPLv2+ or GNU GPLv3+. None of these files end up + in the binaries being built. + + - Test files and test code in the tests directory, and debugging + utilities in the debug directory are in the public domain. + + - The extra directory may contain public domain files, and files + that are under various free software licenses. + + You can do whatever you want with the files that have been put into + the public domain. If you find public domain legally problematic, + take the previous sentence as a license grant. If you still find + the lack of copyright legally problematic, you have too many + lawyers. + + As usual, this software is provided "as is", without any warranty. + + If you copy significant amounts of public domain code from XZ Utils + into your project, acknowledging this somewhere in your software is + polite (especially if it is proprietary, non-free software), but + naturally it is not legally required. Here is an example of a good + notice to put into "about box" or into documentation: + + This software includes code from XZ Utils . + + The following license texts are included in the following files: + - COPYING.LGPLv2.1: GNU Lesser General Public License version 2.1 + - COPYING.GPLv2: GNU General Public License version 2 + - COPYING.GPLv3: GNU General Public License version 3 + + Note that the toolchain (compiler, linker etc.) may add some code + pieces that are copyrighted. Thus, it is possible that e.g. liblzma + binary wouldn't actually be in the public domain in its entirety + even though it contains no copyrighted code from the XZ Utils source + package. + + If you have questions, don't hesitate to ask the author(s) for more + information. + diff --git a/xz-5.4.5/COPYING.GPLv2 b/xz-5.4.5/COPYING.GPLv2 new file mode 100644 index 000000000..d159169d1 --- /dev/null +++ b/xz-5.4.5/COPYING.GPLv2 @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/xz-5.4.5/COPYING.GPLv3 b/xz-5.4.5/COPYING.GPLv3 new file mode 100644 index 000000000..f288702d2 --- /dev/null +++ b/xz-5.4.5/COPYING.GPLv3 @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/xz-5.4.5/COPYING.LGPLv2.1 b/xz-5.4.5/COPYING.LGPLv2.1 new file mode 100644 index 000000000..4362b4915 --- /dev/null +++ b/xz-5.4.5/COPYING.LGPLv2.1 @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/xz-5.4.5/ChangeLog b/xz-5.4.5/ChangeLog new file mode 100644 index 000000000..4dd0978ef --- /dev/null +++ b/xz-5.4.5/ChangeLog @@ -0,0 +1,11756 @@ +commit 49053c0a649f4c8bd2b8d97ce915f401fbc0f3d9 +Author: Jia Tan +Date: 2023-10-31 22:30:29 +0800 + + Bump version and soname for 5.4.5. + + src/liblzma/Makefile.am | 2 +- + src/liblzma/api/lzma/version.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit 84c0cfc556287628df871703672879e530d0391f +Author: Jia Tan +Date: 2023-11-01 20:18:30 +0800 + + Add NEWS for 5.4.5. + + NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 74 insertions(+) + +commit d90ed84db9770712e2421e170076b43bda9b64a7 +Author: Lasse Collin +Date: 2023-10-31 21:41:09 +0200 + + liblzma: Fix compilation of fastpos_tablegen.c. + + The macro lzma_attr_visibility_hidden has to be defined to make + fastpos.h usable. The visibility attribute is irrelevant to + fastpos_tablegen.c so simply #define the macro to an empty value. + + fastpos_tablegen.c is never built by the included build systems + and so the problem wasn't noticed earlier. It's just a standalone + program for generating fastpos_table.c. + + Fixes: https://github.com/tukaani-project/xz/pull/69 + Thanks to GitHub user Jamaika1. + + src/liblzma/lzma/fastpos_tablegen.c | 2 ++ + 1 file changed, 2 insertions(+) + +commit 9b1268538b0b2c6c0a121f95165de65fc71ad23c +Author: Jia Tan +Date: 2023-10-31 21:51:40 +0800 + + Build: Fix text wrapping in an output message. + + configure.ac | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +commit 068ee436f4a8a706125ef43e8228b30001b1554e +Author: Lasse Collin +Date: 2023-10-22 17:59:11 +0300 + + liblzma: Use lzma_always_inline in memcmplen.h. + + src/liblzma/common/memcmplen.h | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +commit 6cdf0a7b7974baf58c1fd20ec3278f3b84ae56e5 +Author: Lasse Collin +Date: 2023-10-30 17:43:03 +0200 + + liblzma: #define lzma_always_inline in common.h. + + src/liblzma/common/common.h | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +commit 33daad3961a4f07f3902b40f13e823e6e43e85da +Author: Lasse Collin +Date: 2023-10-22 17:15:32 +0300 + + liblzma: Use lzma_attr_visibility_hidden on private extern declarations. + + These variables are internal to liblzma and not exposed in the API. + + src/liblzma/check/check.h | 7 +++++++ + src/liblzma/common/stream_flags_common.h | 3 +++ + src/liblzma/lz/lz_encoder_hash.h | 1 + + src/liblzma/lzma/fastpos.h | 1 + + src/liblzma/rangecoder/price.h | 1 + + 5 files changed, 13 insertions(+) + +commit 6961a5ac7df178bfc2b7a181c40575847bc3035f +Author: Lasse Collin +Date: 2023-10-22 17:08:39 +0300 + + liblzma: #define lzma_attr_visibility_hidden in common.h. + + In ELF shared libs: + + -fvisibility=hidden affects definitions of symbols but not + declarations.[*] This doesn't affect direct calls to functions + inside liblzma as a linker can replace a call to lzma_foo@plt + with a call directly to lzma_foo when -fvisibility=hidden is used. + + [*] It has to be like this because otherwise every installed + header file would need to explictly set the symbol visibility + to default. + + When accessing extern variables that aren't defined in the + same translation unit, compiler assumes that the variable has + the default visibility and thus indirection is needed. Unlike + function calls, linker cannot optimize this. + + Using __attribute__((__visibility__("hidden"))) with the extern + variable declarations tells the compiler that indirection isn't + needed because the definition is in the same shared library. + + About 15+ years ago, someone told me that it would be good if + the CRC tables would be defined in the same translation unit + as the C code of the CRC functions. While I understood that it + could help a tiny amount, I didn't want to change the code because + a separate translation unit for the CRC tables was needed for the + x86 assembly code anyway. But when visibility attributes are + supported, simply marking the extern declaration with the + hidden attribute will get identical result. When there are only + a few affected variables, this is trivial to do. I wish I had + understood this back then already. + + src/liblzma/common/common.h | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +commit 5b9e16764905d06fa8e8339ba185ddfee304e5fb +Author: Lasse Collin +Date: 2023-09-30 22:54:28 +0300 + + liblzma: Refer to MinGW-w64 instead of MinGW in the API headers. + + MinGW (formely a MinGW.org Project, later the MinGW.OSDN Project + at ) has GCC 9.2.0 as the + most recent GCC package (released 2021-02-02). The project might + still be alive but majority of people have switched to MinGW-w64. + Thus it seems clearer to refer to MinGW-w64 in our API headers too. + Building with MinGW is likely to still work but I haven't tested it + in the recent years. + + src/liblzma/api/lzma.h | 4 ++-- + src/liblzma/api/lzma/version.h | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +commit 36fabdbe67c8a8fbdc3ac695a91fc443a1328cc4 +Author: Lasse Collin +Date: 2023-09-27 00:58:17 +0300 + + CMake: Use -D_FILE_OFFSET_BITS=64 if (and only if) needed. + + A CMake option LARGE_FILE_SUPPORT is created if and only if + -D_FILE_OFFSET_BITS=64 affects sizeof(off_t). + + This is needed on many 32-bit platforms and even with 64-bit builds + with MinGW-w64 to get support for files larger than 2 GiB. + + CMakeLists.txt | 7 ++++- + cmake/tuklib_large_file_support.cmake | 52 +++++++++++++++++++++++++++++++++++ + 2 files changed, 58 insertions(+), 1 deletion(-) + +commit 989c8c354cbd2d20fbae4a432a3e31f5bc1cb9bf +Author: Lasse Collin +Date: 2023-09-30 02:14:25 +0300 + + CMake: Generate and install liblzma.pc if not using MSVC. + + Autotools based build uses -pthread and thus adds it to Libs.private + in liblzma.pc. CMake doesn't use -pthread at all if pthread functions + are available in libc so Libs.private doesn't get -pthread either. + + CMakeLists.txt | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +commit 983f3b458dc79c5976a4237fdfe4f8079f8d8830 +Author: Lasse Collin +Date: 2023-09-30 01:13:13 +0300 + + CMake: Rearrange the PACKAGE_ variables. + + The windres workaround now replaces spaces with \x20 so + the package name isn't repeated. + + These changes will help with creation of liblzma.pc. + + CMakeLists.txt | 26 +++++++++++++++----------- + 1 file changed, 15 insertions(+), 11 deletions(-) + +commit 4083c8e9501a48934a5fb563d2c3ce2ae143cd27 +Author: Lasse Collin +Date: 2023-09-29 20:46:11 +0300 + + liblzma: Add Cflags.private to liblzma.pc.in for MSYS2. + + It properly adds -DLZMA_API_STATIC when compiling code that + will be linked against static liblzma. Having it there on + systems other than Windows does no harm. + + See: https://www.msys2.org/docs/pkgconfig/ + + src/liblzma/liblzma.pc.in | 1 + + 1 file changed, 1 insertion(+) + +commit 661549ecb7a9b136d72a01c137d9776c75d52d51 +Author: Lasse Collin +Date: 2023-09-27 22:46:20 +0300 + + CMake: Create liblzma.def when building liblzma.dll with MinGW-w64. + + CMakeLists.txt | 20 ++++++++++++++++++++ + cmake/remove-ordinals.cmake | 26 ++++++++++++++++++++++++++ + 2 files changed, 46 insertions(+) + +commit 0e546eb4da05c52b7d257e5bd85e15c51c4d86a3 +Author: Lasse Collin +Date: 2023-10-26 21:44:42 +0300 + + CMake: Change one CMAKE_CURRENT_SOURCE_DIR to CMAKE_CURRENT_LIST_DIR. + + In this case they have identical values. + + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit da4d04e4d6e199d28b58bd2e0df4e120c52dd5d7 +Author: Lasse Collin +Date: 2023-10-01 19:10:57 +0300 + + CMake/Windows: Fix the import library filename. + + Both PREFIX and IMPORT_PERFIX have to be set to "" to get + liblzma.dll and liblzma.dll.a. + + CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +commit 007558a358c48a0175cc8d47d11798d7967282ab +Author: Lasse Collin +Date: 2023-10-11 19:47:44 +0300 + + CMake: Don't shadow the cache entry ENABLE_THREADS with a normal variable. + + Using set(ENABLE_THREADS "posix") is confusing because it sets + a new normal variable and leaves the cache entry with the same + name unchanged. The intent wasn't to change the cache entry so + this switches to a different variable name. + + CMakeLists.txt | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +commit 7d01de67ee3dd76cfc12c23220e2e4cdc59708f1 +Author: Lasse Collin +Date: 2023-10-09 21:12:31 +0300 + + CMake: Edit threading related messages. + + It's mostly to change from "thread method" to "threading method". + + CMakeLists.txt | 19 ++++++++++--------- + 1 file changed, 10 insertions(+), 9 deletions(-) + +commit f8edcf3da689aad4b21e139197725450f2c456a0 +Author: Lasse Collin +Date: 2023-10-09 20:59:24 +0300 + + CMake: Use FATAL_ERROR if user-supplied options aren't understood. + + This way typos are caught quickly and compounding error messages + are avoided (a single typo could cause more than one error). + + This keeps using SEND_ERROR when the system is lacking a feature + (like threading library or sandboxing method). This way the whole + configuration log will be generated in case someone wishes to + report a problem upstream. + + CMakeLists.txt | 28 ++++++++++++++-------------- + 1 file changed, 14 insertions(+), 14 deletions(-) + +commit 1695021e4a233a9388ddd428654c1447f0ea3bfb +Author: Jia Tan +Date: 2023-10-19 16:09:01 +0800 + + CMake: Add ALLOW_CLMUL_CRC option to enable/disable CLMUL. + + The option is enabled by default, but will only be visible to a user + listing cache variables or using a CMake GUI application if the + immintrin.h header file is found. + + This mirrors our Autotools build --disable-clmul-crc functionality. + + CMakeLists.txt | 40 +++++++++++++++++++++++----------------- + 1 file changed, 23 insertions(+), 17 deletions(-) + +commit 5056bc51071d1a07097c5667a0d5bd85242e31b9 +Author: Lasse Collin +Date: 2023-10-14 17:56:59 +0300 + + tuklib_integer: Revise unaligned reads and writes on strict-align archs. + + In XZ Utils context this doesn't matter much because + unaligned reads and writes aren't used in hot code + when TUKLIB_FAST_UNALIGNED_ACCESS isn't #defined. + + src/common/tuklib_integer.h | 256 ++++++++++++++++++++++++++++++++------------ + 1 file changed, 189 insertions(+), 67 deletions(-) + +commit 9e14743ee5ba79181076bc33952245d5b18fbc58 +Author: Lasse Collin +Date: 2023-09-23 02:21:49 +0300 + + tuklib_integer: Add missing write64be and write64le fallback functions. + + src/common/tuklib_integer.h | 34 ++++++++++++++++++++++++++++++++++ + 1 file changed, 34 insertions(+) + +commit 4cc91ceb3992ef4f51302b56178c3b2c2aeaaaad +Author: Jia Tan +Date: 2023-10-12 20:12:18 +0800 + + Build: Update visibility.m4 from Gnulib. + + Updating from version 6 -> 8 from upstream. Declarations for variables + and function bodies were added to avoid unnecessary failures with + -Werror. + + m4/visibility.m4 | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +commit 1824a6007cb1c8d5d7abcc7bf649148bc06fa72c +Author: Lasse Collin +Date: 2023-10-06 19:36:35 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 8fdc71a27d07b10a3da52432432e080b6d577642 +Author: Jia Tan +Date: 2023-09-29 20:14:39 +0800 + + CMake: Rename xz and man page symlink custom targets. + + The Ninja Generator for CMake cannot have a custom target and its + BYPRODUCTS have the same name. This has prevented Ninja builds on + Unix-like systems since the xz symlinks were introduced in + 80a1a8bb838842a2be343bd88ad1462c21c5e2c9. + + CMakeLists.txt | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 38171492ded6426ddf53d0c200fa8c93fcd02a60 +Author: Lasse Collin +Date: 2023-09-27 19:54:35 +0300 + + CMake: Fix Windows build with Clang/LLVM 17. + + llvm-windres 17.0.0 has more accurate emulation of GNU windres, so + the hack for GNU windres must now be used with llvm-windres too. + + LLVM 16.0.6 has the old behavior and there likely won't be more + 16.x releases. So we can simply check for >= 17.0.0. + + The workaround must not be used with Clang that is acting in + MSVC mode. This checks for the known environments that need + the workaround instead of using "NOT MSVC". + + See also: + https://github.com/llvm/llvm-project/commit/2bcc0fdc58a220cb9921b47ec8a32c85f2511a47 + + CMakeLists.txt | 26 ++++++++++++++------------ + 1 file changed, 14 insertions(+), 12 deletions(-) + +commit 1bce6fe48334b5df33d0487a9cbe41950122230e +Author: Jia Tan +Date: 2023-09-27 00:02:11 +0800 + + liblzma: Avoid compiler warning without creating extra symbol. + + When the generic fast crc64 method is used, then we omit + lzma_crc64_table[][]. + + The C standards don't allow an empty translation unit which can be + avoided by declaring something, without exporting any symbols. + + src/liblzma/check/crc64_table.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +commit dce95a593e6cd9779110aa1e314abd8b35c75f6b +Author: Lasse Collin +Date: 2023-09-26 17:24:15 +0300 + + Build: Update the comment about -Werror usage in checks. + + configure.ac | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +commit f3c32762ae309afa2fe330e7fb397acfdedc4d37 +Author: Lasse Collin +Date: 2023-09-26 13:51:31 +0300 + + Build: Fix underquoted AC_LANG_SOURCE. + + It made no practical difference in this case. + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 7dd57f2f2c8fde93fa42b4dbf6d9860717723b41 +Author: Lasse Collin +Date: 2023-09-26 13:14:37 +0300 + + Build: Silence Autoconf warning. + + There was a use of AC_COMPILE_IFELSE that didn't use + AC_LANG_SOURCE and Autoconf warned about this. The omission + had been intentional but it turned out that this didn't do + what I thought it would. + + Autoconf 2.71 manual gives an impression that AC_LANG_SOURCE + inserts all #defines that have been made with AC_DEFINE so + far (confdefs.h). The idea was that omitting AC_LANG_SOURCE + would mean that only the exact code included in the + AC_COMPILE_IFELSE call would be compiled. + + With C programs this is not true: the #defines get added without + AC_LANG_SOURCE too. There seems to be no neat way to avoid this. + Thus, with the C language at least, adding AC_LANG_SOURCE makes + no other difference than silencing a warning from Autoconf. The + generated "configure" remains identical. (Docs of AC_LANG_CONFTEST + say that the #defines have been inserted since Autoconf 2.63b and + that AC_COMPILE_IFELSE uses AC_LANG_CONFTEST. So the behavior is + documented if one also reads the docs of macros that one isn't + calling directly.) + + Any extra code, including #defines, can cause problems for + these two tests because these tests must use -Werror. + CC=clang CFLAGS=-Weverything is the most extreme example. + It enables -Wreserved-macro-identifier which warns about + It's possible to write a test file that passes -Weverything but + it becomes impossible when Autoconf inserts confdefs.h. + + So this commit adds AC_LANG_SOURCE to silence Autoconf warnings. + A different solution is needed for -Werror tests. + + configure.ac | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +commit edec253e418562f3164a01ecc8805295fa022efa +Author: Jia Tan +Date: 2023-09-26 00:47:26 +0800 + + Build: Remove Gnulib dependency from tests. + + The tests do not use any Gnulib replacements so they do not need to link + libgnu.a or have /lib in the include path. + + tests/Makefile.am | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +commit 46cb133ce7360496eecca1255b364c05f0205855 +Author: Jia Tan +Date: 2023-09-26 00:43:43 +0800 + + CMake: Remove /lib from tests include path. + + The tests never included anything from /lib, so this was not needed. + + CMakeLists.txt | 1 - + 1 file changed, 1 deletion(-) + +commit 4ae13cfe0dedb8ddc3cf9ded8cd1ac09361b3bd1 +Author: Lasse Collin +Date: 2023-09-24 16:32:32 +0300 + + sysdefs.h: Update the comment about __USE_MINGW_ANSI_STDIO. + + src/common/sysdefs.h | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +commit 660c8c29e57d30dbd5009ef1f0ec1bbe195ccef6 +Author: Lasse Collin +Date: 2023-09-22 02:33:29 +0300 + + xz: Windows: Don't (de)compress to special files like "con" or "nul". + + Before this commit, the following writes "foo" to the + console and deletes the input file: + + echo foo | xz > con_xz + xz --suffix=_xz --decompress con_xz + + It cannot happen without --suffix because names like con.xz + are also special and so attempting to decompress con.xz + (or compress con to con.xz) will already fail when opening + the input file. + + Similar thing is possible when compressing. The following + writes to "nul" and the input file "n" is deleted. + + echo foo | xz > n + xz --suffix=ul n + + Now xz checks if the destination is a special file before + continuing. DOS/DJGPP version had a check for this but + Windows (and OS/2) didn't. + + src/xz/file_io.c | 35 ++++++++++++++++++++++++++++------- + 1 file changed, 28 insertions(+), 7 deletions(-) + +commit b7ce6e80786fc0c08ed129e8ee262ea96a5473a1 +Author: Lasse Collin +Date: 2023-09-21 20:42:52 +0300 + + CMake: Wrap two overlong lines that are possible to wrap. + + CMakeLists.txt | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +commit 1595f454d5c8257c668cccd6a86dd68175d5c430 +Author: Lasse Collin +Date: 2023-09-21 20:36:31 +0300 + + CMake: Add a comment about threads on Cygwin. + + CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +commit 5be6275f19784cdd5a954f0188045c8ff4934d54 +Author: Lasse Collin +Date: 2023-09-12 21:12:34 +0300 + + CMake: Bump maximum policy version to 3.27. + + There are several new policies. CMP0149 may affect the Windows SDK + version that CMake will choose by default. The new behavior is more + predictable, always choosing the latest SDK version by default. + + The other new policies shouldn't affect this package. + + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit e515643d7524851d1eb7dab73453e26d8521324c +Author: Lasse Collin +Date: 2023-09-08 19:08:57 +0300 + + Doxygen: Add more C macro names to PREDEFINED. + + doxygen/Doxyfile | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +commit e3478ae4f36cd06522a2fef023860893f068434d +Author: Lasse Collin +Date: 2023-09-11 18:47:26 +0300 + + liblzma: Move a few __attribute__ uses in function declarations. + + The API headers have many attributes but these were left + as is for now. + + src/liblzma/common/common.c | 6 ++++-- + src/liblzma/common/common.h | 8 ++++---- + src/liblzma/common/memcmplen.h | 3 ++- + 3 files changed, 10 insertions(+), 7 deletions(-) + +commit b71b8922ef3971e5ccffd1e213888d44abe21d11 +Author: Lasse Collin +Date: 2023-09-11 19:03:35 +0300 + + xz, xzdec, lzmainfo: Use tuklib_attr_noreturn. + + For compatibility with C23's [[noreturn]], tuklib_attr_noreturn + must be at the beginning of declaration (before "extern" or + "static", and even before any GNU C's __attribute__). + + This commit also moves all other function attributes to + the beginning of function declarations. "extern" is kept + at the beginning of a line so the attributes are listed on + separate lines before "extern" or "static". + + src/lzmainfo/lzmainfo.c | 6 ++++-- + src/xz/coder.c | 3 ++- + src/xz/hardware.h | 3 ++- + src/xz/message.h | 30 +++++++++++++++++------------- + src/xz/options.c | 3 ++- + src/xz/util.h | 8 ++++---- + src/xzdec/xzdec.c | 9 ++++++--- + 7 files changed, 37 insertions(+), 25 deletions(-) + +commit 359e5c6cb128dab64ea6070d21d1c240f96cea6b +Author: Lasse Collin +Date: 2023-09-11 18:53:31 +0300 + + Remove incorrect uses of __attribute__((__malloc__)). + + xrealloc() is obviously incorrect, modern GCC docs even + mention realloc() as an example where this attribute + cannot be used. + + liblzma's lzma_alloc() and lzma_alloc_zero() would be + correct uses most of the time but custom allocators + may use a memory pool or otherwise hold the pointer + so aliasing issues could happen in theory. + + The xstrdup() case likely was correct but I removed it anyway. + Now there are no __malloc__ attributes left in the code. + The allocations aren't in hot paths so this should make + no practical difference. + + src/liblzma/common/common.c | 4 ++-- + src/liblzma/common/common.h | 4 ++-- + src/xz/util.h | 4 ++-- + 3 files changed, 6 insertions(+), 6 deletions(-) + +commit 589b4cba22fccb1dbc919df5d134aefb2b5a6b01 +Author: Lasse Collin +Date: 2023-09-19 14:03:45 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 43728ed2267e921fbdfa699ee1e91b105ab0e98b +Author: Lasse Collin +Date: 2023-09-14 16:35:46 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit caf00e0988ba47842cfd93dfbb17f7d30120d6e7 +Author: Lasse Collin +Date: 2023-09-14 16:34:07 +0300 + + liblzma: Mark crc64_clmul() with __attribute__((__no_sanitize_address__)). + + Thanks to Agostino Sarubbo. + Fixes: https://github.com/tukaani-project/xz/issues/62 + + src/liblzma/check/crc64_fast.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +commit a70e96d2da761b8b3a77bf14e08002d871e5950b +Author: Jia Tan +Date: 2023-09-12 22:36:12 +0800 + + CMake: Fix time.h checks not running on second CMake run. + + If CMake was configured more than once, HAVE_CLOCK_GETTIME and + HAVE_CLOCK_MONOTONIC would not be set as compile definitions. The check + for librt being needed to provide HAVE_CLOCK_GETTIME was also + simplified. + + CMakeLists.txt | 18 ++++++++++-------- + 1 file changed, 10 insertions(+), 8 deletions(-) + +commit d5275d83bd2a9701c5feb8666785007c074b1359 +Author: Jia Tan +Date: 2023-09-12 22:34:06 +0800 + + CMake: Fix unconditionally defining HAVE_CLOCK_MONOTONIC. + + If HAVE_CLOCK_GETTIME was defined, then HAVE_CLOCK_MONOTONIC was always + added as a compile definition even if the check for it failed. + + CMakeLists.txt | 8 +++----- + 1 file changed, 3 insertions(+), 5 deletions(-) + +commit 1f6e7c68fbdeeaa9482fc77de090be63d90912fd +Author: Lasse Collin +Date: 2023-08-31 19:50:05 +0300 + + xz: Refactor thousand separator detection and disable it on MSVC. + + Now the two variations of the format strings are created with + a macro, and the whole detection code can be easily disabled + on platforms where thousand separator formatting is known to + not work (MSVC has no support, and on DJGPP 2.05 it can have + problems in some cases). + + src/xz/util.c | 89 ++++++++++++++++++++++++++++++----------------------------- + 1 file changed, 45 insertions(+), 44 deletions(-) + +commit ef71f83973a20cc28a3221f85681922026ea33f5 +Author: Lasse Collin +Date: 2023-08-31 18:14:43 +0300 + + xz: Fix a too relaxed assertion and remove uses of SSIZE_MAX. + + SSIZE_MAX isn't readily available on MSVC. Removing it means + that there is one thing less to worry when porting to MSVC. + + src/xz/file_io.c | 5 ++--- + src/xz/file_io.h | 4 ++-- + 2 files changed, 4 insertions(+), 5 deletions(-) + +commit cf8ba7c3a89e37736b926dfbe85dffeff725db47 +Author: Jia Tan +Date: 2023-08-28 23:14:45 +0800 + + Tests: Improve invalid unpadded size check in test_lzma_index_append(). + + This check was extended to test the code added to fix a failing assert + in 68bda971bb8b666a009331455fcedb4e18d837a4. + + tests/test_index.c | 26 +++++++++++++++++++++++--- + 1 file changed, 23 insertions(+), 3 deletions(-) + +commit 4a4180ce74788e97e90b9aab579bfd7c6dce3f59 +Author: Jia Tan +Date: 2023-08-28 21:54:41 +0800 + + Tests: Improve comments in test_index.c. + + tests/test_index.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 4b23b84b89e39a5117e16f66c3b01db4f08ed3e7 +Author: Jia Tan +Date: 2023-08-28 21:52:54 +0800 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 773f1e8622cb1465df528cb16a749517650acd93 +Author: Jia Tan +Date: 2023-08-28 21:50:16 +0800 + + liblzma: Update assert in vli_ceil4(). + + The argument to vli_ceil4() should always guarantee the return value + is also a valid lzma_vli. Thus the highest three valid lzma_vli values + are invalid arguments. All uses of the function ensure this so the + assert is updated to match this. + + src/liblzma/common/index.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 68bda971bb8b666a009331455fcedb4e18d837a4 +Author: Jia Tan +Date: 2023-08-28 21:31:25 +0800 + + liblzma: Add overflow check for Unpadded size in lzma_index_append(). + + This was not a security bug since there was no path to overflow + UINT64_MAX in lzma_index_append() or when it calls index_file_size(). + The bug was discovered by a failing assert() in vli_ceil4() when called + from index_file_size() when unpadded_sum (the sum of the compressed size + of current Stream and the unpadded_size parameter) exceeds LZMA_VLI_MAX. + + Previously, the unpadded_size parameter was checked to be not greater + than UNPADDED_SIZE_MAX, but no check was done once compressed_base was + added. + + This could not have caused an integer overflow in index_file_size() when + called by lzma_index_append(). The calculation for file_size breaks down + into the sum of: + + - Compressed base from all previous Streams + - 2 * LZMA_STREAM_HEADER_SIZE (size of the current Streams header and + footer) + - stream_padding (can be set by lzma_index_stream_padding()) + - Compressed base from the current Stream + - Unpadded size (parameter to lzma_index_append()) + + The sum of everything except for Unpadded size must be less than + LZMA_VLI_MAX. This is guarenteed by overflow checks in the functions + that can set these values including lzma_index_stream_padding(), + lzma_index_append(), and lzma_index_cat(). The maximum value for + Unpadded size is enforced by lzma_index_append() to be less than or + equal UNPADDED_SIZE_MAX. Thus, the sum cannot exceed UINT64_MAX since + LZMA_VLI_MAX is half of UINT64_MAX. + + Thanks to Joona Kannisto for reporting this. + + src/liblzma/common/index.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +commit b41bb79c602481d7ea93d65f5b3e3f08dc54233b +Author: Jia Tan +Date: 2023-08-28 22:18:29 +0800 + + Translations: Update the Esperanto translation. + + po/eo.po | 47 +++++++++++++++++++++++++++++------------------ + 1 file changed, 29 insertions(+), 18 deletions(-) + +commit 6614e6d4bf8e2b5af6eb73930148e0ffc8d2265a +Author: Jia Tan +Date: 2023-08-09 20:55:36 +0800 + + Docs: Update INSTALL for --enable-threads method win95. + + The Autotools build allows win95 threads and --enable-small together now + if the compiler supports __attribute__((__constructor__)). + + INSTALL | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +commit bfb623ad96fa6f1dbc0c560403c4296e3c8e26c9 +Author: Jia Tan +Date: 2023-08-09 20:54:15 +0800 + + CMake: Conditionally allow win95 threads and --enable-small. + + CMakeLists.txt | 27 +++++++++++++++++++-------- + 1 file changed, 19 insertions(+), 8 deletions(-) + +commit e919ebb29ac9f5270cd7176a39d0d3b4cea875a9 +Author: Jia Tan +Date: 2023-08-09 20:35:16 +0800 + + Build: Conditionally allow win95 threads and --enable-small. + + When the compiler supports __attribute__((__constructor__)) + mythread_once() is never used, even with --enable-small. A configuration + with win95 threads and --enable-small will compile and be thread safe so + it can be allowed. + + This isn't a very common configuration since MSVC does not support + __attribute__((__constructor__)), but MINGW32 and CLANG32 environments + for MSYS2 can use win95 threads and have + __attribute__((__constructor__)) support. + + configure.ac | 21 +++++++++++++-------- + 1 file changed, 13 insertions(+), 8 deletions(-) + +commit c0c0cd4a483a672b66a13761583bc4f84d86d501 +Author: Jamaika1 +Date: 2023-08-08 14:07:59 +0200 + + mythread.h: Fix typo error in Vista threads mythread_once(). + + The "once_" variable was accidentally referred to as just "once". This + prevented building with Vista threads when + HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR was not defined. + + src/common/mythread.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit d93fbefcc48a8737fdf5678ce66d1c1d605752a0 +Author: Jia Tan +Date: 2023-08-03 20:10:21 +0800 + + Tests: Style fixes to test_lzip_decoder.c. + + tests/test_lzip_decoder.c | 36 ++++++++++++++++++++++++------------ + 1 file changed, 24 insertions(+), 12 deletions(-) + +commit 65981d8e45741fd1502e007609469e1d60312e69 +Author: Jia Tan +Date: 2023-08-03 15:56:20 +0800 + + Translations: Update the Chinese (simplified) translation. + + po/zh_CN.po | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit a108ed589171d683c34238a87e358b87f69e39a0 +Author: Lasse Collin +Date: 2023-08-02 17:15:12 +0300 + + xz: Omit an empty paragraph on the man page. + + src/xz/xz.1 | 1 - + 1 file changed, 1 deletion(-) + +commit 03c51c5c08fe3579d8bbc8eea8251a1128001330 +Author: Jia Tan +Date: 2023-08-02 20:32:20 +0800 + + Bump version and soname for 5.4.4. + + src/liblzma/Makefile.am | 2 +- + src/liblzma/api/lzma/version.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit d7fa3f1b58a77f79b1a4e12452418b5555632e18 +Author: Jia Tan +Date: 2023-08-02 20:30:07 +0800 + + Add NEWS for 5.4.4. + + NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 43 insertions(+) + +commit 6a1093c0004c42eeaef312456c295671496dd67a +Author: Lasse Collin +Date: 2023-08-02 15:19:43 +0300 + + build-aux/manconv.sh: Fix US-ASCII and UTF-8 output. + + groff defaults to SGR escapes. Using -P-c passes -c to grotty + which restores the old behavior. Perhaps there is a better way to + get pure plain text output but this works for now. + + build-aux/manconv.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit f6f9f5651a7e2d89f588981533155ab850e063f7 +Author: Lasse Collin +Date: 2023-08-01 19:10:43 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 0dd83ba8767dad722e0f0f94e0e4146e290a28cb +Author: Lasse Collin +Date: 2023-08-01 18:22:24 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 4170a80785cc69edfc5fdfe498bed5f40db6a7ef +Author: ChanTsune <41658782+ChanTsune@users.noreply.github.com> +Date: 2023-08-01 18:17:17 +0300 + + mythread.h: Disable signal functions in builds targeting Wasm + WASI. + + signal.h in WASI SDK doesn't currently provide sigprocmask() + or sigset_t. liblzma doesn't need them so this change makes + liblzma and xzdec build against WASI SDK. xz doesn't build yet + and the tests don't either as tuktest needs setjmp() which + isn't (yet?) implemented in WASI SDK. + + Closes: https://github.com/tukaani-project/xz/pull/57 + See also: https://github.com/tukaani-project/xz/pull/56 + + (The original commit was edited a little by Lasse Collin.) + + src/common/mythread.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 0db6fbe0be1545a4f25fcd6993371155b37bbb26 +Author: Dimitri Papadopoulos Orfanos <3234522+DimitriPapadopoulos@users.noreply.github.com> +Date: 2023-07-31 14:02:21 +0200 + + Docs: Fix typos found by codespell + + CMakeLists.txt | 4 ++-- + NEWS | 2 +- + configure.ac | 2 +- + src/liblzma/api/lzma/container.h | 4 ++-- + src/liblzma/api/lzma/filter.h | 2 +- + src/liblzma/api/lzma/lzma12.h | 4 ++-- + src/liblzma/common/block_buffer_encoder.c | 2 +- + src/liblzma/common/common.h | 2 +- + src/liblzma/common/file_info.c | 2 +- + src/liblzma/common/lzip_decoder.c | 2 +- + src/liblzma/common/stream_decoder_mt.c | 8 ++++---- + src/liblzma/common/string_conversion.c | 6 +++--- + src/liblzma/lz/lz_encoder.h | 2 +- + src/liblzma/lzma/lzma_encoder.c | 4 ++-- + src/xz/hardware.c | 4 ++-- + tests/test_filter_flags.c | 4 ++-- + tests/test_index.c | 2 +- + tests/test_vli.c | 2 +- + 18 files changed, 29 insertions(+), 29 deletions(-) + +commit 84a3a1f4e4f146b3b5fa73fe708cacb0d9f829f3 +Author: Jia Tan +Date: 2023-07-26 20:26:23 +0800 + + Update .gitignore. + + .gitignore | 4 ++++ + 1 file changed, 4 insertions(+) + +commit 962b3d41e0c27355ba3052ef7b7d9a887de807e5 +Author: Jia Tan +Date: 2023-07-28 22:03:08 +0800 + + CMake: Conditionally allow the creation of broken symlinks. + + The CMake build will try to create broken symlinks on Unix and Unix-like + platforms. Cygwin and MSYS2 are Unix-like, but may not be able to create + broken symlinks. The value of the CYGWIN or MSYS environment variables + determine if broken symlinks are valid. + + The default for MSYS2 does not allow for broken symlinks, so the CMake + build has been broken for MSYS2 since commit + 80a1a8bb838842a2be343bd88ad1462c21c5e2c9. + + CMakeLists.txt | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++----- + 1 file changed, 75 insertions(+), 7 deletions(-) + +commit 19899340cf74d98304f9f5b726c72e85c7017d72 +Author: Jia Tan +Date: 2023-07-24 21:43:44 +0800 + + liblzma: Prevent an empty translation unit in Windows builds. + + To workaround Automake lacking Windows resource compiler support, an + empty source file is compiled to overwrite the resource files for static + library builds. Translation units without an external declaration are + not allowed by the C standard and result in a warning when used with + -Wempty-translation-unit (Clang) or -pedantic (GCC). + + src/liblzma/Makefile.am | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +commit ef7fbe83937abd7f55f1637c1d08b559f1d3d6cc +Author: Jia Tan +Date: 2023-07-21 18:05:44 +0800 + + Tests: Skip .lz files in test_files.sh if not configured. + + Previously if the lzip decoder was not configured then test_files.sh + would pass the lzip tests instead of skipping them. + + tests/test_files.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit e49815ba7aa610b72e8724025eceee23c27e7b23 +Author: Jia Tan +Date: 2023-07-20 22:11:13 +0800 + + Tests: Add ARM64 filter test to test_compress.sh. + + tests/test_compress.sh | 1 + + 1 file changed, 1 insertion(+) + +commit db5b57b827c2b084586c51da1b8a3ab0984bdb40 +Author: Jia Tan +Date: 2023-07-22 18:37:56 +0800 + + Translations: Update the Vietnamese translation. + + po/vi.po | 45 ++++++++++++++++++++++++++++----------------- + 1 file changed, 28 insertions(+), 17 deletions(-) + +commit e6ba5014081c98cb068253b3e5f9e372dd157f3c +Author: Jia Tan +Date: 2023-07-20 20:30:05 +0800 + + Translations: Update the Croatian translation. + + po/hr.po | 49 ++++++++++++++++++++++++++++++------------------- + 1 file changed, 30 insertions(+), 19 deletions(-) + +commit 82657a1f10a25050a3e9c246c41deb785cccba3a +Author: Jia Tan +Date: 2023-07-20 20:28:32 +0800 + + Translations: Update the Korean man page translations. + + po4a/ko.po | 1255 ++++++++++++++++++++++++++++++------------------------------ + 1 file changed, 629 insertions(+), 626 deletions(-) + +commit fab35907d13efbe7c457e00a310123335d7bae3e +Author: Jia Tan +Date: 2023-07-20 20:25:24 +0800 + + Translations: Update the Korean translation. + + po/ko.po | 45 ++++++++++++++++++++++++++++----------------- + 1 file changed, 28 insertions(+), 17 deletions(-) + +commit f530fe1964c34797fa3b775ec5804d68007c1579 +Author: Jia Tan +Date: 2023-07-20 20:24:05 +0800 + + Translations: Update the Polish translation. + + po/pl.po | 47 +++++++++++++++++++++++++++++------------------ + 1 file changed, 29 insertions(+), 18 deletions(-) + +commit 10b3500cc2617aabdbc802a63164ce0a3683ad2b +Author: Jia Tan +Date: 2023-07-20 20:22:23 +0800 + + Translations: Update the German man page translations. + + po4a/de.po | 1255 ++++++++++++++++++++++++++++++------------------------------ + 1 file changed, 629 insertions(+), 626 deletions(-) + +commit 3d14e8a34dba176f975326924ae28a3ab5fee165 +Author: Jia Tan +Date: 2023-07-20 20:18:44 +0800 + + Translations: Update the German translation. + + po/de.po | 47 +++++++++++++++++++++++++++++------------------ + 1 file changed, 29 insertions(+), 18 deletions(-) + +commit bdcc180a2da15039c47455c1cafd1ce9aff442e4 +Author: Jia Tan +Date: 2023-07-20 20:17:10 +0800 + + Translations: Update the Chinese (simplified) translation. + + po/zh_CN.po | 47 +++++++++++++++++++++++++++++------------------ + 1 file changed, 29 insertions(+), 18 deletions(-) + +commit 844240350d33cb46ba8827b74dc8758e2abed9e5 +Author: Jia Tan +Date: 2023-07-20 20:15:47 +0800 + + Translations: Update the Swedish translation. + + po/sv.po | 47 +++++++++++++++++++++++++++++------------------ + 1 file changed, 29 insertions(+), 18 deletions(-) + +commit bdc7952bcfbc20c134f723ff5cbf84ab690fb4fc +Author: Jia Tan +Date: 2023-07-20 20:14:00 +0800 + + Translations: Update the Ukrainian man page translations. + + po4a/uk.po | 1253 ++++++++++++++++++++++++++++++------------------------------ + 1 file changed, 628 insertions(+), 625 deletions(-) + +commit 143396e070c8d8afb56e3a5f688b214222cf71e0 +Author: Jia Tan +Date: 2023-07-20 20:09:15 +0800 + + Translations: Update the Ukrainian translation. + + po/uk.po | 45 ++++++++++++++++++++++++++++----------------- + 1 file changed, 28 insertions(+), 17 deletions(-) + +commit 1b8146d64eaac51b40079f5788b85c1eb79e35de +Author: Jia Tan +Date: 2023-07-20 20:06:57 +0800 + + Translations: Update the Spanish translation. + + po/es.po | 47 +++++++++++++++++++++++++++++------------------ + 1 file changed, 29 insertions(+), 18 deletions(-) + +commit f947ce09d79ef8fa6549d350c4d72e4a8a9fa697 +Author: Jia Tan +Date: 2023-07-20 20:05:19 +0800 + + Translations: Update the Romanian translation. + + po/ro.po | 48 ++++++++++++++++++++++++++++++------------------ + 1 file changed, 30 insertions(+), 18 deletions(-) + +commit f681301a368def3f597a7c7bea7cb3f7a2f933e7 +Author: Jia Tan +Date: 2023-07-20 20:02:56 +0800 + + Translations: Update the Romanian man page translations. + + po4a/ro.po | 1254 ++++++++++++++++++++++++++++++------------------------------ + 1 file changed, 629 insertions(+), 625 deletions(-) + +commit 8bc3146c6be920b56283f4ee846456cb34ae4b6f +Author: Jia Tan +Date: 2023-07-13 21:26:47 +0800 + + xz: Update man page Authors and date. + + src/xz/xz.1 | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +commit c2905540ef905412b54c76488758712d3e2a0f9d +Author: Jia Tan +Date: 2023-07-18 23:19:09 +0800 + + xz: Slight reword in xz man page for consistency. + + Changed will print => prints in xz --robot --version description to + match --robot --info-memory description. + + src/xz/xz.1 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 2600d3352449faf57d9cb3fa00cbe40548a1310f +Author: Jia Tan +Date: 2023-07-18 22:49:57 +0800 + + liblzma: Improve comment in string_conversion.c. + + The comment used "flag" when referring to decoder options. Just + referring to them as options is more clear and consistent. + + src/liblzma/common/string_conversion.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 98fc14541eec3e1dcf694075c8533f19a3cee552 +Author: Jia Tan +Date: 2023-05-13 21:21:54 +0800 + + liblzma: Reword lzma_str_list_filters() documentation. + + Reword "options required" to "options read". The previous wording + may have suggested that the options listed were all required when + the filters are used for encoding or decoding. Now it should be + more clear that the options listed are the ones relevant for + encoding or decoding. + + src/liblzma/api/lzma/filter.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 1ac79b4cbaecf3f4930a5d8ce6f7e1f2b63c2a01 +Author: Lasse Collin +Date: 2023-07-18 17:37:33 +0300 + + xz: Translate the second "%s: " in message.c since French needs "%s : ". + + This string is used to print a filename when using "xz -v" and + stderr isn't a terminal. + + src/xz/message.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 97851be2c6c64494f23c3a735601c13d4387820b +Author: Lasse Collin +Date: 2023-07-18 14:35:33 +0300 + + xz: Make "%s: %s" translatable because French needs "%s : %s". + + src/xz/args.c | 5 ++++- + src/xz/coder.c | 8 ++++---- + src/xz/file_io.c | 8 ++++---- + src/xz/list.c | 11 ++++++----- + 4 files changed, 18 insertions(+), 14 deletions(-) + +commit b406828a6dfd3caa4f77efe3ff3e3eea263eee62 +Author: Lasse Collin +Date: 2023-07-18 13:57:54 +0300 + + liblzma: Tweak #if condition in memcmplen.h. + + Maybe ICC always #defines _MSC_VER on Windows but now + it's very clear which code will get used. + + src/liblzma/common/memcmplen.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit ef4a07ad9434f81417395f6fe0bb331e027a703b +Author: Lasse Collin +Date: 2023-07-18 13:49:43 +0300 + + liblzma: Omit unnecessary parenthesis in a preprocessor directive. + + src/liblzma/common/memcmplen.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 64ee0caaea06654b28afaee850fb187a11bf9cb2 +Author: Jia Tan +Date: 2023-06-28 20:22:38 +0800 + + liblzma: Prevent warning for MSYS2 Windows build. + + In lzma_memcmplen(), the header file is only included if + _MSC_VER and _M_X64 are both defined but _BitScanForward64() was + previously used if _M_X64 was defined. GCC for MSYS2 defines _M_X64 but + not _MSC_VER so _BitScanForward64() was used without including + . + + Now, lzma_memcmplen() will use __builtin_ctzll() for MSYS2 GCC builds as + expected. + + src/liblzma/common/memcmplen.h | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +commit ba177057643dae6e9c167ee26471181c199c8a00 +Author: Jia Tan +Date: 2023-07-14 23:20:33 +0800 + + Docs: Add a new section to INSTALL for Tests. + + The new Tests section describes basic information about the tests, how + to run them, and important details when cross compiling. We have had a + few questions about how to compile the tests without running them, so + hopefully this information will help others with the same question in the + future. + + Fixes: https://github.com/tukaani-project/xz/issues/54 + + INSTALL | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++-------------- + 1 file changed, 64 insertions(+), 17 deletions(-) + +commit 0745b900fafa5ac2c31e8ec3cfba3053457c8b1f +Author: Jia Tan +Date: 2023-07-14 21:10:27 +0800 + + Docs: Update README. + + This adds an entry to "Other implementations of the .xz format" for + XZ for Java. + + README | 4 ++++ + 1 file changed, 4 insertions(+) + +commit c972d44103c4edf88e73917ef08bde69db9d06cb +Author: Jia Tan +Date: 2023-07-18 13:27:46 +0300 + + xz: Fix typo in man page. + + The Memory limit information section described three output + columns when it actually has six. This was reworded to + "multiple" to make it more future proof. + + src/xz/xz.1 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 6e21f1b4e2c580b64d258e3b81ac9e44d53b9283 +Author: Jia Tan +Date: 2023-07-14 21:30:25 +0800 + + Tests: Improve feature testing for skipping. + + Fixed a bug where test_compress_* would all fail if arm64 or armthumb + filters were enabled for compression but arm was disabled. Since the + grep tests only checked for "define HAVE_ENCODER_ARM", this would match + on HAVE_ENCODER_ARM64 or HAVE_ENCODER_ARMTHUMB. + + Now the config.h feature test requires " 1" at the end to prevent the + prefix problem. have_feature() was also updated for this even though + there were known current bugs affecting it. This is just in case future + features have a similar prefix problem. + + tests/test_compress.sh | 4 ++-- + tests/test_files.sh | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +commit 26c37d290c0884a4518a26b949575420a77fb938 +Author: Jia Tan +Date: 2023-07-10 20:56:28 +0800 + + Translations: Update the Chinese (traditional) translation. + + po/zh_TW.po | 659 ++++++++++++++++++++++++++++++++++-------------------------- + 1 file changed, 377 insertions(+), 282 deletions(-) + +commit 2ec65181e28335692a3a4fac4fefc4303111d355 +Author: Jia Tan +Date: 2023-07-08 20:03:59 +0800 + + Translations: Update the Vietnamese translation. + + po/vi.po | 620 +++++++++++++++++++++++++++++++++++---------------------------- + 1 file changed, 349 insertions(+), 271 deletions(-) + +commit c44c7e7590db1b89c97e106f5c516bf69189e233 +Author: Jia Tan +Date: 2023-06-28 20:46:31 +0800 + + Tests: Fix memory leaks in test_index. + + Several tests were missing calls to lzma_index_end() to clean up the + lzma_index structs. The memory leaks were discovered by using + -fsanitize=address with GCC. + + tests/test_index.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +commit b9499c94fccc03eba5311b5305f04149a7c5af65 +Author: Jia Tan +Date: 2023-06-28 20:43:29 +0800 + + Tests: Fix memory leaks in test_block_header. + + test_block_header was not properly freeing the filter options between + calls to lzma_block_header_decode(). The memory leaks were discovered by + using -fsanitize=address with GCC. + + tests/test_block_header.c | 38 ++++++++++++++++++++++---------------- + 1 file changed, 22 insertions(+), 16 deletions(-) + +commit 1155471651ad456c5f90aee6435931fae65682bf +Author: Jia Tan +Date: 2023-06-28 20:31:11 +0800 + + liblzma: Prevent uninitialzed warning in mt stream encoder. + + This change only impacts the compiler warning since it was impossible + for the wait_abs struct in stream_encode_mt() to be used before it was + initialized since mythread_condtime_set() will always be called before + mythread_cond_timedwait(). + + Since the mythread.h code is different between the POSIX and + Windows versions, this warning was only present on Windows builds. + + Thanks to Arthur S for reporting the warning and providing an initial + patch. + + src/liblzma/common/stream_encoder_mt.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 62dd1c9bf0c66679ceeebc8b99bca136ca43bcb9 +Author: Jia Tan +Date: 2023-06-07 00:10:38 +0800 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit d04eb78ab3892d3678c180437dd66379efa051fd +Author: Benjamin Buch +Date: 2023-06-06 15:32:45 +0200 + + CMake: Protects against double find_package + + Boost iostream uses `find_package` in quiet mode and then again uses + `find_package` with required. This second call triggers a + `add_library cannot create imported target "LibLZMA::LibLZMA" + because another target with the same name already exists.` + + This can simply be fixed by skipping the alias part on secondary + `find_package` runs. + + CMakeLists.txt | 16 +++++++++------- + 1 file changed, 9 insertions(+), 7 deletions(-) + +commit 12ea1fb29763dd72376aca73d69621aff01eaa7f +Author: Jia Tan +Date: 2023-05-31 20:26:42 +0800 + + Translations: Update the Esperanto translation. + + po/eo.po | 185 +++++++++++++++++++++++++++++++-------------------------------- + 1 file changed, 92 insertions(+), 93 deletions(-) + +commit a4d45c07c1e4aa0ea9410b4eed7301c97e960319 +Author: Jia Tan +Date: 2023-05-31 20:25:00 +0800 + + Translations: Update the Croatian translation. + + po/hr.po | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit f51b7bcea6f948db9529b3e6d850e76a30cc0e96 +Author: Jia Tan +Date: 2023-05-31 20:15:53 +0800 + + Translations: Update the Chinese (simplified) translation. + + po/zh_CN.po | 317 ++++++++++++++++++++++++++++++------------------------------ + 1 file changed, 157 insertions(+), 160 deletions(-) + +commit d5b81c19a7594fbb913bb3450360bc2145f29568 +Author: Jia Tan +Date: 2023-05-17 23:12:13 +0800 + + Translations: Update German translation of man pages. + + po4a/de.po | 52 ++++++++++++---------------------------------------- + 1 file changed, 12 insertions(+), 40 deletions(-) + +commit 36860a3e30d5675b4dba3a343159458d8864bceb +Author: Jia Tan +Date: 2023-05-17 23:09:18 +0800 + + Translations: Update the German translation. + + po/de.po | 189 +++++++++++++++++++++++++++++++-------------------------------- + 1 file changed, 94 insertions(+), 95 deletions(-) + +commit f05641ef0d4990c4c58f459039d412475b94b37d +Author: Jia Tan +Date: 2023-05-17 20:30:01 +0800 + + Translations: Update the Croatian translation. + + po/hr.po | 187 +++++++++++++++++++++++++++++++-------------------------------- + 1 file changed, 93 insertions(+), 94 deletions(-) + +commit b852f6f11d43cafce871cd158c80488f86619a63 +Author: Jia Tan +Date: 2023-05-17 20:26:54 +0800 + + Translations: Update Korean translation of man pages. + + po4a/ko.po | 3015 ++++++++++++------------------------------------------------ + 1 file changed, 568 insertions(+), 2447 deletions(-) + +commit fdcb78fb6f5313eda363869690685471d7ab9731 +Author: Jia Tan +Date: 2023-05-17 20:13:01 +0800 + + Translations: Update the Korean translation. + + po/ko.po | 319 +++++++++++++++++++++++++++++++-------------------------------- + 1 file changed, 158 insertions(+), 161 deletions(-) + +commit 9e39cebe3ccdd4bc320ce6e7eea989bdd167c8b2 +Author: Jia Tan +Date: 2023-05-16 23:49:09 +0800 + + Translations: Update the Spanish translation. + + po/es.po | 319 +++++++++++++++++++++++++++++++-------------------------------- + 1 file changed, 158 insertions(+), 161 deletions(-) + +commit 7a578d1d8293fc1cf7c6f9df76bc6a0e55c51a14 +Author: Jia Tan +Date: 2023-05-16 23:47:23 +0800 + + Translations: Update the Romanian translation. + + po/ro.po | 195 ++++++++++++++++++++++++++++++++------------------------------- + 1 file changed, 98 insertions(+), 97 deletions(-) + +commit 362320fea5383bae179763763625532bad6d10e8 +Author: Jia Tan +Date: 2023-05-16 23:45:43 +0800 + + Translations: Update Romanian translation of man pages. + + po4a/ro.po | 19 ++++++++++--------- + 1 file changed, 10 insertions(+), 9 deletions(-) + +commit 29c5a870be23d0a565b959404b34a8b1babef7df +Author: Jia Tan +Date: 2023-05-16 23:43:51 +0800 + + Translations: Update Ukrainian translation of man pages. + + po4a/uk.po | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +commit 5ee57572773207371712b1bbcd9b5b8c1baad2cc +Author: Jia Tan +Date: 2023-05-16 23:37:54 +0800 + + Translations: Update the Ukrainian translation. + + po/uk.po | 321 +++++++++++++++++++++++++++++++-------------------------------- + 1 file changed, 159 insertions(+), 162 deletions(-) + +commit dfc257bdb224780d3c8cdeca5a8e52848b9adc0a +Author: Jia Tan +Date: 2023-05-16 23:07:35 +0800 + + Translations: Update the Polish translation. + + po/pl.po | 316 +++++++++++++++++++++++++++++++-------------------------------- + 1 file changed, 155 insertions(+), 161 deletions(-) + +commit f6df4c4ab7378d2971ae1606f4eecc011ea5fc6d +Author: Jia Tan +Date: 2023-05-16 22:52:14 +0800 + + Translations: Update the Swedish translation. + + po/sv.po | 319 +++++++++++++++++++++++++++++++-------------------------------- + 1 file changed, 158 insertions(+), 161 deletions(-) + +commit 25da22e0521ec698dae4eb5e994b4cd3f4708b60 +Author: Jia Tan +Date: 2023-05-16 21:21:38 +0800 + + Translations: Update the Esperanto translation. + + po/eo.po | 34 +++++++++++++++++----------------- + 1 file changed, 17 insertions(+), 17 deletions(-) + +commit 4f57a9c9915b7b9267885cf9fca58e5c8208458d +Author: Jia Tan +Date: 2023-05-11 23:49:23 +0800 + + liblzma: Adds lzma_nothrow to MicroLZMA API functions. + + None of the liblzma functions may throw an exception, so this + attribute should be applied to all liblzma API functions. + + src/liblzma/api/lzma/container.h | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +commit 238b4e5458b4bd2cadefb768b8ea7c6b70a191ac +Author: Jia Tan +Date: 2023-05-04 20:38:52 +0800 + + Translations: Update the Croatian translation. + + po/hr.po | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 0cee63c3c6c4f9084a5e7fa7c15a1863ac8e5ffc +Author: Jia Tan +Date: 2023-05-04 19:50:42 +0800 + + Bump version and soname for 5.4.3. + + src/liblzma/Makefile.am | 2 +- + src/liblzma/api/lzma/version.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit 01f937ea9a49005c5091c0165fa0c1e572dd1749 +Author: Jia Tan +Date: 2023-05-02 20:39:56 +0800 + + Add NEWS for 5.4.3. + + NEWS | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +commit e9b9ea953179502d5245b4e6ca4f5ffe9d5797b1 +Author: Lasse Collin +Date: 2023-05-03 22:46:42 +0300 + + tuklib_integer.h: Fix a recent copypaste error in Clang detection. + + Wrong line was changed in 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7. + Also, this has >= instead of == since ints larger than 32 bits would + work too even if not relevant in practice. + + src/common/tuklib_integer.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit be6e39a8622f0d905072874ec25b1ffd155b12e1 +Author: Jia Tan +Date: 2023-04-20 20:15:00 +0800 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 9e343a46cf87a345799222c0b0b3a6f3358dde0c +Author: Jia Tan +Date: 2023-04-19 22:22:16 +0800 + + Windows: Include when needed. + + Legacy Windows did not need to #include to use the MSVC + intrinsics. Newer versions likely just issue a warning, but the MSVC + documentation says to include the header file for the intrinsics we use. + + GCC and Clang can "pretend" to be MSVC on Windows, so extra checks are + needed in tuklib_integer.h to only include when it will is + actually needed. + + src/common/tuklib_integer.h | 6 ++++++ + src/liblzma/common/memcmplen.h | 10 ++++++++++ + 2 files changed, 16 insertions(+) + +commit 12321a9390acc076b414035a46df9d7545ac379f +Author: Jia Tan +Date: 2023-04-19 21:59:03 +0800 + + tuklib_integer: Use __builtin_clz() with Clang. + + Clang has support for __builtin_clz(), but previously Clang would + fallback to either the MSVC intrinsic or the regular C code. This was + discovered due to a bug where a new version of Clang required the + header file in order to use the MSVC intrinsics. + + Thanks to Anton Kochkov for notifying us about the bug. + + src/common/tuklib_integer.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit d1f0e01c395960efd6c29ff144eda4f4c8c1c6d3 +Author: Lasse Collin +Date: 2023-04-14 18:42:33 +0300 + + liblzma: Update project maintainers in lzma.h. + + AUTHORS was updated earlier, lzma.h was simply forgotten. + + src/liblzma/api/lzma.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 8204c5d1304e1e3b7487801b4acaf8e3179a6c52 +Author: Jia Tan +Date: 2023-04-13 20:45:19 +0800 + + liblzma: Cleans up old commented out code. + + src/liblzma/common/alone_encoder.c | 11 ----------- + 1 file changed, 11 deletions(-) + +commit 32980d1562bc031013306be1c787761fa63da87d +Author: Jia Tan +Date: 2023-03-28 22:32:40 +0800 + + CMake: Update liblzma-config.cmake generation. + + Now that the threading is configurable, the liblzma CMake package only + needs the threading library when using POSIX threads. + + CMakeLists.txt | 33 ++++++++++++++++++++++----------- + 1 file changed, 22 insertions(+), 11 deletions(-) + +commit 023907faa965476fb921a6344253c50e0ba795f9 +Author: Jia Tan +Date: 2023-03-28 22:25:33 +0800 + + CMake: Allows setting thread method. + + The thread method is now configurable for the CMake build. It matches + the Autotools build by allowing ON (pick the best threading method), + OFF (no threading), posix, win95, and vista. If both Windows and + posix threading are both available, then ON will choose Windows + threading. Windows threading will also not use: + + target_link_libraries(liblzma Threads::Threads) + + since on systems like MinGW-w64 it would link the posix threads + without purpose. + + CMakeLists.txt | 144 +++++++++++++++++++++++++++++++++++++++++---------------- + 1 file changed, 104 insertions(+), 40 deletions(-) + +commit ba176d77cbb164b13006516660fc1ff6c59dedb5 +Author: Jia Tan +Date: 2023-03-24 20:05:59 +0800 + + CMake: Only build xzdec if decoders are enabled. + + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit c99d697df800e9bc47e09facf88bcfdb9e0264a5 +Author: Jia Tan +Date: 2023-03-22 15:42:04 +0800 + + Build: Removes redundant check for LZMA1 filter support. + + src/liblzma/lzma/Makefile.inc | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +commit 54a2fd8c850e626343b79c4cc8fcac2f638ec890 +Author: Lasse Collin +Date: 2023-03-23 15:14:29 +0200 + + CMake: Bump maximum policy version to 3.26. + + It adds only one new policy related to FOLDERS which we don't use. + This makes it clear that the code is compatible with the policies + up to 3.26. + + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 622d0fdc02d5f565c2872d79bc70c669c95c8284 +Author: Jia Tan +Date: 2023-03-21 23:36:00 +0800 + + CMake: Conditionally build xz list.* files if decoders are enabled. + + CMakeLists.txt | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +commit 3e2dc523c596cd770a6a7c58cacc0d0d8761e853 +Author: Jia Tan +Date: 2023-02-25 11:46:50 +0800 + + CMake: Allow configuring features as cache variables. + + This allows users to change the features they build either in + CMakeCache.txt or by using a CMake GUI. The sources built for + liblzma are affected by this too, so only the necessary files + will be compiled. + + CMakeLists.txt | 528 ++++++++++++++++++++++++++++++++++++++++++--------------- + 1 file changed, 391 insertions(+), 137 deletions(-) + +commit 0c053f97337fa4ead77acefb577e8e86f8ef388d +Author: Lasse Collin +Date: 2023-03-21 14:07:51 +0200 + + Build: Add a comment that AC_PROG_CC_C99 is needed for Autoconf 2.69. + + It's obsolete in Autoconf >= 2.70 and just an alias for AC_PROG_CC + but Autoconf 2.69 requires AC_PROG_CC_C99 to get a C99 compiler. + + configure.ac | 3 +++ + 1 file changed, 3 insertions(+) + +commit 915d4f6058d52f84d2b58b0a5f3c8272eaa6c1bd +Author: Lasse Collin +Date: 2023-03-21 14:04:37 +0200 + + Build: configure.ac: Use AS_IF and AS_CASE where required. + + This makes no functional difference in the generated configure + (at least with the Autotools versions I have installed) but this + change might prevent future bugs like the one that was just + fixed in the commit 5a5bd7f871818029d5ccbe189f087f591258c294. + + configure.ac | 30 +++++++++++++++--------------- + 1 file changed, 15 insertions(+), 15 deletions(-) + +commit b848c039586ed2cddb6fb033680dac107cc5143f +Author: Lasse Collin +Date: 2023-03-21 13:12:03 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit c775ba1602a74f29dbc2088bbe4d02c23fc32ba1 +Author: Lasse Collin +Date: 2023-03-21 13:11:49 +0200 + + Build: Fix --disable-threads breaking the building of shared libs. + + This is broken in the releases 5.2.6 to 5.4.2. A workaround + for these releases is to pass EGREP='grep -E' as an argument + to configure in addition to --disable-threads. + + The problem appeared when m4/ax_pthread.m4 was updated in + the commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad which + introduced the use of AC_EGREP_CPP. AC_EGREP_CPP calls + AC_REQUIRE([AC_PROG_EGREP]) to set the shell variable EGREP + but this was only executed if POSIX threads were enabled. + Libtool code also has AC_REQUIRE([AC_PROG_EGREP]) but Autoconf + omits it as AC_PROG_EGREP has already been required earlier. + Thus, if not using POSIX threads, the shell variable EGREP + would be undefined in the Libtool code in configure. + + ax_pthread.m4 is fine. The bug was in configure.ac which called + AX_PTHREAD conditionally in an incorrect way. Using AS_CASE + ensures that all AC_REQUIREs get always run. + + Thanks to Frank Busse for reporting the bug. + Fixes: https://github.com/tukaani-project/xz/issues/45 + + configure.ac | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +commit 0673c9ec98b6bae12b33dc295564514aaa26e2fc +Author: Lasse Collin +Date: 2023-03-19 22:45:59 +0200 + + liblzma: Silence -Wsign-conversion in SSE2 code in memcmplen.h. + + Thanks to Christian Hesse for reporting the issue. + Fixes: https://github.com/tukaani-project/xz/issues/44 + + src/liblzma/common/memcmplen.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 6ca8046ecbc7a1c81ee08f544bfd1414819fb2e8 +Author: Jia Tan +Date: 2023-03-18 23:22:06 +0800 + + Bump version and soname for 5.4.2. + + src/liblzma/Makefile.am | 2 +- + src/liblzma/api/lzma/version.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit ce4f246600db10e77fc93d492ea045b4c9830bc6 +Author: Jia Tan +Date: 2023-03-18 22:10:57 +0800 + + Add NEWS for 5.4.2. + + NEWS | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 48 insertions(+) + +commit 3634fe330788fc0df217acdb6581031a851600a3 +Author: Lasse Collin +Date: 2023-03-18 16:00:54 +0200 + + Update the copy of GNU GPLv3 from gnu.org to COPYING.GPLv3. + + COPYING.GPLv3 | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +commit 97679d25ce7cb014328f1455bb338903c003d54f +Author: Lasse Collin +Date: 2023-03-18 15:51:57 +0200 + + Change a few HTTP URLs to HTTPS. + + The xz man page timestamp was intentionally left unchanged. + + INSTALL | 2 +- + README | 8 ++++---- + configure.ac | 2 +- + dos/INSTALL.txt | 4 ++-- + src/liblzma/api/lzma.h | 8 ++++---- + src/liblzma/check/sha256.c | 2 +- + src/xz/xz.1 | 2 +- + windows/INSTALL-MinGW.txt | 10 +++++----- + 8 files changed, 19 insertions(+), 19 deletions(-) + +commit 01a67e89a56c3ebf5f6681bd06f0edc22a1ae594 +Author: Jia Tan +Date: 2023-03-18 00:40:28 +0800 + + CMake: Fix typo in a comment. + + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 5dca3f5cbab31105196c89cd6df0a9bbc3307c05 +Author: Lasse Collin +Date: 2023-03-17 18:36:22 +0200 + + Windows: build.bash: Copy liblzma API docs to the output package. + + windows/build.bash | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit ae252862b30b509ab88b2bbcaa08e8d51b57e928 +Author: Lasse Collin +Date: 2023-03-17 08:53:38 +0200 + + Windows: Add microlzma_*.c to the VS project files. + + These should have been included in 5.3.2alpha already. + + windows/vs2013/liblzma.vcxproj | 2 ++ + windows/vs2013/liblzma_dll.vcxproj | 2 ++ + windows/vs2017/liblzma.vcxproj | 2 ++ + windows/vs2017/liblzma_dll.vcxproj | 2 ++ + windows/vs2019/liblzma.vcxproj | 2 ++ + windows/vs2019/liblzma_dll.vcxproj | 2 ++ + 6 files changed, 12 insertions(+) + +commit 147d282cc3733e2723df82622b6540ddfb52635e +Author: Lasse Collin +Date: 2023-03-17 08:43:51 +0200 + + CMake: Add microlzma_*.c to the build. + + These should have been included in 5.3.2alpha already. + + CMakeLists.txt | 2 ++ + 1 file changed, 2 insertions(+) + +commit 4523a5ee29f45c0256af67a15771bc8bbd25ba53 +Author: Lasse Collin +Date: 2023-03-17 08:41:36 +0200 + + Build: Update comments about unaligned access to mention 64-bit. + + cmake/tuklib_integer.cmake | 7 +++---- + m4/tuklib_integer.m4 | 4 ++-- + 2 files changed, 5 insertions(+), 6 deletions(-) + +commit 82aacb40367dc580b09c5a7b270f6c98b63e49b9 +Author: Lasse Collin +Date: 2023-03-17 00:02:30 +0200 + + Tests: Update .gitignore. + + .gitignore | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 5d022c24921eec938604a8cb10d70aa08dbd8575 +Author: Lasse Collin +Date: 2023-03-14 20:04:03 +0200 + + po4a/update-po: Display the script name consistently in error messages. + + po4a/update-po | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 896295117324f323c0b8db6a31ad6ebfaa88793d +Author: Jia Tan +Date: 2023-03-17 01:30:36 +0800 + + Doc: Rename Doxygen HTML doc directory name liblzma => api. + + When the docs are installed, calling the directory "liblzma" is + confusing since multiple other files in the doc directory are for + liblzma. This should also make it more natural for distros when they + package the documentation. + + .gitignore | 2 +- + Makefile.am | 18 +++++++++--------- + PACKAGERS | 4 ++-- + doxygen/Doxyfile | 2 +- + doxygen/update-doxygen | 18 +++++++++--------- + 5 files changed, 22 insertions(+), 22 deletions(-) + +commit 94097157fae308b2c1a5edb4e8597c68b45eeaea +Author: Jia Tan +Date: 2023-03-16 22:07:15 +0800 + + liblzma: Remove note from lzma_options_bcj about the ARM64 exception. + + This was left in by mistake since an early version of the ARM64 filter + used a different struct for its options. + + src/liblzma/api/lzma/bcj.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit da16d0b73b79d7785ece6f78a577fadd1fb59d0e +Author: Lasse Collin +Date: 2023-03-15 19:19:13 +0200 + + COPYING: Add a note about the included Doxygen-generated HTML. + + COPYING | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +commit e57c74f9ef19201f72c106f2c347596f40229936 +Author: Jia Tan +Date: 2023-03-16 21:41:09 +0800 + + Doc: Update PACKAGERS with details about liblzma API docs install. + + PACKAGERS | 22 ++++++++++++++++------ + 1 file changed, 16 insertions(+), 6 deletions(-) + +commit 7e2fa48bb73edb25457232e2e62a4f81c6b95281 +Author: Jia Tan +Date: 2023-03-16 21:38:32 +0800 + + liblzma: Add set lzma.h as the main page for Doxygen documentation. + + The \mainpage command is used in the first block of comments in lzma.h. + This changes the previously nearly empty index.html to use the first + comment block in lzma.h for its contents. + + lzma.h is no longer documented separately, but this is for the better + since lzma.h only defined a few macros that users do not need to use. + The individual API header files all have a disclaimer that they should + not be #included directly, so there should be no confusion on the fact + that lzma.h should be the only header used by applications. + + Additionally, the note "See ../lzma.h for information about liblzma as + a whole." was removed since lzma.h is now the main page of the + generated HTML and does not have its own page anymore. So it would be + confusing in the HTML version and was only a "nice to have" when + browsing the source files. + + src/liblzma/api/lzma.h | 1 + + src/liblzma/api/lzma/base.h | 2 -- + src/liblzma/api/lzma/bcj.h | 2 -- + src/liblzma/api/lzma/block.h | 2 -- + src/liblzma/api/lzma/check.h | 2 -- + src/liblzma/api/lzma/container.h | 2 -- + src/liblzma/api/lzma/delta.h | 2 -- + src/liblzma/api/lzma/filter.h | 2 -- + src/liblzma/api/lzma/hardware.h | 2 -- + src/liblzma/api/lzma/index.h | 2 -- + src/liblzma/api/lzma/index_hash.h | 4 +--- + src/liblzma/api/lzma/lzma12.h | 2 -- + src/liblzma/api/lzma/stream_flags.h | 2 -- + src/liblzma/api/lzma/version.h | 2 -- + src/liblzma/api/lzma/vli.h | 2 -- + 15 files changed, 2 insertions(+), 29 deletions(-) + +commit d42977c7acfdf7fd9acc8803cf411eca7dc10478 +Author: Jia Tan +Date: 2023-03-16 21:37:32 +0800 + + Build: Generate doxygen documentation in autogen.sh. + + Another command line option (--no-doxygen) was added to disable + creating the doxygen documenation in cases where it not wanted or + if the doxygen tool is not installed. + + autogen.sh | 35 +++++++++++++++++++++++++++++------ + 1 file changed, 29 insertions(+), 6 deletions(-) + +commit 8fc712fcf41d821069c670f22b8bf628e7a4a877 +Author: Jia Tan +Date: 2023-03-16 21:35:55 +0800 + + Build: Create doxygen/update-doxygen script. + + This is a helper script to generate the Doxygen documentation. It can be + run in 'liblzma' or 'internal' mode by setting the first argument. It + will default to 'liblzma' mode and only generate documentation for the + liblzma API header files. + + The helper script will be run during the custom mydist hook when we + create releases. This hook already alters the source directory, so its + fine to do it here too. This way, we can include the Doxygen generated + files in the distrubtion and when installing. + + In 'liblzma' mode, the JavaScript is stripped from the .html files and + the .js files are removed. This avoids license hassle from jQuery and + other libraries that Doxygen 1.9.6 puts into jquery.js in minified form. + + Makefile.am | 1 + + doxygen/update-doxygen | 111 +++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 112 insertions(+) + +commit 77d2c025d19fbac7277c63239cfb1338f02c66c0 +Author: Jia Tan +Date: 2023-03-16 21:34:36 +0800 + + Build: Install Doxygen docs and include in distribution if generated. + + Added a install-data-local target to install the Doxygen documentation + only when it has been generated. In order to correctly remove the docs, + a corresponding uninstall-local target was added. + + If the doxygen docs exist in the source tree, they will also be included + in the distribution now too. + + Makefile.am | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +commit 9af8f6f947a43974a4ff025f4c896f2fb4c91b4f +Author: Jia Tan +Date: 2023-01-03 20:37:30 +0800 + + Doxygen: Refactor Doxyfile.in to doxygen/Doxyfile. + + Instead of having Doxyfile.in configured by Autoconf, the Doxyfile + can have the tags that need to be configured piped into the doxygen + command through stdin with the overrides after Doxyfile's contents. + + Going forward, the documentation should be generated in two different + modes: liblzma or internal. + + liblzma is useful for most users. It is the documentation for just + the liblzma API header files. This is the default. + + internal is for people who want to understand how xz and liblzma work. + It might be useful for people who want to contribute to the project. + + .gitignore | 3 +- + Doxyfile.in | 1234 ------------------------- + Makefile.am | 1 - + configure.ac | 1 - + doxygen/Doxyfile | 2684 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 5 files changed, 2686 insertions(+), 1237 deletions(-) + +commit 1c558a26928b753fcf1c0d4bce9c0643285edd86 +Author: Jia Tan +Date: 2023-02-28 23:22:36 +0800 + + Tests: Remove unused macros and functions. + + tests/tests.h | 75 ----------------------------------------------------------- + 1 file changed, 75 deletions(-) + +commit 7479a69a45a1b8fdb9a209e11f247dce11ac1ba0 +Author: Jia Tan +Date: 2023-01-12 22:29:07 +0800 + + Tests: Refactors existing lzma_index tests. + + Converts the existing lzma_index tests into tuktests and covers every + API function from index.h except for lzma_file_info_decoder, which can + be tested in the future. + + tests/test_index.c | 2036 ++++++++++++++++++++++++++++++++++++++-------------- + 1 file changed, 1492 insertions(+), 544 deletions(-) + +commit fd56d5353360279c10e8e5e05f5bc6ea03f64584 +Author: Lasse Collin +Date: 2023-03-07 19:59:23 +0200 + + xz: Make Capsicum sandbox more strict with stdin and stdout. + + src/xz/file_io.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +commit d1bdaaebc68cae7f0ba457fa990b520df2186fd1 +Author: Lasse Collin +Date: 2023-03-11 19:31:40 +0200 + + xz: Don't fail if Capsicum is enabled but kernel doesn't support it. + + (This commit combines related commits from the master branch.) + + If Capsicum support is missing from the kernel or xz is being run + in an emulator that lacks Capsicum suport, the syscalls will fail + and set errno to ENOSYS. Previously xz would display and error and + exit, making xz unusable. Now it will check for ENOSYS and run + without sandbox support. Other tools like ssh behave similarly. + + Displaying a warning for missing Capsicum support was considered + but such extra output would quickly become annoying. It would also + break test_scripts.sh in "make check". + + Also move cap_enter() to be the first step instead of the last one. + This matches the example in the cap_rights_limit(2) man page. With + the current code it shouldn't make any practical difference though. + + Thanks to Xin Li for the bug report, suggesting a fix, and testing: + https://github.com/tukaani-project/xz/pull/43 + + Thanks to Jia Tan for most of the original commits. + + src/xz/file_io.c | 15 ++++++++++++--- + 1 file changed, 12 insertions(+), 3 deletions(-) + +commit 5d351c69c19d212ddd2cf1f3bdb24900820c6776 +Author: Jia Tan +Date: 2023-02-04 21:06:35 +0800 + + Build: Adjust CMake version search regex. + + Now, the LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, and LZMA_VERSION_PATCH + macros do not need to be on consecutive lines in version.h. They can be + separated by more whitespace, comments, or even other content, as long + as they appear in the proper order (major, minor, patch). + + CMakeLists.txt | 2 ++ + 1 file changed, 2 insertions(+) + +commit b82d4831e3f2339c4cdbc47776c99462088c11b7 +Author: Jia Tan +Date: 2023-01-26 09:50:21 +0800 + + liblzma: Improve documentation for version.h. + + Specified parameter and return values for API functions and documented + a few more of the macros. + + src/liblzma/api/lzma/version.h | 29 ++++++++++++++++++++++------- + 1 file changed, 22 insertions(+), 7 deletions(-) + +commit 2caba3efe3e0c2d7c6dca00e22c56812326a34e6 +Author: Jia Tan +Date: 2023-02-24 23:46:23 +0800 + + liblzma: Clarify lzma_lzma_preset() documentation in lzma12.h. + + lzma_lzma_preset() does not guarentee that the lzma_options_lzma are + usable in an encoder even if it returns false (success). If liblzma + is built with default configurations, then the options will always be + usable. However if the match finders hc3, hc4, or bt4 are disabled, then + the options may not be usable depending on the preset level requested. + + The documentation was updated to reflect this complexity, since this + behavior was unclear before. + + src/liblzma/api/lzma/lzma12.h | 5 +++++ + 1 file changed, 5 insertions(+) + +commit 594f904673ba55a833adfa60bbab6b60d4902d08 +Author: Lasse Collin +Date: 2023-02-27 18:38:35 +0200 + + CMake: Require that the C compiler supports C99 or a newer standard. + + Thanks to autoantwort for reporting the issue and suggesting + a different patch: + https://github.com/tukaani-project/xz/pull/42 + + CMakeLists.txt | 8 ++++++++ + 1 file changed, 8 insertions(+) + +commit 88101143cb774bca6b7006c8335b09dc3f334140 +Author: Jia Tan +Date: 2023-02-24 18:10:37 +0800 + + Tests: Small tweak to test-vli.c. + + The static global variables can be disabled if encoders and decoders + are not built. If they are not disabled and -Werror is used, it will + cause an usused warning as an error. + + tests/test_vli.c | 2 ++ + 1 file changed, 2 insertions(+) + +commit 4042dbf03a06e019ccdd1e9d1b94cf613d62d5a9 +Author: Jia Tan +Date: 2023-02-06 21:46:43 +0800 + + liblzma: Replace '\n' -> newline in filter.h documentation. + + The '\n' renders as a newline when the comments are converted to html + by Doxygen. + + src/liblzma/api/lzma/filter.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 3971f5c5024750ce8286891c6f79ae1661047483 +Author: Jia Tan +Date: 2023-02-06 21:45:37 +0800 + + liblzma: Shorten return description for two functions in filter.h. + + Shorten the description for lzma_raw_encoder_memusage() and + lzma_raw_decoder_memusage(). + + src/liblzma/api/lzma/filter.h | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +commit 5e61b39432752b6cd1a7b518f0f9e4f0c3f0f242 +Author: Jia Tan +Date: 2023-02-06 21:44:45 +0800 + + liblzma: Reword a few lines in filter.h + + src/liblzma/api/lzma/filter.h | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +commit 8a53533869defa1191b41f176a0312cb53a139e2 +Author: Jia Tan +Date: 2023-02-06 21:35:06 +0800 + + liblzma: Improve documentation in filter.h. + + All functions now explicitly specify parameter and return values. + The notes and code annotations were moved before the parameter and + return value descriptions for consistency. + + Also, the description above lzma_filter_encoder_is_supported() about + not being able to list available filters was removed since + lzma_str_list_filters() will do this. + + src/liblzma/api/lzma/filter.h | 226 ++++++++++++++++++++++++++---------------- + 1 file changed, 143 insertions(+), 83 deletions(-) + +commit 6d05b08b17ac8cb93165ee8f310fdd925b0b258f +Author: Lasse Collin +Date: 2023-02-23 20:46:16 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit dfc9a54082e0fc7b3b796ea15336b5075acc79d5 +Author: Lasse Collin +Date: 2023-02-21 22:57:10 +0200 + + liblzma: Avoid null pointer + 0 (undefined behavior in C). + + In the C99 and C17 standards, section 6.5.6 paragraph 8 means that + adding 0 to a null pointer is undefined behavior. As of writing, + "clang -fsanitize=undefined" (Clang 15) diagnoses this. However, + I'm not aware of any compiler that would take advantage of this + when optimizing (Clang 15 included). It's good to avoid this anyway + since compilers might some day infer that pointer arithmetic implies + that the pointer is not NULL. That is, the following foo() would then + unconditionally return 0, even for foo(NULL, 0): + + void bar(char *a, char *b); + + int foo(char *a, size_t n) + { + bar(a, a + n); + return a == NULL; + } + + In contrast to C, C++ explicitly allows null pointer + 0. So if + the above is compiled as C++ then there is no undefined behavior + in the foo(NULL, 0) call. + + To me it seems that changing the C standard would be the sane + thing to do (just add one sentence) as it would ensure that a huge + amount of old code won't break in the future. Based on web searches + it seems that a large number of codebases (where null pointer + 0 + occurs) are being fixed instead to be future-proof in case compilers + will some day optimize based on it (like making the above foo(NULL, 0) + return 0) which in the worst case will cause security bugs. + + Some projects don't plan to change it. For example, gnulib and thus + many GNU tools currently require that null pointer + 0 is defined: + + https://lists.gnu.org/archive/html/bug-gnulib/2021-11/msg00000.html + + https://www.gnu.org/software/gnulib/manual/html_node/Other-portability-assumptions.html + + In XZ Utils null pointer + 0 issue should be fixed after this + commit. This adds a few if-statements and thus branches to avoid + null pointer + 0. These check for size > 0 instead of ptr != NULL + because this way bugs where size > 0 && ptr == NULL will likely + get caught quickly. None of them are in hot spots so it shouldn't + matter for performance. + + A little less readable version would be replacing + + ptr + offset + + with + + offset != 0 ? ptr + offset : ptr + + or creating a macro for it: + + #define my_ptr_add(ptr, offset) \ + ((offset) != 0 ? ((ptr) + (offset)) : (ptr)) + + Checking for offset != 0 instead of ptr != NULL allows GCC >= 8.1, + Clang >= 7, and Clang-based ICX to optimize it to the very same code + as ptr + offset. That is, it won't create a branch. So for hot code + this could be a good solution to avoid null pointer + 0. Unfortunately + other compilers like ICC 2021 or MSVC 19.33 (VS2022) will create a + branch from my_ptr_add(). + + Thanks to Marcin Kowalczyk for reporting the problem: + https://github.com/tukaani-project/xz/issues/36 + + src/liblzma/common/block_decoder.c | 5 ++++- + src/liblzma/common/block_encoder.c | 7 +++++-- + src/liblzma/common/common.c | 20 ++++++++++++++------ + src/liblzma/common/index_decoder.c | 13 ++++++++++--- + src/liblzma/common/index_encoder.c | 11 +++++++++-- + src/liblzma/common/index_hash.c | 13 ++++++++++--- + src/liblzma/common/lzip_decoder.c | 6 +++++- + src/liblzma/delta/delta_decoder.c | 7 ++++++- + src/liblzma/delta/delta_encoder.c | 12 ++++++++++-- + src/liblzma/simple/simple_coder.c | 6 ++++-- + 10 files changed, 77 insertions(+), 23 deletions(-) + +commit f6dce49cb656b358e2fb2a3032e35e20af34dc84 +Author: Jia Tan +Date: 2023-02-07 00:00:44 +0800 + + liblzma: Adjust container.h for consistency with filter.h. + + src/liblzma/api/lzma/container.h | 20 +++++++++----------- + 1 file changed, 9 insertions(+), 11 deletions(-) + +commit 173d240bb4763aedc8c01df4d9c83e311d954c33 +Author: Jia Tan +Date: 2023-02-07 00:00:09 +0800 + + liblzma: Fix small typos and reword a few things in filter.h. + + src/liblzma/api/lzma/container.h | 13 ++++++------- + 1 file changed, 6 insertions(+), 7 deletions(-) + +commit 17797bacde3f7264048ef0976c137a600148d6cf +Author: Jia Tan +Date: 2023-02-06 23:42:08 +0800 + + liblzma: Convert list of flags in lzma_mt to bulleted list. + + src/liblzma/api/lzma/container.h | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +commit 37da0e727161b401b8bfd8dccf163a4b2fc0460b +Author: Jia Tan +Date: 2023-01-26 23:17:41 +0800 + + liblzma: Fix typo in documentation in container.h + + lzma_microlzma_decoder -> lzma_microlzma_encoder + + src/liblzma/api/lzma/container.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit b8331077c626e6bf14f4671d09b561146eaf816a +Author: Jia Tan +Date: 2023-01-26 23:16:34 +0800 + + liblzma: Improve documentation for container.h + + Standardizing each function to always specify parameters and return + values. Also moved the parameters and return values to the end of each + function description. + + src/liblzma/api/lzma/container.h | 146 +++++++++++++++++++++++++-------------- + 1 file changed, 93 insertions(+), 53 deletions(-) + +commit b9a3511bb61d3b6ce49abd33dce6155a573f5272 +Author: Jia Tan +Date: 2023-02-22 20:59:41 +0800 + + CMake: Add LZIP decoder test to list of tests. + + CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +commit cd82ef2fb48b174c57cd03b84a9a0f978772cb89 +Author: Lasse Collin +Date: 2023-02-17 20:56:49 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 076e911ba25cadf2cbdfbd0f65991a002e210c0b +Author: Lasse Collin +Date: 2023-02-17 20:48:28 +0200 + + Build: Use only the generic symbol versioning on MicroBlaze. + + On MicroBlaze, GCC 12 is broken in sense that + __has_attribute(__symver__) returns true but it still doesn't + support the __symver__ attribute even though the platform is ELF + and symbol versioning is supported if using the traditional + __asm__(".symver ...") method. Avoiding the traditional method is + good because it breaks LTO (-flto) builds with GCC. + + See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766 + + For now the only extra symbols in liblzma_linux.map are the + compatibility symbols with the patch that spread from RHEL/CentOS 7. + These require the use of __symver__ attribute or __asm__(".symver ...") + in the C code. Compatibility with the patch from CentOS 7 doesn't + seem valuable on MicroBlaze so use liblzma_generic.map on MicroBlaze + instead. It doesn't require anything special in the C code and thus + no LTO issues either. + + An alternative would be to detect support for __symver__ + attribute in configure.ac and CMakeLists.txt and fall back + to __asm__(".symver ...") but then LTO would be silently broken + on MicroBlaze. It sounds likely that MicroBlaze is a special + case so let's treat it as a such because that is simpler. If + a similar issue exists on some other platform too then hopefully + someone will report it and this can be reconsidered. + + (This doesn't do the same fix in CMakeLists.txt. Perhaps it should + but perhaps CMake build of liblzma doesn't matter much on MicroBlaze. + The problem breaks the build so it's easy to notice and can be fixed + later.) + + Thanks to Vincent Fazio for reporting the problem and proposing + a patch (in the end that solution wasn't used): + https://github.com/tukaani-project/xz/pull/32 + + configure.ac | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +commit bc34e5ac9996667d2c1ec9a7895ec5931ac4caea +Author: Lasse Collin +Date: 2023-02-16 21:09:00 +0200 + + liblzma: Very minor API doc tweaks. + + Use "member" to refer to struct members as that's the term used + by the C standard. + + Use lzma_options_delta.dist and such in docs so that in Doxygen's + HTML output they will link to the doc of the struct member. + + Clean up a few trailing white spaces too. + + src/liblzma/api/lzma/block.h | 6 +++--- + src/liblzma/api/lzma/delta.h | 6 +++--- + src/liblzma/api/lzma/index.h | 10 +++++----- + src/liblzma/api/lzma/stream_flags.h | 6 +++--- + 4 files changed, 14 insertions(+), 14 deletions(-) + +commit d31fbd28be5b79eb682db50004b0fb7aad5299ec +Author: Jia Tan +Date: 2023-02-17 00:54:33 +0800 + + liblzma: Adjust spacing in doc headers in bcj.h. + + src/liblzma/api/lzma/bcj.h | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +commit 701e9be6bede19771895f756082db0c017f86f07 +Author: Jia Tan +Date: 2023-02-17 00:44:44 +0800 + + liblzma: Adjust documentation in bcj.h for consistent style. + + src/liblzma/api/lzma/bcj.h | 43 ++++++++++++++++++++++--------------------- + 1 file changed, 22 insertions(+), 21 deletions(-) + +commit 762c4d0b62d2694cf3a01e030fdfe68e09e7b503 +Author: Jia Tan +Date: 2023-02-17 00:36:05 +0800 + + liblzma: Rename field => member in documentation. + + Also adjusted preset value => preset level. + + src/liblzma/api/lzma/base.h | 18 +++++++-------- + src/liblzma/api/lzma/block.h | 44 ++++++++++++++++++------------------- + src/liblzma/api/lzma/container.h | 26 +++++++++++----------- + src/liblzma/api/lzma/delta.h | 12 +++++----- + src/liblzma/api/lzma/index.h | 30 ++++++++++++------------- + src/liblzma/api/lzma/lzma12.h | 28 +++++++++++------------ + src/liblzma/api/lzma/stream_flags.h | 32 +++++++++++++-------------- + 7 files changed, 95 insertions(+), 95 deletions(-) + +commit 0ce1db0223854d94b4a0d17737ac0486a75d9e6a +Author: Lasse Collin +Date: 2023-02-16 17:59:50 +0200 + + liblzma: Silence a warning from MSVC. + + It gives C4146 here since unary minus with unsigned integer + is still unsigned (which is the intention here). Doing it + with substraction makes it clearer and avoids the warning. + + Thanks to Nathan Moinvaziri for reporting this. + + src/liblzma/check/crc64_fast.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit d83da006b3e8dbad9112e6cde6b27049d193c9ec +Author: Jia Tan +Date: 2023-02-16 21:04:54 +0800 + + liblzma: Improve documentation for stream_flags.h + + Standardizing each function to always specify parameters and return + values. Also moved the parameters and return values to the end of each + function description. + + A few small things were reworded and long sentences broken up. + + src/liblzma/api/lzma/stream_flags.h | 76 ++++++++++++++++++++++--------------- + 1 file changed, 46 insertions(+), 30 deletions(-) + +commit 2796bb4736f645d34939b5d62d5958f534e41e69 +Author: Jia Tan +Date: 2023-02-14 21:50:16 +0800 + + liblzma: Improve documentation in lzma12.h. + + All functions now explicitly specify parameter and return values. + + src/liblzma/api/lzma/lzma12.h | 32 +++++++++++++++++++++++--------- + 1 file changed, 23 insertions(+), 9 deletions(-) + +commit ebebaa8d9381afea440eb1b01917117551adf68f +Author: Jia Tan +Date: 2023-01-27 22:44:06 +0800 + + liblzma: Improve documentation in check.h. + + All functions now explicitly specify parameter and return values. + Also moved the note about SHA-256 functions not being exported to the + top of the file. + + src/liblzma/api/lzma/check.h | 41 ++++++++++++++++++++++++++++------------- + 1 file changed, 28 insertions(+), 13 deletions(-) + +commit 765fa2865aab97ea713c1715922e322b3cf599a7 +Author: Jia Tan +Date: 2023-02-08 21:33:52 +0800 + + liblzma: Improve documentation in index.h + + All functions now explicitly specify parameter and return values. + + src/liblzma/api/lzma/index.h | 177 ++++++++++++++++++++++++++++++------------- + 1 file changed, 126 insertions(+), 51 deletions(-) + +commit 918e208af5960728b6def01e692b395f7d8e3701 +Author: Jia Tan +Date: 2023-02-08 20:35:32 +0800 + + liblzma: Reword a comment in index.h. + + src/liblzma/api/lzma/index.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 1f157d214bc09338876d2467b549935679abc0bf +Author: Jia Tan +Date: 2023-02-08 20:30:23 +0800 + + liblzma: Omit lzma_index_iter's internal field from Doxygen docs. + + Add \private above this field and its sub-fields since it is not meant + to be modified by users. + + src/liblzma/api/lzma/index.h | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +commit 28757fa46d8e0f0a9c17628b2b6af9bcb3cd96fc +Author: Jia Tan +Date: 2023-01-21 21:32:03 +0800 + + liblzma: Fix documentation for LZMA_MEMLIMIT_ERROR. + + LZMA_MEMLIMIT_ERROR was missing the "<" character needed to put + documentation after a member. + + src/liblzma/api/lzma/base.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 135d5a1a65a9e199b9a5550c1f788cf43cd81018 +Author: Jia Tan +Date: 2023-01-21 00:29:38 +0800 + + liblzma: Improve documentation for base.h. + + Standardizing each function to always specify params and return values. + Also fixed a small grammar mistake. + + src/liblzma/api/lzma/base.h | 30 +++++++++++++++++++++++++----- + 1 file changed, 25 insertions(+), 5 deletions(-) + +commit 2287d5668384e289d51e72724997dc920483768e +Author: Jia Tan +Date: 2023-02-14 00:08:33 +0800 + + liblzma: Minor improvements to vli.h. + + Added [out] annotations to parameters that are pointers and can have + their value changed. Also added a clarification to lzma_vli_is_valid. + + src/liblzma/api/lzma/vli.h | 15 ++++++++------- + 1 file changed, 8 insertions(+), 7 deletions(-) + +commit 7124b8a16ae60cb2e93218ff531868eebd673bde +Author: Jia Tan +Date: 2023-02-10 21:38:02 +0800 + + liblzma: Add comments for macros in delta.h. + + Document LZMA_DELTA_DIST_MIN and LZMA_DELTA_DIST_MAX for completeness + and to avoid Doxygen warnings. + + src/liblzma/api/lzma/delta.h | 8 ++++++++ + 1 file changed, 8 insertions(+) + +commit 59c7bb8931159fdb1a31bbbeaed0e6984e2d3c81 +Author: Jia Tan +Date: 2023-02-10 21:35:23 +0800 + + liblzma: Improve documentation in index_hash.h. + + All functions now explicitly specify parameter and return values. + Also reworded the description of lzma_index_hash_init() for readability. + + src/liblzma/api/lzma/index_hash.h | 36 +++++++++++++++++++++++++++--------- + 1 file changed, 27 insertions(+), 9 deletions(-) + +commit e970c28ac3cb2e8051925f81db2fe953664c2645 +Author: Jia Tan +Date: 2023-02-03 00:33:32 +0800 + + liblzma: Fix bug in lzma_str_from_filters() not checking filters[] length. + + The bug is only a problem in applications that do not properly terminate + the filters[] array with LZMA_VLI_UNKNOWN or have more than + LZMA_FILTERS_MAX filters. This bug does not affect xz. + + src/liblzma/common/string_conversion.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +commit 85e01266a96689448abb249da6c6abc3afcd4a4e +Author: Jia Tan +Date: 2023-02-03 00:32:47 +0800 + + Tests: Create test_filter_str.c. + + Tests lzma_str_to_filters(), lzma_str_from_filters(), and + lzma_str_list_filters() API functions. + + CMakeLists.txt | 1 + + tests/Makefile.am | 2 + + tests/test_filter_str.c | 593 ++++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 596 insertions(+) + +commit 3fa0f3ba12dd3383f62dbfa18a864f9b4217fa0a +Author: Jia Tan +Date: 2023-01-22 08:49:00 +0800 + + liblzma: Fix typos in comments in string_conversion.c. + + src/liblzma/common/string_conversion.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 32dbe045d74e94f75c53236fa2a6c0454d7b6d9e +Author: Jia Tan +Date: 2023-02-03 00:20:20 +0800 + + liblzma: Clarify block encoder and decoder documentation. + + Added a few sentences to the description for lzma_block_encoder() and + lzma_block_decoder() to highlight that the Block Header must be coded + before calling these functions. + + src/liblzma/api/lzma/block.h | 15 +++++++++++---- + 1 file changed, 11 insertions(+), 4 deletions(-) + +commit ccf12acbfa7331b1bbb99ec55879186eb35f879f +Author: Jia Tan +Date: 2023-02-03 00:12:24 +0800 + + Update lzma_block documentation for lzma_block_uncomp_encode(). + + src/liblzma/api/lzma/block.h | 3 +++ + 1 file changed, 3 insertions(+) + +commit 6a0b168dd9dc1ef437255c4bfdc6eff8b96fdb24 +Author: Jia Tan +Date: 2023-02-03 00:11:37 +0800 + + liblzma: Minor edits to lzma_block header_size documentation. + + src/liblzma/api/lzma/block.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 84ce36f90e68471fec1f0e61cd93ac7ed9ab4883 +Author: Jia Tan +Date: 2023-02-03 00:11:07 +0800 + + liblzma: Enumerate functions that read version in lzma_block. + + src/liblzma/api/lzma/block.h | 13 +++++++++++-- + 1 file changed, 11 insertions(+), 2 deletions(-) + +commit d6620774682830d606f57109861b6763805b3492 +Author: Jia Tan +Date: 2023-02-03 00:10:34 +0800 + + liblzma: Clarify comment in block.h. + + src/liblzma/api/lzma/block.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 880adb5aa25f66a53d81c2f3acc716f7a4d373d1 +Author: Jia Tan +Date: 2023-02-03 00:07:23 +0800 + + liblzma: Improve documentation for block.h. + + Standardizing each function to always specify params and return values. + Output pointer parameters are also marked with doxygen style [out] to + make it clear. Any note sections were also moved above the parameter and + return sections for consistency. + + src/liblzma/api/lzma/block.h | 96 ++++++++++++++++++++++++++++++++++---------- + 1 file changed, 75 insertions(+), 21 deletions(-) + +commit b5b1b1f061c342271e4977ce5cba604a19c0ca52 +Author: Jia Tan +Date: 2023-02-01 23:38:30 +0800 + + liblzma: Clarify a comment about LZMA_STR_NO_VALIDATION. + + The flag description for LZMA_STR_NO_VALIDATION was previously confusing + about the treatment for filters than cannot be used with .xz format + (lzma1) without using LZMA_STR_ALL_FILTERS. Now, it is clear that + LZMA_STR_NO_VALIDATION is not a super set of LZMA_STR_ALL_FILTERS. + + src/liblzma/api/lzma/filter.h | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +commit e904e778b82b14f2779aab80d6c8f3c01a3fc54b +Author: Jia Tan +Date: 2023-01-27 20:14:51 +0800 + + Translations: Add Brazilian Portuguese translation of man pages. + + Thanks to Rafael Fontenelle. + + po4a/po4a.conf | 2 +- + po4a/pt_BR.po | 3677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 3678 insertions(+), 1 deletion(-) + +commit e9c47e79c9584ba1126f5fa0dbe6c96e67411aa6 +Author: Jia Tan +Date: 2023-01-24 20:48:50 +0800 + + liblzma: Fix documentation in filter.h for lzma_str_to_filters() + + The previous documentation for lzma_str_to_filters() was technically + correct, but misleading. lzma_str_to_filters() returns NULL on success, + which is in practice always defined to 0. This is the same value as + LZMA_OK, but lzma_str_to_filters() does not return lzma_ret so we should + be more clear. + + src/liblzma/api/lzma/filter.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 99575947a58a60416c570eb78038d18a1ea4cef4 +Author: Jia Tan +Date: 2023-01-07 21:55:06 +0800 + + xz: Refactor duplicated check for custom suffix when using --format=raw + + src/xz/args.c | 8 ++++++++ + src/xz/suffix.c | 26 ++++++++------------------ + src/xz/suffix.h | 8 ++++++++ + 3 files changed, 24 insertions(+), 18 deletions(-) + +commit 76dec92fcca4a9ccd2063ed6d5d9e3474665baad +Author: Jia Tan +Date: 2023-01-20 21:53:14 +0800 + + liblzma: Set documentation on all reserved fields to private. + + This prevents the reserved fields from being part of the generated + Doxygen documentation. + + src/liblzma/api/lzma/base.h | 17 +++++++++++++++ + src/liblzma/api/lzma/block.h | 43 +++++++++++++++++++++++++++++++++++++ + src/liblzma/api/lzma/container.h | 24 +++++++++++++++++++++ + src/liblzma/api/lzma/delta.h | 12 +++++++++++ + src/liblzma/api/lzma/index.h | 27 +++++++++++++++++++++++ + src/liblzma/api/lzma/lzma12.h | 22 +++++++++++++++++++ + src/liblzma/api/lzma/stream_flags.h | 28 ++++++++++++++++++++++++ + 7 files changed, 173 insertions(+) + +commit bd213d06ebf92cf42eeb97e7c578bddc857f8ea8 +Author: Jia Tan +Date: 2022-12-21 23:59:43 +0800 + + liblzma: Highlight liblzma API headers should not be included directly. + + This improves the generated Doxygen HTML files to better highlight + how to properly use the liblzma API header files. + + src/liblzma/api/lzma/base.h | 5 +++-- + src/liblzma/api/lzma/bcj.h | 5 +++-- + src/liblzma/api/lzma/block.h | 5 +++-- + src/liblzma/api/lzma/check.h | 5 +++-- + src/liblzma/api/lzma/container.h | 5 +++-- + src/liblzma/api/lzma/delta.h | 5 +++-- + src/liblzma/api/lzma/filter.h | 5 +++-- + src/liblzma/api/lzma/hardware.h | 5 +++-- + src/liblzma/api/lzma/index.h | 5 +++-- + src/liblzma/api/lzma/index_hash.h | 5 +++-- + src/liblzma/api/lzma/lzma12.h | 5 +++-- + src/liblzma/api/lzma/stream_flags.h | 5 +++-- + src/liblzma/api/lzma/version.h | 5 +++-- + src/liblzma/api/lzma/vli.h | 5 +++-- + 14 files changed, 42 insertions(+), 28 deletions(-) + +commit 257dbff0ba1a7bc45a74d203ece015c9f70c88cd +Author: Jia Tan +Date: 2023-01-19 20:35:09 +0800 + + tuklib_physmem: Silence warning from -Wcast-function-type on MinGW-w64. + + tuklib_physmem depends on GetProcAddress() for both MSVC and MinGW-w64 + to retrieve a function address. The proper way to do this is to cast the + return value to the type of function pointer retrieved. Unfortunately, + this causes a cast-function-type warning, so the best solution is to + simply ignore the warning. + + src/common/tuklib_physmem.c | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +commit 720ad4a44282a7ee59aa9920eaf495d85d245d97 +Author: Jia Tan +Date: 2023-01-16 21:35:45 +0800 + + xz: Add missing comment for coder_set_compression_settings() + + src/xz/coder.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 88dc19163421282369c0989e997c05f9a447edc6 +Author: Jia Tan +Date: 2023-01-16 20:55:10 +0800 + + xz: Do not set compression settings with raw format in list mode. + + Calling coder_set_compression_settings() in list mode with verbose mode + on caused the filter chain and memory requirements to print. This was + unnecessary since the command results in an error and not consistent + with other formats like lzma and alone. + + src/xz/args.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 039e0ab13efb144642f9d99eeeb9c668e76bb430 +Author: Jia Tan +Date: 2023-01-13 20:37:06 +0800 + + Translations: Update the Brazilian Portuguese translation. + + po/pt_BR.po | 603 ++++++++++++++++++++++++++++++++++-------------------------- + 1 file changed, 344 insertions(+), 259 deletions(-) + +commit 718f7a60e740b26b8353965edaaddc7d4deb4d85 +Author: Lasse Collin +Date: 2023-01-12 13:04:05 +0200 + + Build: Omit -Wmissing-noreturn from the default warnings. + + It's not that important. It can be annoying in builds that + disable many features since in those cases the tests programs + will correctly trigger this warning with Clang. + + configure.ac | 1 - + 1 file changed, 1 deletion(-) + +commit 3ccedb09724c998c39d708c945f6da5852c39e13 +Author: Lasse Collin +Date: 2023-01-12 06:05:58 +0200 + + xz: Use ssize_t for the to-be-ignored return value from write(fd, ptr, 1). + + It makes no difference here as the return value fits into an int + too and it then gets ignored but this looks better. + + src/xz/file_io.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 09fbd2f0527def89e839c8907de4fe7ef6bc5019 +Author: Lasse Collin +Date: 2023-01-12 06:01:12 +0200 + + xz: Silence warnings from -Wsign-conversion in a 32-bit build. + + src/common/tuklib_mbstr_fw.c | 2 +- + src/xz/list.c | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +commit 683d3f178ef1487b5418be49f331b0131a101b40 +Author: Lasse Collin +Date: 2023-01-12 05:38:48 +0200 + + liblzma: Silence another warning from -Wsign-conversion in a 32-bit build. + + It doesn't warn on a 64-bit system because truncating + a ptrdiff_t (signed long) to uint32_t is diagnosed under + -Wconversion by GCC and -Wshorten-64-to-32 by Clang. + + src/liblzma/lz/lz_encoder_mf.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +commit 2b8062ef94a38d0f9ad0d1b309e8748db52f5c15 +Author: Lasse Collin +Date: 2023-01-12 04:46:45 +0200 + + liblzma: Silence a warning from -Wsign-conversion in a 32-bit build. + + src/common/mythread.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit b16b9c0d22227012518595c2222facc73bd833a8 +Author: Lasse Collin +Date: 2023-01-12 04:17:24 +0200 + + Build: Make configure add more warning flags for GCC and Clang. + + -Wstrict-aliasing was removed from the list since it is enabled + by -Wall already. + + A normal build is clean with these on GNU/Linux x86-64 with + GCC 12.2.0 and Clang 14.0.6. + + configure.ac | 36 +++++++++++++++++++++++++++++++----- + 1 file changed, 31 insertions(+), 5 deletions(-) + +commit c47ecd6d3909d0d3ff48dfd6e2ee41e7c7130b94 +Author: Lasse Collin +Date: 2023-01-12 04:14:18 +0200 + + Tests: Fix warnings from clang --Wassign-enum. + + Explicitly casting the integer to lzma_check silences the warning. + Since such an invalid value is needed in multiple tests, a constant + INVALID_LZMA_CHECK_ID was added to tests.h. + + The use of 0x1000 for lzma_block.check wasn't optimal as if + the underlying type is a char then 0x1000 will be truncated to 0. + However, in these test cases the value is ignored, thus even with + such truncation the test would have passed. + + tests/test_block_header.c | 6 +++--- + tests/test_check.c | 2 +- + tests/test_stream_flags.c | 8 ++++---- + tests/tests.h | 9 +++++++++ + 4 files changed, 17 insertions(+), 8 deletions(-) + +commit 34e13ce015232968731de2a9ec3440a08b0084b1 +Author: Lasse Collin +Date: 2023-01-12 03:51:07 +0200 + + Tests: Silence warnings from -Wsign-conversion. + + Note that assigning an unsigned int to lzma_check doesn't warn + on GNU/Linux x86-64 since the enum type is unsigned on that + platform. The enum can be signed on some other platform though + so it's best to use enumeration type lzma_check in these situations. + + tests/test_check.c | 6 +++--- + tests/test_stream_flags.c | 10 +++++----- + 2 files changed, 8 insertions(+), 8 deletions(-) + +commit 6671d0fe46b77f0fafce860836b7a12dc3cda14a +Author: Lasse Collin +Date: 2023-01-12 03:19:59 +0200 + + liblzma: Silence warnings from clang -Wconditional-uninitialized. + + This is similar to 2ce4f36f179a81d0c6e182a409f363df759d1ad0. + The actual initialization of the variables is done inside + mythread_sync() macro. Clang doesn't seem to see that + the initialization code inside the macro is always executed. + + src/liblzma/common/stream_decoder_mt.c | 8 +++++--- + src/liblzma/common/stream_encoder_mt.c | 2 +- + 2 files changed, 6 insertions(+), 4 deletions(-) + +commit d3e833ca1d2abda54648494c33aca73a40a47efe +Author: Lasse Collin +Date: 2023-01-12 03:11:40 +0200 + + Fix warnings from clang -Wdocumentation. + + src/liblzma/check/check.h | 4 ---- + src/liblzma/lz/lz_encoder_mf.c | 4 ++-- + src/xz/options.c | 4 ++-- + 3 files changed, 4 insertions(+), 8 deletions(-) + +commit 977dd2e26bc50efec8d30fb90380394042d24558 +Author: Lasse Collin +Date: 2023-01-12 03:04:28 +0200 + + Tests: test_lzip_decoder: Remove trailing white-space. + + tests/test_lzip_decoder.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit c55157ed7437ab14f2afb7fecf331e321f2edf9a +Author: Lasse Collin +Date: 2023-01-12 03:03:55 +0200 + + Tests: test_lzip_decoder: Silence warnings from -Wsign-conversion. + + tests/test_lzip_decoder.c | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +commit 18b845e69752c975dfeda418ec00eda22605c2ee +Author: Lasse Collin +Date: 2023-01-11 18:52:54 +0200 + + Bump version and soname for 5.4.1. + + src/liblzma/Makefile.am | 2 +- + src/liblzma/api/lzma/version.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit 4080bbb844fb36701ffb978f0c41ea2c2c9f8960 +Author: Jia Tan +Date: 2023-01-11 23:58:16 +0800 + + Add NEWS for 5.4.1. + + NEWS | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 70 insertions(+) + +commit 674c89fdb8c457ebc3a0652e235d8b6cd7b7dee2 +Author: Lasse Collin +Date: 2023-01-10 11:56:11 +0200 + + sysdefs.h: Don't include strings.h anymore. + + On some platforms src/xz/suffix.c may need for + strcasecmp() but suffix.c includes the header when it needs it. + + Unless there is an old system that otherwise supports enough C99 + to build XZ Utils but doesn't have C89/C90-compatible , + there should be no need to include in sysdefs.h. + + src/common/sysdefs.h | 6 ------ + 1 file changed, 6 deletions(-) + +commit 2a6b938084fac9ddb39cd69c9beeed15c3b6f6f6 +Author: Lasse Collin +Date: 2023-01-10 11:23:41 +0200 + + xz: Include in suffix.c if needed for strcasecmp(). + + SUSv2 and POSIX.1‐2017 declare only a few functions in . + Of these, strcasecmp() is used on some platforms in suffix.c. + Nothing else in the project needs (at least if + building on a modern system). + + sysdefs.h currently includes if HAVE_STRINGS_H is + defined and suffix.c relied on this. + + Note that dos/config.h doesn't #define HAVE_STRINGS_H even though + DJGPP does have strings.h. It isn't needed with DJGPP as strcasecmp() + is also in in DJGPP. + + src/xz/suffix.c | 3 +++ + 1 file changed, 3 insertions(+) + +commit aea639e81beb548e3114c74b6d9a894d6e036189 +Author: Jia Tan +Date: 2023-01-11 22:46:48 +0800 + + xz: Fix warning -Wformat-nonliteral on clang in message.c. + + clang and gcc differ in how they handle -Wformat-nonliteral. gcc will + allow a non-literal format string as long as the function takes its + format arguments as a va_list. + + src/xz/message.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +commit e3b42bfcb0f67988beee7c7022fed0361282be45 +Author: Jia Tan +Date: 2023-01-11 20:58:31 +0800 + + Tests: Fix test_filter_flags copy/paste error. + + tests/test_filter_flags.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 21625b7e11d004788e40eb5eb88d9d89f65fe347 +Author: Jia Tan +Date: 2023-01-11 20:42:29 +0800 + + Tests: Fix type-limits warning in test_filter_flags. + + This only occurs in test_filter_flags when the BCJ filters are not + configured and built. In this case, ARRAY_SIZE() returns 0 and causes a + type-limits warning with the loop variable since an unsigned number will + always be >= 0. + + tests/test_filter_flags.c | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +commit c337983e928682d56ce3470b286a8d5b8646e0ad +Author: Lasse Collin +Date: 2023-01-10 22:14:03 +0200 + + liblzma: CLMUL CRC64: Work around a bug in MSVC, second attempt. + + This affects only 32-bit x86 builds. x86-64 is OK as is. + + I still cannot easily test this myself. The reporter has tested + this and it passes the tests included in the CMake build and + performance is good: raw CRC64 is 2-3 times faster than the + C version of the slice-by-four method. (Note that liblzma doesn't + include a MSVC-compatible version of the 32-bit x86 assembly code + for the slice-by-four method.) + + Thanks to Iouri Kharon for figuring out a fix, testing, and + benchmarking. + + src/liblzma/check/crc64_fast.c | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +commit b7fb438ea0e3ee02e3a164f3b72fae456cbe34d7 +Author: Jia Tan +Date: 2023-01-11 01:18:50 +0800 + + Tests: Fix unused function warning in test_block_header. + + One of the global arrays of filters was only used in a test that + required both encoders and decoders to be configured in the build. + + tests/test_block_header.c | 4 ++++ + 1 file changed, 4 insertions(+) + +commit 68e9ef036d18d7c3952bff0b391d5989b86934da +Author: Jia Tan +Date: 2023-01-11 01:08:03 +0800 + + Tests: Fix unused function warning in test_index_hash. + + test_index_hash does not use fill_index_hash() unless both encoders + and decoders are configured in the build. + + tests/test_index_hash.c | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +commit a387707cd8cdefbffb5b7429bda4b7fcc192954a +Author: Lasse Collin +Date: 2023-01-10 00:33:14 +0200 + + Windows: Update INSTALL-MSVC.txt to recommend CMake over project files. + + windows/INSTALL-MSVC.txt | 19 ++++++++++++------- + 1 file changed, 12 insertions(+), 7 deletions(-) + +commit 52902ad69518255a14b0144f0a2379e06fde5b6e +Author: Lasse Collin +Date: 2023-01-10 12:47:16 +0200 + + Revert "liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022)." + + This reverts commit 36edc65ab4cf10a131f239acbd423b4510ba52d5. + + It was reported that it wasn't a good enough fix and MSVC + still produced (different kind of) bad code when building + for 32-bit x86 if optimizations are enabled. + + Thanks to Iouri Kharon. + + src/liblzma/check/crc64_fast.c | 6 ------ + 1 file changed, 6 deletions(-) + +commit e81b9fc48ca70f9228308d3f1871cd81f9a5a496 +Author: Lasse Collin +Date: 2023-01-10 10:05:13 +0200 + + sysdefs.h: Fix a comment. + + src/common/sysdefs.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 6e89ab58b031aa046308a0b3504ff0a5be042571 +Author: Lasse Collin +Date: 2023-01-10 10:04:06 +0200 + + sysdefs.h: Don't include memory.h anymore even if it were available. + + It quite probably was never needed, that is, any system where memory.h + was required likely couldn't compile XZ Utils for other reasons anyway. + + XZ Utils 5.2.6 and later source packages were generated using + Autoconf 2.71 which no longer defines HAVE_MEMORY_H. So the code + being removed is no longer used anyway. + + src/common/sysdefs.h | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +commit 65c59ad429aa59f9df0326d9fc82931ba4a9d123 +Author: Lasse Collin +Date: 2023-01-10 08:50:26 +0200 + + CMake/Windows: Add a workaround for windres from GNU binutils. + + This is combined from the following commits in the master branch: + 443dfebced041adc88f10d824188eeef5b5821a9 + 6b117d3b1fe91eb26d533ab16a2e552f84148d47 + 5e34774c31d1b7509b5cb77a3be9973adec59ea0 + + Thanks to Iouri Kharon for the bug report, the original patch, + and testing. + + CMakeLists.txt | 32 +++++++++++++++++++++++++++++++- + 1 file changed, 31 insertions(+), 1 deletion(-) + +commit 43521e77acc907863fa4f94aae276366172cb9ee +Author: Lasse Collin +Date: 2023-01-06 22:53:38 +0200 + + Tests: test_filter_flags: Clean up minor issues. + + Here are the list of the most significant issues addressed: + - Avoid using internal common.h header. It's not good to copy the + constants like this but common.h cannot be included for use outside + of liblzma. This is the quickest thing to do that could be fixed later. + + - Omit the INIT_FILTER macro. Initialization should be done with just + regular designated initializers. + + - Use start_offset = 257 for BCJ tests. It demonstrates that Filter + Flags encoder and decoder don't validate the options thoroughly. + 257 is valid only for the x86 filter. This is a bit silly but + not a significant problem in practice because the encoder and + decoder initialization functions will catch bad alignment still. + Perhaps this should be fixed but it's not urgent and doesn't need + to be in 5.4.x. + + - Various tweaks to comments such as filter id -> Filter ID + + tests/test_filter_flags.c | 153 +++++++++++++++++++++++----------------------- + 1 file changed, 78 insertions(+), 75 deletions(-) + +commit 6b44cead95d767414272dc3a67898a36bfdf95b3 +Author: Jia Tan +Date: 2022-12-29 23:33:33 +0800 + + Tests: Refactors existing filter flags tests. + + Converts the existing filter flags tests into tuktests. + + tests/test_filter_flags.c | 655 ++++++++++++++++++++++++++++++++-------------- + 1 file changed, 457 insertions(+), 198 deletions(-) + +commit 1bbefa9659b202ba31bd244a9d0e4f0d37ff3ed7 +Author: Lasse Collin +Date: 2023-01-08 00:32:29 +0200 + + Tests: tuktest.h: Support tuktest_malloc(0). + + It's not needed in XZ Utils at least for now. It's good to support + it still because if such use is needed later, it wouldn't be + caught on GNU/Linux since malloc(0) from glibc returns non-NULL. + + tests/tuktest.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit ce3a3fbc7c2c399aeed644d54f3bd56ac914dfee +Author: Lasse Collin +Date: 2023-01-07 21:57:11 +0200 + + CMake: Update cmake_minimum_required from 3.13...3.16 to 3.13...3.25. + + The changes listed on cmake-policies(7) for versions 3.17 to 3.25 + shouldn't affect this project. + + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 99fcd57f2ea35eaa94e09f674d5364329c880fa2 +Author: Lasse Collin +Date: 2023-01-08 00:24:23 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit c0c13d9d82eb8a4302c8bbb8b4c5178d285fe9ab +Author: Lasse Collin +Date: 2023-01-07 19:50:35 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 3d45987451b1c3bb42697b29341824c0e5484cba +Author: Lasse Collin +Date: 2023-01-09 11:27:24 +0200 + + CMake: Fix a copypaste error in xzdec Windows resource file handling. + + It was my mistake. Thanks to Iouri Kharon for the bug report. + + CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 706bce5018d7cf83094e13454a0731169ec119b5 +Author: Lasse Collin +Date: 2023-01-07 19:50:03 +0200 + + CMake/Windows: Add resource files to xz.exe and xzdec.exe. + + The command line tools cannot be built with MSVC for now but + they can be built with MinGW-w64. + + Thanks to Iouri Kharon for the bug report and the original patch. + + CMakeLists.txt | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +commit e96dee55df04113c33b387ccdb6cb70935422d91 +Author: Lasse Collin +Date: 2023-01-09 12:22:05 +0200 + + liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022). + + I haven't tested with MSVC myself and there doesn't seem to be + information about the problem online, so I'm relying on the bug report. + + Thanks to Iouri Kharon for the bug report and the patch. + + src/liblzma/check/crc64_fast.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +commit 52bc1ee34dda9bb6fb40175e5952863066681b77 +Author: Lasse Collin +Date: 2023-01-07 19:31:15 +0200 + + Build: Require that _mm_set_epi64x() is usable to enable CLMUL support. + + VS2013 doesn't have _mm_set_epi64x() so this way CLMUL gets + disabled with VS2013. + + Thanks to Iouri Kharon for the bug report. + + CMakeLists.txt | 3 ++- + configure.ac | 8 ++++++-- + 2 files changed, 8 insertions(+), 3 deletions(-) + +commit bad44cfe19e8be8ae76755369be2a34abcd2b4fa +Author: Jia Tan +Date: 2022-12-29 00:25:18 +0800 + + Tests: Creates test_index_hash.c + + Tests all API functions exported from index_hash.h. Does not have a + dedicated test for lzma_index_hash_end. + + [Minor edits were made by Lasse Collin.] + + .gitignore | 1 + + CMakeLists.txt | 2 + + tests/Makefile.am | 3 + + tests/test_index_hash.c | 388 ++++++++++++++++++++++++++++++++++++++++++++++++ + 4 files changed, 394 insertions(+) + +commit 692ccdf5516dfe55fb6e9c5cdfb31f4c02c1ecd1 +Author: Jia Tan +Date: 2023-01-05 20:57:25 +0800 + + liblzma: Remove common.h include from common/index.h. + + common/index.h is needed by liblzma internally and tests. common.h will + include and define many things that are not needed by the tests. + + Also, this prevents include order problems because both common.h and + lzma.h define LZMA_API. On most platforms it results only in a warning + but on Windows it would break the build as the definition in common.h + must be used only for building liblzma itself. + + src/liblzma/common/index.c | 1 + + src/liblzma/common/index.h | 9 +++++++-- + src/liblzma/common/index_decoder.h | 1 + + src/liblzma/common/stream_buffer_encoder.c | 1 + + 4 files changed, 10 insertions(+), 2 deletions(-) + +commit 2ac7bafc8f07c1edefe96a4a7a040ddfff0eb5bb +Author: Jia Tan +Date: 2022-08-17 20:20:16 +0800 + + liblzma: Add NULL check to lzma_index_hash_append. + + This is for consistency with lzma_index_append. + + src/liblzma/common/index_hash.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit db714d30e0c74d1dd4af1a23ed62b44e0e8e4efc +Author: Jia Tan +Date: 2022-08-17 17:59:51 +0800 + + liblzma: Replaced hardcoded 0x0 index indicator byte with macro + + src/liblzma/common/index.h | 3 +++ + src/liblzma/common/index_decoder.c | 2 +- + src/liblzma/common/index_encoder.c | 2 +- + src/liblzma/common/index_hash.c | 2 +- + src/liblzma/common/stream_decoder.c | 3 ++- + src/liblzma/common/stream_decoder_mt.c | 2 +- + 6 files changed, 9 insertions(+), 5 deletions(-) + +commit 39d2585dcd3e827cfc3c46025ab6708c4aeb36c6 +Author: Jia Tan +Date: 2023-01-06 20:43:31 +0800 + + Style: Change #if !defined() to #ifndef in mythread.h. + + src/common/mythread.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 3f0130aa288e4ed57ace609517db9700a41223af +Author: Jia Tan +Date: 2023-01-06 20:35:55 +0800 + + Build: Add missing stream_decoder_mt.c to .vcxproj files. + + The line in the .vcxproj files for building with was missing in 5.4.0. + Thank to Hajin Jang for reporting the issue. + + windows/vs2013/liblzma.vcxproj | 1 + + windows/vs2013/liblzma_dll.vcxproj | 1 + + windows/vs2017/liblzma.vcxproj | 1 + + windows/vs2017/liblzma_dll.vcxproj | 1 + + windows/vs2019/liblzma.vcxproj | 1 + + windows/vs2019/liblzma_dll.vcxproj | 1 + + 6 files changed, 6 insertions(+) + +commit f204d1050a515d17851eed9049862ce5a9c729c1 +Author: Lasse Collin +Date: 2023-01-04 22:40:54 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 34a9c2d650d6c30bd88e1b21910dd863209aa884 +Author: Lasse Collin +Date: 2023-01-04 18:40:28 +0200 + + Tests: Adjust style in test_compress.sh. + + tests/test_compress.sh | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) + +commit 761c208d58e0c3daa0f46e68b406adfc318d2a46 +Author: Jia Tan +Date: 2023-01-04 23:58:58 +0800 + + Tests: Replace non portable shell parameter expansion + + The shell parameter expansion using # and ## is not supported in + Solaris 10 Bourne shell (/bin/sh). Even though this is POSIX, it is not fully + portable, so we should avoid it. + + tests/create_compress_files.c | 2 +- + tests/test_compress.sh | 20 +++++++++++++------- + tests/test_compress_prepared_bcj_sparc | 2 +- + tests/test_compress_prepared_bcj_x86 | 2 +- + 4 files changed, 16 insertions(+), 10 deletions(-) + +commit 8a7cbc074547e55e57f4f3696f69bedeb05e14c4 +Author: Jia Tan +Date: 2023-01-03 21:02:38 +0800 + + Translations: Add Korean translation of man pages. + + Thanks to Seong-ho Cho + + po4a/ko.po | 5552 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + po4a/po4a.conf | 2 +- + 2 files changed, 5553 insertions(+), 1 deletion(-) + +commit ca2af49bb8be5995eb0e6a3abf457622626d49a7 +Author: Jia Tan +Date: 2023-01-03 20:47:27 +0800 + + Translations: Update the Esperanto translation. + + po/eo.po | 620 ++++++++++++++++++++++++++++++++++----------------------------- + 1 file changed, 332 insertions(+), 288 deletions(-) + +commit bfba3394aed03311fe9a746d3141b2e16d8b9325 +Author: Lasse Collin +Date: 2023-01-02 17:05:07 +0200 + + Build: Fix config.h comments. + + configure.ac | 2 +- + m4/tuklib_progname.m4 | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit 507648ad114c2ae0cd6d181063e1ac07e8106718 +Author: Jia Tan +Date: 2023-01-02 22:33:48 +0800 + + Build: Only define HAVE_PROGRAM_INVOCATION_NAME if it is set to 1. + + HAVE_DECL_PROGRAM_INVOCATION_NAME is renamed to + HAVE_PROGRAM_INVOCATION_NAME. Previously, + HAVE_DECL_PROGRAM_INVOCATION_NAME was always set when + building with autotools. CMake would only set this when it was 1, and the + dos/config.h did not define it. The new macro definition is consistent + across build systems. + + cmake/tuklib_progname.cmake | 5 ++--- + m4/tuklib_progname.m4 | 5 ++++- + src/common/tuklib_progname.c | 2 +- + src/common/tuklib_progname.h | 2 +- + 4 files changed, 8 insertions(+), 6 deletions(-) + +commit ab5229d32adfec1f3fbc95228d9dd6f560732ab5 +Author: Lasse Collin +Date: 2022-12-30 20:10:08 +0200 + + Tests: test_check: Test corner cases of CLMUL CRC64. + + tests/test_check.c | 27 +++++++++++++++++++++++++++ + 1 file changed, 27 insertions(+) + +commit 8791826f31733fda0a13b411c2ed930faaeb25aa +Author: Lasse Collin +Date: 2022-12-30 19:36:49 +0200 + + Tests: Clarify a comment in test_lzip_decoder.c. + + tests/test_lzip_decoder.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +commit c410d812ea12bfc74f6b727c1a799478c79f19ca +Author: Jia Tan +Date: 2022-12-29 01:55:19 +0800 + + xz: Includes and conditionally in mytime.c. + + Previously, mytime.c depended on mythread.h for to be included. + + src/xz/mytime.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +commit 501c6013d4a59fae5d4368e9657c4885493db809 +Author: Jia Tan +Date: 2022-12-29 01:15:27 +0800 + + liblzma: Includes sys/time.h conditionally in mythread + + Previously, was always included, even if mythread only used + clock_gettime. is still needed even if clock_gettime is not used + though because struct timespec is needed for mythread_condtime. + + src/common/mythread.h | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +commit 9e3cb514b5b95bd235dcdff3db4436f57444ee4f +Author: Jia Tan +Date: 2022-12-29 01:10:53 +0800 + + Build: No longer require HAVE_DECL_CLOCK_MONOTONIC to always be set. + + Previously, if threading was enabled HAVE_DECL_CLOCK_MONOTONIC would always + be set to 0 or 1. However, this macro was needed in xz so if xz was not + built with threading and HAVE_DECL_CLOCK_MONOTONIC was not defined but + HAVE_CLOCK_GETTIME was, it caused a warning during build. Now, + HAVE_DECL_CLOCK_MONOTONIC has been renamed to HAVE_CLOCK_MONOTONIC and + will only be set if it is 1. + + CMakeLists.txt | 8 +++----- + configure.ac | 5 ++++- + src/common/mythread.h | 4 ++-- + src/xz/mytime.c | 5 ++--- + 4 files changed, 11 insertions(+), 11 deletions(-) + +commit 6fc3e5467911572fa9af4021ea46396261aae796 +Author: Jia Tan +Date: 2022-12-28 01:14:07 +0800 + + Translations: Add Ukrainian translations of man pages. + + Thanks to Yuri Chornoivan + + po4a/po4a.conf | 2 +- + po4a/uk.po | 3676 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 3677 insertions(+), 1 deletion(-) + +commit e84f2ab7f8bc38cd8f8befa0bb398656c3c11f8e +Author: Jia Tan +Date: 2022-12-22 23:14:53 +0800 + + liblzma: Update documentation for lzma_filter_encoder. + + src/liblzma/common/filter_encoder.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +commit b14b8dbba9a3b232787ae218b46430b9246383dd +Author: Jia Tan +Date: 2022-12-21 21:12:03 +0800 + + Tests: Adds lzip decoder tests + + .gitignore | 1 + + tests/Makefile.am | 2 + + tests/test_lzip_decoder.c | 471 ++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 474 insertions(+) + +commit 09a114805e1d4f9a02a06cee7dbf2f5014d1f710 +Author: Jia Cheong Tan +Date: 2022-12-20 22:05:21 +0800 + + Doxygen: Update .gitignore for generating docs for in source build. + + In source builds are not recommended, but we should still ignore + the generated artifacts. + + .gitignore | 2 ++ + 1 file changed, 2 insertions(+) + +commit d3e6fe44196bf9478ad193522e2b48febf2eca6b +Author: Jia Tan +Date: 2022-12-20 20:46:44 +0800 + + liblzma: Fix lzma_microlzma_encoder() return value. + + Using return_if_error on lzma_lzma_lclppb_encode was improper because + return_if_error is expecting an lzma_ret value, but + lzma_lzma_lclppb_encode returns a boolean. This could result in + lzma_microlzma_encoder, which would be misleading for applications. + + src/liblzma/common/microlzma_encoder.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit b55a27b46f52524a4a8d9cdef03e6689cefc1375 +Author: Lasse Collin +Date: 2022-12-16 18:30:02 +0200 + + liblzma: Update authors list in arm64.c. + + src/liblzma/simple/arm64.c | 1 + + 1 file changed, 1 insertion(+) + +commit 2fd28d2b7cec3468324a6f15eff7e73c285b1d7d +Author: Jia Tan +Date: 2022-12-16 20:58:55 +0800 + + CMake: Update .gitignore for CMake artifacts from in source build. + + In source builds are not recommended, but we can make it easier + by ignoring the generated artifacts from CMake. + + .gitignore | 23 +++++++++++++++++++++++ + 1 file changed, 23 insertions(+) + +commit b69da6d4bb6bb11fc0cf066920791990d2b22a06 +Author: Lasse Collin +Date: 2022-12-13 20:37:17 +0200 + + Bump version to 5.4.0 and soname to 5.4.0. + + src/liblzma/Makefile.am | 2 +- + src/liblzma/api/lzma/version.h | 6 +++--- + src/liblzma/liblzma_generic.map | 2 +- + src/liblzma/liblzma_linux.map | 2 +- + 4 files changed, 6 insertions(+), 6 deletions(-) + +commit 20869eb3fb280ff4f271ef527b12b6bf68b05e19 +Author: Lasse Collin +Date: 2022-12-13 20:29:39 +0200 + + Update INSTALL: CMake on Windows isn't experimental anymore. + + Using CMake to build liblzma should work on a few other OSes + but building the command line tools is still subtly broken. + + It is known that shared library versioning may differ between + CMake and Libtool builds on some OSes, most notably Darwin. + + INSTALL | 10 ++++------ + 1 file changed, 4 insertions(+), 6 deletions(-) + +commit cbbd84451944e3e8c63acfaa3c923f6d8aff7852 +Author: Lasse Collin +Date: 2022-12-13 19:47:53 +0200 + + Add NEWS for 5.4.0. + + NEWS | 202 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 202 insertions(+) + +commit c3e94d37e8d10a3e96019864b6f5d7b578db2c14 +Author: Lasse Collin +Date: 2022-12-13 17:41:20 +0200 + + Fix a typo in NEWS. + + NEWS | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 0d2a2e0a545c3da2b3e9500f1e531eb903087245 +Author: Lasse Collin +Date: 2022-12-13 17:41:03 +0200 + + Add NEWS for 5.2.10. + + NEWS | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +commit 177ece1c8eb007188fb1b04eff09ca2193fbdea6 +Author: Lasse Collin +Date: 2022-12-13 12:30:45 +0200 + + Tests: Fix a typo in tests/files/README. + + tests/files/README | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 60f45bdbaa6b07558b3f4baac285739b0c6342f5 +Author: Lasse Collin +Date: 2022-12-13 12:30:09 +0200 + + Tests: Add two ARM64 test files. + + tests/files/README | 7 +++++++ + tests/files/good-1-arm64-lzma2-1.xz | Bin 0 -> 512 bytes + tests/files/good-1-arm64-lzma2-2.xz | Bin 0 -> 488 bytes + tests/test_files.sh | 5 +++++ + 4 files changed, 12 insertions(+) + +commit f5e419550619c548c7c35d7e367cf00580a56521 +Author: Lasse Collin +Date: 2022-12-12 22:44:21 +0200 + + Translations: Update the Catalan translation. + + po/ca.po | 657 +++++++++++++++++++++++++++++---------------------------------- + 1 file changed, 306 insertions(+), 351 deletions(-) + +commit 0fb9d355da3789b1757040af475b4e6bbc8b8af8 +Author: Lasse Collin +Date: 2022-12-12 19:18:12 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit e5b6c161c61a37c54dcb76a99bbb83ac4abe02dc +Author: Lasse Collin +Date: 2022-12-12 19:07:58 +0200 + + Update AUTHORS. + + AUTHORS | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +commit f2d98e691099d82054d5f3071ef6f5e809932e44 +Author: Lasse Collin +Date: 2022-12-12 15:31:14 +0200 + + Docs: Omit multi-threaded decompress from TODO. + + The TODO file outdated still. + + TODO | 2 -- + 1 file changed, 2 deletions(-) + +commit b42908c42a4cc091db45a7e5ba0e0ecceaa3f6da +Author: Lasse Collin +Date: 2022-12-11 21:16:09 +0200 + + Docs: Update xz-file-format.txt to 1.1.0 for ARM64 filter. + + doc/xz-file-format.txt | 29 ++++++++++++++++++++++------- + 1 file changed, 22 insertions(+), 7 deletions(-) + +commit 854f2f5946b353cb0963fd6dfd54d363adc89b9f +Author: Lasse Collin +Date: 2022-12-11 21:13:57 +0200 + + xz: Rename --experimental-arm64 to --arm64. + + src/xz/args.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 31dbd1e5fb65831915a7bbb531c3f19aea8d57a5 +Author: Lasse Collin +Date: 2022-12-11 21:13:06 +0200 + + liblzma: Change LZMA_FILTER_ARM64 to the official Filter ID 0x0A. + + src/liblzma/api/lzma/bcj.h | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +commit 01b3549e523edac899ec4925b282ceddd20da116 +Author: Lasse Collin +Date: 2022-12-08 19:24:22 +0200 + + xz: Make args_info.files_name a const pointer. + + src/xz/args.c | 2 +- + src/xz/args.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit bc665b84ea6bf7946394a08122177efe41b26a5f +Author: Lasse Collin +Date: 2022-12-08 19:18:16 +0200 + + xz: Don't modify argv[]. + + The code that parses --memlimit options and --block-list modified + the argv[] when parsing the option string from optarg. This was + visible in "ps auxf" and such and could be confusing. I didn't + understand it back in the day when I wrote that code. Now a copy + is allocated when modifiable strings are needed. + + src/xz/args.c | 23 +++++++++++++++++++---- + 1 file changed, 19 insertions(+), 4 deletions(-) + +commit a13064e1c290de7933db72b6dffbd65cfce59c9f +Author: Lasse Collin +Date: 2022-12-08 18:18:57 +0200 + + Translations: Update the German man page translations. + + po4a/de.po | 4570 ++++++++++++++++++------------------------------------------ + 1 file changed, 1374 insertions(+), 3196 deletions(-) + +commit 8bdbe42a8d0d75dff70206b923fc4bce5c69a40a +Author: Jia Tan +Date: 2022-12-06 23:05:56 +0800 + + Translations: Update the German translation. + + po/de.po | 586 ++++++++++++++++++++++++++++++++++----------------------------- + 1 file changed, 315 insertions(+), 271 deletions(-) + +commit 5c304b57c24ef40ff57f864301065f0244c05bde +Author: Jia Tan +Date: 2022-12-06 23:04:25 +0800 + + Translations: Update the Turkish translation. + + po/tr.po | 221 +++++++++++++++++++++++++++++++-------------------------------- + 1 file changed, 108 insertions(+), 113 deletions(-) + +commit 6d86781fdb937970486500447ebb49b98244235b +Author: Jia Tan +Date: 2022-12-06 23:02:11 +0800 + + Translations: Update the Croatian translation. + + po/hr.po | 228 +++++++++++++++++++++++++++++++-------------------------------- + 1 file changed, 113 insertions(+), 115 deletions(-) + +commit 7a5b4b8075eb36026b1796f04ffed5830c42396a +Author: Jia Tan +Date: 2022-12-06 22:56:30 +0800 + + Translations: Add Romanian translation of man pages. + + Thanks to Remus-Gabriel Chelu. + + po4a/po4a.conf | 2 +- + po4a/ro.po | 3692 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 3693 insertions(+), 1 deletion(-) + +commit c6977e7400088177556e8771bcb839eb7d90caa3 +Author: Jia Tan +Date: 2022-12-06 22:52:13 +0800 + + Translations: Update the Romanian translation. + + po/ro.po | 294 +++++++++++++++++++++++++++++++-------------------------------- + 1 file changed, 147 insertions(+), 147 deletions(-) + +commit ac2a747e939c2cbccff7a49c399769af5e02d2ab +Author: Lasse Collin +Date: 2022-12-08 17:30:09 +0200 + + liblzma: Check for unexpected NULL pointers in block_header_decode(). + + The API docs gave an impression that such checks are done + but they actually weren't done. In practice it made little + difference since the calling code has a bug if these are NULL. + + Thanks to Jia Tan for the original patch that checked for + block->filters == NULL. + + src/liblzma/common/block_header_decoder.c | 4 ++++ + 1 file changed, 4 insertions(+) + +commit 24790f49ae66938c1c7574315e1c0aba1ed5ed25 +Author: Lasse Collin +Date: 2022-12-01 20:59:32 +0200 + + Bump version number for 5.3.5beta. + + This also sorts the symbol names alphabetically in liblzma_*.map. + + src/liblzma/api/lzma/version.h | 4 ++-- + src/liblzma/liblzma_generic.map | 10 +++++----- + src/liblzma/liblzma_linux.map | 10 +++++----- + 3 files changed, 12 insertions(+), 12 deletions(-) + +commit 7e53c5bcb3c2c17f47c096c06ff6b1481e6ecafa +Author: Lasse Collin +Date: 2022-12-01 20:57:26 +0200 + + Add NEWS for 5.3.5beta. + + NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 43 insertions(+) + +commit 5865f2aaac326fcbd9f8a7d62defa230e4cb644e +Author: Lasse Collin +Date: 2022-12-01 20:57:09 +0200 + + Update THANKS. + + THANKS | 3 +++ + 1 file changed, 3 insertions(+) + +commit 62b270988ec67314d69976df484d2974c6eacfda +Author: Lasse Collin +Date: 2022-12-01 20:04:17 +0200 + + liblzma: Use __has_attribute(__symver__) to fix Clang detection. + + If someone sets up Clang to define __GNUC__ to 10 or greater + then symvers broke. __has_attribute is supported by such GCC + and Clang versions that don't support __symver__ so this should + be much better and simpler way to detect if __symver__ is + actually supported. + + Thanks to Tomasz Gajc for the bug report. + + src/liblzma/common/common.h | 15 ++++++++++++++- + 1 file changed, 14 insertions(+), 1 deletion(-) + +commit f9ca7d45162664ddd9fb70e19335c2426e5d75bb +Author: Lasse Collin +Date: 2022-12-01 18:51:52 +0200 + + liblzma: Omit zero-skipping from ARM64 filter. + + It has some complicated downsides and its usefulness is more limited + than I originally thought. So this change is bad for certain very + specific situations but a generic solution that works for other + filters (and is otherwise better too) is planned anyway. And this + way 7-Zip can use the same compatible filter for the .7z format. + + This is still marked as experimental with a new temporary Filter ID. + + src/liblzma/api/lzma/bcj.h | 2 +- + src/liblzma/simple/arm64.c | 81 +++++++++++++--------------------------------- + 2 files changed, 24 insertions(+), 59 deletions(-) + +commit 5baec3f0a9c85e6abf45c0f652f699b074129a8b +Author: Lasse Collin +Date: 2022-12-01 18:13:27 +0200 + + xz: Omit the special notes about ARM64 filter on the man page. + + src/xz/xz.1 | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +commit 0c3627b51862eb0dcdd4fc283d046250571991c6 +Author: Lasse Collin +Date: 2022-12-01 18:12:03 +0200 + + liblzma: Don't be over-specific in lzma_str_to_filters API doc. + + src/liblzma/api/lzma/filter.h | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +commit 94adf057f27b1970f493dc99cd166407d7255639 +Author: Lasse Collin +Date: 2022-12-01 17:54:23 +0200 + + liblzma: Silence unused variable warning when BCJ filters are disabled. + + Thanks to Jia Tan for the original patch. + + src/liblzma/common/string_conversion.c | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +commit c68af4441744e5ffc41a472e1be9c9d53a1d9780 +Author: Lasse Collin +Date: 2022-12-01 17:38:03 +0200 + + Translations: Update the Chinese (simplified) translation. + + po/zh_CN.po | 608 ++++++++++++++++++++++++++++++++++-------------------------- + 1 file changed, 348 insertions(+), 260 deletions(-) + +commit 3be6942e5c27d29995d41da52fbe274e4ce4a537 +Author: Lasse Collin +Date: 2022-11-30 18:55:03 +0200 + + Add NEWS for 5.2.9. + + NEWS | 34 ++++++++++++++++++++++++++++++++++ + 1 file changed, 34 insertions(+) + +commit 7c16e312cb2f40b81154c0e5be13a3c6b8da485d +Author: Jia Tan +Date: 2022-11-30 23:33:08 +0800 + + xz: Remove message_filters_to_str function prototype from message.h. + + This was forgotten from 7484744af6cbabe81e92af7d9e061dfd597fff7b. + + src/xz/message.h | 16 ---------------- + 1 file changed, 16 deletions(-) + +commit 764955e2d4f2a5e8d6d6fec63af694f799e050e7 +Author: Lasse Collin +Date: 2022-11-30 18:08:34 +0200 + + Change the bug report address. + + It forwards to me and Jia Tan. + + Also update the IRC reference in README as #tukaani was moved + to Libera Chat long ago. + + CMakeLists.txt | 2 +- + README | 11 +++++------ + configure.ac | 2 +- + dos/config.h | 2 +- + windows/README-Windows.txt | 2 +- + 5 files changed, 9 insertions(+), 10 deletions(-) + +commit c21983c76031e01da01ad3c6cc716fe4b8a75070 +Author: Lasse Collin +Date: 2022-11-30 17:50:17 +0200 + + Build: Add string_conversion.c to CMake, DOS, and VS files. + + CMakeLists.txt | 1 + + dos/Makefile | 1 + + windows/vs2013/liblzma.vcxproj | 1 + + windows/vs2013/liblzma_dll.vcxproj | 1 + + windows/vs2017/liblzma.vcxproj | 1 + + windows/vs2017/liblzma_dll.vcxproj | 1 + + windows/vs2019/liblzma.vcxproj | 1 + + windows/vs2019/liblzma_dll.vcxproj | 1 + + 8 files changed, 8 insertions(+) + +commit 30be0c35d24eb5175459d69dbf7d92e2b087ef82 +Author: Lasse Collin +Date: 2022-11-30 17:38:32 +0200 + + Update to HTTPS URLs in AUTHORS. + + AUTHORS | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 0a72b9ca2fe20082da9b7128fe0d908af947a851 +Author: Jia Tan +Date: 2022-11-30 00:52:06 +0800 + + liblzma: Improve documentation for string to filter functions. + + src/liblzma/api/lzma/filter.h | 17 +++++++++-------- + 1 file changed, 9 insertions(+), 8 deletions(-) + +commit a6e21fcede3b196160a52dd294d965c508a4bb33 +Author: Lasse Collin +Date: 2022-11-29 22:27:42 +0200 + + liblzma: Two fixes to lzma_str_list_filters() API docs. + + Thanks to Jia Tan. + + src/liblzma/api/lzma/filter.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 7484744af6cbabe81e92af7d9e061dfd597fff7b +Author: Lasse Collin +Date: 2022-11-28 21:57:47 +0200 + + xz: Use lzma_str_from_filters(). + + Two uses: Displaying encoder filter chain when compressing with -vv, + and displaying the decoder filter chain in --list -vv. + + src/xz/list.c | 28 ++++++--- + src/xz/message.c | 175 +++---------------------------------------------------- + 2 files changed, 28 insertions(+), 175 deletions(-) + +commit cedeeca2ea6ada5b0411b2ae10d7a859e837f203 +Author: Lasse Collin +Date: 2022-11-28 21:37:48 +0200 + + liblzma: Add lzma_str_to_filters, _from_filters, and _list_filters. + + lzma_str_to_filters() uses static error messages which makes + them not very precise. It tells the position in the string + where an error occurred though which helps quite a bit if + applications take advantage of it. Dynamic error messages can + be added later with a new flag if it seems important enough. + + src/liblzma/api/lzma/filter.h | 258 +++++++ + src/liblzma/common/Makefile.inc | 1 + + src/liblzma/common/string_conversion.c | 1302 ++++++++++++++++++++++++++++++++ + src/liblzma/liblzma_generic.map | 3 + + src/liblzma/liblzma_linux.map | 3 + + 5 files changed, 1567 insertions(+) + +commit 072ebf7b1335421193ffa9d4a70d5533786b8995 +Author: Lasse Collin +Date: 2022-11-28 21:02:19 +0200 + + liblzma: Make lzma_validate_chain() available outside filter_common.c. + + src/liblzma/common/filter_common.c | 8 ++++---- + src/liblzma/common/filter_common.h | 3 +++ + 2 files changed, 7 insertions(+), 4 deletions(-) + +commit 5f22bd2d37e3bd01a5d701b51750eb51f09c11bf +Author: Lasse Collin +Date: 2022-11-28 10:51:03 +0200 + + liblzma: Remove lzma_lz_decoder_uncompressed() as it's now unused. + + src/liblzma/lz/lz_decoder.c | 14 -------------- + src/liblzma/lz/lz_decoder.h | 3 --- + 2 files changed, 17 deletions(-) + +commit cee83206465b95729ab649aa2f57fdbde8dcaf89 +Author: Lasse Collin +Date: 2022-11-28 10:48:53 +0200 + + liblzma: Use LZMA1EXT feature in lzma_microlzma_decoder(). + + Here too this avoids the slightly ugly method to set + the uncompressed size. + + Also moved the setting of dict_size to the struct initializer. + + src/liblzma/common/microlzma_decoder.c | 15 ++++++++------- + 1 file changed, 8 insertions(+), 7 deletions(-) + +commit e310e8b6a490dfb468f4ed68feff246d776b323c +Author: Lasse Collin +Date: 2022-11-28 10:28:20 +0200 + + liblzma: Use LZMA1EXT feature in lzma_alone_decoder(). + + This avoids the need to use the slightly ugly method to + set the uncompressed size. + + src/liblzma/common/alone_decoder.c | 18 +++++++++++++----- + 1 file changed, 13 insertions(+), 5 deletions(-) + +commit 33b8a24b6646a9dbfd8358405aec466b13078559 +Author: Lasse Collin +Date: 2022-11-27 23:16:21 +0200 + + liblzma: Add LZMA_FILTER_LZMA1EXT to support LZMA1 without end marker. + + Some file formats need support for LZMA1 streams that don't use + the end of payload marker (EOPM) alias end of stream (EOS) marker. + So far liblzma API has supported decompressing such streams via + lzma_alone_decoder() when .lzma header specifies a known + uncompressed size. Encoding support hasn't been available in the API. + + Instead of adding a new LZMA1-only API for this purpose, this commit + adds a new filter ID for use with raw encoder and decoder. The main + benefit of this approach is that then also filter chains are possible, + for example, if someone wants to implement support for .7z files that + use the x86 BCJ filter with LZMA1 (not BCJ2 as that isn't supported + in liblzma). + + src/liblzma/api/lzma/lzma12.h | 123 ++++++++++++++++++++++++++++++-- + src/liblzma/common/filter_common.c | 7 ++ + src/liblzma/common/filter_decoder.c | 6 ++ + src/liblzma/common/filter_encoder.c | 9 +++ + src/liblzma/lzma/lzma2_encoder.c | 2 +- + src/liblzma/lzma/lzma_decoder.c | 26 ++++++- + src/liblzma/lzma/lzma_encoder.c | 40 +++++++++-- + src/liblzma/lzma/lzma_encoder.h | 3 +- + src/liblzma/lzma/lzma_encoder_private.h | 3 + + 9 files changed, 204 insertions(+), 15 deletions(-) + +commit 9a304bf1e45b3ddf61aaeaa7c764915b34618ede +Author: Lasse Collin +Date: 2022-11-27 18:43:07 +0200 + + liblzma: Avoid unneeded use of void pointer in LZMA decoder. + + src/liblzma/lzma/lzma_decoder.c | 3 +-- + src/liblzma/lzma/lzma_decoder.h | 2 +- + 2 files changed, 2 insertions(+), 3 deletions(-) + +commit 218394958c7683f892275bb40eae880620feebcc +Author: Lasse Collin +Date: 2022-11-27 18:20:33 +0200 + + liblzma: Pass the Filter ID to LZ encoder and decoder. + + This allows using two Filter IDs with the same + initialization function and data structures. + + src/liblzma/common/alone_decoder.c | 1 + + src/liblzma/common/alone_encoder.c | 1 + + src/liblzma/common/common.h | 7 +++++-- + src/liblzma/common/lzip_decoder.c | 1 + + src/liblzma/common/microlzma_decoder.c | 1 + + src/liblzma/common/microlzma_encoder.c | 1 + + src/liblzma/lz/lz_decoder.c | 5 +++-- + src/liblzma/lz/lz_decoder.h | 3 ++- + src/liblzma/lz/lz_encoder.c | 5 +++-- + src/liblzma/lz/lz_encoder.h | 3 ++- + src/liblzma/lzma/lzma2_decoder.c | 3 ++- + src/liblzma/lzma/lzma2_encoder.c | 3 ++- + src/liblzma/lzma/lzma_decoder.c | 2 +- + src/liblzma/lzma/lzma_encoder.c | 2 +- + 14 files changed, 26 insertions(+), 12 deletions(-) + +commit 1663c7676b76f4c514031797f3db1896e8100f7f +Author: Lasse Collin +Date: 2022-11-27 01:03:16 +0200 + + liblzma: Remove two FIXME comments. + + src/liblzma/common/filter_encoder.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 11fe708db783ac36ebeeb85da164e29e8c300910 +Author: Lasse Collin +Date: 2022-11-26 22:25:30 +0200 + + xz: Use lzma_filters_free(). + + src/xz/list.c | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +commit e782af9110d8499c7ac2929bc871540eefea5ea1 +Author: Lasse Collin +Date: 2022-11-26 22:21:13 +0200 + + liblzma: Use lzma_filters_free() in more places. + + src/liblzma/common/block_header_decoder.c | 20 ++------------------ + src/liblzma/common/stream_decoder.c | 4 +--- + src/liblzma/common/stream_decoder_mt.c | 22 +++++----------------- + 3 files changed, 8 insertions(+), 38 deletions(-) + +commit 90caaded2dc6db1d6a55b01160d7e87f4a423628 +Author: Lasse Collin +Date: 2022-11-25 18:04:37 +0200 + + liblzma: Omit simple coder init functions if they are disabled. + + src/liblzma/simple/arm.c | 4 ++++ + src/liblzma/simple/armthumb.c | 4 ++++ + src/liblzma/simple/ia64.c | 4 ++++ + src/liblzma/simple/powerpc.c | 4 ++++ + src/liblzma/simple/sparc.c | 4 ++++ + src/liblzma/simple/x86.c | 4 ++++ + 6 files changed, 24 insertions(+) + +commit 5cd9f0df78cc4f8a7807bf6104adea13034fbb45 +Author: Lasse Collin +Date: 2022-11-24 23:24:59 +0200 + + xz: Allow nice_len 2 and 3 even if match finder requires 3 or 4. + + Now that liblzma accepts these, we avoid the extra check and + there's one message less for translators too. + + src/xz/options.c | 5 ----- + 1 file changed, 5 deletions(-) + +commit 3be88ae071371caa279b44e13f4836fb178fe4ae +Author: Lasse Collin +Date: 2022-11-24 23:23:55 +0200 + + liblzma: Allow nice_len 2 and 3 even if match finder requires 3 or 4. + + That is, if the specified nice_len is smaller than the minimum + of the match finder, silently use the match finder's minimum value + instead of reporting an error. The old behavior is annoying to users + and it complicates xz options handling too. + + src/liblzma/lz/lz_encoder.c | 14 +++++++++----- + src/liblzma/lz/lz_encoder.h | 9 +++++++++ + src/liblzma/lzma/lzma_encoder.c | 11 ++++++++--- + 3 files changed, 26 insertions(+), 8 deletions(-) + +commit 93439cfafe1768b3b18d67d2356ef7e7559bba59 +Author: Lasse Collin +Date: 2022-11-24 16:25:10 +0200 + + liblzma: Add lzma_filters_update() support to the multi-threaded encoder. + + A tiny downside of this is that now a 1-4 tiny allocations are made + for every Block because each worker thread needs its own copy of + the filter chain. + + src/liblzma/api/lzma/filter.h | 36 +++++++------ + src/liblzma/common/stream_encoder_mt.c | 96 +++++++++++++++++++++++++++++++--- + 2 files changed, 109 insertions(+), 23 deletions(-) + +commit 17ac51e689794eb41cab3e80946fec689caea2d2 +Author: Lasse Collin +Date: 2022-11-24 14:53:22 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 06824396b2b6c84f3a235cb7c19c2a9701167797 +Author: Lasse Collin +Date: 2022-11-24 14:52:44 +0200 + + Build: Don't put GNU/Linux-specific symbol versions into static liblzma. + + It not only makes no sense to put symbol versions into a static library + but it can also cause breakage. + + By default Libtool #defines PIC if building a shared library and + doesn't define it for static libraries. This is documented in the + Libtool manual. It can be overriden using --with-pic or --without-pic. + configure.ac detects if --with-pic or --without-pic is used and then + gives an error if neither --disable-shared nor --disable-static was + used at the same time. Thus, in normal situations it works to build + both shared and static library at the same time on GNU/Linux, + only --with-pic or --without-pic requires that only one type of + library is built. + + Thanks to John Paul Adrian Glaubitz from Debian for reporting + the problem that occurred on ia64: + https://www.mail-archive.com/xz-devel@tukaani.org/msg00610.html + + CMakeLists.txt | 5 +- + configure.ac | 143 +++++++++++++++++++++++++++++--------------- + src/liblzma/common/common.h | 12 ++++ + 3 files changed, 111 insertions(+), 49 deletions(-) + +commit e1acf7107291f8b3d6d609a7133331ff36d35d14 +Author: Lasse Collin +Date: 2022-11-24 01:32:16 +0200 + + liblzma: Refactor to use lzma_filters_free(). + + lzma_filters_free() sets the options to NULL and ids to + LZMA_VLI_UNKNOWN so there is no need to do it by caller; + the filter arrays will always be left in a safe state. + + Also use memcpy() instead of a loop to copy a filter chain + when it is known to be safe to copy LZMA_FILTERS_MAX + 1 + (even if the elements past the terminator might be uninitialized). + + src/liblzma/common/stream_encoder.c | 16 ++++------------ + src/liblzma/common/stream_encoder_mt.c | 11 ++--------- + 2 files changed, 6 insertions(+), 21 deletions(-) + +commit cb05dbcf8b868441ec805016222f3fd77f1c5caa +Author: Lasse Collin +Date: 2022-11-24 01:26:37 +0200 + + liblzma: Fix another invalid free() after memory allocation failure. + + This time it can happen when lzma_stream_encoder_mt() is used + to reinitialize an existing multi-threaded Stream encoder + and one of 1-4 tiny allocations in lzma_filters_copy() fail. + + It's very similar to the previous bug + 10430fbf3820dafd4eafd38ec8be161a6978ed2b, happening with + an array of lzma_filter structures whose old options are freed + but the replacement never arrives due to a memory allocation + failure in lzma_filters_copy(). + + src/liblzma/common/stream_encoder_mt.c | 4 ++++ + 1 file changed, 4 insertions(+) + +commit 75f1a6c26df4ce329da0882786403e3ccf5cd898 +Author: Jia Tan +Date: 2022-05-05 20:53:42 +0800 + + liblzma: Add support for LZMA_SYNC_FLUSH in the Block encoder. + + The documentation mentions that lzma_block_encoder() supports + LZMA_SYNC_FLUSH but it was never added to supported_actions[] + in the internal structure. Because of this, LZMA_SYNC_FLUSH could + not be used with the Block encoder unless it was the next coder + after something like stream_encoder() or stream_encoder_mt(). + + src/liblzma/common/block_encoder.c | 1 + + 1 file changed, 1 insertion(+) + +commit d0901645170b638c517f5c50866b6ef48f491c65 +Author: Lasse Collin +Date: 2022-11-24 01:02:50 +0200 + + liblzma: Add new API function lzma_filters_free(). + + This is small but convenient and should have been added + a long time ago. + + src/liblzma/api/lzma/filter.h | 21 +++++++++++++++++++++ + src/liblzma/common/filter_common.c | 26 ++++++++++++++++++++++++++ + src/liblzma/liblzma_generic.map | 1 + + src/liblzma/liblzma_linux.map | 1 + + 4 files changed, 49 insertions(+) + +commit ae1f8a723dcde2f2c5cf444bcbb5fc5026b3c3c5 +Author: Lasse Collin +Date: 2022-11-24 00:02:31 +0200 + + CMake: Don't use symbol versioning with static library. + + CMakeLists.txt | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +commit 48c1b99dc537a27e1ca929d8837e778e5ba32191 +Author: Lasse Collin +Date: 2022-11-23 21:55:22 +0200 + + liblzma: Add lzma_attr_warn_unused_result to lzma_filters_copy(). + + src/liblzma/api/lzma/filter.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 10430fbf3820dafd4eafd38ec8be161a6978ed2b +Author: Lasse Collin +Date: 2022-11-23 21:26:21 +0200 + + liblzma: Fix invalid free() after memory allocation failure. + + The bug was in the single-threaded .xz Stream encoder + in the code that is used for both re-initialization and for + lzma_filters_update(). To trigger it, an application had + to either re-initialize an existing encoder instance with + lzma_stream_encoder() or use lzma_filters_update(), and + then one of the 1-4 tiny allocations in lzma_filters_copy() + (called from stream_encoder_update()) must fail. An error + was correctly reported but the encoder state was corrupted. + + This is related to the recent fix in + f8ee61e74eb40600445fdb601c374d582e1e9c8a which is good but + it wasn't enough to fix the main problem in stream_encoder.c. + + src/liblzma/common/stream_encoder.c | 39 +++++++++++++++++++++++++++++-------- + 1 file changed, 31 insertions(+), 8 deletions(-) + +commit cafd6dc397ca8b5b5f7775e8d6876b8fe70f8e70 +Author: Lasse Collin +Date: 2022-11-22 16:37:15 +0200 + + liblzma: Fix language in a comment. + + src/liblzma/common/stream_encoder.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit c392bf8ccba857baaf50399c4b460119befacd54 +Author: Lasse Collin +Date: 2022-11-22 11:20:17 +0200 + + liblzma: Fix infinite loop in LZMA encoder init with dict_size >= 2 GiB. + + The encoder doesn't support dictionary sizes larger than 1536 MiB. + This is validated, for example, when calculating the memory usage + via lzma_raw_encoder_memusage(). It is also enforced by the LZ + part of the encoder initialization. However, LZMA encoder with + LZMA_MODE_NORMAL did an unsafe calculation with dict_size before + such validation and that results in an infinite loop if dict_size + was 2 << 30 or greater. + + src/liblzma/lzma/lzma_encoder.c | 19 +++++++++++++++---- + 1 file changed, 15 insertions(+), 4 deletions(-) + +commit f50534c973a591ccf65485adfc827a8a7126ca6c +Author: Lasse Collin +Date: 2022-11-21 13:02:33 +0200 + + liblzma: Fix two Doxygen commands in the API headers. + + These were caught by clang -Wdocumentation. + + src/liblzma/api/lzma/hardware.h | 2 +- + src/liblzma/api/lzma/index_hash.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit 649d4872ed2f55196114a061d45b416fc4353569 +Author: Lasse Collin +Date: 2022-11-19 19:09:55 +0200 + + xz: Refactor duplicate code from hardware_memlimit_mtenc_get(). + + src/xz/hardware.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit d327743bb547a53364e5951a16e5f1663fe4b9ff +Author: Lasse Collin +Date: 2022-11-19 19:06:13 +0200 + + xz: Add support --threads=+N so that -T+1 gives threaded mode. + + src/xz/args.c | 18 +++++++++++++++--- + src/xz/hardware.c | 17 +++++++++++++++-- + src/xz/hardware.h | 1 + + src/xz/xz.1 | 21 ++++++++++++++++++++- + 4 files changed, 51 insertions(+), 6 deletions(-) + +commit a11a2b8b5e830ba682c1d81aaa7078842b296995 +Author: Jia Tan +Date: 2022-11-19 23:18:04 +0800 + + CMake: Adds test_memlimit to CMake tests + + CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +commit 2af8d9e9b3f44f62d19e7c39297ec63af2e8c64f +Author: Lasse Collin +Date: 2022-11-15 19:10:21 +0200 + + Translations: Update the Korean translation. + + po/ko.po | 652 ++++++++++++++++++++++++++++++++++++--------------------------- + 1 file changed, 371 insertions(+), 281 deletions(-) + +commit 16ac05677292f7e21a4feaddcfb2ab062ea5f385 +Author: Lasse Collin +Date: 2022-11-15 19:09:28 +0200 + + Translations: Update the Turkish translation. + + po/tr.po | 568 ++++++++++++++++++++++++++++++++++----------------------------- + 1 file changed, 310 insertions(+), 258 deletions(-) + +commit b9a67d9a5fa207062d4aa8a01639234609315d31 +Author: Lasse Collin +Date: 2022-11-15 10:58:39 +0200 + + Bump version number for 5.3.4alpha. + + src/liblzma/api/lzma/version.h | 2 +- + src/liblzma/liblzma_generic.map | 2 +- + src/liblzma/liblzma_linux.map | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +commit 5b999ba289b3280457b7386b9ac65dbbdf1575a5 +Author: Lasse Collin +Date: 2022-11-15 10:54:40 +0200 + + Add NEWS for 5.3.4alpha. + + NEWS | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 96 insertions(+) + +commit ce8db9e37da4f6c87691c5066f51f91f2411c44a +Author: Lasse Collin +Date: 2022-11-15 10:54:08 +0200 + + Add NEWS for 5.2.8. + + NEWS | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 79 insertions(+) + +commit b56bc8251d2736224af6bdaaae734ceb8926a879 +Author: Lasse Collin +Date: 2022-11-14 23:19:57 +0200 + + Revert "liblzma: Simple/BCJ filters: Allow disabling generic BCJ options." + + This reverts commit 177bdc922cb17bd0fd831ab8139dfae912a5c2b8 + and also does equivalent change to arm64.c. + + Now that ARM64 filter will use lzma_options_bcj, this change + is not needed anymore. + + src/liblzma/simple/arm.c | 2 +- + src/liblzma/simple/arm64.c | 2 +- + src/liblzma/simple/armthumb.c | 2 +- + src/liblzma/simple/ia64.c | 2 +- + src/liblzma/simple/powerpc.c | 2 +- + src/liblzma/simple/simple_coder.c | 4 ++-- + src/liblzma/simple/simple_private.h | 2 +- + src/liblzma/simple/sparc.c | 2 +- + src/liblzma/simple/x86.c | 3 +-- + 9 files changed, 10 insertions(+), 11 deletions(-) + +commit 8370ec8edf9ddf8d1d9fef03d8d1027503ec4c35 +Author: Lasse Collin +Date: 2022-11-14 23:14:41 +0200 + + Replace the experimental ARM64 filter with a new experimental version. + + This is incompatible with the previous version. + + This has space/tab fixes in filter_*.c and bcj.h too. + + src/liblzma/api/lzma/bcj.h | 41 +----- + src/liblzma/common/filter_common.c | 14 +- + src/liblzma/common/filter_decoder.c | 12 +- + src/liblzma/common/filter_encoder.c | 17 +-- + src/liblzma/simple/arm64.c | 283 ++++++++++++++---------------------- + src/liblzma/simple/simple_decoder.h | 4 - + src/liblzma/simple/simple_encoder.h | 2 - + src/xz/args.c | 2 +- + src/xz/message.c | 13 +- + src/xz/options.c | 39 ----- + src/xz/options.h | 7 - + 11 files changed, 147 insertions(+), 287 deletions(-) + +commit f644473a211394447824ea00518d0a214ff3f7f2 +Author: Lasse Collin +Date: 2022-11-14 21:34:57 +0200 + + liblzma: Add fast CRC64 for 32/64-bit x86 using SSSE3 + SSE4.1 + CLMUL. + + It also works on E2K as it supports these intrinsics. + + On x86-64 runtime detection is used so the code keeps working on + older processors too. A CLMUL-only build can be done by using + -msse4.1 -mpclmul in CFLAGS and this will reduce the library + size since the generic implementation and its 8 KiB lookup table + will be omitted. + + On 32-bit x86 this isn't used by default for now because by default + on 32-bit x86 the separate assembly file crc64_x86.S is used. + If --disable-assembler is used then this new CLMUL code is used + the same way as on 64-bit x86. However, a CLMUL-only build + (-msse4.1 -mpclmul) won't omit the 8 KiB lookup table on + 32-bit x86 due to a currently-missing check for disabled + assembler usage. + + The configure.ac check should be such that the code won't be + built if something in the toolchain doesn't support it but + --disable-clmul-crc option can be used to unconditionally + disable this feature. + + CLMUL speeds up decompression of files that have compressed very + well (assuming CRC64 is used as a check type). It is know that + the CLMUL code is significantly slower than the generic code for + tiny inputs (especially 1-8 bytes but up to 16 bytes). If that + is a real-world problem then there is already a commented-out + variant that uses the generic version for small inputs. + + Thanks to Ilya Kurdyukov for the original patch which was + derived from a white paper from Intel [1] (published in 2009) + and public domain code from [2] (released in 2016). + + [1] https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/fast-crc-computation-generic-polynomials-pclmulqdq-paper.pdf + [2] https://github.com/rawrunprotected/crc + + CMakeLists.txt | 26 ++- + INSTALL | 12 ++ + configure.ac | 59 +++++- + src/liblzma/check/crc64_fast.c | 449 +++++++++++++++++++++++++++++++++++++++- + src/liblzma/check/crc64_table.c | 21 +- + 5 files changed, 554 insertions(+), 13 deletions(-) + +commit 3b466bc79672bb2b06d1245a500588e6026e0ba0 +Author: Lasse Collin +Date: 2022-11-14 20:14:34 +0200 + + Translations: Update the Swedish translation one more time. + + po/sv.po | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit e963379a8622ebdff6ce78e76b803bcd1e1d16d6 +Author: Lasse Collin +Date: 2022-11-14 19:34:15 +0200 + + Translations: Update the Swedish translation again. + + po/sv.po | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +commit a4bc689a823a2254f29ac9d233170add5121b307 +Author: Lasse Collin +Date: 2022-11-14 19:07:45 +0200 + + Translations: Update the Swedish translation. + + po/sv.po | 671 ++++++++++++++++++++++++++++++++++++--------------------------- + 1 file changed, 382 insertions(+), 289 deletions(-) + +commit bbf2073d824ab4ba33bed4b77f467435abd333a5 +Author: Lasse Collin +Date: 2022-11-14 18:58:09 +0200 + + Translations: Update the Ukrainian translation. + + po/uk.po | 618 ++++++++++++++++++++++++++++++++++++--------------------------- + 1 file changed, 354 insertions(+), 264 deletions(-) + +commit ac10b1b3622e70881595586edfb8a3ebdcd76bb6 +Author: Lasse Collin +Date: 2022-11-14 17:58:07 +0200 + + Build: Omit x86_64 from --enable-assembler. + + It didn't do anything. There are only 32-bit x86 assembly files + and it feels likely that new files won't be added as intrinsics + in C are more portable across toolchains and OSes. + + configure.ac | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +commit eb0f1450ad9f23dac03050d9c8375980240aee21 +Author: Lasse Collin +Date: 2022-11-14 16:00:52 +0200 + + liblzma: Use __attribute__((__constructor__)) if available. + + This uses it for CRC table initializations when using --disable-small. + It avoids mythread_once() overhead. It also means that then + --disable-small --disable-threads is thread-safe if this attribute + is supported. + + CMakeLists.txt | 15 +++++++++++++++ + INSTALL | 4 +++- + configure.ac | 31 ++++++++++++++++++++++++++++--- + src/liblzma/check/crc32_small.c | 7 +++++++ + src/liblzma/check/crc64_small.c | 5 +++++ + src/liblzma/lz/lz_encoder.c | 2 +- + 6 files changed, 59 insertions(+), 5 deletions(-) + +commit 6553f49b11dafad35c73b05f12e14865ea1fd8a1 +Author: Lasse Collin +Date: 2022-11-12 21:19:52 +0200 + + Translations: Update the Romanian translation. + + po/ro.po | 651 +++++++++++++++++++++++++++++++++++++-------------------------- + 1 file changed, 380 insertions(+), 271 deletions(-) + +commit db97e69e12393becc29f8febd53133d0d36989bd +Author: Lasse Collin +Date: 2022-11-12 21:17:45 +0200 + + Translations: Update the Hungarian translation. + + po/hu.po | 625 ++++++++++++++++++++++++++++++++++++--------------------------- + 1 file changed, 357 insertions(+), 268 deletions(-) + +commit 2bbb9c0f3829a8b121b36998d273a6c6f92000f4 +Author: Lasse Collin +Date: 2022-11-11 17:58:57 +0200 + + Translations: Update the Finnish translation. + + po/fi.po | 610 ++++++++++++++++++++++++++++++++++++--------------------------- + 1 file changed, 348 insertions(+), 262 deletions(-) + +commit 3c8cbb8137b6f8ed9416c1209d73cdbcb015251f +Author: Lasse Collin +Date: 2022-11-11 17:58:18 +0200 + + Translations: Update the Croatian translation. + + po/hr.po | 680 +++++++++++++++++++++++++++++++++++---------------------------- + 1 file changed, 381 insertions(+), 299 deletions(-) + +commit 26c3359eac0988d6f3986735cd1363bec1678e8e +Author: Lasse Collin +Date: 2022-11-11 17:57:18 +0200 + + Translations: Update the Polish translation. + + po/pl.po | 569 ++++++++++++++++++++++++++++++++++----------------------------- + 1 file changed, 309 insertions(+), 260 deletions(-) + +commit 577e467b137c735afb8de6ae71ac7a73c2960cc4 +Author: Lasse Collin +Date: 2022-11-11 17:56:44 +0200 + + Translations: Update the Spanish translation. + + po/es.po | 598 ++++++++++++++++++++++++++++++++++++--------------------------- + 1 file changed, 344 insertions(+), 254 deletions(-) + +commit f9b4ff6e9a0f1678650775582d3e4fe782abce97 +Author: Lasse Collin +Date: 2022-11-11 17:16:03 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit a39961ef211e1bf030b17edeea3cff29fe263b67 +Author: Lasse Collin +Date: 2022-11-11 17:15:25 +0200 + + liblzma: Fix building with Intel ICC (the classic compiler). + + It claims __GNUC__ >= 10 but doesn't support __symver__ attribute. + + Thanks to Stephen Sachs. + + src/liblzma/common/common.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit c715f683dcb1a817d565da292cddfbceda643e12 +Author: Lasse Collin +Date: 2022-11-11 14:35:58 +0200 + + liblzma: Fix incorrect #ifdef for x86 SSE2 support. + + __SSE2__ is the correct macro for SSE2 support with GCC, Clang, + and ICC. __SSE2_MATH__ means doing floating point math with SSE2 + instead of 387. Often the latter macro is defined if the first + one is but it was still a bug. + + src/liblzma/common/memcmplen.h | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +commit bd334ae56afe7f642ad4d0f1ac19e74e82daa1ce +Author: Lasse Collin +Date: 2022-11-11 13:27:06 +0200 + + Add NEWS for 5.2.7 (forgotten cherry-pick from v5.2). + + NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 74 insertions(+) + +commit 3c7860cf49de6f81046b3a4034a89f3a4803a576 +Author: Lasse Collin +Date: 2022-11-11 13:16:21 +0200 + + xzdiff: Add support for .lz files. + + The other scripts don't need changes for .lz support because + in those scripts it is enough that xz supports .lz. + + src/scripts/xzdiff.in | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +commit d76c752a6d77052e5ad57ade555082585f7ac5d8 +Author: Lasse Collin +Date: 2022-11-11 12:23:58 +0200 + + Scripts: Ignore warnings from xz. + + In practice this means making the scripts work when + the input files have an unsupported check type which + isn't a problem in practice unless support for + some check types has been disabled at build time. + + src/scripts/xzdiff.in | 5 +++-- + src/scripts/xzgrep.in | 2 +- + src/scripts/xzless.in | 4 ++-- + src/scripts/xzmore.in | 4 ++-- + 4 files changed, 8 insertions(+), 7 deletions(-) + +commit 6552535afd1fe29d726ab6e68cf14ce3624fd48c +Author: Lasse Collin +Date: 2022-11-10 12:34:43 +0200 + + Translations: Rename poa4/fr_FR.po to po4a/fr.po. + + That's how it is preferred at the Translation Project. + On my system /usr/share/man/fr_FR doesn't contain any + other man pages than XZ Utils while /usr/share/man/fr + has quite a few, so this will fix that too. + + Thanks to Benno Schulenberg from the Translation Project. + + po4a/{fr_FR.po => fr.po} | 0 + po4a/po4a.conf | 2 +- + 2 files changed, 1 insertion(+), 1 deletion(-) + +commit 0918159ce4c75bfb60aff0193b559f8a9f41d25a +Author: Lasse Collin +Date: 2022-11-09 18:48:50 +0200 + + xz: Update the man page about BCJ filters, including upcoming --arm64. + + The --arm64 isn't actually implemented yet in the form + described in this commit. + + Thanks to Jia Tan. + + src/xz/xz.1 | 66 +++++++++++++++++++++++++++---------------------------------- + 1 file changed, 29 insertions(+), 37 deletions(-) + +commit ba2ae3596f6be1587495f33b367488f6e00e56f1 +Author: Lasse Collin +Date: 2022-11-09 18:14:14 +0200 + + xz: Add --arm64 to --long-help and omit endianness from ARM(-Thumb). + + Modern 32-bit ARM in big endian mode use little endian for + instruction encoding still, so the filters work on such + executables too. It's likely less confusing for users this way. + + The --arm64 option hasn't been implemented yet (there is + --experimental-arm64 but it's different). The --arm64 option + is added now anyway because this is the likely result and the + strings need to be ready for translators. + + Thanks to Jia Tan. + + src/xz/message.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +commit 802d57d9215d9c81dbee86edb43c9e93a7f7ec55 +Author: Lasse Collin +Date: 2022-11-09 15:12:13 +0200 + + Windows: Update the VS project files for ARM64 and .lz support. + + windows/vs2013/config.h | 9 +++++++++ + windows/vs2013/liblzma.vcxproj | 5 ++++- + windows/vs2013/liblzma_dll.vcxproj | 5 ++++- + windows/vs2017/config.h | 9 +++++++++ + windows/vs2017/liblzma.vcxproj | 3 +++ + windows/vs2017/liblzma_dll.vcxproj | 3 +++ + windows/vs2019/config.h | 9 +++++++++ + windows/vs2019/liblzma.vcxproj | 5 ++++- + windows/vs2019/liblzma_dll.vcxproj | 5 ++++- + 9 files changed, 49 insertions(+), 4 deletions(-) + +commit 5846aeda05972bc803c6094821ae836229ebe691 +Author: Lasse Collin +Date: 2022-11-09 14:57:48 +0200 + + DOS: Update Makefile and config.h to include ARM64 and .lz support. + + dos/Makefile | 2 ++ + dos/config.h | 9 +++++++++ + 2 files changed, 11 insertions(+) + +commit 781da8d6c44de6aa278c916375250668a0b107f2 +Author: Lasse Collin +Date: 2022-11-09 14:45:05 +0200 + + CMake: Add lzip decoder files and #define to the build. + + CMakeLists.txt | 3 +++ + 1 file changed, 3 insertions(+) + +commit df8ad4af65a9c4846b108550d0083770a69dee64 +Author: Lasse Collin +Date: 2022-11-09 14:41:56 +0200 + + Docs: Update INSTALL and also add new prohibited options to PACKAGERS. + + INSTALL | 49 +++++++++++++++++++++++++++++++++++++++++-------- + PACKAGERS | 2 ++ + 2 files changed, 43 insertions(+), 8 deletions(-) + +commit c8ef089c149afaab413c3a51be827dd1d11afe0e +Author: Lasse Collin +Date: 2022-10-20 17:39:06 +0300 + + Tests: Test the .lz files in test_files.sh. + + tests/test_files.sh | 25 +++++++++++++++++++++++++ + 1 file changed, 25 insertions(+) + +commit c8f70ebb4628ceb6cb29cc9195d9deadf69d2bd7 +Author: Lasse Collin +Date: 2022-10-20 15:35:59 +0300 + + Tests: Add .lz (lzip) test files. + + tests/files/README | 109 +++++++++++++++++++++++++++++---- + tests/files/bad-1-v0-uncomp-size.lz | Bin 0 -> 42 bytes + tests/files/bad-1-v1-crc32.lz | Bin 0 -> 50 bytes + tests/files/bad-1-v1-dict-1.lz | Bin 0 -> 50 bytes + tests/files/bad-1-v1-dict-2.lz | Bin 0 -> 50 bytes + tests/files/bad-1-v1-magic-1.lz | Bin 0 -> 50 bytes + tests/files/bad-1-v1-magic-2.lz | Bin 0 -> 50 bytes + tests/files/bad-1-v1-member-size.lz | Bin 0 -> 50 bytes + tests/files/bad-1-v1-trailing-magic.lz | Bin 0 -> 54 bytes + tests/files/bad-1-v1-uncomp-size.lz | Bin 0 -> 50 bytes + tests/files/good-1-v0-trailing-1.lz | Bin 0 -> 59 bytes + tests/files/good-1-v0.lz | Bin 0 -> 42 bytes + tests/files/good-1-v1-trailing-1.lz | Bin 0 -> 67 bytes + tests/files/good-1-v1-trailing-2.lz | Bin 0 -> 70 bytes + tests/files/good-1-v1.lz | Bin 0 -> 50 bytes + tests/files/good-2-v0-v1.lz | Bin 0 -> 78 bytes + tests/files/good-2-v1-v0.lz | Bin 0 -> 78 bytes + tests/files/good-2-v1-v1.lz | Bin 0 -> 86 bytes + tests/files/unsupported-1-v234.lz | Bin 0 -> 50 bytes + 19 files changed, 98 insertions(+), 11 deletions(-) + +commit 731db13e6fa3ad3e3fc786c0ccf6eac4cce6865f +Author: Lasse Collin +Date: 2022-10-19 22:32:51 +0300 + + xz: Remove the commented-out FORMAT_GZIP, gzip, .gz, and .tgz. + + src/xz/args.c | 2 -- + src/xz/coder.h | 1 - + src/xz/suffix.c | 9 --------- + 3 files changed, 12 deletions(-) + +commit 3176f992c55b8d788c4633809aaf9447376a5a12 +Author: Lasse Collin +Date: 2022-10-08 21:28:15 +0300 + + xz: Add .lz (lzip) decompression support. + + If configured with --disable-lzip-decoder then --long-help will + still list `lzip' in --format but I left it like that since + due to translations it would be messy to have two help strings. + Features are disabled only in special situations so wrong help + in such a situation shouldn't matter much. + + Thanks to Michał Górny for the original patch. + + src/xz/args.c | 9 ++++++++ + src/xz/coder.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- + src/xz/coder.h | 3 +++ + src/xz/message.c | 2 +- + src/xz/suffix.c | 26 ++++++++++++++++++---- + src/xz/xz.1 | 46 +++++++++++++++++++++++++++++++++----- + 6 files changed, 141 insertions(+), 13 deletions(-) + +commit 034086e1ae1459210837a24e04878435c86dc41b +Author: Lasse Collin +Date: 2022-10-08 00:29:20 +0300 + + liblzma: Add .lz support to lzma_auto_decoder(). + + Thanks to Michał Górny for the original patch. + + src/liblzma/api/lzma/container.h | 10 ++++++---- + src/liblzma/common/Makefile.inc | 3 ++- + src/liblzma/common/auto_decoder.c | 23 +++++++++++++++++------ + src/liblzma/common/lzip_decoder.h | 22 ++++++++++++++++++++++ + 4 files changed, 47 insertions(+), 11 deletions(-) + +commit 0538db038f3cdc352007dacb42454aa1806b8e40 +Author: Lasse Collin +Date: 2022-10-06 15:50:20 +0300 + + liblzma: Add .lz (lzip) decompression support (format versions 0 and 1). + + Support for format version 0 was removed from lzip 1.18 for some + reason. .lz format version 0 files are rare (and old) but some + source packages were released in this format, and some people might + have personal files in this format too. It's very little extra code + to support it along side format version 1 so this commits adds + support for both. + + The Sync Flush marker extentension to the original .lz format + version 1 isn't supported. It would require changes to the + LZMA decoder itself. Such files are very rare anyway. + + See the API doc for lzma_lzip_decoder() for more details about + the .lz format support. + + Thanks to Michał Górny for the original patch. + + configure.ac | 21 ++ + src/liblzma/api/lzma/container.h | 62 +++++- + src/liblzma/common/Makefile.inc | 5 + + src/liblzma/common/lzip_decoder.c | 413 ++++++++++++++++++++++++++++++++++++++ + src/liblzma/liblzma_generic.map | 1 + + src/liblzma/liblzma_linux.map | 1 + + 6 files changed, 501 insertions(+), 2 deletions(-) + +commit 633d48a075b9ce4b9c08a7a56a7eb4cabc18100c +Author: Lasse Collin +Date: 2022-11-09 14:17:23 +0200 + + liblzma: Add the missing Makefile.inc change for --disable-microlzma. + + This was forgotten from commit 59c4d6e1390f6f4176f43ac1dad1f7ac03c449b8. + + src/liblzma/common/Makefile.inc | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +commit 724285dadbdc88765c8fb83eab9816575a260966 +Author: Lasse Collin +Date: 2022-11-09 14:10:52 +0200 + + xz: Add comments about stdin and src_st.st_size. + + "xz -v < regular_file > out.xz" doesn't display the percentage + and estimated remaining time because it doesn't even try to + check the input file size when input is read from stdin. + This could be improved but for now there's just a comment + to remind about it. + + src/xz/coder.c | 9 +++++++++ + src/xz/file_io.c | 4 ++++ + 2 files changed, 13 insertions(+) + +commit f723eec68b0e44234910f669a29119de33018967 +Author: Lasse Collin +Date: 2022-11-09 12:48:22 +0200 + + xz: Fix displaying of file sizes in progress indicator in passthru mode. + + It worked for one input file since the counters are zero when + xz starts but they weren't reset when starting a new file in + passthru mode. For example, if files A, B, and C are one byte each, + then "xz -dcvf A B C" would show file sizes as 1, 2, and 3 bytes + instead of 1, 1, and 1 byte. + + src/xz/coder.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +commit 69265d0f223ddf1d66f799b8b047df22923e376f +Author: Lasse Collin +Date: 2022-11-09 11:27:20 +0200 + + xz: Add a comment why --to-stdout is not in --help. + + It is on the man page still. + + src/xz/message.c | 3 +++ + 1 file changed, 3 insertions(+) + +commit fe6b8852a3c6a0eb5a3c33512e0a69af257d3bc7 +Author: Lasse Collin +Date: 2022-11-08 23:05:37 +0200 + + xz: Make xz -lvv show that the upcoming --arm64 needs 5.4.0 to decompress. + + src/xz/list.c | 20 +++++++++++++++----- + 1 file changed, 15 insertions(+), 5 deletions(-) + +commit fb3f05ac9f2b4b0e3643401960fbeab31997ac7a +Author: Lasse Collin +Date: 2022-11-08 22:26:54 +0200 + + Docs: Update faq.txt a little. + + doc/faq.txt | 66 ++++++++++++++++++++++++++++++++++++++++--------------------- + 1 file changed, 43 insertions(+), 23 deletions(-) + +commit 05331f091ec3b68eccbfb2a9a7a576072768fb4b +Author: Lasse Collin +Date: 2022-11-08 16:57:17 +0200 + + Translations: Update Turkish translation. + + po/tr.po | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit ed3a4822963b4940d84e6f44d47277c394fc046d +Author: Lasse Collin +Date: 2022-11-08 14:55:32 +0200 + + Translations: Update Croatian translation. + + po/hr.po | 190 ++++++++++++++++++++++++++++++++------------------------------- + 1 file changed, 96 insertions(+), 94 deletions(-) + +commit 4746f5ec721316bc4c6fec9905b2902e0360e0af +Author: Lasse Collin +Date: 2022-11-08 14:13:03 +0200 + + liblzma: Update API docs about decoder flags. + + src/liblzma/api/lzma/container.h | 21 +++++++++++++++++---- + 1 file changed, 17 insertions(+), 4 deletions(-) + +commit 8779a9db5d0cec00c9dc9e9965dd2dda04f9d80d +Author: Lasse Collin +Date: 2022-11-08 14:01:50 +0200 + + liblzma: Use the return_if_error() macro in alone_decoder.c. + + src/liblzma/common/alone_decoder.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +commit 3f4990b6822961e75cd9b4e2e82b1df63f6f8fcc +Author: Lasse Collin +Date: 2022-11-08 14:00:58 +0200 + + liblzma: Fix a comment in auto_decoder.c. + + src/liblzma/common/auto_decoder.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 026a5897c72a2041ae08ceec54ce8b1cdeb51334 +Author: Lasse Collin +Date: 2022-11-08 13:43:19 +0200 + + xz: Initialize the pledge(2) sandbox at the very beginning of main(). + + It feels better that the initializations are sandboxed too. + They don't do anything that the pledge() call wouldn't allow. + + src/xz/main.c | 27 ++++++++++++++------------- + 1 file changed, 14 insertions(+), 13 deletions(-) + +commit 49a59f6ca001c3ce9affa2c162b437aad021b4d5 +Author: Lasse Collin +Date: 2022-11-07 22:51:16 +0200 + + xz: Extend --robot --info-memory output. + + Now it includes everything that the human-readable --info-memory shows. + + src/xz/hardware.c | 24 +++++++++++++++--------- + src/xz/xz.1 | 47 +++++++++++++++++++++++++++++++++++++++++------ + 2 files changed, 56 insertions(+), 15 deletions(-) + +commit 5e2450c75cbac966c62cf2231c824f2cc91ddba8 +Author: Lasse Collin +Date: 2022-11-07 17:22:04 +0200 + + liblzma: Include cached memory in reported memusage in threaded decoder. + + This affects lzma_memusage() and lzma_memlimit_set() when used + with the threaded decompressor. Now all allocations are reported + by lzma_memusage() (so it's not misleading) and lzma_memlimit_set() + cannot lower the limit below that value. + + The alternative would have been to allow lowering the limit if + doing so is possible by freeing the cached memory but since + the primary use case of lzma_memlimit_set() is to increase + memlimit after LZMA_MEMLIMIT_ERROR this simple approach + was selected. + + The cached memory was always included when enforcing + the memory usage limit while decoding. + + Thanks to Jia Tan. + + src/liblzma/common/stream_decoder_mt.c | 22 +++++++++++++++++++--- + 1 file changed, 19 insertions(+), 3 deletions(-) + +commit 1fc6e7dd1fabdb60124d449b99273330ccab3ff1 +Author: Jia Tan +Date: 2022-11-07 16:24:14 +0200 + + xz: Avoid a compiler warning in progress_speed() in message.c. + + This should be smaller too since it avoids the string constants. + + src/xz/message.c | 9 +++------ + 1 file changed, 3 insertions(+), 6 deletions(-) + +commit cf118c014683069b5dbe91898acdc40f2f0a1f5d +Author: Lasse Collin +Date: 2022-10-31 16:26:05 +0200 + + Build: Clarify comment in configure.ac about SSE2. + + configure.ac | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +commit aad3c609ffb72f581a7a2b67be3ad70b2b327840 +Author: Lasse Collin +Date: 2022-10-31 16:16:37 +0200 + + Build: Remove obsolete commented-out lines from configure.ac. + + configure.ac | 4 ---- + 1 file changed, 4 deletions(-) + +commit e53e0e2186c6b8ce866bd19aec52f1c318ed31ba +Author: Lasse Collin +Date: 2022-10-31 13:31:58 +0200 + + Windows: Fix mythread_once() macro with Vista threads. + + Don't call InitOnceComplete() if initialization was already done. + + So far mythread_once() has been needed only when building + with --enable-small. windows/build.bash does this together + with --disable-threads so the Vista-specific mythread_once() + is never needed by those builds. VS project files or + CMake-builds don't support HAVE_SMALL builds at all. + + src/common/mythread.h | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +commit 48dde3bab9dc04081acb5aa7cf7c5044b8a49f58 +Author: Lasse Collin +Date: 2022-10-31 11:54:44 +0200 + + liblzma: Silence -Wconversion warning from crc64_fast.c. + + src/liblzma/check/crc64_fast.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +commit a243c617ff249d915ac123de4f536b80322c1fdb +Author: Lasse Collin +Date: 2022-10-31 11:49:47 +0200 + + CMake: Sync tuklib_cpucores.cmake with tuklib_cpucores.m4. + + This was forgotten from commit 2611c4d90535652d3eb7ef4a026a6691276fab43. + + cmake/tuklib_cpucores.cmake | 5 +++++ + 1 file changed, 5 insertions(+) + +commit 05c72de06fcaaedc78f8abba7d5ec568ddcf1e75 +Author: Lasse Collin +Date: 2022-10-27 15:49:18 +0300 + + Tests: test_files.sh: Make it not fail if features were disabled at build. + + It now tries to test as many files as easily possible. + The exit status indicates skipping if any of the files were + skipped. This way it is easy to notice if something is being + skipped when it isn't expected. + + tests/test_files.sh | 50 ++++++++++++++++++++++++++++++++++++++++++++++---- + 1 file changed, 46 insertions(+), 4 deletions(-) + +commit b3459327a51f4b8239d19e6c34b4e0c6bc2d81de +Author: Lasse Collin +Date: 2022-10-27 15:30:13 +0300 + + Tests: test_files.sh: Suppress an expected warning from the log. + + xz (but not xzdec) will normally warn about unsupported check + but since we are testing specifically such a file, it's better + to silence that warning so that it doesn't look suspicious in + test_files.sh.log. + + The use of -q and -Q in xzdec is just for consistency and + doesn't affect the result at least for now. + + tests/test_files.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 798c86e4231e0835ab76ccd0810c8ea30833b2ce +Author: Lasse Collin +Date: 2022-10-27 15:27:50 +0300 + + Tests: test_files.sh: Print the reason for skipping if xz & xzdec missing. + + tests/test_files.sh | 1 + + 1 file changed, 1 insertion(+) + +commit c1dd8524e1af07f16b790463899de06a6a5fcc08 +Author: Lasse Collin +Date: 2022-10-27 01:12:40 +0300 + + Tests: Keep test_compress_* working when some filters are unavailable. + + tests/test_compress.sh | 34 ++++++++++++++++++++-------------- + 1 file changed, 20 insertions(+), 14 deletions(-) + +commit ce30ada91951d0746879ae438da11f1ee8a90aa0 +Author: Jia Tan +Date: 2022-10-23 21:01:08 +0800 + + Tests: test_bcj_exact_size skips properly now if PowerPC filter disabled. + + tests/test_bcj_exact_size.c | 3 +++ + 1 file changed, 3 insertions(+) + +commit 89c5cfcacaca7130509fac836e2f30c46b824502 +Author: Lasse Collin +Date: 2022-10-26 00:05:57 +0300 + + Tests: Test also unsupported-*.xz. + + tests/test_files.sh | 37 +++++++++++++++++++++++++++++++++++++ + 1 file changed, 37 insertions(+) + +commit a4b214b93ac741edef9c41e55865b0b867ca2587 +Author: Lasse Collin +Date: 2022-10-25 23:45:03 +0300 + + Build: Use AC_CONFIG_HEADERS instead of the ancient AC_CONFIG_HEADER. + + We require Autoconf >= 2.69 and that has AC_CONFIG_HEADERS. + + There is a warning about AC_PROG_CC_C99 being obsolete but + it cannot be removed because it is needed with Autoconf 2.69. + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 04f299b64e73f50afc188c2590ebebc6b73ed744 +Author: Lasse Collin +Date: 2022-10-25 23:31:44 +0300 + + Build: Update m4/ax_pthread.m4 from Autoconf Archive. + + m4/ax_pthread.m4 | 29 ++++++++++++++++++++++------- + 1 file changed, 22 insertions(+), 7 deletions(-) + +commit 59c4d6e1390f6f4176f43ac1dad1f7ac03c449b8 +Author: Lasse Collin +Date: 2022-10-25 23:28:34 +0300 + + Build: Add configure option --disable-microlzma. + + MicroLZMA was made for EROFS and used by erofs-utils. + It might be used by something else in the future but + those wanting a smaller build for specific situations + can now disable this rarely-needed feature. + + configure.ac | 22 ++++++++++++++++++++++ + 1 file changed, 22 insertions(+) + +commit 054ccd6d14b2cc6eddc56897af280d3221414150 +Author: Lasse Collin +Date: 2022-10-25 23:09:11 +0300 + + xz: Fix --single-stream with an empty .xz Stream. + + Example: + + $ xz -dc --single-stream good-0-empty.xz + xz: good-0-empty.xz: Internal error (bug) + + The code, that is tries to catch some input file issues early, + didn't anticipate LZMA_STREAM_END which is possible in that + code only when --single-stream is used. + + src/xz/coder.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +commit 563288ea705e83ff5cb292adf794650c263bca1d +Author: Lasse Collin +Date: 2022-10-25 21:11:58 +0300 + + xz: Add support for OpenBSD's pledge() sandbox. + + configure.ac | 12 +++++++++--- + src/xz/file_io.c | 11 +++++++++++ + src/xz/main.c | 13 +++++++++++++ + src/xz/private.h | 2 +- + 4 files changed, 34 insertions(+), 4 deletions(-) + +commit f9913e8ee2ba0b1e4ff4d0aa4c001aae305ed944 +Author: Lasse Collin +Date: 2022-10-25 19:07:17 +0300 + + xz: Fix decompressor behavior if input uses an unsupported check type. + + Now files with unsupported check will make xz display + a warning, set the exit status to 2 (unless --no-warn is used), + and then decompress the file normally. This is how it was + supposed to work since the beginning but this was broken by + the commit 231c3c7098f1099a56abb8afece76fc9b8699f05, that is, + a little before 5.0.0 was released. The buggy behavior displayed + a message, set exit status 1 (error), and xz didn't attempt to + to decompress the file. + + This doesn't matter today except for special builds that disable + CRC64 or SHA-256 at build time (but such builds should be used + in special situations only). The bug matters if new check type + is added in the future and an old xz version is used to decompress + such a file; however, it's likely that such files would use a new + filter too and an old xz wouldn't be able to decompress the file + anyway. + + The first hunk in the commit is the actual fix. The second hunk + is a cleanup since LZMA_TELL_ANY_CHECK isn't used in xz. + + There is a test file for unsupported check type but it wasn't + used by test_files.sh, perhaps due to different behavior between + xz and the simpler xzdec. + + src/xz/coder.c | 19 +++++++++++++++---- + 1 file changed, 15 insertions(+), 4 deletions(-) + +commit aa4fe145b9486adc454f44fd3e09be9add808a0f +Author: Lasse Collin +Date: 2022-10-25 18:36:19 +0300 + + xz: Clarify the man page: input file isn't removed if an error occurs. + + src/xz/xz.1 | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +commit 8b46ae8cdeddfd7dc01fec92971b8696e9a96c5d +Author: Lasse Collin +Date: 2022-10-25 18:30:55 +0300 + + xz: Refactor to remove is_empty_filename(). + + Long ago it was used in list.c too but nowadays it's needed + only in io_open_src() so it's nicer to avoid a separate function. + + src/xz/file_io.c | 4 +++- + src/xz/util.c | 12 ------------ + src/xz/util.h | 4 ---- + 3 files changed, 3 insertions(+), 17 deletions(-) + +commit 85624015978b0de294cff3df79006df987c552b1 +Author: Lasse Collin +Date: 2022-10-25 18:23:54 +0300 + + xz: If input file cannot be removed, treat it as a warning, not error. + + Treating it as a warning (message + exit status 2) matches gzip + and it seems more logical as at that point the output file has + already been successfully closed. When it's a warning it is + possible to suppress it with --no-warn. + + src/xz/file_io.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit fda9f85f52c546f7ca0313cf89481da4707fecb3 +Author: Lasse Collin +Date: 2022-10-24 16:25:09 +0300 + + liblzma: Threaded decoder: Stop the worker threads on errors. + + It's waste of CPU time and electricity to leave the unfinished + worker threads running when it is known that their output will + get ignored. + + src/liblzma/common/stream_decoder_mt.c | 33 ++++++++++++++++++++++++++------- + 1 file changed, 26 insertions(+), 7 deletions(-) + +commit 2611c4d90535652d3eb7ef4a026a6691276fab43 +Author: Lasse Collin +Date: 2022-10-20 20:22:50 +0300 + + tuklib_cpucores: Use HW_NCPUONLINE on OpenBSD. + + On OpenBSD the number of cores online is often less + than what HW_NCPU would return because OpenBSD disables + simultaneous multi-threading (SMT) by default. + + Thanks to Christian Weisgerber. + + m4/tuklib_cpucores.m4 | 5 +++++ + src/common/tuklib_cpucores.c | 9 +++++++++ + 2 files changed, 14 insertions(+) + +commit 424ac91c7e0419393ff2bde4f62e21fa611c776d +Author: Lasse Collin +Date: 2022-10-19 19:39:35 +0300 + + Tests: Skip tests in test_*.sh if encoders and/or decoders are disabled. + + This isn't perfect as the scripts can still fail if only + certain filters are disabled. This is still an improvement + as now "make check" has better behavior when all encoders + or decoders are disabled. + + Grepping ../config.h is simple and fairly clean but it only + works if config.h was created. CMake builds don't create + config.h but they don't use these test scripts either. + + Thanks to Sebastian Andrzej Siewior for reporting the problem. + Thanks to Jia Tan for the original patch which grepped xz + error messages instead of config.h. + + tests/test_compress.sh | 12 ++++++++++++ + tests/test_files.sh | 11 +++++++++++ + tests/test_scripts.sh | 11 +++++++++++ + 3 files changed, 34 insertions(+) + +commit ca8bf9d7c5a30be8ba1eeb106fd892f19e83ed09 +Author: Lasse Collin +Date: 2022-10-19 18:54:34 +0300 + + Test: Remove the (exit 1) lines. + + I suspect that I used these in the original version because + Autoconf's manual describes that such a trick is needed in + some specific situations for portability reasons. None of those + situations listed on Autoconf 2.71 manual apply to these test + scripts though so this cleans them up. + + tests/test_compress.sh | 10 ---------- + tests/test_files.sh | 9 --------- + tests/test_scripts.sh | 6 ------ + 3 files changed, 25 deletions(-) + +commit 82fcb7cfc17ce62f79ebc7ca2374e1daca5e4d5e +Author: Lasse Collin +Date: 2022-10-19 17:14:57 +0300 + + Tests: Fix a warning in test_memlimit.c when decoders are disabled. + + tests/test_memlimit.c | 3 +++ + 1 file changed, 3 insertions(+) + +commit b5f8271b45b9b0e59485ffba3640ca3418835ec4 +Author: Lasse Collin +Date: 2022-10-19 17:11:46 +0300 + + Tests: Add test_memlimit to .gitignore. + + Thanks to Jia Tan. + + .gitignore | 1 + + 1 file changed, 1 insertion(+) + +commit 6a86e81cab202d0a812a7b2e9efacaf70c58ba38 +Author: Jia Tan +Date: 2022-10-06 21:53:09 +0300 + + Tests: Refactor test_stream_flags.c. + + Converts test_stream_flags to tuktest. Also the test will now + compile and skip properly if encoders or decoders are disabled. + + Thanks to Sebastian Andrzej Siewior. + + tests/test_stream_flags.c | 533 ++++++++++++++++++++++++++++++++++++---------- + 1 file changed, 416 insertions(+), 117 deletions(-) + +commit 827ac5b4821491fd3afe0d0e1ddac326253aeb66 +Author: Jia Tan +Date: 2022-10-06 17:00:38 +0800 + + Tests: Refactor test_block_header.c. + + test_block_header now achieves higher test coverage. Also the + test will now compile and skip properly if encoders or decoders + are disabled. + + Thanks to Sebastian Andrzej Siewior. + + tests/test_block_header.c | 486 +++++++++++++++++++++++++++++++++++----------- + 1 file changed, 370 insertions(+), 116 deletions(-) + +commit 84963318952064a93bfc52edd6b0ef70593384ee +Author: Jia Tan +Date: 2022-10-05 23:54:12 +0800 + + Tests: Fix compilation issues. + + test_bcj_exact_size, test_check, test_hardware, and test_index will + all now compile and skip properly if encoders or decoders are disabled. + + Also fixed a small typo (disabed -> disabled). + + Thanks to Sebastian Andrzej Siewior. + + tests/test_bcj_exact_size.c | 20 ++++++++++++++------ + tests/test_check.c | 8 +++++++- + tests/test_hardware.c | 2 +- + tests/test_index.c | 6 ++++++ + tests/test_memlimit.c | 16 +++++++++++++++- + tests/test_vli.c | 13 +++++++++++++ + 6 files changed, 56 insertions(+), 9 deletions(-) + +commit 7dcabeec63d46b436fa5f043c3d1f09d0e15be16 +Author: Lasse Collin +Date: 2022-10-05 16:20:47 +0300 + + Tests: Include mythread.h in the tests that use MYTHREAD_ENABLED. + + tests/test_check.c | 1 + + tests/test_hardware.c | 1 + + tests/test_memlimit.c | 1 + + 3 files changed, 3 insertions(+) + +commit 14af758a770c7781af18fb66d6d21ee5b1c27f04 +Author: Jia Tan +Date: 2022-10-05 20:57:16 +0800 + + liblzma: Fix a compilation issue when encoders are disabled. + + When encoders were disabled and threading enabled, outqueue.c and + outqueue.h were not compiled. The multi threaded decoder required + these files, so compilation failed. + + src/liblzma/common/Makefile.inc | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +commit 6ca5c354bd4620aa7f81da68870eef1b1f26288f +Author: Jia Tan +Date: 2022-10-05 16:41:38 +0800 + + Tests: Fix compilation error when threading support has been disabled. + + Now tests that require threading are skipped when threading + support has been disabled. + + Thanks to Sebastian Andrzej Siewior. + + tests/test_check.c | 4 ++++ + tests/test_hardware.c | 4 ++++ + tests/test_memlimit.c | 4 ++++ + 3 files changed, 12 insertions(+) + +commit fae37ad2affd8fe8871f4ff93d5cab5ec14d5e58 +Author: Lasse Collin +Date: 2022-10-05 14:26:00 +0300 + + tuklib_integer: Add 64-bit endianness-converting reads and writes. + + Also update the comment in liblzma's memcmplen.h. + + Thanks to Michał Górny for the original patch for the reads. + + m4/tuklib_integer.m4 | 8 ++++---- + src/common/tuklib_integer.h | 46 ++++++++++++++++++++++++++++++++++++++++-- + src/liblzma/common/memcmplen.h | 9 +++------ + 3 files changed, 51 insertions(+), 12 deletions(-) + +commit 508a44372c5b0dede8863fd0d358d4a9d8645c95 +Author: Lasse Collin +Date: 2022-09-30 12:06:13 +0300 + + liblzma: Add API doc note about the .xz decoder LZMA_MEMLIMIT_ERROR bug. + + The bug was fixed in 660739f99ab211edec4071de98889fb32ed04e98. + + src/liblzma/api/lzma/base.h | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +commit 8cc9874a7974cd575aee44f218836f7acdbeb0ed +Author: Jia Tan +Date: 2022-09-21 16:15:50 +0800 + + liblzma: Add dest and src NULL checks to lzma_index_cat. + + The documentation states LZMA_PROG_ERROR can be returned from + lzma_index_cat. Previously, lzma_index_cat could not return + LZMA_PROG_ERROR. Now, the validation is similar to + lzma_index_append, which does a NULL check on the index + parameter. + + src/liblzma/common/index.c | 3 +++ + 1 file changed, 3 insertions(+) + +commit afd5a8bf5374eba82804a999e1ea7af680784086 +Author: Jia Tan +Date: 2022-09-21 20:29:28 +0800 + + Tests: Create a test for the lzma_index_cat bug. + + tests/test_index.c | 43 ++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 42 insertions(+), 1 deletion(-) + +commit 3d5a99ca373a4e86faf671226ca6487febb9eeac +Author: Jia Tan +Date: 2022-09-21 19:28:53 +0800 + + liblzma: Fix copying of check type statistics in lzma_index_cat(). + + The check type of the last Stream in dest was never copied to + dest->checks (the code tried to copy it but it was done too late). + This meant that the value returned by lzma_index_checks() would + only include the check type of the last Stream when multiple + lzma_indexes had been concatenated. + + In xz --list this meant that the summary would only list the + check type of the last Stream, so in this sense this was only + a visual bug. However, it's possible that some applications + use this information for purposes other than merely showing + it to the users in an informational message. I'm not aware of + such applications though and it's quite possible that such + applications don't exist. + + Regular streamed decompression in xz or any other application + doesn't use lzma_index_cat() and so this bug cannot affect them. + + src/liblzma/common/index.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +commit a61d32172789735350a941e23baf6b587c49e5d9 +Author: Lasse Collin +Date: 2022-09-28 12:20:41 +0300 + + tuklib_physmem: Fix Unicode builds on Windows. + + Thanks to ArSaCiA Game. + + src/common/tuklib_physmem.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 5a4d3548ab214fdca364d5c734baf1d1fab47308 +Author: Lasse Collin +Date: 2022-09-28 11:12:07 +0300 + + Tests: Add test_memlimit.c to test restarting after LZMA_MEMLIMIT_ERROR. + + tests/Makefile.am | 2 + + tests/test_memlimit.c | 151 ++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 153 insertions(+) + +commit 660739f99ab211edec4071de98889fb32ed04e98 +Author: Lasse Collin +Date: 2022-09-28 11:05:15 +0300 + + liblzma: Stream decoder: Fix restarting after LZMA_MEMLIMIT_ERROR. + + If lzma_code() returns LZMA_MEMLIMIT_ERROR it is now possible + to use lzma_memlimit_set() to increase the limit and continue + decoding. This was supposed to work from the beginning but + there was a bug. With other decoders (.lzma or threaded .xz) + this already worked correctly. + + src/liblzma/common/stream_decoder.c | 16 +++++++++++++--- + 1 file changed, 13 insertions(+), 3 deletions(-) + +commit 7e68fda58c74ad9e5b876cc22fcbe80fc0e4747b +Author: Lasse Collin +Date: 2022-09-28 11:00:23 +0300 + + liblzma: Stream decoder: Fix comments. + + src/liblzma/common/stream_decoder.c | 12 +++++------- + 1 file changed, 5 insertions(+), 7 deletions(-) + +commit f664cb25841fc1c478b819034a224a558e2ac6e7 +Author: Lasse Collin +Date: 2022-09-20 16:58:22 +0300 + + liblzma: ARM64: Add comments. + + src/liblzma/simple/arm64.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +commit b557b4a0eea05470fae8ba5ef4ad5a6dfb36ac41 +Author: Lasse Collin +Date: 2022-09-20 16:27:50 +0300 + + liblzma: ARM64: Fix wrong comment in API doc. + + Thanks to Jia Tan. + + src/liblzma/api/lzma/bcj.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit d5b0906fa55157f48c200188a3951d80df9cb308 +Author: Lasse Collin +Date: 2022-09-19 20:24:26 +0300 + + xz: Add --experimental-arm64[=width=WIDTH]. + + It will be renamed to --arm64 once it is stable. + + Man page or --long-help weren't updated yet. + + src/xz/args.c | 7 +++++++ + src/xz/message.c | 7 +++++++ + src/xz/options.c | 39 +++++++++++++++++++++++++++++++++++++++ + src/xz/options.h | 7 +++++++ + 4 files changed, 60 insertions(+) + +commit ecb966de308c255bb4735a7307ef9901c643a9de +Author: Lasse Collin +Date: 2022-09-19 19:34:56 +0300 + + liblzma: Add experimental ARM64 BCJ filter with a temporary Filter ID. + + That is, the Filter ID will be changed once the design is final. + The current version will be removed. So files created with the + tempoary Filter ID won't be supported in the future. + + CMakeLists.txt | 3 + + configure.ac | 4 +- + src/liblzma/api/lzma/bcj.h | 35 +++++- + src/liblzma/common/filter_common.c | 9 ++ + src/liblzma/common/filter_decoder.c | 8 ++ + src/liblzma/common/filter_encoder.c | 11 ++ + src/liblzma/simple/Makefile.inc | 4 + + src/liblzma/simple/arm64.c | 227 ++++++++++++++++++++++++++++++++++++ + src/liblzma/simple/simple_coder.h | 9 ++ + src/liblzma/simple/simple_decoder.h | 4 + + src/liblzma/simple/simple_encoder.h | 2 + + 11 files changed, 313 insertions(+), 3 deletions(-) + +commit 177bdc922cb17bd0fd831ab8139dfae912a5c2b8 +Author: Lasse Collin +Date: 2022-09-17 22:42:18 +0300 + + liblzma: Simple/BCJ filters: Allow disabling generic BCJ options. + + This will be needed for the ARM64 BCJ filter as it will use + its own options struct. + + src/liblzma/simple/arm.c | 2 +- + src/liblzma/simple/armthumb.c | 2 +- + src/liblzma/simple/ia64.c | 2 +- + src/liblzma/simple/powerpc.c | 2 +- + src/liblzma/simple/simple_coder.c | 4 ++-- + src/liblzma/simple/simple_private.h | 2 +- + src/liblzma/simple/sparc.c | 2 +- + src/liblzma/simple/x86.c | 3 ++- + 8 files changed, 10 insertions(+), 9 deletions(-) + +commit c3592d0a55114144686ecf960cb516d6b31c98e9 +Author: Lasse Collin +Date: 2022-09-16 17:08:53 +0300 + + Tests: Add a test file for lzma_index_append() integer overflow bug. + + This test fails before commit 18d7facd3802b55c287581405c4d49c98708c136. + + test_files.sh now runs xz -l for bad-3-index-uncomp-overflow.xz + because only then the previously-buggy code path gets tested. + Normal decompression doesn't use lzma_index_append() at all. + Instead, lzma_index_hash functions are used and those already + did the overflow check. + + tests/files/README | 10 ++++++++++ + tests/files/bad-3-index-uncomp-overflow.xz | Bin 0 -> 132 bytes + tests/test_files.sh | 8 ++++++++ + 3 files changed, 18 insertions(+) + +commit 982b29f828079a2a26253a40e975127a40a7d2bd +Author: Lasse Collin +Date: 2022-09-16 15:10:07 +0300 + + Translations: Add Turkish translation. + + po/LINGUAS | 1 + + po/tr.po | 977 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 978 insertions(+) + +commit 1fc088d9f6d1697924aaeac8cd1fb9918d1532e2 +Author: Lasse Collin +Date: 2022-09-16 14:09:07 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 097c7b67ce86ff16a7cef7631b39e5ca4ee3d420 +Author: Lasse Collin +Date: 2022-09-16 14:07:03 +0300 + + xzgrep: Fix compatibility with old shells. + + Running the current xzgrep on Slackware 10.1 with GNU bash 3.00.15: + + xzgrep: line 231: syntax error near unexpected token `;;' + + On SCO OpenServer 5.0.7 with Korn Shell 93r: + + syntax error at line 231 : `;;' unexpected + + Turns out that some old shells don't like apostrophes (') inside + command substitutions. For example, the following fails: + + x=$(echo foo + # asdf'zxcv + echo bar) + printf '%s\n' "$x" + + The problem was introduced by commits + 69d1b3fc29677af8ade8dc15dba83f0589cb63d6 (2022-03-29), + bd7b290f3fe4faeceb7d3497ed9bf2e6ed5e7dc5 (2022-07-18), and + a648978b20495b7aa4a8b029c5a810b5ad9d08ff (2022-07-19). + 5.2.6 is the only stable release that included + this problem. + + Thanks to Kevin R. Bulgrien for reporting the problem + on SCO OpenServer 5.0.7 and for providing the fix. + + src/scripts/xzgrep.in | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit f2d084fe3f0d6d71488bfc6987f26542f67bfd99 +Author: Lasse Collin +Date: 2022-09-09 14:12:30 +0300 + + Tests: Silence warnings about unused functions from tuktest.h. + + Warnings about unused tuktest_run_test conveniently tell which + test programs haven't been converted to tuktest.h yet but I + silenced that warning too for now anyway. + + It is fine to use __attribute__((__unused__)) even when the + function is actually used because the attribute only means + that the function might be unused. + + tests/tuktest.h | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +commit f8ee61e74eb40600445fdb601c374d582e1e9c8a +Author: Lasse Collin +Date: 2022-09-09 13:51:57 +0300 + + liblzma: lzma_filters_copy: Keep dest[] unmodified if an error occurs. + + lzma_stream_encoder() and lzma_stream_encoder_mt() always assumed + this. Before this patch, failing lzma_filters_copy() could result + in free(invalid_pointer) or invalid memory reads in stream_encoder.c + or stream_encoder_mt.c. + + To trigger this, allocating memory for a filter options structure + has to fail. These are tiny allocations so in practice they very + rarely fail. + + Certain badness in the filter chain array could also make + lzma_filters_copy() fail but both stream_encoder.c and + stream_encoder_mt.c validate the filter chain before + trying to copy it, so the crash cannot occur this way. + + src/liblzma/api/lzma/filter.h | 4 +++- + src/liblzma/common/filter_common.c | 18 ++++++++++++------ + 2 files changed, 15 insertions(+), 7 deletions(-) + +commit 18d7facd3802b55c287581405c4d49c98708c136 +Author: Jia Tan +Date: 2022-09-02 20:18:55 +0800 + + liblzma: lzma_index_append: Add missing integer overflow check. + + The documentation in src/liblzma/api/lzma/index.h suggests that + both the unpadded (compressed) size and the uncompressed size + are checked for overflow, but only the unpadded size was checked. + The uncompressed check is done first since that is more likely to + occur than the unpadded or index field size overflows. + + src/liblzma/common/index.c | 4 ++++ + 1 file changed, 4 insertions(+) + +commit 9ac06cb5b85274d18f9f70d82cf2d8c9c1151bd4 +Author: Lasse Collin +Date: 2022-09-08 15:11:08 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit ba3e4ba2de034ae93a513f9c3a0823b80cdb66dc +Author: Jia Tan +Date: 2022-09-08 15:07:00 +0300 + + CMake: Clarify a comment about Windows symlinks without file extension. + + CMakeLists.txt | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +commit 17485e884ce5c74315f29a8a1507bc706cd5cd1d +Author: Lasse Collin +Date: 2022-09-08 15:02:41 +0300 + + CMake: Update for liblzma_*.map files and fix wrong common_w32res.rc dep. + + The previous commit split liblzma.map into liblzma_linux.map and + liblzma_generic.map. This commit updates the CMake build for those. + + common_w32res.rc dependency was listed under Linux/FreeBSD while + obviously it belongs to Windows when building a DLL. + + CMakeLists.txt | 24 +++++++++++++++++++----- + 1 file changed, 19 insertions(+), 5 deletions(-) + +commit 913ddc5572b9455fa0cf299be2e35c708840e922 +Author: Lasse Collin +Date: 2022-09-04 23:23:00 +0300 + + liblzma: Vaccinate against an ill patch from RHEL/CentOS 7. + + RHEL/CentOS 7 shipped with 5.1.2alpha, including the threaded + encoder that is behind #ifdef LZMA_UNSTABLE in the API headers. + In 5.1.2alpha these symbols are under XZ_5.1.2alpha in liblzma.map. + API/ABI compatibility tracking isn't done between development + releases so newer releases didn't have XZ_5.1.2alpha anymore. + + Later RHEL/CentOS 7 updated xz to 5.2.2 but they wanted to keep + the exported symbols compatible with 5.1.2alpha. After checking + the ABI changes it turned out that >= 5.2.0 ABI is backward + compatible with the threaded encoder functions from 5.1.2alpha + (but not vice versa as fixes and extensions to these functions + were made between 5.1.2alpha and 5.2.0). + + In RHEL/CentOS 7, XZ Utils 5.2.2 was patched with + xz-5.2.2-compat-libs.patch to modify liblzma.map: + + - XZ_5.1.2alpha was added with lzma_stream_encoder_mt and + lzma_stream_encoder_mt_memusage. This matched XZ Utils 5.1.2alpha. + + - XZ_5.2 was replaced with XZ_5.2.2. It is clear that this was + an error; the intention was to keep using XZ_5.2 (XZ_5.2.2 + has never been used in XZ Utils). So XZ_5.2.2 lists all + symbols that were listed under XZ_5.2 before the patch. + lzma_stream_encoder_mt and _mt_memusage are included too so + they are listed both here and under XZ_5.1.2alpha. + + The patch didn't add any __asm__(".symver ...") lines to the .c + files. Thus the resulting liblzma.so exports the threaded encoder + functions under XZ_5.1.2alpha only. Listing the two functions + also under XZ_5.2.2 in liblzma.map has no effect without + matching .symver lines. + + The lack of XZ_5.2 in RHEL/CentOS 7 means that binaries linked + against unpatched XZ Utils 5.2.x won't run on RHEL/CentOS 7. + This is unfortunate but this alone isn't too bad as the problem + is contained within RHEL/CentOS 7 and doesn't affect users + of other distributions. It could also be fixed internally in + RHEL/CentOS 7. + + The second problem is more serious: In XZ Utils 5.2.2 the API + headers don't have #ifdef LZMA_UNSTABLE for obvious reasons. + This is true in RHEL/CentOS 7 version too. Thus now programs + using new APIs can be compiled without an extra #define. However, + the programs end up depending on symbol version XZ_5.1.2alpha + (and possibly also XZ_5.2.2) instead of XZ_5.2 as they would + with an unpatched XZ Utils 5.2.2. This means that such binaries + won't run on other distributions shipping XZ Utils >= 5.2.0 as + they don't provide XZ_5.1.2alpha or XZ_5.2.2; they only provide + XZ_5.2 (and XZ_5.0). (This includes RHEL/CentOS 8 as the patch + luckily isn't included there anymore with XZ Utils 5.2.4.) + + Binaries built by RHEL/CentOS 7 users get distributed and then + people wonder why they don't run on some other distribution. + Seems that people have found out about the patch and been copying + it to some build scripts, seemingly curing the symptoms but + actually spreading the illness further and outside RHEL/CentOS 7. + + The ill patch seems to be from late 2016 (RHEL 7.3) and in 2017 it + had spread at least to EasyBuild. I heard about the events only + recently. :-( + + This commit splits liblzma.map into two versions: one for + GNU/Linux and another for other OSes that can use symbol versioning + (FreeBSD, Solaris, maybe others). The Linux-specific file and the + matching additions to .c files add full compatibility with binaries + that have been built against a RHEL/CentOS-patched liblzma. Builds + for OSes other than GNU/Linux won't get the vaccine as they should + be immune to the problem (I really hope that no build script uses + the RHEL/CentOS 7 patch outside GNU/Linux). + + The RHEL/CentOS compatibility symbols XZ_5.1.2alpha and XZ_5.2.2 + are intentionally put *after* XZ_5.2 in liblzma_linux.map. This way + if one forgets to #define HAVE_SYMBOL_VERSIONS_LINUX when building, + the resulting liblzma.so.5 will have lzma_stream_encoder_mt@@XZ_5.2 + since XZ_5.2 {...} is the first one that lists that function. + Without HAVE_SYMBOL_VERSIONS_LINUX @XZ_5.1.2alpha and @XZ_5.2.2 + will be missing but that's still a minor problem compared to + only having lzma_stream_encoder_mt@@XZ_5.1.2alpha! + + The "local: *;" line was moved to XZ_5.0 so that it doesn't need + to be moved around. It doesn't matter where it is put. + + Having two similar liblzma_*.map files is a bit silly as it is, + at least for now, easily possible to generate the generic one + from the Linux-specific file. But that adds extra steps and + increases the risk of mistakes when supporting more than one + build system. So I rather maintain two files in parallel and let + validate_map.sh check that they are in sync when "make mydist" + is run. + + This adds .symver lines for lzma_stream_encoder_mt@XZ_5.2.2 and + lzma_stream_encoder_mt_memusage@XZ_5.2.2 even though these + weren't exported by RHEL/CentOS 7 (only @@XZ_5.1.2alpha was + for these two). I added these anyway because someone might + misunderstand the RHEL/CentOS 7 patch and think that @XZ_5.2.2 + (@@XZ_5.2.2) versions were exported too. + + At glance one could suggest using __typeof__ to copy the function + prototypes when making aliases. However, this doesn't work trivially + because __typeof__ won't copy attributes (lzma_nothrow, lzma_pure) + and it won't change symbol visibility from hidden to default (done + by LZMA_API()). Attributes could be copied with __copy__ attribute + but that needs GCC 9 and a fallback method would be needed anyway. + + This uses __symver__ attribute with GCC >= 10 and + __asm__(".symver ...") with everything else. The attribute method + is required for LTO (-flto) support with GCC. Using -flto with + GCC older than 10 is now broken on GNU/Linux and will not be fixed + (can silently result in a broken liblzma build that has dangerously + incorrect symbol versions). LTO builds with Clang seem to work + with the traditional __asm__(".symver ...") method. + + Thanks to Boud Roukema for reporting the problem and discussing + the details and testing the fix. + + configure.ac | 23 +++- + src/liblzma/Makefile.am | 10 +- + src/liblzma/common/block_buffer_encoder.c | 18 ++++ + src/liblzma/common/common.c | 14 +++ + src/liblzma/common/common.h | 28 +++++ + src/liblzma/common/hardware_cputhreads.c | 12 +++ + src/liblzma/common/stream_encoder_mt.c | 42 ++++++++ + src/liblzma/{liblzma.map => liblzma_generic.map} | 6 +- + src/liblzma/liblzma_linux.map | 131 +++++++++++++++++++++++ + src/liblzma/validate_map.sh | 113 +++++++++++++++++-- + 10 files changed, 382 insertions(+), 15 deletions(-) + +commit 80a1a8bb838842a2be343bd88ad1462c21c5e2c9 +Author: Lasse Collin +Date: 2022-08-31 16:42:04 +0300 + + CMake: Add xz symlinks. + + These are a minor thing especially since the xz build has + some real problems still like lack of large file support + on 32-bit systems but I'll commit this since the code exists. + + Thanks to Jia Tan. + + CMakeLists.txt | 38 +++++++++++++++++++++++++++++++++++++- + 1 file changed, 37 insertions(+), 1 deletion(-) + +commit a4193bb6d85d7765b1b87faeab3e50106d3ab2e9 +Author: Lasse Collin +Date: 2022-08-31 16:29:38 +0300 + + CMake: Put xz man page install under if(UNIX) like is for xzdec. + + Thanks to Jia Tan. + + CMakeLists.txt | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +commit c1555b1a221a1427d4d650647531016d754bc4da +Author: Lasse Collin +Date: 2022-08-22 18:16:40 +0300 + + Bump version number for 5.3.3alpha. + + src/liblzma/api/lzma/version.h | 2 +- + src/liblzma/liblzma.map | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit 44fedddc11c3f6ec2f7fe35a3e38f15ca93f90eb +Author: Lasse Collin +Date: 2022-08-22 18:13:56 +0300 + + Add NEWS for 5.3.3alpha. + + NEWS | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 119 insertions(+) + +commit a93e235d7ca764cc19f8f9f9063b40ff361c3cfa +Author: Lasse Collin +Date: 2022-07-12 17:59:41 +0300 + + Translations: Add Portuguese translation. + + Jia Tan made white-space changes and also changed "Language: pt_BR\n" + to pt. The translator wasn't reached so I'm hoping these changes + are OK and will commit it without translator's approval. + + Thanks to Pedro Albuquerque and Jia Tan. + + po/LINGUAS | 1 + + po/pt.po | 1001 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 1002 insertions(+) + +commit e7cf5a946f25e40d77f45e41f0dee7d42a04e9ae +Author: Lasse Collin +Date: 2022-07-10 21:16:40 +0300 + + Translations: Add Serbian translation. + + Quite a few white-space changes were made by Jia Tan to make + this look good. Contacting the translator didn't succeed so + I'm committing this without getting translator's approval. + + Thanks to ŠœŠøŃ€Š¾ŃŠ»Š°Š² ŠŠøŠŗŠ¾Š»ŠøŃ› (Miroslav Nikolic) and Jia Tan. + + po/LINGUAS | 1 + + po/sr.po | 987 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 988 insertions(+) + +commit cc8617ab53b1f2a4da212fa76c92fe538269c5de +Author: Lasse Collin +Date: 2022-07-04 23:51:36 +0300 + + Translations: Add Swedish translation. + + Thanks to Sebastian Rasmussen and Jia Tan. + + po/LINGUAS | 1 + + po/sv.po | 983 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 984 insertions(+) + +commit c613598c358b640682d0ca2aed38fa7df763e8c7 +Author: Lasse Collin +Date: 2022-07-04 23:40:27 +0300 + + Translations: Add Esperanto translation. + + Thanks to Keith Bowes and Jia Tan. + + po/LINGUAS | 1 + + po/eo.po | 984 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 985 insertions(+) + +commit 659a587d678f21e98e91d2751c31d4ce050c081a +Author: Lasse Collin +Date: 2022-07-01 00:22:33 +0300 + + Translations: Add Catalan translation. + + Thanks to Jordi Mas and Jia Tan. + + po/LINGUAS | 1 + + po/ca.po | 1076 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 1077 insertions(+) + +commit 739fd8c9bdf1d85f57d56642aad87148d4779530 +Author: Lasse Collin +Date: 2022-06-30 17:47:08 +0300 + + Translations: Add Ukrainian translation. + + Thanks to Yuri Chornoivan and Jia Tan. + + po/LINGUAS | 1 + + po/uk.po | 996 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 997 insertions(+) + +commit 73280550b111930c62a667e56add8fd574f80bc8 +Author: Lasse Collin +Date: 2022-06-30 17:45:26 +0300 + + Translators: Add Romanian translation. + + Thanks to Remus-Gabriel Chelu and Jia Tan. + + po/LINGUAS | 1 + + po/ro.po | 1016 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 1017 insertions(+) + +commit 2465f5b825152714b2c357d96c2422c31109d320 +Author: Lasse Collin +Date: 2022-06-29 18:33:32 +0300 + + Translations: Update Brazilian Portuguese translation. + + One msgstr was changed. The diff is long due to changes + in the source code line numbers in the comments. + + Thanks to Rafael Fontenelle. + + po/pt_BR.po | 186 ++++++++++++++++++++++++++++++------------------------------ + 1 file changed, 92 insertions(+), 94 deletions(-) + +commit 434e1ffd3e62719d509da10b646216f5ef53fe4d +Author: Lasse Collin +Date: 2022-06-29 18:04:44 +0300 + + Translations: Add Croatian translation. + + Thanks to Božidar Putanec and Jia Tan. + + po/LINGUAS | 1 + + po/hr.po | 987 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 988 insertions(+) + +commit 0732d0f7065c9bd48bfe4f5983144ae970c4a499 +Author: Lasse Collin +Date: 2022-06-29 17:58:48 +0300 + + Translations: Add Spanish translation. + + Thanks to Cristian Othón MartĆ­nez Vera and Jia Tan. + + po/LINGUAS | 1 + + po/es.po | 984 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 985 insertions(+) + +commit 9899b0f82bc130998d1f1f618a6ab805b73f2696 +Author: Lasse Collin +Date: 2022-06-29 17:49:43 +0300 + + Translations: Add Korean translation. + + Thanks to Seong-ho Cho and Jia Tan. + + po/LINGUAS | 1 + + po/ko.po | 972 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 973 insertions(+) + +commit 65217eaf6bd195f3ef027d4ac55d57b7d133d69f +Author: Lasse Collin +Date: 2020-03-16 21:57:21 +0200 + + Translations: Rebuild cs.po to avoid incorrect fuzzy strings. + + "make dist" updates the .po files and the fuzzy strings would + result in multiple very wrong translations. + + po/cs.po | 592 ++++++++++++++++++++++++++++++++++----------------------------- + 1 file changed, 322 insertions(+), 270 deletions(-) + +commit e56ff423ee7af9e648e16b132f0d835d2cb4db26 +Author: Lasse Collin +Date: 2020-03-16 17:30:39 +0200 + + Translations: Add partial Danish translation. + + I made a few minor white space changes without getting them + approved by the Danish translation team. + + po/LINGUAS | 1 + + po/da.po | 896 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 897 insertions(+) + +commit 43e09c62e77cb8807d932c81de4decbdb956e184 +Author: Lasse Collin +Date: 2020-03-11 22:37:54 +0200 + + Translations: Add hu, zh_CN, and zh_TW. + + I made a few white space changes to these without getting them + approved by the translation teams. (I tried to contact the hu and + zh_TW teams but didn't succeed. I didn't contact the zh_CN team.) + + po/LINGUAS | 3 + + po/hu.po | 985 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + po/zh_CN.po | 963 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + po/zh_TW.po | 956 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 4 files changed, 2907 insertions(+) + +commit 982b6b198ae1ffe6093236dd8a3d03d1415b912b +Author: Lasse Collin +Date: 2020-03-11 14:33:30 +0200 + + Translations: Update vi.po to match the file from the TP. + + The translated strings haven't been updated but word wrapping + is different. + + po/vi.po | 407 ++++++++++++++++++++++++++++----------------------------------- + 1 file changed, 179 insertions(+), 228 deletions(-) + +commit 801f39691fc4abc6dd33d7653d498781b593f3eb +Author: Lasse Collin +Date: 2020-03-11 14:18:03 +0200 + + Translations: Add fi and pt_BR, and update de, fr, it, and pl. + + The German translation isn't identical to the file in + the Translation Project but the changes (white space changes + only) were approved by the translator Mario BlƤttermann. + + po/LINGUAS | 2 + + po/de.po | 476 ++++++++++++++-------------- + po/fi.po | 974 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + po/fr.po | 272 ++++++++-------- + po/it.po | 479 ++++++++++++---------------- + po/pl.po | 239 +++++++------- + po/pt_BR.po | 1001 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 7 files changed, 2697 insertions(+), 746 deletions(-) + +commit 311e4f85ede5d2f0bb71f3ad70b5b7db1b5adf33 +Author: Lasse Collin +Date: 2022-08-22 17:27:19 +0300 + + xz: Try to clarify --memlimit-mt-decompress vs. --memlimit-compress. + + src/xz/xz.1 | 31 +++++++++++++++++++------------ + 1 file changed, 19 insertions(+), 12 deletions(-) + +commit df23c31000283c00e5ef1ca32a0bc3bb757bd707 +Author: Lasse Collin +Date: 2022-08-22 16:46:18 +0300 + + CMake: Add liblzma tests. + + Thanks to Jia Tan for the patch. + + CMakeLists.txt | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 52 insertions(+), 1 deletion(-) + +commit 02a777f9c422d3b5ec895078530bb1a2b6f7bdf5 +Author: Lasse Collin +Date: 2022-08-19 23:32:22 +0300 + + xz: Revise --info-memory output. + + The strings could be more descriptive but it's good + to have some version of this committed now. + + --robot mode wasn't changed yet. + + src/xz/hardware.c | 32 ++++++++++++++++++++++++++------ + src/xz/xz.1 | 1 + + 2 files changed, 27 insertions(+), 6 deletions(-) + +commit f864f6d42eab57ea8ed82cc2dd19a03b51377442 +Author: Lasse Collin +Date: 2022-08-19 23:12:02 +0300 + + xz: Update the man page for threaded decompression and memlimits. + + This documents the changes made in commits + 6c6da57ae2aa962aabde6892442227063d87e88c, + cad299008cf73ec566f0662a9cf2b94f86a99659, and + 898faa97287a756231c663a3ed5165672b417207. + + The --info-memory bit hasn't been finished yet + even though it's already mentioned in this commit + under --memlimit-mt-decompress and --threads. + + src/xz/xz.1 | 148 +++++++++++++++++++++++++++++++++++++++++++++++++----------- + 1 file changed, 121 insertions(+), 27 deletions(-) + +commit d13bfcc0056617dd648f655a01653932fad7067f +Author: Lasse Collin +Date: 2022-08-18 17:49:16 +0300 + + Build: Include the CMake files in the distribution. + + This was supposed to be done in 2020 with 5.2.5 release + already but it was noticed only today. 5.2.5 and 5.2.6 + even mention experiemental CMake support in the NEWS entries. + + Thanks to Olivier B. for reporting the problem. + + Makefile.am | 2 ++ + 1 file changed, 2 insertions(+) + +commit e66787bcfefdb93f19c974f895f65969a77937b0 +Author: Lasse Collin +Date: 2022-08-18 17:38:05 +0300 + + Windows: Fix broken liblzma.dll build with Visual Studio project files. + + The bug was introduced in 352ba2d69af2136bc814aa1df1a132559d445616 + "Windows: Fix building of resource files when config.h isn't used." + + That commit fixed liblzma.dll build with CMake while keeping it + working with Autotools on Windows but the VS project files were + forgotten. + + I haven't tested these changes. + + Thanks to Olivier B. for reporting the bug and for the initial patch. + + windows/vs2013/liblzma_dll.vcxproj | 6 ++++++ + windows/vs2017/liblzma_dll.vcxproj | 6 ++++++ + windows/vs2019/liblzma_dll.vcxproj | 6 ++++++ + 3 files changed, 18 insertions(+) + +commit c4e8e5fb311225b8b48d34157891a640b2535e0c +Author: Lasse Collin +Date: 2022-08-18 17:16:49 +0300 + + liblzma: Threaded decoder: Improve LZMA_FAIL_FAST when LZMA_FINISH is used. + + It will now return LZMA_DATA_ERROR (not LZMA_OK or LZMA_BUF_ERROR) + if LZMA_FINISH is used and there isn't enough input to finish + decoding the Block Header or the Block. The use of LZMA_DATA_ERROR + is simpler and the less risky than LZMA_BUF_ERROR but this might + be changed before 5.4.0. + + src/liblzma/api/lzma/container.h | 6 +++++ + src/liblzma/common/stream_decoder_mt.c | 42 ++++++++++++++++++++++++++++++++++ + 2 files changed, 48 insertions(+) + +commit 6dcf606e7efa2b259f0262f9e2f61e00116842d3 +Author: Lasse Collin +Date: 2022-08-12 18:31:47 +0300 + + Add NEWS for 5.2.6. + + NEWS | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 121 insertions(+) + +commit 413b86fcf8934fae5a004f378a9483d37d8fcaab +Author: Lasse Collin +Date: 2022-08-12 14:28:41 +0300 + + Add Jia Tan to AUTHORS. + + AUTHORS | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 352672732c346c546ff3c26d0605bc0ed1c8b7c7 +Author: Lasse Collin +Date: 2022-07-25 19:28:26 +0300 + + Build: Start the generated ChangeLog from around 5.2.0 instead of 5.0.0. + + This makes ChangeLog smaller. + + Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 6f6d11225d6016be2bbb55d845b66f6b04d048df +Author: Lasse Collin +Date: 2022-07-25 19:11:05 +0300 + + Translations: Change the copyright comment string to use with po4a. + + This affects the second line in po4a/xz-man.pot. The man pages of + xzdiff, xzgrep, and xzmore are from GNU gzip and under GNU GPLv2+ + while the rest of the man pages are in the public domain. + + po4a/update-po | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 61f8ec804abdb4c5dac01e8ae9b90c7be58a5c24 +Author: Jia Tan +Date: 2022-07-25 18:30:05 +0300 + + liblzma: Refactor lzma_mf_is_supported() to use a switch-statement. + + src/liblzma/lz/lz_encoder.c | 32 ++++++++++++++------------------ + 1 file changed, 14 insertions(+), 18 deletions(-) + +commit 4d80b463a1251aa22eabc87d2732fec13b1adda6 +Author: Jia Tan +Date: 2022-07-25 18:20:01 +0300 + + Build: Don't allow empty LIST in --enable-match-finders=LIST. + + It's enforced only when a match finder is needed, that is, + when LZMA1 or LZMA2 encoder is enabled. + + configure.ac | 4 ++++ + 1 file changed, 4 insertions(+) + +commit 9cc721af5436908f2d5a828aebbc4050a32a3487 +Author: Lasse Collin +Date: 2022-07-24 13:27:48 +0300 + + xz: Update the man page that change to --keep will be in 5.2.6. + + src/xz/xz.1 | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit b81bf0c7d1873e52a4086a9abb494471d652cb55 +Author: Lasse Collin +Date: 2022-07-19 23:23:54 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 340cf1ec3927767046b8293a49da3db4e393f426 +Author: Nicholas Jackson +Date: 2022-07-17 17:39:23 -0700 + + CMake: Add missing source file to liblzma build + + CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +commit d796b6d7fdb8b7238b277056cf9146cce25db604 +Author: Lasse Collin +Date: 2022-07-19 23:19:49 +0300 + + xzgrep man page: Document exit statuses. + + src/scripts/xzgrep.1 | 15 ++++++++++++++- + 1 file changed, 14 insertions(+), 1 deletion(-) + +commit 923bf96b55e5216a6c8df9d8331934f54784390e +Author: Lasse Collin +Date: 2022-07-19 23:13:24 +0300 + + xzgrep: Improve error handling, especially signals. + + xzgrep wouldn't exit on SIGPIPE or SIGQUIT when it clearly + should have. It's quite possible that it's not perfect still + but at least it's much better. + + If multiple exit statuses compete, now it tries to pick + the largest of value. + + Some comments were added. + + The exit status handling of signals is still broken if the shell + uses values larger than 255 in $? to indicate that a process + died due to a signal ***and*** their "exit" command doesn't take + this into account. This seems to work well with the ksh and yash + versions I tried. However, there is a report in gzip/zgrep that + OpenSolaris 5.11 (not 5.10) has a problem with "exit" truncating + the argument to 8 bits: + + https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22900#25 + + Such a bug would break xzgrep but I didn't add a workaround + at least for now. 5.11 is old and I don't know if the problem + exists in modern descendants, or if the problem exists in other + ksh implementations in use. + + src/scripts/xzgrep.in | 72 +++++++++++++++++++++++++++++++++++++-------------- + 1 file changed, 53 insertions(+), 19 deletions(-) + +commit a648978b20495b7aa4a8b029c5a810b5ad9d08ff +Author: Lasse Collin +Date: 2022-07-19 00:10:55 +0300 + + xzgrep: Make the fix for ZDI-CAN-16587 more robust. + + I don't know if this can make a difference in the real world + but it looked kind of suspicious (what happens with sed + implementations that cannot process very long lines?). + At least this commit shouldn't make it worse. + + src/scripts/xzgrep.in | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +commit bd7b290f3fe4faeceb7d3497ed9bf2e6ed5e7dc5 +Author: Lasse Collin +Date: 2022-07-18 21:52:31 +0300 + + xzgrep: Use grep -H --label when available (GNU, *BSDs). + + It avoids the use of sed for prefixing filenames to output lines. + Using sed for that is slower and prone to security bugs so now + the sed method is only used as a fallback. + + This also fixes an actual bug: When grepping a binary file, + GNU grep nowadays prints its diagnostics to stderr instead of + stdout and thus the sed-method for prefixing the filename doesn't + work. So with this commit grepping binary files gives reasonable + output with GNU grep now. + + This was inspired by zgrep but the implementation is different. + + src/scripts/xzgrep.in | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +commit b56729af9f1a596e57aeefd7570d8d7dce5c9f52 +Author: Lasse Collin +Date: 2022-07-18 21:10:25 +0300 + + xzgrep: Use -e to specify the pattern to grep. + + Now we don't need the separate test for adding the -q option + as it can be added directly in the two places where it's needed. + + src/scripts/xzgrep.in | 12 ++++-------- + 1 file changed, 4 insertions(+), 8 deletions(-) + +commit bad61b5997e6647911974022bfb72f3d4818a594 +Author: Lasse Collin +Date: 2022-07-18 19:18:48 +0300 + + Scripts: Use printf instead of echo in a few places. + + It's a good habbit as echo has some portability corner cases + when the string contents can be anything. + + src/scripts/xzdiff.in | 6 +++--- + src/scripts/xzgrep.in | 4 ++-- + src/scripts/xzless.in | 4 ++-- + src/scripts/xzmore.in | 8 ++++---- + 4 files changed, 11 insertions(+), 11 deletions(-) + +commit 6a4a4a7d2667837dc824c26fcb19ed6ca5aff645 +Author: Lasse Collin +Date: 2022-07-17 21:36:25 +0300 + + xzgrep: Add more LC_ALL=C to avoid bugs with multibyte characters. + + Also replace one use of expr with printf. + + The rationale for LC_ALL=C was already mentioned in + 69d1b3fc29677af8ade8dc15dba83f0589cb63d6 that fixed a security + issue. However, unrelated uses weren't changed in that commit yet. + + POSIX says that with sed and such tools one should use LC_ALL=C + to ensure predictable behavior when strings contain byte sequences + that aren't valid multibyte characters in the current locale. See + under "Application usage" in here: + + https://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html + + With GNU sed invalid multibyte strings would work without this; + it's documented in its Texinfo manual. Some other implementations + aren't so forgiving. + + src/scripts/xzgrep.in | 14 ++++++++------ + 1 file changed, 8 insertions(+), 6 deletions(-) + +commit b48f9d615f2c2e8d2f6e253d0e48ee66d0652b68 +Author: Lasse Collin +Date: 2022-07-17 20:55:16 +0300 + + xzgrep: Fix parsing of certain options. + + Fix handling of "xzgrep -25 foo" (in GNU grep "grep -25 foo" is + an alias for "grep -C25 foo"). xzgrep would treat "foo" as filename + instead of as a pattern. This bug was fixed in zgrep in gzip in 2012. + + Add -E, -F, -G, and -P to the "no argument required" list. + + Add -X to "argument required" list. It is an + intentionally-undocumented GNU grep option so this isn't + an important option for xzgrep but it seems that other grep + implementations (well, those that I checked) don't support -X + so I hope this change is an improvement still. + + grep -d (grep --directories=ACTION) requires an argument. In + contrast to zgrep, I kept -d in the "no argument required" list + because it's not supported in xzgrep (or zgrep). This way + "xzgrep -d" gives an error about option being unsupported instead + of telling that it requires an argument. Both zgrep and xzgrep + tell that it's unsupported if an argument is specified. + + Add comments. + + src/scripts/xzgrep.in | 19 +++++++++++++++++-- + 1 file changed, 17 insertions(+), 2 deletions(-) + +commit 2d2201bc6315deda4d43625aa510972467bd51d4 +Author: Lasse Collin +Date: 2022-07-14 20:33:05 +0300 + + Tests: Add the .lzma files to test_files.sh. + + tests/test_files.sh | 20 ++++++++++++++++++++ + 1 file changed, 20 insertions(+) + +commit ce5549a591bf126300618879f5b24023351baff6 +Author: Lasse Collin +Date: 2022-07-14 19:37:42 +0300 + + Tests: Add .lzma test files. + + tests/files/README | 63 ++++++++++++++++----- + tests/files/bad-too_big_size-with_eopm.lzma | Bin 0 -> 37 bytes + tests/files/bad-too_small_size-without_eopm-1.lzma | Bin 0 -> 31 bytes + tests/files/bad-too_small_size-without_eopm-2.lzma | Bin 0 -> 31 bytes + tests/files/bad-too_small_size-without_eopm-3.lzma | Bin 0 -> 36 bytes + tests/files/bad-unknown_size-without_eopm.lzma | Bin 0 -> 31 bytes + tests/files/good-known_size-with_eopm.lzma | Bin 0 -> 37 bytes + tests/files/good-known_size-without_eopm.lzma | Bin 0 -> 31 bytes + tests/files/good-unknown_size-with_eopm.lzma | Bin 0 -> 37 bytes + 9 files changed, 50 insertions(+), 13 deletions(-) + +commit 107c93ee5cad51a6ea0cee471209bfe8d76deaa3 +Author: Lasse Collin +Date: 2022-07-14 18:12:38 +0300 + + liblzma: Rename a variable and improve a comment. + + src/liblzma/lzma/lzma_decoder.c | 13 +++++++++---- + 1 file changed, 9 insertions(+), 4 deletions(-) + +commit 511feb5eadb988d641b025d597f4fac7502003b8 +Author: Lasse Collin +Date: 2022-07-13 22:24:41 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 9595a3119b9faf0ce01375329cad8bbf85c35ea2 +Author: Lasse Collin +Date: 2022-07-13 22:24:07 +0300 + + liblzma: Add optional autodetection of LZMA end marker. + + Turns out that this is needed for .lzma files as the spec in + LZMA SDK says that end marker may be present even if the size + is stored in the header. Such files are rare but exist in the + real world. The code in liblzma is so old that the spec didn't + exist in LZMA SDK back then and I had understood that such + files weren't possible (the lzma tool in LZMA SDK didn't + create such files). + + This modifies the internal API so that LZMA decoder can be told + if EOPM is allowed even when the uncompressed size is known. + It's allowed with .lzma and not with other uses. + + Thanks to Karl Beldan for reporting the problem. + + doc/lzma-file-format.txt | 11 +++- + src/liblzma/common/alone_decoder.c | 2 +- + src/liblzma/common/microlzma_decoder.c | 2 +- + src/liblzma/lz/lz_decoder.c | 10 +++- + src/liblzma/lz/lz_decoder.h | 8 +-- + src/liblzma/lzma/lzma2_decoder.c | 2 +- + src/liblzma/lzma/lzma_decoder.c | 99 ++++++++++++++++++++++++---------- + 7 files changed, 95 insertions(+), 39 deletions(-) + +commit 0c0f8e9761eb6eaf199082cf144db7ac5f9d8cb2 +Author: Lasse Collin +Date: 2022-07-12 18:53:04 +0300 + + xz: Document the special memlimit case of 2000 MiB on MIPS32. + + See commit fc3d3a7296ef58bb799a73943636b8bfd95339f7. + + src/xz/xz.1 | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +commit d1bfa3dc703325ecd974167e864a8712fdfe936e +Author: Jia Tan +Date: 2022-07-01 21:19:26 +0800 + + Created script to generate code coverage reports. + + The script uses lcov and genhtml after running the tests + to show the code coverage statistics. The script will create + a coverage directory where it is run. It can be run both in + and out of the source directory. + + .gitignore | 4 +++ + tests/code_coverage.sh | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 83 insertions(+) + +commit 86a30b0255d8064169fabfd213d907016d2f9f2a +Author: Jia Tan +Date: 2022-06-16 17:32:19 +0300 + + Tests: Add more tests into test_check. + + tests/test_check.c | 279 +++++++++++++++++++++++++++++++++++++++++++++++++++-- + tests/tests.h | 23 +++++ + 2 files changed, 295 insertions(+), 7 deletions(-) + +commit 82e30fed66a89706388a8c15dc954d84e63f38fa +Author: Lasse Collin +Date: 2022-06-16 15:02:57 +0300 + + Tests: Use char[][24] array for enum_strings_lzma_ret. + + Array of pointers to short strings is a bit pointless here + and now it's fully const. + + tests/tests.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 5ba9459e6c4a29f6870ca78ce8ac6e519d59c41e +Author: Lasse Collin +Date: 2022-06-16 14:12:14 +0300 + + Tests: tuktest.h: Add tuktest_error_impl to help with error conditions. + + tests/tuktest.h | 72 +++++++++++++++++++++++++-------------------------------- + 1 file changed, 32 insertions(+), 40 deletions(-) + +commit b339892668da20aea22a93668c82b87a38e4a97f +Author: Lasse Collin +Date: 2022-06-16 13:29:59 +0300 + + Tests: tuktest.h: Rename file_from_* and use tuktest_malloc there. + + tests/test_bcj_exact_size.c | 4 +--- + tests/tuktest.h | 52 +++++++++++++++++++++------------------------ + 2 files changed, 25 insertions(+), 31 deletions(-) + +commit d8b63a0ad68d1c461eb373466679ebc41fbc207d +Author: Lasse Collin +Date: 2022-06-16 13:08:19 +0300 + + Tests: tuktest.h: Add malloc wrapper with automatic freeing. + + tests/tuktest.h | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 124 insertions(+) + +commit 1d51536a4b19a8fae768f8eb462fc2238cb36d53 +Author: Lasse Collin +Date: 2022-06-16 11:47:37 +0300 + + Tests: tuktest.h: Move a function. + + tests/tuktest.h | 44 ++++++++++++++++++++++---------------------- + 1 file changed, 22 insertions(+), 22 deletions(-) + +commit 70c7555f6403553ee35539e869de0025592d8564 +Author: Lasse Collin +Date: 2022-06-14 22:21:15 +0300 + + Tests: test_vli: Remove an invalid test-assertion. + + lzma_vli is unsigned so trying a signed value results in + a compiler warning from -Wsign-conversion. (lzma_vli)-1 + equals to LZMA_VLI_UNKNOWN anyway which is the next assertion. + + tests/test_vli.c | 2 -- + 1 file changed, 2 deletions(-) + +commit 154b73c5a1092c3f785e01666b564ad7ff1be555 +Author: Lasse Collin +Date: 2022-06-14 22:10:10 +0300 + + Tests: test_vli: Add const where appropriate. + + tests/test_vli.c | 53 ++++++++++++++++++++++++++++------------------------- + 1 file changed, 28 insertions(+), 25 deletions(-) + +commit 0354d6cce3ff98ea6f927107baf216253f6ce2bb +Author: Jia Tan +Date: 2022-06-13 20:27:03 +0800 + + Added vli tests to .gitignore + + .gitignore | 1 + + 1 file changed, 1 insertion(+) + +commit a08f5ccf6bdc20ef70e41f6f3321618ef146f96e +Author: Jia Tan +Date: 2022-06-12 11:31:40 +0800 + + Created tests for all functions exported in vli.h + + Achieved 100% code coverage vli_encoder.c, vli_decoder.c, and vli_size.c + + tests/Makefile.am | 4 +- + tests/test_vli.c | 308 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 311 insertions(+), 1 deletion(-) + +commit 1e3eb61815a91c0a1bfbb802e2d95593f523491f +Author: jiat75 +Date: 2022-06-03 21:24:54 +0800 + + Added parallel test artifacts to .gitignore + + .gitignore | 2 ++ + 1 file changed, 2 insertions(+) + +commit 00e3613f1212eaa84e721585fdb4de6967cf2476 +Author: Lasse Collin +Date: 2022-06-14 21:29:21 +0300 + + Tests: Use good-1-empty-bcj-lzma2.xz in test_bcj_exact_size. + + It's much nicer this way so that the test data isn't a hardcoded + table inside the C file. + + tests/test_bcj_exact_size.c | 19 +++++++------------ + 1 file changed, 7 insertions(+), 12 deletions(-) + +commit 86bab755be252bfd3e0a9aee8e7b83a9bbb23ed0 +Author: Lasse Collin +Date: 2022-06-14 21:26:13 +0300 + + Tests: Add file reading helpers to tuktest.h. + + tests/tuktest.h | 183 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- + 1 file changed, 176 insertions(+), 7 deletions(-) + +commit 83d2337b72dbf391c6f3b41889eea99e51679105 +Author: Lasse Collin +Date: 2022-06-14 18:21:57 +0300 + + Tests: tuktest.h: Move a printf from a macro to a helper function. + + tests/tuktest.h | 26 ++++++++++++++++++-------- + 1 file changed, 18 insertions(+), 8 deletions(-) + +commit f9e8176ea7d520797a2db2d49a5a632c285674a8 +Author: Lasse Collin +Date: 2022-06-14 17:20:49 +0300 + + Tests: Add test file good-1-empty-bcj-lzma2.xz. + + This is from test_bcj_exact_size.c. + It's good to have it as a standalone file. + + tests/files/README | 5 +++++ + tests/files/good-1-empty-bcj-lzma2.xz | Bin 0 -> 52 bytes + 2 files changed, 5 insertions(+) + +commit aa75c5563a760aea3aa23d997d519e702e82726b +Author: Jia Tan +Date: 2022-06-10 21:35:18 +0800 + + Tests: Created tests for hardware functions. + + Created tests for all API functions exported in + src/liblzma/api/lzma/hardware.h. The tests are fairly trivial + but are helpful because they will inform users if their machines + cannot support these functions. They also improve the code + coverage metrics. + + .gitignore | 1 + + tests/Makefile.am | 2 ++ + tests/test_hardware.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 48 insertions(+) + +commit 5c8ffdca20813939818843476fb212dfae8838a3 +Author: Lasse Collin +Date: 2022-06-02 21:01:45 +0300 + + Tests: Convert test_check to tuktest. + + Thanks to Jia Tan for help with all the tests. + + tests/test_check.c | 67 +++++++++++++++++++++++++++--------------------------- + 1 file changed, 33 insertions(+), 34 deletions(-) + +commit faf5ff8899d539b4dcd2a7e5280cb820a4746c86 +Author: Lasse Collin +Date: 2022-06-02 20:31:03 +0300 + + Tests: Convert test_block_header to tuktest. + + tests/test_block_header.c | 89 +++++++++++++++++++++++++++-------------------- + 1 file changed, 52 insertions(+), 37 deletions(-) + +commit 754d39fbebee3782258d42f154a223d3c5770ec7 +Author: Lasse Collin +Date: 2022-06-02 20:28:23 +0300 + + Tests: Convert test_bcj_exact_size to tuktest. + + The compress() and decompress() functions were merged because + the later depends on the former so they need to be a single + test case. + + tests/test_bcj_exact_size.c | 75 +++++++++++++++++++++++++-------------------- + 1 file changed, 41 insertions(+), 34 deletions(-) + +commit 96da21470f9570cd08286906a050a7c22631775b +Author: Lasse Collin +Date: 2022-06-02 20:27:00 +0300 + + Tests: Include tuktest.h in tests.h. + + This breaks -Werror because none of the tests so far use + tuktest.h and thus there are warnings about unused variables + and functions. + + tests/tests.h | 47 +++++++++++++++++++++++------------------------ + 1 file changed, 23 insertions(+), 24 deletions(-) + +commit df71ba1c991f60c3269aaadd398247e632714626 +Author: Lasse Collin +Date: 2022-06-02 20:25:21 +0300 + + Tests: Add tuktest.h mini-test-framework. + + tests/Makefile.am | 1 + + tests/tuktest.h | 752 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 753 insertions(+) + +commit 4773608554d1b684a05ff9c1d879cf5c42266d33 +Author: Lasse Collin +Date: 2022-05-23 21:31:36 +0300 + + Build: Enable Automake's parallel test harness. + + It has been the default for quite some time already and + the old serial harness isn't discouraged. The downside is + that with parallel tests one cannot print progress info or + other diagnostics to the terminal; all output from the tests + will be in the log files only. But now that the compression + tests are separated the parallel tests will speed things up. + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 9a6dd6d46f7f256a5573e5d874c1052033ed7b05 +Author: Lasse Collin +Date: 2022-05-23 21:17:47 +0300 + + Tests: Split test_compress.sh into separate test unit for each file. + + test_compress.sh now takes one command line argument: + a filename to be tested. If it begins with "compress_generated_" + the file will be created with create_compress_files. + + This will allow parallel execution of the slow tests. + + tests/Makefile.am | 11 +++- + tests/test_compress.sh | 91 +++++++++++++++++++--------------- + tests/test_compress_generated_abc | 3 ++ + tests/test_compress_generated_random | 3 ++ + tests/test_compress_generated_text | 3 ++ + tests/test_compress_prepared_bcj_sparc | 3 ++ + tests/test_compress_prepared_bcj_x86 | 3 ++ + 7 files changed, 77 insertions(+), 40 deletions(-) + +commit c7758ac9c734707514dd34f254173ebac5eea7f8 +Author: Lasse Collin +Date: 2022-05-23 20:32:49 +0300 + + Test: Make create_compress_files.c a little more flexible. + + If a command line argument is given, then only the test file + of that type is created. It's quite dumb in sense that unknown + names don't give an error but it's good enough here. + + Also use EXIT_FAILURE instead of 1 as exit status for errors. + + tests/create_compress_files.c | 25 +++++++++++++++---------- + 1 file changed, 15 insertions(+), 10 deletions(-) + +commit 4a8e4a7b0ad4b03c0ac6862716c3457452cdaf8c +Author: Lasse Collin +Date: 2022-05-23 20:17:42 +0300 + + Tests: Remove unneeded commented lines from test_compress.sh. + + tests/test_compress.sh | 13 ------------- + 1 file changed, 13 deletions(-) + +commit 2ee50d150ee009f36135540b459e6ff328549725 +Author: Lasse Collin +Date: 2022-05-23 20:16:00 +0300 + + Tests: Remove progress indicator from test_compress.sh. + + It will be useless with Automake's parallel tests. + + tests/test_compress.sh | 9 --------- + 1 file changed, 9 deletions(-) + +commit 2ce4f36f179a81d0c6e182a409f363df759d1ad0 +Author: Lasse Collin +Date: 2022-05-23 19:37:18 +0300 + + liblzma: Silence a warning. + + The actual initialization is done via mythread_sync and seems + that GCC doesn't necessarily see that it gets initialized there. + + src/liblzma/common/stream_decoder_mt.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 5d8f3764ef43c35910e6d7003c0900a961ef6544 +Author: Lasse Collin +Date: 2022-04-14 20:53:16 +0300 + + xz: Fix build with --disable-threads. + + src/xz/hardware.c | 4 ++++ + 1 file changed, 4 insertions(+) + +commit 1d592897278b172d8549aa29c3a1f3a4f432a9b9 +Author: Lasse Collin +Date: 2022-04-14 14:50:17 +0300 + + xz: Change the cap of the default -T0 memlimit for 32-bit xz. + + The SIZE_MAX / 3 was 1365 MiB. 1400 MiB gives little more room + and it looks like a round (artificial) number in --info-memory + once --info-memory is made to display it. + + Also, using #if avoids useless code on 64-bit builds. + + src/xz/hardware.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +commit c77fe55ddb7752ed0fec46967c5ec9a72632ea0c +Author: Lasse Collin +Date: 2022-04-14 14:20:46 +0300 + + xz: Add a default soft memory usage limit for --threads=0. + + This is a soft limit in sense that it only affects the number of + threads. It never makes xz fail and it never makes xz change + settings that would affect the compressed output. + + The idea is to make -T0 have more reasonable behavior when + the system has very many cores or when a memory-hungry + compression options are used. This also helps with 32-bit xz, + preventing it from running out of address space. + + The downside of this commit is that now the number of threads + might become too low compared to what the user expected. I + hope this to be an acceptable compromise as the old behavior + has been a source of well-argued complaints for a long time. + + src/xz/coder.c | 28 ++++++++++++++++++++++++++-- + src/xz/hardware.c | 38 +++++++++++++++++++++++++++++--------- + src/xz/hardware.h | 27 +++++++++++++++++++++++++++ + 3 files changed, 82 insertions(+), 11 deletions(-) + +commit 0adc13bfe32c14f3e4c6ce9f2d4fdf4112ab53f4 +Author: Lasse Collin +Date: 2022-04-14 12:59:09 +0300 + + xz: Make -T0 use multithreaded mode on single-core systems. + + The main problem withi the old behavior is that the compressed + output is different on single-core systems vs. multicore systems. + This commit fixes it by making -T0 one thread in multithreaded mode + on single-core systems. + + The downside of this is that it uses more memory. However, if + --memlimit-compress is used, xz can (thanks to the previous commit) + drop to the single-threaded mode still. + + src/xz/coder.c | 18 +++++++++--------- + src/xz/hardware.c | 14 ++++++++++++++ + src/xz/hardware.h | 4 ++++ + 3 files changed, 27 insertions(+), 9 deletions(-) + +commit 898faa97287a756231c663a3ed5165672b417207 +Author: Lasse Collin +Date: 2022-04-14 12:38:00 +0300 + + xz: Changes to --memlimit-compress and --no-adjust. + + In single-threaded mode, --memlimit-compress can make xz scale down + the LZMA2 dictionary size to meet the memory usage limit. This + obviously affects the compressed output. However, if xz was in + threaded mode, --memlimit-compress could make xz reduce the number + of threads but it wouldn't make xz switch from multithreaded mode + to single-threaded mode or scale down the LZMA2 dictionary size. + This seemed illogical and there was even a "FIXME?" about it. + + Now --memlimit-compress can make xz switch to single-threaded + mode if one thread in multithreaded mode uses too much memory. + If memory usage is still too high, then the LZMA2 dictionary + size can be scaled down too. + + The option --no-adjust was also changed so that it no longer + prevents xz from scaling down the number of threads as that + doesn't affect compressed output (only performance). After + this commit --no-adjust only prevents adjustments that affect + compressed output, that is, with --no-adjust xz won't switch + from multithreaded mode to single-threaded mode and won't + scale down the LZMA2 dictionary size. + + The man page wasn't updated yet. + + src/xz/coder.c | 63 +++++++++++++++++++++++++++++++++++++++------------------- + 1 file changed, 43 insertions(+), 20 deletions(-) + +commit cad299008cf73ec566f0662a9cf2b94f86a99659 +Author: Lasse Collin +Date: 2022-04-11 22:20:49 +0300 + + xz: Add --memlimit-mt-decompress along with a default limit value. + + --memlimit-mt-decompress allows specifying the limit for + multithreaded decompression. This matches memlimit_threading in + liblzma. This limit can only affect the number of threads being + used; it will never prevent xz from decompressing a file. The + old --memlimit-decompress option is still used at the same time. + + If the value of --memlimit-decompress (the default value or + one specified by the user) is less than the value of + --memlimit-mt-decompress , then --memlimit-mt-decompress is + reduced to match --memlimit-decompress. + + Man page wasn't updated yet. + + src/xz/args.c | 24 +++++++++++++++------- + src/xz/coder.c | 34 ++++++++++--------------------- + src/xz/hardware.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++----- + src/xz/hardware.h | 17 ++++++++++------ + src/xz/message.c | 4 +++- + 5 files changed, 97 insertions(+), 42 deletions(-) + +commit fe87b4cd5364f5bbb6a75a0299f1500c852d7c9a +Author: Lasse Collin +Date: 2022-04-06 23:11:59 +0300 + + liblzma: Threaded decoder: Improve setting of pending_error. + + It doesn't need to be done conditionally. The comments try + to explain it. + + src/liblzma/common/stream_decoder_mt.c | 51 +++++++++++++++++++++++----------- + 1 file changed, 35 insertions(+), 16 deletions(-) + +commit 90621da7f6e1bfd6d91d60415eae04b2bca274c2 +Author: Lasse Collin +Date: 2022-04-06 12:39:49 +0300 + + liblzma: Add a new flag LZMA_FAIL_FAST for threaded decoder. + + In most cases if the input file is corrupt the application won't + care about the uncompressed content at all. With this new flag + the threaded decoder will return an error as soon as any thread + has detected an error; it won't wait to copy out the data before + the location of the error. + + I don't plan to use this in xz to keep the behavior consistent + between single-threaded and multi-threaded modes. + + src/liblzma/api/lzma/container.h | 25 ++++++++++++++++- + src/liblzma/common/common.h | 7 +++-- + src/liblzma/common/stream_decoder_mt.c | 50 +++++++++++++++++++--------------- + 3 files changed, 56 insertions(+), 26 deletions(-) + +commit 64b6d496dc815a176d8307f418f6834a26783484 +Author: Lasse Collin +Date: 2022-04-05 12:24:57 +0300 + + liblzma: Threaded decoder: Always wait for output if LZMA_FINISH is used. + + This makes the behavior consistent with the single-threaded + decoder when handling truncated .xz files. + + Thanks to Jia Tan for finding this issue. + + src/liblzma/common/stream_decoder_mt.c | 26 ++++++++++++++++++++++++-- + 1 file changed, 24 insertions(+), 2 deletions(-) + +commit e671bc8828b9c0c5406c3a22c541301d0eb54518 +Author: Lasse Collin +Date: 2022-04-02 21:49:59 +0300 + + liblzma: Threaded decoder: Support zpipe.c-style decoding loop. + + This makes it possible to call lzma_code() in a loop that only + reads new input when lzma_code() didn't fill the output buffer + completely. That isn't the calling style suggested by the + liblzma example program 02_decompress.c so perhaps the usefulness + of this feature is limited. + + Also, it is possible to write such a loop so that it works + with the single-threaded decoder but not with the threaded + decoder even after this commit, or so that it works only if + lzma_mt.timeout = 0. + + The zlib tutorial is a well-known + example of a loop where more input is read only when output isn't + full. Porting this as is to liblzma would work with the + single-threaded decoder (if LZMA_CONCATENATED isn't used) but it + wouldn't work with threaded decoder even after this commit because + the loop assumes that no more output is possible when it cannot + read more input ("if (strm.avail_in == 0) break;"). This cannot + be fixed at liblzma side; the loop has to be modified at least + a little. + + I'm adding this in any case because the actual code is simple + and short and should have no harmful side-effects in other + situations. + + src/liblzma/common/stream_decoder_mt.c | 77 +++++++++++++++++++++++++++++----- + 1 file changed, 67 insertions(+), 10 deletions(-) + +commit 2ba8173e27be4793edb46497e499ac2ae753a316 +Author: Lasse Collin +Date: 2022-03-31 00:05:07 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 69d1b3fc29677af8ade8dc15dba83f0589cb63d6 +Author: Lasse Collin +Date: 2022-03-29 19:19:12 +0300 + + xzgrep: Fix escaping of malicious filenames (ZDI-CAN-16587). + + Malicious filenames can make xzgrep to write to arbitrary files + or (with a GNU sed extension) lead to arbitrary code execution. + + xzgrep from XZ Utils versions up to and including 5.2.5 are + affected. 5.3.1alpha and 5.3.2alpha are affected as well. + This patch works for all of them. + + This bug was inherited from gzip's zgrep. gzip 1.12 includes + a fix for zgrep. + + The issue with the old sed script is that with multiple newlines, + the N-command will read the second line of input, then the + s-commands will be skipped because it's not the end of the + file yet, then a new sed cycle starts and the pattern space + is printed and emptied. So only the last line or two get escaped. + + One way to fix this would be to read all lines into the pattern + space first. However, the included fix is even simpler: All lines + except the last line get a backslash appended at the end. To ensure + that shell command substitution doesn't eat a possible trailing + newline, a colon is appended to the filename before escaping. + The colon is later used to separate the filename from the grep + output so it is fine to add it here instead of a few lines later. + + The old code also wasn't POSIX compliant as it used \n in the + replacement section of the s-command. Using \ is the + POSIX compatible method. + + LC_ALL=C was added to the two critical sed commands. POSIX sed + manual recommends it when using sed to manipulate pathnames + because in other locales invalid multibyte sequences might + cause issues with some sed implementations. In case of GNU sed, + these particular sed scripts wouldn't have such problems but some + other scripts could have, see: + + info '(sed)Locale Considerations' + + This vulnerability was discovered by: + cleemy desu wayo working with Trend Micro Zero Day Initiative + + Thanks to Jim Meyering and Paul Eggert discussing the different + ways to fix this and for coordinating the patch release schedule + with gzip. + + src/scripts/xzgrep.in | 20 ++++++++++++-------- + 1 file changed, 12 insertions(+), 8 deletions(-) + +commit bd93b776c1bd15e90661033c918cdeb354dbcc38 +Author: Lasse Collin +Date: 2022-03-26 01:02:44 +0200 + + liblzma: Fix a deadlock in threaded decoder. + + If a worker thread has consumed all input so far and it's + waiting on thr->cond and then the main thread enables + partial update for that thread, the code used to deadlock. + This commit allows one dummy decoding pass to occur in this + situation which then also does the partial update. + + As part of the fix, this moves thr->progress_* updates to + avoid the second thr->mutex locking. + + Thanks to Jia Tan for finding, debugging, and reporting the bug. + + src/liblzma/common/stream_decoder_mt.c | 71 +++++++++++++++++++++++++--------- + 1 file changed, 52 insertions(+), 19 deletions(-) + +commit e0394e94230f208682ac1e1f4c41f22f9ad79916 +Author: Lasse Collin +Date: 2022-03-23 16:34:00 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 487c77d48760564b1949c5067630b675b87be4de +Author: Lasse Collin +Date: 2022-03-23 16:28:55 +0200 + + liblzma: Threaded decoder: Don't stop threads on LZMA_TIMED_OUT. + + LZMA_TIMED_OUT is not an error and thus stopping threads on + LZMA_TIMED_OUT breaks the decoder badly. + + Thanks to Jia Tan for finding the bug and for the patch. + + src/liblzma/common/stream_decoder_mt.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 6c6da57ae2aa962aabde6892442227063d87e88c +Author: Lasse Collin +Date: 2022-03-07 00:36:16 +0200 + + xz: Add initial support for threaded decompression. + + If threading support is enabled at build time, this will + use lzma_stream_decoder_mt() even for single-threaded mode. + With memlimit_threading=0 the behavior should be identical. + + This needs some work like adding --memlimit-threading=LIMIT. + + The original patch from Sebastian Andrzej Siewior included + a method to get currently available RAM on Linux. It might + be one way to go but as it is Linux-only, the available-RAM + approach needs work for portability or using a fallback method + on other OSes. + + The man page wasn't updated yet. + + src/xz/coder.c | 36 +++++++++++++++++++++++++++++++++++- + 1 file changed, 35 insertions(+), 1 deletion(-) + +commit 4cce3e27f529af33e0e7749a8cbcec59954946b5 +Author: Lasse Collin +Date: 2022-03-06 23:36:20 +0200 + + liblzma: Add threaded .xz decompressor. + + I realize that this is about a decade late. + + Big thanks to Sebastian Andrzej Siewior for the original patch. + I made a bunch of smaller changes but after a while quite a few + things got rewritten. So any bugs in the commit were created by me. + + src/liblzma/api/lzma/container.h | 90 +- + src/liblzma/common/Makefile.inc | 5 + + src/liblzma/common/common.h | 4 + + src/liblzma/common/stream_decoder_mt.c | 1814 ++++++++++++++++++++++++++++++++ + src/liblzma/liblzma.map | 1 + + 5 files changed, 1907 insertions(+), 7 deletions(-) + +commit 717631b9788dc9c100ee0c87d3c14a2782638ff4 +Author: Lasse Collin +Date: 2022-03-06 16:54:23 +0200 + + liblzma: Fix docs: lzma_block_decoder() cannot return LZMA_UNSUPPORTED_CHECK. + + If Check is unsupported, it will be silently ignored. + It's the caller's job to handle it. + + src/liblzma/api/lzma/block.h | 3 --- + 1 file changed, 3 deletions(-) + +commit 1a4bb97a00936535e30ac61945aeee38882b5d1a +Author: Lasse Collin +Date: 2022-03-06 16:41:19 +0200 + + liblzma: Add new output queue (lzma_outq) features. + + Add lzma_outq_clear_cache2() which may leave one buffer allocated + in the cache. + + Add lzma_outq_outbuf_memusage() to get the memory needed for + a single lzma_outbuf. This is now used internally in outqueue.c too. + + Track both the total amount of memory allocated and the amount of + memory that is in active use (not in cache). + + In lzma_outbuf, allow storing the current input position that + matches the current output position. This way the main thread + can notice when no more output is possible without first providing + more input. + + Allow specifying return code for lzma_outq_read() in a finished + lzma_outbuf. + + src/liblzma/common/outqueue.c | 43 +++++++++++++++++++++++++++++++++++------- + src/liblzma/common/outqueue.h | 44 ++++++++++++++++++++++++++++++++++++++++++- + 2 files changed, 79 insertions(+), 8 deletions(-) + +commit ddbc6f58c2de388eed24cd7ea91b523d397da5f4 +Author: Lasse Collin +Date: 2022-03-06 15:18:58 +0200 + + liblzma: Index hash: Change return value type of hash_append() to void. + + src/liblzma/common/index_hash.c | 11 +++++------ + 1 file changed, 5 insertions(+), 6 deletions(-) + +commit 20e7a33e2d59c6a814447d3991f21e2702174b20 +Author: Lasse Collin +Date: 2022-02-22 03:42:57 +0200 + + liblzma: Minor addition to lzma_vli_size() API doc. + + Thanks to Jia Tan. + + src/liblzma/api/lzma/vli.h | 2 ++ + 1 file changed, 2 insertions(+) + +commit 4f78f5fcf63592f2d77e921cfe0d5de300867374 +Author: Lasse Collin +Date: 2022-02-22 02:04:18 +0200 + + liblzma: Check the return value of lzma_index_append() in threaded encoder. + + If lzma_index_append() failed (most likely memory allocation failure) + it could have gone unnoticed and the resulting .xz file would have + an incorrect Index. Decompressing such a file would produce the + correct uncompressed data but then an error would occur when + verifying the Index field. + + src/liblzma/common/stream_encoder_mt.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +commit 5313ad66b40aab822ddca3e9905254cb99a4080d +Author: Lasse Collin +Date: 2022-02-22 01:37:39 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 865e0a3689a25a7ee8eecae1a34c1775e3aa676e +Author: Ed Maste +Date: 2022-02-11 15:25:46 +0000 + + liblzma: Use non-executable stack on FreeBSD as on Linux + + src/liblzma/check/crc32_x86.S | 4 ++-- + src/liblzma/check/crc64_x86.S | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +commit 1c9a5786d206b4abc8e427326651c8174baea753 +Author: Lasse Collin +Date: 2022-02-20 20:36:27 +0200 + + liblzma: Make Block decoder catch certain types of errors better. + + Now it limits the input and output buffer sizes that are + passed to a raw decoder. This way there's no need to check + if the sizes can grow too big or overflow when updating + Compressed Size and Uncompressed Size counts. This also means + that a corrupt file cannot cause the raw decoder to process + useless extra input or output that would exceed the size info + in Block Header (and thus cause LZMA_DATA_ERROR anyway). + + More importantly, now the size information is verified more + carefully in case raw decoder returns LZMA_OK. This doesn't + really matter with the current single-threaded .xz decoder + as the errors would be detected slightly later anyway. But + this helps avoiding corner cases in the upcoming threaded + decompressor, and it might help other Block decoder uses + outside liblzma too. + + The test files bad-1-lzma2-{9,10,11}.xz test these conditions. + With the single-threaded .xz decoder the only difference is + that LZMA_DATA_ERROR is detected in a difference place now. + + src/liblzma/common/block_decoder.c | 79 ++++++++++++++++++++++++++------------ + 1 file changed, 54 insertions(+), 25 deletions(-) + +commit 555de11873eb00c9b94a8be70645db502e5a9dbd +Author: Lasse Collin +Date: 2022-02-20 19:38:55 +0200 + + Tests: Add bad-1-lzma2-11.xz. + + tests/files/README | 5 +++++ + tests/files/bad-1-lzma2-11.xz | Bin 0 -> 64 bytes + 2 files changed, 5 insertions(+) + +commit f0da507f22e7f4e3edb75b45b74d344244ca03fb +Author: Lasse Collin +Date: 2022-02-18 18:51:10 +0200 + + Translations: Fix po4a failure with the French man page translations. + + Thanks to Mario BlƤttermann for the patch. + + po4a/fr_FR.po | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +commit f7711d228c3c32395460c82498c60a9f730d0239 +Author: Lasse Collin +Date: 2022-02-07 01:14:37 +0200 + + Translations: Add French translation of man pages. + + This matches xz-utils 5.2.5-2 in Debian. + + The translation was done by "bubu", proofread by the debian-l10n-french + mailing list contributors, and submitted to me on the xz-devel mailing + list by Jean-Pierre Giraud. Thanks to everyone! + + po4a/fr_FR.po | 3541 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + po4a/po4a.conf | 2 +- + 2 files changed, 3542 insertions(+), 1 deletion(-) + +commit 6468f7e41a8e9c611e4ba8d34e2175c5dacdbeb4 +Author: jiat75 +Date: 2022-01-28 20:47:55 +0800 + + liblzma: Add NULL checks to LZMA and LZMA2 properties encoders. + + Previously lzma_lzma_props_encode() and lzma_lzma2_props_encode() + assumed that the options pointers must be non-NULL because the + with these filters the API says it must never be NULL. It is + good to do these checks anyway. + + src/liblzma/lzma/lzma2_encoder.c | 3 +++ + src/liblzma/lzma/lzma_encoder.c | 3 +++ + 2 files changed, 6 insertions(+) + +commit 2523c30705f49eabd27b854aa656ae87cc224808 +Author: Lasse Collin +Date: 2022-02-06 23:19:32 +0200 + + liblzma: Fix uint64_t vs. size_t confusion. + + This broke 32-bit builds due to a pointer type mismatch. + + This bug was introduced with the output-size-limited encoding + in 625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c. + + Thanks to huangqinjin for the bug report. + + src/liblzma/rangecoder/range_encoder.h | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +commit 2bd36c91d03e03b31a4f12fd0afc100ae32d66e2 +Author: huangqinjin +Date: 2021-12-13 20:49:21 +0800 + + CMake: Keep compatible with Windows 95 for 32-bit build. + + CMakeLists.txt | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +commit 2024fbf2794885277d05378d40b2b8015a7c3b40 +Author: Lasse Collin +Date: 2021-11-13 21:04:05 +0200 + + xzgrep: Update man page timestamp. + + src/scripts/xzgrep.1 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 400e7a239a53282cedaad927a41f3463d7f542e5 +Author: Lasse Collin +Date: 2021-11-13 18:23:24 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 3a512c7787b2642ca946f4adc6e9a0a5d9b0d5a0 +Author: Ville SkyttƤ +Date: 2021-11-13 10:11:57 +0200 + + xzgrep: use `grep -E/-F` instead of `egrep` and `fgrep` + + `egrep` and `fgrep` have been deprecated in GNU grep since 2007, and in + current post 3.7 Git they have been made to emit obsolescence warnings: + https://git.savannah.gnu.org/cgit/grep.git/commit/?id=a9515624709865d480e3142fd959bccd1c9372d1 + + src/scripts/xzgrep.1 | 8 ++++---- + src/scripts/xzgrep.in | 4 ++-- + 2 files changed, 6 insertions(+), 6 deletions(-) + +commit edf525e2b1840dcaf377df472c67d8f11f8ace1b +Author: Lasse Collin +Date: 2021-10-28 23:02:11 +0300 + + Bump the version number for 5.3.2alpha. + + src/liblzma/api/lzma/version.h | 2 +- + src/liblzma/liblzma.map | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit ea8c948655a86290524efe59cff067e06a886709 +Author: Lasse Collin +Date: 2021-10-28 22:59:52 +0300 + + Add NEWS for 5.3.2alpha. + + NEWS | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 86 insertions(+) + +commit 52435f302f4724157ec50b4210cbe42b285c3cbc +Author: Lasse Collin +Date: 2021-10-27 23:27:48 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit f2aea1d5a504b2021bf47a238390e4f12bdd518d +Author: Lasse Collin +Date: 2021-10-27 23:23:11 +0300 + + xz: Change the coding style of the previous commit. + + It isn't any better now but it's consistent with + the rest of the code base. + + src/xz/file_io.c | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +commit 892b16cc282f5b4e1c49871b326f4db25c5b4d81 +Author: Alexander Bluhm +Date: 2021-10-05 23:33:16 +0200 + + xz: Avoid fchown(2) failure. + + OpenBSD does not allow to change the group of a file if the user + does not belong to this group. In contrast to Linux, OpenBSD also + fails if the new group is the same as the old one. Do not call + fchown(2) in this case, it would change nothing anyway. + + This fixes an issue with Perl Alien::Build module. + https://github.com/PerlAlien/Alien-Build/issues/62 + + src/xz/file_io.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +commit 2b509c868cae3988bf21cd693fbf9021cdc85628 +Author: Lasse Collin +Date: 2021-09-17 17:31:11 +0300 + + liblzma: Fix liblzma.map for the lzma_microlzma_* symbols. + + This should have been part of d267d109c370a40b502e73f8664b154b15e4f253. + + Thanks to Gao Xiang. + + src/liblzma/liblzma.map | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit cacb06a954b58255dfc084a0bc9708f43a0fd6d6 +Author: Lasse Collin +Date: 2021-09-09 22:21:07 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 6928aac9da6ba612780b9f72ba1d6ecbe1e8b54e +Author: Lasse Collin +Date: 2021-09-09 21:41:51 +0300 + + liblzma: Use _MSVC_LANG to detect when "noexcept" can be used with MSVC. + + By default, MSVC always sets __cplusplus to 199711L. The real + C++ standard version is available in _MSVC_LANG (or one could + use /Zc:__cplusplus to set __cplusplus correctly). + + Fixes . + + Thanks to Dan Weiss. + + src/liblzma/api/lzma.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit d267d109c370a40b502e73f8664b154b15e4f253 +Author: Lasse Collin +Date: 2021-09-05 20:38:12 +0300 + + liblzma: Rename EROFS LZMA to MicroLZMA. + + It still exists primarily for EROFS but MicroLZMA is + a more generic name (that hopefully doesn't clash with + something that already exists). + + src/liblzma/api/lzma/container.h | 33 +++++++++++++--------- + src/liblzma/common/Makefile.inc | 4 +-- + .../{erofs_decoder.c => microlzma_decoder.c} | 32 ++++++++++----------- + .../{erofs_encoder.c => microlzma_encoder.c} | 30 ++++++++++---------- + 4 files changed, 52 insertions(+), 47 deletions(-) + +commit 3247e95115acb95bc27f41e8cf4501db5b0b4309 +Author: Lasse Collin +Date: 2021-06-04 19:02:38 +0300 + + xzdiff: Update the man page about the exit status. + + This was forgotten from 194029ffaf74282a81f0c299c07f73caca3232ca. + + src/scripts/xzdiff.1 | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 96f5a28a46fc93ac4e296808ac0f8631d05498bc +Author: Lasse Collin +Date: 2021-06-04 18:52:48 +0300 + + xzless: Fix less(1) version detection when it contains a dot. + + Sometimes the version number from "less -V" contains a dot, + sometimes not. xzless failed detect the version number when + it does contain a dot. This fixes it. + + Thanks to nick87720z for reporting this. Apparently it had been + reported here in 2013. + + src/scripts/xzless.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 5fb5212d816addbc523d0798cb482fdd0484f8fa +Author: Lasse Collin +Date: 2021-04-11 19:58:10 +0300 + + Update THANKS. + + THANKS | 2 ++ + 1 file changed, 2 insertions(+) + +commit fc3d3a7296ef58bb799a73943636b8bfd95339f7 +Author: Ivan A. Melnikov +Date: 2021-04-09 11:45:10 +0300 + + Reduce maximum possible memory limit on MIPS32 + + Due to architectural limitations, address space available to a single + userspace process on MIPS32 is limited to 2 GiB, not 4, even on systems + that have more physical RAM -- e.g. 64-bit systems with 32-bit + userspace, or systems that use XPA (an extension similar to x86's PAE). + + So, for MIPS32, we have to impose stronger memory limits. I've chosen + 2000MiB to give the process some headroom. + + src/xz/hardware.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +commit e7da44d5151e21f153925781ad29334ae0786101 +Author: Lasse Collin +Date: 2021-02-13 23:31:27 +0200 + + CMake: Use interface library for better FindLibLZMA compatibility. + + https://www.mail-archive.com/xz-devel@tukaani.org/msg00446.html + + Thanks to Markus Rickert. + + CMakeLists.txt | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +commit a61dd82ada39030f41b4ffca9ea551714908bedc +Author: Lasse Collin +Date: 2021-01-30 18:36:04 +0200 + + CMake: Try to improve compatibility with the FindLibLZMA module. + + The naming conflict with FindLibLZMA module gets worse. + Not avoiding it in the first place was stupid. + + Normally find_package(LibLZMA) will use the module and + find_package(liblzma 5.2.5 REQUIRED CONFIG) will use the config + file even with a case insensitive file system. However, if + CMAKE_FIND_PACKAGE_PREFER_CONFIG is TRUE and the file system + is case insensitive, find_package(LibLZMA) will find our liblzma + config file instead of using FindLibLZMA module. + + One big problem with this is that FindLibLZMA uses + LibLZMA::LibLZMA and we use liblzma::liblzma as the target + name. With target names CMake happens to be case sensitive. + To workaround this, this commit adds + + add_library(LibLZMA::LibLZMA ALIAS liblzma::liblzma) + + to the config file. Then both spellings work. + + To make the behavior consistent between case sensitive and + insensitive file systems, the config and related files are + renamed from liblzmaConfig.cmake to liblzma-config.cmake style. + With this style CMake looks for lowercase version of the package + name so find_package(LiBLzmA 5.2.5 REQUIRED CONFIG) will work + to find our config file. + + There are other differences between our config file and + FindLibLZMA so it's still possible that things break for + reasons other than the spelling of the target name. Hopefully + those situations aren't too common. + + When the config file is available, it should always give as good or + better results as FindLibLZMA so this commit doesn't affect the + recommendation to use find_package(liblzma 5.2.5 REQUIRED CONFIG) + which explicitly avoids FindLibLZMA. + + Thanks to Markus Rickert. + + CMakeLists.txt | 21 +++++++++++++-------- + 1 file changed, 13 insertions(+), 8 deletions(-) + +commit 5b7bc1b8ae766a76710ca1b99f909cf52c697f05 +Author: Lasse Collin +Date: 2021-01-29 21:19:43 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 6c6f0db340dcb8bb424411cedba713405d55f6b8 +Author: Lasse Collin +Date: 2021-01-29 21:19:08 +0200 + + liblzma: Fix unitialized variable. + + This was introduced two weeks ago in the commit + 625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c. + + Thanks to Nathan Moinvaziri. + + src/liblzma/lzma/lzma_encoder.c | 1 + + 1 file changed, 1 insertion(+) + +commit bb1d5c1fdd30550d4221ecd336e0be1206132a5c +Author: Lasse Collin +Date: 2021-01-24 22:32:41 +0200 + + Tests: Add bad-1-lzma2-10.xz and also modify -9.xz. + + tests/files/README | 11 +++++++++-- + tests/files/bad-1-lzma2-10.xz | Bin 0 -> 60 bytes + tests/files/bad-1-lzma2-9.xz | Bin 72 -> 72 bytes + 3 files changed, 9 insertions(+), 2 deletions(-) + +commit 6b8abc84a5469792e0355d0bfc0784d41cfdfef7 +Author: Lasse Collin +Date: 2021-01-24 19:22:35 +0200 + + liblzma: Fix a wrong comment in stream_encoder_mt.c. + + src/liblzma/common/stream_encoder_mt.c | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +commit 939fc5ed654aac25fe0c8684b2df8dbeadb2de1e +Author: Lasse Collin +Date: 2021-01-24 18:51:51 +0200 + + Tests: Add bad-1-lzma2-9.xz. + + tests/files/README | 4 ++++ + tests/files/bad-1-lzma2-9.xz | Bin 0 -> 72 bytes + 2 files changed, 4 insertions(+) + +commit fdd30032f8531ac89519b48c21d810ecf06825f6 +Author: Lasse Collin +Date: 2021-01-24 17:02:00 +0200 + + Tests: Add bad-1-check-crc32-2.xz. + + tests/files/README | 7 +++++++ + tests/files/bad-1-check-crc32-2.xz | Bin 0 -> 72 bytes + 2 files changed, 7 insertions(+) + +commit db465419ae26ec7fb9b9472183911ff521620c77 +Author: Lasse Collin +Date: 2021-01-17 19:20:50 +0200 + + liblzma: In EROFS LZMA decoder, verify that comp_size matches at the end. + + When the uncompressed size is known to be exact, after decompressing + the stream exactly comp_size bytes of input must have been consumed. + This is a minor improvement to error detection. + + src/liblzma/common/erofs_decoder.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +commit 774cc0118ba2496581cb2621505a04bb6598cc75 +Author: Lasse Collin +Date: 2021-01-17 18:53:34 +0200 + + liblzma: Make EROFS LZMA decoder work when exact uncomp_size isn't known. + + The caller must still not specify an uncompressed size bigger + than the actual uncompressed size. + + As a downside, this now needs the exact compressed size. + + src/liblzma/api/lzma/container.h | 23 ++++++++--- + src/liblzma/common/erofs_decoder.c | 80 ++++++++++++++++++++++++++++++++++---- + 2 files changed, 91 insertions(+), 12 deletions(-) + +commit 421b0aa352da244075db10205cf33712f91b9835 +Author: Lasse Collin +Date: 2021-01-14 20:57:11 +0200 + + liblzma: Fix missing normalization in rc_encode_dummy(). + + Without this fix it could attempt to create too much output. + + src/liblzma/rangecoder/range_encoder.h | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +commit 601ec0311e769fc704daaaa7dac0ca840aff080e +Author: Lasse Collin +Date: 2021-01-14 20:07:01 +0200 + + liblzma: Add EROFS LZMA encoder and decoder. + + Right now this is just a planned extra-compact format for use + in the EROFS file system in Linux. At this point it's possible + that the format will either change or be abandoned and removed + completely. + + The special thing about the encoder is that it uses the + output-size-limited encoding added in the previous commit. + EROFS uses fixed-sized blocks (e.g. 4 KiB) to hold compressed + data so the compressors must be able to create valid streams + that fill the given block size. + + src/liblzma/api/lzma/container.h | 76 +++++++++++++++++++ + src/liblzma/common/Makefile.inc | 2 + + src/liblzma/common/erofs_decoder.c | 148 +++++++++++++++++++++++++++++++++++++ + src/liblzma/common/erofs_encoder.c | 139 ++++++++++++++++++++++++++++++++++ + src/liblzma/liblzma.map | 2 + + 5 files changed, 367 insertions(+) + +commit 625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c +Author: Lasse Collin +Date: 2021-01-13 19:16:32 +0200 + + liblzma: Add rough support for output-size-limited encoding in LZMA1. + + With this it is possible to encode LZMA1 data without EOPM so that + the encoder will encode as much input as it can without exceeding + the specified output size limit. The resulting LZMA1 stream will + be a normal LZMA1 stream without EOPM. The actual uncompressed size + will be available to the caller via the uncomp_size pointer. + + One missing thing is that the LZMA layer doesn't inform the LZ layer + when the encoding is finished and thus the LZ may read more input + when it won't be used. However, this doesn't matter if encoding is + done with a single call (which is the planned use case for now). + For proper multi-call encoding this should be improved. + + This commit only adds the functionality for internal use. + Nothing uses it yet. + + src/liblzma/common/common.h | 11 +++ + src/liblzma/lz/lz_encoder.c | 16 ++++ + src/liblzma/lz/lz_encoder.h | 4 + + src/liblzma/lzma/lzma_encoder.c | 127 +++++++++++++++++++++++--------- + src/liblzma/lzma/lzma_encoder_private.h | 12 +++ + src/liblzma/rangecoder/range_encoder.h | 111 ++++++++++++++++++++++++++++ + 6 files changed, 246 insertions(+), 35 deletions(-) + +commit 9cdabbeea891e8f1e7741b076f7db6ac05ae392a +Author: Lasse Collin +Date: 2021-01-11 23:57:11 +0200 + + Scripts: Add zstd support to xzdiff. + + src/scripts/xzdiff.1 | 6 ++++-- + src/scripts/xzdiff.in | 16 +++++++++++----- + 2 files changed, 15 insertions(+), 7 deletions(-) + +commit d9ec3add97cf4c999a7f594c6529680227b6c274 +Author: Lasse Collin +Date: 2021-01-11 23:41:30 +0200 + + Update THANKS. + + THANKS | 2 ++ + 1 file changed, 2 insertions(+) + +commit 074259f4f3966aeac6edb205fecbc1a8d2b58bb2 +Author: Lasse Collin +Date: 2021-01-11 23:41:16 +0200 + + xz: Make --keep accept symlinks, hardlinks, and setuid/setgid/sticky. + + Previously this required using --force but that has other + effects too which might be undesirable. Changing the behavior + of --keep has a small risk of breaking existing scripts but + since this is a fairly special corner case I expect the + likehood of breakage to be low enough. + + I think the new behavior is more logical. The only reason for + the old behavior was to be consistent with gzip and bzip2. + + Thanks to Vincent Lefevre and Sebastian Andrzej Siewior. + + src/xz/file_io.c | 9 +++++---- + src/xz/xz.1 | 16 +++++++++++++++- + 2 files changed, 20 insertions(+), 5 deletions(-) + +commit 73c555b3077c19dda29b6f4592ced2af876f8333 +Author: Lasse Collin +Date: 2021-01-11 23:28:52 +0200 + + Scripts: Fix exit status of xzgrep. + + Omit the -q option from xz, gzip, and bzip2. With xz this shouldn't + matter. With gzip it's important because -q makes gzip replace SIGPIPE + with exit status 2. With bzip2 it's important because with -q bzip2 + is completely silent if input is corrupt while other decompressors + still give an error message. + + Avoiding exit status 2 from gzip is important because bzip2 uses + exit status 2 to indicate corrupt input. Before this commit xzgrep + didn't recognize corrupt .bz2 files because xzgrep was treating + exit status 2 as SIGPIPE for gzip compatibility. + + zstd still needs -q because otherwise it is noisy in normal + operation. + + The code to detect real SIGPIPE didn't check if the exit status + was due to a signal (>= 128) and so could ignore some other exit + status too. + + src/scripts/xzgrep.in | 20 +++++++++++++------- + 1 file changed, 13 insertions(+), 7 deletions(-) + +commit 194029ffaf74282a81f0c299c07f73caca3232ca +Author: Lasse Collin +Date: 2021-01-11 22:01:51 +0200 + + Scripts: Fix exit status of xzdiff/xzcmp. + + This is a minor fix since this affects only the situation when + the files differ and the exit status is something else than 0. + In such case there could be SIGPIPE from a decompression tool + and that would result in exit status of 2 from xzdiff/xzcmp + while the correct behavior would be to return 1 or whatever + else diff or cmp may have returned. + + This commit omits the -q option from xz/gzip/bzip2/lzop arguments. + I'm not sure why the -q was used in the first place, perhaps it + hides warnings in some situation that I cannot see at the moment. + Hopefully the removal won't introduce a new bug. + + With gzip the -q option was harmful because it made gzip return 2 + instead of >= 128 with SIGPIPE. Ignoring exit status 2 (warning + from gzip) isn't practical because bzip2 uses exit status 2 to + indicate corrupt input file. It's better if SIGPIPE results in + exit status >= 128. + + With bzip2 the removal of -q seems to be good because with -q + it prints nothing if input is corrupt. The other tools aren't + silent in this situation even with -q. On the other hand, if + zstd support is added, it will need -q since otherwise it's + noisy in normal situations. + + Thanks to Ɖtienne Mollier and Sebastian Andrzej Siewior. + + src/scripts/xzdiff.in | 35 +++++++++++++++++++++-------------- + 1 file changed, 21 insertions(+), 14 deletions(-) + +commit f7fa309e1f7178d04c7bedc03b73077639371e97 +Author: Lasse Collin +Date: 2021-01-09 21:14:36 +0200 + + liblzma: Make lzma_outq usable for threaded decompression too. + + Before this commit all output queue buffers were allocated as + a single big allocation. Now each buffer is allocated separately + when needed. Used buffers are cached to avoid reallocation + overhead but the cache will keep only one buffer size at a time. + This should make things work OK in the decompression where most + of the time the buffer sizes will be the same but with some less + common files the buffer sizes may vary. + + While this should work fine, it's still a bit preliminary + and may even get reverted if it turns out to be useless for + decompression. + + src/liblzma/common/outqueue.c | 268 +++++++++++++++++++++------------ + src/liblzma/common/outqueue.h | 138 ++++++++++++----- + src/liblzma/common/stream_encoder_mt.c | 52 ++++--- + 3 files changed, 301 insertions(+), 157 deletions(-) + +commit a35a69d693ce37d4ba7c1855bda7d9cfa13d1778 +Author: Lasse Collin +Date: 2020-12-23 17:15:49 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 4fd79b90c52396d70e0b1206ceb1a873a0ad2589 +Author: H.J. Lu +Date: 2020-12-23 06:49:04 -0800 + + liblzma: Enable Intel CET in x86 CRC assembly codes + + When Intel CET is enabled, we need to include in assembly codes + to mark Intel CET support and add _CET_ENDBR to indirect jump targets. + + Tested on Intel Tiger Lake under CET enabled Linux. + + src/liblzma/check/crc32_x86.S | 9 +++++++++ + src/liblzma/check/crc64_x86.S | 9 +++++++++ + 2 files changed, 18 insertions(+) + +commit bb3b8c6a23e25db79f862b1de325c56052e0354b +Author: Lasse Collin +Date: 2020-12-16 18:33:29 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 21588ca34af98738954fc12ded1b89d7294ef646 +Author: Lasse Collin +Date: 2020-12-16 18:30:14 +0200 + + Build: Don't build bundles on Apple OSes. + + Thanks to Daniel Packard. + + CMakeLists.txt | 3 +++ + 1 file changed, 3 insertions(+) + +commit d05b0c42dd8b38d8c6b8193c8af50e9bd3d16f28 +Author: Lasse Collin +Date: 2020-12-05 22:44:03 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 1890351f3423627ba5c4c495402f32d7e9ed90b7 +Author: Adam Borowski +Date: 2020-09-25 03:35:18 +0200 + + Scripts: Add zstd support to xzgrep. + + Thanks to Adam Borowski. + + src/scripts/xzgrep.1 | 9 ++++++--- + src/scripts/xzgrep.in | 1 + + 2 files changed, 7 insertions(+), 3 deletions(-) + +commit 2f108abb3d82e4e2313b438dae9c0c7c7a6366f2 +Author: Lasse Collin +Date: 2020-11-17 20:51:48 +0200 + + CMake: Fix compatibility with CMake 3.13. + + The syntax "if(DEFINED CACHE{FOO})" requires CMake 3.14. + In some other places the code treats the cache variables + like normal variables already (${FOO} or if(FOO) is used, + not ${CACHE{FOO}). + + Thanks to ygrek for reporting the bug on IRC. + + CMakeLists.txt | 2 +- + cmake/tuklib_cpucores.cmake | 4 ++-- + cmake/tuklib_physmem.cmake | 4 ++-- + 3 files changed, 5 insertions(+), 5 deletions(-) + +commit 5af726a79273fafa5de5745b117e567f21c90e49 +Author: Lasse Collin +Date: 2020-11-01 22:56:43 +0200 + + Update THANKS. + + THANKS | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +commit 4575d9d365c756ec189899f9f743e0b3515ce72d +Author: Lasse Collin +Date: 2020-11-01 22:34:25 +0200 + + xz: Avoid unneeded \f escapes on the man page. + + I don't want to use \c in macro arguments but groff_man(7) + suggests that \f has better portability. \f would be needed + for the .TP strings for portability reasons anyway. + + Thanks to Bjarni Ingi Gislason. + + src/xz/xz.1 | 31 ++++++++++++++++++++++--------- + 1 file changed, 22 insertions(+), 9 deletions(-) + +commit 620b32f5339f86710cb4435e01ecdac972ccac73 +Author: Lasse Collin +Date: 2020-11-01 19:09:53 +0200 + + xz: Use non-breaking spaces when intentionally using more than one space. + + This silences some style checker warnings. Seems that spaces + in the beginning of a line don't need this treatment. + + Thanks to Bjarni Ingi Gislason. + + src/xz/xz.1 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit cb1f34988c8a4130485091b2f8b641303d8f701b +Author: Lasse Collin +Date: 2020-11-01 18:49:37 +0200 + + xz: Protect the ellipsis (...) on the man page with \&. + + This does it only when ... appears outside macro calls. + + Thanks to Bjarni Ingi Gislason. + + src/xz/xz.1 | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 5d224da3da87400f2fab313abbd7c710e7169ef9 +Author: Lasse Collin +Date: 2020-11-01 18:41:21 +0200 + + xz: Avoid the abbreviation "e.g." on the man page. + + A few are simply omitted, most are converted to "for example" + and surrounded with commas. Sounds like that this is better + style, for example, man-pages(7) recommends avoiding such + abbreviations except in parenthesis. + + Thanks to Bjarni Ingi Gislason. + + src/xz/xz.1 | 66 ++++++++++++++++++++++++++++++------------------------------- + 1 file changed, 33 insertions(+), 33 deletions(-) + +commit 90457dbe3e5717660f5b81f8c604860fc5137c0c +Author: Lasse Collin +Date: 2020-07-12 23:10:03 +0300 + + xz man page: Change \- (minus) to \(en (en-dash) for a numeric range. + + Docs of ancient troff/nroff mention \(em (em-dash) but not \(en + and \- was used for both minus and en-dash. I don't know how + portable \(en is nowadays but it can be changed back if someone + complains. At least GNU groff and OpenBSD's mandoc support it. + + Thanks to Bjarni Ingi Gislason for the patch. + + src/xz/xz.1 | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +commit 352ba2d69af2136bc814aa1df1a132559d445616 +Author: Lasse Collin +Date: 2020-07-12 20:46:24 +0300 + + Windows: Fix building of resource files when config.h isn't used. + + Now CMake + Visual Studio works for building liblzma.dll. + + Thanks to Markus Rickert. + + src/common/common_w32res.rc | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +commit a9e2a87f1d61dcf684d809bf08c8ebea93f8a480 +Author: Lasse Collin +Date: 2020-04-06 19:31:50 +0300 + + src/scripts/xzgrep.1: Filenames to xzgrep are optional. + + xzgrep --help was correct already. + + src/scripts/xzgrep.1 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit a7ba275d9b855d186abb29eb7a4f4cb6d9ca6fe0 +Author: Bjarni Ingi Gislason +Date: 2020-03-26 22:17:31 +0000 + + src/script/xzgrep.1: Remove superfluous '.RB' + + Output is from: test-groff -b -e -mandoc -T utf8 -rF0 -t -w w -z + + [ "test-groff" is a developmental version of "groff" ] + + Input file is ./src/scripts/xzgrep.1 + + :20 (macro RB): only 1 argument, but more are expected + :23 (macro RB): only 1 argument, but more are expected + :26 (macro RB): only 1 argument, but more are expected + :29 (macro RB): only 1 argument, but more are expected + :32 (macro RB): only 1 argument, but more are expected + + "abc..." does not mean the same as "abc ...". + + The output from nroff and troff is unchanged except for the space + between "file" and "...". + + Signed-off-by: Bjarni Ingi Gislason + + src/scripts/xzgrep.1 | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +commit 133d498db0f4b14f066d192d64dbcade45deae6b +Author: Bjarni Ingi Gislason +Date: 2020-03-30 21:56:36 +0000 + + xzgrep.1: Delete superfluous '.PP' + + Summary: + + mandoc -T lint xzgrep.1 : + mandoc: xzgrep.1:79:2: WARNING: skipping paragraph macro: PP empty + + There is no change in the output of "nroff" and "troff". + + Signed-off-by: Bjarni Ingi Gislason + + src/scripts/xzgrep.1 | 1 - + 1 file changed, 1 deletion(-) + +commit 057839ca982f886387b66746bffe749cb14fd8cd +Author: Bjarni Ingi Gislason +Date: 2020-03-26 21:16:18 +0000 + + src/xz/xz.1: Correct misused two-fonts macros + + Output is from: test-groff -b -e -mandoc -T utf8 -rF0 -t -w w -z + + [ "test-groff" is a developmental version of "groff" ] + + Input file is ./src/xz/xz.1 + + :408 (macro BR): only 1 argument, but more are expected + :1009 (macro BR): only 1 argument, but more are expected + :1743 (macro BR): only 1 argument, but more are expected + :1920 (macro BR): only 1 argument, but more are expected + :2213 (macro BR): only 1 argument, but more are expected + + Output from nroff and troff is unchanged, except for a font change of a + full stop (.). + + Signed-off-by: Bjarni Ingi Gislason + + src/xz/xz.1 | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +commit b8e12f5ab4c9fd3cb09a4330b2861f6b979ababd +Author: Lasse Collin +Date: 2020-03-23 18:07:50 +0200 + + Typo fixes from fossies.org. + + https://fossies.org/linux/misc/xz-5.2.5.tar.xz/codespell.html + + Makefile.am | 2 +- + doc/examples/01_compress_easy.c | 2 +- + src/liblzma/api/lzma/base.h | 2 +- + src/liblzma/check/crc32_x86.S | 2 +- + src/liblzma/common/index.c | 2 +- + src/xz/xz.1 | 4 ++-- + 6 files changed, 7 insertions(+), 7 deletions(-) + +commit 869b9d1b4edd6df07f819d360d306251f8147353 +Author: Lasse Collin +Date: 2020-03-17 16:24:28 +0200 + + Update NEWS for 5.2.5. + + NEWS | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 105 insertions(+) + +commit a048e3a92d238c65f050a765174d9c75417231d4 +Author: Lasse Collin +Date: 2020-03-16 20:01:37 +0200 + + README: Update outdated sections. + + README | 21 +++++++++++---------- + 1 file changed, 11 insertions(+), 10 deletions(-) + +commit 29aed815ad4f98f3e4d355faa76a244ecd8ce716 +Author: Lasse Collin +Date: 2020-03-16 19:39:45 +0200 + + README: Mention that man pages can be translated. + + README | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +commit 7fa7653940cc9dcfcbce2fbc5166ea343ad4e3c1 +Author: Lasse Collin +Date: 2020-03-16 16:43:29 +0200 + + Update INSTALL.generic from Automake 1.16.1. + + INSTALL.generic | 321 ++++++++++++++++++++++++++++---------------------------- + 1 file changed, 162 insertions(+), 159 deletions(-) + +commit 9bd317ef03ab9b3e6a927c27c2e9c4ac041182f0 +Author: Lasse Collin +Date: 2020-03-15 15:27:22 +0200 + + Update INSTALL for Windows and DOS and add preliminary info for z/OS. + + INSTALL | 51 +++++++++++++++++++++++++++++++++++++++++---------- + 1 file changed, 41 insertions(+), 10 deletions(-) + +commit a3148c0446dc7fa96363752df414d22539c9007b +Author: Lasse Collin +Date: 2020-03-15 15:26:20 +0200 + + Build: Update m4/ax_pthread.m4 from Autoconf Archive (again). + + m4/ax_pthread.m4 | 219 +++++++++++++++++++++++++++++-------------------------- + 1 file changed, 117 insertions(+), 102 deletions(-) + +commit 7812002dd3ed319e42a14662a8531802cca8ca67 +Author: Lasse Collin +Date: 2020-03-11 21:15:35 +0200 + + xz: Never use thousand separators in DJGPP builds. + + DJGPP 2.05 added support for thousands separators but it's + broken at least under WinXP with Finnish locale that uses + a non-breaking space as the thousands separator. Workaround + by disabling thousands separators for DJGPP builds. + + src/xz/util.c | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +commit 7c8f688bf7fccd65d396e0130cbf4ea5dff5c56f +Author: Lasse Collin +Date: 2020-03-11 19:38:08 +0200 + + DOS: Update dos/Makefile for DJGPP 2.05. + + It doesn't need -fgnu89-inline like 2.04beta did. + + dos/Makefile | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +commit 319ca928d73de87940c54e30bffe69f9fa65efdf +Author: Lasse Collin +Date: 2020-03-11 19:36:07 +0200 + + DOS: Update instructions in dos/INSTALL.txt. + + dos/INSTALL.txt | 59 ++++++++++++++++++++++++++++----------------------------- + 1 file changed, 29 insertions(+), 30 deletions(-) + +commit cb6b227ce39932824812ccd8a0647bd968de27d2 +Author: Lasse Collin +Date: 2020-03-11 17:58:51 +0200 + + DOS: Update config.h. + + The added defines assume GCC >= 4.8. + + dos/config.h | 8 ++++++++ + 1 file changed, 8 insertions(+) + +commit 4572d53e16e87eee375bc5624de2fd59bb0ae9cd +Author: Lasse Collin +Date: 2020-03-02 13:54:33 +0200 + + liblzma: Fix a comment and RC_SYMBOLS_MAX. + + The comment didn't match the value of RC_SYMBOLS_MAX and the value + itself was slightly larger than actually needed. The only harm + about this was that memory usage was a few bytes larger. + + src/liblzma/rangecoder/range_encoder.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 265daa873c0d871f5f23f9b56e133a6f20045a0a +Author: Lasse Collin +Date: 2020-02-27 20:58:52 +0200 + + Build: Make CMake build fail if tuklib_cpucores or tuklib_physmem fails. + + CMakeLists.txt | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +commit 7c8b904527cdbe61248c80edcc2e20d840c4fef9 +Author: Lasse Collin +Date: 2020-02-27 20:24:27 +0200 + + Build: Add support for --no-po4a option to autogen.sh. + + Normally, if po4a isn't available, autogen.sh will return + with non-zero exit status. The option --no-po4a can be useful + when one knows that po4a isn't available but wants autogen.sh + to still return with zero exit status. + + autogen.sh | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +commit 292a5c0f9c9b3a66f5a5c652dc46381836d4537f +Author: Lasse Collin +Date: 2020-02-25 21:35:14 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 474320e9908786ba2021035f9013191e16cde08a +Author: Lasse Collin +Date: 2020-02-25 20:42:31 +0200 + + Build: Fix bugs in the CMake files. + + Seems that the phrase "add more quotes" from sh/bash scripting + applies to CMake as well. E.g. passing an unquoted list ${FOO} + to a function that expects one argument results in only the + first element of the list being passed as an argument and + the rest get ignored. Adding quotes helps ("${FOO}"). + + list(INSERT ...) is weird. Inserting an empty string to an empty + variable results in empty list, but inserting it to a non-empty + variable does insert an empty element to the list. + + Since INSERT requires at least one element, + "${CMAKE_THREAD_LIBS_INIT}" needs to be quoted in CMakeLists.txt. + It might result in an empty element in the list. It seems to not + matter as empty elements consistently get ignored in that variable. + In fact, calling cmake_check_push_state() and cmake_check_pop_state() + will strip the empty elements from CMAKE_REQUIRED_LIBRARIES! + + In addition to quoting fixes, this fixes checks for the cache + variables in tuklib_cpucores.cmake and tuklib_physmem.cmake. + + Thanks to Martin MatuÅ”ka for testing and reporting the problems. + These fixes aren't tested yet but hopefully they soon will be. + + CMakeLists.txt | 52 ++++++++++++++++++++++----------------------- + cmake/tuklib_common.cmake | 8 ++++--- + cmake/tuklib_cpucores.cmake | 30 ++++++++++++++------------ + cmake/tuklib_integer.cmake | 34 +++++++++++++++-------------- + cmake/tuklib_mbstr.cmake | 6 +++--- + cmake/tuklib_physmem.cmake | 29 +++++++++++++------------ + cmake/tuklib_progname.cmake | 4 ++-- + 7 files changed, 85 insertions(+), 78 deletions(-) + +commit 7e3493d40eac0c3fa3d5124097745a70e15c41f6 +Author: Lasse Collin +Date: 2020-02-24 23:38:16 +0200 + + Build: Add very limited experimental CMake support. + + This does *NOT* replace the Autotools-based build system in + the foreseeable future. See the comment in the beginning + of CMakeLists.txt. + + So far this has been tested only on GNU/Linux but I commit + it anyway to make it easier for others to test. Since I + haven't played much with CMake before, it's likely that + there are things that have been done in a silly or wrong + way and need to be fixed. + + CMakeLists.txt | 643 ++++++++++++++++++++++++++++++++++++++++++++ + cmake/tuklib_common.cmake | 47 ++++ + cmake/tuklib_cpucores.cmake | 173 ++++++++++++ + cmake/tuklib_integer.cmake | 100 +++++++ + cmake/tuklib_mbstr.cmake | 20 ++ + cmake/tuklib_physmem.cmake | 149 ++++++++++ + cmake/tuklib_progname.cmake | 19 ++ + 7 files changed, 1151 insertions(+) + +commit 21bd4701fca3e9002ce78bc135debca369ed8545 +Author: Lasse Collin +Date: 2020-02-24 23:37:07 +0200 + + Update m4/.gitignore. + + m4/.gitignore | 1 + + 1 file changed, 1 insertion(+) + +commit e094d1d0f196a91ec703e8d0055948feef349ae8 +Author: Lasse Collin +Date: 2020-02-24 23:29:35 +0200 + + tuklib: Omit an unneeded from a tests. + + tuklib_cpucores.c and tuklib_physmem.c don't include + even via other files in this package, so clearly that header isn't + needed in the tests either (no one has reported build problems due + to a missing header in a .c file). + + m4/tuklib_cpucores.m4 | 1 - + m4/tuklib_physmem.m4 | 1 - + 2 files changed, 2 deletions(-) + +commit b3ed19a55fe99a45bd77614e149d39d18498075c +Author: Lasse Collin +Date: 2020-02-24 23:01:00 +0200 + + liblzma: Remove unneeded from fastpos_tablegen.c. + + This file only generates fastpos_table.c. + It isn't built as a part of liblzma. + + src/liblzma/lzma/fastpos_tablegen.c | 1 - + 1 file changed, 1 deletion(-) + +commit 7b8982b29179b3c586e0456dc9ecbd4f58dcea59 +Author: Lasse Collin +Date: 2020-02-22 14:15:07 +0200 + + Use defined(__GNUC__) before __GNUC__ in preprocessor lines. + + This should silence the equivalent of -Wundef in compilers that + don't define __GNUC__. + + src/common/sysdefs.h | 3 ++- + src/liblzma/api/lzma.h | 5 +++-- + 2 files changed, 5 insertions(+), 3 deletions(-) + +commit 43dfe04e6209c691cf4fbe3072d4ee91271748f1 +Author: Lasse Collin +Date: 2020-02-21 17:40:02 +0200 + + liblzma: Add more uses of lzma_memcmplen() to the normal mode of LZMA. + + This gives a tiny encoder speed improvement. This could have been done + in 2014 after the commit 544aaa3d13554e8640f9caf7db717a96360ec0f6 but + it was forgotten. + + src/liblzma/lzma/lzma_encoder_optimum_normal.c | 16 ++++++++++------ + 1 file changed, 10 insertions(+), 6 deletions(-) + +commit 59e6eb4840b9f52fa3a61544974017279b448216 +Author: Lasse Collin +Date: 2020-02-21 17:01:15 +0200 + + Build: Add visibility.m4 from gnulib. + + Appears that this file used to get included as a side effect of + gettext. After the change to gettext version requirements this file + no longer got copied to the package and so the build was broken. + + m4/.gitignore | 1 - + m4/visibility.m4 | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 77 insertions(+), 1 deletion(-) + +commit 7fe3ef2eaa53d439cec043727ea1998f4ff0e22a +Author: Lasse Collin +Date: 2020-02-21 16:10:44 +0200 + + xz: Silence a warning when sig_atomic_t is long int. + + It can be true at least on z/OS. + + src/xz/signals.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit b0a2a77d10940c42b449d47a005bfc2e50ab5db8 +Author: Lasse Collin +Date: 2020-02-21 15:59:26 +0200 + + xz: Avoid unneeded access of a volatile variable. + + src/xz/signals.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 524c2f12c762032b819757aeda8af7c47c4cabce +Author: Lasse Collin +Date: 2020-02-21 01:24:18 +0200 + + tuklib_integer.m4: Optimize the check order. + + The __builtin byteswapping is the preferred one so check for it first. + + m4/tuklib_integer.m4 | 56 +++++++++++++++++++++++++++------------------------- + 1 file changed, 29 insertions(+), 27 deletions(-) + +commit 57360bb4fd79b358b36d2877db26ac828d1fdfcb +Author: Lasse Collin +Date: 2020-02-20 18:54:04 +0200 + + tuklib_exit: Add missing header. + + strerror() needs which happened to be included via + tuklib_common.h -> tuklib_config.h -> sysdefs.h if HAVE_CONFIG_H + was defined. This wasn't tested without config.h before so it + had worked fine. + + src/common/tuklib_exit.c | 1 + + 1 file changed, 1 insertion(+) + +commit fddd31175e74a538997a939d930462fde17d2dd4 +Author: Lasse Collin +Date: 2020-02-18 19:12:35 +0200 + + Revert the previous commit and add a comment. + + The previous commit broke crc32_tablegen.c. + + If the whole package is built without config.h (with defines + set on the compiler command line) this should still work fine + as long as these headers conform to C99 well enough. + + src/common/tuklib_config.h | 17 ++++++++++------- + 1 file changed, 10 insertions(+), 7 deletions(-) + +commit 4e4e9fbb7e66d45319525ac224bff48fbdd0cf6e +Author: Lasse Collin +Date: 2020-02-17 23:37:20 +0200 + + Do not check for HAVE_CONFIG_H in tuklib_config.h. + + In XZ Utils sysdefs.h takes care of it and the required headers. + + src/common/tuklib_config.h | 15 +++++++-------- + 1 file changed, 7 insertions(+), 8 deletions(-) + +commit 2d4cef954feba82073951358466a1d614141cf33 +Author: Lasse Collin +Date: 2020-02-16 11:18:28 +0200 + + sysdefs.h: Omit the conditionals around string.h and limits.h. + + string.h is used unconditionally elsewhere in the project and + configure has always stopped if limits.h is missing, so these + headers must have been always available even on the weirdest + systems. + + src/common/sysdefs.h | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +commit feb9c1969bc3eb33d4ecb72cfa897f92dae84939 +Author: Lasse Collin +Date: 2020-02-15 15:07:11 +0200 + + Build: Bump Autoconf and Libtool version requirements. + + There is no specific reason for this other than blocking + the most ancient versions. These are still old: + + Autoconf 2.69 (2012) + Automake 1.12 (2012) + gettext 0.19.6 (2015) + Libtool 2.4 (2010) + + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 3d576cf92158d62790017ad7f2dd6dc1dd6b42bb +Author: Lasse Collin +Date: 2020-02-15 03:08:32 +0200 + + Build: Use AM_GNU_GETTEXT_REQUIRE_VERSION and require 0.19.6. + + This bumps the version requirement from 0.19 (from 2014) to + 0.19.6 (2015). + + Using only the old AM_GNU_GETTEXT_VERSION results in old + gettext infrastructure being placed in the package. By using + both macros we get the latest gettext files while the other + programs in the Autotools family can still see the old macro. + + configure.ac | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +commit fa792b8befaf7cb3960b655e0a9410da866d756f +Author: Lasse Collin +Date: 2020-02-14 20:42:06 +0200 + + Translations: Add German translation of the man pages. + + Thanks to Mario BlƤttermann. + + po4a/de.po | 5532 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + po4a/po4a.conf | 2 +- + 2 files changed, 5533 insertions(+), 1 deletion(-) + +commit 6f7211b6bb47a895b47f533282dba9ee9a1b0c8b +Author: Lasse Collin +Date: 2020-02-07 15:32:21 +0200 + + Build: Add support for translated man pages using po4a. + + The dependency on po4a is optional. It's never required to install + the translated man pages when xz is built from a release tarball. + If po4a is missing when building from xz.git, the translated man + pages won't be generated but otherwise the build will work normally. + + The translations are only updated automatically by autogen.sh and + by "make mydist". This makes it easy to keep po4a as an optional + dependency and ensures that I won't forget to put updated + translations to a release tarball. + + The translated man pages aren't installed if --disable-nls is used. + + The installation of translated man pages abuses Automake internals + by calling "install-man" with redefined dist_man_MANS and man_MANS. + This makes the hairy script code slightly less hairy. If it breaks + some day, this code needs to be fixed; don't blame Automake developers. + + Also, this adds more quotes to the existing shell script code in + the Makefile.am "-hook"s. + + Makefile.am | 4 ++++ + autogen.sh | 8 ++++--- + po4a/.gitignore | 2 ++ + po4a/po4a.conf | 14 +++++++++++ + po4a/update-po | 45 ++++++++++++++++++++++++++++++++++ + src/scripts/Makefile.am | 64 +++++++++++++++++++++++++++++++++++++------------ + src/xz/Makefile.am | 50 +++++++++++++++++++++++++++----------- + src/xzdec/Makefile.am | 55 ++++++++++++++++++++++++++++++++---------- + 8 files changed, 197 insertions(+), 45 deletions(-) + +commit 426f9e5819ff7710a5ff573a96c02940be65d52f +Author: Lasse Collin +Date: 2020-02-06 17:31:38 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit e3a4481d020e4de89efa037f335cf50f3ca55592 +Author: Lasse Collin +Date: 2020-02-05 22:35:06 +0200 + + Update tests/.gitignore. + + .gitignore | 4 ++++ + 1 file changed, 4 insertions(+) + +commit 07208de92f2d5bca764f6d0ebe9d9866051dc4ef +Author: Lasse Collin +Date: 2020-02-05 22:28:51 +0200 + + Update m4/.gitignore. + + m4/.gitignore | 1 + + 1 file changed, 1 insertion(+) + +commit c91fbf223db46c3b3cb9df769863a1a60cd9c908 +Author: Lasse Collin +Date: 2020-02-05 20:47:38 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 15a133b6d1a3eab4faf6eb52a71fdc56bd65846f +Author: Lasse Collin +Date: 2020-02-05 20:40:14 +0200 + + xz: Make it a fatal error if enabling the sandbox fails. + + Perhaps it's too drastic but on the other hand it will let me + learn about possible problems if people report the errors. + This won't be backported to the v5.2 branch. + + src/xz/file_io.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit af0fb386ef55db66654ae39e2deec6e04190c4ff +Author: Lasse Collin +Date: 2020-02-05 20:33:50 +0200 + + xz: Comment out annoying sandboxing messages. + + src/xz/file_io.c | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +commit 986d8c9b52b824474088e5bb3b6940651660f0e2 +Author: Lasse Collin +Date: 2020-02-05 19:33:37 +0200 + + Build: Workaround a POSIX shell detection problem on Solaris. + + I don't know if the problem is in gnulib's gl_POSIX_SHELL macro + or if xzgrep does something that isn't in POSIX. The workaround + adds a special case for Solaris: if /usr/xpg4/bin/sh exists and + gl_cv_posix_shell wasn't overriden on the configure command line, + use that shell for xzgrep and other scripts. That shell is known + to work and exists on most Solaris systems. + + configure.ac | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad +Author: Lasse Collin +Date: 2020-02-03 22:03:50 +0200 + + Build: Update m4/ax_pthread.m4 from Autoconf Archive. + + m4/ax_pthread.m4 | 398 ++++++++++++++++++++++++++++++++++++++----------------- + 1 file changed, 279 insertions(+), 119 deletions(-) + +commit 353970510895f6a80adfe60cf71b70a95adfa8bc +Author: Lasse Collin +Date: 2020-02-01 19:56:18 +0200 + + xz: Limit --memlimit-compress to at most 4020 MiB for 32-bit xz. + + See the code comment for reasoning. It's far from perfect but + hopefully good enough for certain cases while hopefully doing + nothing bad in other situations. + + At presets -5 ... -9, 4020 MiB vs. 4096 MiB makes no difference + on how xz scales down the number of threads. + + The limit has to be a few MiB below 4096 MiB because otherwise + things like "xz --lzma2=dict=500MiB" won't scale down the dict + size enough and xz cannot allocate enough memory. With + "ulimit -v $((4096 * 1024))" on x86-64, the limit in xz had + to be no more than 4085 MiB. Some safety margin is good though. + + This is hack but it should be useful when running 32-bit xz on + a 64-bit kernel that gives full 4 GiB address space to xz. + Hopefully this is enough to solve this: + + https://bugzilla.redhat.com/show_bug.cgi?id=1196786 + + FreeBSD has a patch that limits the result in tuklib_physmem() + to SIZE_MAX on 32-bit systems. While I think it's not the way + to do it, the results on --memlimit-compress have been good. This + commit should achieve practically identical results for compression + while leaving decompression and tuklib_physmem() and thus + lzma_physmem() unaffected. + + src/xz/hardware.c | 32 +++++++++++++++++++++++++++++++- + src/xz/xz.1 | 21 ++++++++++++++++++++- + 2 files changed, 51 insertions(+), 2 deletions(-) + +commit ba76d67585f88677af9f48b48e7bdc3bb7687def +Author: Lasse Collin +Date: 2020-01-26 20:53:25 +0200 + + xz: Set the --flush-timeout deadline when the first input byte arrives. + + xz --flush-timeout=2000, old version: + + 1. xz is started. The next flush will happen after two seconds. + 2. No input for one second. + 3. A burst of a few kilobytes of input. + 4. No input for one second. + 5. Two seconds have passed and flushing starts. + + The first second counted towards the flush-timeout even though + there was no pending data. This can cause flushing to occur more + often than needed. + + xz --flush-timeout=2000, after this commit: + + 1. xz is started. + 2. No input for one second. + 3. A burst of a few kilobytes of input. The next flush will + happen after two seconds counted from the time when the + first bytes of the burst were read. + 4. No input for one second. + 5. No input for another second. + 6. Two seconds have passed and flushing starts. + + src/xz/coder.c | 6 +----- + src/xz/file_io.c | 6 +++++- + src/xz/mytime.c | 1 - + 3 files changed, 6 insertions(+), 7 deletions(-) + +commit fd47fd62bbb1bfd13ab63869137971d8b390025f +Author: Lasse Collin +Date: 2020-01-26 20:19:19 +0200 + + xz: Move flush_needed from mytime.h to file_pair struct in file_io.h. + + src/xz/coder.c | 3 ++- + src/xz/file_io.c | 3 ++- + src/xz/file_io.h | 3 +++ + src/xz/mytime.c | 3 --- + src/xz/mytime.h | 4 ---- + 5 files changed, 7 insertions(+), 9 deletions(-) + +commit 815035681063d5774d3640fc20b8ede783dd574e +Author: Lasse Collin +Date: 2020-01-26 14:49:22 +0200 + + xz: coder.c: Make writing output a separate function. + + The same code sequence repeats so it's nicer as a separate function. + Note that in one case there was no test for opt_mode != MODE_TEST, + but that was only because that condition would always be true, so + this commit doesn't change the behavior there. + + src/xz/coder.c | 30 +++++++++++++++++------------- + 1 file changed, 17 insertions(+), 13 deletions(-) + +commit 5a49e081a098455bcdbd95cefb90e9b18780fe58 +Author: Lasse Collin +Date: 2020-01-26 14:13:42 +0200 + + xz: Fix semi-busy-waiting in xz --flush-timeout. + + When input blocked, xz --flush-timeout=1 would wake up every + millisecond and initiate flushing which would have nothing to + flush and thus would just waste CPU time. The fix disables the + timeout when no input has been seen since the previous flush. + + src/xz/coder.c | 4 ++++ + src/xz/file_io.c | 15 +++++++++++---- + src/xz/file_io.h | 4 ++++ + 3 files changed, 19 insertions(+), 4 deletions(-) + +commit dcca70fe9fa3c4bec56cf9c79e966166c9a9cf6a +Author: Lasse Collin +Date: 2020-01-26 13:47:31 +0200 + + xz: Refactor io_read() a bit. + + src/xz/file_io.c | 17 ++++++++--------- + 1 file changed, 8 insertions(+), 9 deletions(-) + +commit 4ae9ab70cd3214395756435d13d8d000368ca2cb +Author: Lasse Collin +Date: 2020-01-26 13:37:08 +0200 + + xz: Update a comment in file_io.h. + + src/xz/file_io.h | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +commit 3333ba4a6795a55cf0375329ba08152bd7fcbd46 +Author: Lasse Collin +Date: 2020-01-26 13:27:51 +0200 + + xz: Move the setting of flush_needed in file_io.c to a nicer location. + + src/xz/file_io.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +commit cf2df0f05ac98c1158c6e48145900b773223605d +Author: Lasse Collin +Date: 2020-01-19 21:54:33 +0200 + + Use $(LIB_FUZZING_ENGINE) in tests/ossfuzz/Makefile. + + https://github.com/google/oss-fuzz/pull/3219#issuecomment-573751048 + + Thanks to Bhargava Shastry for sending the patch. + + tests/ossfuzz/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 7136f1735c60ac6967c4b8e277fcde53d485234f +Author: Lasse Collin +Date: 2019-12-31 00:41:28 +0200 + + Rename unaligned_read32ne to read32ne, and similarly for the others. + + src/common/tuklib_integer.h | 64 +++++++++++++++---------------- + src/liblzma/common/alone_encoder.c | 2 +- + src/liblzma/common/block_header_decoder.c | 2 +- + src/liblzma/common/block_header_encoder.c | 2 +- + src/liblzma/common/memcmplen.h | 9 ++--- + src/liblzma/common/stream_flags_decoder.c | 6 +-- + src/liblzma/common/stream_flags_encoder.c | 8 ++-- + src/liblzma/lz/lz_encoder_hash.h | 2 +- + src/liblzma/lzma/lzma_decoder.c | 2 +- + src/liblzma/lzma/lzma_encoder.c | 2 +- + src/liblzma/lzma/lzma_encoder_private.h | 3 +- + src/liblzma/simple/simple_decoder.c | 2 +- + src/liblzma/simple/simple_encoder.c | 2 +- + tests/test_block_header.c | 4 +- + tests/test_stream_flags.c | 6 +-- + 15 files changed, 54 insertions(+), 62 deletions(-) + +commit 5e78fcbf2eb21936022c9c5c3625d4da76f4b241 +Author: Lasse Collin +Date: 2019-12-31 00:29:48 +0200 + + Rename read32ne to aligned_read32ne, and similarly for the others. + + Using the aligned methods requires more care to ensure that + the address really is aligned, so it's nicer if the aligned + methods are prefixed. The next commit will remove the unaligned_ + prefix from the unaligned methods which in liblzma are used in + more places than the aligned ones. + + src/common/tuklib_integer.h | 56 +++++++++++++++++++++--------------------- + src/liblzma/check/crc32_fast.c | 4 +-- + src/liblzma/check/crc64_fast.c | 4 +-- + 3 files changed, 32 insertions(+), 32 deletions(-) + +commit 77bc5bc6dd67056cfd5888520ac930cfc57b4516 +Author: Lasse Collin +Date: 2019-12-31 00:18:24 +0200 + + Revise tuklib_integer.h and .m4. + + Add a configure option --enable-unsafe-type-punning to get the + old non-conforming memory access methods. It can be useful with + old compilers or in some other less typical situations but + shouldn't normally be used. + + Omit the packed struct trick for unaligned access. While it's + best in some cases, this is simpler. If the memcpy trick doesn't + work, one can request unsafe type punning from configure. + + Because CRC32/CRC64 code needs fast aligned reads, if no very + safe way to do it is found, type punning is used as a fallback. + This sucks but since it currently works in practice, it seems to + be the least bad option. It's never needed with GCC >= 4.7 or + Clang >= 3.6 since these support __builtin_assume_aligned and + thus fast aligned access can be done with the memcpy trick. + + Other things: + - Support GCC/Clang __builtin_bswapXX + - Cleaner bswap fallback macros + - Minor cleanups + + m4/tuklib_integer.m4 | 46 ++++- + src/common/tuklib_integer.h | 488 ++++++++++++++++++++++++-------------------- + 2 files changed, 316 insertions(+), 218 deletions(-) + +commit 8b72950a6b2e2a36c2d8fdc8857564b57191b088 +Author: Lasse Collin +Date: 2019-12-29 22:51:58 +0200 + + Tests: Hopefully fix test_check.c to work on EBCDIC systems. + + Thanks to Daniel Richard G. + + tests/test_check.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +commit 43ce4ea7c762238d3df9717b34126d3e0d7cd51c +Author: Lasse Collin +Date: 2019-09-24 23:02:40 +0300 + + Scripts: Put /usr/xpg4/bin to the beginning of PATH on Solaris. + + This adds a configure option --enable-path-for-scripts=PREFIX + which defaults to empty except on Solaris it is /usr/xpg4/bin + to make POSIX grep and others available. The Solaris case had + been documented in INSTALL with a manual fix but it's better + to do this automatically since it is needed on most Solaris + systems anyway. + + Thanks to Daniel Richard G. + + INSTALL | 43 +++++++++++++++++++++++++++++++++++-------- + configure.ac | 26 ++++++++++++++++++++++++++ + src/scripts/xzdiff.in | 1 + + src/scripts/xzgrep.in | 1 + + src/scripts/xzless.in | 1 + + src/scripts/xzmore.in | 1 + + 6 files changed, 65 insertions(+), 8 deletions(-) + +commit 6a89e656ebedd53a10cd1a063a32a9e4ade0da1f +Author: Lasse Collin +Date: 2019-07-12 18:57:43 +0300 + + Fix comment typos in tuklib_mbstr* files. + + src/common/tuklib_mbstr.h | 2 +- + src/common/tuklib_mbstr_fw.c | 2 +- + src/common/tuklib_mbstr_width.c | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +commit ac0b4212656a48ef0c187c0c941d40ac9489ae36 +Author: Lasse Collin +Date: 2019-07-12 18:30:46 +0300 + + Add missing include to tuklib_mbstr_width.c. + + It didn't matter in XZ Utils because sysdefs.h + includes string.h anyway. + + src/common/tuklib_mbstr_width.c | 1 + + 1 file changed, 1 insertion(+) + +commit 72a443281fb0b91aebf8cdff2ab1f7c07b081240 +Author: Lasse Collin +Date: 2019-07-12 18:10:57 +0300 + + Update tuklib base headers to include stdbool.h. + + src/common/tuklib_common.h | 2 +- + src/common/tuklib_config.h | 1 + + 2 files changed, 2 insertions(+), 1 deletion(-) + +commit de1f47b2b40e960b7bc3acba754f66dd19705921 +Author: Lasse Collin +Date: 2019-06-28 00:54:31 +0300 + + xz: Automatically align the strings in --info-memory. + + This makes it easier to translate the strings. + + Also, the string for amount of RAM was shortened. + + src/xz/hardware.c | 45 ++++++++++++++++++++++++++++++++++----------- + 1 file changed, 34 insertions(+), 11 deletions(-) + +commit 8ce679125dbd0e2058d8f886e738d7f19a45cab5 +Author: Lasse Collin +Date: 2019-06-25 23:15:21 +0300 + + liblzma: Fix a buggy comment. + + src/liblzma/lz/lz_encoder_mf.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit fc77929e92e869f6869bf88931066103fd75f376 +Author: Lasse Collin +Date: 2019-06-25 00:16:06 +0300 + + configure.ac: Fix a typo in a comment. + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit e873902641794210ad7db59743f98e3e1cd6139f +Author: Lasse Collin +Date: 2019-06-25 00:08:13 +0300 + + Tests: Silence warnings from clang -Wassign-enum. + + Also changed 999 to 99 so it fits even if lzma_check happened + to be 8 bits wide. + + tests/test_block_header.c | 3 ++- + tests/test_stream_flags.c | 2 +- + 2 files changed, 3 insertions(+), 2 deletions(-) + +commit d499e467d99efeaae688564eedc4548837c1416a +Author: Lasse Collin +Date: 2019-06-24 23:52:17 +0300 + + liblzma: Add a comment. + + src/liblzma/common/stream_encoder_mt.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit a12b13c5f0d54c684fa8446f93fdac08ab2a716b +Author: Lasse Collin +Date: 2019-06-24 23:45:21 +0300 + + liblzma: Silence clang -Wmissing-variable-declarations. + + src/liblzma/check/crc32_table.c | 3 +++ + src/liblzma/check/crc64_table.c | 3 +++ + 2 files changed, 6 insertions(+) + +commit 1b4675cebf7471f7cc9b7072c950e3de97147063 +Author: Lasse Collin +Date: 2019-06-24 23:25:41 +0300 + + Add LZMA_RET_INTERNAL1..8 to lzma_ret and use one for LZMA_TIMED_OUT. + + LZMA_TIMED_OUT is *internally* used as a value for lzma_ret + enumeration. Previously it was #defined to 32 and cast to lzma_ret. + That way it wasn't visible in the public API, but this was hackish. + + Now the public API has eight LZMA_RET_INTERNALx members and + LZMA_TIMED_OUT is #defined to LZMA_RET_INTERNAL1. This way + the code is cleaner overall although the public API has a few + extra mysterious enum members. + + src/liblzma/api/lzma/base.h | 15 ++++++++++++++- + src/liblzma/common/common.c | 4 +--- + src/liblzma/common/common.h | 5 ++--- + src/xz/message.c | 8 ++++++++ + 4 files changed, 25 insertions(+), 7 deletions(-) + +commit 159c43875eb25deea626ed651274464bae3e32ef +Author: Lasse Collin +Date: 2019-06-24 22:57:43 +0300 + + xz: Silence a warning from clang -Wsign-conversion in main.c. + + src/xz/main.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 466cfcd3e52f6750ce28a635997f3dd84fb18515 +Author: Lasse Collin +Date: 2019-06-24 22:52:20 +0300 + + xz: Make "headings" static in list.c. + + Caught by clang -Wmissing-variable-declarations. + + src/xz/list.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 608517b9b76c41fac6613dbda1193d6f41338e19 +Author: Lasse Collin +Date: 2019-06-24 22:47:39 +0300 + + liblzma: Remove incorrect uses of lzma_attribute((__unused__)). + + Caught by clang -Wused-but-marked-unused. + + src/liblzma/common/alone_decoder.c | 3 +-- + src/liblzma/common/alone_encoder.c | 3 +-- + src/liblzma/lz/lz_decoder.c | 3 +-- + 3 files changed, 3 insertions(+), 6 deletions(-) + +commit c2d2ab6a9d41a2b55d047c5b710aacf80d219255 +Author: Lasse Collin +Date: 2019-06-24 20:53:55 +0300 + + Tests: Silence a warning from -Wsign-conversion. + + tests/create_compress_files.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +commit 2402f7873dcae719d0ebddd23bb579074519ac52 +Author: Lasse Collin +Date: 2019-06-24 20:45:49 +0300 + + xz: Fix an integer overflow with 32-bit off_t. + + Or any off_t which isn't very big (like signed 64 bit integer + that most system have). A small off_t could overflow if the + file being decompressed had long enough run of zero bytes, + which would result in corrupt output. + + src/xz/file_io.c | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +commit 4fd3a8dd0b60f029e1c66a0ee634f9e9fda3caa9 +Author: Lasse Collin +Date: 2019-06-24 01:24:17 +0300 + + xz: Cleanup io_seek_src() a bit. + + lseek() returns -1 on error and checking for -1 is nicer. + + src/xz/file_io.c | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +commit dfda7cf6afa486e10df035327d68753896dfb48a +Author: Lasse Collin +Date: 2019-06-24 00:57:23 +0300 + + Tests: Remove a duplicate branch from tests/tests.h. + + The duplication was introduced about eleven years ago and + should have been cleaned up back then already. + + This was caught by -Wduplicated-branches. + + tests/tests.h | 9 ++------- + 1 file changed, 2 insertions(+), 7 deletions(-) + +commit 1d4a904d8fb634bd5a04f7fbdd17d3739f3d8866 +Author: Lasse Collin +Date: 2019-06-24 00:40:45 +0300 + + xz: Change io_seek_src and io_pread arguments from off_t to uint64_t. + + This helps fixing warnings from -Wsign-conversion and makes the + code look better too. + + src/xz/file_io.c | 16 ++++++++++++---- + src/xz/file_io.h | 4 ++-- + src/xz/list.c | 9 ++++----- + 3 files changed, 18 insertions(+), 11 deletions(-) + +commit 50120deb0159fcb53ee1a6caffb2bb81a1ecd990 +Author: Lasse Collin +Date: 2019-06-24 00:12:38 +0300 + + xz: list.c: Fix some warnings from -Wsign-conversion. + + src/xz/list.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +commit d0a78751eb54fb1572002746c533936a118e4e42 +Author: Lasse Collin +Date: 2019-06-23 23:22:45 +0300 + + tuklib_mbstr_width: Fix a warning from -Wsign-conversion. + + src/common/tuklib_mbstr_width.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 7883d73530b4b2a701ddd7d50c35676cbc158039 +Author: Lasse Collin +Date: 2019-06-23 23:19:34 +0300 + + xz: Fix some of the warnings from -Wsign-conversion. + + src/xz/args.c | 4 ++-- + src/xz/coder.c | 4 ++-- + src/xz/file_io.c | 5 +++-- + src/xz/message.c | 4 ++-- + src/xz/mytime.c | 4 ++-- + src/xz/options.c | 2 +- + src/xz/util.c | 4 ++-- + 7 files changed, 14 insertions(+), 13 deletions(-) + +commit c2b994fe3d35e9e575c28869a2f7f534f2495d05 +Author: Lasse Collin +Date: 2019-06-23 22:27:45 +0300 + + tuklib_cpucores: Silence warnings from -Wsign-conversion. + + src/common/tuklib_cpucores.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +commit 07c4fa9e1a195e0543f271380c8de22a3ab145ff +Author: Lasse Collin +Date: 2019-06-23 21:40:47 +0300 + + xzdec: Fix warnings from -Wsign-conversion. + + src/xzdec/xzdec.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit dfac2c9a1d7d4a2b8a5d7c9c6d567dee48318bcf +Author: Lasse Collin +Date: 2019-06-23 21:38:56 +0300 + + liblzma: Fix warnings from -Wsign-conversion. + + Also, more parentheses were added to the literal_subcoder + macro in lzma_comon.h (better style but no functional change + in the current usage). + + src/liblzma/common/block_header_decoder.c | 2 +- + src/liblzma/delta/delta_decoder.c | 2 +- + src/liblzma/lzma/fastpos.h | 2 +- + src/liblzma/lzma/lzma2_decoder.c | 8 ++++---- + src/liblzma/lzma/lzma_common.h | 3 ++- + src/liblzma/lzma/lzma_decoder.c | 16 ++++++++-------- + src/liblzma/simple/arm.c | 6 +++--- + src/liblzma/simple/armthumb.c | 8 ++++---- + src/liblzma/simple/ia64.c | 2 +- + src/liblzma/simple/powerpc.c | 9 +++++---- + src/liblzma/simple/x86.c | 2 +- + 11 files changed, 31 insertions(+), 29 deletions(-) + +commit 41838dcc26375f6aa393a63e4d81e2f4d223de07 +Author: Lasse Collin +Date: 2019-06-23 19:33:55 +0300 + + tuklib_integer: Silence warnings from -Wsign-conversion. + + src/common/tuklib_integer.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 3ce05d235f736d392347a05086b8033416874b87 +Author: Lasse Collin +Date: 2019-06-20 19:40:30 +0300 + + tuklib_integer: Fix usage of conv macros. + + Use a temporary variable instead of e.g. + conv32le(unaligned_read32ne(buf)) because the macro can + evaluate its argument multiple times. + + src/common/tuklib_integer.h | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +commit b525b0c0ef40cd89b69294c9b8d57f4a8db58e1f +Author: Lasse Collin +Date: 2019-06-03 20:44:19 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 039a168e8cf201d5104a25ec41f0cf25eda6cc53 +Author: Lasse Collin +Date: 2019-06-03 20:41:54 +0300 + + liblzma: Fix comments. + + Thanks to Bruce Stark. + + src/liblzma/common/alone_encoder.c | 4 ++-- + src/liblzma/common/block_util.c | 2 +- + src/liblzma/common/common.c | 2 +- + src/liblzma/common/filter_common.h | 2 +- + src/liblzma/common/filter_decoder.h | 2 +- + src/liblzma/common/filter_flags_encoder.c | 2 +- + 6 files changed, 7 insertions(+), 7 deletions(-) + +commit c460f6defebc5a81bbca90adc2476154ca244f69 +Author: Lasse Collin +Date: 2019-06-02 00:50:59 +0300 + + liblzma: Fix one more unaligned read to use unaligned_read16ne(). + + src/liblzma/lz/lz_encoder_hash.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit c81d77c537f0b8c8672868e1dc6cf7290ce4a25b +Author: Lasse Collin +Date: 2019-06-01 21:41:55 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 386394fc9fcde2615391f804eaa466749f96f4ef +Author: Lasse Collin +Date: 2019-06-01 21:36:13 +0300 + + liblzma: memcmplen: Use ctz32() from tuklib_integer.h. + + The same compiler-specific #ifdefs are already in tuklib_integer.h + + src/liblzma/common/memcmplen.h | 10 +--------- + 1 file changed, 1 insertion(+), 9 deletions(-) + +commit 264ab971ce2994baac41b1579c9c35aba7743fc8 +Author: Lasse Collin +Date: 2019-06-01 21:30:03 +0300 + + tuklib_integer: Cleanup MSVC-specific code. + + src/common/tuklib_integer.h | 20 +++++++++----------- + 1 file changed, 9 insertions(+), 11 deletions(-) + +commit 33773c6f2a8711d4aa6656795db52c59a28580ec +Author: Lasse Collin +Date: 2019-06-01 19:01:21 +0300 + + liblzma: Use unaligned_readXXne functions instead of type punning. + + Now gcc -fsanitize=undefined should be clean. + + Thanks to Jeffrey Walton. + + src/liblzma/common/memcmplen.h | 12 ++++++------ + src/liblzma/lzma/lzma_encoder_private.h | 2 +- + 2 files changed, 7 insertions(+), 7 deletions(-) + +commit e5f13a66567b1987e0aae42c6fdcd277bb5810ba +Author: Lasse Collin +Date: 2019-06-01 18:46:54 +0300 + + tuklib_integer: Autodetect support for unaligned access on ARM. + + The result is used as the default for --enable-unaligned-access. + The test should work with GCC and Clang. + + m4/tuklib_integer.m4 | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +commit 3bc112c2d38d5f348bce7bc2422286b1692c7490 +Author: Lasse Collin +Date: 2019-06-01 18:41:16 +0300 + + tuklib_integer: Improve unaligned memory access. + + Now memcpy() or GNU C packed structs for unaligned access instead + of type punning. See the comment in this commit for details. + + Avoiding type punning with unaligned access is needed to + silence gcc -fsanitize=undefined. + + New functions: unaliged_readXXne and unaligned_writeXXne where + XX is 16, 32, or 64. + + src/common/tuklib_integer.h | 180 +++++++++++++++++++++++++++++++++++++++++--- + 1 file changed, 168 insertions(+), 12 deletions(-) + +commit 2a22de439ec63da1927b640eda309296a1e8dce5 +Author: Lasse Collin +Date: 2019-05-13 20:05:17 +0300 + + liblzma: Avoid memcpy(NULL, foo, 0) because it is undefined behavior. + + I should have always known this but I didn't. Here is an example + as a reminder to myself: + + int mycopy(void *dest, void *src, size_t n) + { + memcpy(dest, src, n); + return dest == NULL; + } + + In the example, a compiler may assume that dest != NULL because + passing NULL to memcpy() would be undefined behavior. Testing + with GCC 8.2.1, mycopy(NULL, NULL, 0) returns 1 with -O0 and -O1. + With -O2 the return value is 0 because the compiler infers that + dest cannot be NULL because it was already used with memcpy() + and thus the test for NULL gets optimized out. + + In liblzma, if a null-pointer was passed to memcpy(), there were + no checks for NULL *after* the memcpy() call, so I cautiously + suspect that it shouldn't have caused bad behavior in practice, + but it's hard to be sure, and the problematic cases had to be + fixed anyway. + + Thanks to Jeffrey Walton. + + src/liblzma/common/common.c | 6 +++++- + src/liblzma/lz/lz_decoder.c | 12 +++++++++--- + src/liblzma/simple/simple_coder.c | 10 +++++++++- + 3 files changed, 23 insertions(+), 5 deletions(-) + +commit d3fc850cfedc058247d9e334ce59bbc8f2286d8a +Author: Lasse Collin +Date: 2019-05-11 20:56:08 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 4adb8288ab61d5f14e212007b8742df0710baf73 +Author: Lasse Collin +Date: 2019-05-11 20:54:12 +0300 + + xz: Update xz man page date. + + src/xz/xz.1 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 2fb0ddaa557ce86e38fe06439930fa8665f092fd +Author: Antoine Cœur +Date: 2019-05-08 13:30:57 +0800 + + spelling + + Doxyfile.in | 2 +- + NEWS | 2 +- + doc/examples/11_file_info.c | 2 +- + src/liblzma/api/lzma/block.h | 2 +- + src/liblzma/api/lzma/hardware.h | 2 +- + src/liblzma/api/lzma/lzma12.h | 2 +- + src/liblzma/api/lzma/vli.h | 2 +- + src/liblzma/common/file_info.c | 4 ++-- + src/liblzma/common/hardware_physmem.c | 2 +- + src/liblzma/common/index.c | 4 ++-- + src/liblzma/common/stream_encoder_mt.c | 2 +- + src/liblzma/common/vli_decoder.c | 2 +- + src/liblzma/lz/lz_decoder.c | 2 +- + src/scripts/xzgrep.in | 2 +- + src/xz/args.c | 2 +- + src/xz/coder.c | 4 ++-- + src/xz/list.c | 4 ++-- + src/xz/main.c | 2 +- + src/xz/mytime.h | 2 +- + src/xz/private.h | 2 +- + src/xz/xz.1 | 2 +- + windows/build.bash | 2 +- + 22 files changed, 26 insertions(+), 26 deletions(-) + +commit 4ed339606156bd313ed99237485cb8ed0362d64f +Author: Lasse Collin +Date: 2019-05-01 18:43:10 +0300 + + xz: In xz -lvv look at the widths of the check names too. + + Now the widths of the check names is used to adjust the width + of the Check column. This way there no longer is a need to restrict + the widths of the check names to be at most ten terminal-columns. + + src/xz/list.c | 32 ++++++++++++++++++++++++++------ + 1 file changed, 26 insertions(+), 6 deletions(-) + +commit 2f4281a1001dcf7fdf1418c0c0d246c16561fb65 +Author: Lasse Collin +Date: 2019-05-01 18:33:25 +0300 + + xz: Fix xz -lvv column alignment to look at the translated strings. + + src/xz/list.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 01d01b7c7c0b8eaf7f780a5584ec52c22d10fa4a +Author: Lasse Collin +Date: 2019-05-01 16:52:36 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 64030c6b17f7743df03a9948a0ccfcdf40c6b97c +Author: Lasse Collin +Date: 2019-05-01 16:43:16 +0300 + + Windows: Update VS version in windows/vs2019/config.h. + + windows/vs2019/config.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 2dc9117f5fbfab31444a3ca1e55795ccfa8a9f51 +Author: Julien Marrec +Date: 2019-04-25 17:44:06 +0200 + + Windows: Upgrade solution itself + + windows/vs2019/xz_win.sln | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +commit ac31413916fa9b11bab17f0f0aa63e2869360f6f +Author: Julien Marrec +Date: 2019-04-25 17:40:24 +0200 + + Windows: Upgrade solution with VS2019 + + windows/vs2019/liblzma.vcxproj | 15 ++++++++------- + windows/vs2019/liblzma_dll.vcxproj | 15 ++++++++------- + 2 files changed, 16 insertions(+), 14 deletions(-) + +commit be25a0c37ba92a20c390b4d17fe502457fe96b71 +Author: Julien Marrec +Date: 2019-04-25 17:39:32 +0200 + + Windows: Duplicate windows/vs2017 before upgrading + + windows/vs2019/config.h | 148 ++++++++++++++ + windows/vs2019/liblzma.vcxproj | 356 ++++++++++++++++++++++++++++++++++ + windows/vs2019/liblzma_dll.vcxproj | 385 +++++++++++++++++++++++++++++++++++++ + windows/vs2019/xz_win.sln | 48 +++++ + 4 files changed, 937 insertions(+) + +commit d0e58b3a51e8e616f3dc26ec7b7e4aa0fa6991ad +Author: Lasse Collin +Date: 2019-03-04 22:49:04 +0200 + + README: Update translation instructions. + + XZ Utils is now part of the Translation Project + . + + README | 32 +++++++++++++------------------- + 1 file changed, 13 insertions(+), 19 deletions(-) + +commit a750c35a7d45a16c11c1d40fecee8443c32a9996 +Author: Lasse Collin +Date: 2019-03-04 21:20:39 +0200 + + xz: Automatically align column headings in xz -lvv. + + src/xz/list.c | 263 ++++++++++++++++++++++++++++++++++++++++++++++------------ + 1 file changed, 212 insertions(+), 51 deletions(-) + +commit 6cb42e8aa1dc37bf403a9f5acbd07e86036b7e77 +Author: Lasse Collin +Date: 2019-03-04 01:07:59 +0200 + + xz: Automatically align strings ending in a colon in --list output. + + This should avoid alignment errors in translations with these + strings. + + src/xz/list.c | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++------- + 1 file changed, 102 insertions(+), 12 deletions(-) + +commit 1e3f29b62f2c03e50fc9ebea7b83c1497dd35484 +Author: Lasse Collin +Date: 2019-01-13 17:29:23 +0200 + + Windows/VS2017: Omit WindowsTargetPlatformVersion from project files. + + I understood that if a WTPV is specified, it's often wrong + because different VS installations have different SDK version + installed. Omitting the WTPV tag makes VS2017 default to + Windows SDK 8.1 which often is also missing, so in any case + people may need to specify the WTPV before building. But some + day in the future a missing WTPV tag will start to default to + the latest installed SDK which sounds reasonable: + + https://developercommunity.visualstudio.com/content/problem/140294/windowstargetplatformversion-makes-it-impossible-t.html + + Thanks to "dom". + + windows/INSTALL-MSVC.txt | 4 ++++ + windows/vs2017/liblzma.vcxproj | 1 - + windows/vs2017/liblzma_dll.vcxproj | 1 - + 3 files changed, 4 insertions(+), 2 deletions(-) + +commit 4d86076332aece6314063d3712a5f364172bbb0f +Author: Lasse Collin +Date: 2018-12-20 20:42:29 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit b55d79461d1f6aeaac03c7dae84481e5eb8bea4c +Author: Lasse Collin +Date: 2018-12-14 20:34:30 +0200 + + xz: Fix a crash in progress indicator when in passthru mode. + + "xz -dcfv not_an_xz_file" crashed (all four options are + required to trigger it). It caused xz to call + lzma_get_progress(&strm, ...) when no coder was initialized + in strm. In this situation strm.internal is NULL which leads + to a crash in lzma_get_progress(). + + The bug was introduced when xz started using lzma_get_progress() + to get progress info for multi-threaded compression, so the + bug is present in versions 5.1.3alpha and higher. + + Thanks to Filip Palian for + the bug report. + + src/xz/coder.c | 11 +++++++---- + src/xz/message.c | 18 ++++++++++++++++-- + src/xz/message.h | 3 ++- + 3 files changed, 25 insertions(+), 7 deletions(-) + +commit 4ae5526de013efd1021686fa80bdd10cf1cb9c56 +Author: Lasse Collin +Date: 2018-11-22 17:20:31 +0200 + + xz: Update man page timestamp. + + src/xz/xz.1 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 6a36d0d5f49e0080ff64dd9ef250abd489bea2ad +Author: Pavel Raiskup +Date: 2018-11-22 15:14:34 +0100 + + 'have have' typos + + src/xz/signals.c | 2 +- + src/xz/xz.1 | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit 9eca51ef805ed8002a851df1b4995d71826c8b6e +Author: Lasse Collin +Date: 2018-11-02 20:40:48 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 106d1a663d4ba42b63231caa289f531548df81c1 +Author: Lasse Collin +Date: 2018-11-02 20:18:45 +0200 + + Tests: Add a fuzz test program and a config file for OSS-Fuzz. + + Thanks to Bhargava Shastry and Github user pdknsk. + + tests/Makefile.am | 1 + + tests/ossfuzz/Makefile | 7 ++++ + tests/ossfuzz/config/fuzz.dict | 2 + + tests/ossfuzz/config/fuzz.options | 2 + + tests/ossfuzz/fuzz.c | 82 +++++++++++++++++++++++++++++++++++++++ + 5 files changed, 94 insertions(+) + +commit a18ae42a79a19b1394b41eb3e238139fd28012ec +Author: Lasse Collin +Date: 2018-10-26 22:49:10 +0300 + + liblzma: Don't verify header CRC32s if building for fuzz testing. + + FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION is #defined when liblzma + is being built for fuzz testing. + + Most fuzzed inputs would normally get rejected because of incorrect + CRC32 and the actual header decoding code wouldn't get fuzzed. + Disabling CRC32 checks avoids this problem. The fuzzer program + must still use LZMA_IGNORE_CHECK flag to disable verification of + integrity checks of uncompressed data. + + src/liblzma/common/block_header_decoder.c | 5 ++++- + src/liblzma/common/index_decoder.c | 5 ++++- + src/liblzma/common/index_hash.c | 5 ++++- + src/liblzma/common/stream_flags_decoder.c | 10 ++++++++-- + 4 files changed, 20 insertions(+), 5 deletions(-) + +commit f76f7516d6a1c832f61810c82e92d151cc80966c +Author: Lasse Collin +Date: 2018-07-27 18:10:44 +0300 + + xzless: Rename unused variables to silence static analysers. + + In this particular case I don't see this affecting readability + of the code. + + Thanks to Pavel Raiskup. + + src/scripts/xzless.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 3cbcaeb07eb7543735befd6f507fdb5fa4363cff +Author: Lasse Collin +Date: 2018-07-27 16:02:58 +0300 + + liblzma: Remove an always-true condition from lzma_index_cat(). + + This should help static analysis tools to see that newg + isn't leaked. + + Thanks to Pavel Raiskup. + + src/liblzma/common/index.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 76762ae6098ec55c326f4b4b4a42e8c1918ee81f +Author: Lasse Collin +Date: 2018-05-19 21:23:25 +0300 + + liblzma: Improve lzma_properties_decode() API documentation. + + src/liblzma/api/lzma/filter.h | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +commit 2267f5b0d20a5d24e93fcd9f72ea7eeb0d89708c +Author: Lasse Collin +Date: 2018-04-29 18:58:19 +0300 + + Bump the version number to 5.3.1alpha. + + src/liblzma/api/lzma/version.h | 2 +- + src/liblzma/liblzma.map | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit cee3021d30704858e4bdd22240e7d28e570d7451 +Author: Lasse Collin +Date: 2018-04-29 18:48:00 +0300 + + extra/scanlzma: Fix compiler warnings. + + extra/scanlzma/scanlzma.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +commit c5c7ceb08a011b97d261798033e2c39613a69eb7 +Author: Lasse Collin +Date: 2018-04-29 18:44:47 +0300 + + DOS: Add file_info.c to the list of files to build. + + dos/Makefile | 1 + + 1 file changed, 1 insertion(+) + +commit 114cab97af766b21e0fc8620479202fb1e7a5e41 +Author: Lasse Collin +Date: 2018-04-29 18:33:10 +0300 + + Update NEWS for 5.3.1alpha. + + NEWS | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +commit b8139e11c512bbf32bf58ab0689f9bb6c52819da +Author: Lasse Collin +Date: 2018-04-29 18:15:37 +0300 + + Add NEWS for 5.2.4. + + NEWS | 27 +++++++++++++++++++++++++++ + 1 file changed, 27 insertions(+) + +commit 47b59d47cfd904a420fbd45629d168ca1973721d +Author: Lasse Collin +Date: 2018-02-06 19:36:30 +0200 + + Update THANKS. + + THANKS | 2 ++ + 1 file changed, 2 insertions(+) + +commit bc197991690ede24ab143665b5b0f0f9cb35cc46 +Author: Ben Boeckel +Date: 2018-01-29 13:58:18 -0500 + + nothrow: use noexcept for C++11 and newer + + In C++11, the `throw()` specifier is deprecated and `noexcept` is + preffered instead. + + src/liblzma/api/lzma.h | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +commit fb6d4f83cb6e144734f2a4216bb117bd56dc3cb5 +Author: Lasse Collin +Date: 2018-02-06 18:02:48 +0200 + + liblzma: Remove incorrect #ifdef from range_common.h. + + In most cases it was harmless but it could affect some + custom build systems. + + Thanks to Pippijn van Steenhoven. + + src/liblzma/rangecoder/range_common.h | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +commit bc577d35c2d0ed17f554d2d8107b2a2a9abbac76 +Author: Lasse Collin +Date: 2018-01-10 22:10:39 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 713bbc1a80f26d34c96ed3dbb9887362204de3a1 +Author: Lasse Collin +Date: 2018-01-10 21:54:27 +0200 + + tuklib_integer: New Intel C compiler needs immintrin.h. + + Thanks to Melanie Blower (Intel) for the patch. + + src/common/tuklib_integer.h | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +commit a0ee1afbd99da138b559cb27fa2022e7f1ab44f3 +Author: Lasse Collin +Date: 2017-09-24 20:04:24 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit a1e2c568de29c0b57d873eab40a2879b749da429 +Author: Lasse Collin +Date: 2017-09-16 20:36:20 +0300 + + Windows: Fix paths in VS project files. + + Some paths use slashes instead of backslashes as directory + separators... now it should work (I tested VS2013 version). + + windows/vs2013/liblzma.vcxproj | 12 ++++++------ + windows/vs2013/liblzma_dll.vcxproj | 24 ++++++++++++------------ + windows/vs2017/liblzma.vcxproj | 12 ++++++------ + windows/vs2017/liblzma_dll.vcxproj | 24 ++++++++++++------------ + 4 files changed, 36 insertions(+), 36 deletions(-) + +commit cea5cf8d26c9d1dc30a808614d79c0b25640e15e +Author: Lasse Collin +Date: 2017-09-16 12:56:20 +0300 + + Windows: Update VS2017 project files to include file info decoder. + + windows/vs2017/liblzma.vcxproj | 2 ++ + windows/vs2017/liblzma_dll.vcxproj | 2 ++ + 2 files changed, 4 insertions(+) + +commit 95d563db3ee497b223e522b699c4d4c29943eef0 +Author: Lasse Collin +Date: 2017-09-16 12:54:23 +0300 + + Windows: Add project files for VS2017. + + These files match the v5.2 branch (no file info decoder). + + windows/vs2017/config.h | 148 ++++++++++++++ + windows/vs2017/liblzma.vcxproj | 355 ++++++++++++++++++++++++++++++++++ + windows/vs2017/liblzma_dll.vcxproj | 384 +++++++++++++++++++++++++++++++++++++ + windows/vs2017/xz_win.sln | 48 +++++ + 4 files changed, 935 insertions(+) + +commit ab72416d62ea8f50ad31d5b8545fcb6a2bf96b73 +Author: Lasse Collin +Date: 2017-09-16 12:45:50 +0300 + + Windows: Update VS2013 project files to include file info decoder. + + windows/vs2013/liblzma.vcxproj | 2 ++ + windows/vs2013/liblzma_dll.vcxproj | 2 ++ + 2 files changed, 4 insertions(+) + +commit 82388980187b0e3794d187762054200bbdcc9a53 +Author: Lasse Collin +Date: 2017-09-16 12:39:43 +0300 + + Windows: Move VS2013 files into windows/vs2013 directory. + + windows/{ => vs2013}/config.h | 0 + windows/{ => vs2013}/liblzma.vcxproj | 278 +++++++++++++++--------------- + windows/{ => vs2013}/liblzma_dll.vcxproj | 280 +++++++++++++++---------------- + windows/{ => vs2013}/xz_win.sln | 0 + 4 files changed, 279 insertions(+), 279 deletions(-) + +commit 94e3f986aa4e14b4ff01ac24857f499630d6d180 +Author: Lasse Collin +Date: 2017-08-14 20:08:33 +0300 + + Fix or hide warnings from GCC 7's -Wimplicit-fallthrough. + + src/liblzma/lzma/lzma_decoder.c | 6 ++++++ + src/xz/list.c | 2 ++ + 2 files changed, 8 insertions(+) + +commit 0b0e1e6803456aac641a59332200f8e95e2b7ea8 +Author: Alexey Tourbin +Date: 2017-05-16 23:56:35 +0300 + + Docs: Fix a typo in a comment in doc/examples/02_decompress.c. + + doc/examples/02_decompress.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit a015cd1f90116e655be4eaf4aad42c4c911c2807 +Author: Lasse Collin +Date: 2017-05-23 18:34:43 +0300 + + xz: Fix "xz --list --robot missing_or_bad_file.xz". + + It ended up printing an uninitialized char-array when trying to + print the check names (column 7) on the "totals" line. + + This also changes the column 12 (minimum xz version) to + 50000002 (xz 5.0.0) instead of 0 when there are no valid + input files. + + Thanks to kidmin for the bug report. + + src/xz/list.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +commit c2e29f06a7d1e3ba242ac2fafc69f5d6e92f62cd +Author: Lasse Collin +Date: 2017-04-24 20:20:11 +0300 + + Docs: Add doc/examples/11_file_info.c. + + doc/examples/11_file_info.c | 206 ++++++++++++++++++++++++++++++++++++++++++++ + doc/examples/Makefile | 3 +- + 2 files changed, 208 insertions(+), 1 deletion(-) + +commit 1520f6ec808896375ac7bf778c449e0f7dea5f46 +Author: Lasse Collin +Date: 2017-04-24 19:48:47 +0300 + + Build: Omit pre-5.0.0 entries from the generated ChangeLog. + + It makes ChangeLog significantly smaller. + + Makefile.am | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 8269782283806c90a8509c2ac2a308344f70e171 +Author: Lasse Collin +Date: 2017-04-24 19:48:23 +0300 + + xz: Use lzma_file_info_decoder() for --list. + + src/xz/list.c | 254 ++++++++++------------------------------------------------ + 1 file changed, 44 insertions(+), 210 deletions(-) + +commit e353d0b1cc0d3997ae5048faa8e6786414953e06 +Author: Lasse Collin +Date: 2017-04-24 19:35:50 +0300 + + liblzma: Add lzma_file_info_decoder(). + + src/liblzma/api/lzma/index.h | 66 ++++ + src/liblzma/common/Makefile.inc | 1 + + src/liblzma/common/file_info.c | 855 ++++++++++++++++++++++++++++++++++++++++ + src/liblzma/liblzma.map | 7 +- + 4 files changed, 928 insertions(+), 1 deletion(-) + +commit 144ef9e19e9496c995b21505dd1e111c442968d1 +Author: Lasse Collin +Date: 2017-04-24 19:30:22 +0300 + + Update the Git repository URL to HTTPS in ChangeLog. + + ChangeLog | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 8c9842c265993d7dd4039f732d3546267fb5ecc4 +Author: Lasse Collin +Date: 2017-04-21 15:05:16 +0300 + + liblzma: Rename LZMA_SEEK to LZMA_SEEK_NEEDED and seek_in to seek_pos. + + src/liblzma/api/lzma/base.h | 18 +++++++++--------- + src/liblzma/common/common.c | 2 +- + src/xz/message.c | 2 +- + 3 files changed, 11 insertions(+), 11 deletions(-) + +commit 662b27c417cab248cb365dd7682121bdec4d5ae7 +Author: Lasse Collin +Date: 2017-04-19 22:17:35 +0300 + + Update the home page URLs to HTTPS. + + COPYING | 2 +- + README | 2 +- + configure.ac | 2 +- + doc/faq.txt | 4 ++-- + dos/config.h | 2 +- + src/common/common_w32res.rc | 2 +- + src/xz/xz.1 | 6 +++--- + src/xzdec/xzdec.1 | 4 ++-- + windows/README-Windows.txt | 2 +- + windows/config.h | 2 +- + 10 files changed, 14 insertions(+), 14 deletions(-) + +commit c28f0b3d00af87b92dda229831548d8eb0067d1d +Author: Lasse Collin +Date: 2017-04-05 18:47:22 +0300 + + xz: Add io_seek_src(). + + src/xz/file_io.c | 20 +++++++++++++++++--- + src/xz/file_io.h | 13 +++++++++++++ + 2 files changed, 30 insertions(+), 3 deletions(-) + +commit bba477257d7319c8764890f3669175b866d24944 +Author: Lasse Collin +Date: 2017-03-30 22:01:54 +0300 + + xz: Use POSIX_FADV_RANDOM for in "xz --list" mode. + + xz --list is random access so POSIX_FADV_SEQUENTIAL was clearly + wrong. + + src/xz/file_io.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +commit 310d19816d1652b0c8bb1b82574d46345d924752 +Author: Lasse Collin +Date: 2017-03-30 20:03:05 +0300 + + liblzma: Make lzma_index_decoder_init() visible to other liblzma funcs. + + This is to allow other functions to use it without going + via the public API (lzma_index_decoder()). + + src/liblzma/common/Makefile.inc | 1 + + src/liblzma/common/index_decoder.c | 10 +++++----- + src/liblzma/common/index_decoder.h | 24 ++++++++++++++++++++++++ + 3 files changed, 30 insertions(+), 5 deletions(-) + +commit a27920002dbc469f778a134fc665b7c3ea73701b +Author: Lasse Collin +Date: 2017-03-30 20:00:09 +0300 + + liblzma: Add generic support for input seeking (LZMA_SEEK). + + Also mention LZMA_SEEK in xz/message.c to silence a warning. + + src/liblzma/api/lzma/base.h | 31 ++++++++++++++++++++++++++++++- + src/liblzma/common/common.c | 12 +++++++++++- + src/xz/message.c | 1 + + 3 files changed, 42 insertions(+), 2 deletions(-) + +commit a0b1dda409bc3e6e2957a2651663fc411d2caf2d +Author: Lasse Collin +Date: 2017-03-30 19:47:45 +0300 + + liblzma: Fix lzma_memlimit_set(strm, 0). + + The 0 got treated specially in a buggy way and as a result + the function did nothing. The API doc said that 0 was supposed + to return LZMA_PROG_ERROR but it didn't. + + Now 0 is treated as if 1 had been specified. This is done because + 0 is already used to indicate an error from lzma_memlimit_get() + and lzma_memusage(). + + In addition, lzma_memlimit_set() no longer checks that the new + limit is at least LZMA_MEMUSAGE_BASE. It's counter-productive + for the Index decoder and was actually needed only by the + auto decoder. Auto decoder has now been modified to check for + LZMA_MEMUSAGE_BASE. + + src/liblzma/api/lzma/base.h | 7 ++++++- + src/liblzma/common/auto_decoder.c | 3 +++ + src/liblzma/common/common.c | 6 ++++-- + 3 files changed, 13 insertions(+), 3 deletions(-) + +commit 84462afaada61379f5878e46f8f00e25a1cdcf29 +Author: Lasse Collin +Date: 2017-03-30 19:16:55 +0300 + + liblzma: Similar memlimit fix for stream_, alone_, and auto_decoder. + + src/liblzma/api/lzma/container.h | 21 +++++++++++++++++---- + src/liblzma/common/alone_decoder.c | 5 +---- + src/liblzma/common/auto_decoder.c | 5 +---- + src/liblzma/common/stream_decoder.c | 5 +---- + 4 files changed, 20 insertions(+), 16 deletions(-) + +commit cbc74017939690d13441b8926bb743fb03211b83 +Author: Lasse Collin +Date: 2017-03-30 18:58:18 +0300 + + liblzma: Fix handling of memlimit == 0 in lzma_index_decoder(). + + It returned LZMA_PROG_ERROR, which was done to avoid zero as + the limit (because it's a special value elsewhere), but using + LZMA_PROG_ERROR is simply inconvenient and can cause bugs. + + The fix/workaround is to treat 0 as if it were 1 byte. It's + effectively the same thing. The only weird consequence is + that then lzma_memlimit_get() will return 1 even when 0 was + specified as the limit. + + This fixes a very rare corner case in xz --list where a specific + memory usage limit and a multi-stream file could print the + error message "Internal error (bug)" instead of saying that + the memory usage limit is too low. + + src/liblzma/api/lzma/index.h | 18 +++++++++++------- + src/liblzma/common/index_decoder.c | 4 ++-- + 2 files changed, 13 insertions(+), 9 deletions(-) + +commit 78ae13bced912b1b92ae927992c99cbcc463cae7 +Author: Lasse Collin +Date: 2016-12-30 13:25:10 +0200 + + Update NEWS for 5.2.3. + + NEWS | 39 +++++++++++++++++++++++++++++++++++++++ + 1 file changed, 39 insertions(+) + +commit 0297863fdb453aed1a25eb025f3ba7bacbbb1357 +Author: Lasse Collin +Date: 2016-12-26 20:55:52 +0200 + + Document --enable-sandbox configure option in INSTALL. + + INSTALL | 23 +++++++++++++++++++++++ + 1 file changed, 23 insertions(+) + +commit d4a0462abe5478193521c14625e1c81fead87f9f +Author: Lasse Collin +Date: 2016-11-21 20:24:50 +0200 + + liblzma: Avoid multiple definitions of lzma_coder structures. + + Only one definition was visible in a translation unit. + It avoided a few casts and temp variables but seems that + this hack doesn't work with link-time optimizations in compilers + as it's not C99/C11 compliant. + + Fixes: + http://www.mail-archive.com/xz-devel@tukaani.org/msg00279.html + + src/liblzma/common/alone_decoder.c | 44 +++++---- + src/liblzma/common/alone_encoder.c | 34 ++++--- + src/liblzma/common/auto_decoder.c | 35 ++++--- + src/liblzma/common/block_decoder.c | 41 ++++---- + src/liblzma/common/block_encoder.c | 40 ++++---- + src/liblzma/common/common.h | 18 ++-- + src/liblzma/common/index_decoder.c | 33 ++++--- + src/liblzma/common/index_encoder.c | 16 ++-- + src/liblzma/common/stream_decoder.c | 50 +++++----- + src/liblzma/common/stream_encoder.c | 56 ++++++----- + src/liblzma/common/stream_encoder_mt.c | 124 ++++++++++++++----------- + src/liblzma/delta/delta_common.c | 25 ++--- + src/liblzma/delta/delta_decoder.c | 6 +- + src/liblzma/delta/delta_encoder.c | 12 ++- + src/liblzma/delta/delta_private.h | 4 +- + src/liblzma/lz/lz_decoder.c | 60 ++++++------ + src/liblzma/lz/lz_decoder.h | 13 ++- + src/liblzma/lz/lz_encoder.c | 57 +++++++----- + src/liblzma/lz/lz_encoder.h | 9 +- + src/liblzma/lzma/lzma2_decoder.c | 32 ++++--- + src/liblzma/lzma/lzma2_encoder.c | 51 +++++----- + src/liblzma/lzma/lzma_decoder.c | 27 +++--- + src/liblzma/lzma/lzma_encoder.c | 29 +++--- + src/liblzma/lzma/lzma_encoder.h | 9 +- + src/liblzma/lzma/lzma_encoder_optimum_fast.c | 3 +- + src/liblzma/lzma/lzma_encoder_optimum_normal.c | 23 ++--- + src/liblzma/lzma/lzma_encoder_private.h | 6 +- + src/liblzma/simple/arm.c | 2 +- + src/liblzma/simple/armthumb.c | 2 +- + src/liblzma/simple/ia64.c | 2 +- + src/liblzma/simple/powerpc.c | 2 +- + src/liblzma/simple/simple_coder.c | 61 ++++++------ + src/liblzma/simple/simple_private.h | 12 +-- + src/liblzma/simple/sparc.c | 2 +- + src/liblzma/simple/x86.c | 15 +-- + 35 files changed, 532 insertions(+), 423 deletions(-) + +commit a01794c52add98263b49119842c3e7141d1b9ced +Author: Lasse Collin +Date: 2016-10-24 18:53:25 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit df8f446e3ad47e5148b8c8d8b6e519d3ce29cb9d +Author: Lasse Collin +Date: 2016-10-24 18:51:36 +0300 + + tuklib_cpucores: Add support for sched_getaffinity(). + + It's available in glibc (GNU/Linux, GNU/kFreeBSD). It's better + than sysconf(_SC_NPROCESSORS_ONLN) because sched_getaffinity() + gives the number of cores available to the process instead of + the total number of cores online. + + As a side effect, this commit fixes a bug on GNU/kFreeBSD where + configure would detect the FreeBSD-specific cpuset_getaffinity() + but it wouldn't actually work because on GNU/kFreeBSD it requires + using -lfreebsd-glue when linking. Now the glibc-specific function + will be used instead. + + Thanks to Sebastian Andrzej Siewior for the original patch + and testing. + + m4/tuklib_cpucores.m4 | 30 +++++++++++++++++++++++++++++- + src/common/tuklib_cpucores.c | 9 +++++++++ + 2 files changed, 38 insertions(+), 1 deletion(-) + +commit 446e4318fa79788e09299d5953b5dd428953d14b +Author: Lasse Collin +Date: 2016-06-30 20:27:36 +0300 + + xz: Fix copying of timestamps on Windows. + + xz used to call utime() on Windows, but its result gets lost + on close(). Using _futime() seems to work. + + Thanks to Martok for reporting the bug: + http://www.mail-archive.com/xz-devel@tukaani.org/msg00261.html + + configure.ac | 2 +- + src/xz/file_io.c | 18 ++++++++++++++++++ + 2 files changed, 19 insertions(+), 1 deletion(-) + +commit 1b0ac0c53c761263e91e34195cb21dfdcfeac0bd +Author: Lasse Collin +Date: 2016-06-16 22:46:02 +0300 + + xz: Silence warnings from -Wlogical-op. + + Thanks to Evan Nemerson. + + src/xz/file_io.c | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +commit c83b7a03342c3325ff10400b22ee21edfcd1e026 +Author: Lasse Collin +Date: 2016-04-10 20:55:49 +0300 + + Build: Fix = to += for xz_SOURCES in src/xz/Makefile.am. + + Thanks to Christian Kujau. + + src/xz/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit ade31a2bfb95c94d05fbfc0ecbba5d6377f2506e +Author: Lasse Collin +Date: 2016-04-10 20:54:17 +0300 + + Build: Bump GNU Gettext version requirement to 0.19. + + It silences a few warnings and most people probably have + 0.19 even on stable distributions. + + Thanks to Christian Kujau. + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit ac398c3bafa6e4c80e20571373a96947db863b3d +Author: Lasse Collin +Date: 2016-03-13 20:21:49 +0200 + + liblzma: Disable external SHA-256 by default. + + This is the sane thing to do. The conflict with OpenSSL + on some OSes and especially that the OS-provided versions + can be significantly slower makes it clear that it was + a mistake to have the external SHA-256 support enabled by + default. + + Those who want it can now pass --enable-external-sha256 to + configure. INSTALL was updated with notes about OSes where + this can be a bad idea. + + The SHA-256 detection code in configure.ac had some bugs that + could lead to a build failure in some situations. These were + fixed, although it doesn't matter that much now that the + external SHA-256 is disabled by default. + + MINIX >= 3.2.0 uses NetBSD's libc and thus has SHA256_Init + in libc instead of libutil. Support for the libutil version + was removed. + + INSTALL | 36 ++++++++++++++++++++++ + configure.ac | 76 +++++++++++++++++++++++------------------------ + src/liblzma/check/check.h | 16 ++++------ + 3 files changed, 79 insertions(+), 49 deletions(-) + +commit 6fd5ecb589a9fdd7a576ea48c4850d496bab9ce5 +Author: Lasse Collin +Date: 2016-03-10 20:27:05 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 473ef0dc69a30e64d5fa0d34aca02f7309faa3e9 +Author: Lasse Collin +Date: 2016-03-10 20:26:49 +0200 + + Build: Avoid SHA256_Init on FreeBSD and MINIX 3. + + On FreeBSD 10 and older, SHA256_Init from libmd conflicts + with libcrypto from OpenSSL. The OpenSSL version has + different sizeof(SHA256_CTX) and it can cause weird + problems if wrong SHA256_Init gets used. + + Looking at the source, MINIX 3 seems to have a similar issue but + I'm not sure. To be safe, I disabled SHA256_Init on MINIX 3 too. + + NetBSD has SHA256_Init in libc and they had a similar problem, + but they already fixed it in 2009. + + Thanks to Jim Wilcoxson for the bug report that helped + in finding the problem. + + configure.ac | 27 +++++++++++++++++++++------ + 1 file changed, 21 insertions(+), 6 deletions(-) + +commit faf302137e54d605b44ecf0373cb51a6403a2de1 +Author: Lasse Collin +Date: 2015-11-08 20:16:10 +0200 + + tuklib_physmem: Hopefully silence a warning on Windows. + + src/common/tuklib_physmem.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit e52e9151cf8613022d1de4712ff39dbcb666e991 +Author: Lasse Collin +Date: 2015-11-04 23:17:43 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 14115f84a38161d55eaa2d070f08739bde37e966 +Author: Lasse Collin +Date: 2015-11-04 23:14:00 +0200 + + liblzma: Make Valgrind happier with optimized (gcc -O2) liblzma. + + When optimizing, GCC can reorder code so that an uninitialized + value gets used in a comparison, which makes Valgrind unhappy. + It doesn't happen when compiled with -O0, which I tend to use + when running Valgrind. + + Thanks to Rich Prohaska. I remember this being mentioned long + ago by someone else but nothing was done back then. + + src/liblzma/lz/lz_encoder.c | 4 ++++ + 1 file changed, 4 insertions(+) + +commit f4c95ba94beb71a608eb6eadbf82b44f53a0260e +Author: Lasse Collin +Date: 2015-11-03 20:55:45 +0200 + + liblzma: Rename lzma_presets.c back to lzma_encoder_presets.c. + + It would be too annoying to update other build systems + just because of this. + + src/liblzma/lzma/Makefile.inc | 2 +- + src/liblzma/lzma/{lzma_presets.c => lzma_encoder_presets.c} | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit c7bc20a6f3e71920871d48db31a79ab58b5a0a4b +Author: Lasse Collin +Date: 2015-11-03 20:47:07 +0200 + + Build: Disable xzdec, lzmadec, and lzmainfo when they cannot be built. + + They all need decoder support and if that isn't available, + there's no point trying to build them. + + configure.ac | 3 +++ + 1 file changed, 3 insertions(+) + +commit 5cbca1205deeb6fb7afe7a864fa68a57466d928a +Author: Lasse Collin +Date: 2015-11-03 20:35:19 +0200 + + Build: Simplify $enable_{encoders,decoders} usage a bit. + + configure.ac | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +commit af13781886c8e7a0aabebb5141ea282dc364f5c6 +Author: Lasse Collin +Date: 2015-11-03 20:31:31 +0200 + + Windows/MSVC: Update config.h. + + windows/config.h | 6 ++++++ + 1 file changed, 6 insertions(+) + +commit 9fa5949330f162c5a2f6653f83025327837e8f39 +Author: Lasse Collin +Date: 2015-11-03 20:29:58 +0200 + + DOS: Update config.h. + + dos/config.h | 6 ++++++ + 1 file changed, 6 insertions(+) + +commit cb3111e3ed84152912b5138d690c8d9f00c6ef02 +Author: Lasse Collin +Date: 2015-11-03 20:29:33 +0200 + + xz: Make xz buildable even when encoders or decoders are disabled. + + The patch is quite long but it's mostly about adding new #ifdefs + to omit code when encoders or decoders have been disabled. + + This adds two new #defines to config.h: HAVE_ENCODERS and + HAVE_DECODERS. + + configure.ac | 4 ++++ + src/xz/Makefile.am | 8 ++++++-- + src/xz/args.c | 16 ++++++++++++++++ + src/xz/coder.c | 33 +++++++++++++++++++++++++-------- + src/xz/main.c | 9 +++++++-- + src/xz/private.h | 5 ++++- + 6 files changed, 62 insertions(+), 13 deletions(-) + +commit 4cc584985c0b7a13901da1b7a64ef9f7cc36e8ab +Author: Lasse Collin +Date: 2015-11-03 18:06:40 +0200 + + Build: Build LZMA1/2 presets also when only decoder is wanted. + + People shouldn't rely on the presets when decoding raw streams, + but xz uses the presets as the starting point for raw decoder + options anyway. + + lzma_encocder_presets.c was renamed to lzma_presets.c to + make it clear it's not used solely by the encoder code. + + src/liblzma/lzma/Makefile.inc | 6 +++++- + src/liblzma/lzma/{lzma_encoder_presets.c => lzma_presets.c} | 3 ++- + 2 files changed, 7 insertions(+), 2 deletions(-) + +commit 23ed1d41489f632155bbc9660f323d57e09da180 +Author: Lasse Collin +Date: 2015-11-03 17:54:48 +0200 + + Build: Fix configure to handle LZMA1 dependency with LZMA2. + + Now it gives an error if LZMA1 encoder/decoder is missing + when LZMA2 encoder/decoder was requested. Even better would + be LZMA2 implicitly enabling LZMA1 but it would need more code. + + configure.ac | 5 ----- + 1 file changed, 5 deletions(-) + +commit b0bc3e03852af13419ea2960881824258d451117 +Author: Lasse Collin +Date: 2015-11-03 17:41:54 +0200 + + Build: Don't omit lzma_cputhreads() unless using --disable-threads. + + Previously it was omitted if encoders were disabled + with --disable-encoders. It didn't make sense and + it also broke the build. + + src/liblzma/common/Makefile.inc | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +commit c6bf438ab39e0fb4a47d3c81725c227919502726 +Author: Lasse Collin +Date: 2015-11-02 18:16:51 +0200 + + liblzma: Fix a build failure related to external SHA-256 support. + + If an appropriate header and structure were found by configure, + but a library with a usable SHA-256 functions wasn't, the build + failed. + + src/liblzma/check/check.h | 32 +++++++++++++++++++++++--------- + 1 file changed, 23 insertions(+), 9 deletions(-) + +commit e18adc56f2262aa9394d46681e9e4b9981ed5e97 +Author: Lasse Collin +Date: 2015-11-02 15:19:10 +0200 + + xz: Always close the file before trying to delete it. + + unlink() can return EBUSY in errno for open files on some + operating systems and file systems. + + src/xz/file_io.c | 25 ++++++++++++------------- + 1 file changed, 12 insertions(+), 13 deletions(-) + +commit 282e768a1484e88c8b7ec35655ee4959954ec87a +Author: Lasse Collin +Date: 2015-10-12 21:08:42 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 372e402713a1d4337ffce5f56d5c5c9ed99a66d0 +Author: Lasse Collin +Date: 2015-10-12 21:07:41 +0300 + + Tests: Add tests for the two bugs fixed in index.c. + + tests/test_index.c | 30 ++++++++++++++++++++++++++++++ + 1 file changed, 30 insertions(+) + +commit 21515d79d778b8730a434f151b07202d52a04611 +Author: Lasse Collin +Date: 2015-10-12 20:45:15 +0300 + + liblzma: Fix lzma_index_dup() for empty Streams. + + Stream Flags and Stream Padding weren't copied from + empty Streams. + + src/liblzma/common/index.c | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +commit 09f395b6b360c0b13e8559eece1d179b908ebd3a +Author: Lasse Collin +Date: 2015-10-12 20:31:44 +0300 + + liblzma: Add a note to index.c for those using static analyzers. + + src/liblzma/common/index.c | 3 +++ + 1 file changed, 3 insertions(+) + +commit 3bf857edfef51374f6f3fffae3d817f57d3264a0 +Author: Lasse Collin +Date: 2015-10-12 20:29:09 +0300 + + liblzma: Fix a memory leak in error path of lzma_index_dup(). + + lzma_index_dup() calls index_dup_stream() which, in case of + an error, calls index_stream_end() to free memory allocated + by index_stream_init(). However, it illogically didn't + actually free the memory. To make it logical, the tree + handling code was modified a bit in addition to changing + index_stream_end(). + + Thanks to Evan Nemerson for the bug report. + + src/liblzma/common/index.c | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +commit 7f05803979b4b79642d5be4218a79da7a0b12c47 +Author: Lasse Collin +Date: 2015-09-29 13:57:28 +0300 + + Update NEWS for 5.2.2. + + NEWS | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +commit 397fcc0946315b55c3c6d80e37e82a2a78bc15c1 +Author: Hauke Henningsen +Date: 2015-08-17 04:59:54 +0200 + + Update German translation, mostly wrt orthography + + Provide an update of the German translation. + * A lot of compound words were previously written with spaces, while + German orthography is relatively clear in that the components + should not be separated. + * When referring to the actual process of (de)compression rather than the + concept, replace ā€œ(De-)Kompressionā€ with ā€œ(De-)Komprimierungā€. + Previously, both forms were used in this context and are now used in a + manner consistent with ā€œKomprimierungā€ being more likely to refer to + a process. + * Consistently translate ā€œstandard inputā€/ā€œoutputā€ + * Use ā€œZeichenā€ instead of false friend ā€œCharakterā€ for ā€œcharacterā€ + * Insert commas around relative clauses (as required in German) + * Some other minor corrections + * Capitalize ā€œĆŸā€ as ā€œįŗžā€ + * Consistently start option descriptions in --help with capital letters + + Acked-By: Andre Noll + + * Update after msgmerge + + po/de.po | 383 ++++++++++++++++++++++++++++++++------------------------------- + 1 file changed, 196 insertions(+), 187 deletions(-) + +commit cbc9e39bae715accb44168930a71888480aad569 +Author: Lasse Collin +Date: 2015-08-11 13:23:04 +0300 + + Build: Minor Cygwin cleanup. + + Some tests used "cygwin*" and some used "cygwin". I changed + them all to use "cygwin". Shouldn't affect anything in practice. + + configure.ac | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit bcacd8ce7a031566858e5e03c1009064c3f1c89e +Author: Lasse Collin +Date: 2015-08-11 13:21:52 +0300 + + Build: Support building of MSYS2 binaries. + + configure.ac | 16 +++++++++++----- + 1 file changed, 11 insertions(+), 5 deletions(-) + +commit 0275a5398c01d57b724dec7fea52dec3bd6edc6c +Author: Lasse Collin +Date: 2015-08-09 21:06:26 +0300 + + Windows: Define DLL_EXPORT when building liblzma.dll with MSVC. + + src/liblzma/common/common.h uses it to set __declspec(dllexport) + for the API symbols. + + Thanks to Adam Walling. + + windows/liblzma_dll.vcxproj | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +commit a74525cf9b945fb0b370e64cf406104beb31729b +Author: Lasse Collin +Date: 2015-08-09 21:02:20 +0300 + + Windows: Omit unneeded header files from MSVC project files. + + windows/liblzma.vcxproj | 5 ----- + windows/liblzma_dll.vcxproj | 5 ----- + 2 files changed, 10 deletions(-) + +commit fbbb295a91caf39faf8838c8c39526e4cb4dc121 +Author: Lasse Collin +Date: 2015-07-12 20:48:19 +0300 + + liblzma: A MSVC-specific hack isn't needed with MSVC 2013 and newer. + + src/liblzma/api/lzma.h | 18 +++++++++++++----- + 1 file changed, 13 insertions(+), 5 deletions(-) + +commit 713dbe5c230fe00865a54f5c32358ea30f9a1156 +Author: Lasse Collin +Date: 2015-06-19 20:38:55 +0300 + + Update THANKS. + + THANKS | 2 ++ + 1 file changed, 2 insertions(+) + +commit 3a5d755d055d51f99c523b4c2952727e1e69cfa1 +Author: Lasse Collin +Date: 2015-06-19 20:21:30 +0300 + + Windows: Update the docs. + + INSTALL | 29 ++++++++----- + windows/INSTALL-MSVC.txt | 47 ++++++++++++++++++++++ + windows/{INSTALL-Windows.txt => INSTALL-MinGW.txt} | 2 +- + 3 files changed, 67 insertions(+), 11 deletions(-) + +commit b0798c6aa6184efcefd0bdcca20f96121a13feda +Author: Lasse Collin +Date: 2015-06-19 17:25:31 +0300 + + Windows: Add MSVC project files for building liblzma. + + Thanks to Adam Walling for creating these files. + + windows/liblzma.vcxproj | 359 ++++++++++++++++++++++++++++++++++++++++ + windows/liblzma_dll.vcxproj | 388 ++++++++++++++++++++++++++++++++++++++++++++ + windows/xz_win.sln | 48 ++++++ + 3 files changed, 795 insertions(+) + +commit 9b02a4ffdac1b9f066658ec4c95c0834f4cd2fb7 +Author: Andre Noll +Date: 2015-05-28 15:50:00 +0200 + + Fix typo in German translation. + + As pointed out by Robert Pollak, there's a typo in the German + translation of the compression preset option (-0 ... -9) help text. + "The compressor" translates to "der Komprimierer", and the genitive + form is "des Komprimierers". The old word makes no sense at all. + + po/de.po | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit c7f4041f6b8f4729f88d3bc888b2a4080ae51f72 +Author: Lasse Collin +Date: 2015-05-13 20:57:55 +0300 + + Tests: Fix a memory leak in test_bcj_exact_size. + + Thanks to Cristian RodrĆ­guez. + + tests/test_bcj_exact_size.c | 1 + + 1 file changed, 1 insertion(+) + +commit 17b29d4f0ae0f780fbd69e15a398dc478d8492f8 +Author: Lasse Collin +Date: 2015-05-12 18:08:24 +0300 + + Fix NEWS about threading in 5.2.0. + + Thanks to Andy Hochhaus. + + NEWS | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 49c26920d6e2d85e5c6123e34958aed2e77485ad +Author: Lasse Collin +Date: 2015-05-11 21:26:16 +0300 + + xz: Document that threaded decompression hasn't been implemented yet. + + src/xz/xz.1 | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +commit 5b2458cb244ed237efe4de1ebcf06e1b3a1f4256 +Author: Lasse Collin +Date: 2015-04-20 20:20:29 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 6bd0349c58451b13442e8f463e35de83548bf985 +Author: Lasse Collin +Date: 2015-04-20 19:59:18 +0300 + + Revert "xz: Use pipe2() if available." + + This reverts commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd. + It is a problem when libc has pipe2() but the kernel is too + old to have pipe2() and thus pipe2() fails. In xz it's pointless + to have a fallback for non-functioning pipe2(); it's better to + avoid pipe2() completely. + + Thanks to Michael Fox for the bug report. + + configure.ac | 4 ++-- + src/xz/file_io.c | 9 +-------- + 2 files changed, 3 insertions(+), 10 deletions(-) + +commit fc0df0f8db87dff45543708a711e17d29c37f632 +Author: Lasse Collin +Date: 2015-04-01 14:45:25 +0300 + + xz: Fix the Capsicum rights on user_abort_pipe. + + src/xz/file_io.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +commit 57393615b31b3788dd77280452d845bcc12d33af +Author: Lasse Collin +Date: 2015-03-31 22:20:11 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 1238381143a9a7ce84839c2582ccd56ff750a440 +Author: Lasse Collin +Date: 2015-03-31 22:19:34 +0300 + + xz: Add support for sandboxing with Capsicum. + + The sandboxing is used conditionally as described in main.c. + This isn't optimal but it was much easier to implement than + a full sandboxing solution and it still covers the most common + use cases where xz is writing to standard output. This should + have practically no effect on performance even with small files + as fork() isn't needed. + + C and locale libraries can open files as needed. This has been + fine in the past, but it's a problem with things like Capsicum. + io_sandbox_enter() tries to ensure that various locale-related + files have been loaded before cap_enter() is called, but it's + possible that there are other similar problems which haven't + been seen yet. + + Currently Capsicum is available on FreeBSD 10 and later + and there is a port to Linux too. + + Thanks to Loganaden Velvindron for help. + + configure.ac | 41 +++++++++++++++++++++++++++ + src/xz/Makefile.am | 2 +- + src/xz/file_io.c | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/xz/file_io.h | 6 ++++ + src/xz/main.c | 18 ++++++++++++ + src/xz/private.h | 4 +++ + 6 files changed, 151 insertions(+), 1 deletion(-) + +commit 29a087fb5a0c879f0b1bc4c6b989f7b87bacdf9e +Author: Lasse Collin +Date: 2015-03-31 21:12:30 +0300 + + Fix bugs and otherwise improve ax_check_capsicum.m4. + + AU_ALIAS was removed because the new version is incompatible + with the old version. + + It no longer checks for separately. + It's enough to test for it as part of AC_CHECK_DECL. + The defines HAVE_CAPSICUM_SYS_CAPSICUM_H and + HAVE_CAPSICUM_SYS_CAPABILITY_H were removed as unneeded. + HAVE_SYS_CAPSICUM_H from AC_CHECK_HEADERS is enough. + + It no longer does a useless search for the Capsicum library + if the header wasn't found. + + Fixed a bug in ACTION-IF-FOUND (the first argument). Specifying + the argument omitted the default action but the given action + wasn't used instead. + + AC_DEFINE([HAVE_CAPSICUM]) is now always called when Capsicum + support is found. Previously it was part of the default + ACTION-IF-FOUND which a custom action would override. Now + the default action only prepends ${CAPSICUM_LIB} to LIBS. + + The documentation was updated. + + Since there as no serial number, "#serial 2" was added. + + m4/ax_check_capsicum.m4 | 103 ++++++++++++++++++++++++------------------------ + 1 file changed, 51 insertions(+), 52 deletions(-) + +commit 6e845c6a3eddf2fde9db5a29950421dff60a43ac +Author: Lasse Collin +Date: 2015-03-31 19:20:24 +0300 + + Add m4/ax_check_capsicum.m4 for detecting Capsicum support. + + The file was loaded from this web page: + https://github.com/google/capsicum-test/blob/dev/autoconf/m4/ax_check_capsicum.m4 + + Thanks to Loganaden Velvindron for pointing it out for me. + + m4/ax_check_capsicum.m4 | 86 +++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 86 insertions(+) + +commit 3717885f9ef2c06f1bcbad9f4c2ed2d5695f844e +Author: Lasse Collin +Date: 2015-03-30 22:44:02 +0300 + + Bump version to 5.3.0alpha and soname to 5.3.99. + + The idea of 99 is that it looks a bit weird in this context. + For new features there's no API/ABI stability in devel versions. + + src/liblzma/Makefile.am | 2 +- + src/liblzma/api/lzma/version.h | 6 +++--- + 2 files changed, 4 insertions(+), 4 deletions(-) + +commit eccd8155e107c5ada03d13e7730675cdf1a44ddc +Author: Lasse Collin +Date: 2015-03-29 22:14:47 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 25263fd9e7a8a913395cb93d7c104cd48c2b4a00 +Author: Lasse Collin +Date: 2015-03-29 22:13:48 +0300 + + Fix the detection of installed RAM on QNX. + + The earlier version compiled but didn't actually work + since sysconf(_SC_PHYS_PAGES) always fails (or so I was told). + + Thanks to Ole AndrĆ© Vadla RavnĆ„s for the patch and testing. + + m4/tuklib_physmem.m4 | 6 +++--- + src/common/tuklib_physmem.c | 14 +++++++++++++- + 2 files changed, 16 insertions(+), 4 deletions(-) + +commit 4c544d2410903d38402221cb783ed85585b6a007 +Author: Lasse Collin +Date: 2015-03-27 22:39:07 +0200 + + Fix CPU core count detection on QNX. + + It tried to use sysctl() on QNX but + - it broke the build because sysctl() needs -lsocket on QNX; + - sysctl() doesn't work for detecting the core count on QNX + even if it compiled. + + sysconf() works. An alternative would have been to use + QNX-specific SYSPAGE_ENTRY(num_cpu) from . + + Thanks to Ole AndrĆ© Vadla RavnĆ„s. + + m4/tuklib_cpucores.m4 | 15 +++++++++++---- + 1 file changed, 11 insertions(+), 4 deletions(-) + +commit e0ea6737b03e83ccaff4514d00e31bb926f8f0f3 +Author: Lasse Collin +Date: 2015-03-07 22:05:57 +0200 + + xz: size_t/uint32_t cleanup in options.c. + + src/xz/options.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +commit 8bcca29a65335fd679c13814b70b35b68fa5daed +Author: Lasse Collin +Date: 2015-03-07 22:04:23 +0200 + + xz: Fix a comment and silence a warning in message.c. + + src/xz/message.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +commit f243f5f44c6b19a7c289a0ec73a03ee08364cb5b +Author: Lasse Collin +Date: 2015-03-07 22:01:00 +0200 + + liblzma: Silence more uint32_t vs. size_t warnings. + + src/liblzma/lz/lz_encoder.c | 2 +- + src/liblzma/lzma/lzma_encoder.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit 7f0a4c50f4a374c40acf4b86848f301ad1e82d34 +Author: Lasse Collin +Date: 2015-03-07 19:54:00 +0200 + + xz: Make arg_count an unsigned int to silence a warning. + + Actually the value of arg_count cannot exceed INT_MAX + but it's nicer as an unsigned int. + + src/xz/args.h | 2 +- + src/xz/main.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit f6ec46801588b1be29c07c9db98558b521304002 +Author: Lasse Collin +Date: 2015-03-07 19:33:17 +0200 + + liblzma: Fix a warning in index.c. + + src/liblzma/common/index.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +commit a24518971cc621315af142dd3bb7614fab04ad27 +Author: Lasse Collin +Date: 2015-02-26 20:46:14 +0200 + + Build: Fix a CR+LF problem when running autoreconf -fi on OS/2. + + build-aux/version.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit dec11497a71518423b5ff0e759100cf8aadf6c7b +Author: Lasse Collin +Date: 2015-02-26 16:53:44 +0200 + + Bump version and soname for 5.2.1. + + src/liblzma/Makefile.am | 2 +- + src/liblzma/api/lzma/version.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit 29e39c79975ab89ee5dd671e97064534a9f3a649 +Author: Lasse Collin +Date: 2015-02-26 13:01:09 +0200 + + Update NEWS for 5.2.1. + + NEWS | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd +Author: Lasse Collin +Date: 2015-02-22 19:38:48 +0200 + + xz: Use pipe2() if available. + + configure.ac | 4 ++-- + src/xz/file_io.c | 9 ++++++++- + 2 files changed, 10 insertions(+), 3 deletions(-) + +commit 117d962685c72682c63edc9bb765367189800202 +Author: Lasse Collin +Date: 2015-02-21 23:40:26 +0200 + + liblzma: Fix a compression-ratio regression in LZMA1/2 in fast mode. + + The bug was added in the commit + f48fce093b07aeda95c18850f5e086d9f2383380 and thus + affected 5.1.4beta and 5.2.0. Luckily the bug cannot + cause data corruption or other nasty things. + + src/liblzma/lzma/lzma_encoder_optimum_fast.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit ae984e31c167d3bc52972ec422dd1ebd5f5d5719 +Author: Lasse Collin +Date: 2015-02-21 23:00:19 +0200 + + xz: Fix the fcntl() usage when creating a pipe for the self-pipe trick. + + Now it reads the old flags instead of blindly setting O_NONBLOCK. + The old code may have worked correctly, but this is better. + + src/xz/file_io.c | 16 +++++++++++----- + 1 file changed, 11 insertions(+), 5 deletions(-) + +commit 2205bb5853098aea36a56df6f5747037175f66b4 +Author: Lasse Collin +Date: 2015-02-10 15:29:34 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit d935b0cdf3db440269b9d952b2b281b18f8c7b08 +Author: Lasse Collin +Date: 2015-02-10 15:28:30 +0200 + + tuklib_cpucores: Use cpuset_getaffinity() on FreeBSD if available. + + In FreeBSD, cpuset_getaffinity() is the preferred way to get + the number of available cores. + + Thanks to Rui Paulo for the patch. I edited it slightly, but + hopefully I didn't break anything. + + m4/tuklib_cpucores.m4 | 23 ++++++++++++++++++++++- + src/common/tuklib_cpucores.c | 18 ++++++++++++++++++ + 2 files changed, 40 insertions(+), 1 deletion(-) + +commit eb61bc58c20769cac4d05f363b9c0e8c9c71a560 +Author: Lasse Collin +Date: 2015-02-09 22:08:37 +0200 + + xzdiff: Make the mktemp usage compatible with FreeBSD's mktemp. + + Thanks to Rui Paulo for the fix. + + src/scripts/xzdiff.in | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +commit b9a5b6b7a29029680af733082b6a46e0fc01623a +Author: Lasse Collin +Date: 2015-02-03 21:45:53 +0200 + + Add a few casts to tuklib_integer.h to silence possible warnings. + + I heard that Visual Studio 2013 gave warnings without the casts. + + Thanks to Gabi Davar. + + src/common/tuklib_integer.h | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +commit c45757135f40e4a0de730ba5fff0100219493982 +Author: Lasse Collin +Date: 2015-01-26 21:24:39 +0200 + + liblzma: Set LZMA_MEMCMPLEN_EXTRA depending on the compare method. + + src/liblzma/common/memcmplen.h | 15 ++++++++++----- + 1 file changed, 10 insertions(+), 5 deletions(-) + +commit 3c500174ed5485f550972a2a6109c361e875f069 +Author: Lasse Collin +Date: 2015-01-26 20:40:16 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit fec88d41e672d9e197c9442aecf02bd0dfa6d516 +Author: Lasse Collin +Date: 2015-01-26 20:39:28 +0200 + + liblzma: Silence harmless Valgrind errors. + + Thanks to Torsten Rupp for reporting this. I had + forgotten to run Valgrind before the 5.2.0 release. + + src/liblzma/lz/lz_encoder.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +commit a9b45badfec0928d20a27c7176c005fa637f7d1e +Author: Lasse Collin +Date: 2015-01-09 21:50:19 +0200 + + xz: Fix comments. + + src/xz/file_io.c | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +commit 541aee6dd4aa97a809aba281475a21b641bb89e2 +Author: Lasse Collin +Date: 2015-01-09 21:35:06 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 4170edc914655310d2363baccf5e615e09b04911 +Author: Lasse Collin +Date: 2015-01-09 21:34:06 +0200 + + xz: Don't fail if stdout doesn't support O_NONBLOCK. + + This is similar to the case with stdin. + + Thanks to Brad Smith for the bug report and testing + on OpenBSD. + + src/xz/file_io.c | 36 +++++++++++++++--------------------- + 1 file changed, 15 insertions(+), 21 deletions(-) + +commit 04bbc0c2843c50c8ad1cba42b937118e38b0508d +Author: Lasse Collin +Date: 2015-01-07 19:18:20 +0200 + + xz: Fix a memory leak in DOS-specific code. + + src/xz/file_io.c | 2 ++ + 1 file changed, 2 insertions(+) + +commit f0f1f6c7235ffa901cf76fe18e33749e200b3eea +Author: Lasse Collin +Date: 2015-01-07 19:08:06 +0200 + + xz: Don't fail if stdin doesn't support O_NONBLOCK. + + It's a problem at least on OpenBSD which doesn't support + O_NONBLOCK on e.g. /dev/null. I'm not surprised if it's + a problem on other OSes too since this behavior is allowed + in POSIX-1.2008. + + The code relying on this behavior was committed in June 2013 + and included in 5.1.3alpha released on 2013-10-26. Clearly + the development releases only get limited testing. + + src/xz/file_io.c | 18 +++++++----------- + 1 file changed, 7 insertions(+), 11 deletions(-) + +commit d2d484647d9d9d679f03c75abb0404f67069271c +Author: Lasse Collin +Date: 2015-01-06 20:30:15 +0200 + + Tests: Don't hide unexpected error messages in test_files.sh. + + Hiding them makes no sense since normally there's no error + when testing the "good" files. With "bad" files errors are + expected and then it makes sense to keep the messages hidden. + + tests/test_files.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit aae6a6aeda51cf94a47e39ad624728f9bee75e30 +Author: Lasse Collin +Date: 2014-12-30 11:17:16 +0200 + + Update Solaris notes in INSTALL. + + Mention the possible "make check" failure on Solaris in the + Solaris-specific section of INSTALL. It was already in + section 4.5 but it is better mention it in the OS-specific + section too. + + INSTALL | 4 ++++ + 1 file changed, 4 insertions(+) + +commit 7815112153178800a3521b9f31960e7cdc26cfba +Author: Lasse Collin +Date: 2014-12-26 12:00:05 +0200 + + Build: POSIX shell isn't required if scripts are disabled. + + INSTALL | 3 ++- + configure.ac | 2 +- + 2 files changed, 3 insertions(+), 2 deletions(-) + +commit a0cd05ee71d330b79ead6eb9222e1b24e1559d3a +Author: Lasse Collin +Date: 2014-12-21 20:48:37 +0200 + + DOS: Update Makefile. + + dos/Makefile | 1 + + 1 file changed, 1 insertion(+) + +commit b85ee0905ec4ab7656d22e63519fdd3bedb21f2e +Author: Lasse Collin +Date: 2014-12-21 19:50:38 +0200 + + Windows: Fix bin_i486 to bin_i686 in build.bash. + + windows/build.bash | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit cbafa710918195dbba3db02c3fab4f0538235206 +Author: Lasse Collin +Date: 2014-12-21 18:58:44 +0200 + + Docs: Use lzma_cputhreads() in 04_compress_easy_mt.c. + + doc/examples/04_compress_easy_mt.c | 30 ++++++++++++++++++++++++++---- + 1 file changed, 26 insertions(+), 4 deletions(-) + +commit 8dbb57238d372c7263cfeb3e7f7fd9a73173156a +Author: Lasse Collin +Date: 2014-12-21 18:56:44 +0200 + + Docs: Update docs/examples/00_README.txt. + + doc/examples/00_README.txt | 4 ++++ + 1 file changed, 4 insertions(+) + +commit 6060f7dc76fd6c2a8a1f8e85d0e4d86bb78273e6 +Author: Lasse Collin +Date: 2014-12-21 18:11:17 +0200 + + Bump version and soname for 5.2.0. + + I know that soname != app version, but I skip AGE=1 + in -version-info to make the soname match the liblzma + version anyway. It doesn't hurt anything as long as + it doesn't conflict with library versioning rules. + + src/liblzma/Makefile.am | 2 +- + src/liblzma/api/lzma/version.h | 6 +++--- + src/liblzma/liblzma.map | 2 +- + 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/xz-5.4.5/INSTALL b/xz-5.4.5/INSTALL new file mode 100644 index 000000000..7ef2cb467 --- /dev/null +++ b/xz-5.4.5/INSTALL @@ -0,0 +1,765 @@ + +XZ Utils Installation +===================== + + 0. Preface + 1. Supported platforms + 1.1. Compilers + 1.2. Platform-specific notes + 1.2.1. AIX + 1.2.2. IRIX + 1.2.3. MINIX 3 + 1.2.4. OpenVMS + 1.2.5. Solaris, OpenSolaris, and derivatives + 1.2.6. Tru64 + 1.2.7. Windows + 1.2.8. DOS + 1.2.9. z/OS + 1.3. Adding support for new platforms + 2. configure options + 2.1. Static vs. dynamic linking of liblzma + 2.2. Optimizing xzdec and lzmadec + 3. xzgrep and other scripts + 3.1. Dependencies + 3.2. PATH + 4. Tests + 4.1 Testing in parallel + 4.2 Cross compiling + 5. Troubleshooting + 5.1. "No C99 compiler was found." + 5.2. "No POSIX conforming shell (sh) was found." + 5.3. configure works but build fails at crc32_x86.S + 5.4. Lots of warnings about symbol visibility + 5.5. "make check" fails + 5.6. liblzma.so (or similar) not found when running xz + + +0. Preface +---------- + + If you aren't familiar with building packages that use GNU Autotools, + see the file INSTALL.generic for generic instructions before reading + further. + + If you are going to build a package for distribution, see also the + file PACKAGERS. It contains information that should help making the + binary packages as good as possible, but the information isn't very + interesting to those making local builds for private use or for use + in special situations like embedded systems. + + +1. Supported platforms +---------------------- + + XZ Utils are developed on GNU/Linux, but they should work on many + POSIX-like operating systems like *BSDs and Solaris, and even on + a few non-POSIX operating systems. + + +1.1. Compilers + + A C99 compiler is required to compile XZ Utils. If you use GCC, you + need at least version 3.x.x. GCC version 2.xx.x doesn't support some + C99 features used in XZ Utils source code, thus GCC 2 won't compile + XZ Utils. + + XZ Utils takes advantage of some GNU C extensions when building + with GCC. Because these extensions are used only when building + with GCC, it should be possible to use any C99 compiler. + + +1.2. Platform-specific notes + +1.2.1. AIX + + If you use IBM XL C compiler, pass CC=xlc_r to configure. If + you use CC=xlc instead, you must disable threading support + with --disable-threads (usually not recommended). + + +1.2.2. IRIX + + MIPSpro 7.4.4m has been reported to produce broken code if using + the -O2 optimization flag ("make check" fails). Using -O1 should + work. + + A problem has been reported when using shared liblzma. Passing + --disable-shared to configure works around this. Alternatively, + putting "-64" to CFLAGS to build a 64-bit version might help too. + + +1.2.3. MINIX 3 + + The default install of MINIX 3 includes Amsterdam Compiler Kit (ACK), + which doesn't support C99. Install GCC to compile XZ Utils. + + MINIX 3.1.8 and older have bugs in /usr/include/stdint.h, which has + to be patched before XZ Utils can be compiled correctly. See + . + + MINIX 3.2.0 and later use a different libc and aren't affected by + the above bug. + + XZ Utils doesn't have code to detect the amount of physical RAM and + number of CPU cores on MINIX 3. + + See section 5.4 in this file about symbol visibility warnings (you + may want to pass gl_cv_cc_visibility=no to configure). + + +1.2.4. OpenVMS + + XZ Utils can be built for OpenVMS, but the build system files + are not included in the XZ Utils source package. The required + OpenVMS-specific files are maintained by Jouk Jansen and can be + downloaded here: + + http://nchrem.tnw.tudelft.nl/openvms/software2.html#xzutils + + +1.2.5. Solaris, OpenSolaris, and derivatives + + The following linker error has been reported on some x86 systems: + + ld: fatal: relocation error: R_386_GOTOFF: ... + + This can be worked around by passing gl_cv_cc_visibility=no + as an argument to the configure script. + + test_scripts.sh in "make check" may fail if good enough tools are + missing from PATH (/usr/xpg4/bin or /usr/xpg6/bin). Nowadays + /usr/xpg4/bin is added to the script PATH by default on Solaris + (see --enable-path-for-scripts=PREFIX in section 2), but old xz + releases needed extra steps. See sections 5.5 and 3.2 for more + information. + + +1.2.6. Tru64 + + If you try to use the native C compiler on Tru64 (passing CC=cc to + configure), you may need the workaround mention in section 5.1 in + this file (pass also ac_cv_prog_cc_c99= to configure). + + +1.2.7. Windows + + If it is enough to build liblzma (no command line tools): + + - There is CMake support. It should be good enough to build + static liblzma or liblzma.dll with Visual Studio. The CMake + support may work with MinGW or MinGW-w64. Read the comment + in the beginning of CMakeLists.txt before running CMake! + + - There are Visual Studio project files under the "windows" + directory. See windows/INSTALL-MSVC.txt. In the future the + project files will be removed when CMake support is good + enough. Thus, please test the CMake version and help fix + possible issues. + + To build also the command line tools: + + - MinGW-w64 + MSYS (32-bit and 64-bit x86): This is used + for building the official binary packages for Windows. + There is windows/build.bash to ease packaging XZ Utils with + MinGW(-w64) + MSYS into a redistributable .zip or .7z file. + See windows/INSTALL-MinGW.txt for more information. + + - MinGW + MSYS (32-bit x86): I haven't recently tested this. + + - Cygwin 1.7.35 and later: NOTE that using XZ Utils >= 5.2.0 + under Cygwin older than 1.7.35 can lead to DATA LOSS! If + you must use an old Cygwin version, stick to XZ Utils 5.0.x + which is safe under older Cygwin versions. You can check + the Cygwin version with the command "cygcheck -V". + + It may be possible to build liblzma with other toolchains too, but + that will probably require writing a separate makefile. Building + the command line tools with non-GNU toolchains will be harder than + building only liblzma. + + Even if liblzma is built with MinGW(-w64), the resulting DLL can + be used by other compilers and linkers, including MSVC. See + windows/README-Windows.txt for details. + + +1.2.8. DOS + + There is a Makefile in the "dos" directory to build XZ Utils on + DOS using DJGPP. Support for long file names (LFN) is needed at + build time but the resulting xz.exe works without LFN support too. + See dos/INSTALL.txt and dos/README.txt for more information. + + +1.2.9. z/OS + + To build XZ Utils on z/OS UNIX System Services using xlc, pass + these options to the configure script: CC='xlc -qhaltonmsg=CCN3296' + CPPFLAS='-D_UNIX03_THREADS -D_XOPEN_SOURCE=600'. The first makes + xlc throw an error if a header file is missing, which is required + to make the tests in configure work. The CPPFLAGS are needed to + get pthread support (some other CPPFLAGS may work too; if there + are problems, try -D_UNIX95_THREADS instead of -D_UNIX03_THREADS). + + test_scripts.sh in "make check" will fail even if the scripts + actually work because the test data includes compressed files + with US-ASCII text. + + No other tests should fail. If test_files.sh fails, check that + the included .xz test files weren't affected by EBCDIC conversion. + + XZ Utils doesn't have code to detect the amount of physical RAM and + number of CPU cores on z/OS. + + +1.3. Adding support for new platforms + + If you have written patches to make XZ Utils to work on previously + unsupported platform, please send the patches to me! I will consider + including them to the official version. It's nice to minimize the + need of third-party patching. + + One exception: Don't request or send patches to change the whole + source package to C89. I find C99 substantially nicer to write and + maintain. However, the public library headers must be in C89 to + avoid frustrating those who maintain programs, which are strictly + in C89 or C++. + + +2. configure options +-------------------- + + In most cases, the defaults are what you want. Many of the options + below are useful only when building a size-optimized version of + liblzma or command line tools. + + --enable-encoders=LIST + --disable-encoders + Specify a comma-separated LIST of filter encoders to + build. See "./configure --help" for exact list of + available filter encoders. The default is to build all + supported encoders. + + If LIST is empty or --disable-encoders is used, no filter + encoders will be built and also the code shared between + encoders will be omitted. + + Disabling encoders will remove some symbols from the + liblzma ABI, so this option should be used only when it + is known to not cause problems. + + --enable-decoders=LIST + --disable-decoders + This is like --enable-encoders but for decoders. The + default is to build all supported decoders. + + --enable-match-finders=LIST + liblzma includes two categories of match finders: + hash chains and binary trees. Hash chains (hc3 and hc4) + are quite fast but they don't provide the best compression + ratio. Binary trees (bt2, bt3 and bt4) give excellent + compression ratio, but they are slower and need more + memory than hash chains. + + You need to enable at least one match finder to build the + LZMA1 or LZMA2 filter encoders. Usually hash chains are + used only in the fast mode, while binary trees are used to + when the best compression ratio is wanted. + + The default is to build all the match finders if LZMA1 + or LZMA2 filter encoders are being built. + + --enable-checks=LIST + liblzma support multiple integrity checks. CRC32 is + mandatory, and cannot be omitted. See "./configure --help" + for exact list of available integrity check types. + + liblzma and the command line tools can decompress files + which use unsupported integrity check type, but naturally + the file integrity cannot be verified in that case. + + Disabling integrity checks may remove some symbols from + the liblzma ABI, so this option should be used only when + it is known to not cause problems. + + --enable-external-sha256 + Try to use SHA-256 code from the operating system libc + or similar base system libraries. This doesn't try to + use OpenSSL or libgcrypt or such libraries. + + The reasons to use this option: + + - It makes liblzma slightly smaller. + + - It might improve SHA-256 speed if the implementation + in the operating is very good (but see below). + + External SHA-256 is disabled by default for two reasons: + + - On some operating systems the symbol names of the + SHA-256 functions conflict with OpenSSL's libcrypto. + This causes weird problems such as decompression + errors if an application is linked against both + liblzma and libcrypto. This problem affects at least + FreeBSD 10 and older and MINIX 3.3.0 and older, but + other OSes that provide a function "SHA256_Init" might + also be affected. FreeBSD 11 has the problem fixed. + NetBSD had the problem but it was fixed it in 2009 + already. OpenBSD uses "SHA256Init" and thus never had + a conflict with libcrypto. + + - The SHA-256 code in liblzma is faster than the SHA-256 + code provided by some operating systems. If you are + curious, build two copies of xz (internal and external + SHA-256) and compare the decompression (xz --test) + times: + + dd if=/dev/zero bs=1024k count=1024 \ + | xz -v -0 -Csha256 > foo.xz + time xz --test foo.xz + + --disable-microlzma + Don't build MicroLZMA encoder and decoder. This omits + lzma_microlzma_encoder() and lzma_microlzma_decoder() + API functions from liblzma. These functions are needed + by specific applications only. They were written for + erofs-utils but they may be used by others too. + + --disable-lzip-decoder + Disable decompression support for .lz (lzip) files. + This omits the API function lzma_lzip_decoder() from + liblzma and .lz support from the xz tool. + + --disable-xz + --disable-xzdec + --disable-lzmadec + --disable-lzmainfo + Don't build and install the command line tool mentioned + in the option name. + + NOTE: Disabling xz will skip some tests in "make check". + + NOTE: If xzdec is disabled and lzmadec is left enabled, + a dangling man page symlink lzmadec.1 -> xzdec.1 is + created. + + --disable-lzma-links + Don't create symlinks for LZMA Utils compatibility. + This includes lzma, unlzma, and lzcat. If scripts are + installed, also lzdiff, lzcmp, lzgrep, lzegrep, lzfgrep, + lzmore, and lzless will be omitted if this option is used. + + --disable-scripts + Don't install the scripts xzdiff, xzgrep, xzmore, xzless, + and their symlinks. + + --disable-doc + Don't install the documentation files to $docdir + (often /usr/doc/xz or /usr/local/doc/xz). Man pages + will still be installed. The $docdir can be changed + with --docdir=DIR. + + --disable-assembler + liblzma includes some assembler optimizations. Currently + there is only assembler code for CRC32 and CRC64 for + 32-bit x86. + + All the assembler code in liblzma is position-independent + code, which is suitable for use in shared libraries and + position-independent executables. So far only i386 + instructions are used, but the code is optimized for i686 + class CPUs. If you are compiling liblzma exclusively for + pre-i686 systems, you may want to disable the assembler + code. + + --disable-clmul-crc + Disable the use carryless multiplication for CRC + calculation even if compiler support for it is detected. + The code uses runtime detection of SSSE3, SSE4.1, and + CLMUL instructions on x86. On 32-bit x86 this currently + is used only if --disable-assembler is used (this might + be fixed in the future). The code works on E2K too. + + If using compiler options that unconditionally allow the + required extensions (-msse4.1 -mpclmul) then runtime + detection isn't used and the generic code is omitted. + + --enable-unaligned-access + Allow liblzma to use unaligned memory access for 16-bit, + 32-bit, and 64-bit loads and stores. This should be + enabled only when the hardware supports this, that is, + when unaligned access is fast. Some operating system + kernels emulate unaligned access, which is extremely + slow. This option shouldn't be used on systems that + rely on such emulation. + + Unaligned access is enabled by default on x86, x86-64, + big endian PowerPC, some ARM, and some ARM64 systems. + + --enable-unsafe-type-punning + This enables use of code like + + uint8_t *buf8 = ...; + *(uint32_t *)buf8 = ...; + + which violates strict aliasing rules and may result + in broken code. There should be no need to use this + option with recent GCC or Clang versions on any + arch as just as fast code can be generated in a safe + way too (using __builtin_assume_aligned + memcpy). + + However, this option might improve performance in some + other cases, especially with old compilers (for example, + GCC 3 and early 4.x on x86, GCC < 6 on ARMv6 and ARMv7). + + --enable-small + Reduce the size of liblzma by selecting smaller but + semantically equivalent version of some functions, and + omit precomputed lookup tables. This option tends to + make liblzma slightly slower. + + Note that while omitting the precomputed tables makes + liblzma smaller on disk, the tables are still needed at + run time, and need to be computed at startup. This also + means that the RAM holding the tables won't be shared + between applications linked against shared liblzma. + + This option doesn't modify CFLAGS to tell the compiler + to optimize for size. You need to add -Os or equivalent + flag(s) to CFLAGS manually. + + --enable-assume-ram=SIZE + On the most common operating systems, XZ Utils is able to + detect the amount of physical memory on the system. This + information is used by the options --memlimit-compress, + --memlimit-decompress, and --memlimit when setting the + limit to a percentage of total RAM. + + On some systems, there is no code to detect the amount of + RAM though. Using --enable-assume-ram one can set how much + memory to assume on these systems. SIZE is given as MiB. + The default is 128 MiB. + + Feel free to send patches to add support for detecting + the amount of RAM on the operating system you use. See + src/common/tuklib_physmem.c for details. + + --enable-threads=METHOD + Threading support is enabled by default so normally there + is no need to specify this option. + + Supported values for METHOD: + + yes Autodetect the threading method. If none + is found, configure will give an error. + + posix Use POSIX pthreads. This is the default + except on Windows outside Cygwin. + + win95 Use Windows 95 compatible threads. This + is compatible with Windows XP and later + too. This is the default for 32-bit x86 + Windows builds. Unless the compiler + supports __attribute__((__constructor__)), + the `win95' threading is incompatible with + --enable-small. + + vista Use Windows Vista compatible threads. The + resulting binaries won't run on Windows XP + or older. This is the default for Windows + excluding 32-bit x86 builds (that is, on + x86-64 the default is `vista'). + + no Disable threading support. This is the + same as using --disable-threads. + NOTE: If combined with --enable-small + and the compiler doesn't support + __attribute__((__constructor__)), the + resulting liblzma won't be thread safe, + that is, if a multi-threaded application + calls any liblzma functions from more than + one thread, something bad may happen. + + --enable-sandbox=METHOD + There is limited sandboxing support in the xz tool. If + built with sandbox support, it's used automatically when + (de)compressing exactly one file to standard output and + the options --files or --files0 weren't used. This is a + common use case, for example, (de)compressing .tar.xz + files via GNU tar. The sandbox is also used for + single-file `xz --test' or `xz --list'. + + Supported METHODs: + + auto Look for a supported sandboxing method + and use it if found. If no method is + found, then sandboxing isn't used. + This is the default. + + no Disable sandboxing support. + + capsicum + Use Capsicum (FreeBSD >= 10) for + sandboxing. If no Capsicum support + is found, configure will give an error. + + pledge Use pledge(2) (OpenBSD >= 5.9) for + sandboxing. If pledge(2) isn't found, + configure will give an error. + + --enable-symbol-versions + Use symbol versioning for liblzma. This is enabled by + default on GNU/Linux, other GNU-based systems, and + FreeBSD. + + --enable-debug + This enables the assert() macro and possibly some other + run-time consistency checks. It makes the code slower, so + you normally don't want to have this enabled. + + --enable-werror + If building with GCC, make all compiler warnings an error, + that abort the compilation. This may help catching bugs, + and should work on most systems. This has no effect on the + resulting binaries. + + --enable-path-for-scripts=PREFIX + If PREFIX isn't empty, PATH=PREFIX:$PATH will be set in + the beginning of the scripts (xzgrep and others). + The default is empty except on Solaris the default is + /usr/xpg4/bin. + + This can be useful if the default PATH doesn't contain + modern POSIX tools (as can be the case on Solaris) or if + one wants to ensure that the correct xz binary is in the + PATH for the scripts. Note that the latter use can break + "make check" if the prefixed PATH causes a wrong xz binary + (other than the one that was just built) to be used. + + Older xz releases support a different method for setting + the PATH for the scripts. It is described in section 3.2 + and is supported in this xz version too. + + +2.1. Static vs. dynamic linking of liblzma + + On 32-bit x86, linking against static liblzma can give a minor + speed improvement. Static libraries on x86 are usually compiled as + position-dependent code (non-PIC) and shared libraries are built as + position-independent code (PIC). PIC wastes one register, which can + make the code slightly slower compared to a non-PIC version. (Note + that this doesn't apply to x86-64.) + + If you want to link xz against static liblzma, the simplest way + is to pass --disable-shared to configure. If you want also shared + liblzma, run configure again and run "make install" only for + src/liblzma. + + +2.2. Optimizing xzdec and lzmadec + + xzdec and lzmadec are intended to be relatively small instead of + optimizing for the best speed. Thus, it is a good idea to build + xzdec and lzmadec separately: + + - To link the tools against static liblzma, pass --disable-shared + to configure. + + - To select somewhat size-optimized variant of some things in + liblzma, pass --enable-small to configure. + + - Tell the compiler to optimize for size instead of speed. + For example, with GCC, put -Os into CFLAGS. + + - xzdec and lzmadec will never use multithreading capabilities of + liblzma. You can avoid dependency on libpthread by passing + --disable-threads to configure. + + - There are and will be no translated messages for xzdec and + lzmadec, so it is fine to pass also --disable-nls to configure. + + - Only decoder code is needed, so you can speed up the build + slightly by passing --disable-encoders to configure. This + shouldn't affect the final size of the executables though, + because the linker is able to omit the encoder code anyway. + + If you have no use for xzdec or lzmadec, you can disable them with + --disable-xzdec and --disable-lzmadec. + + +3. xzgrep and other scripts +--------------------------- + +3.1. Dependencies + + POSIX shell (sh) and bunch of other standard POSIX tools are required + to run the scripts. The configure script tries to find a POSIX + compliant sh, but if it fails, you can force the shell by passing + gl_cv_posix_shell=/path/to/posix-sh as an argument to the configure + script. + + xzdiff (xzcmp/lzdiff/lzcmp) may use mktemp if it is available. As + a fallback xzdiff will use mkdir to securely create a temporary + directory. Having mktemp available is still recommended since the + mkdir fallback method isn't as robust as mktemp is. The original + mktemp can be found from . On GNU, most will + use the mktemp program from GNU coreutils instead of the original + implementation. Both mktemp versions are fine. + + In addition to using xz to decompress .xz files, xzgrep and xzdiff + use gzip, bzip2, and lzop to support .gz, bz2, and .lzo files. + + +3.2. PATH + + The method described below is supported by older xz releases. + It is supported by the current version too, but the newer + --enable-path-for-scripts=PREFIX described in section 2 may be + more convenient. + + The scripts assume that the required tools (standard POSIX utilities, + mktemp, and xz) are in PATH; the scripts don't set the PATH themselves + (except as described for --enable-path-for-scripts=PREFIX). Some + people like this while some think this is a bug. Those in the latter + group can easily patch the scripts before running the configure script + by taking advantage of a placeholder line in the scripts. + + For example, to make the scripts prefix /usr/bin:/bin to PATH: + + perl -pi -e 's|^#SET_PATH.*$|PATH=/usr/bin:/bin:\$PATH|' \ + src/scripts/xz*.in + + +4. Tests +-------- + + The test framework can be built and run by executing "make check" in + the build directory. The tests are a mix of executables and POSIX + shell scripts (sh). All tests should pass if the default configuration + is used. Disabling features through the configure options may cause + some tests to be skipped. If any tests do not pass, see section 5.5. + + +4.1. Testing in parallel + + The tests can be run in parallel using the "-j" make option on systems + that support it. For instance, "make -j4 check" will run up to four + tests simultaneously. + + +4.2. Cross compiling + + The tests can be built without running them: + + make check TESTS= + + The TESTS variable is the list of tests you wish to run. Leaving it + empty will compile the tests without running any. + + If the tests are copied to a target machine to execute, the test data + files in the directory tests/files must also be copied. The tests + search for the data files using the environment variable $srcdir, + expecting to find the data files under $srcdir/files/. If $srcdir + isn't set then it defaults to the current directory. + + The shell script tests can be copied from the source directory to the + target machine to execute. In addition to the test files, these tests + will expect the following relative file paths to execute properly: + + ./create_compress_files + ../config.h + ../src/xz/xz + ../src/xzdec/xzdec + ../src/scripts/xzdiff + ../src/scripts/xzgrep + + +5. Troubleshooting +------------------ + +5.1. "No C99 compiler was found." + + You need a C99 compiler to build XZ Utils. If the configure script + cannot find a C99 compiler and you think you have such a compiler + installed, set the compiler command by passing CC=/path/to/c99 as + an argument to the configure script. + + If you get this error even when you think your compiler supports C99, + you can override the test by passing ac_cv_prog_cc_c99= as an argument + to the configure script. The test for C99 compiler is not perfect (and + it is not as easy to make it perfect as it sounds), so sometimes this + may be needed. You will get a compile error if your compiler doesn't + support enough C99. + + +5.2. "No POSIX conforming shell (sh) was found." + + xzgrep and other scripts need a shell that (roughly) conforms + to POSIX. The configure script tries to find such a shell. If + it fails, you can force the shell to be used by passing + gl_cv_posix_shell=/path/to/posix-sh as an argument to the configure + script. Alternatively you can omit the installation of scripts and + this error by passing --disable-scripts to configure. + + +5.3. configure works but build fails at crc32_x86.S + + The easy fix is to pass --disable-assembler to the configure script. + + The configure script determines if assembler code can be used by + looking at the configure triplet; there is currently no check if + the assembler code can actually actually be built. The x86 assembler + code should work on x86 GNU/Linux, *BSDs, Solaris, Darwin, MinGW, + Cygwin, and DJGPP. On other x86 systems, there may be problems and + the assembler code may need to be disabled with the configure option. + + If you get this error when building for x86-64, you have specified or + the configure script has misguessed your architecture. Pass the + correct configure triplet using the --build=CPU-COMPANY-SYSTEM option + (see INSTALL.generic). + + +5.4. Lots of warnings about symbol visibility + + On some systems where symbol visibility isn't supported, GCC may + still accept the visibility options and attributes, which will make + configure think that visibility is supported. This will result in + many compiler warnings. You can avoid the warnings by forcing the + visibility support off by passing gl_cv_cc_visibility=no as an + argument to the configure script. This has no effect on the + resulting binaries, but fewer warnings looks nicer and may allow + using --enable-werror. + + +5.5. "make check" fails + + If the other tests pass but test_scripts.sh fails, then the problem + is in the scripts in src/scripts. Comparing the contents of + tests/xzgrep_test_output to tests/xzgrep_expected_output might + give a good idea about problems in xzgrep. One possibility is that + some tools are missing from the current PATH or the tools lack + support for some POSIX features. This can happen at least on + Solaris where the tools in /bin may be ancient but good enough + tools are available in /usr/xpg4/bin or /usr/xpg6/bin. For possible + fixes, see --enable-path-for-scripts=PREFIX in section 2 and the + older alternative method described in section 3.2 of this file. + + If tests other than test_scripts.sh fail, a likely reason is that + libtool links the test programs against an installed version of + liblzma instead of the version that was just built. This is + obviously a bug which seems to happen on some platforms. + A workaround is to uninstall the old liblzma versions first. + + If the problem isn't any of those described above, then it's likely + a bug in XZ Utils or in the compiler. See the platform-specific + notes in this file for possible known problems. Please report + a bug if you cannot solve the problem. See README for contact + information. + + +5.6. liblzma.so (or similar) not found when running xz + + If you installed the package with "make install" and get an error + about liblzma.so (or a similarly named file) being missing, try + running "ldconfig" to update the run-time linker cache (if your + operating system has such a command). + diff --git a/xz-5.4.5/INSTALL.generic b/xz-5.4.5/INSTALL.generic new file mode 100644 index 000000000..8865734f8 --- /dev/null +++ b/xz-5.4.5/INSTALL.generic @@ -0,0 +1,368 @@ +Installation Instructions +************************* + + Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software +Foundation, Inc. + + Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. + +Basic Installation +================== + + Briefly, the shell command './configure && make && make install' +should configure, build, and install this package. The following +more-detailed instructions are generic; see the 'README' file for +instructions specific to this package. Some packages provide this +'INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. + + The 'configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a 'Makefile' in each directory of the package. +It may also create one or more '.h' files containing system-dependent +definitions. Finally, it creates a shell script 'config.status' that +you can run in the future to recreate the current configuration, and a +file 'config.log' containing compiler output (useful mainly for +debugging 'configure'). + + It can also use an optional file (typically called 'config.cache' and +enabled with '--cache-file=config.cache' or simply '-C') that saves the +results of its tests to speed up reconfiguring. Caching is disabled by +default to prevent problems with accidental use of stale cache files. + + If you need to do unusual things to compile the package, please try +to figure out how 'configure' could check whether to do them, and mail +diffs or instructions to the address given in the 'README' so they can +be considered for the next release. If you are using the cache, and at +some point 'config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file 'configure.ac' (or 'configure.in') is used to create +'configure' by a program called 'autoconf'. You need 'configure.ac' if +you want to change it or regenerate 'configure' using a newer version of +'autoconf'. + + The simplest way to compile this package is: + + 1. 'cd' to the directory containing the package's source code and type + './configure' to configure the package for your system. + + Running 'configure' might take a while. While running, it prints + some messages telling which features it is checking for. + + 2. Type 'make' to compile the package. + + 3. Optionally, type 'make check' to run any self-tests that come with + the package, generally using the just-built uninstalled binaries. + + 4. Type 'make install' to install the programs and any data files and + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the 'make install' phase executed with root + privileges. + + 5. Optionally, type 'make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior 'make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the + source code directory by typing 'make clean'. To also remove the + files that 'configure' created (so you can compile the package for + a different kind of computer), type 'make distclean'. There is + also a 'make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + + 7. Often, you can also type 'make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide 'make + distcheck', which can by used by developers to test that all other + targets like 'make install' and 'make uninstall' work correctly. + This target is generally not run by end users. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the 'configure' script does not know about. Run './configure --help' +for details on some of the pertinent environment variables. + + You can give 'configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here is +an example: + + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU 'make'. 'cd' to the +directory where you want the object files and executables to go and run +the 'configure' script. 'configure' automatically checks for the source +code in the directory that 'configure' is in and in '..'. This is known +as a "VPATH" build. + + With a non-GNU 'make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use 'make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple '-arch' options to the +compiler but only a single '-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the 'lipo' tool if you have problems. + +Installation Names +================== + + By default, 'make install' installs the package's commands under +'/usr/local/bin', include files under '/usr/local/include', etc. You +can specify an installation prefix other than '/usr/local' by giving +'configure' the option '--prefix=PREFIX', where PREFIX must be an +absolute file name. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option '--exec-prefix=PREFIX' to 'configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like '--bindir=DIR' to specify different values for particular +kinds of files. Run 'configure --help' for a list of the directories +you can set and what kinds of files go in them. In general, the default +for these options is expressed in terms of '${prefix}', so that +specifying just '--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to 'configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +'make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, 'make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +'${prefix}'. Any directories that were specified during 'configure', +but not in terms of '${prefix}', must each be overridden at install time +for the entire installation to be relocated. The approach of makefile +variable overrides for each directory variable is required by the GNU +Coding Standards, and ideally causes no recompilation. However, some +platforms have known limitations with the semantics of shared libraries +that end up requiring recompilation when using this method, particularly +noticeable in packages that use GNU Libtool. + + The second method involves providing the 'DESTDIR' variable. For +example, 'make install DESTDIR=/alternate/directory' will prepend +'/alternate/directory' before all installation names. The approach of +'DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of '${prefix}' +at 'configure' time. + +Optional Features +================= + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving 'configure' the +option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'. + + Some packages pay attention to '--enable-FEATURE' options to +'configure', where FEATURE indicates an optional part of the package. +They may also pay attention to '--with-PACKAGE' options, where PACKAGE +is something like 'gnu-as' or 'x' (for the X Window System). The +'README' should mention any '--enable-' and '--with-' options that the +package recognizes. + + For packages that use the X Window System, 'configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the 'configure' options '--x-includes=DIR' and +'--x-libraries=DIR' to specify their locations. + + Some packages offer the ability to configure how verbose the +execution of 'make' will be. For these packages, running './configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with 'make V=1'; while running './configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with 'make V=0'. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC +is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + HP-UX 'make' updates targets which have the same time stamps as their +prerequisites, which makes it generally unusable when shipped generated +files such as 'configure' are involved. Use GNU 'make' instead. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its '' header file. The option '-nodtk' can be used as a +workaround. If GNU CC is not installed, it is therefore recommended to +try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + + On Solaris, don't put '/usr/ucb' early in your 'PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in '/usr/bin'. So, if you need '/usr/ucb' +in your 'PATH', put it _after_ '/usr/bin'. + + On Haiku, software installed for all users goes in '/boot/common', +not '/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + +Specifying the System Type +========================== + + There may be some features 'configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, 'configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +'--build=TYPE' option. TYPE can either be a short name for the system +type, such as 'sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS + KERNEL-OS + + See the file 'config.sub' for the possible values of each field. If +'config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option '--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with '--host=TYPE'. + +Sharing Defaults +================ + + If you want to set default values for 'configure' scripts to share, +you can create a site shell script called 'config.site' that gives +default values for variables like 'CC', 'cache_file', and 'prefix'. +'configure' looks for 'PREFIX/share/config.site' if it exists, then +'PREFIX/etc/config.site' if it exists. Or, you can set the +'CONFIG_SITE' environment variable to the location of the site script. +A warning: not all 'configure' scripts look for a site script. + +Defining Variables +================== + + Variables not defined in a site shell script can be set in the +environment passed to 'configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the 'configure' command line, using 'VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +causes the specified 'gcc' to be used as the C compiler (unless it is +overridden in the site shell script). + +Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an +Autoconf limitation. Until the limitation is lifted, you can use this +workaround: + + CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash + +'configure' Invocation +====================== + + 'configure' recognizes the following options to control how it +operates. + +'--help' +'-h' + Print a summary of all of the options to 'configure', and exit. + +'--help=short' +'--help=recursive' + Print a summary of the options unique to this package's + 'configure', and exit. The 'short' variant lists options used only + in the top level, while the 'recursive' variant lists options also + present in any nested packages. + +'--version' +'-V' + Print the version of Autoconf used to generate the 'configure' + script, and exit. + +'--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally 'config.cache'. FILE defaults to '/dev/null' to + disable caching. + +'--config-cache' +'-C' + Alias for '--cache-file=config.cache'. + +'--quiet' +'--silent' +'-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to '/dev/null' (any error + messages will still be shown). + +'--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + 'configure' can determine that directory automatically. + +'--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: for + more details, including other options available for fine-tuning the + installation locations. + +'--no-create' +'-n' + Run the configure checks, but stop before creating any output + files. + +'configure' also accepts some other, not widely useful, options. Run +'configure --help' for more details. diff --git a/xz-5.4.5/Makefile b/xz-5.4.5/Makefile new file mode 100644 index 000000000..fc9d0c1f9 --- /dev/null +++ b/xz-5.4.5/Makefile @@ -0,0 +1,1121 @@ +# Makefile.in generated by automake 1.16.5 from Makefile.am. +# Makefile. Generated from Makefile.in by configure. + +# Copyright (C) 1994-2021 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + + + +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/xz +pkgincludedir = $(includedir)/xz +pkglibdir = $(libdir)/xz +pkglibexecdir = $(libexecdir)/xz +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = x86_64-apple-darwin25.0.0 +host_triplet = x86_64-apple-darwin25.0.0 +#am__append_1 = lib +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_capsicum.m4 \ + $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/getopt.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/host-cpu-c-abi.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/posix-shell.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/tuklib_common.m4 \ + $(top_srcdir)/m4/tuklib_cpucores.m4 \ + $(top_srcdir)/m4/tuklib_integer.m4 \ + $(top_srcdir)/m4/tuklib_mbstr.m4 \ + $(top_srcdir)/m4/tuklib_physmem.m4 \ + $(top_srcdir)/m4/tuklib_progname.m4 \ + $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(am__dist_doc_DATA_DIST) \ + $(am__dist_examples_DATA_DIST) \ + $(am__dist_examplesold_DATA_DIST) $(am__DIST_COMMON) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_$(V)) +am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY)) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__dist_doc_DATA_DIST = AUTHORS COPYING COPYING.GPLv2 NEWS README \ + THANKS TODO doc/faq.txt doc/history.txt doc/xz-file-format.txt \ + doc/lzma-file-format.txt +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(docdir)" "$(DESTDIR)$(examplesdir)" \ + "$(DESTDIR)$(examplesolddir)" +am__dist_examples_DATA_DIST = doc/examples/00_README.txt \ + doc/examples/01_compress_easy.c doc/examples/02_decompress.c \ + doc/examples/03_compress_custom.c \ + doc/examples/04_compress_easy_mt.c doc/examples/Makefile +am__dist_examplesold_DATA_DIST = doc/examples_old/xz_pipe_comp.c \ + doc/examples_old/xz_pipe_decomp.c +DATA = $(dist_doc_DATA) $(dist_examples_DATA) $(dist_examplesold_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + cscope distdir distdir-am dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \ + config.h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(top_srcdir)/build-aux/compile \ + $(top_srcdir)/build-aux/config.guess \ + $(top_srcdir)/build-aux/config.rpath \ + $(top_srcdir)/build-aux/config.sub \ + $(top_srcdir)/build-aux/install-sh \ + $(top_srcdir)/build-aux/ltmain.sh \ + $(top_srcdir)/build-aux/missing ABOUT-NLS AUTHORS COPYING \ + ChangeLog INSTALL NEWS README THANKS TODO build-aux/compile \ + build-aux/config.guess build-aux/config.rpath \ + build-aux/config.sub build-aux/install-sh build-aux/ltmain.sh \ + build-aux/missing +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi +am__post_remove_distdir = $(am__remove_distdir) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +DIST_ARCHIVES = $(distdir).tar.gz +DIST_TARGETS = dist-gzip +# Exists only to be overridden by the user if desired. +AM_DISTCHECK_DVI_TARGET = dvi +distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' +distcleancheck_listfiles = find . -type f -print +ACLOCAL = ${SHELL} '/Users/bharathy/Open-Sora-All/xz-5.4.5/build-aux/missing' aclocal-1.16 +AMTAR = $${TAR-tar} +AM_CFLAGS = -pthread -fvisibility=hidden -Wall -Wextra -Wvla -Wformat=2 -Winit-self -Wmissing-include-dirs -Wstrict-overflow=3 -Wfloat-equal -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wwrite-strings -Wdate-time -Wsign-conversion -Wfloat-conversion -Waggregate-return -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wc99-compat -Wc11-extensions -Wc2x-compat -Wc2x-extensions -Wpre-c2x-compat -Warray-bounds-pointer-arithmetic -Wassign-enum -Wconditional-uninitialized -Wdocumentation -Wduplicate-enum -Wempty-translation-unit -Wflexible-array-extensions -Wmissing-variable-declarations -Wnewline-eof -Wshift-sign-overflow -Wstring-conversion +AM_DEFAULT_VERBOSITY = 1 +AR = ar +AS = as +AUTOCONF = ${SHELL} '/Users/bharathy/Open-Sora-All/xz-5.4.5/build-aux/missing' autoconf +AUTOHEADER = ${SHELL} '/Users/bharathy/Open-Sora-All/xz-5.4.5/build-aux/missing' autoheader +AUTOMAKE = ${SHELL} '/Users/bharathy/Open-Sora-All/xz-5.4.5/build-aux/missing' automake-1.16 +AWK = awk +CAPSICUM_LIB = +CC = gcc +CCAS = gcc +CCASDEPMODE = depmode=gcc3 +CCASFLAGS = -g -O2 +CCDEPMODE = depmode=gcc3 +CFLAGS = -g -O2 +CFLAG_VISIBILITY = -fvisibility=hidden +CPP = gcc -E +CPPFLAGS = +CSCOPE = cscope +CTAGS = ctags +CYGPATH_W = echo +DEFS = -DHAVE_CONFIG_H +DEPDIR = .deps +DLLTOOL = false +DSYMUTIL = dsymutil +DUMPBIN = +ECHO_C = \c +ECHO_N = +ECHO_T = +EGREP = /usr/bin/grep -E +ETAGS = etags +EXEEXT = +FGREP = /usr/bin/grep -F +FILECMD = file +GETOPT_H = +GETTEXT_MACRO_VERSION = 0.20 +GMSGFMT = : +GMSGFMT_015 = : +GREP = /usr/bin/grep +HAVE_VISIBILITY = 1 +INSTALL = /usr/bin/install -c +INSTALL_DATA = ${INSTALL} -m 644 +INSTALL_PROGRAM = ${INSTALL} +INSTALL_SCRIPT = ${INSTALL} +INSTALL_STRIP_PROGRAM = $(install_sh) -c -s +INTLLIBS = +INTL_MACOSX_LIBS = -Wl,-framework -Wl,CoreFoundation +LD = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld +LDFLAGS = +LIBICONV = -liconv +LIBINTL = +LIBOBJS = +LIBS = -lpthread +LIBTOOL = $(SHELL) $(top_builddir)/libtool +LIPO = lipo +LN_EXEEXT = $(EXEEXT) +LN_S = ln -s +LTLIBICONV = -liconv +LTLIBINTL = +LTLIBOBJS = +LT_SYS_LIBRARY_PATH = +MAKEINFO = ${SHELL} '/Users/bharathy/Open-Sora-All/xz-5.4.5/build-aux/missing' makeinfo +MANIFEST_TOOL = : +MKDIR_P = ./build-aux/install-sh -c -d +MSGFMT = : +MSGMERGE = : +MSGMERGE_FOR_MSGFMT_OPTION = --no-location --quiet +NM = /usr/bin/nm -B +NMEDIT = nmedit +OBJDUMP = objdump +OBJEXT = o +OTOOL = otool +OTOOL64 = : +PACKAGE = xz +PACKAGE_BUGREPORT = xz@tukaani.org +PACKAGE_NAME = XZ Utils +PACKAGE_STRING = XZ Utils 5.4.5 +PACKAGE_TARNAME = xz +PACKAGE_URL = https://tukaani.org/xz/ +PACKAGE_VERSION = 5.4.5 +PATH_SEPARATOR = : +POSIX_SHELL = /bin/sh +POSUB = +PREFERABLY_POSIX_SHELL = /bin/sh +PTHREAD_CC = gcc +PTHREAD_CFLAGS = -pthread +PTHREAD_CXX = +PTHREAD_LIBS = -lpthread +RANLIB = ranlib +RC = +SED = /usr/bin/sed +SET_MAKE = +SHELL = /bin/sh +STRIP = strip +USE_NLS = no +VERSION = 5.4.5 +XGETTEXT = : +XGETTEXT_015 = : +XGETTEXT_EXTRA_OPTIONS = +abs_builddir = /Users/bharathy/Open-Sora-All/xz-5.4.5 +abs_srcdir = /Users/bharathy/Open-Sora-All/xz-5.4.5 +abs_top_builddir = /Users/bharathy/Open-Sora-All/xz-5.4.5 +abs_top_srcdir = /Users/bharathy/Open-Sora-All/xz-5.4.5 +ac_ct_AR = ar +ac_ct_CC = gcc +ac_ct_DUMPBIN = +am__include = include +am__leading_dot = . +am__quote = +am__tar = $${TAR-tar} chof - "$$tardir" +am__untar = $${TAR-tar} xf - +ax_pthread_config = +bindir = ${exec_prefix}/bin +build = x86_64-apple-darwin25.0.0 +build_alias = +build_cpu = x86_64 +build_os = darwin25.0.0 +build_vendor = apple +builddir = . +datadir = ${datarootdir} +datarootdir = ${prefix}/share +docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} +dvidir = ${docdir} +enable_path_for_scripts = +exec_prefix = ${prefix} +host = x86_64-apple-darwin25.0.0 +host_alias = +host_cpu = x86_64 +host_os = darwin25.0.0 +host_vendor = apple +htmldir = ${docdir} +includedir = ${prefix}/include +infodir = ${datarootdir}/info +install_sh = ${SHELL} /Users/bharathy/Open-Sora-All/xz-5.4.5/build-aux/install-sh +libdir = ${exec_prefix}/lib +libexecdir = ${exec_prefix}/libexec +localedir = ${datarootdir}/locale +localstatedir = ${prefix}/var +mandir = ${datarootdir}/man +mkdir_p = $(MKDIR_P) +oldincludedir = /usr/include +pdfdir = ${docdir} +prefix = /Users/bharathy/Open-Sora-All/xz-install +program_transform_name = s,x,x, +psdir = ${docdir} +runstatedir = ${localstatedir}/run +sbindir = ${exec_prefix}/sbin +sharedstatedir = ${prefix}/com +srcdir = . +sysconfdir = ${prefix}/etc +target_alias = +top_build_prefix = +top_builddir = . +top_srcdir = . +xz = xz + +# Use -n to prevent gzip from adding a timestamp to the .gz headers. +GZIP_ENV = -9n +DIST_SUBDIRS = lib src po tests debug +SUBDIRS = $(am__append_1) src po tests +dist_doc_DATA = \ + AUTHORS \ + COPYING \ + COPYING.GPLv2 \ + NEWS \ + README \ + THANKS \ + TODO \ + doc/faq.txt \ + doc/history.txt \ + doc/xz-file-format.txt \ + doc/lzma-file-format.txt + +examplesdir = $(docdir)/examples +dist_examples_DATA = \ + doc/examples/00_README.txt \ + doc/examples/01_compress_easy.c \ + doc/examples/02_decompress.c \ + doc/examples/03_compress_custom.c \ + doc/examples/04_compress_easy_mt.c \ + doc/examples/Makefile + +examplesolddir = $(docdir)/examples_old +dist_examplesold_DATA = \ + doc/examples_old/xz_pipe_comp.c \ + doc/examples_old/xz_pipe_decomp.c + +EXTRA_DIST = \ + po4a \ + extra \ + dos \ + doxygen \ + windows \ + macosx \ + cmake \ + CMakeLists.txt \ + autogen.sh \ + COPYING.GPLv2 \ + COPYING.GPLv3 \ + COPYING.LGPLv2.1 \ + INSTALL.generic \ + PACKAGERS \ + build-aux/manconv.sh \ + build-aux/version.sh + +ACLOCAL_AMFLAGS = -I m4 + +# List of man pages to convert to PDF and plain text in the dist-hook target. +manfiles = \ + src/xz/xz.1 \ + src/xzdec/xzdec.1 \ + src/lzmainfo/lzmainfo.1 \ + src/scripts/xzdiff.1 \ + src/scripts/xzgrep.1 \ + src/scripts/xzless.1 \ + src/scripts/xzmore.1 + +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +am--refresh: Makefile + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +config.h: stamp-h1 + @test -f $@ || rm -f stamp-h1 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt +install-dist_docDATA: $(dist_doc_DATA) + @$(NORMAL_INSTALL) + @list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(docdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(docdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \ + done + +uninstall-dist_docDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir) +install-dist_examplesDATA: $(dist_examples_DATA) + @$(NORMAL_INSTALL) + @list='$(dist_examples_DATA)'; test -n "$(examplesdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(examplesdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(examplesdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(examplesdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(examplesdir)" || exit $$?; \ + done + +uninstall-dist_examplesDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_examples_DATA)'; test -n "$(examplesdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(examplesdir)'; $(am__uninstall_files_from_dir) +install-dist_examplesoldDATA: $(dist_examplesold_DATA) + @$(NORMAL_INSTALL) + @list='$(dist_examplesold_DATA)'; test -n "$(examplesolddir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(examplesolddir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(examplesolddir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(examplesolddir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(examplesolddir)" || exit $$?; \ + done + +uninstall-dist_examplesoldDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_examplesold_DATA)'; test -n "$(examplesolddir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(examplesolddir)'; $(am__uninstall_files_from_dir) + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" + @if test -z "$(am__skip_length_check)" && find "$(distdir)" -type f -print | \ + grep '^...................................................................................................' 1>&2; then \ + echo 'error: the above filenames are too long' 1>&2; \ + exit 1; \ + else :; fi +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz + $(am__post_remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__post_remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__post_remove_distdir) + +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__post_remove_distdir) + +dist-zstd: distdir + tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst + $(am__post_remove_distdir) + +dist-tarZ: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__post_remove_distdir) + +dist-shar: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz + $(am__post_remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__post_remove_distdir) + +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + *.tar.zst*) \ + zstd -dc $(distdir).tar.zst | $(am__untar) ;;\ + esac + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build/sub \ + && ../../configure \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=../.. --prefix="$$dc_install_base" \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__post_remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile $(DATA) config.h +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(docdir)" "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(examplesolddir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#install-data-local: +#uninstall-local: +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr \ + distclean-libtool distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-data-local install-dist_docDATA \ + install-dist_examplesDATA install-dist_examplesoldDATA + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-dist_docDATA uninstall-dist_examplesDATA \ + uninstall-dist_examplesoldDATA uninstall-local + +.MAKE: $(am__recursive_targets) all install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--refresh check check-am clean clean-cscope clean-generic \ + clean-libtool cscope cscopelist-am ctags ctags-am dist \ + dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \ + dist-tarZ dist-xz dist-zip dist-zstd distcheck distclean \ + distclean-generic distclean-hdr distclean-libtool \ + distclean-tags distcleancheck distdir distuninstallcheck dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-data-local \ + install-dist_docDATA install-dist_examplesDATA \ + install-dist_examplesoldDATA install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-dist_docDATA \ + uninstall-dist_examplesDATA uninstall-dist_examplesoldDATA \ + uninstall-local + +.PRECIOUS: Makefile + + +# Install the Doxygen generated documentation if they were built. +install-data-local: + if test -d "$(srcdir)/doc/api" ; then \ + $(MKDIR_P) "$(DESTDIR)$(docdir)/api" && \ + $(INSTALL_DATA) "$(srcdir)"/doc/api/* \ + "$(DESTDIR)$(docdir)/api"; \ + fi + +# Remove the Doxygen generated documentation when uninstalling. +uninstall-local: + rm -rf "$(DESTDIR)$(docdir)/api" + +# Create ChangeLog from output of "git log --date=iso --stat". +# Convert the man pages to PDF and plain text (ASCII only) formats. +dist-hook: + if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \ + ( cd "$(srcdir)" && git log --date=iso --stat \ + 6060f7dc76fd6c2a8a1f8e85d0e4d86bb78273e6^..HEAD ) \ + > "$(distdir)/ChangeLog"; \ + fi + if type groff > /dev/null 2>&1 && type ps2pdf > /dev/null 2>&1; then \ + dest="$(distdir)/doc/man" && \ + $(MKDIR_P) "$$dest/pdf-a4" "$$dest/pdf-letter" "$$dest/txt" && \ + for FILE in $(manfiles); do \ + BASE=`basename $$FILE .1` && \ + sh "$(srcdir)/build-aux/manconv.sh" pdf a4 \ + < "$(srcdir)/$$FILE" \ + > "$$dest/pdf-a4/$$BASE-a4.pdf" && \ + sh "$(srcdir)/build-aux/manconv.sh" pdf letter \ + < "$(srcdir)/$$FILE" \ + > "$$dest/pdf-letter/$$BASE-letter.pdf" && \ + sh "$(srcdir)/build-aux/manconv.sh" ascii \ + < "$(srcdir)/$$FILE" \ + > "$$dest/txt/$$BASE.txt"; \ + done; \ + fi + if test -d "$(srcdir)/doc/api" ; then \ + $(MKDIR_P) "$(distdir)/doc/api" && \ + $(INSTALL_DATA) "$(srcdir)"/doc/api/* \ + "$(distdir)/doc/api"; \ + fi + +# This works with GNU tar and gives cleaner package than normal 'make dist'. +# This also ensures that the man page translations are up to date (dist-hook +# would be too late for that). +mydist: + sh "$(srcdir)/src/liblzma/validate_map.sh" + cd "$(srcdir)/po4a" && sh update-po + cd "$(srcdir)/doxygen" && sh update-doxygen + VERSION=$(VERSION); \ + if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \ + SNAPSHOT=`cd "$(srcdir)" && git describe --abbrev=4 | cut -b2-`; \ + test -n "$$SNAPSHOT" && VERSION=$$SNAPSHOT; \ + fi; \ + TAR_OPTIONS='--owner=0 --group=0 --numeric-owner --mode=u+rw,go+r-w' \ + $(MAKE) VERSION="$$VERSION" dist-gzip + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/xz-5.4.5/Makefile.am b/xz-5.4.5/Makefile.am new file mode 100644 index 000000000..f562f902c --- /dev/null +++ b/xz-5.4.5/Makefile.am @@ -0,0 +1,134 @@ +## +## Author: Lasse Collin +## +## This file has been put into the public domain. +## You can do whatever you want with this file. +## + +# Use -n to prevent gzip from adding a timestamp to the .gz headers. +GZIP_ENV = -9n + +DIST_SUBDIRS = lib src po tests debug +SUBDIRS = + +if COND_GNULIB +SUBDIRS += lib +endif + +SUBDIRS += src po tests + +if COND_DOC +dist_doc_DATA = \ + AUTHORS \ + COPYING \ + COPYING.GPLv2 \ + NEWS \ + README \ + THANKS \ + TODO \ + doc/faq.txt \ + doc/history.txt \ + doc/xz-file-format.txt \ + doc/lzma-file-format.txt + +examplesdir = $(docdir)/examples +dist_examples_DATA = \ + doc/examples/00_README.txt \ + doc/examples/01_compress_easy.c \ + doc/examples/02_decompress.c \ + doc/examples/03_compress_custom.c \ + doc/examples/04_compress_easy_mt.c \ + doc/examples/Makefile + +examplesolddir = $(docdir)/examples_old +dist_examplesold_DATA = \ + doc/examples_old/xz_pipe_comp.c \ + doc/examples_old/xz_pipe_decomp.c + +# Install the Doxygen generated documentation if they were built. +install-data-local: + if test -d "$(srcdir)/doc/api" ; then \ + $(MKDIR_P) "$(DESTDIR)$(docdir)/api" && \ + $(INSTALL_DATA) "$(srcdir)"/doc/api/* \ + "$(DESTDIR)$(docdir)/api"; \ + fi + +# Remove the Doxygen generated documentation when uninstalling. +uninstall-local: + rm -rf "$(DESTDIR)$(docdir)/api" +endif + +EXTRA_DIST = \ + po4a \ + extra \ + dos \ + doxygen \ + windows \ + macosx \ + cmake \ + CMakeLists.txt \ + autogen.sh \ + COPYING.GPLv2 \ + COPYING.GPLv3 \ + COPYING.LGPLv2.1 \ + INSTALL.generic \ + PACKAGERS \ + build-aux/manconv.sh \ + build-aux/version.sh + +ACLOCAL_AMFLAGS = -I m4 + +# List of man pages to convert to PDF and plain text in the dist-hook target. +manfiles = \ + src/xz/xz.1 \ + src/xzdec/xzdec.1 \ + src/lzmainfo/lzmainfo.1 \ + src/scripts/xzdiff.1 \ + src/scripts/xzgrep.1 \ + src/scripts/xzless.1 \ + src/scripts/xzmore.1 + +# Create ChangeLog from output of "git log --date=iso --stat". +# Convert the man pages to PDF and plain text (ASCII only) formats. +dist-hook: + if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \ + ( cd "$(srcdir)" && git log --date=iso --stat \ + 6060f7dc76fd6c2a8a1f8e85d0e4d86bb78273e6^..HEAD ) \ + > "$(distdir)/ChangeLog"; \ + fi + if type groff > /dev/null 2>&1 && type ps2pdf > /dev/null 2>&1; then \ + dest="$(distdir)/doc/man" && \ + $(MKDIR_P) "$$dest/pdf-a4" "$$dest/pdf-letter" "$$dest/txt" && \ + for FILE in $(manfiles); do \ + BASE=`basename $$FILE .1` && \ + sh "$(srcdir)/build-aux/manconv.sh" pdf a4 \ + < "$(srcdir)/$$FILE" \ + > "$$dest/pdf-a4/$$BASE-a4.pdf" && \ + sh "$(srcdir)/build-aux/manconv.sh" pdf letter \ + < "$(srcdir)/$$FILE" \ + > "$$dest/pdf-letter/$$BASE-letter.pdf" && \ + sh "$(srcdir)/build-aux/manconv.sh" ascii \ + < "$(srcdir)/$$FILE" \ + > "$$dest/txt/$$BASE.txt"; \ + done; \ + fi + if test -d "$(srcdir)/doc/api" ; then \ + $(MKDIR_P) "$(distdir)/doc/api" && \ + $(INSTALL_DATA) "$(srcdir)"/doc/api/* \ + "$(distdir)/doc/api"; \ + fi + +# This works with GNU tar and gives cleaner package than normal 'make dist'. +# This also ensures that the man page translations are up to date (dist-hook +# would be too late for that). +mydist: + sh "$(srcdir)/src/liblzma/validate_map.sh" + cd "$(srcdir)/po4a" && sh update-po + cd "$(srcdir)/doxygen" && sh update-doxygen + VERSION=$(VERSION); \ + if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \ + SNAPSHOT=`cd "$(srcdir)" && git describe --abbrev=4 | cut -b2-`; \ + test -n "$$SNAPSHOT" && VERSION=$$SNAPSHOT; \ + fi; \ + TAR_OPTIONS='--owner=0 --group=0 --numeric-owner --mode=u+rw,go+r-w' \ + $(MAKE) VERSION="$$VERSION" dist-gzip diff --git a/xz-5.4.5/Makefile.in b/xz-5.4.5/Makefile.in new file mode 100644 index 000000000..2889d0873 --- /dev/null +++ b/xz-5.4.5/Makefile.in @@ -0,0 +1,1121 @@ +# Makefile.in generated by automake 1.16.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2021 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@COND_GNULIB_TRUE@am__append_1 = lib +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_capsicum.m4 \ + $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/getopt.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/host-cpu-c-abi.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/posix-shell.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/tuklib_common.m4 \ + $(top_srcdir)/m4/tuklib_cpucores.m4 \ + $(top_srcdir)/m4/tuklib_integer.m4 \ + $(top_srcdir)/m4/tuklib_mbstr.m4 \ + $(top_srcdir)/m4/tuklib_physmem.m4 \ + $(top_srcdir)/m4/tuklib_progname.m4 \ + $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(am__dist_doc_DATA_DIST) \ + $(am__dist_examples_DATA_DIST) \ + $(am__dist_examplesold_DATA_DIST) $(am__DIST_COMMON) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__dist_doc_DATA_DIST = AUTHORS COPYING COPYING.GPLv2 NEWS README \ + THANKS TODO doc/faq.txt doc/history.txt doc/xz-file-format.txt \ + doc/lzma-file-format.txt +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(docdir)" "$(DESTDIR)$(examplesdir)" \ + "$(DESTDIR)$(examplesolddir)" +am__dist_examples_DATA_DIST = doc/examples/00_README.txt \ + doc/examples/01_compress_easy.c doc/examples/02_decompress.c \ + doc/examples/03_compress_custom.c \ + doc/examples/04_compress_easy_mt.c doc/examples/Makefile +am__dist_examplesold_DATA_DIST = doc/examples_old/xz_pipe_comp.c \ + doc/examples_old/xz_pipe_decomp.c +DATA = $(dist_doc_DATA) $(dist_examples_DATA) $(dist_examplesold_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + cscope distdir distdir-am dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \ + config.h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(top_srcdir)/build-aux/compile \ + $(top_srcdir)/build-aux/config.guess \ + $(top_srcdir)/build-aux/config.rpath \ + $(top_srcdir)/build-aux/config.sub \ + $(top_srcdir)/build-aux/install-sh \ + $(top_srcdir)/build-aux/ltmain.sh \ + $(top_srcdir)/build-aux/missing ABOUT-NLS AUTHORS COPYING \ + ChangeLog INSTALL NEWS README THANKS TODO build-aux/compile \ + build-aux/config.guess build-aux/config.rpath \ + build-aux/config.sub build-aux/install-sh build-aux/ltmain.sh \ + build-aux/missing +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi +am__post_remove_distdir = $(am__remove_distdir) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +DIST_ARCHIVES = $(distdir).tar.gz +DIST_TARGETS = dist-gzip +# Exists only to be overridden by the user if desired. +AM_DISTCHECK_DVI_TARGET = dvi +distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_CFLAGS = @AM_CFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CAPSICUM_LIB = @CAPSICUM_LIB@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ETAGS = @ETAGS@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FILECMD = @FILECMD@ +GETOPT_H = @GETOPT_H@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GREP = @GREP@ +HAVE_VISIBILITY = @HAVE_VISIBILITY@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_EXEEXT = @LN_EXEEXT@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGMERGE = @MSGMERGE@ +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +POSIX_SHELL = @POSIX_SHELL@ +POSUB = @POSUB@ +PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_CXX = @PTHREAD_CXX@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +RC = @RC@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +enable_path_for_scripts = @enable_path_for_scripts@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xz = @xz@ + +# Use -n to prevent gzip from adding a timestamp to the .gz headers. +GZIP_ENV = -9n +DIST_SUBDIRS = lib src po tests debug +SUBDIRS = $(am__append_1) src po tests +@COND_DOC_TRUE@dist_doc_DATA = \ +@COND_DOC_TRUE@ AUTHORS \ +@COND_DOC_TRUE@ COPYING \ +@COND_DOC_TRUE@ COPYING.GPLv2 \ +@COND_DOC_TRUE@ NEWS \ +@COND_DOC_TRUE@ README \ +@COND_DOC_TRUE@ THANKS \ +@COND_DOC_TRUE@ TODO \ +@COND_DOC_TRUE@ doc/faq.txt \ +@COND_DOC_TRUE@ doc/history.txt \ +@COND_DOC_TRUE@ doc/xz-file-format.txt \ +@COND_DOC_TRUE@ doc/lzma-file-format.txt + +@COND_DOC_TRUE@examplesdir = $(docdir)/examples +@COND_DOC_TRUE@dist_examples_DATA = \ +@COND_DOC_TRUE@ doc/examples/00_README.txt \ +@COND_DOC_TRUE@ doc/examples/01_compress_easy.c \ +@COND_DOC_TRUE@ doc/examples/02_decompress.c \ +@COND_DOC_TRUE@ doc/examples/03_compress_custom.c \ +@COND_DOC_TRUE@ doc/examples/04_compress_easy_mt.c \ +@COND_DOC_TRUE@ doc/examples/Makefile + +@COND_DOC_TRUE@examplesolddir = $(docdir)/examples_old +@COND_DOC_TRUE@dist_examplesold_DATA = \ +@COND_DOC_TRUE@ doc/examples_old/xz_pipe_comp.c \ +@COND_DOC_TRUE@ doc/examples_old/xz_pipe_decomp.c + +EXTRA_DIST = \ + po4a \ + extra \ + dos \ + doxygen \ + windows \ + macosx \ + cmake \ + CMakeLists.txt \ + autogen.sh \ + COPYING.GPLv2 \ + COPYING.GPLv3 \ + COPYING.LGPLv2.1 \ + INSTALL.generic \ + PACKAGERS \ + build-aux/manconv.sh \ + build-aux/version.sh + +ACLOCAL_AMFLAGS = -I m4 + +# List of man pages to convert to PDF and plain text in the dist-hook target. +manfiles = \ + src/xz/xz.1 \ + src/xzdec/xzdec.1 \ + src/lzmainfo/lzmainfo.1 \ + src/scripts/xzdiff.1 \ + src/scripts/xzgrep.1 \ + src/scripts/xzless.1 \ + src/scripts/xzmore.1 + +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +am--refresh: Makefile + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +config.h: stamp-h1 + @test -f $@ || rm -f stamp-h1 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt +install-dist_docDATA: $(dist_doc_DATA) + @$(NORMAL_INSTALL) + @list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(docdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(docdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \ + done + +uninstall-dist_docDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir) +install-dist_examplesDATA: $(dist_examples_DATA) + @$(NORMAL_INSTALL) + @list='$(dist_examples_DATA)'; test -n "$(examplesdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(examplesdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(examplesdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(examplesdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(examplesdir)" || exit $$?; \ + done + +uninstall-dist_examplesDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_examples_DATA)'; test -n "$(examplesdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(examplesdir)'; $(am__uninstall_files_from_dir) +install-dist_examplesoldDATA: $(dist_examplesold_DATA) + @$(NORMAL_INSTALL) + @list='$(dist_examplesold_DATA)'; test -n "$(examplesolddir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(examplesolddir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(examplesolddir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(examplesolddir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(examplesolddir)" || exit $$?; \ + done + +uninstall-dist_examplesoldDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_examplesold_DATA)'; test -n "$(examplesolddir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(examplesolddir)'; $(am__uninstall_files_from_dir) + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" + @if test -z "$(am__skip_length_check)" && find "$(distdir)" -type f -print | \ + grep '^...................................................................................................' 1>&2; then \ + echo 'error: the above filenames are too long' 1>&2; \ + exit 1; \ + else :; fi +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz + $(am__post_remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__post_remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__post_remove_distdir) + +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__post_remove_distdir) + +dist-zstd: distdir + tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst + $(am__post_remove_distdir) + +dist-tarZ: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__post_remove_distdir) + +dist-shar: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz + $(am__post_remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__post_remove_distdir) + +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + *.tar.zst*) \ + zstd -dc $(distdir).tar.zst | $(am__untar) ;;\ + esac + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build/sub \ + && ../../configure \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=../.. --prefix="$$dc_install_base" \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__post_remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile $(DATA) config.h +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(docdir)" "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(examplesolddir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +@COND_DOC_FALSE@install-data-local: +@COND_DOC_FALSE@uninstall-local: +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr \ + distclean-libtool distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-data-local install-dist_docDATA \ + install-dist_examplesDATA install-dist_examplesoldDATA + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-dist_docDATA uninstall-dist_examplesDATA \ + uninstall-dist_examplesoldDATA uninstall-local + +.MAKE: $(am__recursive_targets) all install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--refresh check check-am clean clean-cscope clean-generic \ + clean-libtool cscope cscopelist-am ctags ctags-am dist \ + dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \ + dist-tarZ dist-xz dist-zip dist-zstd distcheck distclean \ + distclean-generic distclean-hdr distclean-libtool \ + distclean-tags distcleancheck distdir distuninstallcheck dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-data-local \ + install-dist_docDATA install-dist_examplesDATA \ + install-dist_examplesoldDATA install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-dist_docDATA \ + uninstall-dist_examplesDATA uninstall-dist_examplesoldDATA \ + uninstall-local + +.PRECIOUS: Makefile + + +# Install the Doxygen generated documentation if they were built. +@COND_DOC_TRUE@install-data-local: +@COND_DOC_TRUE@ if test -d "$(srcdir)/doc/api" ; then \ +@COND_DOC_TRUE@ $(MKDIR_P) "$(DESTDIR)$(docdir)/api" && \ +@COND_DOC_TRUE@ $(INSTALL_DATA) "$(srcdir)"/doc/api/* \ +@COND_DOC_TRUE@ "$(DESTDIR)$(docdir)/api"; \ +@COND_DOC_TRUE@ fi + +# Remove the Doxygen generated documentation when uninstalling. +@COND_DOC_TRUE@uninstall-local: +@COND_DOC_TRUE@ rm -rf "$(DESTDIR)$(docdir)/api" + +# Create ChangeLog from output of "git log --date=iso --stat". +# Convert the man pages to PDF and plain text (ASCII only) formats. +dist-hook: + if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \ + ( cd "$(srcdir)" && git log --date=iso --stat \ + 6060f7dc76fd6c2a8a1f8e85d0e4d86bb78273e6^..HEAD ) \ + > "$(distdir)/ChangeLog"; \ + fi + if type groff > /dev/null 2>&1 && type ps2pdf > /dev/null 2>&1; then \ + dest="$(distdir)/doc/man" && \ + $(MKDIR_P) "$$dest/pdf-a4" "$$dest/pdf-letter" "$$dest/txt" && \ + for FILE in $(manfiles); do \ + BASE=`basename $$FILE .1` && \ + sh "$(srcdir)/build-aux/manconv.sh" pdf a4 \ + < "$(srcdir)/$$FILE" \ + > "$$dest/pdf-a4/$$BASE-a4.pdf" && \ + sh "$(srcdir)/build-aux/manconv.sh" pdf letter \ + < "$(srcdir)/$$FILE" \ + > "$$dest/pdf-letter/$$BASE-letter.pdf" && \ + sh "$(srcdir)/build-aux/manconv.sh" ascii \ + < "$(srcdir)/$$FILE" \ + > "$$dest/txt/$$BASE.txt"; \ + done; \ + fi + if test -d "$(srcdir)/doc/api" ; then \ + $(MKDIR_P) "$(distdir)/doc/api" && \ + $(INSTALL_DATA) "$(srcdir)"/doc/api/* \ + "$(distdir)/doc/api"; \ + fi + +# This works with GNU tar and gives cleaner package than normal 'make dist'. +# This also ensures that the man page translations are up to date (dist-hook +# would be too late for that). +mydist: + sh "$(srcdir)/src/liblzma/validate_map.sh" + cd "$(srcdir)/po4a" && sh update-po + cd "$(srcdir)/doxygen" && sh update-doxygen + VERSION=$(VERSION); \ + if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \ + SNAPSHOT=`cd "$(srcdir)" && git describe --abbrev=4 | cut -b2-`; \ + test -n "$$SNAPSHOT" && VERSION=$$SNAPSHOT; \ + fi; \ + TAR_OPTIONS='--owner=0 --group=0 --numeric-owner --mode=u+rw,go+r-w' \ + $(MAKE) VERSION="$$VERSION" dist-gzip + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/xz-5.4.5/NEWS b/xz-5.4.5/NEWS new file mode 100644 index 000000000..d26b63617 --- /dev/null +++ b/xz-5.4.5/NEWS @@ -0,0 +1,1798 @@ + +XZ Utils Release Notes +====================== + +5.4.5 (2023-11-01) + + * liblzma: + + - Use __attribute__((__no_sanitize_address__)) to avoid address + sanitization with CRC64 CLMUL. It uses 16-byte-aligned reads + which can extend past the bounds of the input buffer and + inherently trigger address sanitization errors. This isn't + a bug. + + - Fixed an assertion failure that could be triggered by a large + unpadded_size argument. It was verified that there was no + other bug than the assertion failure. + + - Fixed a bug that prevented building with Windows Vista + threading when __attribute__((__constructor__)) is not + supported. + + * xz now properly handles special files such as "con" or "nul" on + Windows. Before this fix, the following wrote "foo" to the + console and deleted the input file "con_xz": + + echo foo | xz > con_xz + xz --suffix=_xz --decompress con_xz + + * Build systems: + + - Allow builds with Windows win95 threading and small mode when + __attribute__((__constructor__)) is supported. + + - Added a new line to liblzma.pc for MSYS2 (Windows): + + Cflags.private: -DLZMA_API_STATIC + + When compiling code that will link against static liblzma, + the LZMA_API_STATIC macro needs to be defined on Windows. + + - CMake specific changes: + + * Fixed a bug that allowed CLOCK_MONOTONIC to be used even + if the check for it failed. + + * Fixed a bug where configuring CMake multiple times + resulted in HAVE_CLOCK_GETTIME and HAVE_CLOCK_MONOTONIC + not being set. + + * Fixed the build with MinGW-w64-based Clang/LLVM 17. + llvm-windres now has more accurate GNU windres emulation + so the GNU windres workaround from 5.4.1 is needed with + llvm-windres version 17 too. + + * The import library on Windows is now properly named + "liblzma.dll.a" instead of "libliblzma.dll.a" + + * Fixed a bug causing the Ninja Generator to fail on + UNIX-like systems. This bug was introduced in 5.4.0. + + * Added a new option to disable CLMUL CRC64. + + * A module-definition (.def) file is now created when + building liblzma.dll with MinGW-w64. + + * The pkg-config liblzma.pc file is now installed on all + builds except when using MSVC on Windows. + + * Added large file support by default for platforms that + need it to handle files larger than 2 GiB. This includes + MinGW-w64, even 64-bit builds. + + * Small fixes and improvements to the tests. + + * Updated translations: Chinese (simplified) and Esperanto. + + +5.4.4 (2023-08-02) + + * liblzma and xzdec can now build against WASI SDK when threading + support is disabled. xz and tests don't build yet. + + * CMake: + + - Fixed a bug preventing other projects from including liblzma + multiple times using find_package(). + + - Don't create broken symlinks in Cygwin and MSYS2 unless + supported by the environment. This prevented building for the + default MSYS2 environment. The problem was introduced in + xz 5.4.0. + + * Documentation: + + - Small improvements to man pages. + + - Small improvements and typo fixes for liblzma API + documentation. + + * Tests: + + - Added a new section to INSTALL to describe basic test usage + and address recent questions about building the tests when + cross compiling. + + - Small fixes and improvements to the tests. + + * Translations: + + - Fixed a mistake that caused one of the error messages to not + be translated. This only affected versions 5.4.2 and 5.4.3. + + - Updated the Chinese (simplified), Croatian, Esperanto, German, + Korean, Polish, Romanian, Spanish, Swedish, Ukrainian, and + Vietnamese translations. + + - Updated the German, Korean, Romanian, and Ukrainian man page + translations. + + +5.4.3 (2023-05-04) + + * All fixes from 5.2.12 + + * Features in the CMake build can now be disabled as CMake cache + variables, similar to the Autotools build. + + * Minor update to the Croatian translation. + + +5.4.2 (2023-03-18) + + * All fixes from 5.2.11 that were not included in 5.4.1. + + * If xz is built with support for the Capsicum sandbox but running + in an environment that doesn't support Capsicum, xz now runs + normally without sandboxing instead of exiting with an error. + + * liblzma: + + - Documentation was updated to improve the style, consistency, + and completeness of the liblzma API headers. + + - The Doxygen-generated HTML documentation for the liblzma API + header files is now included in the source release and is + installed as part of "make install". All JavaScript is + removed to simplify license compliance and to reduce the + install size. + + - Fixed a minor bug in lzma_str_from_filters() that produced + too many filters in the output string instead of reporting + an error if the input array had more than four filters. This + bug did not affect xz. + + * Build systems: + + - autogen.sh now invokes the doxygen tool via the new wrapper + script doxygen/update-doxygen, unless the command line option + --no-doxygen is used. + + - Added microlzma_encoder.c and microlzma_decoder.c to the + VS project files for Windows and to the CMake build. These + should have been included in 5.3.2alpha. + + * Tests: + + - Added a test to the CMake build that was forgotten in the + previous release. + + - Added and refactored a few tests. + + * Translations: + + - Updated the Brazilian Portuguese translation. + + - Added Brazilian Portuguese man page translation. + + +5.4.1 (2023-01-11) + + * liblzma: + + - Fixed the return value of lzma_microlzma_encoder() if the + LZMA options lc/lp/pb are invalid. Invalid lc/lp/pb options + made the function return LZMA_STREAM_END without encoding + anything instead of returning LZMA_OPTIONS_ERROR. + + - Windows / Visual Studio: Workaround a possible compiler bug + when targeting 32-bit x86 and compiling the CLMUL version of + the CRC64 code. The CLMUL code isn't enabled by the Windows + project files but it is in the CMake-based builds. + + * Build systems: + + - Windows-specific CMake changes: + + * Don't try to enable CLMUL CRC64 code if _mm_set_epi64x() + isn't available. This fixes CMake-based build with Visual + Studio 2013. + + * Created a workaround for a build failure with windres + from GNU binutils. It is used only when the C compiler + is GCC (not Clang). The workaround is incompatible + with llvm-windres, resulting in "XZx20Utils" instead + of "XZ Utils" in the resource file, but without the + workaround llvm-windres works correctly. See the + comment in CMakeLists.txt for details. + + * Included the resource files in the xz and xzdec build + rules. Building the command line tools is still + experimental but possible with MinGW-w64. + + - Visual Studio: Added stream_decoder_mt.c to the project + files. Now the threaded decompressor lzma_stream_decoder_mt() + gets built. CMake-based build wasn't affected. + + - Updated windows/INSTALL-MSVC.txt to mention that CMake-based + build is now the preferred method with Visual Studio. The + project files will probably be removed after 5.4.x releases. + + - Changes to #defines in config.h: + + * HAVE_DECL_CLOCK_MONOTONIC was replaced by + HAVE_CLOCK_MONOTONIC. The old macro was always defined + in configure-generated config.h to either 0 or 1. The + new macro is defined (to 1) only if the declaration of + CLOCK_MONOTONIC is available. This matches the way most + other config.h macros work and makes things simpler with + other build systems. + + * HAVE_DECL_PROGRAM_INVOCATION_NAME was replaced by + HAVE_PROGRAM_INVOCATION_NAME for the same reason. + + * Tests: + + - Fixed test script compatibility with ancient /bin/sh + versions. Now the five test_compress_* tests should + no longer fail on Solaris 10. + + - Added and refactored a few tests. + + * Translations: + + - Updated the Catalan and Esperanto translations. + + - Added Korean and Ukrainian man page translations. + + +5.4.0 (2022-12-13) + + This bumps the minor version of liblzma because new features were + added. The API and ABI are still backward compatible with liblzma + 5.2.x and 5.0.x. + + Since 5.3.5beta: + + * All fixes from 5.2.10. + + * The ARM64 filter is now stable. The xz option is now --arm64. + Decompression requires XZ Utils 5.4.0. In the future the ARM64 + filter will be supported by XZ for Java, XZ Embedded (including + the version in Linux), LZMA SDK, and 7-Zip. + + * Translations: + + - Updated Catalan, Croatian, German, Romanian, and Turkish + translations. + + - Updated German man page translations. + + - Added Romanian man page translations. + + Summary of new features added in the 5.3.x development releases: + + * liblzma: + + - Added threaded .xz decompressor lzma_stream_decoder_mt(). + It can use multiple threads with .xz files that have multiple + Blocks with size information in Block Headers. The threaded + encoder in xz has always created such files. + + Single-threaded encoder cannot store the size information in + Block Headers even if one used LZMA_FULL_FLUSH to create + multiple Blocks, so this threaded decoder cannot use multiple + threads with such files. + + If there are multiple Streams (concatenated .xz files), one + Stream will be decompressed completely before starting the + next Stream. + + - A new decoder flag LZMA_FAIL_FAST was added. It makes the + threaded decompressor report errors soon instead of first + flushing all pending data before the error location. + + - New Filter IDs: + * LZMA_FILTER_ARM64 is for ARM64 binaries. + * LZMA_FILTER_LZMA1EXT is for raw LZMA1 streams that don't + necessarily use the end marker. + + - Added lzma_str_to_filters(), lzma_str_from_filters(), and + lzma_str_list_filters() to convert a preset or a filter chain + string to a lzma_filter[] and vice versa. These should make + it easier to write applications that allow users to specify + custom compression options. + + - Added lzma_filters_free() which can be convenient for freeing + the filter options in a filter chain (an array of lzma_filter + structures). + + - lzma_file_info_decoder() to makes it a little easier to get + the Index field from .xz files. This helps in getting the + uncompressed file size but an easy-to-use random access + API is still missing which has existed in XZ for Java for + a long time. + + - Added lzma_microlzma_encoder() and lzma_microlzma_decoder(). + It is used by erofs-utils and may be used by others too. + + The MicroLZMA format is a raw LZMA stream (without end marker) + whose first byte (always 0x00) has been replaced with + bitwise-negation of the LZMA properties (lc/lp/pb). It was + created for use in EROFS but may be used in other contexts + as well where it is important to avoid wasting bytes for + stream headers or footers. The format is also supported by + XZ Embedded (the XZ Embedded version in Linux got MicroLZMA + support in Linux 5.16). + + The MicroLZMA encoder API in liblzma can compress into a + fixed-sized output buffer so that as much data is compressed + as can be fit into the buffer while still creating a valid + MicroLZMA stream. This is needed for EROFS. + + - Added lzma_lzip_decoder() to decompress the .lz (lzip) file + format version 0 and the original unextended version 1 files. + Also lzma_auto_decoder() supports .lz files. + + - lzma_filters_update() can now be used with the multi-threaded + encoder (lzma_stream_encoder_mt()) to change the filter chain + after LZMA_FULL_BARRIER or LZMA_FULL_FLUSH. + + - In lzma_options_lzma, allow nice_len = 2 and 3 with the match + finders that require at least 3 or 4. Now it is internally + rounded up if needed. + + - CLMUL-based CRC64 on x86-64 and E2K with runtime processor + detection. On 32-bit x86 it currently isn't available unless + --disable-assembler is used which can make the non-CLMUL + CRC64 slower; this might be fixed in the future. + + - Building with --disable-threads --enable-small + is now thread-safe if the compiler supports + __attribute__((__constructor__)). + + * xz: + + - Using -T0 (--threads=0) will now use multi-threaded encoder + even on a single-core system. This is to ensure that output + from the same xz binary is identical on both single-core and + multi-core systems. + + - --threads=+1 or -T+1 is now a way to put xz into + multi-threaded mode while using only one worker thread. + The + is ignored if the number is not 1. + + - A default soft memory usage limit is now used for compression + when -T0 is used and no explicit limit has been specified. + This soft limit is used to restrict the number of threads + but if the limit is exceeded with even one thread then xz + will continue with one thread using the multi-threaded + encoder and this limit is ignored. If the number of threads + is specified manually then no default limit will be used; + this affects only -T0. + + This change helps on systems that have very many cores and + using all of them for xz makes no sense. Previously xz -T0 + could run out of memory on such systems because it attempted + to reserve memory for too many threads. + + This also helps with 32-bit builds which don't have a large + amount of address space that would be required for many + threads. The default soft limit for -T0 is at most 1400 MiB + on all 32-bit platforms. + + - Previously a low value in --memlimit-compress wouldn't cause + xz to switch from multi-threaded mode to single-threaded mode + if the limit cannot otherwise be met; xz failed instead. Now + xz can switch to single-threaded mode and then, if needed, + scale down the LZMA2 dictionary size too just like it already + did when it was started in single-threaded mode. + + - The option --no-adjust no longer prevents xz from scaling down + the number of threads as that doesn't affect the compressed + output (only performance). Now --no-adjust only prevents + adjustments that affect compressed output, that is, with + --no-adjust xz won't switch from multi-threaded mode to + single-threaded mode and won't scale down the LZMA2 + dictionary size. + + - Added a new option --memlimit-mt-decompress=LIMIT. This is + used to limit the number of decompressor threads (possibly + falling back to single-threaded mode) but it will never make + xz refuse to decompress a file. This has a system-specific + default value because without any limit xz could end up + allocating memory for the whole compressed input file, the + whole uncompressed output file, multiple thread-specific + decompressor instances and so on. Basically xz could + attempt to use an insane amount of memory even with fairly + common files. The system-specific default value is currently + the same as the one used for compression with -T0. + + The new option works together with the existing option + --memlimit-decompress=LIMIT. The old option sets a hard limit + that must not be exceeded (xz will refuse to decompress) + while the new option only restricts the number of threads. + If the limit set with --memlimit-mt-decompress is greater + than the limit set with --memlimit-compress, then the latter + value is used also for --memlimit-mt-decompress. + + - Added new information to the output of xz --info-memory and + new fields to the output of xz --robot --info-memory. + + - In --lzma2=nice=NUMBER allow 2 and 3 with all match finders + now that liblzma handles it. + + - Don't mention endianness for ARM and ARM-Thumb filters in + --long-help. The filters only work for little endian + instruction encoding but modern ARM processors using + big endian data access still use little endian + instruction encoding. So the help text was misleading. + In contrast, the PowerPC filter is only for big endian + 32/64-bit PowerPC code. Little endian PowerPC would need + a separate filter. + + - Added decompression support for the .lz (lzip) file format + version 0 and the original unextended version 1. It is + autodetected by default. See also the option --format on + the xz man page. + + - Sandboxing enabled by default: + * Capsicum (FreeBSD) + * pledge(2) (OpenBSD) + + * Scripts now support the .lz format using xz. + + * A few new tests were added. + + * The liblzma-specific tests are now supported in CMake-based + builds too ("make test"). + + +5.3.5beta (2022-12-01) + + * All fixes from 5.2.9. + + * liblzma: + + - Added new LZMA_FILTER_LZMA1EXT for raw encoder and decoder to + handle raw LZMA1 streams that don't have end of payload marker + (EOPM) alias end of stream (EOS) marker. It can be used in + filter chains, for example, with the x86 BCJ filter. + + - Added lzma_str_to_filters(), lzma_str_from_filters(), and + lzma_str_list_filters() to make it easier for applications + to get custom compression options from a user and convert + it to an array of lzma_filter structures. + + - Added lzma_filters_free(). + + - lzma_filters_update() can now be used with the multi-threaded + encoder (lzma_stream_encoder_mt()) to change the filter chain + after LZMA_FULL_BARRIER or LZMA_FULL_FLUSH. + + - In lzma_options_lzma, allow nice_len = 2 and 3 with the match + finders that require at least 3 or 4. Now it is internally + rounded up if needed. + + - ARM64 filter was modified. It is still experimental. + + - Fixed LTO build with Clang if -fgnuc-version=10 or similar + was used to make Clang look like GCC >= 10. Now it uses + __has_attribute(__symver__) which should be reliable. + + * xz: + + - --threads=+1 or -T+1 is now a way to put xz into multi-threaded + mode while using only one worker thread. + + - In --lzma2=nice=NUMBER allow 2 and 3 with all match finders + now that liblzma handles it. + + * Updated translations: Chinese (simplified), Korean, and Turkish. + + +5.3.4alpha (2022-11-15) + + * All fixes from 5.2.7 and 5.2.8. + + * liblzma: + + - Minor improvements to the threaded decoder. + + - Added CRC64 implementation that uses SSSE3, SSE4.1, and CLMUL + instructions on 32/64-bit x86 and E2K. On 32-bit x86 it's + not enabled unless --disable-assembler is used but then + the non-CLMUL code might be slower. Processor support is + detected at runtime so this is built by default on x86-64 + and E2K. On these platforms, if compiler flags indicate + unconditional CLMUL support (-msse4.1 -mpclmul) then the + generic version is not built, making liblzma 8-9 KiB smaller + compared to having both versions included. + + With extremely compressible files this can make decompression + up to twice as fast but with typical files 5 % improvement + is a more realistic expectation. + + The CLMUL version is slower than the generic version with + tiny inputs (especially at 1-8 bytes per call, but up to + 16 bytes). In normal use in xz this doesn't matter at all. + + - Added an experimental ARM64 filter. This is *not* the final + version! Files created with this experimental version won't + be supported in the future versions! The filter design is + a compromise where improving one use case makes some other + cases worse. + + - Added decompression support for the .lz (lzip) file format + version 0 and the original unextended version 1. See the + API docs of lzma_lzip_decoder() for details. Also + lzma_auto_decoder() supports .lz files. + + - Building with --disable-threads --enable-small + is now thread-safe if the compiler supports + __attribute__((__constructor__)) + + * xz: + + - Added support for OpenBSD's pledge(2) as a sandboxing method. + + - Don't mention endianness for ARM and ARM-Thumb filters in + --long-help. The filters only work for little endian + instruction encoding but modern ARM processors using + big endian data access still use little endian + instruction encoding. So the help text was misleading. + In contrast, the PowerPC filter is only for big endian + 32/64-bit PowerPC code. Little endian PowerPC would need + a separate filter. + + - Added --experimental-arm64. This will be renamed once the + filter is finished. Files created with this experimental + filter will not be supported in the future! + + - Added new fields to the output of xz --robot --info-memory. + + - Added decompression support for the .lz (lzip) file format + version 0 and the original unextended version 1. It is + autodetected by default. See also the option --format on + the xz man page. + + * Scripts now support the .lz format using xz. + + * Build systems: + + - New #defines in config.h: HAVE_ENCODER_ARM64, + HAVE_DECODER_ARM64, HAVE_LZIP_DECODER, HAVE_CPUID_H, + HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR, HAVE_USABLE_CLMUL + + - New configure options: --disable-clmul-crc, + --disable-microlzma, --disable-lzip-decoder, and + 'pledge' is now an option in --enable-sandbox (but + it's autodetected by default anyway). + + - INSTALL was updated to document the new configure options. + + - PACKAGERS now lists also --disable-microlzma and + --disable-lzip-decoder as configure options that must + not be used in builds for non-embedded use. + + * Tests: + + - Fix some of the tests so that they skip instead of fail if + certain features have been disabled with configure options. + It's still not perfect. + + - Other improvements to tests. + + * Updated translations: Croatian, Finnish, Hungarian, Polish, + Romanian, Spanish, Swedish, and Ukrainian. + + +5.3.3alpha (2022-08-22) + + * All fixes from 5.2.6. + + * liblzma: + + - Fixed 32-bit build. + + - Added threaded .xz decompressor lzma_stream_decoder_mt(). + It can use multiple threads with .xz files that have multiple + Blocks with size information in Block Headers. The threaded + encoder in xz has always created such files. + + Single-threaded encoder cannot store the size information in + Block Headers even if one used LZMA_FULL_FLUSH to create + multiple Blocks, so this threaded decoder cannot use multiple + threads with such files. + + If there are multiple Streams (concatenated .xz files), one + Stream will be decompressed completely before starting the + next Stream. + + - A new decoder flag LZMA_FAIL_FAST was added. It makes the + threaded decompressor report errors soon instead of first + flushing all pending data before the error location. + + * xz: + + - Using -T0 (--threads=0) will now use multi-threaded encoder + even on a single-core system. This is to ensure that output + from the same xz binary is identical on both single-core and + multi-core systems. + + - A default soft memory usage limit is now used for compression + when -T0 is used and no explicit limit has been specified. + This soft limit is used to restrict the number of threads + but if the limit is exceeded with even one thread then xz + will continue with one thread using the multi-threaded + encoder and this limit is ignored. If the number of threads + is specified manually then no default limit will be used; + this affects only -T0. + + This change helps on systems that have very many cores and + using all of them for xz makes no sense. Previously xz -T0 + could run out of memory on such systems because it attempted + to reserve memory for too many threads. + + This also helps with 32-bit builds which don't have a large + amount of address space that would be required for many + threads. The default limit is 1400 MiB on all 32-bit + platforms with -T0. + + Now xz -T0 should just work. It might use too few threads + in some cases but at least it shouldn't easily run out of + memory. It's possible that this will be tweaked before 5.4.0. + + - Changes to --memlimit-compress and --no-adjust: + + In single-threaded mode, --memlimit-compress can make xz + scale down the LZMA2 dictionary size to meet the memory usage + limit. This obviously affects the compressed output. However, + if xz was in threaded mode, --memlimit-compress could make xz + reduce the number of threads but it wouldn't make xz switch + from multi-threaded mode to single-threaded mode or scale + down the LZMA2 dictionary size. This seemed illogical. + + Now --memlimit-compress can make xz switch to single-threaded + mode if one thread in multi-threaded mode uses too much + memory. If memory usage is still too high, then the LZMA2 + dictionary size can be scaled down too. + + The option --no-adjust was also changed so that it no longer + prevents xz from scaling down the number of threads as that + doesn't affect compressed output (only performance). After + this commit --no-adjust only prevents adjustments that affect + compressed output, that is, with --no-adjust xz won't switch + from multithreaded mode to single-threaded mode and won't + scale down the LZMA2 dictionary size. + + - Added a new option --memlimit-mt-decompress=LIMIT. This is + used to limit the number of decompressor threads (possibly + falling back to single-threaded mode) but it will never make + xz refuse to decompress a file. This has a system-specific + default value because without any limit xz could end up + allocating memory for the whole compressed input file, the + whole uncompressed output file, multiple thread-specific + decompressor instances and so on. Basically xz could + attempt to use an insane amount of memory even with fairly + common files. + + The new option works together with the existing option + --memlimit-decompress=LIMIT. The old option sets a hard limit + that must not be exceeded (xz will refuse to decompress) + while the new option only restricts the number of threads. + If the limit set with --memlimit-mt-decompress is greater + than the limit set with --memlimit-compress, then the latter + value is used also for --memlimit-mt-decompress. + + * Tests: + + - Added a few more tests. + + - Added tests/code_coverage.sh to create a code coverage report + of the tests. + + * Build systems: + + - Automake's parallel test harness is now used to make tests + finish faster. + + - Added the CMake files to the distribution tarball. These were + supposed to be in 5.2.5 already. + + - Added liblzma tests to the CMake build. + + - Windows: Fix building of liblzma.dll with the included + Visual Studio project files. + + +5.3.2alpha (2021-10-28) + + This release was made on short notice so that recent erofs-utils can + be built with LZMA support without needing a snapshot from xz.git. + Thus many pending things were not included, not even updated + translations (which would need to be updated for the new --list + strings anyway). + + * All fixes from 5.2.5. + + * xz: + + - When copying metadata from the source file to the destination + file, don't try to set the group (GID) if it is already set + correctly. This avoids a failure on OpenBSD (and possibly on + a few other OSes) where files may get created so that their + group doesn't belong to the user, and fchown(2) can fail even + if it needs to do nothing. + + - The --keep option now accepts symlinks, hardlinks, and + setuid, setgid, and sticky files. Previously this required + using --force. + + - Split the long strings used in --list and --info-memory modes + to make them much easier for translators. + + - If built with sandbox support and enabling the sandbox fails, + xz will now immediately exit with exit status of 1. Previously + it would only display a warning if -vv was used. + + - Cap --memlimit-compress to 2000 MiB on MIPS32 because on + MIPS32 userspace processes are limited to 2 GiB of address + space. + + * liblzma: + + - Added lzma_microlzma_encoder() and lzma_microlzma_decoder(). + The API is in lzma/container.h. + + The MicroLZMA format is a raw LZMA stream (without end marker) + whose first byte (always 0x00) has been replaced with + bitwise-negation of the LZMA properties (lc/lp/pb). It was + created for use in EROFS but may be used in other contexts + as well where it is important to avoid wasting bytes for + stream headers or footers. The format is also supported by + XZ Embedded. + + The MicroLZMA encoder API in liblzma can compress into a + fixed-sized output buffer so that as much data is compressed + as can be fit into the buffer while still creating a valid + MicroLZMA stream. This is needed for EROFS. + + - Added fuzzing support. + + - Support Intel Control-flow Enforcement Technology (CET) in + 32-bit x86 assembly files. + + - Visual Studio: Use non-standard _MSVC_LANG to detect C++ + standard version in the lzma.h API header. It's used to + detect when "noexcept" can be used. + + * Scripts: + + - Fix exit status of xzdiff/xzcmp. Exit status could be 2 when + the correct value is 1. + + - Fix exit status of xzgrep. + + - Detect corrupt .bz2 files in xzgrep. + + - Add zstd support to xzgrep and xzdiff/xzcmp. + + - Fix less(1) version detection in xzless. It failed if the + version number from "less -V" contained a dot. + + * Fix typos and technical issues in man pages. + + * Build systems: + + - Windows: Fix building of resource files when config.h isn't + used. CMake + Visual Studio can now build liblzma.dll. + + - Various fixes to the CMake support. It might still need a few + more fixes even for liblzma-only builds. + + +5.3.1alpha (2018-04-29) + + * All fixes from 5.2.4. + + * Add lzma_file_info_decoder() into liblzma and use it in xz to + implement the --list feature. + + * Capsicum sandbox support is enabled by default where available + (FreeBSD >= 10). + + +5.2.10 (2022-12-13) + + * xz: Don't modify argv[] when parsing the --memlimit* and + --block-list command line options. This fixes confusing + arguments in process listing (like "ps auxf"). + + * GNU/Linux only: Use __has_attribute(__symver__) to detect if + that attribute is supported. This fixes build on Mandriva where + Clang is patched to define __GNUC__ to 11 by default (instead + of 4 as used by Clang upstream). + + +5.2.9 (2022-11-30) + + * liblzma: + + - Fixed an infinite loop in LZMA encoder initialization + if dict_size >= 2 GiB. (The encoder only supports up + to 1536 MiB.) + + - Fixed two cases of invalid free() that can happen if + a tiny allocation fails in encoder re-initialization + or in lzma_filters_update(). These bugs had some + similarities with the bug fixed in 5.2.7. + + - Fixed lzma_block_encoder() not allowing the use of + LZMA_SYNC_FLUSH with lzma_code() even though it was + documented to be supported. The sync-flush code in + the Block encoder was already used internally via + lzma_stream_encoder(), so this was just a missing flag + in the lzma_block_encoder() API function. + + - GNU/Linux only: Don't put symbol versions into static + liblzma as it breaks things in some cases (and even if + it didn't break anything, symbol versions in static + libraries are useless anyway). The downside of the fix + is that if the configure options --with-pic or --without-pic + are used then it's not possible to build both shared and + static liblzma at the same time on GNU/Linux anymore; + with those options --disable-static or --disable-shared + must be used too. + + * New email address for bug reports is which + forwards messages to Lasse Collin and Jia Tan. + + +5.2.8 (2022-11-13) + + * xz: + + - If xz cannot remove an input file when it should, this + is now treated as a warning (exit status 2) instead of + an error (exit status 1). This matches GNU gzip and it + is more logical as at that point the output file has + already been successfully closed. + + - Fix handling of .xz files with an unsupported check type. + Previously such printed a warning message but then xz + behaved as if an error had occurred (didn't decompress, + exit status 1). Now a warning is printed, decompression + is done anyway, and exit status is 2. This used to work + slightly before 5.0.0. In practice this bug matters only + if xz has been built with some check types disabled. As + instructed in PACKAGERS, such builds should be done in + special situations only. + + - Fix "xz -dc --single-stream tests/files/good-0-empty.xz" + which failed with "Internal error (bug)". That is, + --single-stream was broken if the first .xz stream in + the input file didn't contain any uncompressed data. + + - Fix displaying file sizes in the progress indicator when + working in passthru mode and there are multiple input files. + Just like "gzip -cdf", "xz -cdf" works like "cat" when the + input file isn't a supported compressed file format. In + this case the file size counters weren't reset between + files so with multiple input files the progress indicator + displayed an incorrect (too large) value. + + * liblzma: + + - API docs in lzma/container.h: + * Update the list of decoder flags in the decoder + function docs. + * Explain LZMA_CONCATENATED behavior with .lzma files + in lzma_auto_decoder() docs. + + - OpenBSD: Use HW_NCPUONLINE to detect the number of + available hardware threads in lzma_physmem(). + + - Fix use of wrong macro to detect x86 SSE2 support. + __SSE2_MATH__ was used with GCC/Clang but the correct + one is __SSE2__. The first one means that SSE2 is used + for floating point math which is irrelevant here. + The affected SSE2 code isn't used on x86-64 so this affects + only 32-bit x86 builds that use -msse2 without -mfpmath=sse + (there is no runtime detection for SSE2). It improves LZMA + compression speed (not decompression). + + - Fix the build with Intel C compiler 2021 (ICC, not ICX) + on Linux. It defines __GNUC__ to 10 but doesn't support + the __symver__ attribute introduced in GCC 10. + + * Scripts: Ignore warnings from xz by using --quiet --no-warn. + This is needed if the input .xz files use an unsupported + check type. + + * Translations: + + - Updated Croatian and Turkish translations. + + - One new translations wasn't included because it needed + technical fixes. It will be in upcoming 5.4.0. No new + translations will be added to the 5.2.x branch anymore. + + - Renamed the French man page translation file from + fr_FR.po to fr.po and thus also its install directory + (like /usr/share/man/fr_FR -> .../fr). + + - Man page translations for upcoming 5.4.0 are now handled + in the Translation Project. + + * Update doc/faq.txt a little so it's less out-of-date. + + +5.2.7 (2022-09-30) + + * liblzma: + + - Made lzma_filters_copy() to never modify the destination + array if an error occurs. lzma_stream_encoder() and + lzma_stream_encoder_mt() already assumed this. Before this + change, if a tiny memory allocation in lzma_filters_copy() + failed it would lead to a crash (invalid free() or invalid + memory reads) in the cleanup paths of these two encoder + initialization functions. + + - Added missing integer overflow check to lzma_index_append(). + This affects xz --list and other applications that decode + the Index field from .xz files using lzma_index_decoder(). + Normal decompression of .xz files doesn't call this code + and thus most applications using liblzma aren't affected + by this bug. + + - Single-threaded .xz decoder (lzma_stream_decoder()): If + lzma_code() returns LZMA_MEMLIMIT_ERROR it is now possible + to use lzma_memlimit_set() to increase the limit and continue + decoding. This was supposed to work from the beginning + but there was a bug. With other decoders (.lzma or + threaded .xz decoder) this already worked correctly. + + - Fixed accumulation of integrity check type statistics in + lzma_index_cat(). This bug made lzma_index_checks() return + only the type of the integrity check of the last Stream + when multiple lzma_indexes were concatenated. Most + applications don't use these APIs but in xz it made + xz --list not list all check types from concatenated .xz + files. In xz --list --verbose only the per-file "Check:" + lines were affected and in xz --robot --list only the "file" + line was affected. + + - Added ABI compatibility with executables that were linked + against liblzma in RHEL/CentOS 7 or other liblzma builds + that had copied the problematic patch from RHEL/CentOS 7 + (xz-5.2.2-compat-libs.patch). For the details, see the + comment at the top of src/liblzma/validate_map.sh. + + WARNING: This uses __symver__ attribute with GCC >= 10. + In other cases the traditional __asm__(".symver ...") + is used. Using link-time optimization (LTO, -flto) with + GCC versions older than 10 can silently result in + broken liblzma.so.5 (incorrect symbol versions)! If you + want to use -flto with GCC, you must use GCC >= 10. + LTO with Clang seems to work even with the traditional + __asm__(".symver ...") method. + + * xzgrep: Fixed compatibility with old shells that break if + comments inside command substitutions have apostrophes ('). + This problem was introduced in 5.2.6. + + * Build systems: + + - New #define in config.h: HAVE_SYMBOL_VERSIONS_LINUX + + - Windows: Fixed liblzma.dll build with Visual Studio project + files. It broke in 5.2.6 due to a change that was made to + improve CMake support. + + - Windows: Building liblzma with UNICODE defined should now + work. + + - CMake files are now actually included in the release tarball. + They should have been in 5.2.5 already. + + - Minor CMake fixes and improvements. + + * Added a new translation: Turkish + + +5.2.6 (2022-08-12) + + * xz: + + - The --keep option now accepts symlinks, hardlinks, and + setuid, setgid, and sticky files. Previously this required + using --force. + + - When copying metadata from the source file to the destination + file, don't try to set the group (GID) if it is already set + correctly. This avoids a failure on OpenBSD (and possibly on + a few other OSes) where files may get created so that their + group doesn't belong to the user, and fchown(2) can fail even + if it needs to do nothing. + + - Cap --memlimit-compress to 2000 MiB instead of 4020 MiB on + MIPS32 because on MIPS32 userspace processes are limited + to 2 GiB of address space. + + * liblzma: + + - Fixed a missing error-check in the threaded encoder. If a + small memory allocation fails, a .xz file with an invalid + Index field would be created. Decompressing such a file would + produce the correct output but result in an error at the end. + Thus this is a "mild" data corruption bug. Note that while + a failed memory allocation can trigger the bug, it cannot + cause invalid memory access. + + - The decoder for .lzma files now supports files that have + uncompressed size stored in the header and still use the + end of payload marker (end of stream marker) at the end + of the LZMA stream. Such files are rare but, according to + the documentation in LZMA SDK, they are valid. + doc/lzma-file-format.txt was updated too. + + - Improved 32-bit x86 assembly files: + * Support Intel Control-flow Enforcement Technology (CET) + * Use non-executable stack on FreeBSD. + + - Visual Studio: Use non-standard _MSVC_LANG to detect C++ + standard version in the lzma.h API header. It's used to + detect when "noexcept" can be used. + + * xzgrep: + + - Fixed arbitrary command injection via a malicious filename + (CVE-2022-1271, ZDI-CAN-16587). A standalone patch for + this was released to the public on 2022-04-07. A slight + robustness improvement has been made since then and, if + using GNU or *BSD grep, a new faster method is now used + that doesn't use the old sed-based construct at all. This + also fixes bad output with GNU grep >= 3.5 (2020-09-27) + when xzgrepping binary files. + + This vulnerability was discovered by: + cleemy desu wayo working with Trend Micro Zero Day Initiative + + - Fixed detection of corrupt .bz2 files. + + - Improved error handling to fix exit status in some situations + and to fix handling of signals: in some situations a signal + didn't make xzgrep exit when it clearly should have. It's + possible that the signal handling still isn't quite perfect + but hopefully it's good enough. + + - Documented exit statuses on the man page. + + - xzegrep and xzfgrep now use "grep -E" and "grep -F" instead + of the deprecated egrep and fgrep commands. + + - Fixed parsing of the options -E, -F, -G, -P, and -X. The + problem occurred when multiple options were specified in + a single argument, for example, + + echo foo | xzgrep -Fe foo + + treated foo as a filename because -Fe wasn't correctly + split into -F -e. + + - Added zstd support. + + * xzdiff/xzcmp: + + - Fixed wrong exit status. Exit status could be 2 when the + correct value is 1. + + - Documented on the man page that exit status of 2 is used + for decompression errors. + + - Added zstd support. + + * xzless: + + - Fix less(1) version detection. It failed if the version number + from "less -V" contained a dot. + + * Translations: + + - Added new translations: Catalan, Croatian, Esperanto, + Korean, Portuguese, Romanian, Serbian, Spanish, Swedish, + and Ukrainian + + - Updated the Brazilian Portuguese translation. + + - Added French man page translation. This and the existing + German translation aren't complete anymore because the + English man pages got a few updates and the translators + weren't reached so that they could update their work. + + * Build systems: + + - Windows: Fix building of resource files when config.h isn't + used. CMake + Visual Studio can now build liblzma.dll. + + - Various fixes to the CMake support. Building static or shared + liblzma should work fine in most cases. In contrast, building + the command line tools with CMake is still clearly incomplete + and experimental and should be used for testing only. + + +5.2.5 (2020-03-17) + + * liblzma: + + - Fixed several C99/C11 conformance bugs. Now the code is clean + under gcc/clang -fsanitize=undefined. Some of these changes + might have a negative effect on performance with old GCC + versions or compilers other than GCC and Clang. The configure + option --enable-unsafe-type-punning can be used to (mostly) + restore the old behavior but it shouldn't normally be used. + + - Improved API documentation of lzma_properties_decode(). + + - Added a very minor encoder speed optimization. + + * xz: + + - Fixed a crash in "xz -dcfv not_an_xz_file". All four options + were required to trigger it. The crash occurred in the + progress indicator code when xz was in passthru mode where + xz works like "cat". + + - Fixed an integer overflow with 32-bit off_t. It could happen + when decompressing a file that has a long run of zero bytes + which xz would try to write as a sparse file. Since the build + system enables large file support by default, off_t is + normally 64-bit even on 32-bit systems. + + - Fixes for --flush-timeout: + * Fix semi-busy-waiting. + * Avoid unneeded flushes when no new input has arrived + since the previous flush was completed. + + - Added a special case for 32-bit xz: If --memlimit-compress is + used to specify a limit that exceeds 4020 MiB, the limit will + be set to 4020 MiB. The values "0" and "max" aren't affected + by this and neither is decompression. This hack can be + helpful when a 32-bit xz has access to 4 GiB address space + but the specified memlimit exceeds 4 GiB. This can happen + e.g. with some scripts. + + - Capsicum sandbox is now enabled by default where available + (FreeBSD >= 10). The sandbox debug messages (xz -vv) were + removed since they seemed to be more annoying than useful. + + - DOS build now requires DJGPP 2.05 instead of 2.04beta. + A workaround for a locale problem with DJGPP 2.05 was added. + + * xzgrep and other scripts: + + - Added a configure option --enable-path-for-scripts=PREFIX. + It is disabled by default except on Solaris where the default + is /usr/xpg4/bin. See INSTALL for details. + + - Added a workaround for a POSIX shell detection problem on + Solaris. + + * Build systems: + + - Added preliminary build instructions for z/OS. See INSTALL + section 1.2.9. + + - Experimental CMake support was added. It should work to build + static liblzma on a few operating systems. It may or may not + work to build shared liblzma. On some platforms it can build + xz and xzdec too but those are only for testing. See the + comment in the beginning of CMakeLists.txt for details. + + - Visual Studio project files were updated. + WindowsTargetPlatformVersion was removed from VS2017 files + and set to "10.0" in the added VS2019 files. In the future + the VS project files will be removed when CMake support is + good enough. + + - New #defines in config.h: HAVE___BUILTIN_ASSUME_ALIGNED, + HAVE___BUILTIN_BSWAPXX, and TUKLIB_USE_UNSAFE_TYPE_PUNNING. + + - autogen.sh has a new optional dependency on po4a and a new + option --no-po4a to skip that step. This matters only if one + wants to remake the build files. po4a is used to update the + translated man pages but as long as the man pages haven't + been modified, there's nothing to update and one can use + --no-po4a to avoid the dependency on po4a. + + * Translations: + + - XZ Utils translations are now handled by the Translation + Project: https://translationproject.org/domain/xz.html + + - All man pages are now included in German too. + + - New xz translations: Brazilian Portuguese, Finnish, + Hungarian, Chinese (simplified), Chinese (traditional), + and Danish (partial translation) + + - Updated xz translations: French, German, Italian, and Polish + + - Unfortunately a few new xz translations weren't included due + to technical problems like too long lines in --help output or + misaligned column headings in tables. In the future, many of + these strings will be split and e.g. the table column + alignment will be handled in software. This should make the + strings easier to translate. + + +5.2.4 (2018-04-29) + + * liblzma: + + - Allow 0 as memory usage limit instead of returning + LZMA_PROG_ERROR. Now 0 is treated as if 1 byte was specified, + which effectively is the same as 0. + + - Use "noexcept" keyword instead of "throw()" in the public + headers when a C++11 (or newer standard) compiler is used. + + - Added a portability fix for recent Intel C Compilers. + + - Microsoft Visual Studio build files have been moved under + windows/vs2013 and windows/vs2017. + + * xz: + + - Fix "xz --list --robot missing_or_bad_file.xz" which would + try to print an uninitialized string and thus produce garbage + output. Since the exit status is non-zero, most uses of such + a command won't try to interpret the garbage output. + + - "xz --list foo.xz" could print "Internal error (bug)" in a + corner case where a specific memory usage limit had been set. + + +5.2.3 (2016-12-30) + + * xz: + + - Always close a file before trying to delete it to avoid + problems on some operating system and file system combinations. + + - Fixed copying of file timestamps on Windows. + + - Added experimental (disabled by default) sandbox support using + Capsicum (FreeBSD >= 10). See --enable-sandbox in INSTALL. + + * C99/C11 conformance fixes to liblzma. The issues affected at least + some builds using link-time optimizations. + + * Fixed bugs in the rarely-used function lzma_index_dup(). + + * Use of external SHA-256 code is now disabled by default. + It can still be enabled by passing --enable-external-sha256 + to configure. The reasons to disable it by default (see INSTALL + for more details): + + - Some OS-specific SHA-256 implementations conflict with + OpenSSL and cause problems in programs that link against both + liblzma and libcrypto. At least FreeBSD 10 and MINIX 3.3.0 + are affected. + + - The internal SHA-256 is faster than the SHA-256 code in + some operating systems. + + * Changed CPU core count detection to use sched_getaffinity() on + GNU/Linux and GNU/kFreeBSD. + + * Fixes to the build-system and xz to make xz buildable even when + encoders, decoders, or threading have been disabled from libilzma + using configure options. These fixes added two new #defines to + config.h: HAVE_ENCODERS and HAVE_DECODERS. + + +5.2.2 (2015-09-29) + + * Fixed bugs in QNX-specific code. + + * Omitted the use of pipe2() even if it is available to avoid + portability issues with some old Linux and glibc combinations. + + * Updated German translation. + + * Added project files to build static and shared liblzma (not the + whole XZ Utils) with Visual Studio 2013 update 2 or later. + + * Documented that threaded decompression hasn't been implemented + yet. A 5.2.0 NEWS entry describing multi-threading support had + incorrectly said "decompression" when it should have said + "compression". + + +5.2.1 (2015-02-26) + + * Fixed a compression-ratio regression in fast mode of LZMA1 and + LZMA2. The bug is present in 5.1.4beta and 5.2.0 releases. + + * Fixed a portability problem in xz that affected at least OpenBSD. + + * Fixed xzdiff to be compatible with FreeBSD's mktemp which differs + from most other mktemp implementations. + + * Changed CPU core count detection to use cpuset_getaffinity() on + FreeBSD. + + +5.2.0 (2014-12-21) + + Since 5.1.4beta: + + * All fixes from 5.0.8 + + * liblzma: Fixed lzma_stream_encoder_mt_memusage() when a preset + was used. + + * xzdiff: If mktemp isn't installed, mkdir will be used as + a fallback to create a temporary directory. Installing mktemp + is still recommended. + + * Updated French, German, Italian, Polish, and Vietnamese + translations. + + Summary of fixes and new features added in the 5.1.x development + releases: + + * liblzma: + + - Added support for multi-threaded compression. See the + lzma_mt structure, lzma_stream_encoder_mt(), and + lzma_stream_encoder_mt_memusage() in , + lzma_get_progress() in , and lzma_cputhreads() + in for details. + + - Made the uses of lzma_allocator const correct. + + - Added lzma_block_uncomp_encode() to create uncompressed + .xz Blocks using LZMA2 uncompressed chunks. + + - Added support for LZMA_IGNORE_CHECK. + + - A few speed optimizations were made. + + - Added support for symbol versioning. It is enabled by default + on GNU/Linux, other GNU-based systems, and FreeBSD. + + - liblzma (not the whole XZ Utils) should now be buildable + with MSVC 2013 update 2 or later using windows/config.h. + + * xz: + + - Fixed a race condition in the signal handling. It was + possible that e.g. the first SIGINT didn't make xz exit + if reading or writing blocked and one had bad luck. The fix + is non-trivial, so as of writing it is unknown if it will be + backported to the v5.0 branch. + + - Multi-threaded compression can be enabled with the + --threads (-T) option. + [Fixed: This originally said "decompression".] + + - New command line options in xz: --single-stream, + --block-size=SIZE, --block-list=SIZES, + --flush-timeout=TIMEOUT, and --ignore-check. + + - xz -lvv now shows the minimum xz version that is required to + decompress the file. Currently it is 5.0.0 for all supported + .xz files except files with empty LZMA2 streams require 5.0.2. + + * xzdiff and xzgrep now support .lzo files if lzop is installed. + The .tzo suffix is also recognized as a shorthand for .tar.lzo. + + +5.1.4beta (2014-09-14) + + * All fixes from 5.0.6 + + * liblzma: Fixed the use of presets in threaded encoder + initialization. + + * xz --block-list and --block-size can now be used together + in single-threaded mode. Previously the combination only + worked in multi-threaded mode. + + * Added support for LZMA_IGNORE_CHECK to liblzma and made it + available in xz as --ignore-check. + + * liblzma speed optimizations: + + - Initialization of a new LZMA1 or LZMA2 encoder has been + optimized. (The speed of reinitializing an already-allocated + encoder isn't affected.) This helps when compressing many + small buffers with lzma_stream_buffer_encode() and other + similar situations where an already-allocated encoder state + isn't reused. This speed-up is visible in xz too if one + compresses many small files one at a time instead running xz + once and giving all files as command-line arguments. + + - Buffer comparisons are now much faster when unaligned access + is allowed (configured with --enable-unaligned-access). This + speeds up encoding significantly. There is arch-specific code + for 32-bit and 64-bit x86 (32-bit needs SSE2 for the best + results and there's no run-time CPU detection for now). + For other archs there is only generic code which probably + isn't as optimal as arch-specific solutions could be. + + - A few speed optimizations were made to the SHA-256 code. + (Note that the builtin SHA-256 code isn't used on all + operating systems.) + + * liblzma can now be built with MSVC 2013 update 2 or later + using windows/config.h. + + * Vietnamese translation was added. + + +5.1.3alpha (2013-10-26) + + * All fixes from 5.0.5 + + * liblzma: + + - Fixed a deadlock in the threaded encoder. + + - Made the uses of lzma_allocator const correct. + + - Added lzma_block_uncomp_encode() to create uncompressed + .xz Blocks using LZMA2 uncompressed chunks. + + - Added support for native threads on Windows and the ability + to detect the number of CPU cores. + + * xz: + + - Fixed a race condition in the signal handling. It was + possible that e.g. the first SIGINT didn't make xz exit + if reading or writing blocked and one had bad luck. The fix + is non-trivial, so as of writing it is unknown if it will be + backported to the v5.0 branch. + + - Made the progress indicator work correctly in threaded mode. + + - Threaded encoder now works together with --block-list=SIZES. + + - Added preliminary support for --flush-timeout=TIMEOUT. + It can be useful for (somewhat) real-time streaming. For + now the decompression side has to be done with something + else than the xz tool due to how xz does buffering, but this + should be fixed. + + +5.1.2alpha (2012-07-04) + + * All fixes from 5.0.3 and 5.0.4 + + * liblzma: + + - Fixed a deadlock and an invalid free() in the threaded encoder. + + - Added support for symbol versioning. It is enabled by default + on GNU/Linux, other GNU-based systems, and FreeBSD. + + - Use SHA-256 implementation from the operating system if one is + available in libc, libmd, or libutil. liblzma won't use e.g. + OpenSSL or libgcrypt to avoid introducing new dependencies. + + - Fixed liblzma.pc for static linking. + + - Fixed a few portability bugs. + + * xz --decompress --single-stream now fixes the input position after + successful decompression. Now the following works: + + echo foo | xz > foo.xz + echo bar | xz >> foo.xz + ( xz -dc --single-stream ; xz -dc --single-stream ) < foo.xz + + Note that it doesn't work if the input is not seekable + or if there is Stream Padding between the concatenated + .xz Streams. + + * xz -lvv now shows the minimum xz version that is required to + decompress the file. Currently it is 5.0.0 for all supported .xz + files except files with empty LZMA2 streams require 5.0.2. + + * Added an *incomplete* implementation of --block-list=SIZES to xz. + It only works correctly in single-threaded mode and when + --block-size isn't used at the same time. --block-list allows + specifying the sizes of Blocks which can be useful e.g. when + creating files for random-access reading. + + +5.1.1alpha (2011-04-12) + + * All fixes from 5.0.2 + + * liblzma fixes that will also be included in 5.0.3: + + - A memory leak was fixed. + + - lzma_stream_buffer_encode() no longer creates an empty .xz + Block if encoding an empty buffer. Such an empty Block with + LZMA2 data would trigger a bug in 5.0.1 and older (see the + first bullet point in 5.0.2 notes). When releasing 5.0.2, + I thought that no encoder creates this kind of files but + I was wrong. + + - Validate function arguments better in a few functions. Most + importantly, specifying an unsupported integrity check to + lzma_stream_buffer_encode() no longer creates a corrupt .xz + file. Probably no application tries to do that, so this + shouldn't be a big problem in practice. + + - Document that lzma_block_buffer_encode(), + lzma_easy_buffer_encode(), lzma_stream_encoder(), and + lzma_stream_buffer_encode() may return LZMA_UNSUPPORTED_CHECK. + + - The return values of the _memusage() functions are now + documented better. + + * Support for multithreaded compression was added using the simplest + method, which splits the input data into blocks and compresses + them independently. Other methods will be added in the future. + The current method has room for improvement, e.g. it is possible + to reduce the memory usage. + + * Added the options --single-stream and --block-size=SIZE to xz. + + * xzdiff and xzgrep now support .lzo files if lzop is installed. + The .tzo suffix is also recognized as a shorthand for .tar.lzo. + + * Support for short 8.3 filenames under DOS was added to xz. It is + experimental and may change before it gets into a stable release. + + +5.0.8 (2014-12-21) + + * Fixed an old bug in xzgrep that affected OpenBSD and probably + a few other operating systems too. + + * Updated French and German translations. + + * Added support for detecting the amount of RAM on AmigaOS/AROS. + + * Minor build system updates. + + +5.0.7 (2014-09-20) + + * Fix regressions introduced in 5.0.6: + + - Fix building with non-GNU make. + + - Fix invalid Libs.private value in liblzma.pc which broke + static linking against liblzma if the linker flags were + taken from pkg-config. + + +5.0.6 (2014-09-14) + + * xzgrep now exits with status 0 if at least one file matched. + + * A few minor portability and build system fixes + + +5.0.5 (2013-06-30) + + * lzmadec and liblzma's lzma_alone_decoder(): Support decompressing + .lzma files that have less common settings in the headers + (dictionary size other than 2^n or 2^n + 2^(n-1), or uncompressed + size greater than 256 GiB). The limitations existed to avoid false + positives when detecting .lzma files. The lc + lp <= 4 limitation + still remains since liblzma's LZMA decoder has that limitation. + + NOTE: xz's .lzma support or liblzma's lzma_auto_decoder() are NOT + affected by this change. They still consider uncommon .lzma headers + as not being in the .lzma format. Changing this would give way too + many false positives. + + * xz: + + - Interaction of preset and custom filter chain options was + made less illogical. This affects only certain less typical + uses cases so few people are expected to notice this change. + + Now when a custom filter chain option (e.g. --lzma2) is + specified, all preset options (-0 ... -9, -e) earlier are on + the command line are completely forgotten. Similarly, when + a preset option is specified, all custom filter chain options + earlier on the command line are completely forgotten. + + Example 1: "xz -9 --lzma2=preset=5 -e" is equivalent to "xz -e" + which is equivalent to "xz -6e". Earlier -e didn't put xz back + into preset mode and thus the example command was equivalent + to "xz --lzma2=preset=5". + + Example 2: "xz -9e --lzma2=preset=5 -7" is equivalent to + "xz -7". Earlier a custom filter chain option didn't make + xz forget the -e option so the example was equivalent to + "xz -7e". + + - Fixes and improvements to error handling. + + - Various fixes to the man page. + + * xzless: Fixed to work with "less" versions 448 and later. + + * xzgrep: Made -h an alias for --no-filename. + + * Include the previously missing debug/translation.bash which can + be useful for translators. + + * Include a build script for Mac OS X. This has been in the Git + repository since 2010 but due to a mistake in Makefile.am the + script hasn't been included in a release tarball before. + + +5.0.4 (2012-06-22) + + * liblzma: + + - Fix lzma_index_init(). It could crash if memory allocation + failed. + + - Fix the possibility of an incorrect LZMA_BUF_ERROR when a BCJ + filter is used and the application only provides exactly as + much output space as is the uncompressed size of the file. + + - Fix a bug in doc/examples_old/xz_pipe_decompress.c. It didn't + check if the last call to lzma_code() really returned + LZMA_STREAM_END, which made the program think that truncated + files are valid. + + - New example programs in doc/examples (old programs are now in + doc/examples_old). These have more comments and more detailed + error handling. + + * Fix "xz -lvv foo.xz". It could crash on some corrupted files. + + * Fix output of "xz --robot -lv" and "xz --robot -lvv" which + incorrectly printed the filename also in the "foo (x/x)" format. + + * Fix exit status of "xzdiff foo.xz bar.xz". + + * Fix exit status of "xzgrep foo binary_file". + + * Fix portability to EBCDIC systems. + + * Fix a configure issue on AIX with the XL C compiler. See INSTALL + for details. + + * Update French, German, Italian, and Polish translations. + + +5.0.3 (2011-05-21) + + * liblzma fixes: + + - A memory leak was fixed. + + - lzma_stream_buffer_encode() no longer creates an empty .xz + Block if encoding an empty buffer. Such an empty Block with + LZMA2 data would trigger a bug in 5.0.1 and older (see the + first bullet point in 5.0.2 notes). When releasing 5.0.2, + I thought that no encoder creates this kind of files but + I was wrong. + + - Validate function arguments better in a few functions. Most + importantly, specifying an unsupported integrity check to + lzma_stream_buffer_encode() no longer creates a corrupt .xz + file. Probably no application tries to do that, so this + shouldn't be a big problem in practice. + + - Document that lzma_block_buffer_encode(), + lzma_easy_buffer_encode(), lzma_stream_encoder(), and + lzma_stream_buffer_encode() may return LZMA_UNSUPPORTED_CHECK. + + - The return values of the _memusage() functions are now + documented better. + + * Fix command name detection in xzgrep. xzegrep and xzfgrep now + correctly use egrep and fgrep instead of grep. + + * French translation was added. + + +5.0.2 (2011-04-01) + + * LZMA2 decompressor now correctly accepts LZMA2 streams with no + uncompressed data. Previously it considered them corrupt. The + bug can affect applications that use raw LZMA2 streams. It is + very unlikely to affect .xz files because no compressor creates + .xz files with empty LZMA2 streams. (Empty .xz files are a + different thing than empty LZMA2 streams.) + + * "xz --suffix=.foo filename.foo" now refuses to compress the + file due to it already having the suffix .foo. It was already + documented on the man page, but the code lacked the test. + + * "xzgrep -l foo bar.xz" works now. + + * Polish translation was added. + + +5.0.1 (2011-01-29) + + * xz --force now (de)compresses files that have setuid, setgid, + or sticky bit set and files that have multiple hard links. + The man page had it documented this way already, but the code + had a bug. + + * gzip and bzip2 support in xzdiff was fixed. + + * Portability fixes + + * Minor fix to Czech translation + + +5.0.0 (2010-10-23) + + Only the most important changes compared to 4.999.9beta are listed + here. One change is especially important: + + * The memory usage limit is now disabled by default. Some scripts + written before this change may have used --memory=max on xz command + line or in XZ_OPT. THESE USES OF --memory=max SHOULD BE REMOVED + NOW, because they interfere with user's ability to set the memory + usage limit himself. If user-specified limit causes problems to + your script, blame the user. + + Other significant changes: + + * Added support for XZ_DEFAULTS environment variable. This variable + allows users to set default options for xz, e.g. default memory + usage limit or default compression level. Scripts that use xz + must never set or unset XZ_DEFAULTS. Scripts should use XZ_OPT + instead if they need a way to pass options to xz via an + environment variable. + + * The compression settings associated with the preset levels + -0 ... -9 have been changed. --extreme was changed a little too. + It is now less likely to make compression worse, but with some + files the new --extreme may compress slightly worse than the old + --extreme. + + * If a preset level (-0 ... -9) is specified after a custom filter + chain options have been used (e.g. --lzma2), the custom filter + chain will be forgotten. Earlier the preset options were + completely ignored after custom filter chain options had been + seen. + + * xz will create sparse files when decompressing if the uncompressed + data contains long sequences of binary zeros. This is done even + when writing to standard output that is connected to a regular + file and certain additional conditions are met to make it safe. + + * Support for "xz --list" was added. Combine with --verbose or + --verbose --verbose (-vv) for detailed output. + + * I had hoped that liblzma API would have been stable after + 4.999.9beta, but there have been a couple of changes in the + advanced features, which don't affect most applications: + + - Index handling code was revised. If you were using the old + API, you will get a compiler error (so it's easy to notice). + + - A subtle but important change was made to the Block handling + API. lzma_block.version has to be initialized even for + lzma_block_header_decode(). Code that doesn't do it will work + for now, but might break in the future, which makes this API + change easy to miss. + + * The major soname has been bumped to 5.0.0. liblzma API and ABI + are now stable, so the need to recompile programs linking against + liblzma shouldn't arise soon. + diff --git a/xz-5.4.5/PACKAGERS b/xz-5.4.5/PACKAGERS new file mode 100644 index 000000000..3042c6690 --- /dev/null +++ b/xz-5.4.5/PACKAGERS @@ -0,0 +1,243 @@ + +Information to packagers of XZ Utils +==================================== + + 0. Preface + 1. Package naming + 2. Package description + 3. License + 4. configure options + 5. Additional documentation + 6. Extra files + 7. Installing XZ Utils and LZMA Utils in parallel + 8. Example + + +0. Preface +---------- + + This document is meant for people who create and maintain XZ Utils + packages for operating system distributions. The focus is on GNU/Linux + systems, but most things apply to other systems too. + + While the standard "configure && make DESTDIR=$PKG install" should + give a pretty good package, there are some details which packagers + may want to tweak. + + Packagers should also read the INSTALL file. + + +1. Package naming +----------------- + + The preferred name for the XZ Utils package is "xz", because that's + the name of the upstream tarball. Naturally you may have good reasons + to use some other name; I won't get angry about it. ;-) It's just nice + to be able to point people to the correct package name without asking + what distro they have. + + If your distro policy is to split things into small pieces, here is + one suggestion: + + xz xz, xzdec, scripts (xzdiff, xzgrep, etc.), docs + xz-lzma lzma, unlzma, lzcat, lzgrep etc. symlinks and + lzmadec binary for compatibility with LZMA Utils + liblzma liblzma.so.* + liblzma-devel liblzma.so, liblzma.a, API headers + liblzma-doc Doxygen-generated liblzma API docs (HTML), + example programs + + +2. Package description +---------------------- + + Here is a suggestion which you may use as the package description. + If you can use only one-line description, pick only the first line. + Naturally, feel free to use some other description if you find it + better, and maybe send it to me too. + + Library and command line tools for XZ and LZMA compressed files + + XZ Utils provide a general purpose data compression library + and command line tools. The native file format is the .xz + format, but also the legacy .lzma format is supported. The .xz + format supports multiple compression algorithms, of which LZMA2 + is currently the primary algorithm. With typical files, XZ Utils + create about 30 % smaller files than gzip. + + If you are splitting XZ Utils into multiple packages, here are some + suggestions for package descriptions: + + xz: + + Command line tools for XZ and LZMA compressed files + + This package includes the xz compression tool and other command + line tools from XZ Utils. xz has command line syntax similar to + that of gzip. The native file format is the .xz format, but also + the legacy .lzma format is supported. The .xz format supports + multiple compression algorithms, of which LZMA2 is currently the + primary algorithm. With typical files, XZ Utils create about 30 % + smaller files than gzip. + + Note that this package doesn't include the files needed for + LZMA Utils 4.32.x compatibility. Install also the xz-lzma + package to make XZ Utils emulate LZMA Utils 4.32.x. + + xz-lzma: + + LZMA Utils emulation with XZ Utils + + This package includes executables and symlinks to make + XZ Utils emulate lzma, unlzma, lzcat, and other command + line tools found from the legacy LZMA Utils 4.32.x package. + + liblzma: + + Library for XZ and LZMA compressed files + + liblzma is a general purpose data compression library with + an API similar to that of zlib. liblzma supports multiple + algorithms, of which LZMA2 is currently the primary algorithm. + The native file format is .xz, but also the legacy .lzma + format and raw streams (no headers at all) are supported. + + This package includes the shared library. + + liblzma-devel: + + Library for XZ and LZMA compressed files + + This package includes the API headers, static library, and + other development files related to liblzma. + + liblzma-doc: + + liblzma API documentation in HTML and example usage + + This package includes the Doxygen-generated liblzma API + HTML docs and example programs showing how to use liblzma. + + +3. License +---------- + + If the package manager supports a license field, you probably should + put GPLv2+ there (GNU GPL v2 or later). The interesting parts of + XZ Utils are in the public domain, but some less important files + ending up into the binary package are under GPLv2+. So it is simplest + to just say GPLv2+ if you cannot specify "public domain and GPLv2+". + + If you split XZ Utils into multiple packages as described earlier + in this file, liblzma and liblzma-dev packages will contain only + public domain code (from XZ Utils at least; compiler or linker may + add some third-party code, which may be copyrighted). + + +4. configure options +-------------------- + + Unless you are building a package for a distribution that is meant + only for embedded systems, don't use the following configure options: + + --enable-debug + --enable-encoders (*) + --enable-decoders + --enable-match-finders + --enable-checks + --enable-small (*) + --disable-threads (*) + --disable-microlzma (*) + --disable-lzip-decoder (*) + + (*) These are OK when building xzdec and lzmadec as described + in INSTALL. + + xzdec and lzmadec don't provide any functionality that isn't already + available in the xz tool. Shipping xzdec and lzmadec without size + optimization and statically-linked liblzma isn't very useful. Doing + that would give users the xzdec man page, which may make it easier + for people to find out that such tools exists, but the executables + wouldn't have any advantage over the full-featured xz. + + +5. Additional documentation +--------------------------- + + "make install" copies some additional documentation to $docdir + (--docdir in configure). There is a copy of the GNU GPL v2, which + can be replaced with a symlink if your distro ships with shared + copies of the common license texts. + + The Doxygen-generated documentation (HTML) for the liblzma API + headers is included in the source release and will be installed by + "make install" to $docdir/api. All JavaScript is removed to + simplify license compliance and to reduce the install size. If the + liblzma API documentation is not desired, either run configure with + --disable-doc or remove the doc/api directory before running + "make install". + + +6. Extra files +-------------- + + The "extra" directory contains some small extra tools or other files. + The exact set of extra files can vary between XZ Utils releases. The + extra files have only limited use or they are too dangerous to be + put directly to $bindir (7z2lzma.sh is a good example, since it can + silently create corrupt output if certain conditions are not met). + + If you feel like it, you may copy the extra directory under the doc + directory (e.g. /usr/share/doc/xz/extra). Maybe some people will find + them useful. However, most people needing these tools probably are + able to find them from the source package too. + + The "debug" directory contains some tools that are useful only when + hacking on XZ Utils. Don't package these tools. + + +7. Installing XZ Utils and LZMA Utils in parallel +------------------------------------------------- + + XZ Utils and LZMA Utils 4.32.x can be installed in parallel by + omitting the compatibility symlinks (lzma, unlzma, lzcat, lzgrep etc.) + from the XZ Utils package. It's probably a good idea to still package + the symlinks into a separate package so that users may choose if they + want to use XZ Utils or LZMA Utils for handling .lzma files. + + +8. Example +---------- + + Here is an example for i686 GNU/Linux that + - links xz and lzmainfo against shared liblzma; + - links size-optimized xzdec and lzmadec against static liblzma + while avoiding libpthread dependency; + - includes only shared liblzma in the final package; and + - copies also the "extra" directory to the package. + + PKG=/tmp/xz-pkg + tar xf xz-x.y.z.tar.gz + cd xz-x.y.z + ./configure \ + --prefix=/usr \ + --disable-static \ + --disable-xzdec \ + --disable-lzmadec \ + CFLAGS='-march=i686 -mtune=generic -O2' + make + make DESTDIR=$PKG install-strip + make clean + ./configure \ + --prefix=/usr \ + --disable-shared \ + --disable-nls \ + --disable-encoders \ + --enable-small \ + --disable-threads \ + CFLAGS='-march=i686 -mtune=generic -Os' + make -C src/liblzma + make -C src/xzdec + make -C src/xzdec DESTDIR=$PKG install-strip + cp -a extra $PKG/usr/share/doc/xz + diff --git a/xz-5.4.5/README b/xz-5.4.5/README new file mode 100644 index 000000000..9e76301b9 --- /dev/null +++ b/xz-5.4.5/README @@ -0,0 +1,307 @@ + +XZ Utils +======== + + 0. Overview + 1. Documentation + 1.1. Overall documentation + 1.2. Documentation for command-line tools + 1.3. Documentation for liblzma + 2. Version numbering + 3. Reporting bugs + 4. Translations + 5. Other implementations of the .xz format + 6. Contact information + + +0. Overview +----------- + + XZ Utils provide a general-purpose data-compression library plus + command-line tools. The native file format is the .xz format, but + also the legacy .lzma format is supported. The .xz format supports + multiple compression algorithms, which are called "filters" in the + context of XZ Utils. The primary filter is currently LZMA2. With + typical files, XZ Utils create about 30 % smaller files than gzip. + + To ease adapting support for the .xz format into existing applications + and scripts, the API of liblzma is somewhat similar to the API of the + popular zlib library. For the same reason, the command-line tool xz + has a command-line syntax similar to that of gzip. + + When aiming for the highest compression ratio, the LZMA2 encoder uses + a lot of CPU time and may use, depending on the settings, even + hundreds of megabytes of RAM. However, in fast modes, the LZMA2 encoder + competes with bzip2 in compression speed, RAM usage, and compression + ratio. + + LZMA2 is reasonably fast to decompress. It is a little slower than + gzip, but a lot faster than bzip2. Being fast to decompress means + that the .xz format is especially nice when the same file will be + decompressed very many times (usually on different computers), which + is the case e.g. when distributing software packages. In such + situations, it's not too bad if the compression takes some time, + since that needs to be done only once to benefit many people. + + With some file types, combining (or "chaining") LZMA2 with an + additional filter can improve the compression ratio. A filter chain may + contain up to four filters, although usually only one or two are used. + For example, putting a BCJ (Branch/Call/Jump) filter before LZMA2 + in the filter chain can improve compression ratio of executable files. + + Since the .xz format allows adding new filter IDs, it is possible that + some day there will be a filter that is, for example, much faster to + compress than LZMA2 (but probably with worse compression ratio). + Similarly, it is possible that some day there is a filter that will + compress better than LZMA2. + + XZ Utils supports multithreaded compression. XZ Utils doesn't support + multithreaded decompression yet. It has been planned though and taken + into account when designing the .xz file format. In the future, files + that were created in threaded mode can be decompressed in threaded + mode too. + + +1. Documentation +---------------- + +1.1. Overall documentation + + README This file + + INSTALL.generic Generic install instructions for those not familiar + with packages using GNU Autotools + INSTALL Installation instructions specific to XZ Utils + PACKAGERS Information to packagers of XZ Utils + + COPYING XZ Utils copyright and license information + COPYING.GPLv2 GNU General Public License version 2 + COPYING.GPLv3 GNU General Public License version 3 + COPYING.LGPLv2.1 GNU Lesser General Public License version 2.1 + + AUTHORS The main authors of XZ Utils + THANKS Incomplete list of people who have helped making + this software + NEWS User-visible changes between XZ Utils releases + ChangeLog Detailed list of changes (commit log) + TODO Known bugs and some sort of to-do list + + Note that only some of the above files are included in binary + packages. + + +1.2. Documentation for command-line tools + + The command-line tools are documented as man pages. In source code + releases (and possibly also in some binary packages), the man pages + are also provided in plain text (ASCII only) and PDF formats in the + directory "doc/man" to make the man pages more accessible to those + whose operating system doesn't provide an easy way to view man pages. + + +1.3. Documentation for liblzma + + The liblzma API headers include short docs about each function + and data type as Doxygen tags. These docs should be quite OK as + a quick reference. + + There are a few example/tutorial programs that should help in + getting started with liblzma. In the source package the examples + are in "doc/examples" and in binary packages they may be under + "examples" in the same directory as this README. + + Since the liblzma API has similarities to the zlib API, some people + may find it useful to read the zlib docs and tutorial too: + + https://zlib.net/manual.html + https://zlib.net/zlib_how.html + + +2. Version numbering +-------------------- + + The version number format of XZ Utils is X.Y.ZS: + + - X is the major version. When this is incremented, the library + API and ABI break. + + - Y is the minor version. It is incremented when new features + are added without breaking the existing API or ABI. An even Y + indicates a stable release and an odd Y indicates unstable + (alpha or beta version). + + - Z is the revision. This has a different meaning for stable and + unstable releases: + + * Stable: Z is incremented when bugs get fixed without adding + any new features. This is intended to be convenient for + downstream distributors that want bug fixes but don't want + any new features to minimize the risk of introducing new bugs. + + * Unstable: Z is just a counter. API or ABI of features added + in earlier unstable releases having the same X.Y may break. + + - S indicates stability of the release. It is missing from the + stable releases, where Y is an even number. When Y is odd, S + is either "alpha" or "beta" to make it very clear that such + versions are not stable releases. The same X.Y.Z combination is + not used for more than one stability level, i.e. after X.Y.Zalpha, + the next version can be X.Y.(Z+1)beta but not X.Y.Zbeta. + + +3. Reporting bugs +----------------- + + Naturally it is easiest for me if you already know what causes the + unexpected behavior. Even better if you have a patch to propose. + However, quite often the reason for unexpected behavior is unknown, + so here are a few things to do before sending a bug report: + + 1. Try to create a small example how to reproduce the issue. + + 2. Compile XZ Utils with debugging code using configure switches + --enable-debug and, if possible, --disable-shared. If you are + using GCC, use CFLAGS='-O0 -ggdb3'. Don't strip the resulting + binaries. + + 3. Turn on core dumps. The exact command depends on your shell; + for example in GNU bash it is done with "ulimit -c unlimited", + and in tcsh with "limit coredumpsize unlimited". + + 4. Try to reproduce the suspected bug. If you get "assertion failed" + message, be sure to include the complete message in your bug + report. If the application leaves a coredump, get a backtrace + using gdb: + $ gdb /path/to/app-binary # Load the app to the debugger. + (gdb) core core # Open the coredump. + (gdb) bt # Print the backtrace. Copy & paste to bug report. + (gdb) quit # Quit gdb. + + Report your bug via email or IRC (see Contact information below). + Don't send core dump files or any executables. If you have a small + example file(s) (total size less than 256 KiB), please include + it/them as an attachment. If you have bigger test files, put them + online somewhere and include a URL to the file(s) in the bug report. + + Always include the exact version number of XZ Utils in the bug report. + If you are using a snapshot from the git repository, use "git describe" + to get the exact snapshot version. If you are using XZ Utils shipped + in an operating system distribution, mention the distribution name, + distribution version, and exact xz package version; if you cannot + repeat the bug with the code compiled from unpatched source code, + you probably need to report a bug to your distribution's bug tracking + system. + + +4. Translations +--------------- + + The xz command line tool and all man pages can be translated. + The translations are handled via the Translation Project. If you + wish to help translating xz, please join the Translation Project: + + https://translationproject.org/html/translators.html + + Below are notes and testing instructions specific to xz + translations. + + Testing can be done by installing xz into a temporary directory: + + ./configure --disable-shared --prefix=/tmp/xz-test + # + make -C po update-po + make install + bash debug/translation.bash | less + bash debug/translation.bash | less -S # For --list outputs + + Repeat the above as needed (no need to re-run configure though). + + Note especially the following: + + - The output of --help and --long-help must look nice on + an 80-column terminal. It's OK to add extra lines if needed. + + - In contrast, don't add extra lines to error messages and such. + They are often preceded with e.g. a filename on the same line, + so you have no way to predict where to put a \n. Let the terminal + do the wrapping even if it looks ugly. Adding new lines will be + even uglier in the generic case even if it looks nice in a few + limited examples. + + - Be careful with column alignment in tables and table-like output + (--list, --list --verbose --verbose, --info-memory, --help, and + --long-help): + + * All descriptions of options in --help should start in the + same column (but it doesn't need to be the same column as + in the English messages; just be consistent if you change it). + Check that both --help and --long-help look OK, since they + share several strings. + + * --list --verbose and --info-memory print lines that have + the format "Description: %s". If you need a longer + description, you can put extra space between the colon + and %s. Then you may need to add extra space to other + strings too so that the result as a whole looks good (all + values start at the same column). + + * The columns of the actual tables in --list --verbose --verbose + should be aligned properly. Abbreviate if necessary. It might + be good to keep at least 2 or 3 spaces between column headings + and avoid spaces in the headings so that the columns stand out + better, but this is a matter of opinion. Do what you think + looks best. + + - Be careful to put a period at the end of a sentence when the + original version has it, and don't put it when the original + doesn't have it. Similarly, be careful with \n characters + at the beginning and end of the strings. + + - Read the TRANSLATORS comments that have been extracted from the + source code and included in xz.pot. Some comments suggest + testing with a specific command which needs an .xz file. You + may use e.g. any tests/files/good-*.xz. However, these test + commands are included in translations.bash output, so reading + translations.bash output carefully can be enough. + + - If you find language problems in the original English strings, + feel free to suggest improvements. Ask if something is unclear. + + - The translated messages should be understandable (sometimes this + may be a problem with the original English messages too). Don't + make a direct word-by-word translation from English especially if + the result doesn't sound good in your language. + + Thanks for your help! + + +5. Other implementations of the .xz format +------------------------------------------ + + 7-Zip and the p7zip port of 7-Zip support the .xz format starting + from the version 9.00alpha. + + https://7-zip.org/ + https://p7zip.sourceforge.net/ + + XZ Embedded is a limited implementation written for use in the Linux + kernel, but it is also suitable for other embedded use. + + https://tukaani.org/xz/embedded.html + + XZ for Java is a complete implementation written in pure Java. + + https://tukaani.org/xz/java.html + + +6. Contact information +---------------------- + + If you have questions, bug reports, patches etc. related to XZ Utils, + the project maintainers Lasse Collin and Jia Tan can be reached via + . + + You might find Lasse also from #tukaani on Libera Chat (IRC). + The nick is Larhzu. The channel tends to be pretty quiet, + so just ask your question and someone might wake up. + diff --git a/xz-5.4.5/THANKS b/xz-5.4.5/THANKS new file mode 100644 index 000000000..0206af938 --- /dev/null +++ b/xz-5.4.5/THANKS @@ -0,0 +1,174 @@ + +Thanks +====== + +Some people have helped more, some less, but nevertheless everyone's help +has been important. :-) In alphabetical order: + - Mark Adler + - H. Peter Anvin + - Jeff Bastian + - Nelson H. F. Beebe + - Karl Beldan + - Karl Berry + - Anders F. Bjƶrklund + - Emmanuel Blot + - Melanie Blower + - Alexander Bluhm + - Martin Blumenstingl + - Ben Boeckel + - Jakub Bogusz + - Adam Borowski + - Maarten Bosmans + - Lukas Braune + - Benjamin Buch + - Trent W. Buck + - Kevin R. Bulgrien + - James Buren + - David Burklund + - Frank Busse + - Daniel Mealha Cabrita + - Milo Casagrande + - Marek Černocký + - Tomer Chachamu + - Vitaly Chikunov + - Antoine Cœur + - Gabi Davar + - İhsan Doğan + - Chris Donawa + - Andrew Dudman + - Markus Duft + - İsmail Dƶnmez + - Paul Eggert + - Robert Elz + - Gilles Espinasse + - Denis Excoffier + - Vincent Fazio + - Michael Felt + - Michael Fox + - Mike Frysinger + - Daniel Richard G. + - Tomasz Gajc + - Bjarni Ingi Gislason + - John Paul Adrian Glaubitz + - Bill Glessner + - Michał Górny + - Jason Gorski + - Juan Manuel Guerrero + - Diederik de Haas + - Joachim Henke + - Christian Hesse + - Vincenzo Innocente + - Peter Ivanov + - Nicholas Jackson + - Sam James + - Hajin Jang + - Jouk Jansen + - Jun I Jin + - Kiyoshi Kanazawa + - Joona Kannisto + - Per Ƙyvind Karlsen + - Iouri Kharon + - Thomas Klausner + - Richard Koch + - Anton Kochkov + - Ville Koskinen + - Marcin Kowalczyk + - Jan Kratochvil + - Christian Kujau + - Stephan Kulow + - Ilya Kurdyukov + - Peter Lawler + - James M Leddy + - Vincent Lefevre + - Hin-Tak Leung + - Andraž 'ruskie' Levstik + - Cary Lewis + - Wim Lewis + - Xin Li + - Eric Lindblad + - Lorenzo De Liso + - H.J. Lu + - Bela Lubkin + - Gregory Margo + - Julien Marrec + - Ed Maste + - Martin MatuÅ”ka + - Ivan A. Melnikov + - Jim Meyering + - Arkadiusz Miskiewicz + - Nathan Moinvaziri + - Ɖtienne Mollier + - Conley Moorhous + - Rafał Mużyło + - Adrien Nader + - Evan Nemerson + - Hongbo Ni + - Jonathan Nieder + - Andre Noll + - Peter O'Gorman + - Dimitri Papadopoulos Orfanos + - Daniel Packard + - Filip Palian + - Peter Pallinger + - Rui Paulo + - Igor Pavlov + - Diego Elio Pettenò + - Elbert Pol + - Mikko Pouru + - Rich Prohaska + - Trįŗ§n Ngį»c QuĆ¢n + - Pavel Raiskup + - Ole AndrĆ© Vadla RavnĆ„s + - Eric S. Raymond + - Robert Readman + - Bernhard Reutner-Fischer + - Markus Rickert + - Cristian RodrĆ­guez + - Christian von Roques + - Boud Roukema + - Torsten Rupp + - Stephen Sachs + - Jukka Salmi + - Agostino Sarubbo + - Alexandre SauvĆ© + - Benno Schulenberg + - Andreas Schwab + - Bhargava Shastry + - Dan Shechter + - Stuart Shelton + - Sebastian Andrzej Siewior + - Ville SkyttƤ + - Brad Smith + - Bruce Stark + - Pippijn van Steenhoven + - Martin Storsjƶ + - Jonathan Stott + - Dan Stromberg + - Jia Tan + - Vincent Torri + - Paul Townsend + - Mohammed AdnĆØne Trojette + - Alexey Tourbin + - Taiki Tsunekawa + - Loganaden Velvindron + - Patrick J. Volkerding + - Martin VƤth + - Adam Walling + - Jeffrey Walton + - Christian Weisgerber + - Dan Weiss + - Bert Wesarg + - Fredrik Wikstrom + - Jim Wilcoxson + - Ralf Wildenhues + - Charles Wilson + - Lars Wirzenius + - Pilorz Wojciech + - Ryan Young + - Andreas Zieringer + +Also thanks to all the people who have participated in the Tukaani project. + +I have probably forgot to add some names to the above list. Sorry about +that and thanks for your help. + diff --git a/xz-5.4.5/TODO b/xz-5.4.5/TODO new file mode 100644 index 000000000..7b9a3adfc --- /dev/null +++ b/xz-5.4.5/TODO @@ -0,0 +1,109 @@ + +XZ Utils To-Do List +=================== + +Known bugs +---------- + + The test suite is too incomplete. + + If the memory usage limit is less than about 13 MiB, xz is unable to + automatically scale down the compression settings enough even though + it would be possible by switching from BT2/BT3/BT4 match finder to + HC3/HC4. + + XZ Utils compress some files significantly worse than LZMA Utils. + This is due to faster compression presets used by XZ Utils, and + can often be worked around by using "xz --extreme". With some files + --extreme isn't enough though: it's most likely with files that + compress extremely well, so going from compression ratio of 0.003 + to 0.004 means big relative increase in the compressed file size. + + xz doesn't quote unprintable characters when it displays file names + given on the command line. + + tuklib_exit() doesn't block signals => EINTR is possible. + + SIGTSTP is not handled. If xz is stopped, the estimated remaining + time and calculated (de)compression speed won't make sense in the + progress indicator (xz --verbose). + + If liblzma has created threads and fork() gets called, liblzma + code will break in the child process unless it calls exec() and + doesn't touch liblzma. + + +Missing features +---------------- + + Add support for storing metadata in .xz files. A preliminary + idea is to create a new Stream type for metadata. When both + metadata and data are wanted in the same .xz file, two or more + Streams would be concatenated. + + The state stored in lzma_stream should be cloneable, which would + be mostly useful when using a preset dictionary in LZMA2, but + it may have other uses too. Compare to deflateCopy() in zlib. + + Support LZMA_FINISH in raw decoder to indicate end of LZMA1 and + other streams that don't have an end of payload marker. + + Adjust dictionary size when the input file size is known. + Maybe do this only if an option is given. + + xz doesn't support copying extended attributes, access control + lists etc. from source to target file. + + Multithreaded compression: + - Reduce memory usage of the current method. + - Implement threaded match finders. + - Implement pigz-style threading in LZMA2. + + Buffer-to-buffer coding could use less RAM (especially when + decompressing LZMA1 or LZMA2). + + I/O library is not implemented (similar to gzopen() in zlib). + It will be a separate library that supports uncompressed, .gz, + .bz2, .lzma, and .xz files. + + Support changing lzma_options_lzma.mode with lzma_filters_update(). + + Support LZMA_FULL_FLUSH for lzma_stream_decoder() to stop at + Block and Stream boundaries. + + lzma_strerror() to convert lzma_ret to human readable form? + This is tricky, because the same error codes are used with + slightly different meanings, and this cannot be fixed anymore. + + Make it possible to adjust LZMA2 options in the middle of a Block + so that the encoding speed vs. compression ratio can be optimized + when the compressed data is streamed over network. + + Improved BCJ filters. The current filters are small but they aren't + so great when compressing binary packages that contain various file + types. Specifically, they make things worse if there are static + libraries or Linux kernel modules. The filtering could also be + more effective (without getting overly complex), for example, + streamable variant BCJ2 from 7-Zip could be implemented. + + Filter that autodetects specific data types in the input stream + and applies appropriate filters for the corrects parts of the input. + Perhaps combine this with the BCJ filter improvement point above. + + Long-range LZ77 method as a separate filter or as a new LZMA2 + match finder. + + +Documentation +------------- + + More tutorial programs are needed for liblzma. + + Document the LZMA1 and LZMA2 algorithms. + + +Miscellaneous +------------ + + Try to get the media type for .xz registered at IANA. + diff --git a/xz-5.4.5/aclocal.m4 b/xz-5.4.5/aclocal.m4 new file mode 100644 index 000000000..6d41ec8b3 --- /dev/null +++ b/xz-5.4.5/aclocal.m4 @@ -0,0 +1,1196 @@ +# generated automatically by aclocal 1.16.5 -*- Autoconf -*- + +# Copyright (C) 1996-2021 Free Software Foundation, Inc. + +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],, +[m4_warning([this file was generated for autoconf 2.71. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) + +# Copyright (C) 2002-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.16' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.16.5], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.16.5])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# Figure out how to run the assembler. -*- Autoconf -*- + +# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_AS +# ---------- +AC_DEFUN([AM_PROG_AS], +[# By default we simply use the C compiler to build assembly code. +AC_REQUIRE([AC_PROG_CC]) +test "${CCAS+set}" = set || CCAS=$CC +test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS +AC_ARG_VAR([CCAS], [assembler compiler command (defaults to CC)]) +AC_ARG_VAR([CCASFLAGS], [assembler compiler flags (defaults to CFLAGS)]) +_AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES([CCAS])])dnl +]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is '.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + AS_CASE([$CONFIG_FILES], + [*\'*], [eval set x "$CONFIG_FILES"], + [*], [set x $CONFIG_FILES]) + shift + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf + do + # Strip MF so we end up with the name of the file. + am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`AS_DIRNAME(["$am_mf"])` + am_filepart=`AS_BASENAME(["$am_mf"])` + AM_RUN_LOG([cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles]) || am_rc=$? + done + if test $am_rc -ne 0; then + AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE="gmake" (or whatever is + necessary). You can also try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking).]) + fi + AS_UNSET([am_dirpart]) + AS_UNSET([am_filepart]) + AS_UNSET([am_mf]) + AS_UNSET([am_rc]) + rm -f conftest-deps.mk +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking is enabled. +# This creates each '.Po' and '.Plo' makefile fragment that we'll need in +# order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.65])dnl +m4_ifdef([_$0_ALREADY_INIT], + [m4_fatal([$0 expanded multiple times +]m4_defn([_$0_ALREADY_INIT]))], + [m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if( + m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +# Variables for tags utilities; see am/tags.am +if test -z "$CTAGS"; then + CTAGS=ctags +fi +AC_SUBST([CTAGS]) +if test -z "$ETAGS"; then + ETAGS=etags +fi +AC_SUBST([ETAGS]) +if test -z "$CSCOPE"; then + CSCOPE=cscope +fi +AC_SUBST([CSCOPE]) + +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi +dnl The trailing newline in this macro's definition is deliberate, for +dnl backward compatibility and to allow trailing 'dnl'-style comments +dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. +]) + +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST([install_sh])]) + +# Copyright (C) 2003-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAKE_INCLUDE() +# ----------------- +# Check whether make has an 'include' directive that can support all +# the idioms we need for our automatic dependency tracking code. +AC_DEFUN([AM_MAKE_INCLUDE], +[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) +cat > confinc.mk << 'END' +am__doit: + @echo this is the am__doit target >confinc.out +.PHONY: am__doit +END +am__include="#" +am__quote= +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) + AS_CASE([$?:`cat confinc.out 2>/dev/null`], + ['0:this is the am__doit target'], + [AS_CASE([$s], + [BSD], [am__include='.include' am__quote='"'], + [am__include='include' am__quote=''])]) + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +AC_MSG_RESULT([${_am_result}]) +AC_SUBST([am__include])]) +AC_SUBST([am__quote])]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + MISSING="\${SHELL} '$am_aux_dir/missing'" +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + AC_MSG_WARN(['missing' script is too old or missing]) +fi +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# -------------------- +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) + +# _AM_SET_OPTIONS(OPTIONS) +# ------------------------ +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Copyright (C) 1999-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_CC_C_O +# --------------- +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC +# to automatically call this. +AC_DEFUN([_AM_PROG_CC_C_O], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) + +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) + +# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) + +# Copyright (C) 2009-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# ("yes" being less verbose, "no" or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor 'install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in "make install-strip", and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +# +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' + +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([m4/ax_check_capsicum.m4]) +m4_include([m4/ax_pthread.m4]) +m4_include([m4/getopt.m4]) +m4_include([m4/gettext.m4]) +m4_include([m4/host-cpu-c-abi.m4]) +m4_include([m4/iconv.m4]) +m4_include([m4/intlmacosx.m4]) +m4_include([m4/lib-ld.m4]) +m4_include([m4/lib-link.m4]) +m4_include([m4/lib-prefix.m4]) +m4_include([m4/libtool.m4]) +m4_include([m4/ltoptions.m4]) +m4_include([m4/ltsugar.m4]) +m4_include([m4/ltversion.m4]) +m4_include([m4/lt~obsolete.m4]) +m4_include([m4/nls.m4]) +m4_include([m4/po.m4]) +m4_include([m4/posix-shell.m4]) +m4_include([m4/progtest.m4]) +m4_include([m4/tuklib_common.m4]) +m4_include([m4/tuklib_cpucores.m4]) +m4_include([m4/tuklib_integer.m4]) +m4_include([m4/tuklib_mbstr.m4]) +m4_include([m4/tuklib_physmem.m4]) +m4_include([m4/tuklib_progname.m4]) +m4_include([m4/visibility.m4]) diff --git a/xz-5.4.5/autogen.sh b/xz-5.4.5/autogen.sh new file mode 100755 index 000000000..d5cec1b61 --- /dev/null +++ b/xz-5.4.5/autogen.sh @@ -0,0 +1,56 @@ +#!/bin/sh + +############################################################################### +# +# Author: Lasse Collin +# +# This file has been put into the public domain. +# You can do whatever you want with this file. +# +############################################################################### + +set -e -x + +# The following six lines are almost identical to "autoreconf -fi" but faster. +${AUTOPOINT:-autopoint} -f +${LIBTOOLIZE:-libtoolize} -c -f || glibtoolize -c -f +${ACLOCAL:-aclocal} -I m4 +${AUTOCONF:-autoconf} +${AUTOHEADER:-autoheader} +${AUTOMAKE:-automake} -acf --foreign + +# Generate the translated man pages and the doxygen documentation if the +# "po4a" and "doxygen" tools are available. +# This is *NOT* done by "autoreconf -fi" or when "make" is run. +# Pass --no-po4a or --no-doxygen to this script to skip these steps. +# It can be useful when you know that po4a or doxygen aren't available and +# don't want autogen.sh to exit with non-zero exit status. +generate_po4a="y" +generate_doxygen="y" + +for arg in "$@" +do + case $arg in + "--no-po4a") + generate_po4a="n" + ;; + + "--no-doxygen") + generate_doxygen="n" + ;; + esac +done + +if test "$generate_po4a" != "n"; then + cd po4a + sh update-po + cd .. +fi + +if test "$generate_doxygen" != "n"; then + cd doxygen + sh update-doxygen + cd .. +fi + +exit 0 diff --git a/xz-5.4.5/build-aux/compile b/xz-5.4.5/build-aux/compile new file mode 100755 index 000000000..df363c8fb --- /dev/null +++ b/xz-5.4.5/build-aux/compile @@ -0,0 +1,348 @@ +#! /bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 1999-2021 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN* | MSYS*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/* | msys/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/xz-5.4.5/build-aux/config.guess b/xz-5.4.5/build-aux/config.guess new file mode 100755 index 000000000..7f76b6228 --- /dev/null +++ b/xz-5.4.5/build-aux/config.guess @@ -0,0 +1,1754 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2022 Free Software Foundation, Inc. + +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2022-01-09' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess +# +# Please send patches to . + + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2022 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +# Just in case it came from the environment. +GUESS= + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039,SC3028 + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD=$driver + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if test -f /.attbin/uname ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +case $UNAME_SYSTEM in +Linux|GNU|GNU/*) + LIBC=unknown + + set_cc_for_build + cat <<-EOF > "$dummy.c" + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #elif defined(__GLIBC__) + LIBC=gnu + #else + #include + /* First heuristic to detect musl libc. */ + #ifdef __DEFINED_va_list + LIBC=musl + #endif + #endif + EOF + cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "$cc_set_libc" + + # Second heuristic to detect musl libc. + if [ "$LIBC" = unknown ] && + command -v ldd >/dev/null && + ldd --version 2>&1 | grep -q ^musl; then + LIBC=musl + fi + + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + if [ "$LIBC" = unknown ]; then + LIBC=gnu + fi + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + echo unknown)` + case $UNAME_MACHINE_ARCH in + aarch64eb) machine=aarch64_be-unknown ;; + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; + *) machine=$UNAME_MACHINE_ARCH-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently (or will in the future) and ABI. + case $UNAME_MACHINE_ARCH in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case $UNAME_MACHINE_ARCH in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case $UNAME_VERSION in + Debian*) + release='-gnu' + ;; + *) + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + GUESS=$machine-${os}${release}${abi-} + ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE + ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE + ;; + *:SecBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE + ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE + ;; + *:MidnightBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE + ;; + *:ekkoBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE + ;; + *:SolidBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE + ;; + *:OS108:*:*) + GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE + ;; + macppc:MirBSD:*:*) + GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE + ;; + *:MirBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE + ;; + *:Sortix:*:*) + GUESS=$UNAME_MACHINE-unknown-sortix + ;; + *:Twizzler:*:*) + GUESS=$UNAME_MACHINE-unknown-twizzler + ;; + *:Redox:*:*) + GUESS=$UNAME_MACHINE-unknown-redox + ;; + mips:OSF1:*.*) + GUESS=mips-dec-osf1 + ;; + alpha:OSF1:*:*) + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + trap '' 0 + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case $ALPHA_CPU_TYPE in + "EV4 (21064)") + UNAME_MACHINE=alpha ;; + "EV4.5 (21064)") + UNAME_MACHINE=alpha ;; + "LCA4 (21066/21068)") + UNAME_MACHINE=alpha ;; + "EV5 (21164)") + UNAME_MACHINE=alphaev5 ;; + "EV5.6 (21164A)") + UNAME_MACHINE=alphaev56 ;; + "EV5.6 (21164PC)") + UNAME_MACHINE=alphapca56 ;; + "EV5.7 (21164PC)") + UNAME_MACHINE=alphapca57 ;; + "EV6 (21264)") + UNAME_MACHINE=alphaev6 ;; + "EV6.7 (21264A)") + UNAME_MACHINE=alphaev67 ;; + "EV6.8CB (21264C)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8AL (21264B)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8CX (21264D)") + UNAME_MACHINE=alphaev68 ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE=alphaev69 ;; + "EV7 (21364)") + UNAME_MACHINE=alphaev7 ;; + "EV7.9 (21364A)") + UNAME_MACHINE=alphaev79 ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + GUESS=$UNAME_MACHINE-dec-osf$OSF_REL + ;; + Amiga*:UNIX_System_V:4.0:*) + GUESS=m68k-unknown-sysv4 + ;; + *:[Aa]miga[Oo][Ss]:*:*) + GUESS=$UNAME_MACHINE-unknown-amigaos + ;; + *:[Mm]orph[Oo][Ss]:*:*) + GUESS=$UNAME_MACHINE-unknown-morphos + ;; + *:OS/390:*:*) + GUESS=i370-ibm-openedition + ;; + *:z/VM:*:*) + GUESS=s390-ibm-zvmoe + ;; + *:OS400:*:*) + GUESS=powerpc-ibm-os400 + ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + GUESS=arm-acorn-riscix$UNAME_RELEASE + ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + GUESS=arm-unknown-riscos + ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + GUESS=hppa1.1-hitachi-hiuxmpp + ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + case `(/bin/universe) 2>/dev/null` in + att) GUESS=pyramid-pyramid-sysv3 ;; + *) GUESS=pyramid-pyramid-bsd ;; + esac + ;; + NILE*:*:*:dcosx) + GUESS=pyramid-pyramid-svr4 + ;; + DRS?6000:unix:4.0:6*) + GUESS=sparc-icl-nx6 + ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) GUESS=sparc-icl-nx7 ;; + esac + ;; + s390x:SunOS:*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL + ;; + sun4H:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-hal-solaris2$SUN_REL + ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris2$SUN_REL + ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + GUESS=i386-pc-auroraux$UNAME_RELEASE + ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + set_cc_for_build + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$SUN_ARCH-pc-solaris2$SUN_REL + ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris3$SUN_REL + ;; + sun4*:SunOS:*:*) + case `/usr/bin/arch -k` in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` + GUESS=sparc-sun-sunos$SUN_REL + ;; + sun3*:SunOS:*:*) + GUESS=m68k-sun-sunos$UNAME_RELEASE + ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 + case `/bin/arch` in + sun3) + GUESS=m68k-sun-sunos$UNAME_RELEASE + ;; + sun4) + GUESS=sparc-sun-sunos$UNAME_RELEASE + ;; + esac + ;; + aushp:SunOS:*:*) + GUESS=sparc-auspex-sunos$UNAME_RELEASE + ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + GUESS=m68k-milan-mint$UNAME_RELEASE + ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + GUESS=m68k-hades-mint$UNAME_RELEASE + ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + GUESS=m68k-unknown-mint$UNAME_RELEASE + ;; + m68k:machten:*:*) + GUESS=m68k-apple-machten$UNAME_RELEASE + ;; + powerpc:machten:*:*) + GUESS=powerpc-apple-machten$UNAME_RELEASE + ;; + RISC*:Mach:*:*) + GUESS=mips-dec-mach_bsd4.3 + ;; + RISC*:ULTRIX:*:*) + GUESS=mips-dec-ultrix$UNAME_RELEASE + ;; + VAX*:ULTRIX*:*:*) + GUESS=vax-dec-ultrix$UNAME_RELEASE + ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + GUESS=clipper-intergraph-clix$UNAME_RELEASE + ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && + { echo "$SYSTEM_NAME"; exit; } + GUESS=mips-mips-riscos$UNAME_RELEASE + ;; + Motorola:PowerMAX_OS:*:*) + GUESS=powerpc-motorola-powermax + ;; + Motorola:*:4.3:PL8-*) + GUESS=powerpc-harris-powermax + ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + GUESS=powerpc-harris-powermax + ;; + Night_Hawk:Power_UNIX:*:*) + GUESS=powerpc-harris-powerunix + ;; + m88k:CX/UX:7*:*) + GUESS=m88k-harris-cxux7 + ;; + m88k:*:4*:R4*) + GUESS=m88k-motorola-sysv4 + ;; + m88k:*:3*:R3*) + GUESS=m88k-motorola-sysv3 + ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 + then + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x + then + GUESS=m88k-dg-dgux$UNAME_RELEASE + else + GUESS=m88k-dg-dguxbcs$UNAME_RELEASE + fi + else + GUESS=i586-dg-dgux$UNAME_RELEASE + fi + ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + GUESS=m88k-dolphin-sysv3 + ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + GUESS=m88k-motorola-sysv3 + ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + GUESS=m88k-tektronix-sysv3 + ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + GUESS=m68k-tektronix-bsd + ;; + *:IRIX*:*:*) + IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'` + GUESS=mips-sgi-irix$IRIX_REL + ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id + ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + GUESS=i386-ibm-aix + ;; + ia64:AIX:*:*) + if test -x /usr/bin/oslevel ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE + fi + GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV + ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` + then + GUESS=$SYSTEM_NAME + else + GUESS=rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + GUESS=rs6000-ibm-aix3.2.4 + else + GUESS=rs6000-ibm-aix3.2 + fi + ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if test -x /usr/bin/lslpp ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \ + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + else + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE + fi + GUESS=$IBM_ARCH-ibm-aix$IBM_REV + ;; + *:AIX:*:*) + GUESS=rs6000-ibm-aix + ;; + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) + GUESS=romp-ibm-bsd4.4 + ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to + ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + GUESS=rs6000-bull-bosx + ;; + DPX/2?00:B.O.S.:*:*) + GUESS=m68k-bull-sysv3 + ;; + 9000/[34]??:4.3bsd:1.*:*) + GUESS=m68k-hp-bsd + ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + GUESS=m68k-hp-bsd4.4 + ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + case $UNAME_MACHINE in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if test -x /usr/bin/getconf; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case $sc_cpu_version in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case $sc_kernel_bits in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 + esac ;; + esac + fi + if test "$HP_ARCH" = ""; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if test "$HP_ARCH" = hppa2.0w + then + set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH=hppa2.0w + else + HP_ARCH=hppa64 + fi + fi + GUESS=$HP_ARCH-hp-hpux$HPUX_REV + ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + GUESS=ia64-hp-hpux$HPUX_REV + ;; + 3050*:HI-UX:*:*) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } + GUESS=unknown-hitachi-hiuxwe2 + ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) + GUESS=hppa1.1-hp-bsd + ;; + 9000/8??:4.3bsd:*:*) + GUESS=hppa1.0-hp-bsd + ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + GUESS=hppa1.0-hp-mpeix + ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) + GUESS=hppa1.1-hp-osf + ;; + hp8??:OSF1:*:*) + GUESS=hppa1.0-hp-osf + ;; + i*86:OSF1:*:*) + if test -x /usr/sbin/sysversion ; then + GUESS=$UNAME_MACHINE-unknown-osf1mk + else + GUESS=$UNAME_MACHINE-unknown-osf1 + fi + ;; + parisc*:Lites*:*:*) + GUESS=hppa1.1-hp-lites + ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + GUESS=c1-convex-bsd + ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + GUESS=c34-convex-bsd + ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + GUESS=c38-convex-bsd + ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + GUESS=c4-convex-bsd + ;; + CRAY*Y-MP:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=ymp-cray-unicos$CRAY_REL + ;; + CRAY*[A-Z]90:*:*:*) + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=t90-cray-unicos$CRAY_REL + ;; + CRAY*T3E:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=alphaev5-cray-unicosmk$CRAY_REL + ;; + CRAY*SV1:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=sv1-cray-unicos$CRAY_REL + ;; + *:UNICOS/mp:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=craynv-cray-unicosmp$CRAY_REL + ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` + GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE + ;; + sparc*:BSD/OS:*:*) + GUESS=sparc-unknown-bsdi$UNAME_RELEASE + ;; + *:BSD/OS:*:*) + GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE + ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=`uname -p` + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi + else + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf + fi + ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case $UNAME_PROCESSOR in + amd64) + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; + esac + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL + ;; + i*:CYGWIN*:*) + GUESS=$UNAME_MACHINE-pc-cygwin + ;; + *:MINGW64*:*) + GUESS=$UNAME_MACHINE-pc-mingw64 + ;; + *:MINGW*:*) + GUESS=$UNAME_MACHINE-pc-mingw32 + ;; + *:MSYS*:*) + GUESS=$UNAME_MACHINE-pc-msys + ;; + i*:PW*:*) + GUESS=$UNAME_MACHINE-pc-pw32 + ;; + *:SerenityOS:*:*) + GUESS=$UNAME_MACHINE-pc-serenity + ;; + *:Interix*:*) + case $UNAME_MACHINE in + x86) + GUESS=i586-pc-interix$UNAME_RELEASE + ;; + authenticamd | genuineintel | EM64T) + GUESS=x86_64-unknown-interix$UNAME_RELEASE + ;; + IA64) + GUESS=ia64-unknown-interix$UNAME_RELEASE + ;; + esac ;; + i*:UWIN*:*) + GUESS=$UNAME_MACHINE-pc-uwin + ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + GUESS=x86_64-pc-cygwin + ;; + prep*:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=powerpcle-unknown-solaris2$SUN_REL + ;; + *:GNU:*:*) + # the GNU system + GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'` + GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL + ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC + ;; + *:Minix:*:*) + GUESS=$UNAME_MACHINE-unknown-minix + ;; + aarch64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + arm*:Linux:*:*) + set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi + else + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf + fi + fi + ;; + avr32*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + cris:Linux:*:*) + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; + crisv32:Linux:*:*) + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; + e2k:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + frv:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + hexagon:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + i*86:Linux:*:*) + GUESS=$UNAME_MACHINE-pc-linux-$LIBC + ;; + ia64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + k1om:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + m32r*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + m68*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + mips:Linux:*:* | mips64:Linux:*:*) + set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 + sed 's/^ //' << EOF > "$dummy.c" + #undef CPU + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + MIPS_ENDIAN=el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + MIPS_ENDIAN= + #else + MIPS_ENDIAN= + #endif + #endif +EOF + cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'` + eval "$cc_set_vars" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } + ;; + mips64el:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + openrisc*:Linux:*:*) + GUESS=or1k-unknown-linux-$LIBC + ;; + or32:Linux:*:* | or1k*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + padre:Linux:*:*) + GUESS=sparc-unknown-linux-$LIBC + ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + GUESS=hppa64-unknown-linux-$LIBC + ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;; + PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;; + *) GUESS=hppa-unknown-linux-$LIBC ;; + esac + ;; + ppc64:Linux:*:*) + GUESS=powerpc64-unknown-linux-$LIBC + ;; + ppc:Linux:*:*) + GUESS=powerpc-unknown-linux-$LIBC + ;; + ppc64le:Linux:*:*) + GUESS=powerpc64le-unknown-linux-$LIBC + ;; + ppcle:Linux:*:*) + GUESS=powerpcle-unknown-linux-$LIBC + ;; + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + s390:Linux:*:* | s390x:Linux:*:*) + GUESS=$UNAME_MACHINE-ibm-linux-$LIBC + ;; + sh64*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + sh*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + tile*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + vax:Linux:*:*) + GUESS=$UNAME_MACHINE-dec-linux-$LIBC + ;; + x86_64:Linux:*:*) + set_cc_for_build + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_X32 >/dev/null + then + LIBCABI=${LIBC}x32 + fi + fi + GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI + ;; + xtensa*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + GUESS=i386-sequent-sysv4 + ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION + ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + GUESS=$UNAME_MACHINE-pc-os2-emx + ;; + i*86:XTS-300:*:STOP) + GUESS=$UNAME_MACHINE-unknown-stop + ;; + i*86:atheos:*:*) + GUESS=$UNAME_MACHINE-unknown-atheos + ;; + i*86:syllable:*:*) + GUESS=$UNAME_MACHINE-pc-syllable + ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + GUESS=i386-unknown-lynxos$UNAME_RELEASE + ;; + i*86:*DOS:*:*) + GUESS=$UNAME_MACHINE-pc-msdosdjgpp + ;; + i*86:*:4.*:*) + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL + else + GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL + fi + ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL + else + GUESS=$UNAME_MACHINE-pc-sysv32 + fi + ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + GUESS=i586-pc-msdosdjgpp + ;; + Intel:Mach:3*:*) + GUESS=i386-pc-mach3 + ;; + paragon:*:*:*) + GUESS=i860-intel-osf1 + ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4 + fi + ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + GUESS=m68010-convergent-sysv + ;; + mc68k:UNIX:SYSTEM5:3.51m) + GUESS=m68k-convergent-sysv + ;; + M680?0:D-NIX:5.3:*) + GUESS=m68k-diab-dnix + ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 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) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + GUESS=m68k-unknown-lynxos$UNAME_RELEASE + ;; + mc68030:UNIX_System_V:4.*:*) + GUESS=m68k-atari-sysv4 + ;; + TSUNAMI:LynxOS:2.*:*) + GUESS=sparc-unknown-lynxos$UNAME_RELEASE + ;; + rs6000:LynxOS:2.*:*) + GUESS=rs6000-unknown-lynxos$UNAME_RELEASE + ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + GUESS=powerpc-unknown-lynxos$UNAME_RELEASE + ;; + SM[BE]S:UNIX_SV:*:*) + GUESS=mips-dde-sysv$UNAME_RELEASE + ;; + RM*:ReliantUNIX-*:*:*) + GUESS=mips-sni-sysv4 + ;; + RM*:SINIX-*:*:*) + GUESS=mips-sni-sysv4 + ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + GUESS=$UNAME_MACHINE-sni-sysv4 + else + GUESS=ns32k-sni-sysv + fi + ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + GUESS=i586-unisys-sysv4 + ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + GUESS=hppa1.1-stratus-sysv4 + ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + GUESS=i860-stratus-sysv4 + ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + GUESS=$UNAME_MACHINE-stratus-vos + ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + GUESS=hppa1.1-stratus-vos + ;; + mc68*:A/UX:*:*) + GUESS=m68k-apple-aux$UNAME_RELEASE + ;; + news*:NEWS-OS:6*:*) + GUESS=mips-sony-newsos6 + ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if test -d /usr/nec; then + GUESS=mips-nec-sysv$UNAME_RELEASE + else + GUESS=mips-unknown-sysv$UNAME_RELEASE + fi + ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + GUESS=powerpc-be-beos + ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + GUESS=powerpc-apple-beos + ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + GUESS=i586-pc-beos + ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + GUESS=i586-pc-haiku + ;; + x86_64:Haiku:*:*) + GUESS=x86_64-unknown-haiku + ;; + SX-4:SUPER-UX:*:*) + GUESS=sx4-nec-superux$UNAME_RELEASE + ;; + SX-5:SUPER-UX:*:*) + GUESS=sx5-nec-superux$UNAME_RELEASE + ;; + SX-6:SUPER-UX:*:*) + GUESS=sx6-nec-superux$UNAME_RELEASE + ;; + SX-7:SUPER-UX:*:*) + GUESS=sx7-nec-superux$UNAME_RELEASE + ;; + SX-8:SUPER-UX:*:*) + GUESS=sx8-nec-superux$UNAME_RELEASE + ;; + SX-8R:SUPER-UX:*:*) + GUESS=sx8r-nec-superux$UNAME_RELEASE + ;; + SX-ACE:SUPER-UX:*:*) + GUESS=sxace-nec-superux$UNAME_RELEASE + ;; + Power*:Rhapsody:*:*) + GUESS=powerpc-apple-rhapsody$UNAME_RELEASE + ;; + *:Rhapsody:*:*) + GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE + ;; + arm64:Darwin:*:*) + GUESS=aarch64-apple-darwin$UNAME_RELEASE + ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build + fi + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE + fi + GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE + ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = x86; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE + ;; + *:QNX:*:4*) + GUESS=i386-pc-qnx + ;; + NEO-*:NONSTOP_KERNEL:*:*) + GUESS=neo-tandem-nsk$UNAME_RELEASE + ;; + NSE-*:NONSTOP_KERNEL:*:*) + GUESS=nse-tandem-nsk$UNAME_RELEASE + ;; + NSR-*:NONSTOP_KERNEL:*:*) + GUESS=nsr-tandem-nsk$UNAME_RELEASE + ;; + NSV-*:NONSTOP_KERNEL:*:*) + GUESS=nsv-tandem-nsk$UNAME_RELEASE + ;; + NSX-*:NONSTOP_KERNEL:*:*) + GUESS=nsx-tandem-nsk$UNAME_RELEASE + ;; + *:NonStop-UX:*:*) + GUESS=mips-compaq-nonstopux + ;; + BS2000:POSIX*:*:*) + GUESS=bs2000-siemens-sysv + ;; + DS/*:UNIX_System_V:*:*) + GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE + ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "${cputype-}" = 386; then + UNAME_MACHINE=i386 + elif test "x${cputype-}" != x; then + UNAME_MACHINE=$cputype + fi + GUESS=$UNAME_MACHINE-unknown-plan9 + ;; + *:TOPS-10:*:*) + GUESS=pdp10-unknown-tops10 + ;; + *:TENEX:*:*) + GUESS=pdp10-unknown-tenex + ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + GUESS=pdp10-dec-tops20 + ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + GUESS=pdp10-xkl-tops20 + ;; + *:TOPS-20:*:*) + GUESS=pdp10-unknown-tops20 + ;; + *:ITS:*:*) + GUESS=pdp10-unknown-its + ;; + SEI:*:*:SEIUX) + GUESS=mips-sei-seiux$UNAME_RELEASE + ;; + *:DragonFly:*:*) + DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL + ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case $UNAME_MACHINE in + A*) GUESS=alpha-dec-vms ;; + I*) GUESS=ia64-dec-vms ;; + V*) GUESS=vax-dec-vms ;; + esac ;; + *:XENIX:*:SysV) + GUESS=i386-pc-xenix + ;; + i*86:skyos:*:*) + SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` + GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL + ;; + i*86:rdos:*:*) + GUESS=$UNAME_MACHINE-pc-rdos + ;; + i*86:Fiwix:*:*) + GUESS=$UNAME_MACHINE-pc-fiwix + ;; + *:AROS:*:*) + GUESS=$UNAME_MACHINE-unknown-aros + ;; + x86_64:VMkernel:*:*) + GUESS=$UNAME_MACHINE-unknown-esx + ;; + amd64:Isilon\ OneFS:*:*) + GUESS=x86_64-unknown-onefs + ;; + *:Unleashed:*:*) + GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE + ;; +esac + +# Do we have a guess based on uname results? +if test "x$GUESS" != x; then + echo "$GUESS" + exit +fi + +# No uname command or uname output not recognized. +set_cc_for_build +cat > "$dummy.c" < +#include +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include +#if defined(_SIZE_T_) || defined(SIGLOST) +#include +#endif +#endif +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) +#include +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } + +echo "$0: unable to guess system type" >&2 + +case $UNAME_MACHINE:$UNAME_SYSTEM in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 <&2 </dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" +EOF +fi + +exit 1 + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/xz-5.4.5/build-aux/config.rpath b/xz-5.4.5/build-aux/config.rpath new file mode 100755 index 000000000..1e1ab6790 --- /dev/null +++ b/xz-5.4.5/build-aux/config.rpath @@ -0,0 +1,684 @@ +#! /bin/sh +# Output a system dependent set of variables, describing how to set the +# run time search path of shared libraries in an executable. +# +# Copyright 1996-2022 Free Software Foundation, Inc. +# Taken from GNU libtool, 2001 +# Originally by Gordon Matzigkeit , 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. +# +# The first argument passed to this file is the canonical host specification, +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld +# should be set by the caller. +# +# The set of defined variables is at the end of this script. + +# Known limitations: +# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer +# than 256 bytes, otherwise the compiler driver will dump core. The only +# known workaround is to choose shorter directory names for the build +# directory and/or the installation directory. + +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a +shrext=.so + +host="$1" +host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + +# Code taken from libtool.m4's _LT_CC_BASENAME. + +for cc_temp in $CC""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` + +# Code taken from libtool.m4's _LT_COMPILER_PIC. + +wl= +if test "$GCC" = yes; then + wl='-Wl,' +else + case "$host_os" in + aix*) + wl='-Wl,' + ;; + mingw* | cygwin* | pw32* | os2* | cegcc*) + ;; + hpux9* | hpux10* | hpux11*) + wl='-Wl,' + ;; + irix5* | irix6* | nonstopux*) + wl='-Wl,' + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + ecc*) + wl='-Wl,' + ;; + icc* | ifort*) + wl='-Wl,' + ;; + lf95*) + wl='-Wl,' + ;; + nagfor*) + wl='-Wl,-Wl,,' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + wl='-Wl,' + ;; + ccc*) + wl='-Wl,' + ;; + xl* | bgxl* | bgf* | mpixl*) + wl='-Wl,' + ;; + como) + wl='-lopt=' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ F* | *Sun*Fortran*) + wl= + ;; + *Sun\ C*) + wl='-Wl,' + ;; + esac + ;; + esac + ;; + newsos6) + ;; + *nto* | *qnx*) + ;; + osf3* | osf4* | osf5*) + wl='-Wl,' + ;; + rdos*) + ;; + solaris*) + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + wl='-Qoption ld ' + ;; + *) + wl='-Wl,' + ;; + esac + ;; + sunos4*) + wl='-Qoption ld ' + ;; + sysv4 | sysv4.2uw2* | sysv4.3*) + wl='-Wl,' + ;; + sysv4*MP*) + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + wl='-Wl,' + ;; + unicos*) + wl='-Wl,' + ;; + uts4*) + ;; + esac +fi + +# Code taken from libtool.m4's _LT_LINKER_SHLIBS. + +hardcode_libdir_flag_spec= +hardcode_libdir_separator= +hardcode_direct=no +hardcode_minus_L=no + +case "$host_os" in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; +esac + +ld_shlibs=yes +if test "$with_gnu_ld" = yes; then + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + # Unlike libtool, we use -rpath here, not --rpath, since the documented + # option of GNU ld is called -rpath, not --rpath. + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + case "$host_os" in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + fi + ;; + amigaos*) + case "$host_cpu" in + powerpc) + ;; + m68k) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + cygwin* | mingw* | pw32* | cegcc*) + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + haiku*) + ;; + interix[3-9]*) + hardcode_direct=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + netbsd*) + ;; + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + else + ld_shlibs=no + fi + ;; + esac + ;; + sunos4*) + hardcode_direct=yes + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + esac + if test "$ld_shlibs" = no; then + hardcode_libdir_flag_spec= + fi +else + case "$host_os" in + aix3*) + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + else + aix_use_runtimelinking=no + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + fi + hardcode_direct=yes + hardcode_libdir_separator=':' + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + fi + # Begin _LT_AC_SYS_LIBPATH_AIX. + echo 'int main () { return 0; }' > conftest.c + ${CC} ${LDFLAGS} conftest.c -o conftest + aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` + if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` + fi + if test -z "$aix_libpath"; then + aix_libpath="/usr/lib:/lib" + fi + rm -f conftest.c conftest + # End _LT_AC_SYS_LIBPATH_AIX. + if test "$aix_use_runtimelinking" = yes; then + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + else + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + fi + fi + ;; + amigaos*) + case "$host_cpu" in + powerpc) + ;; + m68k) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + bsdi[45]*) + ;; + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + libext=lib + ;; + darwin* | rhapsody*) + hardcode_direct=no + if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then + : + else + ld_shlibs=no + fi + ;; + dgux*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + freebsd2.[01]*) + hardcode_direct=yes + hardcode_minus_L=yes + ;; + freebsd* | dragonfly* | midnightbsd*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + hpux9*) + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + hpux10*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + hpux11*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + ;; + *) + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + irix5* | irix6* | nonstopux*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + netbsd*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + newsos6) + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + *nto* | *qnx*) + ;; + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + else + case "$host_os" in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + osf3*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + osf4* | osf5*) + if test "$GCC" = yes; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + # Both cc and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + hardcode_libdir_separator=: + ;; + solaris*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + sunos4*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + ;; + sysv4) + case $host_vendor in + sni) + hardcode_direct=yes # is this really true??? + ;; + siemens) + hardcode_direct=no + ;; + motorola) + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + ;; + sysv4.3*) + ;; + sysv4*MP*) + if test -d /usr/nec; then + ld_shlibs=yes + fi + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + ;; + sysv5* | sco3.2v5* | sco5v6*) + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator=':' + ;; + uts4*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + *) + ld_shlibs=no + ;; + esac +fi + +# Check dynamic linker characteristics +# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. +# Unlike libtool.m4, here we don't care about _all_ names of the library, but +# only about the one the linker finds when passed -lNAME. This is the last +# element of library_names_spec in libtool.m4, or possibly two of them if the +# linker has special search rules. +library_names_spec= # the last element of library_names_spec in libtool.m4 +libname_spec='lib$name' +case "$host_os" in + aix3*) + library_names_spec='$libname.a' + ;; + aix[4-9]*) + library_names_spec='$libname$shrext' + ;; + amigaos*) + case "$host_cpu" in + powerpc*) + library_names_spec='$libname$shrext' ;; + m68k) + library_names_spec='$libname.a' ;; + esac + ;; + beos*) + library_names_spec='$libname$shrext' + ;; + bsdi[45]*) + library_names_spec='$libname$shrext' + ;; + cygwin* | mingw* | pw32* | cegcc*) + shrext=.dll + library_names_spec='$libname.dll.a $libname.lib' + ;; + darwin* | rhapsody*) + shrext=.dylib + library_names_spec='$libname$shrext' + ;; + dgux*) + library_names_spec='$libname$shrext' + ;; + freebsd[23].*) + library_names_spec='$libname$shrext$versuffix' + ;; + freebsd* | dragonfly* | midnightbsd*) + library_names_spec='$libname$shrext' + ;; + gnu*) + library_names_spec='$libname$shrext' + ;; + haiku*) + library_names_spec='$libname$shrext' + ;; + hpux9* | hpux10* | hpux11*) + case $host_cpu in + ia64*) + shrext=.so + ;; + hppa*64*) + shrext=.sl + ;; + *) + shrext=.sl + ;; + esac + library_names_spec='$libname$shrext' + ;; + interix[3-9]*) + library_names_spec='$libname$shrext' + ;; + irix5* | irix6* | nonstopux*) + library_names_spec='$libname$shrext' + case "$host_os" in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; + *) libsuff= shlibsuff= ;; + esac + ;; + esac + ;; + linux*oldld* | linux*aout* | linux*coff*) + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu) + library_names_spec='$libname$shrext' + ;; + knetbsd*-gnu) + library_names_spec='$libname$shrext' + ;; + netbsd*) + library_names_spec='$libname$shrext' + ;; + newsos6) + library_names_spec='$libname$shrext' + ;; + *nto* | *qnx*) + library_names_spec='$libname$shrext' + ;; + openbsd*) + library_names_spec='$libname$shrext$versuffix' + ;; + os2*) + libname_spec='$name' + shrext=.dll + library_names_spec='$libname.a' + ;; + osf3* | osf4* | osf5*) + library_names_spec='$libname$shrext' + ;; + rdos*) + ;; + solaris*) + library_names_spec='$libname$shrext' + ;; + sunos4*) + library_names_spec='$libname$shrext$versuffix' + ;; + sysv4 | sysv4.3*) + library_names_spec='$libname$shrext' + ;; + sysv4*MP*) + library_names_spec='$libname$shrext' + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + library_names_spec='$libname$shrext' + ;; + tpf*) + library_names_spec='$libname$shrext' + ;; + uts4*) + library_names_spec='$libname$shrext' + ;; +esac + +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' +escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` +shlibext=`echo "$shrext" | sed -e 's,^\.,,'` +escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` +escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` +escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` + +LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2021 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo "$1" + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Split fields of configuration type +# shellcheck disable=SC2162 +saved_IFS=$IFS +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 + ;; + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 + ;; + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac + ;; + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + zephyr*) + basic_machine=$field1-unknown + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac + ;; + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac + ;; +esac + +# Decode 1-component or ad-hoc basic machines +case $basic_machine in + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond + ;; + op50n) + cpu=hppa1.1 + vendor=oki + ;; + op60c) + cpu=hppa1.1 + vendor=oki + ;; + ibm*) + cpu=i370 + vendor=ibm + ;; + orion105) + cpu=clipper + vendor=highlevel + ;; + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple + ;; + pmac | pmac-mpw) + cpu=powerpc + vendor=apple + ;; + + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + cpu=m68000 + vendor=att + ;; + 3b*) + cpu=we32k + vendor=att + ;; + bluegene*) + cpu=powerpc + vendor=ibm + basic_os=cnk + ;; + decsystem10* | dec10*) + cpu=pdp10 + vendor=dec + basic_os=tops10 + ;; + decsystem20* | dec20*) + cpu=pdp10 + vendor=dec + basic_os=tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + cpu=m68k + vendor=motorola + ;; + dpx2*) + cpu=m68k + vendor=bull + basic_os=sysv3 + ;; + encore | umax | mmax) + cpu=ns32k + vendor=encore + ;; + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} + ;; + fx2800) + cpu=i860 + vendor=alliant + ;; + genix) + cpu=ns32k + vendor=ns + ;; + h3050r* | hiux*) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + cpu=m68000 + vendor=hp + ;; + hp9k3[2-9][0-9]) + cpu=m68k + vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + i*86v32) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv32 + ;; + i*86v4*) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv4 + ;; + i*86v) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv + ;; + i*86sol2) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} + ;; + iris | iris4d) + cpu=mips + vendor=sgi + case $basic_os in + irix*) + ;; + *) + basic_os=irix4 + ;; + esac + ;; + miniframe) + cpu=m68000 + vendor=convergent + ;; + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint + ;; + news-3600 | risc-news) + cpu=mips + vendor=sony + basic_os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) + ;; + ns2*) + basic_os=nextstep2 + ;; + *) + basic_os=nextstep3 + ;; + esac + ;; + np1) + cpu=np1 + vendor=gould + ;; + op50n-* | op60c-*) + cpu=hppa1.1 + vendor=oki + basic_os=proelf + ;; + pa-hitachi) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + pbd) + cpu=sparc + vendor=tti + ;; + pbb) + cpu=m68k + vendor=tti + ;; + pc532) + cpu=ns32k + vendor=pc532 + ;; + pn) + cpu=pn + vendor=gould + ;; + power) + cpu=power + vendor=ibm + ;; + ps2) + cpu=i386 + vendor=ibm + ;; + rm[46]00) + cpu=mips + vendor=siemens + ;; + rtpc | rtpc-*) + cpu=romp + vendor=ibm + ;; + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} + ;; + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks + ;; + tower | tower-32) + cpu=m68k + vendor=ncr + ;; + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu + ;; + w65) + cpu=w65 + vendor=wdc + ;; + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf + ;; + none) + cpu=none + vendor=none + ;; + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine + ;; + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` + ;; + + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read cpu vendor <&2 + exit 1 + ;; + esac + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $vendor in + digital*) + vendor=dec + ;; + commodore*) + vendor=cbm + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if test x$basic_os != x +then + +# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` + ;; + os2-emx) + kernel=os2 + os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` + ;; + nto-qnx*) + kernel=nto + os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` + ;; + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read kernel os <&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) + vendor=acorn + ;; + *-sunos*) + vendor=sun + ;; + *-cnk* | *-aix*) + vendor=ibm + ;; + *-beos*) + vendor=be + ;; + *-hpux*) + vendor=hp + ;; + *-mpeix*) + vendor=hp + ;; + *-hiux*) + vendor=hitachi + ;; + *-unos*) + vendor=crds + ;; + *-dgux*) + vendor=dg + ;; + *-luna*) + vendor=omron + ;; + *-genix*) + vendor=ns + ;; + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) + vendor=ibm + ;; + s390-* | s390x-*) + vendor=ibm + ;; + *-ptx*) + vendor=sequent + ;; + *-tpf*) + vendor=ibm + ;; + *-vxsim* | *-vxworks* | *-windiss*) + vendor=wrs + ;; + *-aux*) + vendor=apple + ;; + *-hms*) + vendor=hitachi + ;; + *-mpw* | *-macos*) + vendor=apple + ;; + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) + vendor=atari + ;; + *-vos*) + vendor=stratus + ;; + esac + ;; +esac + +echo "$cpu-$vendor-${kernel:+$kernel-}$os" +exit + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/xz-5.4.5/build-aux/depcomp b/xz-5.4.5/build-aux/depcomp new file mode 100755 index 000000000..715e34311 --- /dev/null +++ b/xz-5.4.5/build-aux/depcomp @@ -0,0 +1,791 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 1999-2021 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by 'PROGRAMS ARGS'. + object Object file output by 'PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputting dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +# Get the directory component of the given path, and save it in the +# global variables '$dir'. Note that this directory component will +# be either empty or ending with a '/' character. This is deliberate. +set_dir_from () +{ + case $1 in + */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; + *) dir=;; + esac +} + +# Get the suffix-stripped basename of the given path, and save it the +# global variable '$base'. +set_base_from () +{ + base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` +} + +# If no dependency file was actually created by the compiler invocation, +# we still have to create a dummy depfile, to avoid errors with the +# Makefile "include basename.Plo" scheme. +make_dummy_depfile () +{ + echo "#dummy" > "$depfile" +} + +# Factor out some common post-processing of the generated depfile. +# Requires the auxiliary global variable '$tmpdepfile' to be set. +aix_post_process_depfile () +{ + # If the compiler actually managed to produce a dependency file, + # post-process it. + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependency.h'. + # Do two passes, one to just change these to + # $object: dependency.h + # and one to simply output + # dependency.h: + # which is needed to avoid the deleted-header problem. + { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" + sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" + } > "$depfile" + rm -f "$tmpdepfile" + else + make_dummy_depfile + fi +} + +# A tabulation character. +tab=' ' +# A newline character. +nl=' +' +# Character ranges might be problematic outside the C locale. +# These definitions help. +upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ +lower=abcdefghijklmnopqrstuvwxyz +digits=0123456789 +alpha=${upper}${lower} + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Avoid interferences from the environment. +gccflag= dashmflag= + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +cygpath_u="cygpath -u -f -" +if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp +fi + +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + +if test "$depmode" = xlc; then + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. + gccflag=-qmakedep=gcc,-MF + depmode=gcc +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. +## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. +## (see the conditional assignment to $gccflag above). +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). Also, it might not be +## supported by the other compilers which use the 'gcc' depmode. +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The second -e expression handles DOS-style file names with drive + # letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the "deleted header file" problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. +## Some versions of gcc put a space before the ':'. On the theory +## that the space means something, we add a space to the output as +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like '#:fec' to the end of the + # dependency line. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ + | tr "$nl" ' ' >> "$depfile" + echo >> "$depfile" + # The second pass generates a dummy entry for each header file. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" + ;; + +xlc) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts '$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + aix_post_process_depfile + ;; + +tcc) + # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 + # FIXME: That version still under development at the moment of writing. + # Make that this statement remains true also for stable, released + # versions. + # It will wrap lines (doesn't matter whether long or short) with a + # trailing '\', as in: + # + # foo.o : \ + # foo.c \ + # foo.h \ + # + # It will put a trailing '\' even on the last line, and will use leading + # spaces rather than leading tabs (at least since its commit 0394caf7 + # "Emit spaces for -MD"). + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. + # We have to change lines of the first kind to '$object: \'. + sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" + # And for each line of the second kind, we have to emit a 'dep.h:' + # dummy dependency, to avoid the deleted-header problem. + sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" + rm -f "$tmpdepfile" + ;; + +## The order of this option in the case statement is important, since the +## shell code in configure will try each of these formats in the order +## listed in this file. A plain '-MD' option would be understood by many +## compilers, so we must ensure this comes after the gcc and icc options. +pgcc) + # Portland's C compiler understands '-MD'. + # Will always output deps to 'file.d' where file is the root name of the + # source file under compilation, even if file resides in a subdirectory. + # The object file name does not affect the name of the '.d' file. + # pgcc 10.2 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using '\' : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + set_dir_from "$object" + # Use the source, not the object, to determine the base name, since + # that's sadly what pgcc will do too. + set_base_from "$source" + tmpdepfile=$base.d + + # For projects that build the same source file twice into different object + # files, the pgcc approach of using the *source* file root name can cause + # problems in parallel builds. Use a locking strategy to avoid stomping on + # the same $tmpdepfile. + lockdir=$base.d-lock + trap " + echo '$0: caught signal, cleaning up...' >&2 + rmdir '$lockdir' + exit 1 + " 1 2 13 15 + numtries=100 + i=$numtries + while test $i -gt 0; do + # mkdir is a portable test-and-set. + if mkdir "$lockdir" 2>/dev/null; then + # This process acquired the lock. + "$@" -MD + stat=$? + # Release the lock. + rmdir "$lockdir" + break + else + # If the lock is being held by a different process, wait + # until the winning process is done or we timeout. + while test -d "$lockdir" && test $i -gt 0; do + sleep 1 + i=`expr $i - 1` + done + fi + i=`expr $i - 1` + done + trap - 1 2 13 15 + if test $i -le 0; then + echo "$0: failed to acquire lock after $numtries attempts" >&2 + echo "$0: check lockdir '$lockdir'" >&2 + exit 1 + fi + + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" + # Add 'dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in 'foo.d' instead, so we check for that too. + # Subdirectories are respected. + set_dir_from "$object" + set_base_from "$object" + + if test "$libtool" = yes; then + # Libtool generates 2 separate objects for the 2 libraries. These + # two compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir$base.o.d # libtool 1.5 + tmpdepfile2=$dir.libs/$base.o.d # Likewise. + tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + # Same post-processing that is required for AIX mode. + aix_post_process_depfile + ;; + +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/'"$tab"'\1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/'"$tab"'/ + G + p +}' >> "$depfile" + echo >> "$depfile" # make sure the fragment doesn't end with a backslash + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for ':' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. + "$@" $dashmflag | + sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this sed invocation + # correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no eat=no + for arg + do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + if test $eat = yes; then + eat=no + continue + fi + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix=`echo "$object" | sed 's/^.*\././'` + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process the last invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed '1,2d' "$tmpdepfile" \ + | tr ' ' "$nl" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E \ + | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + | sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + IFS=" " + for arg + do + case "$arg" in + -o) + shift + ;; + $object) + shift + ;; + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E 2>/dev/null | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" + echo "$tab" >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvcmsys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/xz-5.4.5/build-aux/install-sh b/xz-5.4.5/build-aux/install-sh new file mode 100755 index 000000000..ec298b537 --- /dev/null +++ b/xz-5.4.5/build-aux/install-sh @@ -0,0 +1,541 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2020-11-14.01; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# 'make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +tab=' ' +nl=' +' +IFS=" $tab$nl" + +# Set DOITPROG to "echo" to test this script. + +doit=${DOITPROG-} +doit_exec=${doit:-exec} + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +# Create dirs (including intermediate dirs) using mode 755. +# This is like GNU 'install' as of coreutils 8.32 (2020). +mkdir_umask=22 + +backupsuffix= +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +is_target_a_directory=possibly + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -p pass -p to $cpprog. + -s $stripprog installed files. + -S SUFFIX attempt to back up existing files, with suffix SUFFIX. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG + +By default, rm is invoked with -f; when overridden with RMPROG, +it's up to you to specify -f if you want it. + +If -S is not specified, no backups are attempted. + +Email bug reports to bug-automake@gnu.org. +Automake home page: https://www.gnu.org/software/automake/ +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -p) cpprog="$cpprog -p";; + + -s) stripcmd=$stripprog;; + + -S) backupsuffix="$2" + shift;; + + -t) + is_target_a_directory=always + dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; + + -T) is_target_a_directory=never;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +# We allow the use of options -d and -T together, by making -d +# take the precedence; this is for compatibility with GNU install. + +if test -n "$dir_arg"; then + if test -n "$dst_arg"; then + echo "$0: target directory not allowed when installing a directory." >&2 + exit 1 + fi +fi + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call 'install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + if test $# -gt 1 || test "$is_target_a_directory" = always; then + if test ! -d "$dst_arg"; then + echo "$0: $dst_arg: Is not a directory." >&2 + exit 1 + fi + fi +fi + +if test -z "$dir_arg"; then + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names problematic for 'test' and other utilities. + case $src in + -* | [=\(\)!]) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + # Don't chown directories that already exist. + if test $dstdir_status = 0; then + chowncmd="" + fi + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + dst=$dst_arg + + # If destination is a directory, append the input filename. + if test -d "$dst"; then + if test "$is_target_a_directory" = never; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dstbase=`basename "$src"` + case $dst in + */) dst=$dst$dstbase;; + *) dst=$dst/$dstbase;; + esac + dstdir_status=0 + else + dstdir=`dirname "$dst"` + test -d "$dstdir" + dstdir_status=$? + fi + fi + + case $dstdir in + */) dstdirslash=$dstdir;; + *) dstdirslash=$dstdir/;; + esac + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + # The $RANDOM variable is not portable (e.g., dash). Use it + # here however when possible just to lower collision chance. + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + + trap ' + ret=$? + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null + exit $ret + ' 0 + + # Because "mkdir -p" follows existing symlinks and we likely work + # directly in world-writeable /tmp, make sure that the '$tmpdir' + # directory is successfully created first before we actually test + # 'mkdir -p'. + if (umask $mkdir_umask && + $mkdirprog $mkdir_mode "$tmpdir" && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + test_tmpdir="$tmpdir/a" + ls_ld_tmpdir=`ls -ld "$test_tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null + fi + trap '' 0;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; + esac + + oIFS=$IFS + IFS=/ + set -f + set fnord $dstdir + shift + set +f + IFS=$oIFS + + prefixes= + + for d + do + test X"$d" = X && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=${dstdirslash}_inst.$$_ + rmtmp=${dstdirslash}_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && + { test -z "$stripcmd" || { + # Create $dsttmp read-write so that cp doesn't create it read-only, + # which would cause strip to fail. + if test -z "$doit"; then + : >"$dsttmp" # No need to fork-exec 'touch'. + else + $doit touch "$dsttmp" + fi + } + } && + $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + set +f && + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # If $backupsuffix is set, and the file being installed + # already exists, attempt a backup. Don't worry if it fails, + # e.g., if mv doesn't support -f. + if test -n "$backupsuffix" && test -f "$dst"; then + $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null + fi + + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/xz-5.4.5/build-aux/ltmain.sh b/xz-5.4.5/build-aux/ltmain.sh new file mode 100644 index 000000000..550669344 --- /dev/null +++ b/xz-5.4.5/build-aux/ltmain.sh @@ -0,0 +1,11437 @@ +#! /usr/bin/env sh +## DO NOT EDIT - This file generated from ./build-aux/ltmain.in +## by inline-source v2019-02-19.15 + +# libtool (GNU libtool) 2.4.7.4-1ec8f-dirty +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit , 1996 + +# Copyright (C) 1996-2019, 2021-2022 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +PROGRAM=libtool +PACKAGE=libtool +VERSION=2.4.7.4-1ec8f-dirty +package_revision=2.4.7.4 + + +## ------ ## +## Usage. ## +## ------ ## + +# Run './libtool --help' for help with using this script from the +# command line. + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# After configure completes, it has a better idea of some of the +# shell tools we need than the defaults used by the functions shared +# with bootstrap, so set those here where they can still be over- +# ridden by the user, but otherwise take precedence. + +: ${AUTOCONF="autoconf"} +: ${AUTOMAKE="automake"} + + +## -------------------------- ## +## Source external libraries. ## +## -------------------------- ## + +# Much of our low-level functionality needs to be sourced from external +# libraries, which are installed to $pkgauxdir. + +# Set a version string for this script. +scriptversion=2019-02-19.15; # UTC + +# General shell script boiler plate, and helper functions. +# Written by Gary V. Vaughan, 2004 + +# This is free software. There is NO warranty; not even for +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Copyright (C) 2004-2019, 2021 Bootstrap Authors +# +# This file is dual licensed under the terms of the MIT license +# , and GPL version 2 or later +# . You must apply one of +# these licenses when using or redistributing this software or any of +# the files within it. See the URLs above, or the file `LICENSE` +# included in the Bootstrap distribution for the full license texts. + +# Please report bugs or propose patches to: +# + + +## ------ ## +## Usage. ## +## ------ ## + +# Evaluate this file near the top of your script to gain access to +# the functions and variables defined here: +# +# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh +# +# If you need to override any of the default environment variable +# settings, do that before evaluating this file. + + +## -------------------- ## +## Shell normalisation. ## +## -------------------- ## + +# Some shells need a little help to be as Bourne compatible as possible. +# Before doing anything else, make sure all that help has been provided! + +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac +fi + +# NLS nuisances: We save the old values in case they are required later. +_G_user_locale= +_G_safe_locale= +for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test set = \"\${$_G_var+set}\"; then + save_$_G_var=\$$_G_var + $_G_var=C + export $_G_var + _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" + _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" + fi" +done +# These NLS vars are set unconditionally (bootstrap issue #24). Unset those +# in case the environment reset is needed later and the $save_* variant is not +# defined (see the code above). +LC_ALL=C +LANGUAGE=C +export LANGUAGE LC_ALL + +# Make sure IFS has a sensible default +sp=' ' +nl=' +' +IFS="$sp $nl" + +# There are apparently some retarded systems that use ';' as a PATH separator! +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# func_unset VAR +# -------------- +# Portably unset VAR. +# In some shells, an 'unset VAR' statement leaves a non-zero return +# status if VAR is already unset, which might be problematic if the +# statement is used at the end of a function (thus poisoning its return +# value) or when 'set -e' is active (causing even a spurious abort of +# the script in this case). +func_unset () +{ + { eval $1=; (eval unset $1) >/dev/null 2>&1 && eval unset $1 || : ; } +} + + +# Make sure CDPATH doesn't cause `cd` commands to output the target dir. +func_unset CDPATH + +# Make sure ${,E,F}GREP behave sanely. +func_unset GREP_OPTIONS + + +## ------------------------- ## +## Locate command utilities. ## +## ------------------------- ## + + +# func_executable_p FILE +# ---------------------- +# Check that FILE is an executable regular file. +func_executable_p () +{ + test -f "$1" && test -x "$1" +} + + +# func_path_progs PROGS_LIST CHECK_FUNC [PATH] +# -------------------------------------------- +# Search for either a program that responds to --version with output +# containing "GNU", or else returned by CHECK_FUNC otherwise, by +# trying all the directories in PATH with each of the elements of +# PROGS_LIST. +# +# CHECK_FUNC should accept the path to a candidate program, and +# set $func_check_prog_result if it truncates its output less than +# $_G_path_prog_max characters. +func_path_progs () +{ + _G_progs_list=$1 + _G_check_func=$2 + _G_PATH=${3-"$PATH"} + + _G_path_prog_max=0 + _G_path_prog_found=false + _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} + for _G_dir in $_G_PATH; do + IFS=$_G_save_IFS + test -z "$_G_dir" && _G_dir=. + for _G_prog_name in $_G_progs_list; do + for _exeext in '' .EXE; do + _G_path_prog=$_G_dir/$_G_prog_name$_exeext + func_executable_p "$_G_path_prog" || continue + case `"$_G_path_prog" --version 2>&1` in + *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; + *) $_G_check_func $_G_path_prog + func_path_progs_result=$func_check_prog_result + ;; + esac + $_G_path_prog_found && break 3 + done + done + done + IFS=$_G_save_IFS + test -z "$func_path_progs_result" && { + echo "no acceptable sed could be found in \$PATH" >&2 + exit 1 + } +} + + +# We want to be able to use the functions in this file before configure +# has figured out where the best binaries are kept, which means we have +# to search for them ourselves - except when the results are already set +# where we skip the searches. + +# Unless the user overrides by setting SED, search the path for either GNU +# sed, or the sed that truncates its output the least. +test -z "$SED" && { + _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for _G_i in 1 2 3 4 5 6 7; do + _G_sed_script=$_G_sed_script$nl$_G_sed_script + done + echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed + _G_sed_script= + + func_check_prog_sed () + { + _G_path_prog=$1 + + _G_count=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo '' >> conftest.nl + "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "sed gsed" func_check_prog_sed "$PATH:/usr/xpg4/bin" + rm -f conftest.sed + SED=$func_path_progs_result +} + + +# Unless the user overrides by setting GREP, search the path for either GNU +# grep, or the grep that truncates its output the least. +test -z "$GREP" && { + func_check_prog_grep () + { + _G_path_prog=$1 + + _G_count=0 + _G_path_prog_max=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo 'GREP' >> conftest.nl + "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "grep ggrep" func_check_prog_grep "$PATH:/usr/xpg4/bin" + GREP=$func_path_progs_result +} + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# All uppercase variable names are used for environment variables. These +# variables can be overridden by the user before calling a script that +# uses them if a suitable command of that name is not already available +# in the command search PATH. + +: ${CP="cp -f"} +: ${ECHO="printf %s\n"} +: ${EGREP="$GREP -E"} +: ${FGREP="$GREP -F"} +: ${LN_S="ln -s"} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} + + +## -------------------- ## +## Useful sed snippets. ## +## -------------------- ## + +sed_dirname='s|/[^/]*$||' +sed_basename='s|^.*/||' + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s|\([`"$\\]\)|\\\1|g' + +# Same as above, but do not quote variable references. +sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' + +# Sed substitution that converts a w32 file name or path +# that contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-'\' parameter expansions in output of sed_double_quote_subst that +# were '\'-ed in input to the same. If an odd number of '\' preceded a +# '$' in input to sed_double_quote_subst, that '$' was protected from +# expansion. Since each input '\' is now two '\'s, look for any number +# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. +_G_bs='\\' +_G_bs2='\\\\' +_G_bs4='\\\\\\\\' +_G_dollar='\$' +sed_double_backslash="\ + s/$_G_bs4/&\\ +/g + s/^$_G_bs2$_G_dollar/$_G_bs&/ + s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g + s/\n//g" + +# require_check_ifs_backslash +# --------------------------- +# Check if we can use backslash as IFS='\' separator, and set +# $check_ifs_backshlash_broken to ':' or 'false'. +require_check_ifs_backslash=func_require_check_ifs_backslash +func_require_check_ifs_backslash () +{ + _G_save_IFS=$IFS + IFS='\' + _G_check_ifs_backshlash='a\\b' + for _G_i in $_G_check_ifs_backshlash + do + case $_G_i in + a) + check_ifs_backshlash_broken=false + ;; + '') + break + ;; + *) + check_ifs_backshlash_broken=: + break + ;; + esac + done + IFS=$_G_save_IFS + require_check_ifs_backslash=: +} + + +## ----------------- ## +## Global variables. ## +## ----------------- ## + +# Except for the global variables explicitly listed below, the following +# functions in the '^func_' namespace, and the '^require_' namespace +# variables initialised in the 'Resource management' section, sourcing +# this file will not pollute your global namespace with anything +# else. There's no portable way to scope variables in Bourne shell +# though, so actually running these functions will sometimes place +# results into a variable named after the function, and often use +# temporary variables in the '^_G_' namespace. If you are careful to +# avoid using those namespaces casually in your sourcing script, things +# should continue to work as you expect. And, of course, you can freely +# overwrite any of the functions or variables defined here before +# calling anything to customize them. + +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +# Allow overriding, eg assuming that you follow the convention of +# putting '$debug_cmd' at the start of all your functions, you can get +# bash to show function call trace with: +# +# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name +debug_cmd=${debug_cmd-":"} +exit_cmd=: + +# By convention, finish your script with: +# +# exit $exit_status +# +# so that you can set exit_status to non-zero if you want to indicate +# something went wrong during execution without actually bailing out at +# the point of failure. +exit_status=$EXIT_SUCCESS + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath=$0 + +# The name of this program. +progname=`$ECHO "$progpath" |$SED "$sed_basename"` + +# Make sure we have an absolute progpath for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` + progdir=`cd "$progdir" && pwd` + progpath=$progdir/$progname + ;; + *) + _G_IFS=$IFS + IFS=${PATH_SEPARATOR-:} + for progdir in $PATH; do + IFS=$_G_IFS + test -x "$progdir/$progname" && break + done + IFS=$_G_IFS + test -n "$progdir" || progdir=`pwd` + progpath=$progdir/$progname + ;; +esac + + +## ----------------- ## +## Standard options. ## +## ----------------- ## + +# The following options affect the operation of the functions defined +# below, and should be set appropriately depending on run-time para- +# meters passed on the command line. + +opt_dry_run=false +opt_quiet=false +opt_verbose=false + +# Categories 'all' and 'none' are always available. Append any others +# you will pass as the first argument to func_warning from your own +# code. +warning_categories= + +# By default, display warnings according to 'opt_warning_types'. Set +# 'warning_func' to ':' to elide all warnings, or func_fatal_error to +# treat the next displayed warning as a fatal error. +warning_func=func_warn_and_continue + +# Set to 'all' to display all warnings, 'none' to suppress all +# warnings, or a space delimited list of some subset of +# 'warning_categories' to display only the listed warnings. +opt_warning_types=all + + +## -------------------- ## +## Resource management. ## +## -------------------- ## + +# This section contains definitions for functions that each ensure a +# particular resource (a file, or a non-empty configuration variable for +# example) is available, and if appropriate to extract default values +# from pertinent package files. Call them using their associated +# 'require_*' variable to ensure that they are executed, at most, once. +# +# It's entirely deliberate that calling these functions can set +# variables that don't obey the namespace limitations obeyed by the rest +# of this file, in order that that they be as useful as possible to +# callers. + + +# require_term_colors +# ------------------- +# Allow display of bold text on terminals that support it. +require_term_colors=func_require_term_colors +func_require_term_colors () +{ + $debug_cmd + + test -t 1 && { + # COLORTERM and USE_ANSI_COLORS environment variables take + # precedence, because most terminfo databases neglect to describe + # whether color sequences are supported. + test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} + + if test 1 = "$USE_ANSI_COLORS"; then + # Standard ANSI escape sequences + tc_reset='' + tc_bold=''; tc_standout='' + tc_red=''; tc_green='' + tc_blue=''; tc_cyan='' + else + # Otherwise trust the terminfo database after all. + test -n "`tput sgr0 2>/dev/null`" && { + tc_reset=`tput sgr0` + test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` + tc_standout=$tc_bold + test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` + test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` + test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` + test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` + test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` + } + fi + } + + require_term_colors=: +} + + +## ----------------- ## +## Function library. ## +## ----------------- ## + +# This section contains a variety of useful functions to call in your +# scripts. Take note of the portable wrappers for features provided by +# some modern shells, which will fall back to slower equivalents on +# less featureful shells. + + +# func_append VAR VALUE +# --------------------- +# Append VALUE onto the existing contents of VAR. + + # We should try to minimise forks, especially on Windows where they are + # unreasonably slow, so skip the feature probes when bash or zsh are + # being used: + if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then + : ${_G_HAVE_ARITH_OP="yes"} + : ${_G_HAVE_XSI_OPS="yes"} + # The += operator was introduced in bash 3.1 + case $BASH_VERSION in + [12].* | 3.0 | 3.0*) ;; + *) + : ${_G_HAVE_PLUSEQ_OP="yes"} + ;; + esac + fi + + # _G_HAVE_PLUSEQ_OP + # Can be empty, in which case the shell is probed, "yes" if += is + # useable or anything else if it does not work. + test -z "$_G_HAVE_PLUSEQ_OP" \ + && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ + && _G_HAVE_PLUSEQ_OP=yes + +if test yes = "$_G_HAVE_PLUSEQ_OP" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_append () + { + $debug_cmd + + eval "$1+=\$2" + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_append () + { + $debug_cmd + + eval "$1=\$$1\$2" + } +fi + + +# func_append_quoted VAR VALUE +# ---------------------------- +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +if test yes = "$_G_HAVE_PLUSEQ_OP"; then + eval 'func_append_quoted () + { + $debug_cmd + + func_quote_arg pretty "$2" + eval "$1+=\\ \$func_quote_arg_result" + }' +else + func_append_quoted () + { + $debug_cmd + + func_quote_arg pretty "$2" + eval "$1=\$$1\\ \$func_quote_arg_result" + } +fi + + +# func_append_uniq VAR VALUE +# -------------------------- +# Append unique VALUE onto the existing contents of VAR, assuming +# entries are delimited by the first character of VALUE. For example: +# +# func_append_uniq options " --another-option option-argument" +# +# will only append to $options if " --another-option option-argument " +# is not already present somewhere in $options already (note spaces at +# each end implied by leading space in second argument). +func_append_uniq () +{ + $debug_cmd + + eval _G_current_value='`$ECHO $'$1'`' + _G_delim=`expr "$2" : '\(.\)'` + + case $_G_delim$_G_current_value$_G_delim in + *"$2$_G_delim"*) ;; + *) func_append "$@" ;; + esac +} + + +# func_arith TERM... +# ------------------ +# Set func_arith_result to the result of evaluating TERMs. + test -z "$_G_HAVE_ARITH_OP" \ + && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ + && _G_HAVE_ARITH_OP=yes + +if test yes = "$_G_HAVE_ARITH_OP"; then + eval 'func_arith () + { + $debug_cmd + + func_arith_result=$(( $* )) + }' +else + func_arith () + { + $debug_cmd + + func_arith_result=`expr "$@"` + } +fi + + +# func_basename FILE +# ------------------ +# Set func_basename_result to FILE with everything up to and including +# the last / stripped. +if test yes = "$_G_HAVE_XSI_OPS"; then + # If this shell supports suffix pattern removal, then use it to avoid + # forking. Hide the definitions single quotes in case the shell chokes + # on unsupported syntax... + _b='func_basename_result=${1##*/}' + _d='case $1 in + */*) func_dirname_result=${1%/*}$2 ;; + * ) func_dirname_result=$3 ;; + esac' + +else + # ...otherwise fall back to using sed. + _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' + _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` + if test "X$func_dirname_result" = "X$1"; then + func_dirname_result=$3 + else + func_append func_dirname_result "$2" + fi' +fi + +eval 'func_basename () +{ + $debug_cmd + + '"$_b"' +}' + + +# func_dirname FILE APPEND NONDIR_REPLACEMENT +# ------------------------------------------- +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +eval 'func_dirname () +{ + $debug_cmd + + '"$_d"' +}' + + +# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT +# -------------------------------------------------------- +# Perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# For efficiency, we do not delegate to the functions above but instead +# duplicate the functionality here. +eval 'func_dirname_and_basename () +{ + $debug_cmd + + '"$_b"' + '"$_d"' +}' + + +# func_echo ARG... +# ---------------- +# Echo program name prefixed message. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_echo_all ARG... +# -------------------- +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + + +# func_echo_infix_1 INFIX ARG... +# ------------------------------ +# Echo program name, followed by INFIX on the first line, with any +# additional lines not showing INFIX. +func_echo_infix_1 () +{ + $debug_cmd + + $require_term_colors + + _G_infix=$1; shift + _G_indent=$_G_infix + _G_prefix="$progname: $_G_infix: " + _G_message=$* + + # Strip color escape sequences before counting printable length + for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" + do + test -n "$_G_tc" && { + _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` + _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` + } + done + _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes + + func_echo_infix_1_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_infix_1_IFS + $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 + _G_prefix=$_G_indent + done + IFS=$func_echo_infix_1_IFS +} + + +# func_error ARG... +# ----------------- +# Echo program name prefixed message to standard error. +func_error () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 +} + + +# func_fatal_error ARG... +# ----------------------- +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + $debug_cmd + + func_error "$*" + exit $EXIT_FAILURE +} + + +# func_grep EXPRESSION FILENAME +# ----------------------------- +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $debug_cmd + + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_len STRING +# --------------- +# Set func_len_result to the length of STRING. STRING may not +# start with a hyphen. + test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_len () + { + $debug_cmd + + func_len_result=${#1} + }' +else + func_len () + { + $debug_cmd + + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` + } +fi + + +# func_mkdir_p DIRECTORY-PATH +# --------------------------- +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + $debug_cmd + + _G_directory_path=$1 + _G_dir_list= + + if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then + + # Protect directory names starting with '-' + case $_G_directory_path in + -*) _G_directory_path=./$_G_directory_path ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$_G_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + _G_dir_list=$_G_directory_path:$_G_dir_list + + # If the last portion added has no slash in it, the list is done + case $_G_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` + done + _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` + + func_mkdir_p_IFS=$IFS; IFS=: + for _G_dir in $_G_dir_list; do + IFS=$func_mkdir_p_IFS + # mkdir can fail with a 'File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$_G_dir" 2>/dev/null || : + done + IFS=$func_mkdir_p_IFS + + # Bail out if we (or some other process) failed to create a directory. + test -d "$_G_directory_path" || \ + func_fatal_error "Failed to create '$1'" + fi +} + + +# func_mktempdir [BASENAME] +# ------------------------- +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, BASENAME is the basename for that directory. +func_mktempdir () +{ + $debug_cmd + + _G_template=${TMPDIR-/tmp}/${1-$progname} + + if test : = "$opt_dry_run"; then + # Return a directory name, but don't create it in dry-run mode + _G_tmpdir=$_G_template-$$ + else + + # If mktemp works, use that first and foremost + _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` + + if test ! -d "$_G_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + _G_tmpdir=$_G_template-${RANDOM-0}$$ + + func_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$_G_tmpdir" + umask $func_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$_G_tmpdir" || \ + func_fatal_error "cannot create temporary directory '$_G_tmpdir'" + fi + + $ECHO "$_G_tmpdir" +} + + +# func_normal_abspath PATH +# ------------------------ +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +func_normal_abspath () +{ + $debug_cmd + + # These SED scripts presuppose an absolute path with a trailing slash. + _G_pathcar='s|^/\([^/]*\).*$|\1|' + _G_pathcdr='s|^/[^/]*||' + _G_removedotparts=':dotsl + s|/\./|/|g + t dotsl + s|/\.$|/|' + _G_collapseslashes='s|/\{1,\}|/|g' + _G_finalslash='s|/*$|/|' + + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` + while :; do + # Processed it all yet? + if test / = "$func_normal_abspath_tpath"; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result"; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + + +# func_notquiet ARG... +# -------------------- +# Echo program name prefixed message only when not in quiet mode. +func_notquiet () +{ + $debug_cmd + + $opt_quiet || func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + + +# func_relative_path SRCDIR DSTDIR +# -------------------------------- +# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. +func_relative_path () +{ + $debug_cmd + + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=$func_dirname_result + if test -z "$func_relative_path_tlibdir"; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test -n "$func_stripname_result"; then + func_append func_relative_path_result "/$func_stripname_result" + fi + + # Normalisation. If bindir is libdir, return '.' else relative path. + if test -n "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + fi + + test -n "$func_relative_path_result" || func_relative_path_result=. + + : +} + + +# func_quote_portable EVAL ARG +# ---------------------------- +# Internal function to portably implement func_quote_arg. Note that we still +# keep attention to performance here so we as much as possible try to avoid +# calling sed binary (so far O(N) complexity as long as func_append is O(1)). +func_quote_portable () +{ + $debug_cmd + + $require_check_ifs_backslash + + func_quote_portable_result=$2 + + # one-time-loop (easy break) + while true + do + if $1; then + func_quote_portable_result=`$ECHO "$2" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` + break + fi + + # Quote for eval. + case $func_quote_portable_result in + *[\\\`\"\$]*) + # Fallback to sed for $func_check_bs_ifs_broken=:, or when the string + # contains the shell wildcard characters. + case $check_ifs_backshlash_broken$func_quote_portable_result in + :*|*[\[\*\?]*) + func_quote_portable_result=`$ECHO "$func_quote_portable_result" \ + | $SED "$sed_quote_subst"` + break + ;; + esac + + func_quote_portable_old_IFS=$IFS + for _G_char in '\' '`' '"' '$' + do + # STATE($1) PREV($2) SEPARATOR($3) + set start "" "" + func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy + IFS=$_G_char + for _G_part in $func_quote_portable_result + do + case $1 in + quote) + func_append func_quote_portable_result "$3$2" + set quote "$_G_part" "\\$_G_char" + ;; + start) + set first "" "" + func_quote_portable_result= + ;; + first) + set quote "$_G_part" "" + ;; + esac + done + done + IFS=$func_quote_portable_old_IFS + ;; + *) ;; + esac + break + done + + func_quote_portable_unquoted_result=$func_quote_portable_result + case $func_quote_portable_result in + # double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # many bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + func_quote_portable_result=\"$func_quote_portable_result\" + ;; + esac +} + + +# func_quotefast_eval ARG +# ----------------------- +# Quote one ARG (internal). This is equivalent to 'func_quote_arg eval ARG', +# but optimized for speed. Result is stored in $func_quotefast_eval. +if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then + printf -v _GL_test_printf_tilde %q '~' + if test '\~' = "$_GL_test_printf_tilde"; then + func_quotefast_eval () + { + printf -v func_quotefast_eval_result %q "$1" + } + else + # Broken older Bash implementations. Make those faster too if possible. + func_quotefast_eval () + { + case $1 in + '~'*) + func_quote_portable false "$1" + func_quotefast_eval_result=$func_quote_portable_result + ;; + *) + printf -v func_quotefast_eval_result %q "$1" + ;; + esac + } + fi +else + func_quotefast_eval () + { + func_quote_portable false "$1" + func_quotefast_eval_result=$func_quote_portable_result + } +fi + + +# func_quote_arg MODEs ARG +# ------------------------ +# Quote one ARG to be evaled later. MODEs argument may contain zero or more +# specifiers listed below separated by ',' character. This function returns two +# values: +# i) func_quote_arg_result +# double-quoted (when needed), suitable for a subsequent eval +# ii) func_quote_arg_unquoted_result +# has all characters that are still active within double +# quotes backslashified. Available only if 'unquoted' is specified. +# +# Available modes: +# ---------------- +# 'eval' (default) +# - escape shell special characters +# 'expand' +# - the same as 'eval'; but do not quote variable references +# 'pretty' +# - request aesthetic output, i.e. '"a b"' instead of 'a\ b'. This might +# be used later in func_quote to get output like: 'echo "a b"' instead +# of 'echo a\ b'. This is slower than default on some shells. +# 'unquoted' +# - produce also $func_quote_arg_unquoted_result which does not contain +# wrapping double-quotes. +# +# Examples for 'func_quote_arg pretty,unquoted string': +# +# string | *_result | *_unquoted_result +# ------------+-----------------------+------------------- +# " | \" | \" +# a b | "a b" | a b +# "a b" | "\"a b\"" | \"a b\" +# * | "*" | * +# z="${x-$y}" | "z=\"\${x-\$y}\"" | z=\"\${x-\$y}\" +# +# Examples for 'func_quote_arg pretty,unquoted,expand string': +# +# string | *_result | *_unquoted_result +# --------------+---------------------+-------------------- +# z="${x-$y}" | "z=\"${x-$y}\"" | z=\"${x-$y}\" +func_quote_arg () +{ + _G_quote_expand=false + case ,$1, in + *,expand,*) + _G_quote_expand=: + ;; + esac + + case ,$1, in + *,pretty,*|*,expand,*|*,unquoted,*) + func_quote_portable $_G_quote_expand "$2" + func_quote_arg_result=$func_quote_portable_result + func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result + ;; + *) + # Faster quote-for-eval for some shells. + func_quotefast_eval "$2" + func_quote_arg_result=$func_quotefast_eval_result + ;; + esac +} + + +# func_quote MODEs ARGs... +# ------------------------ +# Quote all ARGs to be evaled later and join them into single command. See +# func_quote_arg's description for more info. +func_quote () +{ + $debug_cmd + _G_func_quote_mode=$1 ; shift + func_quote_result= + while test 0 -lt $#; do + func_quote_arg "$_G_func_quote_mode" "$1" + if test -n "$func_quote_result"; then + func_append func_quote_result " $func_quote_arg_result" + else + func_append func_quote_result "$func_quote_arg_result" + fi + shift + done +} + + +# func_stripname PREFIX SUFFIX NAME +# --------------------------------- +# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_stripname () + { + $debug_cmd + + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary variable first. + func_stripname_result=$3 + func_stripname_result=${func_stripname_result#"$1"} + func_stripname_result=${func_stripname_result%"$2"} + }' +else + func_stripname () + { + $debug_cmd + + case $2 in + .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; + *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; + esac + } +fi + + +# func_show_eval CMD [FAIL_EXP] +# ----------------------------- +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + func_quote_arg pretty,expand "$_G_cmd" + eval "func_notquiet $func_quote_arg_result" + + $opt_dry_run || { + eval "$_G_cmd" + _G_status=$? + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_show_eval_locale CMD [FAIL_EXP] +# ------------------------------------ +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + $opt_quiet || { + func_quote_arg expand,pretty "$_G_cmd" + eval "func_echo $func_quote_arg_result" + } + + $opt_dry_run || { + eval "$_G_user_locale + $_G_cmd" + _G_status=$? + eval "$_G_safe_locale" + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_tr_sh +# ---------- +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + $debug_cmd + + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_verbose ARG... +# ------------------- +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $debug_cmd + + $opt_verbose && func_echo "$*" + + : +} + + +# func_warn_and_continue ARG... +# ----------------------------- +# Echo program name prefixed warning message to standard error. +func_warn_and_continue () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 +} + + +# func_warning CATEGORY ARG... +# ---------------------------- +# Echo program name prefixed warning message to standard error. Warning +# messages can be filtered according to CATEGORY, where this function +# elides messages where CATEGORY is not listed in the global variable +# 'opt_warning_types'. +func_warning () +{ + $debug_cmd + + # CATEGORY must be in the warning_categories list! + case " $warning_categories " in + *" $1 "*) ;; + *) func_internal_error "invalid warning category '$1'" ;; + esac + + _G_category=$1 + shift + + case " $opt_warning_types " in + *" $_G_category "*) $warning_func ${1+"$@"} ;; + esac +} + + +# func_sort_ver VER1 VER2 +# ----------------------- +# 'sort -V' is not generally available. +# Note this deviates from the version comparison in automake +# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a +# but this should suffice as we won't be specifying old +# version formats or redundant trailing .0 in bootstrap.conf. +# If we did want full compatibility then we should probably +# use m4_version_compare from autoconf. +func_sort_ver () +{ + $debug_cmd + + printf '%s\n%s\n' "$1" "$2" \ + | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n +} + +# func_lt_ver PREV CURR +# --------------------- +# Return true if PREV and CURR are in the correct order according to +# func_sort_ver, otherwise false. Use it like this: +# +# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." +func_lt_ver () +{ + $debug_cmd + + test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: +#! /bin/sh + +# A portable, pluggable option parser for Bourne shell. +# Written by Gary V. Vaughan, 2010 + +# This is free software. There is NO warranty; not even for +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Copyright (C) 2010-2019, 2021 Bootstrap Authors +# +# This file is dual licensed under the terms of the MIT license +# , and GPL version 2 or later +# . You must apply one of +# these licenses when using or redistributing this software or any of +# the files within it. See the URLs above, or the file `LICENSE` +# included in the Bootstrap distribution for the full license texts. + +# Please report bugs or propose patches to: +# + +# Set a version string for this script. +scriptversion=2019-02-19.15; # UTC + + +## ------ ## +## Usage. ## +## ------ ## + +# This file is a library for parsing options in your shell scripts along +# with assorted other useful supporting features that you can make use +# of too. +# +# For the simplest scripts you might need only: +# +# #!/bin/sh +# . relative/path/to/funclib.sh +# . relative/path/to/options-parser +# scriptversion=1.0 +# func_options ${1+"$@"} +# eval set dummy "$func_options_result"; shift +# ...rest of your script... +# +# In order for the '--version' option to work, you will need to have a +# suitably formatted comment like the one at the top of this file +# starting with '# Written by ' and ending with '# Copyright'. +# +# For '-h' and '--help' to work, you will also need a one line +# description of your script's purpose in a comment directly above the +# '# Written by ' line, like the one at the top of this file. +# +# The default options also support '--debug', which will turn on shell +# execution tracing (see the comment above debug_cmd below for another +# use), and '--verbose' and the func_verbose function to allow your script +# to display verbose messages only when your user has specified +# '--verbose'. +# +# After sourcing this file, you can plug in processing for additional +# options by amending the variables from the 'Configuration' section +# below, and following the instructions in the 'Option parsing' +# section further down. + +## -------------- ## +## Configuration. ## +## -------------- ## + +# You should override these variables in your script after sourcing this +# file so that they reflect the customisations you have added to the +# option parser. + +# The usage line for option parsing errors and the start of '-h' and +# '--help' output messages. You can embed shell variables for delayed +# expansion at the time the message is displayed, but you will need to +# quote other shell meta-characters carefully to prevent them being +# expanded when the contents are evaled. +usage='$progpath [OPTION]...' + +# Short help message in response to '-h' and '--help'. Add to this or +# override it after sourcing this library to reflect the full set of +# options your script accepts. +usage_message="\ + --debug enable verbose shell tracing + -W, --warnings=CATEGORY + report the warnings falling in CATEGORY [all] + -v, --verbose verbosely report processing + --version print version information and exit + -h, --help print short or long help message and exit +" + +# Additional text appended to 'usage_message' in response to '--help'. +long_help_message=" +Warning categories include: + 'all' show all warnings + 'none' turn off all the warnings + 'error' warnings are treated as fatal errors" + +# Help message printed before fatal option parsing errors. +fatal_help="Try '\$progname --help' for more information." + + + +## ------------------------- ## +## Hook function management. ## +## ------------------------- ## + +# This section contains functions for adding, removing, and running hooks +# in the main code. A hook is just a list of function names that can be +# run in order later on. + +# func_hookable FUNC_NAME +# ----------------------- +# Declare that FUNC_NAME will run hooks added with +# 'func_add_hook FUNC_NAME ...'. +func_hookable () +{ + $debug_cmd + + func_append hookable_fns " $1" +} + + +# func_add_hook FUNC_NAME HOOK_FUNC +# --------------------------------- +# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must +# first have been declared "hookable" by a call to 'func_hookable'. +func_add_hook () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not accept hook functions." ;; + esac + + eval func_append ${1}_hooks '" $2"' +} + + +# func_remove_hook FUNC_NAME HOOK_FUNC +# ------------------------------------ +# Remove HOOK_FUNC from the list of hook functions to be called by +# FUNC_NAME. +func_remove_hook () +{ + $debug_cmd + + eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' +} + + +# func_propagate_result FUNC_NAME_A FUNC_NAME_B +# --------------------------------------------- +# If the *_result variable of FUNC_NAME_A _is set_, assign its value to +# *_result variable of FUNC_NAME_B. +func_propagate_result () +{ + $debug_cmd + + func_propagate_result_result=: + if eval "test \"\${${1}_result+set}\" = set" + then + eval "${2}_result=\$${1}_result" + else + func_propagate_result_result=false + fi +} + + +# func_run_hooks FUNC_NAME [ARG]... +# --------------------------------- +# Run all hook functions registered to FUNC_NAME. +# It's assumed that the list of hook functions contains nothing more +# than a whitespace-delimited list of legal shell function names, and +# no effort is wasted trying to catch shell meta-characters or preserve +# whitespace. +func_run_hooks () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not support hook functions." ;; + esac + + eval _G_hook_fns=\$$1_hooks; shift + + for _G_hook in $_G_hook_fns; do + func_unset "${_G_hook}_result" + eval $_G_hook '${1+"$@"}' + func_propagate_result $_G_hook func_run_hooks + if $func_propagate_result_result; then + eval set dummy "$func_run_hooks_result"; shift + fi + done +} + + + +## --------------- ## +## Option parsing. ## +## --------------- ## + +# In order to add your own option parsing hooks, you must accept the +# full positional parameter list from your hook function. You may remove +# or edit any options that you action, and then pass back the remaining +# unprocessed options in '_result', escaped +# suitably for 'eval'. +# +# The '_result' variable is automatically unset +# before your hook gets called; for best performance, only set the +# *_result variable when necessary (i.e. don't call the 'func_quote' +# function unnecessarily because it can be an expensive operation on some +# machines). +# +# Like this: +# +# my_options_prep () +# { +# $debug_cmd +# +# # Extend the existing usage message. +# usage_message=$usage_message' +# -s, --silent don'\''t print informational messages +# ' +# # No change in '$@' (ignored completely by this hook). Leave +# # my_options_prep_result variable intact. +# } +# func_add_hook func_options_prep my_options_prep +# +# +# my_silent_option () +# { +# $debug_cmd +# +# args_changed=false +# +# # Note that, for efficiency, we parse as many options as we can +# # recognise in a loop before passing the remainder back to the +# # caller on the first unrecognised argument we encounter. +# while test $# -gt 0; do +# opt=$1; shift +# case $opt in +# --silent|-s) opt_silent=: +# args_changed=: +# ;; +# # Separate non-argument short options: +# -s*) func_split_short_opt "$_G_opt" +# set dummy "$func_split_short_opt_name" \ +# "-$func_split_short_opt_arg" ${1+"$@"} +# shift +# args_changed=: +# ;; +# *) # Make sure the first unrecognised option "$_G_opt" +# # is added back to "$@" in case we need it later, +# # if $args_changed was set to 'true'. +# set dummy "$_G_opt" ${1+"$@"}; shift; break ;; +# esac +# done +# +# # Only call 'func_quote' here if we processed at least one argument. +# if $args_changed; then +# func_quote eval ${1+"$@"} +# my_silent_option_result=$func_quote_result +# fi +# } +# func_add_hook func_parse_options my_silent_option +# +# +# my_option_validation () +# { +# $debug_cmd +# +# $opt_silent && $opt_verbose && func_fatal_help "\ +# '--silent' and '--verbose' options are mutually exclusive." +# } +# func_add_hook func_validate_options my_option_validation +# +# You'll also need to manually amend $usage_message to reflect the extra +# options you parse. It's preferable to append if you can, so that +# multiple option parsing hooks can be added safely. + + +# func_options_finish [ARG]... +# ---------------------------- +# Finishing the option parse loop (call 'func_options' hooks ATM). +func_options_finish () +{ + $debug_cmd + + func_run_hooks func_options ${1+"$@"} + func_propagate_result func_run_hooks func_options_finish +} + + +# func_options [ARG]... +# --------------------- +# All the functions called inside func_options are hookable. See the +# individual implementations for details. +func_hookable func_options +func_options () +{ + $debug_cmd + + _G_options_quoted=false + + for my_func in options_prep parse_options validate_options options_finish + do + func_unset func_${my_func}_result + func_unset func_run_hooks_result + eval func_$my_func '${1+"$@"}' + func_propagate_result func_$my_func func_options + if $func_propagate_result_result; then + eval set dummy "$func_options_result"; shift + _G_options_quoted=: + fi + done + + $_G_options_quoted || { + # As we (func_options) are top-level options-parser function and + # nobody quoted "$@" for us yet, we need to do it explicitly for + # caller. + func_quote eval ${1+"$@"} + func_options_result=$func_quote_result + } +} + + +# func_options_prep [ARG]... +# -------------------------- +# All initialisations required before starting the option parse loop. +# Note that when calling hook functions, we pass through the list of +# positional parameters. If a hook function modifies that list, and +# needs to propagate that back to rest of this script, then the complete +# modified list must be put in 'func_run_hooks_result' before returning. +func_hookable func_options_prep +func_options_prep () +{ + $debug_cmd + + # Option defaults: + opt_verbose=false + opt_warning_types= + + func_run_hooks func_options_prep ${1+"$@"} + func_propagate_result func_run_hooks func_options_prep +} + + +# func_parse_options [ARG]... +# --------------------------- +# The main option parsing loop. +func_hookable func_parse_options +func_parse_options () +{ + $debug_cmd + + _G_parse_options_requote=false + # this just eases exit handling + while test $# -gt 0; do + # Defer to hook functions for initial option parsing, so they + # get priority in the event of reusing an option name. + func_run_hooks func_parse_options ${1+"$@"} + func_propagate_result func_run_hooks func_parse_options + if $func_propagate_result_result; then + eval set dummy "$func_parse_options_result"; shift + # Even though we may have changed "$@", we passed the "$@" array + # down into the hook and it quoted it for us (because we are in + # this if-branch). No need to quote it again. + _G_parse_options_requote=false + fi + + # Break out of the loop if we already parsed every option. + test $# -gt 0 || break + + # We expect that one of the options parsed in this function matches + # and thus we remove _G_opt from "$@" and need to re-quote. + _G_match_parse_options=: + _G_opt=$1 + shift + case $_G_opt in + --debug|-x) debug_cmd='set -x' + func_echo "enabling shell trace mode" >&2 + $debug_cmd + ;; + + --no-warnings|--no-warning|--no-warn) + set dummy --warnings none ${1+"$@"} + shift + ;; + + --warnings|--warning|-W) + if test $# = 0 && func_missing_arg $_G_opt; then + _G_parse_options_requote=: + break + fi + case " $warning_categories $1" in + *" $1 "*) + # trailing space prevents matching last $1 above + func_append_uniq opt_warning_types " $1" + ;; + *all) + opt_warning_types=$warning_categories + ;; + *none) + opt_warning_types=none + warning_func=: + ;; + *error) + opt_warning_types=$warning_categories + warning_func=func_fatal_error + ;; + *) + func_fatal_error \ + "unsupported warning category: '$1'" + ;; + esac + shift + ;; + + --verbose|-v) opt_verbose=: ;; + --version) func_version ;; + -\?|-h) func_usage ;; + --help) func_help ;; + + # Separate optargs to long options (plugins may need this): + --*=*) func_split_equals "$_G_opt" + set dummy "$func_split_equals_lhs" \ + "$func_split_equals_rhs" ${1+"$@"} + shift + ;; + + # Separate optargs to short options: + -W*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-v*|-x*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) _G_parse_options_requote=: ; break ;; + -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift + _G_match_parse_options=false + break + ;; + esac + + if $_G_match_parse_options; then + _G_parse_options_requote=: + fi + done + + if $_G_parse_options_requote; then + # save modified positional parameters for caller + func_quote eval ${1+"$@"} + func_parse_options_result=$func_quote_result + fi +} + + +# func_validate_options [ARG]... +# ------------------------------ +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +func_hookable func_validate_options +func_validate_options () +{ + $debug_cmd + + # Display all warnings if -W was not given. + test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" + + func_run_hooks func_validate_options ${1+"$@"} + func_propagate_result func_run_hooks func_validate_options + + # Bail if the options were screwed! + $exit_cmd $EXIT_FAILURE +} + + + +## ----------------- ## +## Helper functions. ## +## ----------------- ## + +# This section contains the helper functions used by the rest of the +# hookable option parser framework in ascii-betical order. + + +# func_fatal_help ARG... +# ---------------------- +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + eval \$ECHO \""$fatal_help"\" + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + + +# func_help +# --------- +# Echo long help message to standard output and exit. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message" + exit 0 +} + + +# func_missing_arg ARGNAME +# ------------------------ +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + $debug_cmd + + func_error "Missing argument for '$1'." + exit_cmd=exit +} + + +# func_split_equals STRING +# ------------------------ +# Set func_split_equals_lhs and func_split_equals_rhs shell variables +# after splitting STRING at the '=' sign. +test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=${1%%=*} + func_split_equals_rhs=${1#*=} + if test "x$func_split_equals_lhs" = "x$1"; then + func_split_equals_rhs= + fi + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` + func_split_equals_rhs= + test "x$func_split_equals_lhs=" = "x$1" \ + || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` + } +fi #func_split_equals + + +# func_split_short_opt SHORTOPT +# ----------------------------- +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"} + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_name=`expr "x$1" : 'x\(-.\)'` + func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` + } +fi #func_split_short_opt + + +# func_usage +# ---------- +# Echo short help message to standard output and exit. +func_usage () +{ + $debug_cmd + + func_usage_message + $ECHO "Run '$progname --help |${PAGER-more}' for full usage" + exit 0 +} + + +# func_usage_message +# ------------------ +# Echo short help message to standard output. +func_usage_message () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + echo + $SED -n 's|^# || + /^Written by/{ + x;p;x + } + h + /^Written by/q' < "$progpath" + echo + eval \$ECHO \""$usage_message"\" +} + + +# func_version +# ------------ +# Echo version message to standard output and exit. +# The version message is extracted from the calling file's header +# comments, with leading '# ' stripped: +# 1. First display the progname and version +# 2. Followed by the header comment line matching /^# Written by / +# 3. Then a blank line followed by the first following line matching +# /^# Copyright / +# 4. Immediately followed by any lines between the previous matches, +# except lines preceding the intervening completely blank line. +# For example, see the header comments of this file. +func_version () +{ + $debug_cmd + + printf '%s\n' "$progname $scriptversion" + $SED -n ' + /^# Written by /!b + s|^# ||; p; n + + :fwd2blnk + /./ { + n + b fwd2blnk + } + p; n + + :holdwrnt + s|^# || + s|^# *$|| + /^Copyright /!{ + /./H + n + b holdwrnt + } + + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + G + s|\(\n\)\n*|\1|g + p; q' < "$progpath" + + exit $? +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: + +# Set a version string. +scriptversion='(GNU libtool) 2.4.7.4-1ec8f-dirty' + + +# func_echo ARG... +# ---------------- +# Libtool also displays the current mode in messages, so override +# funclib.sh func_echo with this custom definition. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_warning ARG... +# ------------------- +# Libtool warnings are not categorized, so override funclib.sh +# func_warning with this simpler definition. +func_warning () +{ + $debug_cmd + + $warning_func ${1+"$@"} +} + + +## ---------------- ## +## Options parsing. ## +## ---------------- ## + +# Hook in the functions to make sure our own options are parsed during +# the option parsing loop. + +usage='$progpath [OPTION]... [MODE-ARG]...' + +# Short help message in response to '-h'. +usage_message="Options: + --config show all configuration variables + --debug enable verbose shell tracing + -n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --mode=MODE use operation mode MODE + --no-warnings equivalent to '-Wnone' + --preserve-dup-deps don't remove duplicate dependency libraries + --quiet, --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG + -v, --verbose print more informational messages than default + --version print version information + -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] + -h, --help, --help-all print short, long, or detailed help message +" + +# Additional text appended to 'usage_message' in response to '--help'. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message + +MODE must be one of the following: + + clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries + install install libraries or executables + link create a library or an executable + uninstall remove libraries from an installed directory + +MODE-ARGS vary depending on the MODE. When passed as first option, +'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. +Try '$progname --help --mode=MODE' for a more detailed description of MODE. + +When reporting a bug, please describe a test case to reproduce it and +include the following information: + + host-triplet: $host + shell: $SHELL + compiler: $LTCC + compiler flags: $LTCFLAGS + linker: $LD (gnu? $with_gnu_ld) + version: $progname (GNU libtool) 2.4.7.4-1ec8f-dirty + automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` + autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` + +Report bugs to . +GNU libtool home page: . +General help using GNU software: ." + exit 0 +} + + +# func_lo2o OBJECT-NAME +# --------------------- +# Transform OBJECT-NAME from a '.lo' suffix to the platform specific +# object suffix. + +lo2o=s/\\.lo\$/.$objext/ +o2lo=s/\\.$objext\$/.lo/ + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_lo2o () + { + case $1 in + *.lo) func_lo2o_result=${1%.lo}.$objext ;; + * ) func_lo2o_result=$1 ;; + esac + }' + + # func_xform LIBOBJ-OR-SOURCE + # --------------------------- + # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) + # suffix to a '.lo' libtool-object suffix. + eval 'func_xform () + { + func_xform_result=${1%.*}.lo + }' +else + # ...otherwise fall back to using sed. + func_lo2o () + { + func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` + } + + func_xform () + { + func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` + } +fi + + +# func_fatal_configuration ARG... +# ------------------------------- +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func_fatal_error ${1+"$@"} \ + "See the $PACKAGE documentation for more information." \ + "Fatal configuration error." +} + + +# func_config +# ----------- +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' + + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + + # Now print the configurations for the tags. + for tagname in $taglist; do + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done + + exit $? +} + + +# func_features +# ------------- +# Display the features supported by this script. +func_features () +{ + echo "host: $host" + if test yes = "$build_libtool_libs"; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test yes = "$build_old_libs"; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + + exit $? +} + + +# func_enable_tag TAGNAME +# ----------------------- +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname=$1 + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf=/$re_begincf/,/$re_endcf/p + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac + + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + + +# func_check_version_match +# ------------------------ +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# libtool_options_prep [ARG]... +# ----------------------------- +# Preparation for options parsed by libtool. +libtool_options_prep () +{ + $debug_mode + + # Option defaults: + opt_config=false + opt_dlopen= + opt_dry_run=false + opt_help=false + opt_mode= + opt_preserve_dup_deps=false + opt_quiet=false + + nonopt= + preserve_args= + + _G_rc_lt_options_prep=: + + # Shorthand for --mode=foo, only valid as the first argument + case $1 in + clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; + compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; + execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; + finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; + install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; + link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; + uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; + *) + _G_rc_lt_options_prep=false + ;; + esac + + if $_G_rc_lt_options_prep; then + # Pass back the list of options. + func_quote eval ${1+"$@"} + libtool_options_prep_result=$func_quote_result + fi +} +func_add_hook func_options_prep libtool_options_prep + + +# libtool_parse_options [ARG]... +# --------------------------------- +# Provide handling for libtool specific options. +libtool_parse_options () +{ + $debug_cmd + + _G_rc_lt_parse_options=false + + # Perform our own loop to consume as many options as possible in + # each iteration. + while test $# -gt 0; do + _G_match_lt_parse_options=: + _G_opt=$1 + shift + case $_G_opt in + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + + --config) func_config ;; + + --dlopen|-dlopen) + opt_dlopen="${opt_dlopen+$opt_dlopen +}$1" + shift + ;; + + --preserve-dup-deps) + opt_preserve_dup_deps=: ;; + + --features) func_features ;; + + --finish) set dummy --mode finish ${1+"$@"}; shift ;; + + --help) opt_help=: ;; + + --help-all) opt_help=': help-all' ;; + + --mode) test $# = 0 && func_missing_arg $_G_opt && break + opt_mode=$1 + case $1 in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $_G_opt" + exit_cmd=exit + break + ;; + esac + shift + ;; + + --no-silent|--no-quiet) + opt_quiet=false + func_append preserve_args " $_G_opt" + ;; + + --no-warnings|--no-warning|--no-warn) + opt_warning=false + func_append preserve_args " $_G_opt" + ;; + + --no-verbose) + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --silent|--quiet) + opt_quiet=: + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --tag) test $# = 0 && func_missing_arg $_G_opt && break + opt_tag=$1 + func_append preserve_args " $_G_opt $1" + func_enable_tag "$1" + shift + ;; + + --verbose|-v) opt_quiet=false + opt_verbose=: + func_append preserve_args " $_G_opt" + ;; + + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"} ; shift + _G_match_lt_parse_options=false + break + ;; + esac + $_G_match_lt_parse_options && _G_rc_lt_parse_options=: + done + + if $_G_rc_lt_parse_options; then + # save modified positional parameters for caller + func_quote eval ${1+"$@"} + libtool_parse_options_result=$func_quote_result + fi +} +func_add_hook func_parse_options libtool_parse_options + + + +# libtool_validate_options [ARG]... +# --------------------------------- +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +libtool_validate_options () +{ + # save first non-option argument + if test 0 -lt $#; then + nonopt=$1 + shift + fi + + # preserve --debug + test : = "$debug_cmd" || func_append preserve_args " --debug" + + case $host in + # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 + # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 + *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + + $opt_help || { + # Sanity checks first: + func_check_version_match + + test yes != "$build_libtool_libs" \ + && test yes != "$build_old_libs" \ + && func_fatal_configuration "not configured to build any kind of library" + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test execute != "$opt_mode"; then + func_error "unrecognized option '-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help=$help + help="Try '$progname --help --mode=$opt_mode' for more information." + } + + # Pass back the unparsed argument list + func_quote eval ${1+"$@"} + libtool_validate_options_result=$func_quote_result +} +func_add_hook func_validate_options libtool_validate_options + + +# Process options as early as possible so that --help and --version +# can return quickly. +func_options ${1+"$@"} +eval set dummy "$func_options_result"; shift + + + +## ----------- ## +## Main. ## +## ----------- ## + +magic='%%%MAGIC variable%%%' +magic_exe='%%%MAGIC EXE variable%%%' + +# Global variables. +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# func_generated_by_libtool +# True iff stdin has been generated by Libtool. This function is only +# a basic sanity check; it will hardly flush out determined imposters. +func_generated_by_libtool_p () +{ + $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if 'file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case $lalib_p_line in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test yes = "$lalib_p" +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + test -f "$1" && + $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $debug_cmd + + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# 'FILE.' does not work on cygwin managed mounts. +func_source () +{ + $debug_cmd + + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case $lt_sysroot:$1 in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result='='$func_stripname_result + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $debug_cmd + + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "unable to infer tagged configuration" + func_fatal_error "specify a tag with '--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=$1 + if test yes = "$build_libtool_libs"; then + write_lobj=\'$2\' + else + write_lobj=none + fi + + if test yes = "$build_old_libs"; then + write_oldobj=\'$3\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T </dev/null` + if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $debug_cmd + + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result= + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result"; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $debug_cmd + + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $debug_cmd + + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $debug_cmd + + if test -z "$2" && test -n "$1"; then + func_error "Could not determine host file name corresponding to" + func_error " '$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result=$1 + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $debug_cmd + + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " '$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result=$3 + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $debug_cmd + + case $4 in + $1 ) func_to_host_path_result=$3$func_to_host_path_result + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via '$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $debug_cmd + + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $debug_cmd + + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result=$1 +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result=$func_convert_core_msys_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result=$func_convert_core_file_wine_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via '$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $debug_cmd + + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd=func_convert_path_$func_stripname_result + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $debug_cmd + + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result=$1 +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_msys_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_path_wine_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + +# func_dll_def_p FILE +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with _LT_DLL_DEF_P in libtool.m4 +func_dll_def_p () +{ + $debug_cmd + + func_dll_def_p_tmp=`$SED -n \ + -e 's/^[ ]*//' \ + -e '/^\(;.*\)*$/d' \ + -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ + -e q \ + "$1"` + test DEF = "$func_dll_def_p_tmp" +} + + +# func_mode_compile arg... +func_mode_compile () +{ + $debug_cmd + + # Get the compilation command and the source file. + base_compile= + srcfile=$nonopt # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + pie_flag= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg=$arg + arg_mode=normal + ;; + + target ) + libobj=$arg + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + test -n "$libobj" && \ + func_fatal_error "you cannot specify '-o' more than once" + arg_mode=target + continue + ;; + + -pie | -fpie | -fPIE) + func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) + func_append later " $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + lastarg= + save_ifs=$IFS; IFS=, + for arg in $args; do + IFS=$save_ifs + func_append_quoted lastarg "$arg" + done + IFS=$save_ifs + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. + func_append base_compile " $lastarg" + continue + ;; + + *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg=$srcfile + srcfile=$arg + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in + arg) + func_fatal_error "you must specify an argument for -Xcompile" + ;; + target) + func_fatal_error "you must specify a target with '-o'" + ;; + *) + # Get the name of the library object. + test -z "$libobj" && { + func_basename "$srcfile" + libobj=$func_basename_result + } + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + case $libobj in + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) + func_xform "$libobj" + libobj=$func_xform_result + ;; + esac + + case $libobj in + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; + *) + func_fatal_error "cannot determine name of library object from '$libobj'" + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -shared) + test yes = "$build_libtool_libs" \ + || func_fatal_configuration "cannot build a shared library" + build_old_libs=no + continue + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + func_quote_arg pretty "$libobj" + test "X$libobj" != "X$func_quote_arg_result" \ + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && func_warning "libobj name '$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname=$func_basename_result + xdir=$func_dirname_result + lobj=$xdir$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test yes = "$build_old_libs"; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test no = "$compiler_c_o"; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext + lockfile=$output_obj.lock + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test yes = "$need_locks"; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test warn = "$need_locks"; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result + func_quote_arg pretty "$srcfile" + qsrcfile=$func_quote_arg_result + + # Only build a PIC object if we are building libtool libraries. + if test yes = "$build_libtool_libs"; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test no != "$pic_mode"; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test yes = "$suppress_opt"; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test yes = "$build_old_libs"; then + if test yes != "$pic_mode"; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test yes = "$compiler_c_o"; then + func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test no != "$need_locks"; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { + test compile = "$opt_mode" && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only + -shared do not build a '.o' file suitable for static linking + -static only build a '.o' file suitable for static linking + -Wc,FLAG + -Xcompiler FLAG pass FLAG directly to the compiler + +COMPILE-COMMAND is a command to be used in creating a 'standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix '.c' with the +library object suffix, '.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to '-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the '--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the 'install' or 'cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) + -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE use a list of object files found in FILE to specify objects + -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wa,FLAG + -Xassembler FLAG pass linker-specific FLAG directly to the assembler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + +All other options (arguments beginning with '-') are ignored. + +Every other argument is treated as a filename. Files ending in '.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in '.la', then a libtool library is created, +only library objects ('.lo' files) may be specified, and '-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created +using 'ar' and 'ranlib', or on Windows using 'lib'. + +If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode '$opt_mode'" + ;; + esac + + echo + $ECHO "Try '$progname --help' for more information about other modes." +} + +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test : = "$opt_help"; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | $SED -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + $SED '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi + + +# func_mode_execute arg... +func_mode_execute () +{ + $debug_cmd + + # The first argument is the command name. + cmd=$nonopt + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $opt_dlopen; do + test -f "$file" \ + || func_fatal_help "'$file' is not a file" + + dir= + case $file in + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "'$file' was not linked with '-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir=$func_dirname_result + + if test -f "$dir/$objdir/$dlname"; then + func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir=$func_dirname_result + ;; + + *) + func_warning "'-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir=$absdir + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic=$magic + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -* | *.la | *.lo ) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file=$progdir/$program + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file=$progdir/$program + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_append_quoted args "$file" + done + + if $opt_dry_run; then + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + else + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd=\$cmd$args + fi +} + +test execute = "$opt_mode" && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $debug_cmd + + libs= + libdirs= + admincmds= + + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "'$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument '$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and '=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_quiet && exit $EXIT_SUCCESS + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the '-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the '$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the '$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the '$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" + fi + echo + + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi + exit $EXIT_SUCCESS +} + +test finish = "$opt_mode" && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $debug_cmd + + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || + # Allow the use of GNU shtool's install command. + case $nonopt in *shtool*) :;; *) false;; esac + then + # Aesthetically quote it. + func_quote_arg pretty "$nonopt" + install_prog="$func_quote_arg_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_arg pretty "$arg" + func_append install_prog "$func_quote_arg_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=false + stripme= + no_mode=: + for arg + do + arg2= + if test -n "$dest"; then + func_append files " $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=: ;; + -f) + if $install_cp; then :; else + prev=$arg + fi + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + if test X-m = "X$prev" && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_arg pretty "$arg" + func_append install_prog " $func_quote_arg_result" + if test -n "$arg2"; then + func_quote_arg pretty "$arg2" + fi + func_append install_shared_prog " $func_quote_arg_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the '$prev' option requires an argument" + + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_arg pretty "$install_override_mode" + func_append install_shared_prog " -m $func_quote_arg_result" + fi + fi + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=: + if $isdir; then + destdir=$dest + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir=$func_dirname_result + destname=$func_basename_result + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "'$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "'$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + func_append staticlibs " $file" + ;; + + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir=$func_dirname_result + func_append dir "$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + test "$inst_prefix_dir" = "$destdir" && \ + func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking '$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname=$1 + shift + + srcname=$realname + test -n "$relink_command" && srcname=${realname}T + + # Install the shared library and build the symlinks. + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme=$stripme + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme= + ;; + esac + ;; + os2*) + case $realname in + *_dll.a) + tstripme= + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try 'ln -sf' first, because the 'ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib=$destdir/$realname + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name=$func_basename_result + instname=$dir/${name}i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest=$destfile + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to '$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test yes = "$build_old_libs"; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext= + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=.exe + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script '$wrapper'" + + finalize=: + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "'$lib' has not been installed in '$libdir'" + finalize=false + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test no = "$fast_install" && test -n "$relink_command"; then + $opt_dry_run || { + if $finalize; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file=$func_basename_result + outputname=$tmpdir/$file + # Replace the output file specification. + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_quiet || { + func_quote_arg expand,pretty "$relink_command" + eval "func_echo $func_quote_arg_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink '$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file=$outputname + else + func_warning "cannot relink '$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name=$func_basename_result + + # Set up the ranlib parameters. + oldlib=$destdir/$name + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run '$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test install = "$opt_mode" && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $debug_cmd + + my_outputname=$1 + my_originator=$2 + my_pic_p=${3-false} + my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms=${my_outputname}S.c + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist=$output_objdir/$my_outputname.nm + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* External symbol declarations for the compiler. */\ +" + + if test yes = "$dlself"; then + func_verbose "generating symbol list for '$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from '$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols=$output_objdir/$outputname.exp + $opt_dry_run || { + $RM $export_symbols + eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from '$dlprefile'" + func_basename "$dlprefile" + name=$func_basename_result + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename= + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname"; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename=$func_basename_result + else + # no lafile. user explicitly requested -dlpreopen . + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename"; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac + done + + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + func_show_eval '$RM "${nlist}I"' + if test -n "$global_symbol_to_import"; then + eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' + fi + + echo >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +extern LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[];\ +" + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ +static void lt_syminit(void) +{ + LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; + for (; symbol->name; ++symbol) + {" + $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" + echo >> "$output_objdir/$my_dlsyms" "\ + } +}" + fi + echo >> "$output_objdir/$my_dlsyms" "\ +LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{ {\"$my_originator\", (void *) 0}," + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ + {\"@INIT@\", (void *) <_syminit}," + fi + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + $my_pic_p && pic_flag_for_symtable=" $pic_flag" + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) func_append symtab_cflags " $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' + + # Transform the symbol file into the correct name. + symfileobj=$output_objdir/${my_outputname}S.$objext + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for '$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. +func_win32_libid () +{ + $debug_cmd + + win32_libid_type=unknown + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + case $nm_interface in + "MS dumpbin") + if func_cygming_ms_implib_p "$1" || + func_cygming_gnu_implib_p "$1" + then + win32_nmres=import + else + win32_nmres= + fi + ;; + *) + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' + 1,100{ + / I /{ + s|.*|import| + p + q + } + }'` + ;; + esac + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $debug_cmd + + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $debug_cmd + + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive that possess that section. Heuristic: eliminate + # all those that have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $debug_cmd + + if func_cygming_gnu_implib_p "$1"; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1"; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result= + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $debug_cmd + + f_ex_an_ar_dir=$1; shift + f_ex_an_ar_oldlib=$1 + if test yes = "$lock_old_archive_extraction"; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test yes = "$lock_old_archive_extraction"; then + $opt_dry_run || rm -f "$lockfile" + fi + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $debug_cmd + + my_gentop=$1; shift + my_oldlibs=${1+"$@"} + my_oldobjs= + my_xlib= + my_xabs= + my_xdir= + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib=$func_basename_result + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir=$my_gentop/$my_xlib_u + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + func_basename "$darwin_archive" + darwin_base_archive=$func_basename_result + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches; do + func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" + $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" + cd "unfat-$$/$darwin_base_archive-$darwin_arch" + func_extract_an_archive "`pwd`" "$darwin_base_archive" + cd "$darwin_curdir" + $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result=$my_oldobjs +} + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory where it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=${1-no} + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + file=\"\$0\"" + + func_quote_arg pretty "$ECHO" + qECHO=$func_quote_arg_result + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=$qECHO + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ that is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options that match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test yes = "$fast_install"; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + \$ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + # Export our shlibpath_var if we have one. + if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. + func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} + + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat < +#include +#ifdef _MSC_VER +# include +# include +# include +#else +# include +# include +# ifdef __CYGWIN__ +# include +# endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* declarations of non-ANSI functions */ +#if defined __MINGW32__ +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined __CYGWIN__ +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined other_platform || defined ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined _MSC_VER +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +#elif defined __MINGW32__ +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined __CYGWIN__ +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined other platforms ... */ +#endif + +#if defined PATH_MAX +# define LT_PATHMAX PATH_MAX +#elif defined MAXPATHLEN +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +/* path handling portability macros */ +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ + defined __OS2__ +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free (stale); stale = 0; } \ +} while (0) + +#if defined LT_DEBUGWRAPPER +static int lt_debug = 1; +#else +static int lt_debug = 0; +#endif + +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); +char **prepare_spawn (char **argv); +void lt_dump_script (FILE *f); +EOF + + cat <= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + size_t tmp_len; + char *concat_name; + + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined HAVE_DOS_BASED_FILE_SYSTEM + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined HAVE_DOS_BASED_FILE_SYSTEM + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = (size_t) (q - p); + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (STREQ (str, pat)) + *str = '\0'; + } + return str; +} + +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + +static void +lt_error_core (int exit_status, const char *file, + int line, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *file, int line, const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); +} + +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + +void +lt_setenv (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + size_t len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + size_t orig_value_len = strlen (orig_value); + size_t add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + size_t len = strlen (new_value); + while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[--len] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} +EOF +} +# end: func_emit_cwrapperexe_src + +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $debug_cmd + + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + +# func_suncc_cstd_abi +# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! +# Several compiler flags select an ABI that is incompatible with the +# Cstd library. Avoid specifying it if any are in CXXFLAGS. +func_suncc_cstd_abi () +{ + $debug_cmd + + case " $compile_command " in + *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) + suncc_use_cstd_abi=no + ;; + *) + suncc_use_cstd_abi=yes + ;; + esac +} + +# func_mode_link arg... +func_mode_link () +{ + $debug_cmd + + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # what system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll that has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + bindir= + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + os2dllname= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=false + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module=$wl-single_module + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test yes != "$build_libtool_libs" \ + && func_fatal_configuration "cannot build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) + if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg=$1 + shift + func_quote_arg pretty,unquoted "$arg" + qarg=$func_quote_arg_unquoted_result + func_append libtool_args " $func_quote_arg_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + bindir) + bindir=$arg + prev= + continue + ;; + dlfiles|dlprefiles) + $preload || { + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=: + } + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test no = "$dlself"; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test dlprefiles = "$prev"; then + dlself=yes + elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test dlfiles = "$prev"; then + func_append dlfiles " $arg" + else + func_append dlprefiles " $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols=$arg + test -f "$arg" \ + || func_fatal_error "symbol file '$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex=$arg + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir=$arg + prev= + continue + ;; + mllvm) + # Clang does not use LLVM to link, so we can simply discard any + # '-mllvm $arg' options when doing the link step. + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + if test none != "$pic_object"; then + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + fi + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file '$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + os2dllname) + os2dllname=$arg + prev= + continue + ;; + precious_regex) + precious_files_regex=$arg + prev= + continue + ;; + release) + release=-$arg + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test rpath = "$prev"; then + case "$rpath " in + *" $arg "*) ;; + *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) func_append xrpath " $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds=$arg + prev= + continue + ;; + weak) + func_append weak_libs " $arg" + prev= + continue + ;; + xassembler) + func_append compiler_flags " -Xassembler $qarg" + prev= + func_append compile_command " -Xassembler $qarg" + func_append finalize_command " -Xassembler $qarg" + continue + ;; + xcclinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg=$arg + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "'-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -bindir) + prev=bindir + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test X-export-symbols = "X$arg"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between '-L' and '$1'" + else + func_fatal_error "need path for '-L' option" + fi + fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of '$dir'" + dir=$absdir + ;; + esac + case "$deplibs " in + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; + *) + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test X-lc = "X$arg" || test X-lm = "X$arg"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test X-lc = "X$arg" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*) + # Do not include libc due to us having libc/libc_r. + test X-lc = "X$arg" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test X-lc = "X$arg" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test X-lc = "X$arg" && continue + ;; + esac + elif test X-lc_r = "X$arg"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + func_append deplibs " $arg" + continue + ;; + + -mllvm) + prev=mllvm + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + # Solaris ld rejects as of 11.4. Refer to Oracle bug 22985199. + -pthread) + case $host in + *solaris2*) ;; + *) + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + ;; + esac + continue + ;; + -mt|-mthreads|-kthread|-Kthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; + + -multi_module) + single_module=$wl-multi_module + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "'-no-install' is ignored for $host" + func_warning "assuming '-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -os2dllname) + prev=os2dllname + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_arg pretty "$flag" + func_append arg " $func_quote_arg_result" + func_append compiler_flags " $func_quote_arg_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_arg pretty "$flag" + func_append arg " $wl$func_quote_arg_result" + func_append compiler_flags " $wl$func_quote_arg_result" + func_append linker_flags " $func_quote_arg_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xassembler) + prev=xassembler + continue + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result + ;; + + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # -fstack-protector* stack protector flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -specs=* GCC specs files + # -stdlib=* select c++ std lib with clang + # -fsanitize=* Clang/GCC memory and address sanitizer + # -fuse-ld=* Linker select flags for GCC + # -Wa,* Pass flags directly to the assembler + # -Werror, -Werror=* Report (specified) warnings as errors + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ + -specs=*|-fsanitize=*|-fuse-ld=*|-Wa,*|-Werror|-Werror=*) + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result + func_append compile_command " $arg" + func_append finalize_command " $arg" + func_append compiler_flags " $arg" + continue + ;; + + -Z*) + if test os2 = "`expr $host : '.*\(os2\)'`"; then + # OS/2 uses -Zxxx to specify OS/2-specific options + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case $arg in + -Zlinker | -Zstack) + prev=xcompiler + ;; + esac + continue + else + # Otherwise treat like 'Some other compiler flag' below + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result + fi + ;; + + # Some other compiler flag. + -* | +*) + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result + ;; + + *.$objext) + # A standard object. + func_append objs " $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + test none = "$pic_object" || { + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + } + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + func_append deplibs " $arg" + func_append old_deplibs " $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + func_resolve_sysroot "$arg" + if test dlfiles = "$prev"; then + # This library was specified with -dlopen. + func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test dlprefiles = "$prev"; then + # The library was specified with -dlpreopen. + func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else + func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the '$prevarg' option requires an argument" + + if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname=$func_basename_result + libobjs_save=$libobjs + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + # Definition is injected by LT_CONFIG during libtool generation. + func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" + + func_dirname "$output" "/" "" + output_objdir=$func_dirname_result$objdir + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_preserve_dup_deps; then + case "$libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append libs " $deplib" + done + + if test lib = "$linkmode"; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac + func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=false + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test lib,link = "$linkmode,$pass"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs=$tmp_deplibs + fi + + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass"; then + libs=$deplibs + deplibs= + fi + if test prog = "$linkmode"; then + case $pass in + dlopen) libs=$dlfiles ;; + dlpreopen) libs=$dlprefiles ;; + link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + esac + fi + if test lib,dlpreopen = "$linkmode,$pass"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + func_resolve_sysroot "$lib" + case $lib in + *.la) func_source "$func_resolve_sysroot_result" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + func_basename "$deplib" + deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; + *) func_append deplibs " $deplib" ;; + esac + done + done + libs=$dlprefiles + fi + if test dlopen = "$pass"; then + # Collect dlpreopened libraries + save_deplibs=$deplibs + deplibs= + fi + + for deplib in $libs; do + lib= + found=false + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append compiler_flags " $deplib" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test lib != "$linkmode" && test prog != "$linkmode"; then + func_warning "'-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test lib = "$linkmode"; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib=$searchdir/lib$name$search_ext + if test -f "$lib"; then + if test .la = "$search_ext"; then + found=: + else + found=false + fi + break 2 + fi + done + done + if $found; then + # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll=$l + done + if test "X$ll" = "X$old_library"; then # only static version available + found=false + func_dirname "$lib" "" "." + ladir=$func_dirname_result + lib=$ladir/$old_library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + else + # deplib doesn't seem to be a libtool library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + ;; # -l + *.ltframework) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test conv = "$pass" && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + if test scan = "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "'-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test link = "$pass"; then + func_stripname '-R' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; + *.$libext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=false + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=: + fi + ;; + pass_all) + valid_a_lib=: + ;; + esac + if $valid_a_lib; then + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + else + echo + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." + fi + ;; + esac + continue + ;; + prog) + if test link != "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + elif test prog = "$linkmode"; then + if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append newdlfiles " $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=: + continue + ;; + esac # case $deplib + + $found || test -f "$lib" \ + || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "'$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir=$func_dirname_result + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass" || + { test prog != "$linkmode" && test lib != "$linkmode"; }; then + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test conv = "$pass"; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + # It is a libtool convenience library, so add in its objects. + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" + elif test prog != "$linkmode" && test lib != "$linkmode"; then + func_fatal_error "'$lib' is not a convenience library" + fi + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + if test -n "$old_library" && + { test yes = "$prefer_static_libs" || + test built,no = "$prefer_static_libs,$installed"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib=$l + done + fi + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + + # This library was specified with -dlopen. + if test dlopen = "$pass"; then + test -z "$libdir" \ + && func_fatal_error "cannot -dlopen a convenience library: '$lib'" + if test -z "$dlname" || + test yes != "$dlopen_support" || + test no = "$build_libtool_libs" + then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + func_append dlprefiles " $lib $dependency_libs" + else + func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of '$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir=$ladir + fi + ;; + esac + func_basename "$lib" + laname=$func_basename_result + + # Find the relevant object directory and library name. + if test yes = "$installed"; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library '$lib' was moved." + dir=$ladir + absdir=$abs_ladir + libdir=$abs_ladir + else + dir=$lt_sysroot$libdir + absdir=$lt_sysroot$libdir + fi + test yes = "$hardcode_automatic" && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir=$ladir + absdir=$abs_ladir + # Remove this search path later + func_append notinst_path " $abs_ladir" + else + dir=$ladir/$objdir + absdir=$abs_ladir/$objdir + # Remove this search path later + func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test dlpreopen = "$pass"; then + if test -z "$libdir" && test prog = "$linkmode"; then + func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" + fi + case $host in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test lib = "$linkmode"; then + deplibs="$dir/$old_library $deplibs" + elif test prog,link = "$linkmode,$pass"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test prog = "$linkmode" && test link != "$pass"; then + func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=false + if test no != "$link_all_deplibs" || test -z "$library_names" || + test no = "$build_libtool_libs"; then + linkalldeplibs=: + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? + if $linkalldeplibs; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test prog,link = "$linkmode,$pass"; then + if test -n "$library_names" && + { { test no = "$prefer_static_libs" || + test built,yes = "$prefer_static_libs,$installed"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then + # Make sure the rpath contains only unique directories. + case $temp_rpath: in + *"$absdir:"*) ;; + *) func_append temp_rpath "$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if $alldeplibs && + { test pass_all = "$deplibs_check_method" || + { test yes = "$build_libtool_libs" && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test built = "$use_static_libs" && test yes = "$installed"; then + use_static_libs=no + fi + if test -n "$library_names" && + { test no = "$use_static_libs" || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc* | *os2*) + # No point in relinking DLLs because paths are not encoded + func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test no = "$installed"; then + func_append notinst_deplibs " $lib" + need_relink=yes + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule= + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule=$dlpremoduletest + break + fi + done + if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then + echo + if test prog = "$linkmode"; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test lib = "$linkmode" && + test yes = "$hardcode_into_libs"; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname=$1 + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname=$dlname + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc* | *os2*) + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + esac + eval soname=\"$soname_spec\" + else + soname=$realname + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot=$soname + func_basename "$soroot" + soname=$func_basename_result + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from '$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for '$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test prog = "$linkmode" || test relink != "$opt_mode"; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test no = "$hardcode_direct"; then + add=$dir/$linklib + case $host in + *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; + *-*-sysv4*uw2*) add_dir=-L$dir ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir=-L$dir ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we cannot + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library"; then + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" + else + add=$dir/$old_library + fi + elif test -n "$old_library"; then + add=$dir/$old_library + fi + fi + esac + elif test no = "$hardcode_minus_L"; then + case $host in + *-*-sunos*) add_shlibpath=$dir ;; + esac + add_dir=-L$dir + add=-l$name + elif test no = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + relink) + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$dir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$absdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test yes != "$lib_linked"; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test prog = "$linkmode"; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test yes != "$hardcode_direct" && + test yes != "$hardcode_minus_L" && + test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + + if test prog = "$linkmode" || test relink = "$opt_mode"; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$libdir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$libdir + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + add=-l$name + elif test yes = "$hardcode_automatic"; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib"; then + add=$inst_prefix_dir$libdir/$linklib + else + add=$libdir/$linklib + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir=-L$libdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + fi + + if test prog = "$linkmode"; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test prog = "$linkmode"; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test unsupported != "$hardcode_direct"; then + test -n "$old_library" && linklib=$old_library + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test yes = "$build_libtool_libs"; then + # Not a shared library + if test pass_all != "$deplibs_check_method"; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + $ECHO "*** Warning: This system cannot link to static lib archive $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test yes = "$module"; then + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test lib = "$linkmode"; then + if test -n "$dependency_libs" && + { test yes != "$hardcode_into_libs" || + test yes = "$build_old_libs" || + test yes = "$link_static"; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) func_append xrpath " $temp_xrpath";; + esac;; + *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs=$temp_deplibs + fi + + func_append newlib_search_path " $absdir" + # Link against this library + test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi + func_append tmp_libs " $func_resolve_sysroot_result" + done + + if test no != "$link_all_deplibs"; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + path= + case $deplib in + -L*) path=$deplib ;; + *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." + dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of '$dir'" + absdir=$dir + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names"; then + for tmp in $deplibrary_names; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl"; then + depdepl=$absdir/$objdir/$depdepl + darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" + func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" + path= + fi + fi + ;; + *) + path=-L$absdir/$objdir + ;; + esac + else + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "'$deplib' seems to be moved" + + path=-L$absdir + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test link = "$pass"; then + if test prog = "$linkmode"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs=$newdependency_libs + if test dlpreopen = "$pass"; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test dlopen != "$pass"; then + test conv = "$pass" || { + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= + } + + if test prog,link = "$linkmode,$pass"; then + vars="compile_deplibs finalize_deplibs" + else + vars=deplibs + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) func_append tmp_libs " $deplib" ;; + esac + ;; + *) func_append tmp_libs " $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + + # Add Sun CC postdeps if required: + test CXX = "$tagname" && { + case $host_os in + linux*) + case `$CC -V 2>&1 | $SED 5q` in + *Sun\ C*) # Sun C++ 5.9 + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + + solaris*) + func_cc_basename "$CC" + case $func_cc_basename_result in + CC* | sunCC*) + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + esac + } + + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i= + ;; + esac + if test -n "$i"; then + func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test prog = "$linkmode"; then + dlfiles=$newdlfiles + fi + if test prog = "$linkmode" || test lib = "$linkmode"; then + dlprefiles=$newdlprefiles + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "'-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "'-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs=$output + func_append objs "$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form 'libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test no = "$module" \ + && func_fatal_help "libtool library '$output' must begin with 'lib'" + + if test no != "$need_lib_prefix"; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test pass_all != "$deplibs_check_method"; then + func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" + else + echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + func_append libobjs " $objs" + fi + fi + + test no = "$dlself" \ + || func_warning "'-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test 1 -lt "$#" \ + && func_warning "ignoring multiple '-rpath's for a libtool library" + + install_libdir=$1 + + oldlibs= + if test -z "$rpath"; then + if test yes = "$build_libtool_libs"; then + # Building a libtool convenience library. + # Some compilers have problems with a '.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "'-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs=$IFS; IFS=: + set dummy $vinfo 0 0 0 + shift + IFS=$save_ifs + + test -n "$7" && \ + func_fatal_help "too many parameters to '-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major=$1 + number_minor=$2 + number_revision=$3 + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # that has an extra 1 added just for fun + # + case $version_type in + # correct linux to gnu/linux during the next big refactor + darwin|freebsd-elf|linux|midnightbsd-elf|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_revision + ;; + freebsd-aout|qnx|sunos) + current=$number_major + revision=$number_minor + age=0 + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_minor + lt_irix_increment=no + ;; + esac + ;; + no) + current=$1 + revision=$2 + age=$3 + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT '$current' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION '$revision' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE '$age' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE '$age' is greater than the current interface number '$current'" + func_fatal_error "'$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers + case $CC in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; + *) + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + esac + ;; + + freebsd-aout) + major=.$current + versuffix=.$current.$revision + ;; + + freebsd-elf | midnightbsd-elf) + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + irix | nonstopux) + if test no = "$lt_irix_increment"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring=$verstring_prefix$major.$revision + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test 0 -ne "$loop"; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring_prefix$major.$iface:$verstring + done + + # Before this point, $major must not contain '.'. + major=.$major + versuffix=$major.$revision + ;; + + linux) # correct to gnu/linux during the next big refactor + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=.$current.$age.$revision + verstring=$current.$age.$revision + + # Add in all the interfaces that we are compatible with. + loop=$age + while test 0 -ne "$loop"; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring:$iface.0 + done + + # Make executables depend on our current version. + func_append verstring ":$current.0" + ;; + + qnx) + major=.$current + versuffix=.$current + ;; + + sco) + major=.$current + versuffix=.$current + ;; + + sunos) + major=.$current + versuffix=.$current.$revision + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 file systems. + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + + *) + func_fatal_configuration "unknown library version type '$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring=0.0 + ;; + esac + if test no = "$need_version"; then + versuffix= + else + versuffix=.0.0 + fi + fi + + # Remove version info from name if versioning should be avoided + if test yes,no = "$avoid_version,$need_version"; then + major= + versuffix= + verstring= + fi + + # Check to see if the archive will have undefined symbols. + if test yes = "$allow_undefined"; then + if test unsupported = "$allow_undefined_flag"; then + if test yes = "$build_old_libs"; then + func_warning "undefined symbols not allowed in $host shared libraries; building static only" + build_libtool_libs=no + else + func_fatal_error "can't build $host shared library unless -no-undefined is specified" + fi + fi + else + # Don't allow undefined symbols. + allow_undefined_flag=$no_undefined_flag + fi + + fi + + func_generate_dlsyms "$libname" "$libname" : + func_append libobjs " $symfileobj" + test " " = "$libobjs" && libobjs= + + if test relink != "$opt_mode"; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) + if test -n "$precious_files_regex"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + func_append removelist " $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then + func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles=$dlfiles + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) func_append dlfiles " $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles=$dlprefiles + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) func_append dlprefiles " $lib" ;; + esac + done + + if test yes = "$build_libtool_libs"; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test yes = "$build_libtool_need_lc"; then + func_append deplibs " -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release= + versuffix= + major= + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c </dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib=$potent_lib + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | $SED 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; + *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib= + ;; + esac + fi + if test -n "$a_deplib"; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib=$potent_lib # see symlink-check above in file_magic test + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs= + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + for i in $predeps $postdeps; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` + done + fi + case $tmp_deplibs in + *[!\ \ ]*) + echo + if test none = "$deplibs_check_method"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + ;; + esac + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + if test yes = "$droppeddeps"; then + if test yes = "$module"; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test no = "$allow_undefined"; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + deplibs=$new_libs + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test yes = "$build_libtool_libs"; then + # Remove $wl instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac + if test yes = "$hardcode_into_libs"; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath=$finalize_rpath + test relink = "$opt_mode" || rpath=$compile_rpath$rpath + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath=$finalize_shlibpath + test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname=$1 + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname=$realname + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib=$output_objdir/$realname + linknames= + for link + do + func_append linknames " $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols=$output_objdir/$libname.uexp + func_append delfiles " $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + func_dll_def_p "$export_symbols" || { + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols=$export_symbols + export_symbols= + always_export_symbols=yes + } + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs=$IFS; IFS='~' + for cmd1 in $cmds; do + IFS=$save_ifs + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test yes = "$try_normal_branch" \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=$output_objdir/$output_la.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" + func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS=$save_ifs + if test -n "$export_symbols_regex" && test : != "$skipped_export"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test : != "$skipped_export" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + func_append tmp_deplibs " $test_deplib" + ;; + esac + done + deplibs=$tmp_deplibs + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test yes = "$compiler_needs_object" && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test : != "$skipped_export" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + func_basename "$output" + output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then + output=$output_objdir/$output_la.lnkscript + func_verbose "creating GNU ld script: $output" + echo 'INPUT (' > $output + for obj in $save_libobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result + elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then + output=$output_objdir/$output_la.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test yes = "$compiler_needs_object"; then + firstobj="$1 " + shift + fi + for obj + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-$k.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test -z "$objlist" || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test 1 -eq "$k"; then + # The first file doesn't have a previous command to add. + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-$k.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-$k.$objext + objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds$reload_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + func_append delfiles " $output" + + else + output= + fi + + ${skipped_export-false} && { + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + } + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs=$IFS; IFS='~' + for cmd in $concat_cmds; do + IFS=$save_ifs + $opt_quiet || { + func_quote_arg expand,pretty "$cmd" + eval "func_echo $func_quote_arg_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + ${skipped_export-false} && { + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + } + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs=$IFS; IFS='~' + for cmd in $cmds; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + $opt_quiet || { + func_quote_arg expand,pretty "$cmd" + eval "func_echo $func_quote_arg_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test yes = "$module" || test yes = "$export_dynamic"; then + # On all known operating systems, these are identical. + dlname=$soname + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "'-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object '$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj=$output + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # if reload_cmds runs $LD directly, get rid of -Wl from + # whole_archive_flag_spec and hope we can get by with turning comma + # into space. + case $reload_cmds in + *\$LD[\ \$]*) wl= ;; + esac + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags + else + gentop=$output_objdir/${obj}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # If we're not building shared, we need to use non_pic_objs + test yes = "$build_libtool_libs" || libobjs=$non_pic_objects + + # Create the old-style object. + reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs + + output=$obj + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + test yes = "$build_libtool_libs" || { + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + } + + if test -n "$pic_flag" || test default != "$pic_mode"; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output=$libobj + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "'-release' is ignored for programs" + + $preload \ + && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ + && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test CXX = "$tagname"; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + func_append compile_command " $wl-bind_at_load" + func_append finalize_command " $wl-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs=$new_libs + + + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath=$rpath + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath=$rpath + + if test -n "$libobjs" && test yes = "$build_old_libs"; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" false + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=: + case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=false + ;; + *cygwin* | *mingw* ) + test yes = "$build_libtool_libs" || wrappers_required=false + ;; + *) + if test no = "$need_relink" || test yes != "$build_libtool_libs"; then + wrappers_required=false + fi + ;; + esac + $wrappers_required || { + # Replace the output file specification. + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + link_command=$compile_command$compile_rpath + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.$objext"; then + func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' + fi + + exit $exit_status + } + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test yes = "$no_install"; then + # We don't need to create a wrapper script. + link_command=$compile_var$compile_command$compile_rpath + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + exit $EXIT_SUCCESS + fi + + case $hardcode_action,$fast_install in + relink,*) + # Fast installation is not supported + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "'$output' will be relinked during installation" + ;; + *,yes) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + ;; + *,no) + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + ;; + *,needless) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command= + ;; + esac + + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_arg pretty "$var_value" + relink_command="$var=$func_quote_arg_result; export $var; $relink_command" + fi + done + func_quote eval cd "`pwd`" + func_quote_arg pretty,unquoted "($func_quote_result; $relink_command)" + relink_command=$func_quote_arg_unquoted_result + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource=$output_path/$objdir/lt-$output_name.c + cwrapper=$output_path/$output_name.exe + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host"; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + case $build_libtool_libs in + convenience) + oldobjs="$libobjs_save $symfileobj" + addlibs=$convenience + build_libtool_libs=no + ;; + module) + oldobjs=$libobjs_save + addlibs=$old_convenience + build_libtool_libs=no + ;; + *) + oldobjs="$old_deplibs $non_pic_objects" + $preload && test -f "$symfileobj" \ + && func_append oldobjs " $symfileobj" + addlibs=$old_convenience + ;; + esac + + if test -n "$addlibs"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $addlibs + func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + echo "copying selected object files to avoid basename conflicts..." + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase=$func_basename_result + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" + ;; + *) func_append oldobjs " $obj" ;; + esac + done + fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj"; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test -z "$oldobjs"; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test yes = "$build_old_libs" && old_library=$libname.$libext + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_arg pretty,unquoted "$var_value" + relink_command="$var=$func_quote_arg_unquoted_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + func_quote eval cd "`pwd`" + relink_command="($func_quote_result; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + func_quote_arg pretty,unquoted "$relink_command" + relink_command=$func_quote_arg_unquoted_result + if test yes = "$hardcode_automatic"; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test yes = "$installed"; then + if test -z "$install_libdir"; then + break + fi + output=$output_objdir/${outputname}i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + func_basename "$deplib" + name=$func_basename_result + func_resolve_sysroot "$deplib" + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" + ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; + esac + done + dependency_libs=$newdependency_libs + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; + *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done + dlprefiles=$newdlprefiles + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlfiles " $abs" + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlprefiles " $abs" + done + dlprefiles=$newdlprefiles + fi + $RM $output + # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test -n "$bindir"; then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result/$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test no,yes = "$installed,$need_relink"; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +if test link = "$opt_mode" || test relink = "$opt_mode"; then + func_mode_link ${1+"$@"} +fi + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $debug_cmd + + RM=$nonopt + files= + rmforce=false + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + for arg + do + case $arg in + -f) func_append RM " $arg"; rmforce=: ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + for file in $files; do + func_dirname "$file" "" "." + dir=$func_dirname_result + if test . = "$dir"; then + odir=$objdir + else + odir=$dir/$objdir + fi + func_basename "$file" + name=$func_basename_result + test uninstall = "$opt_mode" && odir=$dir + + # Remember odir for removal later, being careful to avoid duplicates + if test clean = "$opt_mode"; then + case " $rmdirs " in + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif $rmforce; then + continue + fi + + rmfiles=$file + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + func_append rmfiles " $odir/$n" + done + test -n "$old_library" && func_append rmfiles " $odir/$old_library" + + case $opt_mode in + clean) + case " $library_names " in + *" $dlname "*) ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && test none != "$pic_object"; then + func_append rmfiles " $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && test none != "$non_pic_object"; then + func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) + if test clean = "$opt_mode"; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + func_append rmfiles " $odir/$name $odir/${name}S.$objext" + if test yes = "$fast_install" && test -n "$relink_command"; then + func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name"; then + func_append rmfiles " $odir/lt-$noexename.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + + # Try to remove the $objdir's in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then + func_mode_uninstall ${1+"$@"} +fi + +test -z "$opt_mode" && { + help=$generic_help + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode '$opt_mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# where we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: diff --git a/xz-5.4.5/build-aux/manconv.sh b/xz-5.4.5/build-aux/manconv.sh new file mode 100644 index 000000000..73e8e3b83 --- /dev/null +++ b/xz-5.4.5/build-aux/manconv.sh @@ -0,0 +1,58 @@ +#!/bin/sh +# +############################################################################### +# +# Wrapper for GNU groff to convert man pages to a few formats +# +# Usage: manconv.sh FORMAT [PAPER_SIZE] < in.1 > out.suffix +# +# FORMAT can be ascii, utf8, ps, or pdf. PAPER_SIZE can be anything that +# groff accepts, e.g. a4 or letter. See groff_font(5). PAPER_SIZE defaults +# to a4 and is used only when FORMAT is ps (PostScript) or pdf. +# +# Multiple man pages can be given at once e.g. to create a single PDF file +# with continuous page numbering. +# +############################################################################### +# +# Author: Lasse Collin +# +# This file has been put into the public domain. +# You can do whatever you want with this file. +# +############################################################################### + +FORMAT=$1 +PAPER=${2-a4} + +# Make PostScript and PDF output more readable: +# - Use 11 pt font instead of the default 10 pt. +# - Use larger paragraph spacing than the default 0.4v (man(7) only). +FONT=11 +PD=0.8 + +SED_PD=" +/^\\.TH /s/\$/\\ +.PD $PD/ +s/^\\.PD\$/.PD $PD/" + +case $FORMAT in + ascii) + groff -t -mandoc -Tascii -P-c | col -bx + ;; + utf8) + groff -t -mandoc -Tutf8 -P-c | col -bx + ;; + ps) + sed "$SED_PD" | groff -dpaper=$PAPER -t -mandoc \ + -rC1 -rS$FONT -Tps -P-p$PAPER + ;; + pdf) + sed "$SED_PD" | groff -dpaper=$PAPER -t -mandoc \ + -rC1 -rS$FONT -Tps -P-p$PAPER | ps2pdf - - + ;; + *) + echo 'Invalid arguments' >&2 + exit 1 + ;; +esac diff --git a/xz-5.4.5/build-aux/missing b/xz-5.4.5/build-aux/missing new file mode 100755 index 000000000..1fe1611f1 --- /dev/null +++ b/xz-5.4.5/build-aux/missing @@ -0,0 +1,215 @@ +#! /bin/sh +# Common wrapper for a few potentially missing GNU programs. + +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 1996-2021 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try '$0 --help' for more information" + exit 1 +fi + +case $1 in + + --is-lightweight) + # Used by our autoconf macros to check whether the available missing + # script is modern enough. + exit 0 + ;; + + --run) + # Back-compat with the calling convention used by older automake. + shift + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due +to PROGRAM being missing or too old. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + +Supported PROGRAM values: + aclocal autoconf autoheader autom4te automake makeinfo + bison yacc flex lex help2man + +Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and +'g' are ignored when checking the name. + +Send bug reports to ." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: unknown '$1' option" + echo 1>&2 "Try '$0 --help' for more information" + exit 1 + ;; + +esac + +# Run the given program, remember its exit status. +"$@"; st=$? + +# If it succeeded, we are done. +test $st -eq 0 && exit 0 + +# Also exit now if we it failed (or wasn't found), and '--version' was +# passed; such an option is passed most likely to detect whether the +# program is present and works. +case $2 in --version|--help) exit $st;; esac + +# Exit code 63 means version mismatch. This often happens when the user +# tries to use an ancient version of a tool on a file that requires a +# minimum version. +if test $st -eq 63; then + msg="probably too old" +elif test $st -eq 127; then + # Program was missing. + msg="missing on your system" +else + # Program was found and executed, but failed. Give up. + exit $st +fi + +perl_URL=https://www.perl.org/ +flex_URL=https://github.com/westes/flex +gnu_software_URL=https://www.gnu.org/software + +program_details () +{ + case $1 in + aclocal|automake) + echo "The '$1' program is part of the GNU Automake package:" + echo "<$gnu_software_URL/automake>" + echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/autoconf>" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + autoconf|autom4te|autoheader) + echo "The '$1' program is part of the GNU Autoconf package:" + echo "<$gnu_software_URL/autoconf/>" + echo "It also requires GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + esac +} + +give_advice () +{ + # Normalize program name to check for. + normalized_program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + + printf '%s\n' "'$1' is $msg." + + configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + case $normalized_program in + autoconf*) + echo "You should only need it if you modified 'configure.ac'," + echo "or m4 files included by it." + program_details 'autoconf' + ;; + autoheader*) + echo "You should only need it if you modified 'acconfig.h' or" + echo "$configure_deps." + program_details 'autoheader' + ;; + automake*) + echo "You should only need it if you modified 'Makefile.am' or" + echo "$configure_deps." + program_details 'automake' + ;; + aclocal*) + echo "You should only need it if you modified 'acinclude.m4' or" + echo "$configure_deps." + program_details 'aclocal' + ;; + autom4te*) + echo "You might have modified some maintainer files that require" + echo "the 'autom4te' program to be rebuilt." + program_details 'autom4te' + ;; + bison*|yacc*) + echo "You should only need it if you modified a '.y' file." + echo "You may want to install the GNU Bison package:" + echo "<$gnu_software_URL/bison/>" + ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; + help2man*) + echo "You should only need it if you modified a dependency" \ + "of a man page." + echo "You may want to install the GNU Help2man package:" + echo "<$gnu_software_URL/help2man/>" + ;; + makeinfo*) + echo "You should only need it if you modified a '.texi' file, or" + echo "any other file indirectly affecting the aspect of the manual." + echo "You might want to install the Texinfo package:" + echo "<$gnu_software_URL/texinfo/>" + echo "The spurious makeinfo call might also be the consequence of" + echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" + echo "want to install GNU make:" + echo "<$gnu_software_URL/make/>" + ;; + *) + echo "You might have modified some files without having the proper" + echo "tools for further handling them. Check the 'README' file, it" + echo "often tells you about the needed prerequisites for installing" + echo "this package. You may also peek at any GNU archive site, in" + echo "case some other package contains this missing '$1' program." + ;; + esac +} + +give_advice "$1" | sed -e '1s/^/WARNING: /' \ + -e '2,$s/^/ /' >&2 + +# Propagate the correct exit status (expected to be 127 for a program +# not found, 63 for a program that failed due to version mismatch). +exit $st + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/xz-5.4.5/build-aux/test-driver b/xz-5.4.5/build-aux/test-driver new file mode 100755 index 000000000..be73b80ad --- /dev/null +++ b/xz-5.4.5/build-aux/test-driver @@ -0,0 +1,153 @@ +#! /bin/sh +# test-driver - basic testsuite driver script. + +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 2011-2021 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +# Make unconditional expansion of undefined variables an error. This +# helps a lot in preventing typo-related bugs. +set -u + +usage_error () +{ + echo "$0: $*" >&2 + print_usage >&2 + exit 2 +} + +print_usage () +{ + cat <"$log_file" +"$@" >>"$log_file" 2>&1 +estatus=$? + +if test $enable_hard_errors = no && test $estatus -eq 99; then + tweaked_estatus=1 +else + tweaked_estatus=$estatus +fi + +case $tweaked_estatus:$expect_failure in + 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; + 0:*) col=$grn res=PASS recheck=no gcopy=no;; + 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; + 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; + *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; + *:*) col=$red res=FAIL recheck=yes gcopy=yes;; +esac + +# Report the test outcome and exit status in the logs, so that one can +# know whether the test passed or failed simply by looking at the '.log' +# file, without the need of also peaking into the corresponding '.trs' +# file (automake bug#11814). +echo "$res $test_name (exit status: $estatus)" >>"$log_file" + +# Report outcome to console. +echo "${col}${res}${std}: $test_name" + +# Register the test result, and other relevant metadata. +echo ":test-result: $res" > $trs_file +echo ":global-test-result: $res" >> $trs_file +echo ":recheck: $recheck" >> $trs_file +echo ":copy-in-global-log: $gcopy" >> $trs_file + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/xz-5.4.5/build-aux/version.sh b/xz-5.4.5/build-aux/version.sh new file mode 100644 index 000000000..f9fcda79f --- /dev/null +++ b/xz-5.4.5/build-aux/version.sh @@ -0,0 +1,24 @@ +#!/bin/sh +# +############################################################################# +# +# Get the version string from version.h and print it out without +# trailing newline. This makes it suitable for use in configure.ac. +# +############################################################################# +# +# Author: Lasse Collin +# +# This file has been put into the public domain. +# You can do whatever you want with this file. +# +############################################################################# + +sed -n 's/LZMA_VERSION_STABILITY_ALPHA/alpha/ + s/LZMA_VERSION_STABILITY_BETA/beta/ + s/LZMA_VERSION_STABILITY_STABLE// + s/^#define LZMA_VERSION_[MPS][AIT][AJNT][A-Z]* //p' \ + src/liblzma/api/lzma/version.h \ + | tr '\n' '|' \ + | sed 's/|/./; s/|/./; s/|//g' \ + | tr -d '\r\n' diff --git a/xz-5.4.5/cmake/remove-ordinals.cmake b/xz-5.4.5/cmake/remove-ordinals.cmake new file mode 100644 index 000000000..96419d522 --- /dev/null +++ b/xz-5.4.5/cmake/remove-ordinals.cmake @@ -0,0 +1,26 @@ +############################################################################# +# +# remove-ordinals.cmake +# +# Removes the ordinal numbers from a DEF file that has been created by +# GNU ld or LLVM lld option --output-def (when creating a Windows DLL). +# This should be equivalent: sed 's/ \+@ *[0-9]\+//' +# +# Usage: +# +# cmake -DINPUT_FILE=infile.def.in \ +# -DOUTPUT_FILE=outfile.def \ +# -P remove-ordinals.cmake +# +############################################################################# +# +# Author: Lasse Collin +# +# This file has been put into the public domain. +# You can do whatever you want with this file. +# +############################################################################# + +file(READ "${INPUT_FILE}" STR) +string(REGEX REPLACE " +@ *[0-9]+" "" STR "${STR}") +file(WRITE "${OUTPUT_FILE}" "${STR}") diff --git a/xz-5.4.5/cmake/tuklib_common.cmake b/xz-5.4.5/cmake/tuklib_common.cmake new file mode 100644 index 000000000..088a3cb1c --- /dev/null +++ b/xz-5.4.5/cmake/tuklib_common.cmake @@ -0,0 +1,49 @@ +# +# tuklib_common.cmake - common functions and macros for tuklib_*.cmake files +# +# Author: Lasse Collin +# +# This file has been put into the public domain. +# You can do whatever you want with this file. +# + +function(tuklib_add_definitions TARGET_OR_ALL DEFINITIONS) + # DEFINITIONS may be an empty string/list but it's fine here. There is + # no need to quote ${DEFINITIONS} as empty arguments are fine here. + if(TARGET_OR_ALL STREQUAL "ALL") + add_compile_definitions(${DEFINITIONS}) + else() + target_compile_definitions("${TARGET_OR_ALL}" PRIVATE ${DEFINITIONS}) + endif() +endfunction() + +function(tuklib_add_definition_if TARGET_OR_ALL VAR) + if(${VAR}) + tuklib_add_definitions("${TARGET_OR_ALL}" "${VAR}") + endif() +endfunction() + +# This is an over-simplified version of AC_USE_SYSTEM_EXTENSIONS in Autoconf +# or gl_USE_SYSTEM_EXTENSIONS in gnulib. +macro(tuklib_use_system_extensions TARGET_OR_ALL) + if(NOT WIN32) + # FIXME? The Solaris-specific __EXTENSIONS__ should be conditional + # even on Solaris. See gnulib: git log m4/extensions.m4. + # FIXME? gnulib and autoconf.git has lots of new stuff. + tuklib_add_definitions("${TARGET_OR_ALL}" + _GNU_SOURCE + __EXTENSIONS__ + _POSIX_PTHREAD_SEMANTICS + _TANDEM_SOURCE + _ALL_SOURCE + ) + + list(APPEND CMAKE_REQUIRED_DEFINITIONS + -D_GNU_SOURCE + -D__EXTENSIONS__ + -D_POSIX_PTHREAD_SEMANTICS + -D_TANDEM_SOURCE + -D_ALL_SOURCE + ) + endif() +endmacro() diff --git a/xz-5.4.5/cmake/tuklib_cpucores.cmake b/xz-5.4.5/cmake/tuklib_cpucores.cmake new file mode 100644 index 000000000..ea16e4279 --- /dev/null +++ b/xz-5.4.5/cmake/tuklib_cpucores.cmake @@ -0,0 +1,180 @@ +# +# tuklib_cpucores.cmake - see tuklib_cpucores.m4 for description and comments +# +# Author: Lasse Collin +# +# This file has been put into the public domain. +# You can do whatever you want with this file. +# + +include("${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake") +include(CheckCSourceCompiles) +include(CheckIncludeFile) + +function(tuklib_cpucores_internal_check) + if(WIN32 OR CYGWIN) + # Nothing to do, the tuklib_cpucores.c handles it. + set(TUKLIB_CPUCORES_DEFINITIONS "" CACHE INTERNAL "") + return() + endif() + + # glibc-based systems (GNU/Linux and GNU/kFreeBSD) have + # sched_getaffinity(). The CPU_COUNT() macro was added in glibc 2.9. + # glibc 2.9 is old enough that if someone uses the code on older glibc, + # the fallback to sysconf() should be good enough. + # + # NOTE: This required that _GNU_SOURCE is defined. We assume that whatever + # feature test macros the caller wants to use are already set in + # CMAKE_REQUIRED_DEFINES and in the target defines. + check_c_source_compiles(" + #include + int main(void) + { + cpu_set_t cpu_mask; + sched_getaffinity(0, sizeof(cpu_mask), &cpu_mask); + return CPU_COUNT(&cpu_mask); + } + " + TUKLIB_CPUCORES_SCHED_GETAFFINITY) + if(TUKLIB_CPUCORES_SCHED_GETAFFINITY) + set(TUKLIB_CPUCORES_DEFINITIONS + "TUKLIB_CPUCORES_SCHED_GETAFFINITY" + CACHE INTERNAL "") + return() + endif() + + # FreeBSD has both cpuset and sysctl. Look for cpuset first because + # it's a better approach. + # + # This test would match on GNU/kFreeBSD too but it would require + # -lfreebsd-glue when linking and thus in the current form this would + # fail on GNU/kFreeBSD. The above test for sched_getaffinity() matches + # on GNU/kFreeBSD so the test below should never run on that OS. + check_c_source_compiles(" + #include + #include + int main(void) + { + cpuset_t set; + cpuset_getaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID, -1, + sizeof(set), &set); + return 0; + } + " + TUKLIB_CPUCORES_CPUSET) + if(TUKLIB_CPUCORES_CPUSET) + set(TUKLIB_CPUCORES_DEFINITIONS "HAVE_PARAM_H;TUKLIB_CPUCORES_CPUSET" + CACHE INTERNAL "") + return() + endif() + + # On OS/2, both sysconf() and sysctl() pass the tests in this file, + # but only sysctl() works. On QNX it's the opposite: only sysconf() works + # (although it assumes that _POSIX_SOURCE, _XOPEN_SOURCE, and + # _POSIX_C_SOURCE are undefined or alternatively _QNX_SOURCE is defined). + # + # We test sysctl() first and intentionally break the sysctl() test on QNX + # so that sysctl() is never used on QNX. + check_include_file(sys/param.h HAVE_SYS_PARAM_H) + if(HAVE_SYS_PARAM_H) + list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_PARAM_H) + endif() + check_c_source_compiles(" + #ifdef __QNX__ + compile error + #endif + #ifdef HAVE_SYS_PARAM_H + # include + #endif + #include + int main(void) + { + #ifdef HW_NCPUONLINE + /* This is preferred on OpenBSD, see tuklib_cpucores.c. */ + int name[2] = { CTL_HW, HW_NCPUONLINE }; + #else + int name[2] = { CTL_HW, HW_NCPU }; + #endif + int cpus; + size_t cpus_size = sizeof(cpus); + sysctl(name, 2, &cpus, &cpus_size, NULL, 0); + return 0; + } + " + TUKLIB_CPUCORES_SYSCTL) + if(TUKLIB_CPUCORES_SYSCTL) + if(HAVE_SYS_PARAM_H) + set(TUKLIB_CPUCORES_DEFINITIONS + "HAVE_PARAM_H;TUKLIB_CPUCORES_SYSCTL" + CACHE INTERNAL "") + else() + set(TUKLIB_CPUCORES_DEFINITIONS + "TUKLIB_CPUCORES_SYSCTL" + CACHE INTERNAL "") + endif() + return() + endif() + + # Many platforms support sysconf(). + check_c_source_compiles(" + #include + int main(void) + { + long i; + #ifdef _SC_NPROCESSORS_ONLN + /* Many systems using sysconf() */ + i = sysconf(_SC_NPROCESSORS_ONLN); + #else + /* IRIX */ + i = sysconf(_SC_NPROC_ONLN); + #endif + return 0; + } + " + TUKLIB_CPUCORES_SYSCONF) + if(TUKLIB_CPUCORES_SYSCONF) + set(TUKLIB_CPUCORES_DEFINITIONS "TUKLIB_CPUCORES_SYSCONF" + CACHE INTERNAL "") + return() + endif() + + # HP-UX + check_c_source_compiles(" + #include + #include + int main(void) + { + struct pst_dynamic pst; + pstat_getdynamic(&pst, sizeof(pst), 1, 0); + (void)pst.psd_proc_cnt; + return 0; + } + " + TUKLIB_CPUCORES_PSTAT_GETDYNAMIC) + if(TUKLIB_CPUCORES_PSTAT_GETDYNAMIC) + set(TUKLIB_CPUCORES_DEFINITIONS "TUKLIB_CPUCORES_PSTAT_GETDYNAMIC" + CACHE INTERNAL "") + return() + endif() +endfunction() + +function(tuklib_cpucores TARGET_OR_ALL) + if(NOT DEFINED TUKLIB_CPUCORES_FOUND) + message(STATUS + "Checking how to detect the number of available CPU cores") + tuklib_cpucores_internal_check() + + if(DEFINED TUKLIB_CPUCORES_DEFINITIONS) + set(TUKLIB_CPUCORES_FOUND 1 CACHE INTERNAL "") + else() + set(TUKLIB_CPUCORES_FOUND 0 CACHE INTERNAL "") + message(WARNING + "No method to detect the number of CPU cores was found") + endif() + endif() + + if(TUKLIB_CPUCORES_FOUND) + tuklib_add_definitions("${TARGET_OR_ALL}" + "${TUKLIB_CPUCORES_DEFINITIONS}") + endif() +endfunction() diff --git a/xz-5.4.5/cmake/tuklib_integer.cmake b/xz-5.4.5/cmake/tuklib_integer.cmake new file mode 100644 index 000000000..949d2d9fb --- /dev/null +++ b/xz-5.4.5/cmake/tuklib_integer.cmake @@ -0,0 +1,101 @@ +# +# tuklib_integer.cmake - see tuklib_integer.m4 for description and comments +# +# Author: Lasse Collin +# +# This file has been put into the public domain. +# You can do whatever you want with this file. +# + +include("${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake") +include(TestBigEndian) +include(CheckCSourceCompiles) +include(CheckIncludeFile) +include(CheckSymbolExists) + +function(tuklib_integer TARGET_OR_ALL) + # Check for endianness. Unlike the Autoconf's AC_C_BIGENDIAN, this doesn't + # support Apple universal binaries. The CMake module will leave the + # variable unset so we can catch that situation here instead of continuing + # as if we were little endian. + test_big_endian(WORDS_BIGENDIAN) + if(NOT DEFINED WORDS_BIGENDIAN) + message(FATAL_ERROR "Cannot determine endianness") + endif() + tuklib_add_definition_if("${TARGET_OR_ALL}" WORDS_BIGENDIAN) + + # Look for a byteswapping method. + check_c_source_compiles(" + int main(void) + { + __builtin_bswap16(1); + __builtin_bswap32(1); + __builtin_bswap64(1); + return 0; + } + " + HAVE___BUILTIN_BSWAPXX) + if(HAVE___BUILTIN_BSWAPXX) + tuklib_add_definitions("${TARGET_OR_ALL}" HAVE___BUILTIN_BSWAPXX) + else() + check_include_file(byteswap.h HAVE_BYTESWAP_H) + if(HAVE_BYTESWAP_H) + tuklib_add_definitions("${TARGET_OR_ALL}" HAVE_BYTESWAP_H) + check_symbol_exists(bswap_16 byteswap.h HAVE_BSWAP_16) + tuklib_add_definition_if("${TARGET_OR_ALL}" HAVE_BSWAP_16) + check_symbol_exists(bswap_32 byteswap.h HAVE_BSWAP_32) + tuklib_add_definition_if("${TARGET_OR_ALL}" HAVE_BSWAP_32) + check_symbol_exists(bswap_64 byteswap.h HAVE_BSWAP_64) + tuklib_add_definition_if("${TARGET_OR_ALL}" HAVE_BSWAP_64) + else() + check_include_file(sys/endian.h HAVE_SYS_ENDIAN_H) + if(HAVE_SYS_ENDIAN_H) + tuklib_add_definitions("${TARGET_OR_ALL}" HAVE_SYS_ENDIAN_H) + else() + check_include_file(sys/byteorder.h HAVE_SYS_BYTEORDER_H) + tuklib_add_definition_if("${TARGET_OR_ALL}" + HAVE_SYS_BYTEORDER_H) + endif() + endif() + endif() + + # Unaligned access is fast on x86(-64), big endian PowerPC, and usually on + # 32/64-bit ARM too. There are others too and ARM could be a false match. + # + # Guess the default value for the option. + # CMake's ability to give info about the target arch seems bad. + # The the same arch can have different name depending on the OS. + # + # FIXME: The regex is based on guessing, not on factual information! + # + # NOTE: Compared to the Autoconf test, this lacks the GCC/Clang test + # on ARM and always assumes that unaligned is fast on ARM. + set(FAST_UNALIGNED_GUESS OFF) + if(CMAKE_SYSTEM_PROCESSOR MATCHES + "[Xx3456]86|^[Xx]64|^[Aa][Mm][Dd]64|^[Aa][Rr][Mm]|^aarch|^powerpc|^ppc") + if(NOT WORDS_BIGENDIAN OR + NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc|^ppc") + set(FAST_UNALIGNED_GUESS ON) + endif() + endif() + option(TUKLIB_FAST_UNALIGNED_ACCESS + "Enable if the system supports *fast* unaligned memory access \ +with 16-bit, 32-bit, and 64-bit integers." + "${FAST_UNALIGNED_GUESS}") + tuklib_add_definition_if("${TARGET_OR_ALL}" TUKLIB_FAST_UNALIGNED_ACCESS) + + # Unsafe type punning: + option(TUKLIB_USE_UNSAFE_TYPE_PUNNING + "This introduces strict aliasing violations and \ +may result in broken code. However, this might improve performance \ +in some cases, especially with old compilers \ +(e.g. GCC 3 and early 4.x on x86, GCC < 6 on ARMv6 and ARMv7)." + OFF) + tuklib_add_definition_if("${TARGET_OR_ALL}" TUKLIB_USE_UNSAFE_TYPE_PUNNING) + + # Check for GCC/Clang __builtin_assume_aligned(). + check_c_source_compiles( + "int main(void) { __builtin_assume_aligned(\"\", 1); return 0; }" + HAVE___BUILTIN_ASSUME_ALIGNED) + tuklib_add_definition_if("${TARGET_OR_ALL}" HAVE___BUILTIN_ASSUME_ALIGNED) +endfunction() diff --git a/xz-5.4.5/cmake/tuklib_large_file_support.cmake b/xz-5.4.5/cmake/tuklib_large_file_support.cmake new file mode 100644 index 000000000..0800faa2a --- /dev/null +++ b/xz-5.4.5/cmake/tuklib_large_file_support.cmake @@ -0,0 +1,52 @@ +# +# tuklib_large_file_support.cmake +# +# If off_t is less than 64 bits by default and -D_FILE_OFFSET_BITS=64 +# makes off_t become 64-bit, the CMake option LARGE_FILE_SUPPORT is +# provided (ON by default) and -D_FILE_OFFSET_BITS=64 is added to +# the compile definitions if LARGE_FILE_SUPPORT is ON. +# +# Author: Lasse Collin +# +# This file has been put into the public domain. +# You can do whatever you want with this file. +# + +include("${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake") +include(CheckCSourceCompiles) + +function(tuklib_large_file_support TARGET_OR_ALL) + # MSVC must be handled specially in the C code. + if(MSVC) + return() + endif() + + set(TUKLIB_LARGE_FILE_SUPPORT_TEST + "#include + int foo[sizeof(off_t) >= 8 ? 1 : -1]; + int main(void) { return 0; }") + + check_c_source_compiles("${TUKLIB_LARGE_FILE_SUPPORT_TEST}" + TUKLIB_LARGE_FILE_SUPPORT_BY_DEFAULT) + + if(NOT TUKLIB_LARGE_FILE_SUPPORT_BY_DEFAULT) + cmake_push_check_state() + # This needs -D. + list(APPEND CMAKE_REQUIRED_DEFINITIONS "-D_FILE_OFFSET_BITS=64") + check_c_source_compiles("${TUKLIB_LARGE_FILE_SUPPORT_TEST}" + TUKLIB_LARGE_FILE_SUPPORT_WITH_FOB64) + cmake_pop_check_state() + endif() + + if(TUKLIB_LARGE_FILE_SUPPORT_WITH_FOB64) + # Show the option only when _FILE_OFFSET_BITS=64 affects sizeof(off_t). + option(LARGE_FILE_SUPPORT + "Use -D_FILE_OFFSET_BITS=64 to support files larger than 2 GiB." + ON) + + if(LARGE_FILE_SUPPORT) + # This must not use -D. + tuklib_add_definitions("${TARGET_OR_ALL}" "_FILE_OFFSET_BITS=64") + endif() + endif() +endfunction() diff --git a/xz-5.4.5/cmake/tuklib_mbstr.cmake b/xz-5.4.5/cmake/tuklib_mbstr.cmake new file mode 100644 index 000000000..e073be6a6 --- /dev/null +++ b/xz-5.4.5/cmake/tuklib_mbstr.cmake @@ -0,0 +1,20 @@ +# +# tuklib_mbstr.cmake - see tuklib_mbstr.m4 for description and comments +# +# Author: Lasse Collin +# +# This file has been put into the public domain. +# You can do whatever you want with this file. +# + +include("${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake") +include(CheckSymbolExists) + +function(tuklib_mbstr TARGET_OR_ALL) + check_symbol_exists(mbrtowc wchar.h HAVE_MBRTOWC) + tuklib_add_definition_if("${TARGET_OR_ALL}" HAVE_MBRTOWC) + + # NOTE: wcwidth() requires _GNU_SOURCE or _XOPEN_SOURCE on GNU/Linux. + check_symbol_exists(wcwidth wchar.h HAVE_WCWIDTH) + tuklib_add_definition_if("${TARGET_OR_ALL}" HAVE_WCWIDTH) +endfunction() diff --git a/xz-5.4.5/cmake/tuklib_physmem.cmake b/xz-5.4.5/cmake/tuklib_physmem.cmake new file mode 100644 index 000000000..f5ed88897 --- /dev/null +++ b/xz-5.4.5/cmake/tuklib_physmem.cmake @@ -0,0 +1,150 @@ +# +# tuklib_physmem.cmake - see tuklib_physmem.m4 for description and comments +# +# NOTE: Compared tuklib_physmem.m4, this lacks support for Tru64, IRIX, and +# Linux sysinfo() (usually sysconf() is used on GNU/Linux). +# +# Author: Lasse Collin +# +# This file has been put into the public domain. +# You can do whatever you want with this file. +# + +include("${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake") +include(CheckCSourceCompiles) +include(CheckIncludeFile) + +function(tuklib_physmem_internal_check) + # Shortcut on Windows: + if(WIN32 OR CYGWIN) + # Nothing to do, the tuklib_physmem.c handles it. + set(TUKLIB_PHYSMEM_DEFINITIONS "" CACHE INTERNAL "") + return() + endif() + + # Full check for special cases: + check_c_source_compiles(" + #if defined(_WIN32) || defined(__CYGWIN__) || defined(__OS2__) \ + || defined(__DJGPP__) || defined(__VMS) \ + || defined(AMIGA) || defined(__AROS__) || defined(__QNX__) + int main(void) { return 0; } + #else + compile error + #endif + " + TUKLIB_PHYSMEM_SPECIAL) + if(TUKLIB_PHYSMEM_SPECIAL) + # Nothing to do, the tuklib_physmem.c handles it. + set(TUKLIB_PHYSMEM_DEFINITIONS "" CACHE INTERNAL "") + return() + endif() + + # Look for AIX-specific solution before sysconf(), because the test + # for sysconf() will pass on AIX but won't actually work + # (sysconf(_SC_PHYS_PAGES) compiles but always returns -1 on AIX). + check_c_source_compiles(" + #include + int main(void) + { + (void)_system_configuration.physmem; + return 0; + } + " + TUKLIB_PHYSMEM_AIX) + if(TUKLIB_PHYSMEM_AIX) + set(TUKLIB_PHYSMEM_DEFINITIONS "TUKLIB_PHYSMEM_AIX" CACHE INTERNAL "") + return() + endif() + + # sysconf() + check_c_source_compiles(" + #include + int main(void) + { + long i; + i = sysconf(_SC_PAGESIZE); + i = sysconf(_SC_PHYS_PAGES); + return 0; + } + " + TUKLIB_PHYSMEM_SYSCONF) + if(TUKLIB_PHYSMEM_SYSCONF) + set(TUKLIB_PHYSMEM_DEFINITIONS "TUKLIB_PHYSMEM_SYSCONF" + CACHE INTERNAL "") + return() + endif() + + # sysctl() + check_include_file(sys/param.h HAVE_SYS_PARAM_H) + if(HAVE_SYS_PARAM_H) + list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_PARAM_H) + endif() + + check_c_source_compiles(" + #ifdef HAVE_SYS_PARAM_H + # include + #endif + #include + int main(void) + { + int name[2] = { CTL_HW, HW_PHYSMEM }; + unsigned long mem; + size_t mem_ptr_size = sizeof(mem); + sysctl(name, 2, &mem, &mem_ptr_size, NULL, 0); + return 0; + } + " + TUKLIB_PHYSMEM_SYSCTL) + if(TUKLIB_PHYSMEM_SYSCTL) + if(HAVE_SYS_PARAM_H) + set(TUKLIB_PHYSMEM_DEFINITIONS + "HAVE_PARAM_H;TUKLIB_PHYSMEM_SYSCTL" + CACHE INTERNAL "") + else() + set(TUKLIB_PHYSMEM_DEFINITIONS + "TUKLIB_PHYSMEM_SYSCTL" + CACHE INTERNAL "") + endif() + return() + endif() + + # HP-UX + check_c_source_compiles(" + #include + #include + int main(void) + { + struct pst_static pst; + pstat_getstatic(&pst, sizeof(pst), 1, 0); + (void)pst.physical_memory; + (void)pst.page_size; + return 0; + } + " + TUKLIB_PHYSMEM_PSTAT_GETSTATIC) + if(TUKLIB_PHYSMEM_PSTAT_GETSTATIC) + set(TUKLIB_PHYSMEM_DEFINITIONS "TUKLIB_PHYSMEM_PSTAT_GETSTATIC" + CACHE INTERNAL "") + return() + endif() +endfunction() + +function(tuklib_physmem TARGET_OR_ALL) + if(NOT DEFINED TUKLIB_PHYSMEM_FOUND) + message(STATUS "Checking how to detect the amount of physical memory") + tuklib_physmem_internal_check() + + if(DEFINED TUKLIB_PHYSMEM_DEFINITIONS) + set(TUKLIB_PHYSMEM_FOUND 1 CACHE INTERNAL "") + else() + set(TUKLIB_PHYSMEM_FOUND 0 CACHE INTERNAL "") + message(WARNING + "No method to detect the amount of physical memory was found") + endif() + endif() + + if(TUKLIB_PHYSMEM_FOUND) + tuklib_add_definitions("${TARGET_OR_ALL}" + "${TUKLIB_PHYSMEM_DEFINITIONS}") + endif() +endfunction() diff --git a/xz-5.4.5/cmake/tuklib_progname.cmake b/xz-5.4.5/cmake/tuklib_progname.cmake new file mode 100644 index 000000000..d4ab00665 --- /dev/null +++ b/xz-5.4.5/cmake/tuklib_progname.cmake @@ -0,0 +1,18 @@ +# +# tuklib_progname.cmake - see tuklib_progname.m4 for description and comments +# +# Author: Lasse Collin +# +# This file has been put into the public domain. +# You can do whatever you want with this file. +# + +include("${CMAKE_CURRENT_LIST_DIR}/tuklib_common.cmake") +include(CheckSymbolExists) + +function(tuklib_progname TARGET_OR_ALL) + # NOTE: This glibc extension requires _GNU_SOURCE. + check_symbol_exists(program_invocation_name errno.h + HAVE_PROGRAM_INVOCATION_NAME) + tuklib_add_definition_if("${TARGET_OR_ALL}" HAVE_PROGRAM_INVOCATION_NAME) +endfunction() diff --git a/xz-5.4.5/config.h b/xz-5.4.5/config.h new file mode 100644 index 000000000..d3ff65d57 --- /dev/null +++ b/xz-5.4.5/config.h @@ -0,0 +1,602 @@ +/* config.h. Generated from config.h.in by configure. */ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +/* #undef AC_APPLE_UNIVERSAL_BUILD */ + +/* How many MiB of RAM to assume if the real amount cannot be determined. */ +#define ASSUME_RAM 128 + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +/* #undef ENABLE_NLS */ + +/* Define to 1 if bswap_16 is available. */ +/* #undef HAVE_BSWAP_16 */ + +/* Define to 1 if bswap_32 is available. */ +/* #undef HAVE_BSWAP_32 */ + +/* Define to 1 if bswap_64 is available. */ +/* #undef HAVE_BSWAP_64 */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BYTESWAP_H */ + +/* Define to 1 if Capsicum is available. */ +/* #undef HAVE_CAPSICUM */ + +/* Define to 1 if the system has the type `CC_SHA256_CTX'. */ +/* #undef HAVE_CC_SHA256_CTX */ + +/* Define to 1 if you have the `CC_SHA256_Init' function. */ +/* #undef HAVE_CC_SHA256_INIT */ + +/* Define to 1 if you have the Mac OS X function + CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */ +#define HAVE_CFLOCALECOPYPREFERREDLANGUAGES 1 + +/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in + the CoreFoundation framework. */ +#define HAVE_CFPREFERENCESCOPYAPPVALUE 1 + +/* Define to 1 if crc32 integrity check is enabled. */ +#define HAVE_CHECK_CRC32 1 + +/* Define to 1 if crc64 integrity check is enabled. */ +#define HAVE_CHECK_CRC64 1 + +/* Define to 1 if sha256 integrity check is enabled. */ +#define HAVE_CHECK_SHA256 1 + +/* Define to 1 if you have the `clock_gettime' function. */ +#define HAVE_CLOCK_GETTIME 1 + +/* Define to 1 if `CLOCK_MONOTONIC' is declared in . */ +#define HAVE_CLOCK_MONOTONIC 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_COMMONCRYPTO_COMMONDIGEST_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_CPUID_H 1 + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +/* #undef HAVE_DCGETTEXT */ + +/* Define to 1 if any of HAVE_DECODER_foo have been defined. */ +#define HAVE_DECODERS 1 + +/* Define to 1 if arm decoder is enabled. */ +#define HAVE_DECODER_ARM 1 + +/* Define to 1 if arm64 decoder is enabled. */ +#define HAVE_DECODER_ARM64 1 + +/* Define to 1 if armthumb decoder is enabled. */ +#define HAVE_DECODER_ARMTHUMB 1 + +/* Define to 1 if delta decoder is enabled. */ +#define HAVE_DECODER_DELTA 1 + +/* Define to 1 if ia64 decoder is enabled. */ +#define HAVE_DECODER_IA64 1 + +/* Define to 1 if lzma1 decoder is enabled. */ +#define HAVE_DECODER_LZMA1 1 + +/* Define to 1 if lzma2 decoder is enabled. */ +#define HAVE_DECODER_LZMA2 1 + +/* Define to 1 if powerpc decoder is enabled. */ +#define HAVE_DECODER_POWERPC 1 + +/* Define to 1 if sparc decoder is enabled. */ +#define HAVE_DECODER_SPARC 1 + +/* Define to 1 if x86 decoder is enabled. */ +#define HAVE_DECODER_X86 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if any of HAVE_ENCODER_foo have been defined. */ +#define HAVE_ENCODERS 1 + +/* Define to 1 if arm encoder is enabled. */ +#define HAVE_ENCODER_ARM 1 + +/* Define to 1 if arm64 encoder is enabled. */ +#define HAVE_ENCODER_ARM64 1 + +/* Define to 1 if armthumb encoder is enabled. */ +#define HAVE_ENCODER_ARMTHUMB 1 + +/* Define to 1 if delta encoder is enabled. */ +#define HAVE_ENCODER_DELTA 1 + +/* Define to 1 if ia64 encoder is enabled. */ +#define HAVE_ENCODER_IA64 1 + +/* Define to 1 if lzma1 encoder is enabled. */ +#define HAVE_ENCODER_LZMA1 1 + +/* Define to 1 if lzma2 encoder is enabled. */ +#define HAVE_ENCODER_LZMA2 1 + +/* Define to 1 if powerpc encoder is enabled. */ +#define HAVE_ENCODER_POWERPC 1 + +/* Define to 1 if sparc encoder is enabled. */ +#define HAVE_ENCODER_SPARC 1 + +/* Define to 1 if x86 encoder is enabled. */ +#define HAVE_ENCODER_X86 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define to 1 if __attribute__((__constructor__)) is supported for functions. + */ +#define HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR 1 + +/* Define to 1 if you have the `futimens' function. */ +#define HAVE_FUTIMENS 1 + +/* Define to 1 if you have the `futimes' function. */ +/* #undef HAVE_FUTIMES */ + +/* Define to 1 if you have the `futimesat' function. */ +/* #undef HAVE_FUTIMESAT */ + +/* Define to 1 if you have the header file. */ +#define HAVE_GETOPT_H 1 + +/* Define to 1 if you have the `getopt_long' function. */ +#define HAVE_GETOPT_LONG 1 + +/* Define if the GNU gettext() function is already present or preinstalled. */ +/* #undef HAVE_GETTEXT */ + +/* Define if you have the iconv() function and it works. */ +#define HAVE_ICONV 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_IMMINTRIN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LIMITS_H 1 + +/* Define to 1 if .lz (lzip) decompression support is enabled. */ +#define HAVE_LZIP_DECODER 1 + +/* Define to 1 if mbrtowc and mbstate_t are properly declared. */ +#define HAVE_MBRTOWC 1 + +/* Define to 1 to enable bt2 match finder. */ +#define HAVE_MF_BT2 1 + +/* Define to 1 to enable bt3 match finder. */ +#define HAVE_MF_BT3 1 + +/* Define to 1 to enable bt4 match finder. */ +#define HAVE_MF_BT4 1 + +/* Define to 1 to enable hc3 match finder. */ +#define HAVE_MF_HC3 1 + +/* Define to 1 to enable hc4 match finder. */ +#define HAVE_MF_HC4 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MINIX_CONFIG_H */ + +/* Define to 1 if getopt.h declares extern int optreset. */ +#define HAVE_OPTRESET 1 + +/* Define to 1 if you have the `pledge' function. */ +/* #undef HAVE_PLEDGE */ + +/* Define to 1 if you have the `posix_fadvise' function. */ +/* #undef HAVE_POSIX_FADVISE */ + +/* Define to 1 if `program_invocation_name' is declared in . */ +/* #undef HAVE_PROGRAM_INVOCATION_NAME */ + +/* Define to 1 if you have the `pthread_condattr_setclock' function. */ +/* #undef HAVE_PTHREAD_CONDATTR_SETCLOCK */ + +/* Have PTHREAD_PRIO_INHERIT. */ +#define HAVE_PTHREAD_PRIO_INHERIT 1 + +/* Define to 1 if you have the `SHA256Init' function. */ +/* #undef HAVE_SHA256INIT */ + +/* Define to 1 if the system has the type `SHA256_CTX'. */ +/* #undef HAVE_SHA256_CTX */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SHA256_H */ + +/* Define to 1 if you have the `SHA256_Init' function. */ +/* #undef HAVE_SHA256_INIT */ + +/* Define to 1 if the system has the type `SHA2_CTX'. */ +/* #undef HAVE_SHA2_CTX */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SHA2_H */ + +/* Define to 1 if optimizing for size. */ +/* #undef HAVE_SMALL */ + +/* Define to 1 if stdbool.h conforms to C99. */ +#define HAVE_STDBOOL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if `st_atimensec' is a member of `struct stat'. */ +/* #undef HAVE_STRUCT_STAT_ST_ATIMENSEC */ + +/* Define to 1 if `st_atimespec.tv_nsec' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1 + +/* Define to 1 if `st_atim.st__tim.tv_nsec' is a member of `struct stat'. */ +/* #undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC */ + +/* Define to 1 if `st_atim.tv_nsec' is a member of `struct stat'. */ +/* #undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC */ + +/* Define to 1 if `st_uatime' is a member of `struct stat'. */ +/* #undef HAVE_STRUCT_STAT_ST_UATIME */ + +/* Define to 1 to if GNU/Linux-specific details are unconditionally wanted for + symbol versioning. Define to 2 to if these are wanted only if also PIC is + defined (allows building both shared and static liblzma at the same time + with Libtool if neither --with-pic nor --without-pic is used). This define + must be used together with liblzma_linux.map. */ +/* #undef HAVE_SYMBOL_VERSIONS_LINUX */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_BYTEORDER_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_CAPSICUM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_ENDIAN_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if the system has the type `uintptr_t'. */ +#define HAVE_UINTPTR_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if _mm_set_epi64x and _mm_clmulepi64_si128 are usable. See + configure.ac for details. */ +#define HAVE_USABLE_CLMUL 1 + +/* Define to 1 if you have the `utime' function. */ +/* #undef HAVE_UTIME */ + +/* Define to 1 if you have the `utimes' function. */ +/* #undef HAVE_UTIMES */ + +/* Define to 1 or 0, depending whether the compiler supports simple visibility + declarations. */ +#define HAVE_VISIBILITY 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_WCHAR_H 1 + +/* Define to 1 if you have the `wcwidth' function. */ +#define HAVE_WCWIDTH 1 + +/* Define to 1 if the system has the type `_Bool'. */ +#define HAVE__BOOL 1 + +/* Define to 1 if you have the `_futime' function. */ +/* #undef HAVE__FUTIME */ + +/* Define to 1 if _mm_movemask_epi8 is available. */ +#define HAVE__MM_MOVEMASK_EPI8 1 + +/* Define to 1 if the GNU C extension __builtin_assume_aligned is supported. + */ +#define HAVE___BUILTIN_ASSUME_ALIGNED 1 + +/* Define to 1 if the GNU C extensions __builtin_bswap16/32/64 are supported. + */ +#define HAVE___BUILTIN_BSWAPXX 1 + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#define LT_OBJDIR ".libs/" + +/* Define to 1 when using POSIX threads (pthreads). */ +#define MYTHREAD_POSIX 1 + +/* Define to 1 when using Windows Vista compatible threads. This uses features + that are not available on Windows XP. */ +/* #undef MYTHREAD_VISTA */ + +/* Define to 1 when using Windows 95 (and thus XP) compatible threads. This + avoids use of features that were added in Windows Vista. */ +/* #undef MYTHREAD_WIN95 */ + +/* Define to 1 to disable debugging code. */ +#define NDEBUG 1 + +/* Name of package */ +#define PACKAGE "xz" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "xz@tukaani.org" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "XZ Utils" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "XZ Utils 5.4.5" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "xz" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "https://tukaani.org/xz/" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "5.4.5" + +/* Define to necessary symbol if this constant uses a non-standard name on + your system. */ +/* #undef PTHREAD_CREATE_JOINABLE */ + +/* The size of `size_t', as computed by sizeof. */ +#define SIZEOF_SIZE_T 8 + +/* Define to 1 if all of the C90 standard headers exist (not just the ones + required in a freestanding environment). This macro is provided for + backward compatibility; new code need not use it. */ +#define STDC_HEADERS 1 + +/* Define to 1 if the number of available CPU cores can be detected with + cpuset(2). */ +/* #undef TUKLIB_CPUCORES_CPUSET */ + +/* Define to 1 if the number of available CPU cores can be detected with + pstat_getdynamic(). */ +/* #undef TUKLIB_CPUCORES_PSTAT_GETDYNAMIC */ + +/* Define to 1 if the number of available CPU cores can be detected with + sched_getaffinity() */ +/* #undef TUKLIB_CPUCORES_SCHED_GETAFFINITY */ + +/* Define to 1 if the number of available CPU cores can be detected with + sysconf(_SC_NPROCESSORS_ONLN) or sysconf(_SC_NPROC_ONLN). */ +/* #undef TUKLIB_CPUCORES_SYSCONF */ + +/* Define to 1 if the number of available CPU cores can be detected with + sysctl(). */ +#define TUKLIB_CPUCORES_SYSCTL 1 + +/* Define to 1 if the system supports fast unaligned access to 16-bit, 32-bit, + and 64-bit integers. */ +#define TUKLIB_FAST_UNALIGNED_ACCESS 1 + +/* Define to 1 if the amount of physical memory can be detected with + _system_configuration.physmem. */ +/* #undef TUKLIB_PHYSMEM_AIX */ + +/* Define to 1 if the amount of physical memory can be detected with + getinvent_r(). */ +/* #undef TUKLIB_PHYSMEM_GETINVENT_R */ + +/* Define to 1 if the amount of physical memory can be detected with + getsysinfo(). */ +/* #undef TUKLIB_PHYSMEM_GETSYSINFO */ + +/* Define to 1 if the amount of physical memory can be detected with + pstat_getstatic(). */ +/* #undef TUKLIB_PHYSMEM_PSTAT_GETSTATIC */ + +/* Define to 1 if the amount of physical memory can be detected with + sysconf(_SC_PAGESIZE) and sysconf(_SC_PHYS_PAGES). */ +#define TUKLIB_PHYSMEM_SYSCONF 1 + +/* Define to 1 if the amount of physical memory can be detected with sysctl(). + */ +/* #undef TUKLIB_PHYSMEM_SYSCTL */ + +/* Define to 1 if the amount of physical memory can be detected with Linux + sysinfo(). */ +/* #undef TUKLIB_PHYSMEM_SYSINFO */ + +/* Define to 1 to use unsafe type punning, e.g. char *x = ...; *(int *)x = + 123; which violates strict aliasing rules and thus is undefined behavior + and might result in broken code. */ +/* #undef TUKLIB_USE_UNSAFE_TYPE_PUNNING */ + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable general extensions on macOS. */ +#ifndef _DARWIN_C_SOURCE +# define _DARWIN_C_SOURCE 1 +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable X/Open compliant socket functions that do not require linking + with -lxnet on HP-UX 11.11. */ +#ifndef _HPUX_ALT_XOPEN_SOCKET_API +# define _HPUX_ALT_XOPEN_SOCKET_API 1 +#endif +/* Identify the host operating system as Minix. + This macro does not affect the system headers' behavior. + A future release of Autoconf may stop defining this macro. */ +#ifndef _MINIX +/* # undef _MINIX */ +#endif +/* Enable general extensions on NetBSD. + Enable NetBSD compatibility extensions on Minix. */ +#ifndef _NETBSD_SOURCE +# define _NETBSD_SOURCE 1 +#endif +/* Enable OpenBSD compatibility extensions on NetBSD. + Oddly enough, this does nothing on OpenBSD. */ +#ifndef _OPENBSD_SOURCE +# define _OPENBSD_SOURCE 1 +#endif +/* Define to 1 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_SOURCE +/* # undef _POSIX_SOURCE */ +#endif +/* Define to 2 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_1_SOURCE +/* # undef _POSIX_1_SOURCE */ +#endif +/* Enable POSIX-compatible threading on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ +#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ +# define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ +#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ +# define __STDC_WANT_IEC_60559_BFP_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ +#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ +# define __STDC_WANT_IEC_60559_DFP_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ +#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ +# define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ +#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ +# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ +#ifndef __STDC_WANT_LIB_EXT2__ +# define __STDC_WANT_LIB_EXT2__ 1 +#endif +/* Enable extensions specified by ISO/IEC 24747:2009. */ +#ifndef __STDC_WANT_MATH_SPEC_FUNCS__ +# define __STDC_WANT_MATH_SPEC_FUNCS__ 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable X/Open extensions. Define to 500 only if necessary + to make mbstate_t available. */ +#ifndef _XOPEN_SOURCE +/* # undef _XOPEN_SOURCE */ +#endif + + +/* Version number of package */ +#define VERSION "5.4.5" + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif + +/* Number of bits in a file offset, on hosts where this is settable. */ +/* #undef _FILE_OFFSET_BITS */ + +/* Define for large files, on AIX-style hosts. */ +/* #undef _LARGE_FILES */ + +/* Define for Solaris 2.5.1 so the uint32_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +/* #undef _UINT32_T */ + +/* Define for Solaris 2.5.1 so the uint64_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +/* #undef _UINT64_T */ + +/* Define for Solaris 2.5.1 so the uint8_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +/* #undef _UINT8_T */ + +/* Define to rpl_ if the getopt replacement functions and variables should be + used. */ +/* #undef __GETOPT_PREFIX */ + +/* Define to the type of a signed integer type of width exactly 32 bits if + such a type exists and the standard includes do not define it. */ +/* #undef int32_t */ + +/* Define to the type of a signed integer type of width exactly 64 bits if + such a type exists and the standard includes do not define it. */ +/* #undef int64_t */ + +/* Define to the type of an unsigned integer type of width exactly 16 bits if + such a type exists and the standard includes do not define it. */ +/* #undef uint16_t */ + +/* Define to the type of an unsigned integer type of width exactly 32 bits if + such a type exists and the standard includes do not define it. */ +/* #undef uint32_t */ + +/* Define to the type of an unsigned integer type of width exactly 64 bits if + such a type exists and the standard includes do not define it. */ +/* #undef uint64_t */ + +/* Define to the type of an unsigned integer type of width exactly 8 bits if + such a type exists and the standard includes do not define it. */ +/* #undef uint8_t */ + +/* Define to the type of an unsigned integer type wide enough to hold a + pointer, if such a type exists, and if the system does not define it. */ +/* #undef uintptr_t */ diff --git a/xz-5.4.5/config.h.in b/xz-5.4.5/config.h.in new file mode 100644 index 000000000..5e254c30b --- /dev/null +++ b/xz-5.4.5/config.h.in @@ -0,0 +1,601 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +#undef AC_APPLE_UNIVERSAL_BUILD + +/* How many MiB of RAM to assume if the real amount cannot be determined. */ +#undef ASSUME_RAM + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +#undef ENABLE_NLS + +/* Define to 1 if bswap_16 is available. */ +#undef HAVE_BSWAP_16 + +/* Define to 1 if bswap_32 is available. */ +#undef HAVE_BSWAP_32 + +/* Define to 1 if bswap_64 is available. */ +#undef HAVE_BSWAP_64 + +/* Define to 1 if you have the header file. */ +#undef HAVE_BYTESWAP_H + +/* Define to 1 if Capsicum is available. */ +#undef HAVE_CAPSICUM + +/* Define to 1 if the system has the type `CC_SHA256_CTX'. */ +#undef HAVE_CC_SHA256_CTX + +/* Define to 1 if you have the `CC_SHA256_Init' function. */ +#undef HAVE_CC_SHA256_INIT + +/* Define to 1 if you have the Mac OS X function + CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */ +#undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES + +/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in + the CoreFoundation framework. */ +#undef HAVE_CFPREFERENCESCOPYAPPVALUE + +/* Define to 1 if crc32 integrity check is enabled. */ +#undef HAVE_CHECK_CRC32 + +/* Define to 1 if crc64 integrity check is enabled. */ +#undef HAVE_CHECK_CRC64 + +/* Define to 1 if sha256 integrity check is enabled. */ +#undef HAVE_CHECK_SHA256 + +/* Define to 1 if you have the `clock_gettime' function. */ +#undef HAVE_CLOCK_GETTIME + +/* Define to 1 if `CLOCK_MONOTONIC' is declared in . */ +#undef HAVE_CLOCK_MONOTONIC + +/* Define to 1 if you have the header file. */ +#undef HAVE_COMMONCRYPTO_COMMONDIGEST_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_CPUID_H + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +#undef HAVE_DCGETTEXT + +/* Define to 1 if any of HAVE_DECODER_foo have been defined. */ +#undef HAVE_DECODERS + +/* Define to 1 if arm decoder is enabled. */ +#undef HAVE_DECODER_ARM + +/* Define to 1 if arm64 decoder is enabled. */ +#undef HAVE_DECODER_ARM64 + +/* Define to 1 if armthumb decoder is enabled. */ +#undef HAVE_DECODER_ARMTHUMB + +/* Define to 1 if delta decoder is enabled. */ +#undef HAVE_DECODER_DELTA + +/* Define to 1 if ia64 decoder is enabled. */ +#undef HAVE_DECODER_IA64 + +/* Define to 1 if lzma1 decoder is enabled. */ +#undef HAVE_DECODER_LZMA1 + +/* Define to 1 if lzma2 decoder is enabled. */ +#undef HAVE_DECODER_LZMA2 + +/* Define to 1 if powerpc decoder is enabled. */ +#undef HAVE_DECODER_POWERPC + +/* Define to 1 if sparc decoder is enabled. */ +#undef HAVE_DECODER_SPARC + +/* Define to 1 if x86 decoder is enabled. */ +#undef HAVE_DECODER_X86 + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if any of HAVE_ENCODER_foo have been defined. */ +#undef HAVE_ENCODERS + +/* Define to 1 if arm encoder is enabled. */ +#undef HAVE_ENCODER_ARM + +/* Define to 1 if arm64 encoder is enabled. */ +#undef HAVE_ENCODER_ARM64 + +/* Define to 1 if armthumb encoder is enabled. */ +#undef HAVE_ENCODER_ARMTHUMB + +/* Define to 1 if delta encoder is enabled. */ +#undef HAVE_ENCODER_DELTA + +/* Define to 1 if ia64 encoder is enabled. */ +#undef HAVE_ENCODER_IA64 + +/* Define to 1 if lzma1 encoder is enabled. */ +#undef HAVE_ENCODER_LZMA1 + +/* Define to 1 if lzma2 encoder is enabled. */ +#undef HAVE_ENCODER_LZMA2 + +/* Define to 1 if powerpc encoder is enabled. */ +#undef HAVE_ENCODER_POWERPC + +/* Define to 1 if sparc encoder is enabled. */ +#undef HAVE_ENCODER_SPARC + +/* Define to 1 if x86 encoder is enabled. */ +#undef HAVE_ENCODER_X86 + +/* Define to 1 if you have the header file. */ +#undef HAVE_FCNTL_H + +/* Define to 1 if __attribute__((__constructor__)) is supported for functions. + */ +#undef HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR + +/* Define to 1 if you have the `futimens' function. */ +#undef HAVE_FUTIMENS + +/* Define to 1 if you have the `futimes' function. */ +#undef HAVE_FUTIMES + +/* Define to 1 if you have the `futimesat' function. */ +#undef HAVE_FUTIMESAT + +/* Define to 1 if you have the header file. */ +#undef HAVE_GETOPT_H + +/* Define to 1 if you have the `getopt_long' function. */ +#undef HAVE_GETOPT_LONG + +/* Define if the GNU gettext() function is already present or preinstalled. */ +#undef HAVE_GETTEXT + +/* Define if you have the iconv() function and it works. */ +#undef HAVE_ICONV + +/* Define to 1 if you have the header file. */ +#undef HAVE_IMMINTRIN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_LIMITS_H + +/* Define to 1 if .lz (lzip) decompression support is enabled. */ +#undef HAVE_LZIP_DECODER + +/* Define to 1 if mbrtowc and mbstate_t are properly declared. */ +#undef HAVE_MBRTOWC + +/* Define to 1 to enable bt2 match finder. */ +#undef HAVE_MF_BT2 + +/* Define to 1 to enable bt3 match finder. */ +#undef HAVE_MF_BT3 + +/* Define to 1 to enable bt4 match finder. */ +#undef HAVE_MF_BT4 + +/* Define to 1 to enable hc3 match finder. */ +#undef HAVE_MF_HC3 + +/* Define to 1 to enable hc4 match finder. */ +#undef HAVE_MF_HC4 + +/* Define to 1 if you have the header file. */ +#undef HAVE_MINIX_CONFIG_H + +/* Define to 1 if getopt.h declares extern int optreset. */ +#undef HAVE_OPTRESET + +/* Define to 1 if you have the `pledge' function. */ +#undef HAVE_PLEDGE + +/* Define to 1 if you have the `posix_fadvise' function. */ +#undef HAVE_POSIX_FADVISE + +/* Define to 1 if `program_invocation_name' is declared in . */ +#undef HAVE_PROGRAM_INVOCATION_NAME + +/* Define to 1 if you have the `pthread_condattr_setclock' function. */ +#undef HAVE_PTHREAD_CONDATTR_SETCLOCK + +/* Have PTHREAD_PRIO_INHERIT. */ +#undef HAVE_PTHREAD_PRIO_INHERIT + +/* Define to 1 if you have the `SHA256Init' function. */ +#undef HAVE_SHA256INIT + +/* Define to 1 if the system has the type `SHA256_CTX'. */ +#undef HAVE_SHA256_CTX + +/* Define to 1 if you have the header file. */ +#undef HAVE_SHA256_H + +/* Define to 1 if you have the `SHA256_Init' function. */ +#undef HAVE_SHA256_INIT + +/* Define to 1 if the system has the type `SHA2_CTX'. */ +#undef HAVE_SHA2_CTX + +/* Define to 1 if you have the header file. */ +#undef HAVE_SHA2_H + +/* Define to 1 if optimizing for size. */ +#undef HAVE_SMALL + +/* Define to 1 if stdbool.h conforms to C99. */ +#undef HAVE_STDBOOL_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDIO_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if `st_atimensec' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_ATIMENSEC + +/* Define to 1 if `st_atimespec.tv_nsec' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC + +/* Define to 1 if `st_atim.st__tim.tv_nsec' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC + +/* Define to 1 if `st_atim.tv_nsec' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC + +/* Define to 1 if `st_uatime' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_UATIME + +/* Define to 1 to if GNU/Linux-specific details are unconditionally wanted for + symbol versioning. Define to 2 to if these are wanted only if also PIC is + defined (allows building both shared and static liblzma at the same time + with Libtool if neither --with-pic nor --without-pic is used). This define + must be used together with liblzma_linux.map. */ +#undef HAVE_SYMBOL_VERSIONS_LINUX + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_BYTEORDER_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_CAPSICUM_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_ENDIAN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_PARAM_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TIME_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if the system has the type `uintptr_t'. */ +#undef HAVE_UINTPTR_T + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define to 1 if _mm_set_epi64x and _mm_clmulepi64_si128 are usable. See + configure.ac for details. */ +#undef HAVE_USABLE_CLMUL + +/* Define to 1 if you have the `utime' function. */ +#undef HAVE_UTIME + +/* Define to 1 if you have the `utimes' function. */ +#undef HAVE_UTIMES + +/* Define to 1 or 0, depending whether the compiler supports simple visibility + declarations. */ +#undef HAVE_VISIBILITY + +/* Define to 1 if you have the header file. */ +#undef HAVE_WCHAR_H + +/* Define to 1 if you have the `wcwidth' function. */ +#undef HAVE_WCWIDTH + +/* Define to 1 if the system has the type `_Bool'. */ +#undef HAVE__BOOL + +/* Define to 1 if you have the `_futime' function. */ +#undef HAVE__FUTIME + +/* Define to 1 if _mm_movemask_epi8 is available. */ +#undef HAVE__MM_MOVEMASK_EPI8 + +/* Define to 1 if the GNU C extension __builtin_assume_aligned is supported. + */ +#undef HAVE___BUILTIN_ASSUME_ALIGNED + +/* Define to 1 if the GNU C extensions __builtin_bswap16/32/64 are supported. + */ +#undef HAVE___BUILTIN_BSWAPXX + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#undef LT_OBJDIR + +/* Define to 1 when using POSIX threads (pthreads). */ +#undef MYTHREAD_POSIX + +/* Define to 1 when using Windows Vista compatible threads. This uses features + that are not available on Windows XP. */ +#undef MYTHREAD_VISTA + +/* Define to 1 when using Windows 95 (and thus XP) compatible threads. This + avoids use of features that were added in Windows Vista. */ +#undef MYTHREAD_WIN95 + +/* Define to 1 to disable debugging code. */ +#undef NDEBUG + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to necessary symbol if this constant uses a non-standard name on + your system. */ +#undef PTHREAD_CREATE_JOINABLE + +/* The size of `size_t', as computed by sizeof. */ +#undef SIZEOF_SIZE_T + +/* Define to 1 if all of the C90 standard headers exist (not just the ones + required in a freestanding environment). This macro is provided for + backward compatibility; new code need not use it. */ +#undef STDC_HEADERS + +/* Define to 1 if the number of available CPU cores can be detected with + cpuset(2). */ +#undef TUKLIB_CPUCORES_CPUSET + +/* Define to 1 if the number of available CPU cores can be detected with + pstat_getdynamic(). */ +#undef TUKLIB_CPUCORES_PSTAT_GETDYNAMIC + +/* Define to 1 if the number of available CPU cores can be detected with + sched_getaffinity() */ +#undef TUKLIB_CPUCORES_SCHED_GETAFFINITY + +/* Define to 1 if the number of available CPU cores can be detected with + sysconf(_SC_NPROCESSORS_ONLN) or sysconf(_SC_NPROC_ONLN). */ +#undef TUKLIB_CPUCORES_SYSCONF + +/* Define to 1 if the number of available CPU cores can be detected with + sysctl(). */ +#undef TUKLIB_CPUCORES_SYSCTL + +/* Define to 1 if the system supports fast unaligned access to 16-bit, 32-bit, + and 64-bit integers. */ +#undef TUKLIB_FAST_UNALIGNED_ACCESS + +/* Define to 1 if the amount of physical memory can be detected with + _system_configuration.physmem. */ +#undef TUKLIB_PHYSMEM_AIX + +/* Define to 1 if the amount of physical memory can be detected with + getinvent_r(). */ +#undef TUKLIB_PHYSMEM_GETINVENT_R + +/* Define to 1 if the amount of physical memory can be detected with + getsysinfo(). */ +#undef TUKLIB_PHYSMEM_GETSYSINFO + +/* Define to 1 if the amount of physical memory can be detected with + pstat_getstatic(). */ +#undef TUKLIB_PHYSMEM_PSTAT_GETSTATIC + +/* Define to 1 if the amount of physical memory can be detected with + sysconf(_SC_PAGESIZE) and sysconf(_SC_PHYS_PAGES). */ +#undef TUKLIB_PHYSMEM_SYSCONF + +/* Define to 1 if the amount of physical memory can be detected with sysctl(). + */ +#undef TUKLIB_PHYSMEM_SYSCTL + +/* Define to 1 if the amount of physical memory can be detected with Linux + sysinfo(). */ +#undef TUKLIB_PHYSMEM_SYSINFO + +/* Define to 1 to use unsafe type punning, e.g. char *x = ...; *(int *)x = + 123; which violates strict aliasing rules and thus is undefined behavior + and might result in broken code. */ +#undef TUKLIB_USE_UNSAFE_TYPE_PUNNING + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE +#endif +/* Enable general extensions on macOS. */ +#ifndef _DARWIN_C_SOURCE +# undef _DARWIN_C_SOURCE +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif +/* Enable X/Open compliant socket functions that do not require linking + with -lxnet on HP-UX 11.11. */ +#ifndef _HPUX_ALT_XOPEN_SOCKET_API +# undef _HPUX_ALT_XOPEN_SOCKET_API +#endif +/* Identify the host operating system as Minix. + This macro does not affect the system headers' behavior. + A future release of Autoconf may stop defining this macro. */ +#ifndef _MINIX +# undef _MINIX +#endif +/* Enable general extensions on NetBSD. + Enable NetBSD compatibility extensions on Minix. */ +#ifndef _NETBSD_SOURCE +# undef _NETBSD_SOURCE +#endif +/* Enable OpenBSD compatibility extensions on NetBSD. + Oddly enough, this does nothing on OpenBSD. */ +#ifndef _OPENBSD_SOURCE +# undef _OPENBSD_SOURCE +#endif +/* Define to 1 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_SOURCE +# undef _POSIX_SOURCE +#endif +/* Define to 2 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_1_SOURCE +# undef _POSIX_1_SOURCE +#endif +/* Enable POSIX-compatible threading on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# undef _POSIX_PTHREAD_SEMANTICS +#endif +/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ +#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ +# undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ +#endif +/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ +#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ +# undef __STDC_WANT_IEC_60559_BFP_EXT__ +#endif +/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ +#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ +# undef __STDC_WANT_IEC_60559_DFP_EXT__ +#endif +/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ +#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ +# undef __STDC_WANT_IEC_60559_FUNCS_EXT__ +#endif +/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ +#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ +# undef __STDC_WANT_IEC_60559_TYPES_EXT__ +#endif +/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ +#ifndef __STDC_WANT_LIB_EXT2__ +# undef __STDC_WANT_LIB_EXT2__ +#endif +/* Enable extensions specified by ISO/IEC 24747:2009. */ +#ifndef __STDC_WANT_MATH_SPEC_FUNCS__ +# undef __STDC_WANT_MATH_SPEC_FUNCS__ +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# undef _TANDEM_SOURCE +#endif +/* Enable X/Open extensions. Define to 500 only if necessary + to make mbstate_t available. */ +#ifndef _XOPEN_SOURCE +# undef _XOPEN_SOURCE +#endif + + +/* Version number of package */ +#undef VERSION + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +# undef WORDS_BIGENDIAN +# endif +#endif + +/* Number of bits in a file offset, on hosts where this is settable. */ +#undef _FILE_OFFSET_BITS + +/* Define for large files, on AIX-style hosts. */ +#undef _LARGE_FILES + +/* Define for Solaris 2.5.1 so the uint32_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +#undef _UINT32_T + +/* Define for Solaris 2.5.1 so the uint64_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +#undef _UINT64_T + +/* Define for Solaris 2.5.1 so the uint8_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +#undef _UINT8_T + +/* Define to rpl_ if the getopt replacement functions and variables should be + used. */ +#undef __GETOPT_PREFIX + +/* Define to the type of a signed integer type of width exactly 32 bits if + such a type exists and the standard includes do not define it. */ +#undef int32_t + +/* Define to the type of a signed integer type of width exactly 64 bits if + such a type exists and the standard includes do not define it. */ +#undef int64_t + +/* Define to the type of an unsigned integer type of width exactly 16 bits if + such a type exists and the standard includes do not define it. */ +#undef uint16_t + +/* Define to the type of an unsigned integer type of width exactly 32 bits if + such a type exists and the standard includes do not define it. */ +#undef uint32_t + +/* Define to the type of an unsigned integer type of width exactly 64 bits if + such a type exists and the standard includes do not define it. */ +#undef uint64_t + +/* Define to the type of an unsigned integer type of width exactly 8 bits if + such a type exists and the standard includes do not define it. */ +#undef uint8_t + +/* Define to the type of an unsigned integer type wide enough to hold a + pointer, if such a type exists, and if the system does not define it. */ +#undef uintptr_t diff --git a/xz-5.4.5/config.status b/xz-5.4.5/config.status new file mode 100755 index 000000000..c4e9c9985 --- /dev/null +++ b/xz-5.4.5/config.status @@ -0,0 +1,2538 @@ +#! /bin/sh +# Generated by configure. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else $as_nop + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. +as_nl=' +' +export as_nl +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi + +# The user is always right. +if ${PATH_SEPARATOR+false} :; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + printf "%s\n" "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else $as_nop + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else $as_nop + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by XZ Utils $as_me 5.4.5, which was +generated by GNU Autoconf 2.71. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +# Files that config.status was made for. +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 src/scripts/xzdiff src/scripts/xzgrep src/scripts/xzmore src/scripts/xzless" +config_headers=" config.h" +config_commands=" depfiles libtool po-directories" + +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to . +XZ Utils home page: ." + +ac_cs_config='--prefix=/Users/bharathy/Open-Sora-All/xz-install' +ac_cs_version="\ +XZ Utils config.status 5.4.5 +configured by ./configure, generated by GNU Autoconf 2.71, + with options \"$ac_cs_config\" + +Copyright (C) 2021 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='/Users/bharathy/Open-Sora-All/xz-5.4.5' +srcdir='.' +INSTALL='/usr/bin/install -c' +MKDIR_P='./build-aux/install-sh -c -d' +AWK='awk' +test -n "$AWK" || AWK=awk +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + printf "%s\n" "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + printf "%s\n" "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + printf "%s\n" "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +if $ac_cs_recheck; then + set X /bin/sh './configure' '--prefix=/Users/bharathy/Open-Sora-All/xz-install' $ac_configure_extra_args --no-create --no-recursion + shift + \printf "%s\n" "running CONFIG_SHELL=/bin/sh $*" >&6 + CONFIG_SHELL='/bin/sh' + export CONFIG_SHELL + exec "$@" +fi + +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + printf "%s\n" "$ac_log" +} >&5 + +# +# INIT-COMMANDS +# +AMDEP_TRUE="" MAKE="make" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' +double_quote_subst='s/\(["`\\]\)/\\\1/g' +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' +macro_version='2.4.7.4-1ec8f-dirty' +macro_revision='2.4.7.4' +AS='as' +DLLTOOL='false' +OBJDUMP='objdump' +enable_shared='yes' +enable_static='yes' +pic_mode='default' +enable_fast_install='needless' +shared_archive_member_spec='' +SHELL='/bin/sh' +ECHO='printf %s\n' +PATH_SEPARATOR=':' +host_alias='' +host='x86_64-apple-darwin25.0.0' +host_os='darwin25.0.0' +build_alias='' +build='x86_64-apple-darwin25.0.0' +build_os='darwin25.0.0' +SED='/usr/bin/sed' +Xsed='/usr/bin/sed -e 1s/^X//' +GREP='/usr/bin/grep' +EGREP='/usr/bin/grep -E' +FGREP='/usr/bin/grep -F' +LD='/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld' +NM='/usr/bin/nm -B' +LN_S='ln -s' +max_cmd_len='786432' +ac_objext='o' +exeext='' +lt_unset='unset' +lt_SP2NL='tr \040 \012' +lt_NL2SP='tr \015\012 \040\040' +lt_cv_to_host_file_cmd='func_convert_file_noop' +lt_cv_to_tool_file_cmd='func_convert_file_noop' +reload_flag=' -r' +reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' +FILECMD='file' +deplibs_check_method='pass_all' +file_magic_cmd='$MAGIC_CMD' +file_magic_glob='' +want_nocaseglob='no' +sharedlib_from_linklib_cmd='printf %s\n' +AR='ar' +lt_ar_flags='cr' +AR_FLAGS='cr' +archiver_list_spec='' +STRIP='strip' +RANLIB='ranlib' +old_postinstall_cmds='chmod 644 $oldlib~$RANLIB $tool_oldlib' +old_postuninstall_cmds='' +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs~$RANLIB $tool_oldlib' +lock_old_archive_extraction='yes' +CC='gcc' +CFLAGS='-g -O2' +compiler='' +GCC='yes' +lt_cv_sys_global_symbol_pipe='/usr/bin/sed -n -e '\''s/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*_\([_A-Za-z][_A-Za-z0-9]*\)$/\1 _\2 \2/p'\'' | /usr/bin/sed '\''/ __gnu_lto/d'\''' +lt_cv_sys_global_symbol_to_cdecl='/usr/bin/sed -n -e '\''s/^T .* \(.*\)$/extern int \1();/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/extern char \1;/p'\''' +lt_cv_sys_global_symbol_to_import='' +lt_cv_sys_global_symbol_to_c_name_address='/usr/bin/sed -n -e '\''s/^: \(.*\) .*$/ {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/ {"\1", (void *) \&\1},/p'\''' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='/usr/bin/sed -n -e '\''s/^: \(.*\) .*$/ {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(lib.*\)$/ {"\1", (void *) \&\1},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/ {"lib\1", (void *) \&\1},/p'\''' +lt_cv_nm_interface='BSD nm' +nm_file_list_spec='@' +lt_sysroot='' +lt_cv_truncate_bin='/bin/dd bs=4096 count=1' +objdir='.libs' +MAGIC_CMD='file' +lt_prog_compiler_no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' +lt_prog_compiler_pic=' -fno-common -DPIC' +lt_prog_compiler_wl='-Wl,' +lt_prog_compiler_static='' +lt_cv_prog_compiler_c_o='yes' +need_locks='no' +MANIFEST_TOOL=':' +DSYMUTIL='dsymutil' +NMEDIT='nmedit' +LIPO='lipo' +OTOOL='otool' +OTOOL64=':' +libext='a' +shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +extract_expsyms_cmds='' +archive_cmds_need_lc='no' +enable_shared_with_static_runtimes='no' +export_dynamic_flag_spec='' +whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' +compiler_needs_object='no' +old_archive_from_new_cmds='' +old_archive_from_expsyms_cmds='' +archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring ' +archive_expsym_cmds='/usr/bin/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 $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' +module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs $compiler_flags' +module_expsym_cmds='/usr/bin/sed -e '\''s|^|_|'\'' < $export_symbols > $output_objdir/$libname-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs $compiler_flags $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' +with_gnu_ld='no' +allow_undefined_flag='$wl-undefined ${wl}dynamic_lookup' +no_undefined_flag='' +hardcode_libdir_flag_spec='' +hardcode_libdir_separator='' +hardcode_direct='no' +hardcode_direct_absolute='no' +hardcode_minus_L='no' +hardcode_shlibpath_var='unsupported' +hardcode_automatic='yes' +inherit_rpath='no' +link_all_deplibs='yes' +always_export_symbols='no' +export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' +exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' +include_expsyms='' +prelink_cmds='' +postlink_cmds='' +file_list_spec='' +variables_saved_for_relink='PATH DYLD_LIBRARY_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH' +need_lib_prefix='no' +need_version='no' +version_type='darwin' +runpath_var='' +shlibpath_var='DYLD_LIBRARY_PATH' +shlibpath_overrides_runpath='yes' +libname_spec='lib$name' +library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' +soname_spec='$libname$release$major$shared_ext' +install_override_mode='' +postinstall_cmds='' +postuninstall_cmds='' +finish_cmds='' +finish_eval='' +hardcode_into_libs='no' +sys_lib_search_path_spec='/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/17 /usr/local/lib' +configure_time_dlsearch_path='/usr/local/lib /lib /usr/lib' +configure_time_lt_sys_library_path='' +hardcode_action='immediate' +enable_dlopen='unknown' +enable_dlopen_self='unknown' +enable_dlopen_self_static='unknown' +old_striplib='strip -S' +striplib='strip -x' +LD_RC='' +reload_flag_RC='' +reload_cmds_RC='' +old_archive_cmds_RC='' +compiler_RC='' +GCC_RC='' +lt_prog_compiler_no_builtin_flag_RC='' +lt_prog_compiler_pic_RC='' +lt_prog_compiler_wl_RC='' +lt_prog_compiler_static_RC='' +lt_cv_prog_compiler_c_o_RC='yes' +archive_cmds_need_lc_RC='' +enable_shared_with_static_runtimes_RC='' +export_dynamic_flag_spec_RC='' +whole_archive_flag_spec_RC='' +compiler_needs_object_RC='' +old_archive_from_new_cmds_RC='' +old_archive_from_expsyms_cmds_RC='' +archive_cmds_RC='' +archive_expsym_cmds_RC='' +module_cmds_RC='' +module_expsym_cmds_RC='' +with_gnu_ld_RC='' +allow_undefined_flag_RC='' +no_undefined_flag_RC='' +hardcode_libdir_flag_spec_RC='' +hardcode_libdir_separator_RC='' +hardcode_direct_RC='' +hardcode_direct_absolute_RC='' +hardcode_minus_L_RC='' +hardcode_shlibpath_var_RC='' +hardcode_automatic_RC='' +inherit_rpath_RC='' +link_all_deplibs_RC='' +always_export_symbols_RC='' +export_symbols_cmds_RC='' +exclude_expsyms_RC='' +include_expsyms_RC='' +prelink_cmds_RC='' +postlink_cmds_RC='' +file_list_spec_RC='' +hardcode_action_RC='' + +LTCC='gcc' +LTCFLAGS='-g -O2' +compiler='gcc' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in AS DLLTOOL OBJDUMP SHELL ECHO PATH_SEPARATOR SED GREP EGREP FGREP LD NM LN_S lt_SP2NL lt_NL2SP reload_flag FILECMD deplibs_check_method file_magic_cmd file_magic_glob want_nocaseglob sharedlib_from_linklib_cmd AR archiver_list_spec STRIP RANLIB CC CFLAGS compiler lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl lt_cv_sys_global_symbol_to_import lt_cv_sys_global_symbol_to_c_name_address lt_cv_sys_global_symbol_to_c_name_address_lib_prefix lt_cv_nm_interface nm_file_list_spec lt_cv_truncate_bin lt_prog_compiler_no_builtin_flag lt_prog_compiler_pic lt_prog_compiler_wl lt_prog_compiler_static lt_cv_prog_compiler_c_o need_locks MANIFEST_TOOL DSYMUTIL NMEDIT LIPO OTOOL OTOOL64 shrext_cmds export_dynamic_flag_spec whole_archive_flag_spec compiler_needs_object with_gnu_ld allow_undefined_flag no_undefined_flag hardcode_libdir_flag_spec hardcode_libdir_separator exclude_expsyms include_expsyms file_list_spec variables_saved_for_relink libname_spec library_names_spec soname_spec install_override_mode finish_eval old_striplib striplib LD_RC reload_flag_RC compiler_RC lt_prog_compiler_no_builtin_flag_RC lt_prog_compiler_pic_RC lt_prog_compiler_wl_RC lt_prog_compiler_static_RC lt_cv_prog_compiler_c_o_RC export_dynamic_flag_spec_RC whole_archive_flag_spec_RC compiler_needs_object_RC with_gnu_ld_RC allow_undefined_flag_RC no_undefined_flag_RC hardcode_libdir_flag_spec_RC hardcode_libdir_separator_RC exclude_expsyms_RC include_expsyms_RC file_list_spec_RC; do + case `eval \\$ECHO \\""\\$$var"\\"` in + *[\\\`\"\$]*) + eval "lt_$var=\\\"\`\$ECHO \"\$$var\" | \$SED \"\$sed_quote_subst\"\`\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_$var=\\\"\$$var\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds old_postinstall_cmds old_postuninstall_cmds old_archive_cmds extract_expsyms_cmds old_archive_from_new_cmds old_archive_from_expsyms_cmds archive_cmds archive_expsym_cmds module_cmds module_expsym_cmds export_symbols_cmds prelink_cmds postlink_cmds postinstall_cmds postuninstall_cmds finish_cmds sys_lib_search_path_spec configure_time_dlsearch_path configure_time_lt_sys_library_path reload_cmds_RC old_archive_cmds_RC old_archive_from_new_cmds_RC old_archive_from_expsyms_cmds_RC archive_cmds_RC archive_expsym_cmds_RC module_cmds_RC module_expsym_cmds_RC export_symbols_cmds_RC prelink_cmds_RC postlink_cmds_RC; do + case `eval \\$ECHO \\""\\$$var"\\"` in + *[\\\`\"\$]*) + eval "lt_$var=\\\"\`\$ECHO \"\$$var\" | \$SED -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_$var=\\\"\$$var\\\"" + ;; + esac +done + +ac_aux_dir='./build-aux/' + +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='xz' + VERSION='5.4.5' + RM='rm -f' + ofile='libtool' + + + + + +# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. + OBSOLETE_ALL_LINGUAS="" + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="%UNSET%" + + + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; + "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "src/liblzma/Makefile") CONFIG_FILES="$CONFIG_FILES src/liblzma/Makefile" ;; + "src/liblzma/api/Makefile") CONFIG_FILES="$CONFIG_FILES src/liblzma/api/Makefile" ;; + "src/xz/Makefile") CONFIG_FILES="$CONFIG_FILES src/xz/Makefile" ;; + "src/xzdec/Makefile") CONFIG_FILES="$CONFIG_FILES src/xzdec/Makefile" ;; + "src/lzmainfo/Makefile") CONFIG_FILES="$CONFIG_FILES src/lzmainfo/Makefile" ;; + "src/scripts/Makefile") CONFIG_FILES="$CONFIG_FILES src/scripts/Makefile" ;; + "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; + "debug/Makefile") CONFIG_FILES="$CONFIG_FILES debug/Makefile" ;; + "src/scripts/xzdiff") CONFIG_FILES="$CONFIG_FILES src/scripts/xzdiff" ;; + "src/scripts/xzgrep") CONFIG_FILES="$CONFIG_FILES src/scripts/xzgrep" ;; + "src/scripts/xzmore") CONFIG_FILES="$CONFIG_FILES src/scripts/xzmore" ;; + "src/scripts/xzless") CONFIG_FILES="$CONFIG_FILES src/scripts/xzless" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files + test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers + test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +cat >>"$ac_tmp/subs1.awk" <<\_ACAWK && +S["am__EXEEXT_FALSE"]="" +S["am__EXEEXT_TRUE"]="#" +S["LTLIBOBJS"]="" +S["xz"]="xz" +S["AM_CFLAGS"]=" -pthread -fvisibility=hidden -Wall -Wextra -Wvla -Wformat=2 -Winit-self -Wmissing-include-dirs -Wstrict-overflow=3 -Wfloat-equal -Wundef -Wshadow -"\ +"Wpointer-arith -Wbad-function-cast -Wwrite-strings -Wdate-time -Wsign-conversion -Wfloat-conversion -Waggregate-return -Wstrict-prototypes -Wold-sty"\ +"le-definition -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wc99-compat -Wc11-extensions -Wc2x-compat -Wc2x-extensions -Wpre-c2x-co"\ +"mpat -Warray-bounds-pointer-arithmetic -Wassign-enum -Wconditional-uninitialized -Wdocumentation -Wduplicate-enum -Wempty-translation-unit -Wflexibl"\ +"e-array-extensions -Wmissing-variable-declarations -Wnewline-eof -Wshift-sign-overflow -Wstring-conversion" +S["COND_GNULIB_FALSE"]="" +S["COND_GNULIB_TRUE"]="#" +S["HAVE_VISIBILITY"]="1" +S["CFLAG_VISIBILITY"]="-fvisibility=hidden" +S["CAPSICUM_LIB"]="" +S["COND_INTERNAL_SHA256_FALSE"]="#" +S["COND_INTERNAL_SHA256_TRUE"]="" +S["GETOPT_H"]="" +S["LIBOBJS"]="" +S["POSUB"]="" +S["LTLIBINTL"]="" +S["LIBINTL"]="" +S["INTLLIBS"]="" +S["LTLIBICONV"]="-liconv" +S["LIBICONV"]="-liconv" +S["INTL_MACOSX_LIBS"]="-Wl,-framework -Wl,CoreFoundation" +S["XGETTEXT_EXTRA_OPTIONS"]="" +S["MSGMERGE_FOR_MSGFMT_OPTION"]="--no-location --quiet" +S["MSGMERGE"]=":" +S["XGETTEXT_015"]=":" +S["XGETTEXT"]=":" +S["GMSGFMT_015"]=":" +S["GMSGFMT"]=":" +S["MSGFMT"]=":" +S["GETTEXT_MACRO_VERSION"]="0.20" +S["USE_NLS"]="no" +S["COND_SYMVERS_GENERIC_FALSE"]="" +S["COND_SYMVERS_GENERIC_TRUE"]="#" +S["COND_SYMVERS_LINUX_FALSE"]="" +S["COND_SYMVERS_LINUX_TRUE"]="#" +S["COND_SHARED_FALSE"]="#" +S["COND_SHARED_TRUE"]="" +S["RC"]="" +S["LT_SYS_LIBRARY_PATH"]="" +S["OTOOL64"]=":" +S["OTOOL"]="otool" +S["LIPO"]="lipo" +S["NMEDIT"]="nmedit" +S["DSYMUTIL"]="dsymutil" +S["MANIFEST_TOOL"]=":" +S["RANLIB"]="ranlib" +S["ac_ct_AR"]="ar" +S["AR"]="ar" +S["FILECMD"]="file" +S["NM"]="/usr/bin/nm -B" +S["ac_ct_DUMPBIN"]="" +S["DUMPBIN"]="" +S["LD"]="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" +S["FGREP"]="/usr/bin/grep -F" +S["LIBTOOL"]="$(SHELL) $(top_builddir)/libtool" +S["OBJDUMP"]="objdump" +S["DLLTOOL"]="false" +S["AS"]="as" +S["COND_THREADS_FALSE"]="#" +S["COND_THREADS_TRUE"]="" +S["PTHREAD_CFLAGS"]="-pthread" +S["PTHREAD_LIBS"]="-lpthread" +S["PTHREAD_CXX"]="" +S["PTHREAD_CC"]="gcc" +S["ax_pthread_config"]="" +S["EGREP"]="/usr/bin/grep -E" +S["GREP"]="/usr/bin/grep" +S["CPP"]="gcc -E" +S["SED"]="/usr/bin/sed" +S["am__fastdepCCAS_FALSE"]="#" +S["am__fastdepCCAS_TRUE"]="" +S["CCASDEPMODE"]="depmode=gcc3" +S["CCASFLAGS"]="-g -O2" +S["CCAS"]="gcc" +S["am__fastdepCC_FALSE"]="#" +S["am__fastdepCC_TRUE"]="" +S["CCDEPMODE"]="depmode=gcc3" +S["am__nodep"]="_no" +S["AMDEPBACKSLASH"]="\\" +S["AMDEP_FALSE"]="#" +S["AMDEP_TRUE"]="" +S["am__include"]="include" +S["DEPDIR"]=".deps" +S["OBJEXT"]="o" +S["EXEEXT"]="" +S["ac_ct_CC"]="gcc" +S["CPPFLAGS"]="" +S["LDFLAGS"]="" +S["CFLAGS"]="-g -O2" +S["CC"]="gcc" +S["LN_S"]="ln -s" +S["AM_BACKSLASH"]="\\" +S["AM_DEFAULT_VERBOSITY"]="1" +S["AM_DEFAULT_V"]="$(AM_DEFAULT_VERBOSITY)" +S["AM_V"]="$(V)" +S["CSCOPE"]="cscope" +S["ETAGS"]="etags" +S["CTAGS"]="ctags" +S["am__untar"]="$${TAR-tar} xf -" +S["am__tar"]="$${TAR-tar} chof - \"$$tardir\"" +S["AMTAR"]="$${TAR-tar}" +S["am__leading_dot"]="." +S["SET_MAKE"]="" +S["AWK"]="awk" +S["mkdir_p"]="$(MKDIR_P)" +S["MKDIR_P"]="./build-aux/install-sh -c -d" +S["INSTALL_STRIP_PROGRAM"]="$(install_sh) -c -s" +S["STRIP"]="strip" +S["install_sh"]="${SHELL} /Users/bharathy/Open-Sora-All/xz-5.4.5/build-aux/install-sh" +S["MAKEINFO"]="${SHELL} '/Users/bharathy/Open-Sora-All/xz-5.4.5/build-aux/missing' makeinfo" +S["AUTOHEADER"]="${SHELL} '/Users/bharathy/Open-Sora-All/xz-5.4.5/build-aux/missing' autoheader" +S["AUTOMAKE"]="${SHELL} '/Users/bharathy/Open-Sora-All/xz-5.4.5/build-aux/missing' automake-1.16" +S["AUTOCONF"]="${SHELL} '/Users/bharathy/Open-Sora-All/xz-5.4.5/build-aux/missing' autoconf" +S["ACLOCAL"]="${SHELL} '/Users/bharathy/Open-Sora-All/xz-5.4.5/build-aux/missing' aclocal-1.16" +S["VERSION"]="5.4.5" +S["PACKAGE"]="xz" +S["CYGPATH_W"]="echo" +S["am__isrc"]="" +S["INSTALL_DATA"]="${INSTALL} -m 644" +S["INSTALL_SCRIPT"]="${INSTALL}" +S["INSTALL_PROGRAM"]="${INSTALL}" +S["PREFERABLY_POSIX_SHELL"]="/bin/sh" +S["POSIX_SHELL"]="/bin/sh" +S["enable_path_for_scripts"]="" +S["COND_DOC_FALSE"]="#" +S["COND_DOC_TRUE"]="" +S["COND_SCRIPTS_FALSE"]="#" +S["COND_SCRIPTS_TRUE"]="" +S["COND_LZMALINKS_FALSE"]="#" +S["COND_LZMALINKS_TRUE"]="" +S["COND_LZMAINFO_FALSE"]="#" +S["COND_LZMAINFO_TRUE"]="" +S["COND_LZMADEC_FALSE"]="#" +S["COND_LZMADEC_TRUE"]="" +S["COND_XZDEC_FALSE"]="#" +S["COND_XZDEC_TRUE"]="" +S["COND_XZ_FALSE"]="#" +S["COND_XZ_TRUE"]="" +S["COND_SMALL_FALSE"]="" +S["COND_SMALL_TRUE"]="#" +S["COND_ASM_X86_FALSE"]="" +S["COND_ASM_X86_TRUE"]="#" +S["COND_LZIP_DECODER_FALSE"]="#" +S["COND_LZIP_DECODER_TRUE"]="" +S["COND_MICROLZMA_FALSE"]="#" +S["COND_MICROLZMA_TRUE"]="" +S["COND_CHECK_SHA256_FALSE"]="#" +S["COND_CHECK_SHA256_TRUE"]="" +S["COND_CHECK_CRC64_FALSE"]="#" +S["COND_CHECK_CRC64_TRUE"]="" +S["COND_CHECK_CRC32_FALSE"]="#" +S["COND_CHECK_CRC32_TRUE"]="" +S["COND_DECODER_LZ_FALSE"]="#" +S["COND_DECODER_LZ_TRUE"]="" +S["COND_ENCODER_LZ_FALSE"]="#" +S["COND_ENCODER_LZ_TRUE"]="" +S["COND_FILTER_LZ_FALSE"]="#" +S["COND_FILTER_LZ_TRUE"]="" +S["COND_DECODER_SIMPLE_FALSE"]="#" +S["COND_DECODER_SIMPLE_TRUE"]="" +S["COND_ENCODER_SIMPLE_FALSE"]="#" +S["COND_ENCODER_SIMPLE_TRUE"]="" +S["COND_FILTER_SIMPLE_FALSE"]="#" +S["COND_FILTER_SIMPLE_TRUE"]="" +S["COND_DECODER_SPARC_FALSE"]="#" +S["COND_DECODER_SPARC_TRUE"]="" +S["COND_ENCODER_SPARC_FALSE"]="#" +S["COND_ENCODER_SPARC_TRUE"]="" +S["COND_FILTER_SPARC_FALSE"]="#" +S["COND_FILTER_SPARC_TRUE"]="" +S["COND_DECODER_ARM64_FALSE"]="#" +S["COND_DECODER_ARM64_TRUE"]="" +S["COND_ENCODER_ARM64_FALSE"]="#" +S["COND_ENCODER_ARM64_TRUE"]="" +S["COND_FILTER_ARM64_FALSE"]="#" +S["COND_FILTER_ARM64_TRUE"]="" +S["COND_DECODER_ARMTHUMB_FALSE"]="#" +S["COND_DECODER_ARMTHUMB_TRUE"]="" +S["COND_ENCODER_ARMTHUMB_FALSE"]="#" +S["COND_ENCODER_ARMTHUMB_TRUE"]="" +S["COND_FILTER_ARMTHUMB_FALSE"]="#" +S["COND_FILTER_ARMTHUMB_TRUE"]="" +S["COND_DECODER_ARM_FALSE"]="#" +S["COND_DECODER_ARM_TRUE"]="" +S["COND_ENCODER_ARM_FALSE"]="#" +S["COND_ENCODER_ARM_TRUE"]="" +S["COND_FILTER_ARM_FALSE"]="#" +S["COND_FILTER_ARM_TRUE"]="" +S["COND_DECODER_IA64_FALSE"]="#" +S["COND_DECODER_IA64_TRUE"]="" +S["COND_ENCODER_IA64_FALSE"]="#" +S["COND_ENCODER_IA64_TRUE"]="" +S["COND_FILTER_IA64_FALSE"]="#" +S["COND_FILTER_IA64_TRUE"]="" +S["COND_DECODER_POWERPC_FALSE"]="#" +S["COND_DECODER_POWERPC_TRUE"]="" +S["COND_ENCODER_POWERPC_FALSE"]="#" +S["COND_ENCODER_POWERPC_TRUE"]="" +S["COND_FILTER_POWERPC_FALSE"]="#" +S["COND_FILTER_POWERPC_TRUE"]="" +S["COND_DECODER_X86_FALSE"]="#" +S["COND_DECODER_X86_TRUE"]="" +S["COND_ENCODER_X86_FALSE"]="#" +S["COND_ENCODER_X86_TRUE"]="" +S["COND_FILTER_X86_FALSE"]="#" +S["COND_FILTER_X86_TRUE"]="" +S["COND_DECODER_DELTA_FALSE"]="#" +S["COND_DECODER_DELTA_TRUE"]="" +S["COND_ENCODER_DELTA_FALSE"]="#" +S["COND_ENCODER_DELTA_TRUE"]="" +S["COND_FILTER_DELTA_FALSE"]="#" +S["COND_FILTER_DELTA_TRUE"]="" +S["COND_DECODER_LZMA2_FALSE"]="#" +S["COND_DECODER_LZMA2_TRUE"]="" +S["COND_ENCODER_LZMA2_FALSE"]="#" +S["COND_ENCODER_LZMA2_TRUE"]="" +S["COND_FILTER_LZMA2_FALSE"]="#" +S["COND_FILTER_LZMA2_TRUE"]="" +S["COND_DECODER_LZMA1_FALSE"]="#" +S["COND_DECODER_LZMA1_TRUE"]="" +S["COND_ENCODER_LZMA1_FALSE"]="#" +S["COND_ENCODER_LZMA1_TRUE"]="" +S["COND_FILTER_LZMA1_FALSE"]="#" +S["COND_FILTER_LZMA1_TRUE"]="" +S["COND_MAIN_DECODER_FALSE"]="#" +S["COND_MAIN_DECODER_TRUE"]="" +S["COND_MAIN_ENCODER_FALSE"]="#" +S["COND_MAIN_ENCODER_TRUE"]="" +S["LN_EXEEXT"]="$(EXEEXT)" +S["COND_W32_FALSE"]="" +S["COND_W32_TRUE"]="#" +S["host_os"]="darwin25.0.0" +S["host_vendor"]="apple" +S["host_cpu"]="x86_64" +S["host"]="x86_64-apple-darwin25.0.0" +S["build_os"]="darwin25.0.0" +S["build_vendor"]="apple" +S["build_cpu"]="x86_64" +S["build"]="x86_64-apple-darwin25.0.0" +S["target_alias"]="" +S["host_alias"]="" +S["build_alias"]="" +S["LIBS"]=" -lpthread" +S["ECHO_T"]="" +S["ECHO_N"]="" +S["ECHO_C"]="\\c" +S["DEFS"]="-DHAVE_CONFIG_H" +S["mandir"]="${datarootdir}/man" +S["localedir"]="${datarootdir}/locale" +S["libdir"]="${exec_prefix}/lib" +S["psdir"]="${docdir}" +S["pdfdir"]="${docdir}" +S["dvidir"]="${docdir}" +S["htmldir"]="${docdir}" +S["infodir"]="${datarootdir}/info" +S["docdir"]="${datarootdir}/doc/${PACKAGE_TARNAME}" +S["oldincludedir"]="/usr/include" +S["includedir"]="${prefix}/include" +S["runstatedir"]="${localstatedir}/run" +S["localstatedir"]="${prefix}/var" +S["sharedstatedir"]="${prefix}/com" +S["sysconfdir"]="${prefix}/etc" +S["datadir"]="${datarootdir}" +S["datarootdir"]="${prefix}/share" +S["libexecdir"]="${exec_prefix}/libexec" +S["sbindir"]="${exec_prefix}/sbin" +S["bindir"]="${exec_prefix}/bin" +S["program_transform_name"]="s,x,x," +S["prefix"]="/Users/bharathy/Open-Sora-All/xz-install" +S["exec_prefix"]="${prefix}" +S["PACKAGE_URL"]="https://tukaani.org/xz/" +S["PACKAGE_BUGREPORT"]="xz@tukaani.org" +S["PACKAGE_STRING"]="XZ Utils 5.4.5" +S["PACKAGE_VERSION"]="5.4.5" +S["PACKAGE_TARNAME"]="xz" +S["PACKAGE_NAME"]="XZ Utils" +S["PATH_SEPARATOR"]=":" +S["SHELL"]="/bin/sh" +S["am__quote"]="" +_ACAWK +cat >>"$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +D["PACKAGE_NAME"]=" \"XZ Utils\"" +D["PACKAGE_TARNAME"]=" \"xz\"" +D["PACKAGE_VERSION"]=" \"5.4.5\"" +D["PACKAGE_STRING"]=" \"XZ Utils 5.4.5\"" +D["PACKAGE_BUGREPORT"]=" \"xz@tukaani.org\"" +D["PACKAGE_URL"]=" \"https://tukaani.org/xz/\"" +D["NDEBUG"]=" 1" +D["HAVE_ENCODER_LZMA1"]=" 1" +D["HAVE_ENCODER_LZMA2"]=" 1" +D["HAVE_ENCODER_DELTA"]=" 1" +D["HAVE_ENCODER_X86"]=" 1" +D["HAVE_ENCODER_POWERPC"]=" 1" +D["HAVE_ENCODER_IA64"]=" 1" +D["HAVE_ENCODER_ARM"]=" 1" +D["HAVE_ENCODER_ARMTHUMB"]=" 1" +D["HAVE_ENCODER_ARM64"]=" 1" +D["HAVE_ENCODER_SPARC"]=" 1" +D["HAVE_ENCODERS"]=" 1" +D["HAVE_DECODER_LZMA1"]=" 1" +D["HAVE_DECODER_LZMA2"]=" 1" +D["HAVE_DECODER_DELTA"]=" 1" +D["HAVE_DECODER_X86"]=" 1" +D["HAVE_DECODER_POWERPC"]=" 1" +D["HAVE_DECODER_IA64"]=" 1" +D["HAVE_DECODER_ARM"]=" 1" +D["HAVE_DECODER_ARMTHUMB"]=" 1" +D["HAVE_DECODER_ARM64"]=" 1" +D["HAVE_DECODER_SPARC"]=" 1" +D["HAVE_DECODERS"]=" 1" +D["HAVE_MF_HC3"]=" 1" +D["HAVE_MF_HC4"]=" 1" +D["HAVE_MF_BT2"]=" 1" +D["HAVE_MF_BT3"]=" 1" +D["HAVE_MF_BT4"]=" 1" +D["HAVE_CHECK_CRC32"]=" 1" +D["HAVE_CHECK_CRC64"]=" 1" +D["HAVE_CHECK_SHA256"]=" 1" +D["HAVE_LZIP_DECODER"]=" 1" +D["ASSUME_RAM"]=" 128" +D["PACKAGE"]=" \"xz\"" +D["VERSION"]=" \"5.4.5\"" +D["HAVE_STDIO_H"]=" 1" +D["HAVE_STDLIB_H"]=" 1" +D["HAVE_STRING_H"]=" 1" +D["HAVE_INTTYPES_H"]=" 1" +D["HAVE_STDINT_H"]=" 1" +D["HAVE_STRINGS_H"]=" 1" +D["HAVE_SYS_STAT_H"]=" 1" +D["HAVE_SYS_TYPES_H"]=" 1" +D["HAVE_UNISTD_H"]=" 1" +D["HAVE_WCHAR_H"]=" 1" +D["STDC_HEADERS"]=" 1" +D["_ALL_SOURCE"]=" 1" +D["_DARWIN_C_SOURCE"]=" 1" +D["_GNU_SOURCE"]=" 1" +D["_HPUX_ALT_XOPEN_SOCKET_API"]=" 1" +D["_NETBSD_SOURCE"]=" 1" +D["_OPENBSD_SOURCE"]=" 1" +D["_POSIX_PTHREAD_SEMANTICS"]=" 1" +D["__STDC_WANT_IEC_60559_ATTRIBS_EXT__"]=" 1" +D["__STDC_WANT_IEC_60559_BFP_EXT__"]=" 1" +D["__STDC_WANT_IEC_60559_DFP_EXT__"]=" 1" +D["__STDC_WANT_IEC_60559_FUNCS_EXT__"]=" 1" +D["__STDC_WANT_IEC_60559_TYPES_EXT__"]=" 1" +D["__STDC_WANT_LIB_EXT2__"]=" 1" +D["__STDC_WANT_MATH_SPEC_FUNCS__"]=" 1" +D["_TANDEM_SOURCE"]=" 1" +D["__EXTENSIONS__"]=" 1" +D["HAVE_PTHREAD_PRIO_INHERIT"]=" 1" +D["MYTHREAD_POSIX"]=" 1" +D["HAVE_CLOCK_GETTIME"]=" 1" +D["HAVE_CLOCK_MONOTONIC"]=" 1" +D["HAVE_DLFCN_H"]=" 1" +D["LT_OBJDIR"]=" \".libs/\"" +D["HAVE_CFPREFERENCESCOPYAPPVALUE"]=" 1" +D["HAVE_CFLOCALECOPYPREFERREDLANGUAGES"]=" 1" +D["HAVE_ICONV"]=" 1" +D["HAVE_FCNTL_H"]=" 1" +D["HAVE_LIMITS_H"]=" 1" +D["HAVE_SYS_TIME_H"]=" 1" +D["HAVE_IMMINTRIN_H"]=" 1" +D["HAVE_CPUID_H"]=" 1" +D["HAVE__BOOL"]=" 1" +D["HAVE_STDBOOL_H"]=" 1" +D["HAVE_UINTPTR_T"]=" 1" +D["SIZEOF_SIZE_T"]=" 8" +D["HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC"]=" 1" +D["HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR"]=" 1" +D["HAVE_GETOPT_H"]=" 1" +D["HAVE_GETOPT_LONG"]=" 1" +D["HAVE_OPTRESET"]=" 1" +D["HAVE_FUTIMENS"]=" 1" +D["HAVE___BUILTIN_BSWAPXX"]=" 1" +D["TUKLIB_FAST_UNALIGNED_ACCESS"]=" 1" +D["HAVE___BUILTIN_ASSUME_ALIGNED"]=" 1" +D["HAVE_SYS_PARAM_H"]=" 1" +D["TUKLIB_PHYSMEM_SYSCONF"]=" 1" +D["HAVE_SYS_PARAM_H"]=" 1" +D["TUKLIB_CPUCORES_SYSCTL"]=" 1" +D["HAVE_MBRTOWC"]=" 1" +D["HAVE_WCWIDTH"]=" 1" +D["HAVE__MM_MOVEMASK_EPI8"]=" 1" +D["HAVE_USABLE_CLMUL"]=" 1" +D["HAVE_VISIBILITY"]=" 1" + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+[_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ][_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]*([\t (]|$)/ { + line = $ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +printf "%s\n" "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`printf "%s\n" "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} + ac_datarootdir_hack=' + s&@datadir@&${datarootdir}&g + s&@docdir@&${datarootdir}/doc/${PACKAGE_TARNAME}&g + s&@infodir@&${datarootdir}/info&g + s&@localedir@&${datarootdir}/locale&g + s&@mandir@&${datarootdir}/man&g + s&\${datarootdir}&${prefix}/share&g' ;; +esac +ac_sed_extra="/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +} + +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + printf "%s\n" "/* $configure_input */" >&1 \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +printf "%s\n" "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + printf "%s\n" "/* $configure_input */" >&1 \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +printf "%s\n" "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + case $CONFIG_FILES in #( + *\'*) : + eval set x "$CONFIG_FILES" ;; #( + *) : + set x $CONFIG_FILES ;; #( + *) : + ;; +esac + shift + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf + do + # Strip MF so we end up with the name of the file. + am_mf=`printf "%s\n" "$am_mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`$as_dirname -- "$am_mf" || +$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$am_mf" : 'X\(//\)[^/]' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$am_mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + am_filepart=`$as_basename -- "$am_mf" || +$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X/"$am_mf" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { echo "$as_me:$LINENO: cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles" >&5 + (cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } || am_rc=$? + done + if test $am_rc -ne 0; then + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE=\"gmake\" (or whatever is + necessary). You can also try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking). +See \`config.log' for more details" "$LINENO" 5; } + fi + { am_dirpart=; unset am_dirpart;} + { am_filepart=; unset am_filepart;} + { am_mf=; unset am_mf;} + { am_rc=; unset am_rc;} + rm -f conftest-deps.mk +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +# The names of the tagged configurations supported by this script. +available_tags='RC ' + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Assembler program. +AS=$lt_AS + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Object dumper program. +OBJDUMP=$lt_OBJDUMP + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shared archive member basename,for filename based shared library versioning on AIX. +shared_archive_member_spec=$shared_archive_member_spec + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# A file(cmd) program that detects file types. +FILECMD=$lt_FILECMD + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive (by configure). +lt_ar_flags=$lt_ar_flags + +# Flags to create an archive. +AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"} + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm into a list of symbols to manually relocate. +global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# The name lister interface. +nm_interface=$lt_lt_cv_nm_interface + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and where our libraries should be installed. +lt_sysroot=$lt_sysroot + +# Command to truncate a binary pipe. +lt_truncate_bin=$lt_lt_cv_truncate_bin + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Detected run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path + +# Explicit LT_SYS_LIBRARY_PATH set during ./configure time. +configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \$shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + + +ltmain=$ac_aux_dir/ltmain.sh + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + $SED '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + + cat <<_LT_EOF >> "$ofile" + +# ### BEGIN LIBTOOL TAG CONFIG: RC + +# The linker used to build libraries. +LD=$lt_LD_RC + +# How to create reloadable object files. +reload_flag=$lt_reload_flag_RC +reload_cmds=$lt_reload_cmds_RC + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds_RC + +# A language specific compiler. +CC=$lt_compiler_RC + +# Is the compiler the GNU compiler? +with_gcc=$GCC_RC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_RC + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_RC + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_RC + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_RC + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object_RC + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds_RC +archive_expsym_cmds=$lt_archive_expsym_cmds_RC + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds_RC +module_expsym_cmds=$lt_module_expsym_cmds_RC + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld_RC + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_RC + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_RC + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct_RC + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \$shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute_RC + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L_RC + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_RC + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic_RC + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath_RC + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_RC + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols_RC + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_RC + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_RC + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_RC + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds_RC + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds_RC + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec_RC + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_RC + +# ### END LIBTOOL TAG CONFIG: RC +_LT_EOF + + ;; + "po-directories":C) + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + # Treat a directory as a PO directory if and only if it has a + # POTFILES.in file. This allows packages to have multiple PO + # directories under different names or in different locations. + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + gt_tab=`printf '\t'` + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + ALL_LINGUAS=$OBSOLETE_ALL_LINGUAS + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang" | "$presentlang"_* | "$presentlang".* | "$presentlang"@*) + useit=yes + ;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done ;; + "src/scripts/xzdiff":F) chmod +x src/scripts/xzdiff ;; + "src/scripts/xzgrep":F) chmod +x src/scripts/xzgrep ;; + "src/scripts/xzmore":F) chmod +x src/scripts/xzmore ;; + "src/scripts/xzless":F) chmod +x src/scripts/xzless ;; + + esac +done # for ac_tag + + +as_fn_exit 0 diff --git a/xz-5.4.5/configure b/xz-5.4.5/configure new file mode 100755 index 000000000..5f8aa8c91 --- /dev/null +++ b/xz-5.4.5/configure @@ -0,0 +1,24905 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.71 for XZ Utils 5.4.5. +# +# Report bugs to . +# +# +# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, +# Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else $as_nop + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. +as_nl=' +' +export as_nl +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi + +# The user is always right. +if ${PATH_SEPARATOR+false} :; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="as_nop=: +if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else \$as_nop + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ) +then : + +else \$as_nop + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +blah=\$(echo \$(echo blah)) +test x\"\$blah\" = xblah || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" + if (eval "$as_required") 2>/dev/null +then : + as_have_required=yes +else $as_nop + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null +then : + +else $as_nop + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : + CONFIG_SHELL=$as_shell as_have_required=yes + if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null +then : + break 2 +fi +fi + done;; + esac + as_found=false +done +IFS=$as_save_IFS +if $as_found +then : + +else $as_nop + if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi +fi + + + if test "x$CONFIG_SHELL" != x +then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno +then : + printf "%s\n" "$0: This script requires a shell more modern than all" + printf "%s\n" "$0: the shells that I found on your system." + if test ${ZSH_VERSION+y} ; then + printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" + printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." + else + printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and xz@tukaani.org +$0: about your system, including any error possibly output +$0: before this message. Then install a modern shell, or +$0: manually run the script under such a shell if you do +$0: have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else $as_nop + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else $as_nop + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + printf "%s\n" "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + +SHELL=${CONFIG_SHELL-/bin/sh} + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='XZ Utils' +PACKAGE_TARNAME='xz' +PACKAGE_VERSION='5.4.5' +PACKAGE_STRING='XZ Utils 5.4.5' +PACKAGE_BUGREPORT='xz@tukaani.org' +PACKAGE_URL='https://tukaani.org/xz/' + +ac_unique_file="src/liblzma/common/common.h" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_STDIO_H +# include +#endif +#ifdef HAVE_STDLIB_H +# include +#endif +#ifdef HAVE_STRING_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_header_c_list= +gt_needs= +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +xz +AM_CFLAGS +COND_GNULIB_FALSE +COND_GNULIB_TRUE +HAVE_VISIBILITY +CFLAG_VISIBILITY +CAPSICUM_LIB +COND_INTERNAL_SHA256_FALSE +COND_INTERNAL_SHA256_TRUE +GETOPT_H +LIBOBJS +POSUB +LTLIBINTL +LIBINTL +INTLLIBS +LTLIBICONV +LIBICONV +INTL_MACOSX_LIBS +XGETTEXT_EXTRA_OPTIONS +MSGMERGE_FOR_MSGFMT_OPTION +MSGMERGE +XGETTEXT_015 +XGETTEXT +GMSGFMT_015 +GMSGFMT +MSGFMT +GETTEXT_MACRO_VERSION +USE_NLS +COND_SYMVERS_GENERIC_FALSE +COND_SYMVERS_GENERIC_TRUE +COND_SYMVERS_LINUX_FALSE +COND_SYMVERS_LINUX_TRUE +COND_SHARED_FALSE +COND_SHARED_TRUE +RC +LT_SYS_LIBRARY_PATH +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +ac_ct_AR +AR +FILECMD +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +LIBTOOL +OBJDUMP +DLLTOOL +AS +COND_THREADS_FALSE +COND_THREADS_TRUE +PTHREAD_CFLAGS +PTHREAD_LIBS +PTHREAD_CXX +PTHREAD_CC +ax_pthread_config +EGREP +GREP +CPP +SED +am__fastdepCCAS_FALSE +am__fastdepCCAS_TRUE +CCASDEPMODE +CCASFLAGS +CCAS +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +LN_S +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V +CSCOPE +ETAGS +CTAGS +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +PREFERABLY_POSIX_SHELL +POSIX_SHELL +enable_path_for_scripts +COND_DOC_FALSE +COND_DOC_TRUE +COND_SCRIPTS_FALSE +COND_SCRIPTS_TRUE +COND_LZMALINKS_FALSE +COND_LZMALINKS_TRUE +COND_LZMAINFO_FALSE +COND_LZMAINFO_TRUE +COND_LZMADEC_FALSE +COND_LZMADEC_TRUE +COND_XZDEC_FALSE +COND_XZDEC_TRUE +COND_XZ_FALSE +COND_XZ_TRUE +COND_SMALL_FALSE +COND_SMALL_TRUE +COND_ASM_X86_FALSE +COND_ASM_X86_TRUE +COND_LZIP_DECODER_FALSE +COND_LZIP_DECODER_TRUE +COND_MICROLZMA_FALSE +COND_MICROLZMA_TRUE +COND_CHECK_SHA256_FALSE +COND_CHECK_SHA256_TRUE +COND_CHECK_CRC64_FALSE +COND_CHECK_CRC64_TRUE +COND_CHECK_CRC32_FALSE +COND_CHECK_CRC32_TRUE +COND_DECODER_LZ_FALSE +COND_DECODER_LZ_TRUE +COND_ENCODER_LZ_FALSE +COND_ENCODER_LZ_TRUE +COND_FILTER_LZ_FALSE +COND_FILTER_LZ_TRUE +COND_DECODER_SIMPLE_FALSE +COND_DECODER_SIMPLE_TRUE +COND_ENCODER_SIMPLE_FALSE +COND_ENCODER_SIMPLE_TRUE +COND_FILTER_SIMPLE_FALSE +COND_FILTER_SIMPLE_TRUE +COND_DECODER_SPARC_FALSE +COND_DECODER_SPARC_TRUE +COND_ENCODER_SPARC_FALSE +COND_ENCODER_SPARC_TRUE +COND_FILTER_SPARC_FALSE +COND_FILTER_SPARC_TRUE +COND_DECODER_ARM64_FALSE +COND_DECODER_ARM64_TRUE +COND_ENCODER_ARM64_FALSE +COND_ENCODER_ARM64_TRUE +COND_FILTER_ARM64_FALSE +COND_FILTER_ARM64_TRUE +COND_DECODER_ARMTHUMB_FALSE +COND_DECODER_ARMTHUMB_TRUE +COND_ENCODER_ARMTHUMB_FALSE +COND_ENCODER_ARMTHUMB_TRUE +COND_FILTER_ARMTHUMB_FALSE +COND_FILTER_ARMTHUMB_TRUE +COND_DECODER_ARM_FALSE +COND_DECODER_ARM_TRUE +COND_ENCODER_ARM_FALSE +COND_ENCODER_ARM_TRUE +COND_FILTER_ARM_FALSE +COND_FILTER_ARM_TRUE +COND_DECODER_IA64_FALSE +COND_DECODER_IA64_TRUE +COND_ENCODER_IA64_FALSE +COND_ENCODER_IA64_TRUE +COND_FILTER_IA64_FALSE +COND_FILTER_IA64_TRUE +COND_DECODER_POWERPC_FALSE +COND_DECODER_POWERPC_TRUE +COND_ENCODER_POWERPC_FALSE +COND_ENCODER_POWERPC_TRUE +COND_FILTER_POWERPC_FALSE +COND_FILTER_POWERPC_TRUE +COND_DECODER_X86_FALSE +COND_DECODER_X86_TRUE +COND_ENCODER_X86_FALSE +COND_ENCODER_X86_TRUE +COND_FILTER_X86_FALSE +COND_FILTER_X86_TRUE +COND_DECODER_DELTA_FALSE +COND_DECODER_DELTA_TRUE +COND_ENCODER_DELTA_FALSE +COND_ENCODER_DELTA_TRUE +COND_FILTER_DELTA_FALSE +COND_FILTER_DELTA_TRUE +COND_DECODER_LZMA2_FALSE +COND_DECODER_LZMA2_TRUE +COND_ENCODER_LZMA2_FALSE +COND_ENCODER_LZMA2_TRUE +COND_FILTER_LZMA2_FALSE +COND_FILTER_LZMA2_TRUE +COND_DECODER_LZMA1_FALSE +COND_DECODER_LZMA1_TRUE +COND_ENCODER_LZMA1_FALSE +COND_ENCODER_LZMA1_TRUE +COND_FILTER_LZMA1_FALSE +COND_FILTER_LZMA1_TRUE +COND_MAIN_DECODER_FALSE +COND_MAIN_DECODER_TRUE +COND_MAIN_ENCODER_FALSE +COND_MAIN_ENCODER_TRUE +LN_EXEEXT +COND_W32_FALSE +COND_W32_TRUE +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +runstatedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL +am__quote' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_debug +enable_encoders +enable_decoders +enable_match_finders +enable_checks +enable_external_sha256 +enable_microlzma +enable_lzip_decoder +enable_assembler +enable_clmul_crc +enable_small +enable_threads +enable_assume_ram +enable_xz +enable_xzdec +enable_lzmadec +enable_lzmainfo +enable_lzma_links +enable_scripts +enable_doc +enable_sandbox +enable_path_for_scripts +enable_silent_rules +enable_dependency_tracking +enable_shared +enable_static +with_pic +enable_fast_install +with_aix_soname +with_gnu_ld +with_sysroot +enable_libtool_lock +enable_symbol_versions +enable_nls +enable_rpath +with_libiconv_prefix +with_libintl_prefix +enable_largefile +enable_unaligned_access +enable_unsafe_type_punning +enable_werror +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CCAS +CCASFLAGS +CPP +LT_SYS_LIBRARY_PATH' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: \`$ac_useropt'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: \`$ac_useropt'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: \`$ac_useropt'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: \`$ac_useropt'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir runstatedir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures XZ Utils 5.4.5 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/xz] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of XZ Utils 5.4.5:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-debug Enable debugging code. + --enable-encoders=LIST Comma-separated list of encoders to build. + Default=all. Available encoders: lzma1 lzma2 delta + x86 powerpc ia64 arm armthumb arm64 sparc + --enable-decoders=LIST Comma-separated list of decoders to build. + Default=all. Available decoders are the same as + available encoders. + --enable-match-finders=LIST + Comma-separated list of match finders to build. + Default=all. At least one match finder is required + for encoding with the LZMA1 and LZMA2 filters. + Available match finders: hc3 hc4 bt2 bt3 bt4 + --enable-checks=LIST Comma-separated list of integrity checks to build. + Default=all. Available integrity checks: crc32 crc64 + sha256 + --enable-external-sha256 + Use SHA-256 code from the operating system. See + INSTALL for possible subtle problems. + --disable-microlzma Do not build MicroLZMA encoder and decoder. It is + needed by specific applications only, for example, + erofs-utils. + --disable-lzip-decoder Disable decompression support for .lz (lzip) files. + --disable-assembler Do not use assembler optimizations even if such + exist for the architecture. + --disable-clmul-crc Do not use carryless multiplication for CRC + calculation even if support for it is detected. + --enable-small Make liblzma smaller and a little slower. This is + disabled by default to optimize for speed. + --enable-threads=METHOD Supported METHODS are `yes', `no', `posix', `win95', + and `vista'. The default is `yes'. Using `no' + together with --enable-small makes liblzma thread + unsafe. + --enable-assume-ram=SIZE + If and only if the real amount of RAM cannot be + determined, assume SIZE MiB. The default is 128 MiB. + This affects the default memory usage limit. + --disable-xz do not build the xz tool + --disable-xzdec do not build xzdec + --disable-lzmadec do not build lzmadec (it exists primarily for LZMA + Utils compatibility) + --disable-lzmainfo do not build lzmainfo (it exists primarily for LZMA + Utils compatibility) + --disable-lzma-links do not create symlinks for LZMA Utils compatibility + --disable-scripts do not install the scripts xzdiff, xzgrep, xzless, + xzmore, and their symlinks + --disable-doc do not install documentation files to docdir (man + pages will still be installed) + --enable-sandbox=METHOD Sandboxing METHOD can be `auto', `no', `capsicum', + or `pledge'. The default is `auto' which enables + sandboxing if a supported sandboxing method is + found. + --enable-path-for-scripts=PREFIX + If PREFIX isn't empty, PATH=PREFIX:$PATH will be set + in the beginning of the scripts (xzgrep and others). + The default is empty except on Solaris the default + is /usr/xpg4/bin. + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-static[=PKGS] build static libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) + --enable-symbol-versions + Use symbol versioning for liblzma. Enabled by + default on GNU/Linux, other GNU-based systems, and + FreeBSD. + --disable-nls do not use Native Language Support + --disable-rpath do not hardcode runtime library paths + --disable-largefile omit support for large files + --enable-unaligned-access + Enable if the system supports *fast* unaligned + memory access with 16-bit, 32-bit, and 64-bit + integers. By default, this is enabled only on x86, + x86_64, big endian PowerPC, and some ARM systems. + --enable-unsafe-type-punning + This introduces strict aliasing violations and may + result in broken code. However, this might improve + performance in some cases, especially with old + compilers (e.g. GCC 3 and early 4.x on x86, GCC < 6 + on ARMv6 and ARMv7). + --enable-werror Enable -Werror to abort compilation on all compiler + warnings. + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use + both] + --with-aix-soname=aix|svr4|both + shared library versioning (aka "SONAME") variant to + provide on AIX, [default=aix]. + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-sysroot[=DIR] Search for dependent libraries within DIR (or the + compiler's sysroot if not specified). + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib + --without-libiconv-prefix don't search for libiconv in includedir and libdir + --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib + --without-libintl-prefix don't search for libintl in includedir and libdir + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CCAS assembler compiler command (defaults to CC) + CCASFLAGS assembler compiler flags (defaults to CFLAGS) + CPP C preprocessor + LT_SYS_LIBRARY_PATH + User-defined run-time library search path. + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +XZ Utils home page: . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for configure.gnu first; this name is used for a wrapper for + # Metaconfig's "Configure" on case-insensitive file systems. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +XZ Utils configure 5.4.5 +generated by GNU Autoconf 2.71 + +Copyright (C) 2021 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest.beam + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext +then : + ac_retval=0 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$3=yes" +else $as_nop + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + } +then : + ac_retval=0 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + } +then : + ac_retval=0 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. */ + +#include +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main (void) +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + eval "$3=yes" +else $as_nop + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func + +# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR +# ------------------------------------------------------------------ +# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR +# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR. +ac_fn_check_decl () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + as_decl_name=`echo $2|sed 's/ *(.*//'` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 +printf %s "checking whether $as_decl_name is declared... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` + eval ac_save_FLAGS=\$$6 + as_fn_append $6 " $5" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +#ifndef $as_decl_name +#ifdef __cplusplus + (void) $as_decl_use; +#else + (void) $as_decl_name; +#endif +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$3=yes" +else $as_nop + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + eval $6=\$ac_save_FLAGS + +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_check_decl + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that +# executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } +then : + ac_retval=0 +else $as_nop + printf "%s\n" "$as_me: program exited with status $ac_status" >&5 + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_check_type LINENO TYPE VAR INCLUDES +# ------------------------------------------- +# Tests whether TYPE exists after having included INCLUDES, setting cache +# variable VAR accordingly. +ac_fn_c_check_type () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + eval "$3=no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +if (sizeof ($2)) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +if (sizeof (($2))) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else $as_nop + eval "$3=yes" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_type + +# ac_fn_c_find_uintX_t LINENO BITS VAR +# ------------------------------------ +# Finds an unsigned integer type with width BITS, setting cache variable VAR +# accordingly. +ac_fn_c_find_uintX_t () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 +printf %s "checking for uint$2_t... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + eval "$3=no" + # Order is important - never check a type that is potentially smaller + # than half of the expected target width. + for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \ + 'unsigned long long int' 'unsigned short int' 'unsigned char'; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main (void) +{ +static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + case $ac_type in #( + uint$2_t) : + eval "$3=yes" ;; #( + *) : + eval "$3=\$ac_type" ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + if eval test \"x\$"$3"\" = x"no" +then : + +else $as_nop + break +fi + done +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_find_uintX_t + +# ac_fn_c_find_intX_t LINENO BITS VAR +# ----------------------------------- +# Finds a signed integer type with width BITS, setting cache variable VAR +# accordingly. +ac_fn_c_find_intX_t () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for int$2_t" >&5 +printf %s "checking for int$2_t... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + eval "$3=no" + # Order is important - never check a type that is potentially smaller + # than half of the expected target width. + for ac_type in int$2_t 'int' 'long int' \ + 'long long int' 'short int' 'signed char'; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default + enum { N = $2 / 2 - 1 }; +int +main (void) +{ +static int test_array [1 - 2 * !(0 < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1))]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default + enum { N = $2 / 2 - 1 }; +int +main (void) +{ +static int test_array [1 - 2 * !(($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1) + < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 2))]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else $as_nop + case $ac_type in #( + int$2_t) : + eval "$3=yes" ;; #( + *) : + eval "$3=\$ac_type" ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + if eval test \"x\$"$3"\" = x"no" +then : + +else $as_nop + break +fi + done +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_find_intX_t + +# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES +# -------------------------------------------- +# Tries to find the compile-time value of EXPR in a program that includes +# INCLUDES, setting VAR accordingly. Returns whether the value could be +# computed +ac_fn_c_compute_int () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +static int test_array [1 - 2 * !(($2) >= 0)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_lo=0 ac_mid=0 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_hi=$ac_mid; break +else $as_nop + as_fn_arith $ac_mid + 1 && ac_lo=$as_val + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + done +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +static int test_array [1 - 2 * !(($2) < 0)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_hi=-1 ac_mid=-1 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +static int test_array [1 - 2 * !(($2) >= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_lo=$ac_mid; break +else $as_nop + as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + done +else $as_nop + ac_lo= ac_hi= +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_hi=$ac_mid +else $as_nop + as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +done +case $ac_lo in #(( +?*) eval "$3=\$ac_lo"; ac_retval=0 ;; +'') ac_retval=1 ;; +esac + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +static long int longval (void) { return $2; } +static unsigned long int ulongval (void) { return $2; } +#include +#include +int +main (void) +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (($2) < 0) + { + long int i = longval (); + if (i != ($2)) + return 1; + fprintf (f, "%ld", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ($2)) + return 1; + fprintf (f, "%lu", i); + } + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + echo >>conftest.val; read $3 &5 +printf %s "checking for $2.$3... " >&6; } +if eval test \${$4+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$5 +int +main (void) +{ +static $2 ac_aggr; +if (ac_aggr.$3) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$4=yes" +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$5 +int +main (void) +{ +static $2 ac_aggr; +if (sizeof ac_aggr.$3) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$4=yes" +else $as_nop + eval "$4=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$4 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_member +ac_configure_args_raw= +for ac_arg +do + case $ac_arg in + *\'*) + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append ac_configure_args_raw " '$ac_arg'" +done + +case $ac_configure_args_raw in + *$as_nl*) + ac_safe_unquote= ;; + *) + ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. + ac_unsafe_a="$ac_unsafe_z#~" + ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" + ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; +esac + +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by XZ Utils $as_me 5.4.5, which was +generated by GNU Autoconf 2.71. Invocation command line was + + $ $0$ac_configure_args_raw + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + printf "%s\n" "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Sanitize IFS. + IFS=" "" $as_nl" + # Save into config.log some information that might help in debugging. + { + echo + + printf "%s\n" "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + printf "%s\n" "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + printf "%s\n" "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + printf "%s\n" "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + printf "%s\n" "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + printf "%s\n" "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + printf "%s\n" "$as_me: caught signal $ac_signal" + printf "%s\n" "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +printf "%s\n" "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +if test -n "$CONFIG_SITE"; then + ac_site_files="$CONFIG_SITE" +elif test "x$prefix" != xNONE; then + ac_site_files="$prefix/share/config.site $prefix/etc/config.site" +else + ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" +fi + +for ac_site_file in $ac_site_files +do + case $ac_site_file in #( + */*) : + ;; #( + *) : + ac_site_file=./$ac_site_file ;; +esac + if test -f "$ac_site_file" && test -r "$ac_site_file"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +printf "%s\n" "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +printf "%s\n" "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Test code for whether the C compiler supports C89 (global declarations) +ac_c_conftest_c89_globals=' +/* Does the compiler advertise C89 conformance? + Do not test the value of __STDC__, because some compilers set it to 0 + while being otherwise adequately conformant. */ +#if !defined __STDC__ +# error "Compiler does not advertise C89 conformance" +#endif + +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ +struct buf { int x; }; +struct buf * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not \xHH hex character constants. + These do not provoke an error unfortunately, instead are silently treated + as an "x". The following induces an error, until -std is added to get + proper ANSI mode. Curiously \x00 != x always comes out true, for an + array size at least. It is necessary to write \x00 == 0 to get something + that is true only with -std. */ +int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) '\''x'\'' +int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), + int, int);' + +# Test code for whether the C compiler supports C89 (body of main). +ac_c_conftest_c89_main=' +ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); +' + +# Test code for whether the C compiler supports C99 (global declarations) +ac_c_conftest_c99_globals=' +// Does the compiler advertise C99 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L +# error "Compiler does not advertise C99 conformance" +#endif + +#include +extern int puts (const char *); +extern int printf (const char *, ...); +extern int dprintf (int, const char *, ...); +extern void *malloc (size_t); + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +// dprintf is used instead of fprintf to avoid needing to declare +// FILE and stderr. +#define debug(...) dprintf (2, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + #error "your preprocessor is broken" +#endif +#if BIG_OK +#else + #error "your preprocessor is broken" +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static bool +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str = ""; + int number = 0; + float fnumber = 0; + + while (*format) + { + switch (*format++) + { + case '\''s'\'': // string + str = va_arg (args_copy, const char *); + break; + case '\''d'\'': // int + number = va_arg (args_copy, int); + break; + case '\''f'\'': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); + + return *str && number && fnumber; +} +' + +# Test code for whether the C compiler supports C99 (body of main). +ac_c_conftest_c99_main=' + // Check bool. + _Bool success = false; + success |= (argc != 0); + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[0] = argv[0][0]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' + || dynamic_array[ni.number - 1] != 543); +' + +# Test code for whether the C compiler supports C11 (global declarations) +ac_c_conftest_c11_globals=' +// Does the compiler advertise C11 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L +# error "Compiler does not advertise C11 conformance" +#endif + +// Check _Alignas. +char _Alignas (double) aligned_as_double; +char _Alignas (0) no_special_alignment; +extern char aligned_as_int; +char _Alignas (0) _Alignas (int) aligned_as_int; + +// Check _Alignof. +enum +{ + int_alignment = _Alignof (int), + int_array_alignment = _Alignof (int[100]), + char_alignment = _Alignof (char) +}; +_Static_assert (0 < -_Alignof (int), "_Alignof is signed"); + +// Check _Noreturn. +int _Noreturn does_not_return (void) { for (;;) continue; } + +// Check _Static_assert. +struct test_static_assert +{ + int x; + _Static_assert (sizeof (int) <= sizeof (long int), + "_Static_assert does not work in struct"); + long int y; +}; + +// Check UTF-8 literals. +#define u8 syntax error! +char const utf8_literal[] = u8"happens to be ASCII" "another string"; + +// Check duplicate typedefs. +typedef long *long_ptr; +typedef long int *long_ptr; +typedef long_ptr long_ptr; + +// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. +struct anonymous +{ + union { + struct { int i; int j; }; + struct { int k; long int l; } w; + }; + int m; +} v1; +' + +# Test code for whether the C compiler supports C11 (body of main). +ac_c_conftest_c11_main=' + _Static_assert ((offsetof (struct anonymous, i) + == offsetof (struct anonymous, w.k)), + "Anonymous union alignment botch"); + v1.i = 2; + v1.w.k = 5; + ok |= v1.i != 5; +' + +# Test code for whether the C compiler supports C11 (complete). +ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} +${ac_c_conftest_c11_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + ${ac_c_conftest_c11_main} + return ok; +} +" + +# Test code for whether the C compiler supports C99 (complete). +ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + return ok; +} +" + +# Test code for whether the C compiler supports C89 (complete). +ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + return ok; +} +" + +as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" +as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H" +as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H" +as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H" +as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H" +as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" +as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" +as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" +as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" +as_fn_append ac_header_c_list " wchar.h wchar_h HAVE_WCHAR_H" +as_fn_append ac_header_c_list " minix/config.h minix_config_h HAVE_MINIX_CONFIG_H" +gt_needs="$gt_needs " + +# Auxiliary files required by this configure script. +ac_aux_files="config.rpath ltmain.sh compile missing install-sh config.guess config.sub" + +# Locations in which to look for auxiliary files. +ac_aux_dir_candidates="${srcdir}/build-aux" + +# Search for a directory containing all of the required auxiliary files, +# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates. +# If we don't find one directory that contains all the files we need, +# we report the set of missing files from the *first* directory in +# $ac_aux_dir_candidates and give up. +ac_missing_aux_files="" +ac_first_candidate=: +printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in $ac_aux_dir_candidates +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + as_found=: + + printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5 + ac_aux_dir_found=yes + ac_install_sh= + for ac_aux in $ac_aux_files + do + # As a special case, if "install-sh" is required, that requirement + # can be satisfied by any of "install-sh", "install.sh", or "shtool", + # and $ac_install_sh is set appropriately for whichever one is found. + if test x"$ac_aux" = x"install-sh" + then + if test -f "${as_dir}install-sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5 + ac_install_sh="${as_dir}install-sh -c" + elif test -f "${as_dir}install.sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5 + ac_install_sh="${as_dir}install.sh -c" + elif test -f "${as_dir}shtool"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5 + ac_install_sh="${as_dir}shtool install -c" + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} install-sh" + else + break + fi + fi + else + if test -f "${as_dir}${ac_aux}"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5 + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}" + else + break + fi + fi + fi + done + if test "$ac_aux_dir_found" = yes; then + ac_aux_dir="$as_dir" + break + fi + ac_first_candidate=false + + as_found=false +done +IFS=$as_save_IFS +if $as_found +then : + +else $as_nop + as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 +fi + + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +if test -f "${ac_aux_dir}config.guess"; then + ac_config_guess="$SHELL ${ac_aux_dir}config.guess" +fi +if test -f "${ac_aux_dir}config.sub"; then + ac_config_sub="$SHELL ${ac_aux_dir}config.sub" +fi +if test -f "$ac_aux_dir/configure"; then + ac_configure="$SHELL ${ac_aux_dir}configure" +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' + and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + +ac_config_headers="$ac_config_headers config.h" + + +echo +echo "$PACKAGE_STRING" + +echo +echo "System type:" +# This is needed to know if assembler optimizations can be used. + + + + # Make sure we can run config.sub. +$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5 + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +printf %s "checking build system type... " >&6; } +if test ${ac_cv_build+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +printf "%s\n" "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +printf %s "checking host system type... " >&6; } +if test ${ac_cv_host+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` || + as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +printf "%s\n" "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + + +# We do some special things on Windows (32-bit or 64-bit) builds. +case $host_os in + mingw* | cygwin | msys) is_w32=yes ;; + *) is_w32=no ;; +esac + if test "$is_w32" = yes; then + COND_W32_TRUE= + COND_W32_FALSE='#' +else + COND_W32_TRUE='#' + COND_W32_FALSE= +fi + + +# We need to use $EXEEXT with $(LN_S) when creating symlinks to +# executables. Cygwin is an exception to this, since it is recommended +# that symlinks don't have the .exe suffix. To make this work, we +# define LN_EXEEXT. +# +# MSYS2 is treated the same way as Cygwin. It uses plain "msys" like +# the original MSYS when building MSYS/MSYS2-binaries. Hopefully this +# doesn't break things for the original MSYS developers. Note that this +# doesn't affect normal MSYS/MSYS2 users building non-MSYS/MSYS2 binaries +# since in that case the $host_os is usually mingw32. +case $host_os in + cygwin | msys) LN_EXEEXT= ;; + *) LN_EXEEXT='$(EXEEXT)' ;; +esac + + +echo +echo "Configure options:" +AM_CFLAGS= + + +############# +# Debugging # +############# + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if debugging code should be compiled" >&5 +printf %s "checking if debugging code should be compiled... " >&6; } +# Check whether --enable-debug was given. +if test ${enable_debug+y} +then : + enableval=$enable_debug; +else $as_nop + enable_debug=no +fi + +if test "x$enable_debug" = xyes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else + +printf "%s\n" "#define NDEBUG 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +########### +# Filters # +########### + + + + +enable_filter_lzma1=no +enable_encoder_lzma1=no +enable_decoder_lzma1=no +enable_filter_lzma2=no +enable_encoder_lzma2=no +enable_decoder_lzma2=no +enable_filter_delta=no +enable_encoder_delta=no +enable_decoder_delta=no +enable_filter_x86=no +enable_encoder_x86=no +enable_decoder_x86=no +enable_filter_powerpc=no +enable_encoder_powerpc=no +enable_decoder_powerpc=no +enable_filter_ia64=no +enable_encoder_ia64=no +enable_decoder_ia64=no +enable_filter_arm=no +enable_encoder_arm=no +enable_decoder_arm=no +enable_filter_armthumb=no +enable_encoder_armthumb=no +enable_decoder_armthumb=no +enable_filter_arm64=no +enable_encoder_arm64=no +enable_decoder_arm64=no +enable_filter_sparc=no +enable_encoder_sparc=no +enable_decoder_sparc=no + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which encoders to build" >&5 +printf %s "checking which encoders to build... " >&6; } +# Check whether --enable-encoders was given. +if test ${enable_encoders+y} +then : + enableval=$enable_encoders; +else $as_nop + enable_encoders=lzma1,lzma2,delta,x86,powerpc,ia64,arm,armthumb,arm64,sparc +fi + +enable_encoders=`echo "$enable_encoders" | sed 's/,/ /g'` +if test "x$enable_encoders" = xno || test "x$enable_encoders" = x; then + enable_encoders=no + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: (none)" >&5 +printf "%s\n" "(none)" >&6; } +else + for arg in $enable_encoders + do + case $arg in + lzma1) + enable_filter_lzma1=yes + enable_encoder_lzma1=yes + +printf "%s\n" "#define HAVE_ENCODER_LZMA1 1" >>confdefs.h + + ;; + lzma2) + enable_filter_lzma2=yes + enable_encoder_lzma2=yes + +printf "%s\n" "#define HAVE_ENCODER_LZMA2 1" >>confdefs.h + + ;; + delta) + enable_filter_delta=yes + enable_encoder_delta=yes + +printf "%s\n" "#define HAVE_ENCODER_DELTA 1" >>confdefs.h + + ;; + x86) + enable_filter_x86=yes + enable_encoder_x86=yes + +printf "%s\n" "#define HAVE_ENCODER_X86 1" >>confdefs.h + + ;; + powerpc) + enable_filter_powerpc=yes + enable_encoder_powerpc=yes + +printf "%s\n" "#define HAVE_ENCODER_POWERPC 1" >>confdefs.h + + ;; + ia64) + enable_filter_ia64=yes + enable_encoder_ia64=yes + +printf "%s\n" "#define HAVE_ENCODER_IA64 1" >>confdefs.h + + ;; + arm) + enable_filter_arm=yes + enable_encoder_arm=yes + +printf "%s\n" "#define HAVE_ENCODER_ARM 1" >>confdefs.h + + ;; + armthumb) + enable_filter_armthumb=yes + enable_encoder_armthumb=yes + +printf "%s\n" "#define HAVE_ENCODER_ARMTHUMB 1" >>confdefs.h + + ;; + arm64) + enable_filter_arm64=yes + enable_encoder_arm64=yes + +printf "%s\n" "#define HAVE_ENCODER_ARM64 1" >>confdefs.h + + ;; + sparc) + enable_filter_sparc=yes + enable_encoder_sparc=yes + +printf "%s\n" "#define HAVE_ENCODER_SPARC 1" >>confdefs.h + + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 +printf "%s\n" "" >&6; } + as_fn_error $? "unknown filter: $arg" "$LINENO" 5 + ;; + esac + done + +printf "%s\n" "#define HAVE_ENCODERS 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_encoders" >&5 +printf "%s\n" "$enable_encoders" >&6; } +fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which decoders to build" >&5 +printf %s "checking which decoders to build... " >&6; } +# Check whether --enable-decoders was given. +if test ${enable_decoders+y} +then : + enableval=$enable_decoders; +else $as_nop + enable_decoders=lzma1,lzma2,delta,x86,powerpc,ia64,arm,armthumb,arm64,sparc +fi + +enable_decoders=`echo "$enable_decoders" | sed 's/,/ /g'` +if test "x$enable_decoders" = xno || test "x$enable_decoders" = x; then + enable_decoders=no + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: (none)" >&5 +printf "%s\n" "(none)" >&6; } +else + for arg in $enable_decoders + do + case $arg in + lzma1) + enable_filter_lzma1=yes + enable_decoder_lzma1=yes + +printf "%s\n" "#define HAVE_DECODER_LZMA1 1" >>confdefs.h + + ;; + lzma2) + enable_filter_lzma2=yes + enable_decoder_lzma2=yes + +printf "%s\n" "#define HAVE_DECODER_LZMA2 1" >>confdefs.h + + ;; + delta) + enable_filter_delta=yes + enable_decoder_delta=yes + +printf "%s\n" "#define HAVE_DECODER_DELTA 1" >>confdefs.h + + ;; + x86) + enable_filter_x86=yes + enable_decoder_x86=yes + +printf "%s\n" "#define HAVE_DECODER_X86 1" >>confdefs.h + + ;; + powerpc) + enable_filter_powerpc=yes + enable_decoder_powerpc=yes + +printf "%s\n" "#define HAVE_DECODER_POWERPC 1" >>confdefs.h + + ;; + ia64) + enable_filter_ia64=yes + enable_decoder_ia64=yes + +printf "%s\n" "#define HAVE_DECODER_IA64 1" >>confdefs.h + + ;; + arm) + enable_filter_arm=yes + enable_decoder_arm=yes + +printf "%s\n" "#define HAVE_DECODER_ARM 1" >>confdefs.h + + ;; + armthumb) + enable_filter_armthumb=yes + enable_decoder_armthumb=yes + +printf "%s\n" "#define HAVE_DECODER_ARMTHUMB 1" >>confdefs.h + + ;; + arm64) + enable_filter_arm64=yes + enable_decoder_arm64=yes + +printf "%s\n" "#define HAVE_DECODER_ARM64 1" >>confdefs.h + + ;; + sparc) + enable_filter_sparc=yes + enable_decoder_sparc=yes + +printf "%s\n" "#define HAVE_DECODER_SPARC 1" >>confdefs.h + + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 +printf "%s\n" "" >&6; } + as_fn_error $? "unknown filter: $arg" "$LINENO" 5 + ;; + esac + done + +printf "%s\n" "#define HAVE_DECODERS 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_decoders" >&5 +printf "%s\n" "$enable_decoders" >&6; } +fi + +if test "x$enable_encoder_lzma2$enable_encoder_lzma1" = xyesno \ + || test "x$enable_decoder_lzma2$enable_decoder_lzma1" = xyesno; then + as_fn_error $? "LZMA2 requires that LZMA1 is also enabled." "$LINENO" 5 +fi + + if test "x$enable_encoders" != xno; then + COND_MAIN_ENCODER_TRUE= + COND_MAIN_ENCODER_FALSE='#' +else + COND_MAIN_ENCODER_TRUE='#' + COND_MAIN_ENCODER_FALSE= +fi + + if test "x$enable_decoders" != xno; then + COND_MAIN_DECODER_TRUE= + COND_MAIN_DECODER_FALSE='#' +else + COND_MAIN_DECODER_TRUE='#' + COND_MAIN_DECODER_FALSE= +fi + + + if test "x$enable_filter_lzma1" = xyes; then + COND_FILTER_LZMA1_TRUE= + COND_FILTER_LZMA1_FALSE='#' +else + COND_FILTER_LZMA1_TRUE='#' + COND_FILTER_LZMA1_FALSE= +fi + + if test "x$enable_encoder_lzma1" = xyes; then + COND_ENCODER_LZMA1_TRUE= + COND_ENCODER_LZMA1_FALSE='#' +else + COND_ENCODER_LZMA1_TRUE='#' + COND_ENCODER_LZMA1_FALSE= +fi + + if test "x$enable_decoder_lzma1" = xyes; then + COND_DECODER_LZMA1_TRUE= + COND_DECODER_LZMA1_FALSE='#' +else + COND_DECODER_LZMA1_TRUE='#' + COND_DECODER_LZMA1_FALSE= +fi + + if test "x$enable_filter_lzma2" = xyes; then + COND_FILTER_LZMA2_TRUE= + COND_FILTER_LZMA2_FALSE='#' +else + COND_FILTER_LZMA2_TRUE='#' + COND_FILTER_LZMA2_FALSE= +fi + + if test "x$enable_encoder_lzma2" = xyes; then + COND_ENCODER_LZMA2_TRUE= + COND_ENCODER_LZMA2_FALSE='#' +else + COND_ENCODER_LZMA2_TRUE='#' + COND_ENCODER_LZMA2_FALSE= +fi + + if test "x$enable_decoder_lzma2" = xyes; then + COND_DECODER_LZMA2_TRUE= + COND_DECODER_LZMA2_FALSE='#' +else + COND_DECODER_LZMA2_TRUE='#' + COND_DECODER_LZMA2_FALSE= +fi + + if test "x$enable_filter_delta" = xyes; then + COND_FILTER_DELTA_TRUE= + COND_FILTER_DELTA_FALSE='#' +else + COND_FILTER_DELTA_TRUE='#' + COND_FILTER_DELTA_FALSE= +fi + + if test "x$enable_encoder_delta" = xyes; then + COND_ENCODER_DELTA_TRUE= + COND_ENCODER_DELTA_FALSE='#' +else + COND_ENCODER_DELTA_TRUE='#' + COND_ENCODER_DELTA_FALSE= +fi + + if test "x$enable_decoder_delta" = xyes; then + COND_DECODER_DELTA_TRUE= + COND_DECODER_DELTA_FALSE='#' +else + COND_DECODER_DELTA_TRUE='#' + COND_DECODER_DELTA_FALSE= +fi + + if test "x$enable_filter_x86" = xyes; then + COND_FILTER_X86_TRUE= + COND_FILTER_X86_FALSE='#' +else + COND_FILTER_X86_TRUE='#' + COND_FILTER_X86_FALSE= +fi + + if test "x$enable_encoder_x86" = xyes; then + COND_ENCODER_X86_TRUE= + COND_ENCODER_X86_FALSE='#' +else + COND_ENCODER_X86_TRUE='#' + COND_ENCODER_X86_FALSE= +fi + + if test "x$enable_decoder_x86" = xyes; then + COND_DECODER_X86_TRUE= + COND_DECODER_X86_FALSE='#' +else + COND_DECODER_X86_TRUE='#' + COND_DECODER_X86_FALSE= +fi + + if test "x$enable_filter_powerpc" = xyes; then + COND_FILTER_POWERPC_TRUE= + COND_FILTER_POWERPC_FALSE='#' +else + COND_FILTER_POWERPC_TRUE='#' + COND_FILTER_POWERPC_FALSE= +fi + + if test "x$enable_encoder_powerpc" = xyes; then + COND_ENCODER_POWERPC_TRUE= + COND_ENCODER_POWERPC_FALSE='#' +else + COND_ENCODER_POWERPC_TRUE='#' + COND_ENCODER_POWERPC_FALSE= +fi + + if test "x$enable_decoder_powerpc" = xyes; then + COND_DECODER_POWERPC_TRUE= + COND_DECODER_POWERPC_FALSE='#' +else + COND_DECODER_POWERPC_TRUE='#' + COND_DECODER_POWERPC_FALSE= +fi + + if test "x$enable_filter_ia64" = xyes; then + COND_FILTER_IA64_TRUE= + COND_FILTER_IA64_FALSE='#' +else + COND_FILTER_IA64_TRUE='#' + COND_FILTER_IA64_FALSE= +fi + + if test "x$enable_encoder_ia64" = xyes; then + COND_ENCODER_IA64_TRUE= + COND_ENCODER_IA64_FALSE='#' +else + COND_ENCODER_IA64_TRUE='#' + COND_ENCODER_IA64_FALSE= +fi + + if test "x$enable_decoder_ia64" = xyes; then + COND_DECODER_IA64_TRUE= + COND_DECODER_IA64_FALSE='#' +else + COND_DECODER_IA64_TRUE='#' + COND_DECODER_IA64_FALSE= +fi + + if test "x$enable_filter_arm" = xyes; then + COND_FILTER_ARM_TRUE= + COND_FILTER_ARM_FALSE='#' +else + COND_FILTER_ARM_TRUE='#' + COND_FILTER_ARM_FALSE= +fi + + if test "x$enable_encoder_arm" = xyes; then + COND_ENCODER_ARM_TRUE= + COND_ENCODER_ARM_FALSE='#' +else + COND_ENCODER_ARM_TRUE='#' + COND_ENCODER_ARM_FALSE= +fi + + if test "x$enable_decoder_arm" = xyes; then + COND_DECODER_ARM_TRUE= + COND_DECODER_ARM_FALSE='#' +else + COND_DECODER_ARM_TRUE='#' + COND_DECODER_ARM_FALSE= +fi + + if test "x$enable_filter_armthumb" = xyes; then + COND_FILTER_ARMTHUMB_TRUE= + COND_FILTER_ARMTHUMB_FALSE='#' +else + COND_FILTER_ARMTHUMB_TRUE='#' + COND_FILTER_ARMTHUMB_FALSE= +fi + + if test "x$enable_encoder_armthumb" = xyes; then + COND_ENCODER_ARMTHUMB_TRUE= + COND_ENCODER_ARMTHUMB_FALSE='#' +else + COND_ENCODER_ARMTHUMB_TRUE='#' + COND_ENCODER_ARMTHUMB_FALSE= +fi + + if test "x$enable_decoder_armthumb" = xyes; then + COND_DECODER_ARMTHUMB_TRUE= + COND_DECODER_ARMTHUMB_FALSE='#' +else + COND_DECODER_ARMTHUMB_TRUE='#' + COND_DECODER_ARMTHUMB_FALSE= +fi + + if test "x$enable_filter_arm64" = xyes; then + COND_FILTER_ARM64_TRUE= + COND_FILTER_ARM64_FALSE='#' +else + COND_FILTER_ARM64_TRUE='#' + COND_FILTER_ARM64_FALSE= +fi + + if test "x$enable_encoder_arm64" = xyes; then + COND_ENCODER_ARM64_TRUE= + COND_ENCODER_ARM64_FALSE='#' +else + COND_ENCODER_ARM64_TRUE='#' + COND_ENCODER_ARM64_FALSE= +fi + + if test "x$enable_decoder_arm64" = xyes; then + COND_DECODER_ARM64_TRUE= + COND_DECODER_ARM64_FALSE='#' +else + COND_DECODER_ARM64_TRUE='#' + COND_DECODER_ARM64_FALSE= +fi + + if test "x$enable_filter_sparc" = xyes; then + COND_FILTER_SPARC_TRUE= + COND_FILTER_SPARC_FALSE='#' +else + COND_FILTER_SPARC_TRUE='#' + COND_FILTER_SPARC_FALSE= +fi + + if test "x$enable_encoder_sparc" = xyes; then + COND_ENCODER_SPARC_TRUE= + COND_ENCODER_SPARC_FALSE='#' +else + COND_ENCODER_SPARC_TRUE='#' + COND_ENCODER_SPARC_FALSE= +fi + + if test "x$enable_decoder_sparc" = xyes; then + COND_DECODER_SPARC_TRUE= + COND_DECODER_SPARC_FALSE='#' +else + COND_DECODER_SPARC_TRUE='#' + COND_DECODER_SPARC_FALSE= +fi + + +# The so called "simple filters" share common code. +enable_filter_simple=no +enable_encoder_simple=no +enable_decoder_simple=no +test "x$enable_filter_x86" = xyes && enable_filter_simple=yes +test "x$enable_encoder_x86" = xyes && enable_encoder_simple=yes +test "x$enable_decoder_x86" = xyes && enable_decoder_simple=yes +test "x$enable_filter_powerpc" = xyes && enable_filter_simple=yes +test "x$enable_encoder_powerpc" = xyes && enable_encoder_simple=yes +test "x$enable_decoder_powerpc" = xyes && enable_decoder_simple=yes +test "x$enable_filter_ia64" = xyes && enable_filter_simple=yes +test "x$enable_encoder_ia64" = xyes && enable_encoder_simple=yes +test "x$enable_decoder_ia64" = xyes && enable_decoder_simple=yes +test "x$enable_filter_arm" = xyes && enable_filter_simple=yes +test "x$enable_encoder_arm" = xyes && enable_encoder_simple=yes +test "x$enable_decoder_arm" = xyes && enable_decoder_simple=yes +test "x$enable_filter_armthumb" = xyes && enable_filter_simple=yes +test "x$enable_encoder_armthumb" = xyes && enable_encoder_simple=yes +test "x$enable_decoder_armthumb" = xyes && enable_decoder_simple=yes +test "x$enable_filter_arm64" = xyes && enable_filter_simple=yes +test "x$enable_encoder_arm64" = xyes && enable_encoder_simple=yes +test "x$enable_decoder_arm64" = xyes && enable_decoder_simple=yes +test "x$enable_filter_sparc" = xyes && enable_filter_simple=yes +test "x$enable_encoder_sparc" = xyes && enable_encoder_simple=yes +test "x$enable_decoder_sparc" = xyes && enable_decoder_simple=yes + if test "x$enable_filter_simple" = xyes; then + COND_FILTER_SIMPLE_TRUE= + COND_FILTER_SIMPLE_FALSE='#' +else + COND_FILTER_SIMPLE_TRUE='#' + COND_FILTER_SIMPLE_FALSE= +fi + + if test "x$enable_encoder_simple" = xyes; then + COND_ENCODER_SIMPLE_TRUE= + COND_ENCODER_SIMPLE_FALSE='#' +else + COND_ENCODER_SIMPLE_TRUE='#' + COND_ENCODER_SIMPLE_FALSE= +fi + + if test "x$enable_decoder_simple" = xyes; then + COND_DECODER_SIMPLE_TRUE= + COND_DECODER_SIMPLE_FALSE='#' +else + COND_DECODER_SIMPLE_TRUE='#' + COND_DECODER_SIMPLE_FALSE= +fi + + +# LZ-based filters share common code. +enable_filter_lz=no +enable_encoder_lz=no +enable_decoder_lz=no +test "x$enable_filter_lzma1" = xyes && enable_filter_lz=yes +test "x$enable_encoder_lzma1" = xyes && enable_encoder_lz=yes +test "x$enable_decoder_lzma1" = xyes && enable_decoder_lz=yes +test "x$enable_filter_lzma2" = xyes && enable_filter_lz=yes +test "x$enable_encoder_lzma2" = xyes && enable_encoder_lz=yes +test "x$enable_decoder_lzma2" = xyes && enable_decoder_lz=yes + if test "x$enable_filter_lz" = xyes; then + COND_FILTER_LZ_TRUE= + COND_FILTER_LZ_FALSE='#' +else + COND_FILTER_LZ_TRUE='#' + COND_FILTER_LZ_FALSE= +fi + + if test "x$enable_encoder_lz" = xyes; then + COND_ENCODER_LZ_TRUE= + COND_ENCODER_LZ_FALSE='#' +else + COND_ENCODER_LZ_TRUE='#' + COND_ENCODER_LZ_FALSE= +fi + + if test "x$enable_decoder_lz" = xyes; then + COND_DECODER_LZ_TRUE= + COND_DECODER_LZ_FALSE='#' +else + COND_DECODER_LZ_TRUE='#' + COND_DECODER_LZ_FALSE= +fi + + + +################# +# Match finders # +################# + + + +enable_match_finder_hc3=no +enable_match_finder_hc4=no +enable_match_finder_bt2=no +enable_match_finder_bt3=no +enable_match_finder_bt4=no + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which match finders to build" >&5 +printf %s "checking which match finders to build... " >&6; } +# Check whether --enable-match-finders was given. +if test ${enable_match_finders+y} +then : + enableval=$enable_match_finders; +else $as_nop + enable_match_finders=hc3,hc4,bt2,bt3,bt4 +fi + +enable_match_finders=`echo "$enable_match_finders" | sed 's/,/ /g'` +if test "x$enable_encoder_lz" = xyes ; then + if test -z "$enable_match_finders"; then + as_fn_error $? "At least one match finder is required for an LZ-based encoder." "$LINENO" 5 + fi + + for arg in $enable_match_finders + do + case $arg in + hc3) + enable_match_finder_hc3=yes + +printf "%s\n" "#define HAVE_MF_HC3 1" >>confdefs.h + + ;; + hc4) + enable_match_finder_hc4=yes + +printf "%s\n" "#define HAVE_MF_HC4 1" >>confdefs.h + + ;; + bt2) + enable_match_finder_bt2=yes + +printf "%s\n" "#define HAVE_MF_BT2 1" >>confdefs.h + + ;; + bt3) + enable_match_finder_bt3=yes + +printf "%s\n" "#define HAVE_MF_BT3 1" >>confdefs.h + + ;; + bt4) + enable_match_finder_bt4=yes + +printf "%s\n" "#define HAVE_MF_BT4 1" >>confdefs.h + + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 +printf "%s\n" "" >&6; } + as_fn_error $? "unknown match finder: $arg" "$LINENO" 5 + ;; + esac + done + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_match_finders" >&5 +printf "%s\n" "$enable_match_finders" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: (none because not building any LZ-based encoder)" >&5 +printf "%s\n" "(none because not building any LZ-based encoder)" >&6; } +fi + + +#################### +# Integrity checks # +#################### + + + +enable_check_crc32=no +enable_check_crc64=no +enable_check_sha256=no + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which integrity checks to build" >&5 +printf %s "checking which integrity checks to build... " >&6; } +# Check whether --enable-checks was given. +if test ${enable_checks+y} +then : + enableval=$enable_checks; +else $as_nop + enable_checks=crc32,crc64,sha256 +fi + +enable_checks=`echo "$enable_checks" | sed 's/,/ /g'` +if test "x$enable_checks" = xno || test "x$enable_checks" = x; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: (none)" >&5 +printf "%s\n" "(none)" >&6; } +else + for arg in $enable_checks + do + case $arg in + crc32) + enable_check_crc32=yes + +printf "%s\n" "#define HAVE_CHECK_CRC32 1" >>confdefs.h + + ;; + crc64) + enable_check_crc64=yes + +printf "%s\n" "#define HAVE_CHECK_CRC64 1" >>confdefs.h + + ;; + sha256) + enable_check_sha256=yes + +printf "%s\n" "#define HAVE_CHECK_SHA256 1" >>confdefs.h + + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 +printf "%s\n" "" >&6; } + as_fn_error $? "unknown integrity check: $arg" "$LINENO" 5 + ;; + esac + done + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_checks" >&5 +printf "%s\n" "$enable_checks" >&6; } +fi +if test "x$enable_check_crc32" = xno ; then + as_fn_error $? "For now, the CRC32 check must always be enabled." "$LINENO" 5 +fi + + if test "x$enable_check_crc32" = xyes; then + COND_CHECK_CRC32_TRUE= + COND_CHECK_CRC32_FALSE='#' +else + COND_CHECK_CRC32_TRUE='#' + COND_CHECK_CRC32_FALSE= +fi + + if test "x$enable_check_crc64" = xyes; then + COND_CHECK_CRC64_TRUE= + COND_CHECK_CRC64_FALSE='#' +else + COND_CHECK_CRC64_TRUE='#' + COND_CHECK_CRC64_FALSE= +fi + + if test "x$enable_check_sha256" = xyes; then + COND_CHECK_SHA256_TRUE= + COND_CHECK_SHA256_FALSE='#' +else + COND_CHECK_SHA256_TRUE='#' + COND_CHECK_SHA256_FALSE= +fi + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if external SHA-256 should be used" >&5 +printf %s "checking if external SHA-256 should be used... " >&6; } +# Check whether --enable-external-sha256 was given. +if test ${enable_external_sha256+y} +then : + enableval=$enable_external_sha256; +else $as_nop + enable_external_sha256=no +fi + +if test "x$enable_check_sha256" != "xyes"; then + enable_external_sha256=no +fi +if test "x$enable_external_sha256" = xyes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +############# +# MicroLZMA # +############# + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if MicroLZMA support should be built" >&5 +printf %s "checking if MicroLZMA support should be built... " >&6; } +# Check whether --enable-microlzma was given. +if test ${enable_microlzma+y} +then : + enableval=$enable_microlzma; +else $as_nop + enable_microlzma=yes +fi + +case $enable_microlzma in + yes | no) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_microlzma" >&5 +printf "%s\n" "$enable_microlzma" >&6; } + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 +printf "%s\n" "" >&6; } + as_fn_error $? "--enable-microlzma accepts only \`yes' or \`no'." "$LINENO" 5 + ;; +esac + if test "x$enable_microlzma" = xyes; then + COND_MICROLZMA_TRUE= + COND_MICROLZMA_FALSE='#' +else + COND_MICROLZMA_TRUE='#' + COND_MICROLZMA_FALSE= +fi + + + +############################# +# .lz (lzip) format support # +############################# + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if .lz (lzip) decompression support should be built" >&5 +printf %s "checking if .lz (lzip) decompression support should be built... " >&6; } +# Check whether --enable-lzip-decoder was given. +if test ${enable_lzip_decoder+y} +then : + enableval=$enable_lzip_decoder; +else $as_nop + enable_lzip_decoder=yes +fi + +if test "x$enable_decoder_lzma1" != xyes; then + enable_lzip_decoder=no + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no because LZMA1 decoder is disabled" >&5 +printf "%s\n" "no because LZMA1 decoder is disabled" >&6; } +elif test "x$enable_lzip_decoder" = xyes; then + +printf "%s\n" "#define HAVE_LZIP_DECODER 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + if test "x$enable_lzip_decoder" = xyes; then + COND_LZIP_DECODER_TRUE= + COND_LZIP_DECODER_FALSE='#' +else + COND_LZIP_DECODER_TRUE='#' + COND_LZIP_DECODER_FALSE= +fi + + + +########################### +# Assembler optimizations # +########################### + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if assembler optimizations should be used" >&5 +printf %s "checking if assembler optimizations should be used... " >&6; } +# Check whether --enable-assembler was given. +if test ${enable_assembler+y} +then : + enableval=$enable_assembler; +else $as_nop + enable_assembler=yes +fi + +if test "x$enable_assembler" = xyes; then + enable_assembler=no + case $host_os in + # Darwin should work too but only if not creating universal + # binaries. Solaris x86 could work too but I cannot test. + linux* | *bsd* | mingw* | cygwin | msys | *djgpp*) + case $host_cpu in + i?86) enable_assembler=x86 ;; + esac + ;; + esac +fi +case $enable_assembler in + x86 | no) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_assembler" >&5 +printf "%s\n" "$enable_assembler" >&6; } + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 +printf "%s\n" "" >&6; } + as_fn_error $? "--enable-assembler accepts only \`yes', \`no', or \`x86' (32-bit)." "$LINENO" 5 + ;; +esac + if test "x$enable_assembler" = xx86; then + COND_ASM_X86_TRUE= + COND_ASM_X86_FALSE='#' +else + COND_ASM_X86_TRUE='#' + COND_ASM_X86_FALSE= +fi + + + +############# +# CLMUL CRC # +############# + +# Check whether --enable-clmul-crc was given. +if test ${enable_clmul_crc+y} +then : + enableval=$enable_clmul_crc; +else $as_nop + enable_clmul_crc=yes +fi + + + +##################### +# Size optimization # +##################### + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if small size is preferred over speed" >&5 +printf %s "checking if small size is preferred over speed... " >&6; } +# Check whether --enable-small was given. +if test ${enable_small+y} +then : + enableval=$enable_small; +else $as_nop + enable_small=no +fi + +if test "x$enable_small" = xyes; then + +printf "%s\n" "#define HAVE_SMALL 1" >>confdefs.h + +elif test "x$enable_small" != xno; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 +printf "%s\n" "" >&6; } + as_fn_error $? "--enable-small accepts only \`yes' or \`no'" "$LINENO" 5 +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_small" >&5 +printf "%s\n" "$enable_small" >&6; } + if test "x$enable_small" = xyes; then + COND_SMALL_TRUE= + COND_SMALL_FALSE='#' +else + COND_SMALL_TRUE='#' + COND_SMALL_FALSE= +fi + + + +############# +# Threading # +############# + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if threading support is wanted" >&5 +printf %s "checking if threading support is wanted... " >&6; } +# Check whether --enable-threads was given. +if test ${enable_threads+y} +then : + enableval=$enable_threads; +else $as_nop + enable_threads=yes +fi + + +if test "x$enable_threads" = xyes; then + case $host_os in + mingw*) + case $host_cpu in + i?86) enable_threads=win95 ;; + *) enable_threads=vista ;; + esac + ;; + *) + enable_threads=posix + ;; + esac +fi + +case $enable_threads in + posix | win95 | vista) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes, $enable_threads" >&5 +printf "%s\n" "yes, $enable_threads" >&6; } + ;; + no) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 +printf "%s\n" "" >&6; } + as_fn_error $? "--enable-threads only accepts \`yes', \`no', \`posix', \`win95', or \`vista'" "$LINENO" 5 + ;; +esac + +# We use the actual result a little later. + + +######################### +# Assumed amount of RAM # +######################### + +# We use 128 MiB as default, because it will allow decompressing files +# created with "xz -9". It would be slightly safer to guess a lower value, +# but most systems, on which we don't have any way to determine the amount +# of RAM, will probably have at least 128 MiB of RAM. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how much RAM to assume if the real amount is unknown" >&5 +printf %s "checking how much RAM to assume if the real amount is unknown... " >&6; } +# Check whether --enable-assume-ram was given. +if test ${enable_assume_ram+y} +then : + enableval=$enable_assume_ram; +else $as_nop + enable_assume_ram=128 +fi + +assume_ram_check=`echo "$enable_assume_ram" | tr -d 0123456789` +if test -z "$enable_assume_ram" || test -n "$assume_ram_check"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 +printf "%s\n" "" >&6; } + as_fn_error $? "--enable-assume-ram accepts only an integer argument" "$LINENO" 5 +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_assume_ram MiB" >&5 +printf "%s\n" "$enable_assume_ram MiB" >&6; } + +printf "%s\n" "#define ASSUME_RAM $enable_assume_ram" >>confdefs.h + + + +######################### +# Components to install # +######################### + +# Check whether --enable-xz was given. +if test ${enable_xz+y} +then : + enableval=$enable_xz; +else $as_nop + enable_xz=yes +fi + + if test x$enable_xz != xno; then + COND_XZ_TRUE= + COND_XZ_FALSE='#' +else + COND_XZ_TRUE='#' + COND_XZ_FALSE= +fi + + +# Check whether --enable-xzdec was given. +if test ${enable_xzdec+y} +then : + enableval=$enable_xzdec; +else $as_nop + enable_xzdec=yes +fi + +test "x$enable_decoders" = xno && enable_xzdec=no + if test x$enable_xzdec != xno; then + COND_XZDEC_TRUE= + COND_XZDEC_FALSE='#' +else + COND_XZDEC_TRUE='#' + COND_XZDEC_FALSE= +fi + + +# Check whether --enable-lzmadec was given. +if test ${enable_lzmadec+y} +then : + enableval=$enable_lzmadec; +else $as_nop + enable_lzmadec=yes +fi + +test "x$enable_decoder_lzma1" = xno && enable_lzmadec=no + if test x$enable_lzmadec != xno; then + COND_LZMADEC_TRUE= + COND_LZMADEC_FALSE='#' +else + COND_LZMADEC_TRUE='#' + COND_LZMADEC_FALSE= +fi + + +# Check whether --enable-lzmainfo was given. +if test ${enable_lzmainfo+y} +then : + enableval=$enable_lzmainfo; +else $as_nop + enable_lzmainfo=yes +fi + +test "x$enable_decoder_lzma1" = xno && enable_lzmainfo=no + if test x$enable_lzmainfo != xno; then + COND_LZMAINFO_TRUE= + COND_LZMAINFO_FALSE='#' +else + COND_LZMAINFO_TRUE='#' + COND_LZMAINFO_FALSE= +fi + + +# Check whether --enable-lzma-links was given. +if test ${enable_lzma_links+y} +then : + enableval=$enable_lzma_links; +else $as_nop + enable_lzma_links=yes +fi + + if test x$enable_lzma_links != xno; then + COND_LZMALINKS_TRUE= + COND_LZMALINKS_FALSE='#' +else + COND_LZMALINKS_TRUE='#' + COND_LZMALINKS_FALSE= +fi + + +# Check whether --enable-scripts was given. +if test ${enable_scripts+y} +then : + enableval=$enable_scripts; +else $as_nop + enable_scripts=yes +fi + + if test x$enable_scripts != xno; then + COND_SCRIPTS_TRUE= + COND_SCRIPTS_FALSE='#' +else + COND_SCRIPTS_TRUE='#' + COND_SCRIPTS_FALSE= +fi + + +# Check whether --enable-doc was given. +if test ${enable_doc+y} +then : + enableval=$enable_doc; +else $as_nop + enable_doc=yes +fi + + if test x$enable_doc != xno; then + COND_DOC_TRUE= + COND_DOC_FALSE='#' +else + COND_DOC_TRUE='#' + COND_DOC_FALSE= +fi + + + +############## +# Sandboxing # +############## + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if sandboxing should be used" >&5 +printf %s "checking if sandboxing should be used... " >&6; } +# Check whether --enable-sandbox was given. +if test ${enable_sandbox+y} +then : + enableval=$enable_sandbox; +else $as_nop + enable_sandbox=auto +fi + +case $enable_sandbox in + auto) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: maybe (autodetect)" >&5 +printf "%s\n" "maybe (autodetect)" >&6; } + ;; + no | capsicum | pledge) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_sandbox" >&5 +printf "%s\n" "$enable_sandbox" >&6; } + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 +printf "%s\n" "" >&6; } + as_fn_error $? "--enable-sandbox only accepts \`auto', \`no', \`capsicum', or \`pledge'." "$LINENO" 5 + ;; +esac + + +########################### +# PATH prefix for scripts # +########################### + +# The scripts can add a prefix to the search PATH so that POSIX tools +# or the xz binary is always in the PATH. +# Check whether --enable-path-for-scripts was given. +if test ${enable_path_for_scripts+y} +then : + enableval=$enable_path_for_scripts; +else $as_nop + + case $host_os in + solaris*) enable_path_for_scripts=/usr/xpg4/bin ;; + *) enable_path_for_scripts= ;; + esac + +fi + +if test -n "$enable_path_for_scripts" && test "x$enable_path_for_scripts" != xno ; then + enable_path_for_scripts="PATH=$enable_path_for_scripts:\$PATH" +else + enable_path_for_scripts= +fi + + + +############################################################################### +# Checks for programs. +############################################################################### + +echo +case $host_os in + solaris*) + # The gnulib POSIX shell macro below may pick a shell that + # doesn't work with xzgrep. Workaround by picking a shell + # that is known to work. + if test -z "$gl_cv_posix_shell" && test -x /usr/xpg4/bin/sh; then + gl_cv_posix_shell=/usr/xpg4/bin/sh + fi + ;; +esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a shell that conforms to POSIX" >&5 +printf %s "checking for a shell that conforms to POSIX... " >&6; } +if test ${gl_cv_posix_shell+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gl_test_posix_shell_script=' + func_return () { + (exit $1) + } + func_success () { + func_return 0 + } + func_failure () { + func_return 1 + } + func_ret_success () { + return 0 + } + func_ret_failure () { + return 1 + } + subshell_umask_sanity () { + (umask 22; (umask 0); test $(umask) -eq 22) + } + test "$(echo foo)" = foo && + func_success && + ! func_failure && + func_ret_success && + ! func_ret_failure && + (set x && func_ret_success y && test x = "$1") && + subshell_umask_sanity + ' + for gl_cv_posix_shell in \ + "$CONFIG_SHELL" "$SHELL" /bin/sh /bin/bash /bin/ksh /bin/sh5 no; do + case $gl_cv_posix_shell in + /*) + "$gl_cv_posix_shell" -c "$gl_test_posix_shell_script" 2>/dev/null \ + && break;; + esac + done +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_posix_shell" >&5 +printf "%s\n" "$gl_cv_posix_shell" >&6; } + + if test "$gl_cv_posix_shell" != no; then + POSIX_SHELL=$gl_cv_posix_shell + PREFERABLY_POSIX_SHELL=$POSIX_SHELL + else + POSIX_SHELL= + PREFERABLY_POSIX_SHELL=/bin/sh + fi + + + +if test -z "$POSIX_SHELL" && test "x$enable_scripts" = xyes ; then + as_fn_error $? "No POSIX conforming shell (sh) was found." "$LINENO" 5 +fi + +echo +echo "Initializing Automake:" + +# We don't use "subdir-objects" yet because it breaks "make distclean" when +# dependencies are enabled (as of Automake 1.14.1) due to this bug: +# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=17354 +# The -Wno-unsupported is used to silence warnings about missing +# "subdir-objects". +am__api_version='1.16' + + + # Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +printf %s "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if test ${ac_cv_path_install+y} +then : + printf %s "(cached) " >&6 +else $as_nop + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + # Account for fact that we put trailing slashes in our PATH walk. +case $as_dir in #(( + ./ | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test ${ac_cv_path_install+y}; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +printf "%s\n" "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +printf %s "checking whether build environment is sane... " >&6; } +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"` + + +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` + + + if test x"${MISSING+set}" != xset; then + MISSING="\${SHELL} '$am_aux_dir/missing'" +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +printf "%s\n" "$as_me: WARNING: 'missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_STRIP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +printf "%s\n" "$STRIP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_STRIP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +printf "%s\n" "$ac_ct_STRIP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5 +printf %s "checking for a race-free mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if test ${ac_cv_path_mkdir+y} +then : + printf %s "(cached) " >&6 +else $as_nop + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue + case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir ('*'coreutils) '* | \ + 'BusyBox '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test ${ac_cv_path_mkdir+y}; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +printf "%s\n" "$MKDIR_P" >&6; } + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AWK+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +printf "%s\n" "$AWK" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval test \${ac_cv_prog_make_${ac_make}_set+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + SET_MAKE= +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +# Check whether --enable-silent-rules was given. +if test ${enable_silent_rules+y} +then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +printf %s "checking whether $am_make supports nested variables... " >&6; } +if test ${am_cv_make_support_nested_variables+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if printf "%s\n" 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +printf "%s\n" "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='xz' + VERSION='5.4.5' + + +printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h + + +printf "%s\n" "#define VERSION \"$VERSION\"" >>confdefs.h + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar pax cpio none' + +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + + + + + +# Variables for tags utilities; see am/tags.am +if test -z "$CTAGS"; then + CTAGS=ctags +fi + +if test -z "$ETAGS"; then + ETAGS=etags +fi + +if test -z "$CSCOPE"; then + CSCOPE=cscope +fi + + + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +printf %s "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +printf "%s\n" "no, using $LN_S" >&6; } +fi + + + + + + + + + + + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 +printf %s "checking whether ${MAKE-make} supports the include directive... " >&6; } +cat > confinc.mk << 'END' +am__doit: + @echo this is the am__doit target >confinc.out +.PHONY: am__doit +END +am__include="#" +am__quote= +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 + (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + case $?:`cat confinc.out 2>/dev/null` in #( + '0:this is the am__doit target') : + case $s in #( + BSD) : + am__include='.include' am__quote='"' ;; #( + *) : + am__include='include' am__quote='' ;; +esac ;; #( + *) : + ;; +esac + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 +printf "%s\n" "${_am_result}" >&6; } + +# Check whether --enable-dependency-tracking was given. +if test ${enable_dependency_tracking+y} +then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. +set dummy ${ac_tool_prefix}clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +fi + + +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion -version; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +printf %s "checking whether the C compiler works... " >&6; } +ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else $as_nop + ac_file='' +fi +if test -z "$ac_file" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +printf %s "checking for C compiler default output file name... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +printf "%s\n" "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +printf %s "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +printf "%s\n" "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +printf %s "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +printf "%s\n" "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +printf %s "checking for suffix of object files... " >&6; } +if test ${ac_cv_objext+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +printf "%s\n" "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 +printf %s "checking whether the compiler supports GNU C... " >&6; } +if test ${ac_cv_c_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_compiler_gnu=yes +else $as_nop + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+y} +ac_save_CFLAGS=$CFLAGS +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +printf %s "checking whether $CC accepts -g... " >&6; } +if test ${ac_cv_prog_cc_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_g=yes +else $as_nop + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else $as_nop + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +printf "%s\n" "$ac_cv_prog_cc_g" >&6; } +if test $ac_test_CFLAGS; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +ac_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +printf %s "checking for $CC option to enable C11 features... " >&6; } +if test ${ac_cv_prog_cc_c11+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c11=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c11_program +_ACEOF +for ac_arg in '' -std=gnu11 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c11" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 +printf %s "checking for $CC option to enable C99 features... " >&6; } +if test ${ac_cv_prog_cc_c99+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c99_program +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c99" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 +printf %s "checking for $CC option to enable C89 features... " >&6; } +if test ${ac_cv_prog_cc_c89+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c89_program +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c89" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 +fi +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +printf %s "checking whether $CC understands -c and -o together... " >&6; } +if test ${am_cv_prog_cc_c_o+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +printf "%s\n" "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +depcc="$CC" am_compiler_list= + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +printf %s "checking dependency style of $depcc... " >&6; } +if test ${am_cv_CC_dependencies_compiler_type+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + +if test x$ac_cv_prog_cc_c99 = xno ; then + as_fn_error $? "No C99 compiler was found." "$LINENO" 5 +fi + + +# By default we simply use the C compiler to build assembly code. + +test "${CCAS+set}" = set || CCAS=$CC +test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS + + + +depcc="$CCAS" am_compiler_list= + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +printf %s "checking dependency style of $depcc... " >&6; } +if test ${am_cv_CCAS_dependencies_compiler_type+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CCAS_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CCAS_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CCAS_dependencies_compiler_type=none +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CCAS_dependencies_compiler_type" >&5 +printf "%s\n" "$am_cv_CCAS_dependencies_compiler_type" >&6; } +CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3; then + am__fastdepCCAS_TRUE= + am__fastdepCCAS_FALSE='#' +else + am__fastdepCCAS_TRUE='#' + am__fastdepCCAS_FALSE= +fi + + + +ac_header= ac_cache= +for ac_item in $ac_header_c_list +do + if test $ac_cache; then + ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" + if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then + printf "%s\n" "#define $ac_item 1" >> confdefs.h + fi + ac_header= ac_cache= + elif test $ac_header; then + ac_cache=$ac_item + else + ac_header=$ac_item + fi +done + + + + + + + + +if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes +then : + +printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h + +fi + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 +printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; } +if test ${ac_cv_safe_to_define___extensions__+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# define __EXTENSIONS__ 1 + $ac_includes_default +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_safe_to_define___extensions__=yes +else $as_nop + ac_cv_safe_to_define___extensions__=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 +printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5 +printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; } +if test ${ac_cv_should_define__xopen_source+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_should_define__xopen_source=no + if test $ac_cv_header_wchar_h = yes +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + mbstate_t x; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #define _XOPEN_SOURCE 500 + #include + mbstate_t x; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_should_define__xopen_source=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5 +printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; } + + printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h + + printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h + + printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h + + printf "%s\n" "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h + + printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h + + printf "%s\n" "#define _OPENBSD_SOURCE 1" >>confdefs.h + + printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h + + printf "%s\n" "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h + + printf "%s\n" "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h + + printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h + + printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h + + printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h + + printf "%s\n" "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h + + printf "%s\n" "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h + + printf "%s\n" "#define _TANDEM_SOURCE 1" >>confdefs.h + + if test $ac_cv_header_minix_config_h = yes +then : + MINIX=yes + printf "%s\n" "#define _MINIX 1" >>confdefs.h + + printf "%s\n" "#define _POSIX_SOURCE 1" >>confdefs.h + + printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h + +else $as_nop + MINIX= +fi + if test $ac_cv_safe_to_define___extensions__ = yes +then : + printf "%s\n" "#define __EXTENSIONS__ 1" >>confdefs.h + +fi + if test $ac_cv_should_define__xopen_source = yes +then : + printf "%s\n" "#define _XOPEN_SOURCE 500" >>confdefs.h + +fi + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +printf %s "checking for a sed that does not truncate output... " >&6; } +if test ${ac_cv_path_SED+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in sed gsed + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +printf "%s\n" "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +printf %s "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test ${ac_cv_prog_CPP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # Double quotes because $CC needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + +else $as_nop + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + # Broken: success on invalid input. +continue +else $as_nop + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok +then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +printf "%s\n" "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + +else $as_nop + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + # Broken: success on invalid input. +continue +else $as_nop + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok +then : + +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +printf %s "checking for grep that handles long lines and -e... " >&6; } +if test ${ac_cv_path_GREP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in grep ggrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +printf "%s\n" "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +printf %s "checking for egrep... " >&6; } +if test ${ac_cv_path_EGREP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in egrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +printf "%s\n" "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } +if test ${ac_cv_c_undeclared_builtin_options+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_save_CFLAGS=$CFLAGS + ac_cv_c_undeclared_builtin_options='cannot detect' + for ac_arg in '' -fno-builtin; do + CFLAGS="$ac_save_CFLAGS $ac_arg" + # This test program should *not* compile successfully. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +(void) strchr; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else $as_nop + # This test program should compile successfully. + # No library function is consistently available on + # freestanding implementations, so test against a dummy + # declaration. Include always-available headers on the + # off chance that they somehow elicit warnings. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +extern void ac_decl (int, char *); + +int +main (void) +{ +(void) ac_decl (0, (char *) 0); + (void) ac_decl; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + if test x"$ac_arg" = x +then : + ac_cv_c_undeclared_builtin_options='none needed' +else $as_nop + ac_cv_c_undeclared_builtin_options=$ac_arg +fi + break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + done + CFLAGS=$ac_save_CFLAGS + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5 +printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; } + case $ac_cv_c_undeclared_builtin_options in #( + 'cannot detect') : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot make $CC report undeclared builtins +See \`config.log' for more details" "$LINENO" 5; } ;; #( + 'none needed') : + ac_c_undeclared_builtin_options='' ;; #( + *) : + ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;; +esac + +case $enable_threads in #( + posix) : + + echo + echo "POSIX threading support:" + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ax_pthread_ok=no + +# We used to check for pthread.h first, but this fails if pthread.h +# requires special compiler flags (e.g. on Tru64 or Sequent). +# It gets checked for in the link test anyway. + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then + ax_pthread_save_CC="$CC" + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" + if test "x$PTHREAD_CC" != "x" +then : + CC="$PTHREAD_CC" +fi + if test "x$PTHREAD_CXX" != "x" +then : + CXX="$PTHREAD_CXX" +fi + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS" >&5 +printf %s "checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char pthread_join (); +int +main (void) +{ +return pthread_join (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ax_pthread_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 +printf "%s\n" "$ax_pthread_ok" >&6; } + if test "x$ax_pthread_ok" = "xno"; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + CC="$ax_pthread_save_CC" + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" +fi + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# Create a list of thread flags to try. Items with a "," contain both +# C compiler flags (before ",") and linker flags (after ","). Other items +# starting with a "-" are C compiler flags, and remaining items are +# library names, except for "none" which indicates that we try without +# any flags at all, and "pthread-config" which is a program returning +# the flags for the Pth emulation library. + +ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64 +# (Note: HP C rejects this with "bad form for `-t' option") +# -pthreads: Solaris/gcc (Note: HP C also rejects) +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads and +# -D_REENTRANT too), HP C (must be checked before -lpthread, which +# is present but should not be used directly; and before -mthreads, +# because the compiler interprets this as "-mt" + "-hreads") +# -mthreads: Mingw32/gcc, Lynx/gcc +# pthread: Linux, etcetera +# --thread-safe: KAI C++ +# pthread-config: use pthread-config program (for GNU Pth library) + +case $host_os in + + freebsd*) + + # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) + # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) + + ax_pthread_flags="-kthread lthread $ax_pthread_flags" + ;; + + hpux*) + + # From the cc(1) man page: "[-mt] Sets various -D flags to enable + # multi-threading and also sets -lpthread." + + ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags" + ;; + + openedition*) + + # IBM z/OS requires a feature-test macro to be defined in order to + # enable POSIX threads at all, so give the user a hint if this is + # not set. (We don't define these ourselves, as they can affect + # other portions of the system API in unpredictable ways.) + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS) + AX_PTHREAD_ZOS_MISSING +# endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "AX_PTHREAD_ZOS_MISSING" >/dev/null 2>&1 +then : + { 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 +printf "%s\n" "$as_me: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&2;} +fi +rm -rf conftest* + + ;; + + solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (N.B.: The stubs are missing + # pthread_cleanup_push, or rather a function called by this macro, + # so we could check for that, but who knows whether they'll stub + # that too in a future libc.) So we'll check first for the + # standard Solaris way of linking pthreads (-mt -lpthread). + + ax_pthread_flags="-mt,-lpthread pthread $ax_pthread_flags" + ;; +esac + +# Are we compiling with Clang? + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC is Clang" >&5 +printf %s "checking whether $CC is Clang... " >&6; } +if test ${ax_cv_PTHREAD_CLANG+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ax_cv_PTHREAD_CLANG=no + # Note that Autoconf sets GCC=yes for Clang as well as GCC + if test "x$GCC" = "xyes"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Note: Clang 2.7 lacks __clang_[a-z]+__ */ +# if defined(__clang__) && defined(__llvm__) + AX_PTHREAD_CC_IS_CLANG +# endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "AX_PTHREAD_CC_IS_CLANG" >/dev/null 2>&1 +then : + ax_cv_PTHREAD_CLANG=yes +fi +rm -rf conftest* + + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG" >&5 +printf "%s\n" "$ax_cv_PTHREAD_CLANG" >&6; } +ax_pthread_clang="$ax_cv_PTHREAD_CLANG" + + +# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC) + +# Note that for GCC and Clang -pthread generally implies -lpthread, +# except when -nostdlib is passed. +# This is problematic using libtool to build C++ shared libraries with pthread: +# [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460 +# [2] https://bugzilla.redhat.com/show_bug.cgi?id=661333 +# [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468555 +# To solve this, first try -pthread together with -lpthread for GCC + +if test "x$GCC" = "xyes" +then : + ax_pthread_flags="-pthread,-lpthread -pthread -pthreads $ax_pthread_flags" +fi + +# Clang takes -pthread (never supported any other flag), but we'll try with -lpthread first + +if test "x$ax_pthread_clang" = "xyes" +then : + ax_pthread_flags="-pthread,-lpthread -pthread" +fi + + +# The presence of a feature test macro requesting re-entrant function +# definitions is, on some systems, a strong hint that pthreads support is +# correctly enabled + +case $host_os in + darwin* | hpux* | linux* | osf* | solaris*) + ax_pthread_check_macro="_REENTRANT" + ;; + + aix*) + ax_pthread_check_macro="_THREAD_SAFE" + ;; + + *) + ax_pthread_check_macro="--" + ;; +esac +if test "x$ax_pthread_check_macro" = "x--" +then : + ax_pthread_check_cond=0 +else $as_nop + ax_pthread_check_cond="!defined($ax_pthread_check_macro)" +fi + + +if test "x$ax_pthread_ok" = "xno"; then +for ax_pthread_try_flag in $ax_pthread_flags; do + + case $ax_pthread_try_flag in + none) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 +printf %s "checking whether pthreads work without any flags... " >&6; } + ;; + + *,*) + PTHREAD_CFLAGS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\1/"` + PTHREAD_LIBS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\2/"` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"" >&5 +printf %s "checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"... " >&6; } + ;; + + -*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $ax_pthread_try_flag" >&5 +printf %s "checking whether pthreads work with $ax_pthread_try_flag... " >&6; } + PTHREAD_CFLAGS="$ax_pthread_try_flag" + ;; + + pthread-config) + # Extract the first word of "pthread-config", so it can be a program name with args. +set dummy pthread-config; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ax_pthread_config+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ax_pthread_config"; then + ac_cv_prog_ax_pthread_config="$ax_pthread_config" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ax_pthread_config="yes" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_prog_ax_pthread_config" && ac_cv_prog_ax_pthread_config="no" +fi +fi +ax_pthread_config=$ac_cv_prog_ax_pthread_config +if test -n "$ax_pthread_config"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5 +printf "%s\n" "$ax_pthread_config" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + if test "x$ax_pthread_config" = "xno" +then : + continue +fi + PTHREAD_CFLAGS="`pthread-config --cflags`" + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + ;; + + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$ax_pthread_try_flag" >&5 +printf %s "checking for the pthreads library -l$ax_pthread_try_flag... " >&6; } + PTHREAD_LIBS="-l$ax_pthread_try_flag" + ;; + esac + + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +# if $ax_pthread_check_cond +# error "$ax_pthread_check_macro must be defined" +# endif + static void *some_global = NULL; + static void routine(void *a) + { + /* To avoid any unused-parameter or + unused-but-set-parameter warning. */ + some_global = a; + } + static void *start_routine(void *a) { return a; } +int +main (void) +{ +pthread_t th; pthread_attr_t attr; + pthread_create(&th, 0, start_routine, 0); + pthread_join(th, 0); + pthread_attr_init(&attr); + pthread_cleanup_push(routine, 0); + pthread_cleanup_pop(0) /* ; */ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ax_pthread_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 +printf "%s\n" "$ax_pthread_ok" >&6; } + if test "x$ax_pthread_ok" = "xyes" +then : + break +fi + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + + +# Clang needs special handling, because older versions handle the -pthread +# option in a rather... idiosyncratic way + +if test "x$ax_pthread_clang" = "xyes"; then + + # Clang takes -pthread; it has never supported any other flag + + # (Note 1: This will need to be revisited if a system that Clang + # supports has POSIX threads in a separate library. This tends not + # to be the way of modern systems, but it's conceivable.) + + # (Note 2: On some systems, notably Darwin, -pthread is not needed + # to get POSIX threads support; the API is always present and + # active. We could reasonably leave PTHREAD_CFLAGS empty. But + # -pthread does define _REENTRANT, and while the Darwin headers + # ignore this macro, third-party headers might not.) + + # However, older versions of Clang make a point of warning the user + # that, in an invocation where only linking and no compilation is + # taking place, the -pthread option has no effect ("argument unused + # during compilation"). They expect -pthread to be passed in only + # when source code is being compiled. + # + # Problem is, this is at odds with the way Automake and most other + # C build frameworks function, which is that the same flags used in + # compilation (CFLAGS) are also used in linking. Many systems + # supported by AX_PTHREAD require exactly this for POSIX threads + # support, and in fact it is often not straightforward to specify a + # flag that is used only in the compilation phase and not in + # linking. Such a scenario is extremely rare in practice. + # + # Even though use of the -pthread flag in linking would only print + # a warning, this can be a nuisance for well-run software projects + # that build with -Werror. So if the active version of Clang has + # this misfeature, we search for an option to squash it. + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread" >&5 +printf %s "checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread... " >&6; } +if test ${ax_cv_PTHREAD_CLANG_NO_WARN_FLAG+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown + # Create an alternate version of $ac_link that compiles and + # links in two steps (.c -> .o, .o -> exe) instead of one + # (.c -> exe), because the warning occurs only in the second + # step + ax_pthread_save_ac_link="$ac_link" + ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g' + ax_pthread_link_step=`printf "%s\n" "$ac_link" | sed "$ax_pthread_sed"` + ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)" + ax_pthread_save_CFLAGS="$CFLAGS" + for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do + if test "x$ax_pthread_try" = "xunknown" +then : + break +fi + CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS" + ac_link="$ax_pthread_save_ac_link" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void){return 0;} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_link="$ax_pthread_2step_ac_link" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void){return 0;} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + done + ac_link="$ax_pthread_save_ac_link" + CFLAGS="$ax_pthread_save_CFLAGS" + if test "x$ax_pthread_try" = "x" +then : + ax_pthread_try=no +fi + ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&5 +printf "%s\n" "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&6; } + + case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in + no | unknown) ;; + *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;; + esac + +fi # $ax_pthread_clang = yes + + + +# Various other checks: +if test "x$ax_pthread_ok" = "xyes"; then + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + + # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 +printf %s "checking for joinable pthread attribute... " >&6; } +if test ${ax_cv_PTHREAD_JOINABLE_ATTR+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ax_cv_PTHREAD_JOINABLE_ATTR=unknown + for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +int attr = $ax_pthread_attr; return attr /* ; */ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + done + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_JOINABLE_ATTR" >&5 +printf "%s\n" "$ax_cv_PTHREAD_JOINABLE_ATTR" >&6; } + if test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \ + test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \ + test "x$ax_pthread_joinable_attr_defined" != "xyes" +then : + +printf "%s\n" "#define PTHREAD_CREATE_JOINABLE $ax_cv_PTHREAD_JOINABLE_ATTR" >>confdefs.h + + ax_pthread_joinable_attr_defined=yes + +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether more special flags are required for pthreads" >&5 +printf %s "checking whether more special flags are required for pthreads... " >&6; } +if test ${ax_cv_PTHREAD_SPECIAL_FLAGS+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ax_cv_PTHREAD_SPECIAL_FLAGS=no + case $host_os in + solaris*) + ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS" + ;; + esac + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_SPECIAL_FLAGS" >&5 +printf "%s\n" "$ax_cv_PTHREAD_SPECIAL_FLAGS" >&6; } + if test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \ + test "x$ax_pthread_special_flags_added" != "xyes" +then : + PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS" + ax_pthread_special_flags_added=yes +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5 +printf %s "checking for PTHREAD_PRIO_INHERIT... " >&6; } +if test ${ax_cv_PTHREAD_PRIO_INHERIT+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +int i = PTHREAD_PRIO_INHERIT; + return i; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ax_cv_PTHREAD_PRIO_INHERIT=yes +else $as_nop + ax_cv_PTHREAD_PRIO_INHERIT=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5 +printf "%s\n" "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; } + if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \ + test "x$ax_pthread_prio_inherit_defined" != "xyes" +then : + +printf "%s\n" "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h + + ax_pthread_prio_inherit_defined=yes + +fi + + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" + + # More AIX lossage: compile with *_r variant + if test "x$GCC" != "xyes"; then + case $host_os in + aix*) + case "x/$CC" in #( + x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6) : + #handle absolute path differently from PATH based program lookup + case "x$CC" in #( + x/*) : + + if as_fn_executable_p ${CC}_r +then : + PTHREAD_CC="${CC}_r" +fi + if test "x${CXX}" != "x" +then : + if as_fn_executable_p ${CXX}_r +then : + PTHREAD_CXX="${CXX}_r" +fi +fi + ;; #( + *) : + + for ac_prog in ${CC}_r +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_PTHREAD_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$PTHREAD_CC"; then + ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_PTHREAD_CC="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +PTHREAD_CC=$ac_cv_prog_PTHREAD_CC +if test -n "$PTHREAD_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 +printf "%s\n" "$PTHREAD_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$PTHREAD_CC" && break +done +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" + + if test "x${CXX}" != "x" +then : + for ac_prog in ${CXX}_r +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_PTHREAD_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$PTHREAD_CXX"; then + ac_cv_prog_PTHREAD_CXX="$PTHREAD_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_PTHREAD_CXX="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +PTHREAD_CXX=$ac_cv_prog_PTHREAD_CXX +if test -n "$PTHREAD_CXX"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CXX" >&5 +printf "%s\n" "$PTHREAD_CXX" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$PTHREAD_CXX" && break +done +test -n "$PTHREAD_CXX" || PTHREAD_CXX="$CXX" + +fi + + ;; +esac + ;; #( + *) : + ;; +esac + ;; + esac + fi +fi + +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" +test -n "$PTHREAD_CXX" || PTHREAD_CXX="$CXX" + + + + + + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test "x$ax_pthread_ok" = "xyes"; then + : + : +else + ax_pthread_ok=no + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + LIBS="$LIBS $PTHREAD_LIBS" + AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS" + + + +printf "%s\n" "#define MYTHREAD_POSIX 1" >>confdefs.h + + + # These are nice to have but not mandatory. + # + # FIXME: xz uses clock_gettime if it is available and can do + # it even when threading is disabled. Moving this outside + # of pthread detection may be undesirable because then + # liblzma may get linked against librt even when librt isn't + # needed by liblzma. + OLD_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5 +printf %s "checking for library containing clock_gettime... " >&6; } +if test ${ac_cv_search_clock_gettime+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char clock_gettime (); +int +main (void) +{ +return clock_gettime (); + ; + return 0; +} +_ACEOF +for ac_lib in '' rt +do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO" +then : + ac_cv_search_clock_gettime=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext + if test ${ac_cv_search_clock_gettime+y} +then : + break +fi +done +if test ${ac_cv_search_clock_gettime+y} +then : + +else $as_nop + ac_cv_search_clock_gettime=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5 +printf "%s\n" "$ac_cv_search_clock_gettime" >&6; } +ac_res=$ac_cv_search_clock_gettime +if test "$ac_res" != no +then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + + ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime" +if test "x$ac_cv_func_clock_gettime" = xyes +then : + printf "%s\n" "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "pthread_condattr_setclock" "ac_cv_func_pthread_condattr_setclock" +if test "x$ac_cv_func_pthread_condattr_setclock" = xyes +then : + printf "%s\n" "#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1" >>confdefs.h + +fi + + ac_fn_check_decl "$LINENO" "CLOCK_MONOTONIC" "ac_cv_have_decl_CLOCK_MONOTONIC" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_CLOCK_MONOTONIC" = xyes +then : + +printf "%s\n" "#define HAVE_CLOCK_MONOTONIC 1" >>confdefs.h + +fi + CFLAGS=$OLD_CFLAGS + ;; #( + win95) : + + +printf "%s\n" "#define MYTHREAD_WIN95 1" >>confdefs.h + + ;; #( + vista) : + + +printf "%s\n" "#define MYTHREAD_VISTA 1" >>confdefs.h + + + ;; #( + *) : + ;; +esac + if test "x$enable_threads" != xno; then + COND_THREADS_TRUE= + COND_THREADS_FALSE='#' +else + COND_THREADS_TRUE='#' + COND_THREADS_FALSE= +fi + + +echo +echo "Initializing Libtool:" + +case `pwd` in + *\ * | *\ *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +printf "%s\n" "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.7.4-1ec8f-dirty' +macro_revision='2.4.7.4' + + + + + + + + + + + + + + +ltmain=$ac_aux_dir/ltmain.sh + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +printf %s "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case $ECHO in + printf*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +printf "%s\n" "printf" >&6; } ;; + print*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +printf "%s\n" "print -r" >&6; } ;; + *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +printf "%s\n" "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +printf %s "checking for a sed that does not truncate output... " >&6; } +if test ${ac_cv_path_SED+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in sed gsed + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +printf "%s\n" "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +printf %s "checking for fgrep... " >&6; } +if test ${ac_cv_path_FGREP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in fgrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_FGREP" || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +printf "%s\n" "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +# Check whether --with-gnu-ld was given. +if test ${with_gnu_ld+y} +then : + withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes +else $as_nop + with_gnu_ld=no +fi + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +printf %s "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +printf %s "checking for GNU ld... " >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +printf %s "checking for non-GNU ld... " >&6; } +fi +if test ${lt_cv_path_LD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +printf "%s\n" "$LD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +printf %s "checking if the linker ($LD) is GNU ld... " >&6; } +if test ${lt_cv_prog_gnu_ld+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if test ${lt_cv_path_NM+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +printf "%s\n" "$lt_cv_path_NM" >&6; } +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_DUMPBIN+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +printf "%s\n" "$DUMPBIN" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_DUMPBIN+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +printf "%s\n" "$ac_ct_DUMPBIN" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +printf %s "checking the name lister ($NM) interface... " >&6; } +if test ${lt_cv_nm_interface+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +printf "%s\n" "$lt_cv_nm_interface" >&6; } + +# find the maximum length of command line arguments +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +printf %s "checking the maximum length of command line arguments... " >&6; } +if test ${lt_cv_sys_max_cmd_len+y} +then : + printf %s "(cached) " >&6 +else $as_nop + i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n "$lt_cv_sys_max_cmd_len"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +printf "%s\n" "$lt_cv_sys_max_cmd_len" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5 +printf "%s\n" "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +printf %s "checking how to convert $build file names to $host format... " >&6; } +if test ${lt_cv_to_host_file_cmd+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +printf "%s\n" "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +printf %s "checking how to convert $build file names to toolchain format... " >&6; } +if test ${lt_cv_to_tool_file_cmd+y} +then : + printf %s "(cached) " >&6 +else $as_nop + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +printf "%s\n" "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +printf %s "checking for $LD option to reload object files... " >&6; } +if test ${lt_cv_ld_reload_flag+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_ld_reload_flag='-r' +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +printf "%s\n" "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test yes != "$GCC"; then + reload_cmds=false + fi + ;; + darwin*) + if test yes = "$GCC"; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}file", so it can be a program name with args. +set dummy ${ac_tool_prefix}file; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_FILECMD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$FILECMD"; then + ac_cv_prog_FILECMD="$FILECMD" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_FILECMD="${ac_tool_prefix}file" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +FILECMD=$ac_cv_prog_FILECMD +if test -n "$FILECMD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FILECMD" >&5 +printf "%s\n" "$FILECMD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_FILECMD"; then + ac_ct_FILECMD=$FILECMD + # Extract the first word of "file", so it can be a program name with args. +set dummy file; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_FILECMD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_FILECMD"; then + ac_cv_prog_ac_ct_FILECMD="$ac_ct_FILECMD" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_FILECMD="file" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_FILECMD=$ac_cv_prog_ac_ct_FILECMD +if test -n "$ac_ct_FILECMD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FILECMD" >&5 +printf "%s\n" "$ac_ct_FILECMD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_FILECMD" = x; then + FILECMD=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + FILECMD=$ac_ct_FILECMD + fi +else + FILECMD="$ac_cv_prog_FILECMD" +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_OBJDUMP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +printf "%s\n" "$OBJDUMP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_OBJDUMP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +printf "%s\n" "$ac_ct_OBJDUMP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +printf %s "checking how to recognize dependent libraries... " >&6; } +if test ${lt_cv_deplibs_check_method+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='$FILECMD -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly* | midnightbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=$FILECMD + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=$FILECMD + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=$FILECMD + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +printf "%s\n" "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_DLLTOOL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +printf "%s\n" "$DLLTOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_DLLTOOL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +printf "%s\n" "$ac_ct_DLLTOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +printf %s "checking how to associate runtime and link libraries... " >&6; } +if test ${lt_cv_sharedlib_from_linklib_cmd+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +printf "%s\n" "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +printf "%s\n" "$AR" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +printf "%s\n" "$ac_ct_AR" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} + + + + + + +# Use ARFLAGS variable as AR's operation code to sync the variable naming with +# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have +# higher priority because thats what people were doing historically (setting +# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS +# variable obsoleted/removed. + +test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} +lt_ar_flags=$AR_FLAGS + + + + + + +# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override +# by AR_FLAGS because that was never working and AR_FLAGS is about to die. + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +printf %s "checking for archiver @FILE support... " >&6; } +if test ${lt_cv_ar_at_file+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +printf "%s\n" "$lt_cv_ar_at_file" >&6; } + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_STRIP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +printf "%s\n" "$STRIP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_STRIP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +printf "%s\n" "$ac_ct_STRIP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +printf "%s\n" "$RANLIB" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +printf "%s\n" "$ac_ct_RANLIB" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +printf %s "checking command to parse $NM output from $compiler object... " >&6; } +if test ${lt_cv_sys_global_symbol_pipe+y} +then : + printf %s "(cached) " >&6 +else $as_nop + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="$SED -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++ or ICC, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +printf "%s\n" "failed" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +printf "%s\n" "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +printf %s "checking for sysroot... " >&6; } + +# Check whether --with-sysroot was given. +if test ${with_sysroot+y} +then : + withval=$with_sysroot; +else $as_nop + with_sysroot=no +fi + + +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 +printf "%s\n" "$with_sysroot" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +printf "%s\n" "${lt_sysroot:-no}" >&6; } + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 +printf %s "checking for a working dd... " >&6; } +if test ${ac_cv_path_lt_DD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +if test -z "$lt_DD"; then + ac_path_lt_DD_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in dd + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_lt_DD="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_lt_DD" || continue +if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi + $ac_path_lt_DD_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_lt_DD"; then + : + fi +else + ac_cv_path_lt_DD=$lt_DD +fi + +rm -f conftest.i conftest2.i conftest.out +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 +printf "%s\n" "$ac_cv_path_lt_DD" >&6; } + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 +printf %s "checking how to truncate binary pipes... " >&6; } +if test ${lt_cv_truncate_bin+y} +then : + printf %s "(cached) " >&6 +else $as_nop + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 +printf "%s\n" "$lt_cv_truncate_bin" >&6; } + + + + + + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + +# Check whether --enable-libtool-lock was given. +if test ${enable_libtool_lock+y} +then : + enableval=$enable_libtool_lock; +fi + +test no = "$enable_libtool_lock" || enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `$FILECMD conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `$FILECMD conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `$FILECMD conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + emul=elf + case `$FILECMD conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `$FILECMD conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `$FILECMD conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `$FILECMD conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `$FILECMD conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +printf %s "checking whether the C compiler needs -belf... " >&6; } +if test ${lt_cv_cc_needs_belf+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + lt_cv_cc_needs_belf=yes +else $as_nop + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +printf "%s\n" "$lt_cv_cc_needs_belf" >&6; } + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `$FILECMD conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_MANIFEST_TOOL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +printf "%s\n" "$MANIFEST_TOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +printf "%s\n" "$ac_ct_MANIFEST_TOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if test ${lt_cv_path_mainfest_tool+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +printf "%s\n" "$lt_cv_path_mainfest_tool" >&6; } +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_DSYMUTIL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +printf "%s\n" "$DSYMUTIL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_DSYMUTIL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +printf "%s\n" "$ac_ct_DSYMUTIL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_NMEDIT+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +printf "%s\n" "$NMEDIT" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_NMEDIT+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +printf "%s\n" "$ac_ct_NMEDIT" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_LIPO+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +printf "%s\n" "$LIPO" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_LIPO+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LIPO="lipo" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +printf "%s\n" "$ac_ct_LIPO" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_OTOOL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +printf "%s\n" "$OTOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_OTOOL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL="otool" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +printf "%s\n" "$ac_ct_OTOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_OTOOL64+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +printf "%s\n" "$OTOOL64" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_OTOOL64+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +printf "%s\n" "$ac_ct_OTOOL64" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +printf %s "checking for -single_module linker flag... " >&6; } +if test ${lt_cv_apple_cc_single_mod+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +printf "%s\n" "$lt_cv_apple_cc_single_mod" >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +printf %s "checking for -exported_symbols_list linker flag... " >&6; } +if test ${lt_cv_ld_exported_symbols_list+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + lt_cv_ld_exported_symbols_list=yes +else $as_nop + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +printf "%s\n" "$lt_cv_ld_exported_symbols_list" >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +printf %s "checking for -force_load linker flag... " >&6; } +if test ${lt_cv_ld_force_load+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR $AR_FLAGS libconftest.a conftest.o" >&5 + $AR $AR_FLAGS libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +printf "%s\n" "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) + case $MACOSX_DEPLOYMENT_TARGET,$host in + 10.[012],*|,*powerpc*-darwin[5-8]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + *) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + +ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes +then : + printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h + +fi + + + + + +# Set options +enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AS+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_AS="${ac_tool_prefix}as" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AS=$ac_cv_prog_AS +if test -n "$AS"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 +printf "%s\n" "$AS" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AS"; then + ac_ct_AS=$AS + # Extract the first word of "as", so it can be a program name with args. +set dummy as; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_AS+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_AS"; then + ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AS="as" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AS=$ac_cv_prog_ac_ct_AS +if test -n "$ac_ct_AS"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 +printf "%s\n" "$ac_ct_AS" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_AS" = x; then + AS="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AS=$ac_ct_AS + fi +else + AS="$ac_cv_prog_AS" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_DLLTOOL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +printf "%s\n" "$DLLTOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_DLLTOOL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +printf "%s\n" "$ac_ct_DLLTOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_OBJDUMP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +printf "%s\n" "$OBJDUMP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_OBJDUMP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +printf "%s\n" "$ac_ct_OBJDUMP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + + ;; +esac + +test -z "$AS" && AS=as + + + + + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + enable_dlopen=no + + + + # Check whether --enable-shared was given. +if test ${enable_shared+y} +then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else $as_nop + enable_shared=yes +fi + + + + + + + + + + # Check whether --enable-static was given. +if test ${enable_static+y} +then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else $as_nop + enable_static=yes +fi + + + + + + + + + + +# Check whether --with-pic was given. +if test ${with_pic+y} +then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else $as_nop + pic_mode=default +fi + + + + + + + + + # Check whether --enable-fast-install was given. +if test ${enable_fast_install+y} +then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else $as_nop + enable_fast_install=yes +fi + + + + + + + + + shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[5-9]*,yes) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 +printf %s "checking which variant of shared library versioning to provide... " >&6; } + +# Check whether --with-aix-soname was given. +if test ${with_aix_soname+y} +then : + withval=$with_aix_soname; case $withval in + aix|svr4|both) + ;; + *) + as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname +else $as_nop + if test ${lt_cv_with_aix_soname+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_with_aix_soname=aix +fi + + with_aix_soname=$lt_cv_with_aix_soname +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 +printf "%s\n" "$with_aix_soname" >&6; } + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +printf %s "checking for objdir... " >&6; } +if test ${lt_cv_objdir+y} +then : + printf %s "(cached) " >&6 +else $as_nop + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +printf "%s\n" "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +printf "%s\n" "#define LT_OBJDIR \"$lt_cv_objdir/\"" >>confdefs.h + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC and +# ICC, which need '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +func_cc_basename $compiler +cc_basename=$func_cc_basename_result + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +printf %s "checking for ${ac_tool_prefix}file... " >&6; } +if test ${lt_cv_path_MAGIC_CMD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/${ac_tool_prefix}file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +printf "%s\n" "$MAGIC_CMD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +printf %s "checking for file... " >&6; } +if test ${lt_cv_path_MAGIC_CMD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +printf "%s\n" "$MAGIC_CMD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC=$CC +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if test ${lt_cv_prog_compiler_rtti_exceptions+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test yes = "$GCC"; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + lt_prog_compiler_pic='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | $SED 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +printf %s "checking for $compiler option to produce PIC... " >&6; } +if test ${lt_cv_prog_compiler_pic+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if test ${lt_cv_prog_compiler_pic_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_pic_works"; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if test ${lt_cv_prog_compiler_static_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler_static_works=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_static_works"; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test ${lt_cv_prog_compiler_c_o+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test ${lt_cv_prog_compiler_c_o+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links=nottested +if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +printf %s "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +printf "%s\n" "$hard_links" >&6; } + if test no = "$hard_links"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 +printf "%s\n" "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++ or Intel C++ Compiler. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + export_dynamic_flag_spec='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='$wl--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + file_list_spec='@' + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + 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' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | $SED 5q` in + *Sun\ C*) # Sun C 5.9 + 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' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + export_dynamic_flag_spec='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test no = "$ld_shlibs"; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + hardcode_direct=no + hardcode_direct_absolute=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + export_dynamic_flag_spec='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if test ${lt_cv_aix_libpath_+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if test ${lt_cv_aix_libpath_+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' $wl-bernotok' + allow_undefined_flag=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++ or Intel C++ Compiler. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl* | icl*) + # Native MSVC or ICC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC and ICC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test yes = "$lt_cv_ld_force_load"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + 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" + 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" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly* | midnightbsd*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test yes = "$GCC"; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +printf %s "checking if $CC understands -b... " >&6; } +if test ${lt_cv_prog_compiler__b+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler__b=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +printf "%s\n" "$lt_cv_prog_compiler__b" >&6; } + +if test yes = "$lt_cv_prog_compiler__b"; then + archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + archive_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 -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +printf %s "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if test ${lt_cv_irix_exported_symbol+y} +then : + printf %s "(cached) " >&6 +else $as_nop + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + lt_cv_irix_exported_symbol=yes +else $as_nop + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } + if test yes = "$lt_cv_irix_exported_symbol"; then + 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' + fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + ld_shlibs=yes + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + else + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + file_list_spec='@' + ;; + + osf3*) + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_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 -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='$wl-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='$wl-z,text' + allow_undefined_flag='$wl-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='$wl-Blargedynsym' + ;; + esac + fi + fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +printf "%s\n" "$ld_shlibs" >&6; } +test no = "$ld_shlibs" && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +printf %s "checking whether -lc should be explicitly linked in... " >&6; } +if test ${lt_cv_archive_cmds_need_lc+y} +then : + printf %s "(cached) " >&6 +else $as_nop + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +printf %s "checking dynamic linker characteristics... " >&6; } + +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([A-Za-z]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + + + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a(lib.so.V)' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl* | *,icl*) + # Native MSVC or ICC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC and ICC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly* | midnightbsd*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + hardcode_libdir_flag_spec='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if test ${lt_cv_shlibpath_overrides_runpath+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null +then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +printf "%s\n" "$dynamic_linker" >&6; } +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +printf %s "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test yes = "$hardcode_automatic"; then + + # We can hardcode non-existent directories. + if test no != "$hardcode_direct" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && + test no != "$hardcode_minus_L"; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +printf "%s\n" "$hardcode_action" >&6; } + +if test relink = "$hardcode_action" || + test yes = "$inherit_rpath"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +printf %s "checking for dlopen in -ldl... " >&6; } +if test ${ac_cv_lib_dl_dlopen+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char dlopen (); +int +main (void) +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_dl_dlopen=yes +else $as_nop + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes +then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else $as_nop + + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes +then : + lt_cv_dlopen=shl_load +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +printf %s "checking for shl_load in -ldld... " >&6; } +if test ${ac_cv_lib_dld_shl_load+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char shl_load (); +int +main (void) +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_dld_shl_load=yes +else $as_nop + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes +then : + lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld +else $as_nop + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes +then : + lt_cv_dlopen=dlopen +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +printf %s "checking for dlopen in -ldl... " >&6; } +if test ${ac_cv_lib_dl_dlopen+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char dlopen (); +int +main (void) +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_dl_dlopen=yes +else $as_nop + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes +then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +printf %s "checking for dlopen in -lsvld... " >&6; } +if test ${ac_cv_lib_svld_dlopen+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char dlopen (); +int +main (void) +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_svld_dlopen=yes +else $as_nop + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +printf "%s\n" "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes +then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +printf %s "checking for dld_link in -ldld... " >&6; } +if test ${ac_cv_lib_dld_dld_link+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char dld_link (); +int +main (void) +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_dld_dld_link=yes +else $as_nop + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +printf "%s\n" "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes +then : + lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +printf %s "checking whether a program can dlopen itself... " >&6; } +if test ${lt_cv_dlopen_self+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +printf "%s\n" "$lt_cv_dlopen_self" >&6; } + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +printf %s "checking whether a statically linked program can dlopen itself... " >&6; } +if test ${lt_cv_dlopen_self_static+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +printf "%s\n" "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +printf %s "checking whether stripping libraries is possible... " >&6; } +if test -z "$STRIP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +else + if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + case $host_os in + darwin*) + # FIXME - insert some real tests, host_os isn't really good enough + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + ;; + freebsd*) + if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ;; + esac + fi +fi + + + + + + + + + + + + + # Report what library types will actually be built + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +printf %s "checking if libtool supports shared libraries... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +printf "%s\n" "$can_build_shared" >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +printf %s "checking whether to build shared libraries... " >&6; } + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +printf "%s\n" "$enable_shared" >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +printf %s "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +printf "%s\n" "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC=$lt_save_CC + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args. +set dummy ${ac_tool_prefix}windres; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_RC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$RC"; then + ac_cv_prog_RC="$RC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_RC="${ac_tool_prefix}windres" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RC=$ac_cv_prog_RC +if test -n "$RC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RC" >&5 +printf "%s\n" "$RC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RC"; then + ac_ct_RC=$RC + # Extract the first word of "windres", so it can be a program name with args. +set dummy windres; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_RC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_RC"; then + ac_cv_prog_ac_ct_RC="$ac_ct_RC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RC="windres" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RC=$ac_cv_prog_ac_ct_RC +if test -n "$ac_ct_RC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RC" >&5 +printf "%s\n" "$ac_ct_RC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_RC" = x; then + RC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RC=$ac_ct_RC + fi +else + RC="$ac_cv_prog_RC" +fi + + + + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +objext_RC=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code=$lt_simple_compile_test_code + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +CFLAGS= +compiler=$CC +compiler_RC=$CC +func_cc_basename $compiler +cc_basename=$func_cc_basename_result + +lt_cv_prog_compiler_c_o_RC=yes + +if test -n "$compiler"; then + : + + + +fi + +GCC=$lt_save_GCC +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS + + +# This is a bit wrong since it is possible to request that only some libs +# are built as shared. Using that feature isn't so common though, and this +# breaks only on Windows (at least for now) if the user enables only some +# libs as shared. + if test "x$enable_shared" != xno; then + COND_SHARED_TRUE= + COND_SHARED_FALSE='#' +else + COND_SHARED_TRUE='#' + COND_SHARED_FALSE= +fi + + +##################### +# Symbol versioning # +##################### + +# NOTE: This checks if we are building shared or static library +# and if --with-pic or --without-pic was used. Thus this check +# must be after Libtool initialization. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if library symbol versioning should be used" >&5 +printf %s "checking if library symbol versioning should be used... " >&6; } +# Check whether --enable-symbol-versions was given. +if test ${enable_symbol_versions+y} +then : + enableval=$enable_symbol_versions; +else $as_nop + enable_symbol_versions=auto +fi + +if test "x$enable_symbol_versions" = xauto; then + case $host_os in + # NOTE: Even if one omits -gnu on GNU/Linux (e.g. + # i486-slackware-linux), configure will (via config.sub) + # append -gnu (e.g. i486-slackware-linux-gnu), and this + # test will work correctly. + gnu* | *-gnu* | freebsd*) + enable_symbol_versions=yes + ;; + *) + enable_symbol_versions=no + ;; + esac +fi + +# There are two variants for symbol versioning. +# See src/liblzma/validate_map.sh for details. +# +# On GNU/Linux, extra symbols are added in the C code. These extra symbols +# must not be put into a static library as they can cause problems (and +# even if they didn't cause problems, they would be useless). On other +# systems symbol versioning may be used too but there is no problem as only +# a linker script is specified in src/liblzma/Makefile.am and that isn't +# used when creating a static library. +# +# Libtool always uses -DPIC when building shared libraries by default and +# doesn't use it for static libs by default. This can be overridden with +# --with-pic and --without-pic though. As long as neither --with-pic nor +# --without-pic is used then we can use #ifdef PIC to detect if the file is +# being built for a shared library. +if test "x$enable_symbol_versions" = xno ; then + enable_symbol_versions=no + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +elif test "x$enable_shared" = xno ; then + enable_symbol_versions=no + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no (not building a shared library)" >&5 +printf "%s\n" "no (not building a shared library)" >&6; } +else + case "$host_cpu-$host_os" in + microblaze*) + # GCC 12 on MicroBlaze doesn't support __symver__ + # attribute. It's simplest and safest to use the + # generic version on that platform since then only + # the linker script is needed. The RHEL/CentOS 7 + # compatibility symbols don't matter on MicroBlaze. + enable_symbol_versions=generic + ;; + *-linux*) + case "$pic_mode-$enable_static" in + default-*) + # Use symvers if PIC is defined. + have_symbol_versions_linux=2 + ;; + *-no) + # Not building static library. + # Use symvers unconditionally. + have_symbol_versions_linux=1 + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 +printf "%s\n" "" >&6; } + as_fn_error $? " + On GNU/Linux, building both shared and static library at the same time + is not supported if --with-pic or --without-pic is used. + Use either --disable-shared or --disable-static to build one type + of library at a time. If both types are needed, build one at a time, + possibly picking only src/liblzma/.libs/liblzma.a from the static build." "$LINENO" 5 + ;; + esac + enable_symbol_versions=linux + +printf "%s\n" "#define HAVE_SYMBOL_VERSIONS_LINUX $have_symbol_versions_linux" >>confdefs.h + + ;; + *) + enable_symbol_versions=generic + ;; + esac + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes ($enable_symbol_versions)" >&5 +printf "%s\n" "yes ($enable_symbol_versions)" >&6; } +fi + + if test "x$enable_symbol_versions" = xlinux; then + COND_SYMVERS_LINUX_TRUE= + COND_SYMVERS_LINUX_FALSE='#' +else + COND_SYMVERS_LINUX_TRUE='#' + COND_SYMVERS_LINUX_FALSE= +fi + + if test "x$enable_symbol_versions" = xgeneric; then + COND_SYMVERS_GENERIC_TRUE= + COND_SYMVERS_GENERIC_FALSE='#' +else + COND_SYMVERS_GENERIC_TRUE='#' + COND_SYMVERS_GENERIC_FALSE= +fi + + + +############################################################################### +# Checks for libraries. +############################################################################### + +echo +echo "Initializing gettext:" + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 +printf %s "checking whether NLS is requested... " >&6; } + # Check whether --enable-nls was given. +if test ${enable_nls+y} +then : + enableval=$enable_nls; USE_NLS=$enableval +else $as_nop + USE_NLS=yes +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +printf "%s\n" "$USE_NLS" >&6; } + + + + + GETTEXT_MACRO_VERSION=0.20 + + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_MSGFMT+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case "$MSGFMT" in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" + ;; +esac +fi +MSGFMT="$ac_cv_path_MSGFMT" +if test "$MSGFMT" != ":"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 +printf "%s\n" "$MSGFMT" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + # Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_GMSGFMT+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_GMSGFMT="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT +if test -n "$GMSGFMT"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 +printf "%s\n" "$GMSGFMT" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + + case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; + *) GMSGFMT_015=$GMSGFMT ;; + esac + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_XGETTEXT+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case "$XGETTEXT" in + [\\/]* | ?:[\\/]*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" + ;; +esac +fi +XGETTEXT="$ac_cv_path_XGETTEXT" +if test "$XGETTEXT" != ":"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 +printf "%s\n" "$XGETTEXT" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + rm -f messages.po + + case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; + *) XGETTEXT_015=$XGETTEXT ;; + esac + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "msgmerge", so it can be a program name with args. +set dummy msgmerge; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_MSGMERGE+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case "$MSGMERGE" in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then + ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" + ;; +esac +fi +MSGMERGE="$ac_cv_path_MSGMERGE" +if test "$MSGMERGE" != ":"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 +printf "%s\n" "$MSGMERGE" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + if LC_ALL=C $MSGMERGE --help | grep ' --for-msgfmt ' >/dev/null; then + MSGMERGE_FOR_MSGFMT_OPTION='--for-msgfmt' + else + if LC_ALL=C $MSGMERGE --help | grep ' --no-fuzzy-matching ' >/dev/null; then + MSGMERGE_FOR_MSGFMT_OPTION='--no-fuzzy-matching --no-location --quiet' + else + MSGMERGE_FOR_MSGFMT_OPTION='--no-location --quiet' + fi + fi + + + test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= + + + ac_config_commands="$ac_config_commands po-directories" + + + + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" + + + +# Check whether --with-gnu-ld was given. +if test ${with_gnu_ld+y} +then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else $as_nop + with_gnu_ld=no +fi + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +if test -n "$LD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld" >&5 +printf %s "checking for ld... " >&6; } +elif test "$GCC" = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +printf %s "checking for ld used by $CC... " >&6; } +elif test "$with_gnu_ld" = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +printf %s "checking for GNU ld... " >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +printf %s "checking for non-GNU ld... " >&6; } +fi +if test -n "$LD"; then + # Let the user override the test with a path. + : +else + if test ${acl_cv_path_LD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + acl_cv_path_LD= # Final result of this test + ac_prog=ld # Program to search in $PATH + if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + acl_output=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $acl_output in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'` + while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do + acl_output=`echo $acl_output | sed "s%$re_direlt%/%"` + done + # Got the pathname. No search in PATH is needed. + acl_cv_path_LD="$acl_output" + ac_prog= + ;; + "") + # If it fails, then pretend we aren't using GCC. + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac + fi + if test -n "$ac_prog"; then + # Search for $ac_prog in $PATH. + acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$acl_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 conftest.$ac_ext +/* end confdefs.h. */ +#if defined __powerpc64__ || defined __LP64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + # The compiler produces 64-bit code. Add option '-b64' so that the + # linker groks 64-bit object files. + case "$acl_cv_path_LD " in + *" -b64 "*) ;; + *) acl_cv_path_LD="$acl_cv_path_LD -b64" ;; + esac + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + sparc64-*-netbsd*) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __sparcv9 || defined __arch64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else $as_nop + # The compiler produces 32-bit code. Add option '-m elf32_sparc' + # so that the linker groks 32-bit object files. + case "$acl_cv_path_LD " in + *" -m elf32_sparc "*) ;; + *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;; + esac + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + esac + +fi + + LD="$acl_cv_path_LD" +fi +if test -n "$LD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 +printf "%s\n" "$LD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +printf %s "checking if the linker ($LD) is GNU ld... " >&6; } +if test ${acl_cv_prog_gnu_ld+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +printf "%s\n" "$acl_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$acl_cv_prog_gnu_ld + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 +printf %s "checking for shared library run path origin... " >&6; } +if test ${acl_cv_rpath+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 +printf "%s\n" "$acl_cv_rpath" >&6; } + wl="$acl_cv_wl" + acl_libext="$acl_cv_libext" + acl_shlibext="$acl_cv_shlibext" + acl_libname_spec="$acl_cv_libname_spec" + acl_library_names_spec="$acl_cv_library_names_spec" + acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + acl_hardcode_direct="$acl_cv_hardcode_direct" + acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" + # Check whether --enable-rpath was given. +if test ${enable_rpath+y} +then : + enableval=$enable_rpath; : +else $as_nop + enable_rpath=yes +fi + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking 32-bit host C ABI" >&5 +printf %s "checking 32-bit host C ABI... " >&6; } +if test ${gl_cv_host_cpu_c_abi_32bit+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$gl_cv_host_cpu_c_abi"; then + case "$gl_cv_host_cpu_c_abi" in + i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc) + gl_cv_host_cpu_c_abi_32bit=yes ;; + x86_64 | alpha | arm64 | hppa64 | ia64 | mips64 | powerpc64 | powerpc64-elfv2 | riscv*-lp64* | s390x | sparc64 ) + gl_cv_host_cpu_c_abi_32bit=no ;; + *) + gl_cv_host_cpu_c_abi_32bit=unknown ;; + esac + else + case "$host_cpu" in + + # CPUs that only support a 32-bit ABI. + arc \ + | bfin \ + | cris* \ + | csky \ + | epiphany \ + | ft32 \ + | h8300 \ + | m68k \ + | microblaze | microblazeel \ + | nds32 | nds32le | nds32be \ + | nios2 | nios2eb | nios2el \ + | or1k* \ + | or32 \ + | sh | sh1234 | sh1234elb \ + | tic6x \ + | xtensa* ) + gl_cv_host_cpu_c_abi_32bit=yes + ;; + + # CPUs that only support a 64-bit ABI. + alpha | alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] \ + | mmix ) + gl_cv_host_cpu_c_abi_32bit=no + ;; + + i[34567]86 ) + gl_cv_host_cpu_c_abi_32bit=yes + ;; + + x86_64 ) + # On x86_64 systems, the C compiler may be generating code in one of + # these ABIs: + # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. + # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 + # with native Windows (mingw, MSVC). + # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if (defined __x86_64__ || defined __amd64__ \ + || defined _M_X64 || defined _M_AMD64) \ + && !(defined __ILP32__ || defined _ILP32) + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else $as_nop + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + arm* | aarch64 ) + # Assume arm with EABI. + # On arm64 systems, the C compiler may be generating code in one of + # these ABIs: + # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. + # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32) + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else $as_nop + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) + # On hppa, the C compiler may be generating 32-bit code or 64-bit + # code. In the latter case, it defines _LP64 and __LP64__. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __LP64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else $as_nop + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + ia64* ) + # On ia64 on HP-UX, the C compiler may be generating 64-bit code or + # 32-bit code. In the latter case, it defines _ILP32. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef _ILP32 + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=yes +else $as_nop + gl_cv_host_cpu_c_abi_32bit=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + mips* ) + # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this + # at 32. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else $as_nop + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + powerpc* ) + # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. + # No need to distinguish them here; the caller may distinguish + # them based on the OS. + # On powerpc64 systems, the C compiler may still be generating + # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may + # be generating 64-bit code. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __powerpc64__ || defined __LP64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else $as_nop + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + rs6000 ) + gl_cv_host_cpu_c_abi_32bit=yes + ;; + + riscv32 | riscv64 ) + # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. + # Size of 'long' and 'void *': + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __LP64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else $as_nop + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + s390* ) + # On s390x, the C compiler may be generating 64-bit (= s390x) code + # or 31-bit (= s390) code. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __LP64__ || defined __s390x__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else $as_nop + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + sparc | sparc64 ) + # UltraSPARCs running Linux have `uname -m` = "sparc64", but the + # C compiler still generates 32-bit code. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __sparcv9 || defined __arch64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else $as_nop + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + *) + gl_cv_host_cpu_c_abi_32bit=unknown + ;; + esac + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_host_cpu_c_abi_32bit" >&5 +printf "%s\n" "$gl_cv_host_cpu_c_abi_32bit" >&6; } + + HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit" + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ELF binary format" >&5 +printf %s "checking for ELF binary format... " >&6; } +if test ${gl_cv_elf+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __ELF__ || (defined __linux__ && defined __EDG__) + Extensible Linking Format + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Extensible Linking Format" >/dev/null 2>&1 +then : + gl_cv_elf=yes +else $as_nop + gl_cv_elf=no +fi +rm -rf conftest* + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_elf" >&5 +printf "%s\n" "$gl_cv_elf" >&6; } + if test $gl_cv_elf = yes; then + # Extract the ELF class of a file (5th byte) in decimal. + # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header + if od -A x < /dev/null >/dev/null 2>/dev/null; then + # Use POSIX od. + func_elfclass () + { + od -A n -t d1 -j 4 -N 1 + } + else + # Use BSD hexdump. + func_elfclass () + { + dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "' + echo + } + fi + # Use 'expr', not 'test', to compare the values of func_elfclass, because on + # Solaris 11 OpenIndiana and Solaris 11 OmniOS, the result is 001 or 002, + # not 1 or 2. + case $HOST_CPU_C_ABI_32BIT in + yes) + # 32-bit ABI. + acl_is_expected_elfclass () + { + expr "`func_elfclass | sed -e 's/[ ]//g'`" = 1 > /dev/null + } + ;; + no) + # 64-bit ABI. + acl_is_expected_elfclass () + { + expr "`func_elfclass | sed -e 's/[ ]//g'`" = 2 > /dev/null + } + ;; + *) + # Unknown. + acl_is_expected_elfclass () + { + : + } + ;; + esac + else + acl_is_expected_elfclass () + { + : + } + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the common suffixes of directories in the library search path" >&5 +printf %s "checking for the common suffixes of directories in the library search path... " >&6; } +if test ${acl_cv_libdirstems+y} +then : + printf %s "(cached) " >&6 +else $as_nop + acl_libdirstem=lib + acl_libdirstem2= + acl_libdirstem3= + case "$host_os" in + solaris*) + if test $HOST_CPU_C_ABI_32BIT = no; then + acl_libdirstem2=lib/64 + case "$host_cpu" in + sparc*) acl_libdirstem3=lib/sparcv9 ;; + i*86 | x86_64) acl_libdirstem3=lib/amd64 ;; + esac + fi + ;; + *) + searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \ + | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test $HOST_CPU_C_ABI_32BIT != no; then + # 32-bit or unknown ABI. + if test -d /usr/lib32; then + acl_libdirstem2=lib32 + fi + fi + if test $HOST_CPU_C_ABI_32BIT != yes; then + # 64-bit or unknown ABI. + if test -d /usr/lib64; then + acl_libdirstem3=lib64 + fi + fi + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;; + */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib32 ) acl_libdirstem2=lib32 ;; + */lib64 ) acl_libdirstem3=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + if test $HOST_CPU_C_ABI_32BIT = yes; then + # 32-bit ABI. + acl_libdirstem3= + fi + if test $HOST_CPU_C_ABI_32BIT = no; then + # 64-bit ABI. + acl_libdirstem2= + fi + fi + ;; + esac + test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" + test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem" + acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acl_cv_libdirstems" >&5 +printf "%s\n" "$acl_cv_libdirstems" >&6; } + acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'` + acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'` + acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'` + + + + + + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" + eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libiconv-prefix was given. +if test ${with_libiconv_prefix+y} +then : + withval=$with_libiconv_prefix; + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" + eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + additional_libdir2="$withval/$acl_libdirstem2" + additional_libdir3="$withval/$acl_libdirstem3" + fi + fi + +fi + + if test "X$additional_libdir2" = "X$additional_libdir"; then + additional_libdir2= + fi + if test "X$additional_libdir3" = "X$additional_libdir"; then + additional_libdir3= + fi + LIBICONV= + LTLIBICONV= + INCICONV= + LIBICONV_PREFIX= + HAVE_LIBICONV= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='iconv ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" + else + : + fi + else + found_dir= + found_la= + found_so= + found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do + if test "X$found_dir" = "X"; then + eval dir=\$$additional_libdir_variable + if test -n "$dir"; then + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + fi + fi + done + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no \ + || test "X$found_dir" = "X/usr/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$acl_hardcode_direct" = yes; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + if test "$name" = 'iconv'; then + LIBICONV_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem2 | */$acl_libdirstem2/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` + if test "$name" = 'iconv'; then + LIBICONV_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem3 | */$acl_libdirstem3/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` + if test "$name" = 'iconv'; then + LIBICONV_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ + && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then + haveit= + if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ + || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$dependency_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$dependency_libdir"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$dependency_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$dependency_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$dependency_libdir"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$dependency_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + dep=`echo "X$dep" | sed -e 's/^X-l//'` + if test "X$dep" != Xc \ + || case $host_os in + linux* | gnu* | k*bsd*-gnu) false ;; + *) true ;; + esac; then + names_next_round="$names_next_round $dep" + fi + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" + ;; + esac + done + fi + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" + done + fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 +printf %s "checking for CFPreferencesCopyAppValue... " >&6; } +if test ${gt_cv_func_CFPreferencesCopyAppValue+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +CFPreferencesCopyAppValue(NULL, NULL) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gt_cv_func_CFPreferencesCopyAppValue=yes +else $as_nop + gt_cv_func_CFPreferencesCopyAppValue=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gt_save_LIBS" +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 +printf "%s\n" "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + +printf "%s\n" "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h + + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyPreferredLanguages" >&5 +printf %s "checking for CFLocaleCopyPreferredLanguages... " >&6; } +if test ${gt_cv_func_CFLocaleCopyPreferredLanguages+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +CFLocaleCopyPreferredLanguages(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gt_cv_func_CFLocaleCopyPreferredLanguages=yes +else $as_nop + gt_cv_func_CFLocaleCopyPreferredLanguages=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gt_save_LIBS" +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyPreferredLanguages" >&5 +printf "%s\n" "$gt_cv_func_CFLocaleCopyPreferredLanguages" >&6; } + if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then + +printf "%s\n" "#define HAVE_CFLOCALECOPYPREFERREDLANGUAGES 1" >>confdefs.h + + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes \ + || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + + + + + + + LIBINTL= + LTLIBINTL= + POSUB= + + case " $gt_needs " in + *" need-formatstring-macros "*) gt_api_version=3 ;; + *" need-ngettext "*) gt_api_version=2 ;; + *) gt_api_version=1 ;; + esac + gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" + gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" + + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + + + if test $gt_api_version -ge 3; then + gt_revision_test_code=' +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +' + else + gt_revision_test_code= + fi + if test $gt_api_version -ge 2; then + gt_expression_test_code=' + * ngettext ("", "", 0)' + else + gt_expression_test_code= + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 +printf %s "checking for GNU gettext in libc... " >&6; } +if eval test \${$gt_func_gnugettext_libc+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings; +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + +int +main (void) +{ + +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + eval "$gt_func_gnugettext_libc=yes" +else $as_nop + eval "$gt_func_gnugettext_libc=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$gt_func_gnugettext_libc + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + + + + + + am_save_CPPFLAGS="$CPPFLAGS" + + for element in $INCICONV; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 +printf %s "checking for iconv... " >&6; } +if test ${am_cv_func_iconv+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main (void) +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + am_cv_func_iconv=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main (void) +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + am_cv_lib_iconv=yes + am_cv_func_iconv=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$am_save_LIBS" + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 +printf "%s\n" "$am_cv_func_iconv" >&6; } + if test "$am_cv_func_iconv" = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 +printf %s "checking for working iconv... " >&6; } +if test ${am_cv_func_iconv_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + am_cv_func_iconv_works=no + for ac_iconv_const in '' 'const'; do + if test "$cross_compiling" = yes +then : + case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +#ifndef ICONV_CONST +# define ICONV_CONST $ac_iconv_const +#endif + +int +main (void) +{ +int result = 0; + /* Test against AIX 5.1...7.2 bug: Failures are not distinguishable from + successful returns. This is even documented in + */ + { + iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); + if (cd_utf8_to_88591 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_utf8_to_88591, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 1; + iconv_close (cd_utf8_to_88591); + } + } + /* Test against Solaris 10 bug: Failures are not distinguishable from + successful returns. */ + { + iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); + if (cd_ascii_to_88591 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\263"; + char buf[10]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_ascii_to_88591, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 2; + iconv_close (cd_ascii_to_88591); + } + } + /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\304"; + static char buf[2] = { (char)0xDE, (char)0xAD }; + ICONV_CONST char *inptr = input; + size_t inbytesleft = 1; + char *outptr = buf; + size_t outbytesleft = 1; + size_t res = iconv (cd_88591_to_utf8, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) + result |= 4; + iconv_close (cd_88591_to_utf8); + } + } +#if 0 /* This bug could be worked around by the caller. */ + /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_88591_to_utf8, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if ((int)res > 0) + result |= 8; + iconv_close (cd_88591_to_utf8); + } + } +#endif + /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is + provided. */ + { + /* Try standardized names. */ + iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP"); + /* Try IRIX, OSF/1 names. */ + iconv_t cd2 = iconv_open ("UTF-8", "eucJP"); + /* Try AIX names. */ + iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP"); + /* Try HP-UX names. */ + iconv_t cd4 = iconv_open ("utf8", "eucJP"); + if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1) + && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1)) + result |= 16; + if (cd1 != (iconv_t)(-1)) + iconv_close (cd1); + if (cd2 != (iconv_t)(-1)) + iconv_close (cd2); + if (cd3 != (iconv_t)(-1)) + iconv_close (cd3); + if (cd4 != (iconv_t)(-1)) + iconv_close (cd4); + } + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + am_cv_func_iconv_works=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + test "$am_cv_func_iconv_works" = no || break + done + LIBS="$am_save_LIBS" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 +printf "%s\n" "$am_cv_func_iconv_works" >&6; } + case "$am_cv_func_iconv_works" in + *no) am_func_iconv=no am_cv_lib_iconv=no ;; + *) am_func_iconv=yes ;; + esac + else + am_func_iconv=no am_cv_lib_iconv=no + fi + if test "$am_func_iconv" = yes; then + +printf "%s\n" "#define HAVE_ICONV 1" >>confdefs.h + + fi + if test "$am_cv_lib_iconv" = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 +printf %s "checking how to link with libiconv... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 +printf "%s\n" "$LIBICONV" >&6; } + else + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + + + + + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" + eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libintl-prefix was given. +if test ${with_libintl_prefix+y} +then : + withval=$with_libintl_prefix; + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" + eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + additional_libdir2="$withval/$acl_libdirstem2" + additional_libdir3="$withval/$acl_libdirstem3" + fi + fi + +fi + + if test "X$additional_libdir2" = "X$additional_libdir"; then + additional_libdir2= + fi + if test "X$additional_libdir3" = "X$additional_libdir"; then + additional_libdir3= + fi + LIBINTL= + LTLIBINTL= + INCINTL= + LIBINTL_PREFIX= + HAVE_LIBINTL= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='intl ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" + else + : + fi + else + found_dir= + found_la= + found_so= + found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do + if test "X$found_dir" = "X"; then + eval dir=\$$additional_libdir_variable + if test -n "$dir"; then + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + fi + fi + done + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no \ + || test "X$found_dir" = "X/usr/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$acl_hardcode_direct" = yes; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + if test "$name" = 'intl'; then + LIBINTL_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem2 | */$acl_libdirstem2/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` + if test "$name" = 'intl'; then + LIBINTL_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem3 | */$acl_libdirstem3/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` + if test "$name" = 'intl'; then + LIBINTL_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ + && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then + haveit= + if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ + || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$dependency_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$dependency_libdir"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$dependency_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$dependency_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$dependency_libdir"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$dependency_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + dep=`echo "X$dep" | sed -e 's/^X-l//'` + if test "X$dep" != Xc \ + || case $host_os in + linux* | gnu* | k*bsd*-gnu) false ;; + *) true ;; + esac; then + names_next_round="$names_next_round $dep" + fi + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" + ;; + esac + done + fi + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" + done + fi + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 +printf %s "checking for GNU gettext in libintl... " >&6; } +if eval test \${$gt_func_gnugettext_libintl+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + +int +main (void) +{ + +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + eval "$gt_func_gnugettext_libintl=yes" +else $as_nop + eval "$gt_func_gnugettext_libintl=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + +int +main (void) +{ + +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + eval "$gt_func_gnugettext_libintl=yes" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS" +fi +eval ac_res=\$$gt_func_gnugettext_libintl + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + fi + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ + || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools; }; then + gt_use_preinstalled_gnugettext=yes + else + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + + + if test -n "$INTL_MACOSX_LIBS"; then + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" + LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" + fi + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + +printf "%s\n" "#define ENABLE_NLS 1" >>confdefs.h + + else + USE_NLS=no + fi + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 +printf %s "checking whether to use NLS... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +printf "%s\n" "$USE_NLS" >&6; } + if test "$USE_NLS" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 +printf %s "checking where the gettext function comes from... " >&6; } + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 +printf "%s\n" "$gt_source" >&6; } + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 +printf %s "checking how to link with libintl... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 +printf "%s\n" "$LIBINTL" >&6; } + + for element in $INCINTL; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + fi + + +printf "%s\n" "#define HAVE_GETTEXT 1" >>confdefs.h + + +printf "%s\n" "#define HAVE_DCGETTEXT 1" >>confdefs.h + + fi + + POSUB=po + fi + + + + INTLLIBS="$LIBINTL" + + + + + + + + +############################################################################### +# Checks for header files. +############################################################################### + +echo +echo "System headers and functions:" + +# There is currently no workarounds in this package if some of +# these headers are missing. + for ac_header in fcntl.h limits.h sys/time.h +do : + as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +else $as_nop + as_fn_error $? "Required header file(s) are missing." "$LINENO" 5 +fi + +done + +# immintrin.h allows the use of the intrinsic functions if they are available. +# cpuid.h may be used for detecting x86 processor features at runtime. +ac_fn_c_check_header_compile "$LINENO" "immintrin.h" "ac_cv_header_immintrin_h" "$ac_includes_default" +if test "x$ac_cv_header_immintrin_h" = xyes +then : + printf "%s\n" "#define HAVE_IMMINTRIN_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "cpuid.h" "ac_cv_header_cpuid_h" "$ac_includes_default" +if test "x$ac_cv_header_cpuid_h" = xyes +then : + printf "%s\n" "#define HAVE_CPUID_H 1" >>confdefs.h + +fi + + + +############################################################################### +# Checks for typedefs, structures, and compiler characteristics. +############################################################################### + +ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" +if test "x$ac_cv_type__Bool" = xyes +then : + +printf "%s\n" "#define HAVE__BOOL 1" >>confdefs.h + + +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 +printf %s "checking for stdbool.h that conforms to C99... " >&6; } +if test ${ac_cv_header_stdbool_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + + #ifndef __bool_true_false_are_defined + #error "__bool_true_false_are_defined is not defined" + #endif + char a[__bool_true_false_are_defined == 1 ? 1 : -1]; + + /* Regardless of whether this is C++ or "_Bool" is a + valid type name, "true" and "false" should be usable + in #if expressions and integer constant expressions, + and "bool" should be a valid type name. */ + + #if !true + #error "'true' is not true" + #endif + #if true != 1 + #error "'true' is not equal to 1" + #endif + char b[true == 1 ? 1 : -1]; + char c[true]; + + #if false + #error "'false' is not false" + #endif + #if false != 0 + #error "'false' is not equal to 0" + #endif + char d[false == 0 ? 1 : -1]; + + enum { e = false, f = true, g = false * true, h = true * 256 }; + + char i[(bool) 0.5 == true ? 1 : -1]; + char j[(bool) 0.0 == false ? 1 : -1]; + char k[sizeof (bool) > 0 ? 1 : -1]; + + struct sb { bool s: 1; bool t; } s; + char l[sizeof s.t > 0 ? 1 : -1]; + + /* The following fails for + HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ + bool m[h]; + char n[sizeof m == h * sizeof m[0] ? 1 : -1]; + char o[-1 - (bool) 0 < 0 ? 1 : -1]; + /* Catch a bug in an HP-UX C compiler. See + https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html + https://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html + */ + bool p = true; + bool *pp = &p; + + /* C 1999 specifies that bool, true, and false are to be + macros, but C++ 2011 and later overrule this. */ + #if __cplusplus < 201103 + #ifndef bool + #error "bool is not defined" + #endif + #ifndef false + #error "false is not defined" + #endif + #ifndef true + #error "true is not defined" + #endif + #endif + + /* If _Bool is available, repeat with it all the tests + above that used bool. */ + #ifdef HAVE__BOOL + struct sB { _Bool s: 1; _Bool t; } t; + + char q[(_Bool) 0.5 == true ? 1 : -1]; + char r[(_Bool) 0.0 == false ? 1 : -1]; + char u[sizeof (_Bool) > 0 ? 1 : -1]; + char v[sizeof t.t > 0 ? 1 : -1]; + + _Bool w[h]; + char x[sizeof m == h * sizeof m[0] ? 1 : -1]; + char y[-1 - (_Bool) 0 < 0 ? 1 : -1]; + _Bool z = true; + _Bool *pz = &p; + #endif + +int +main (void) +{ + + bool ps = &s; + *pp |= p; + *pp |= ! p; + + #ifdef HAVE__BOOL + _Bool pt = &t; + *pz |= z; + *pz |= ! z; + #endif + + /* Refer to every declared value, so they cannot be + discarded as unused. */ + return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !j + !k + + !l + !m + !n + !o + !p + !pp + !ps + #ifdef HAVE__BOOL + + !q + !r + !u + !v + !w + !x + !y + !z + !pt + #endif + ); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_header_stdbool_h=yes +else $as_nop + ac_cv_header_stdbool_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 +printf "%s\n" "$ac_cv_header_stdbool_h" >&6; } + +if test $ac_cv_header_stdbool_h = yes; then + +printf "%s\n" "#define HAVE_STDBOOL_H 1" >>confdefs.h + +fi + + +ac_fn_c_find_uintX_t "$LINENO" "8" "ac_cv_c_uint8_t" +case $ac_cv_c_uint8_t in #( + no|yes) ;; #( + *) + +printf "%s\n" "#define _UINT8_T 1" >>confdefs.h + + +printf "%s\n" "#define uint8_t $ac_cv_c_uint8_t" >>confdefs.h +;; + esac + +ac_fn_c_find_uintX_t "$LINENO" "16" "ac_cv_c_uint16_t" +case $ac_cv_c_uint16_t in #( + no|yes) ;; #( + *) + + +printf "%s\n" "#define uint16_t $ac_cv_c_uint16_t" >>confdefs.h +;; + esac + +ac_fn_c_find_intX_t "$LINENO" "32" "ac_cv_c_int32_t" +case $ac_cv_c_int32_t in #( + no|yes) ;; #( + *) + +printf "%s\n" "#define int32_t $ac_cv_c_int32_t" >>confdefs.h +;; +esac + +ac_fn_c_find_uintX_t "$LINENO" "32" "ac_cv_c_uint32_t" +case $ac_cv_c_uint32_t in #( + no|yes) ;; #( + *) + +printf "%s\n" "#define _UINT32_T 1" >>confdefs.h + + +printf "%s\n" "#define uint32_t $ac_cv_c_uint32_t" >>confdefs.h +;; + esac + +ac_fn_c_find_intX_t "$LINENO" "64" "ac_cv_c_int64_t" +case $ac_cv_c_int64_t in #( + no|yes) ;; #( + *) + +printf "%s\n" "#define int64_t $ac_cv_c_int64_t" >>confdefs.h +;; +esac + +ac_fn_c_find_uintX_t "$LINENO" "64" "ac_cv_c_uint64_t" +case $ac_cv_c_uint64_t in #( + no|yes) ;; #( + *) + +printf "%s\n" "#define _UINT64_T 1" >>confdefs.h + + +printf "%s\n" "#define uint64_t $ac_cv_c_uint64_t" >>confdefs.h +;; + esac + + + ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default" +if test "x$ac_cv_type_uintptr_t" = xyes +then : + +printf "%s\n" "#define HAVE_UINTPTR_T 1" >>confdefs.h + +else $as_nop + for ac_type in 'unsigned int' 'unsigned long int' \ + 'unsigned long long int'; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main (void) +{ +static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($ac_type))]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +printf "%s\n" "#define uintptr_t $ac_type" >>confdefs.h + + ac_type= +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + test -z "$ac_type" && break + done +fi + + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 +printf %s "checking size of size_t... " >&6; } +if test ${ac_cv_sizeof_size_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default" +then : + +else $as_nop + if test "$ac_cv_type_size_t" = yes; then + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (size_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_size_t=0 + fi +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 +printf "%s\n" "$ac_cv_sizeof_size_t" >&6; } + + + +printf "%s\n" "#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t" >>confdefs.h + + + +# The command line tool can copy high resolution timestamps if such +# information is available in struct stat. Otherwise one second accuracy +# is used. +ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.tv_nsec" "ac_cv_member_struct_stat_st_atim_tv_nsec" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1" >>confdefs.h + + +fi +ac_fn_c_check_member "$LINENO" "struct stat" "st_atimespec.tv_nsec" "ac_cv_member_struct_stat_st_atimespec_tv_nsec" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1" >>confdefs.h + + +fi +ac_fn_c_check_member "$LINENO" "struct stat" "st_atimensec" "ac_cv_member_struct_stat_st_atimensec" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_atimensec" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIMENSEC 1" >>confdefs.h + + +fi +ac_fn_c_check_member "$LINENO" "struct stat" "st_uatime" "ac_cv_member_struct_stat_st_uatime" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_uatime" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_STAT_ST_UATIME 1" >>confdefs.h + + +fi +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" +if test "x$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC 1" >>confdefs.h + + +fi + + +# Check whether --enable-largefile was given. +if test ${enable_largefile+y} +then : + enableval=$enable_largefile; +fi + +if test "$enable_largefile" != no; then + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 +printf %s "checking for special C compiler options needed for large files... " >&6; } +if test ${ac_cv_sys_largefile_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_sys_largefile_CC=no + if test "$GCC" != yes; then + ac_save_CC=$CC + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF + if ac_fn_c_try_compile "$LINENO" +then : + break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + CC="$CC -n32" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_largefile_CC=' -n32'; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + break + done + CC=$ac_save_CC + rm -f conftest.$ac_ext + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 +printf "%s\n" "$ac_cv_sys_largefile_CC" >&6; } + if test "$ac_cv_sys_largefile_CC" != no; then + CC=$CC$ac_cv_sys_largefile_CC + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +printf %s "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } +if test ${ac_cv_sys_file_offset_bits+y} +then : + printf %s "(cached) " >&6 +else $as_nop + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_file_offset_bits=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _FILE_OFFSET_BITS 64 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_file_offset_bits=64; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_cv_sys_file_offset_bits=unknown + break +done +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 +printf "%s\n" "$ac_cv_sys_file_offset_bits" >&6; } +case $ac_cv_sys_file_offset_bits in #( + no | unknown) ;; + *) +printf "%s\n" "#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits" >>confdefs.h +;; +esac +rm -rf conftest* + if test $ac_cv_sys_file_offset_bits = unknown; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 +printf %s "checking for _LARGE_FILES value needed for large files... " >&6; } +if test ${ac_cv_sys_large_files+y} +then : + printf %s "(cached) " >&6 +else $as_nop + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_large_files=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _LARGE_FILES 1 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_large_files=1; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_cv_sys_large_files=unknown + break +done +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 +printf "%s\n" "$ac_cv_sys_large_files" >&6; } +case $ac_cv_sys_large_files in #( + no | unknown) ;; + *) +printf "%s\n" "#define _LARGE_FILES $ac_cv_sys_large_files" >>confdefs.h +;; +esac +rm -rf conftest* + fi +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +printf %s "checking whether byte ordering is bigendian... " >&6; } +if test ${ac_cv_c_bigendian+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main (void) +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main (void) +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_c_bigendian=yes +else $as_nop + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_c_bigendian=yes +else $as_nop + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes +then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +unsigned short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + unsigned short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + unsigned short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + unsigned short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + +int +main (void) +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main (void) +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + ac_cv_c_bigendian=no +else $as_nop + ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +printf "%s\n" "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + printf "%s\n" "#define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) + +printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac + + +# __attribute__((__constructor__)) can be used for one-time initializations. +# Use -Werror because some compilers accept unknown attributes and just +# give a warning. +# +# FIXME? Unfortunately -Werror can cause trouble if CFLAGS contains options +# that produce warnings for unrelated reasons. For example, GCC and Clang +# support -Wunused-macros which will warn about "#define _GNU_SOURCE 1" +# which will be among the #defines that Autoconf inserts to the beginning of +# the test program. There seems to be no nice way to prevent Autoconf from +# inserting the any defines to the test program. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if __attribute__((__constructor__)) can be used" >&5 +printf %s "checking if __attribute__((__constructor__)) can be used... " >&6; } +have_func_attribute_constructor=no +OLD_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -Werror" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + __attribute__((__constructor__)) + static void my_constructor_func(void) { return; } + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + +printf "%s\n" "#define HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR 1" >>confdefs.h + + have_func_attribute_constructor=yes + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +CFLAGS="$OLD_CFLAGS" + + +# The Win95 threading lacks a thread-safe one-time initialization function. +# The one-time initialization is needed for crc32_small.c and crc64_small.c +# create the CRC tables. So if small mode is enabled, the threading mode is +# win95, and the compiler does not support attribute constructor, then we +# would end up with a multithreaded build that is thread-unsafe. As a +# result this configuration is not allowed. +if test "x$enable_small$enable_threads$have_func_attribute_constructor" \ + = xyeswin95no; then + as_fn_error $? " + --enable-threads=win95 and --enable-small cannot be used + at the same time with a compiler that doesn't support + __attribute__((__constructor__))" "$LINENO" 5 +fi + +############################################################################### +# Checks for library functions. +############################################################################### + +# Gnulib replacements as needed + + if test -z "$GETOPT_H"; then + for ac_header in getopt.h +do : + ac_fn_c_check_header_compile "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default" +if test "x$ac_cv_header_getopt_h" = xyes +then : + printf "%s\n" "#define HAVE_GETOPT_H 1" >>confdefs.h + +else $as_nop + GETOPT_H=getopt.h +fi + +done + fi + + if test -z "$GETOPT_H"; then + + for ac_func in getopt_long +do : + ac_fn_c_check_func "$LINENO" "getopt_long" "ac_cv_func_getopt_long" +if test "x$ac_cv_func_getopt_long" = xyes +then : + printf "%s\n" "#define HAVE_GETOPT_LONG 1" >>confdefs.h + +else $as_nop + GETOPT_H=getopt.h +fi + +done + fi + + if test -z "$GETOPT_H"; then + ac_fn_check_decl "$LINENO" "optreset" "ac_cv_have_decl_optreset" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_optreset" = xyes +then : + +printf "%s\n" "#define HAVE_OPTRESET 1" >>confdefs.h + +fi + fi + + + + + if test -n "$GETOPT_H" +then : + + case " $LIBOBJS " in + *" getopt.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS getopt.$ac_objext" + ;; +esac + + case " $LIBOBJS " in + *" getopt1.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS getopt1.$ac_objext" + ;; +esac + + + GETOPT_H=getopt.h + +printf "%s\n" "#define __GETOPT_PREFIX rpl_" >>confdefs.h + + + + +fi + + +# Find the best function to set timestamps. + + for ac_func in futimens futimes futimesat utimes _futime utime +do : + as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + break +fi + +done + +# This is nice to have but not mandatory. +ac_fn_c_check_func "$LINENO" "posix_fadvise" "ac_cv_func_posix_fadvise" +if test "x$ac_cv_func_posix_fadvise" = xyes +then : + printf "%s\n" "#define HAVE_POSIX_FADVISE 1" >>confdefs.h + +fi + + + + + + + + + +ac_fn_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_program_invocation_name" = xyes +then : + +printf "%s\n" "#define HAVE_PROGRAM_INVOCATION_NAME 1" >>confdefs.h + +fi + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if __builtin_bswap16/32/64 are supported" >&5 +printf %s "checking if __builtin_bswap16/32/64 are supported... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +__builtin_bswap16(1); + __builtin_bswap32(1); + __builtin_bswap64(1); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + +printf "%s\n" "#define HAVE___BUILTIN_BSWAPXX 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + + # Look for other byteswapping methods. + for ac_header in byteswap.h sys/endian.h sys/byteorder.h +do : + as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + break +fi + +done + + # Even if we have byteswap.h we may lack the specific macros/functions. + if test x$ac_cv_header_byteswap_h = xyes ; then + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if bswap_16 is available" >&5 +printf %s "checking if bswap_16 is available... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +int +main(void) +{ + bswap_16(42); + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + +printf "%s\n" "#define HAVE_BSWAP_16 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if bswap_32 is available" >&5 +printf %s "checking if bswap_32 is available... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +int +main(void) +{ + bswap_32(42); + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + +printf "%s\n" "#define HAVE_BSWAP_32 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if bswap_64 is available" >&5 +printf %s "checking if bswap_64 is available... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +int +main(void) +{ + bswap_64(42); + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + +printf "%s\n" "#define HAVE_BSWAP_64 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + + fi + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if unaligned memory access should be used" >&5 +printf %s "checking if unaligned memory access should be used... " >&6; } +# Check whether --enable-unaligned-access was given. +if test ${enable_unaligned_access+y} +then : + enableval=$enable_unaligned_access; +else $as_nop + enable_unaligned_access=auto +fi + +if test "x$enable_unaligned_access" = xauto ; then + # TODO: There may be other architectures, on which unaligned access + # is OK. + case $host_cpu in + i?86|x86_64|powerpc|powerpc64) + enable_unaligned_access=yes + ;; + arm*|aarch64*) + # On 32-bit and 64-bit ARM, GCC and Clang + # #define __ARM_FEATURE_UNALIGNED if + # unaligned access is supported. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifndef __ARM_FEATURE_UNALIGNED +compile error +#endif +int main(void) { return 0; } + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + enable_unaligned_access=yes +else $as_nop + enable_unaligned_access=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + *) + enable_unaligned_access=no + ;; + esac +fi +if test "x$enable_unaligned_access" = xyes ; then + +printf "%s\n" "#define TUKLIB_FAST_UNALIGNED_ACCESS 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if unsafe type punning should be used" >&5 +printf %s "checking if unsafe type punning should be used... " >&6; } +# Check whether --enable-unsafe-type-punning was given. +if test ${enable_unsafe_type_punning+y} +then : + enableval=$enable_unsafe_type_punning; +else $as_nop + enable_unsafe_type_punning=no +fi + +if test "x$enable_unsafe_type_punning" = xyes ; then + +printf "%s\n" "#define TUKLIB_USE_UNSAFE_TYPE_PUNNING 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if __builtin_assume_aligned is supported" >&5 +printf %s "checking if __builtin_assume_aligned is supported... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +__builtin_assume_aligned("", 1); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + +printf "%s\n" "#define HAVE___BUILTIN_ASSUME_ALIGNED 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + + + + +# sys/param.h might be needed by sys/sysctl.h. +ac_fn_c_check_header_compile "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_param_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_PARAM_H 1" >>confdefs.h + +fi + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to detect the amount of physical memory" >&5 +printf %s "checking how to detect the amount of physical memory... " >&6; } +if test ${tuklib_cv_physmem_method+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + +# Maybe checking $host_os would be enough but this matches what +# tuklib_physmem.c does. +# +# NOTE: IRIX has a compiler that doesn't error out with #error, so use +# a non-compilable text instead of #error to generate an error. +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#if defined(_WIN32) || defined(__CYGWIN__) || defined(__OS2__) \ + || defined(__DJGPP__) || defined(__VMS) \ + || defined(AMIGA) || defined(__AROS__) || defined(__QNX__) +int main(void) { return 0; } +#else +compile error +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_physmem_method=special +else $as_nop + + +# Look for AIX-specific solution before sysconf(), because the test +# for sysconf() will pass on AIX but won't actually work +# (sysconf(_SC_PHYS_PAGES) compiles but always returns -1 on AIX). +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +int +main(void) +{ + (void)_system_configuration.physmem; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_physmem_method=aix +else $as_nop + + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +int +main(void) +{ + long i; + i = sysconf(_SC_PAGESIZE); + i = sysconf(_SC_PHYS_PAGES); + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_physmem_method=sysconf +else $as_nop + + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef HAVE_SYS_PARAM_H +# include +#endif +#include +int +main(void) +{ + int name[2] = { CTL_HW, HW_PHYSMEM }; + unsigned long mem; + size_t mem_ptr_size = sizeof(mem); + sysctl(name, 2, &mem, &mem_ptr_size, NULL, 0); + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_physmem_method=sysctl +else $as_nop + + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main(void) +{ + int memkb; + int start = 0; + getsysinfo(GSI_PHYSMEM, (caddr_t)&memkb, sizeof(memkb), &start); + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_physmem_method=getsysinfo +else $as_nop + + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main(void) +{ + struct pst_static pst; + pstat_getstatic(&pst, sizeof(pst), 1, 0); + (void)pst.physical_memory; + (void)pst.page_size; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_physmem_method=pstat_getstatic +else $as_nop + + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +int +main(void) +{ + inv_state_t *st = NULL; + setinvent_r(&st); + getinvent_r(st); + endinvent_r(st); + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_physmem_method=getinvent_r +else $as_nop + + +# This version of sysinfo() is Linux-specific. Some non-Linux systems have +# different sysinfo() so we must check $host_os. +case $host_os in + linux*) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +int +main(void) +{ + struct sysinfo si; + sysinfo(&si); + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + tuklib_cv_physmem_method=sysinfo + +else $as_nop + + tuklib_cv_physmem_method=unknown + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + *) + tuklib_cv_physmem_method=unknown + ;; +esac + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tuklib_cv_physmem_method" >&5 +printf "%s\n" "$tuklib_cv_physmem_method" >&6; } + +case $tuklib_cv_physmem_method in + aix) + +printf "%s\n" "#define TUKLIB_PHYSMEM_AIX 1" >>confdefs.h + + ;; + sysconf) + +printf "%s\n" "#define TUKLIB_PHYSMEM_SYSCONF 1" >>confdefs.h + + ;; + sysctl) + +printf "%s\n" "#define TUKLIB_PHYSMEM_SYSCTL 1" >>confdefs.h + + ;; + getsysinfo) + +printf "%s\n" "#define TUKLIB_PHYSMEM_GETSYSINFO 1" >>confdefs.h + + ;; + pstat_getstatic) + +printf "%s\n" "#define TUKLIB_PHYSMEM_PSTAT_GETSTATIC 1" >>confdefs.h + + ;; + getinvent_r) + +printf "%s\n" "#define TUKLIB_PHYSMEM_GETINVENT_R 1" >>confdefs.h + + ;; + sysinfo) + +printf "%s\n" "#define TUKLIB_PHYSMEM_SYSINFO 1" >>confdefs.h + + ;; +esac + + + + +# sys/param.h might be needed by sys/sysctl.h. +ac_fn_c_check_header_compile "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_param_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_PARAM_H 1" >>confdefs.h + +fi + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to detect the number of available CPU cores" >&5 +printf %s "checking how to detect the number of available CPU cores... " >&6; } +if test ${tuklib_cv_cpucores_method+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + +# Maybe checking $host_os would be enough but this matches what +# tuklib_cpucores.c does. +# +# NOTE: IRIX has a compiler that doesn't error out with #error, so use +# a non-compilable text instead of #error to generate an error. +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#if defined(_WIN32) || defined(__CYGWIN__) +int main(void) { return 0; } +#else +compile error +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_cpucores_method=special +else $as_nop + + +# glibc-based systems (GNU/Linux and GNU/kFreeBSD) have sched_getaffinity(). +# The CPU_COUNT() macro was added in glibc 2.9 so we try to link the +# test program instead of merely compiling it. glibc 2.9 is old enough that +# if someone uses the code on older glibc, the fallback to sysconf() should +# be good enough. +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +int +main(void) +{ + cpu_set_t cpu_mask; + sched_getaffinity(0, sizeof(cpu_mask), &cpu_mask); + return CPU_COUNT(&cpu_mask); +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + tuklib_cv_cpucores_method=sched_getaffinity +else $as_nop + + +# FreeBSD has both cpuset and sysctl. Look for cpuset first because +# it's a better approach. +# +# This test would match on GNU/kFreeBSD too but it would require +# -lfreebsd-glue when linking and thus in the current form this would +# fail on GNU/kFreeBSD. The above test for sched_getaffinity() matches +# on GNU/kFreeBSD so the test below should never run on that OS. +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main(void) +{ + cpuset_t set; + cpuset_getaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID, -1, + sizeof(set), &set); + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_cpucores_method=cpuset +else $as_nop + + +# On OS/2, both sysconf() and sysctl() pass the tests in this file, +# but only sysctl() works. On QNX it's the opposite: only sysconf() works +# (although it assumes that _POSIX_SOURCE, _XOPEN_SOURCE, and _POSIX_C_SOURCE +# are undefined or alternatively _QNX_SOURCE is defined). +# +# We test sysctl() first and intentionally break the sysctl() test on QNX +# so that sysctl() is never used on QNX. +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __QNX__ +compile error +#endif +#ifdef HAVE_SYS_PARAM_H +# include +#endif +#include +int +main(void) +{ +#ifdef HW_NCPUONLINE + /* This is preferred on OpenBSD, see tuklib_cpucores.c. */ + int name[2] = { CTL_HW, HW_NCPUONLINE }; +#else + int name[2] = { CTL_HW, HW_NCPU }; +#endif + int cpus; + size_t cpus_size = sizeof(cpus); + sysctl(name, 2, &cpus, &cpus_size, NULL, 0); + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_cpucores_method=sysctl +else $as_nop + + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +int +main(void) +{ + long i; +#ifdef _SC_NPROCESSORS_ONLN + /* Many systems using sysconf() */ + i = sysconf(_SC_NPROCESSORS_ONLN); +#else + /* IRIX */ + i = sysconf(_SC_NPROC_ONLN); +#endif + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_cpucores_method=sysconf +else $as_nop + + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main(void) +{ + struct pst_dynamic pst; + pstat_getdynamic(&pst, sizeof(pst), 1, 0); + (void)pst.psd_proc_cnt; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_cpucores_method=pstat_getdynamic +else $as_nop + + + tuklib_cv_cpucores_method=unknown + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tuklib_cv_cpucores_method" >&5 +printf "%s\n" "$tuklib_cv_cpucores_method" >&6; } + +case $tuklib_cv_cpucores_method in + sched_getaffinity) + +printf "%s\n" "#define TUKLIB_CPUCORES_SCHED_GETAFFINITY 1" >>confdefs.h + + ;; + cpuset) + +printf "%s\n" "#define TUKLIB_CPUCORES_CPUSET 1" >>confdefs.h + + ;; + sysctl) + +printf "%s\n" "#define TUKLIB_CPUCORES_SYSCTL 1" >>confdefs.h + + ;; + sysconf) + +printf "%s\n" "#define TUKLIB_CPUCORES_SYSCONF 1" >>confdefs.h + + ;; + pstat_getdynamic) + +printf "%s\n" "#define TUKLIB_CPUCORES_PSTAT_GETDYNAMIC 1" >>confdefs.h + + ;; +esac + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc and mbstate_t are properly declared" >&5 +printf %s "checking whether mbrtowc and mbstate_t are properly declared... " >&6; } +if test ${ac_cv_func_mbrtowc+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +wchar_t wc; + char const s[] = ""; + size_t n = 1; + mbstate_t state; + return ! (sizeof state && (mbrtowc) (&wc, s, n, &state)); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_func_mbrtowc=yes +else $as_nop + ac_cv_func_mbrtowc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mbrtowc" >&5 +printf "%s\n" "$ac_cv_func_mbrtowc" >&6; } + if test $ac_cv_func_mbrtowc = yes; then + +printf "%s\n" "#define HAVE_MBRTOWC 1" >>confdefs.h + + fi + +ac_fn_c_check_func "$LINENO" "wcwidth" "ac_cv_func_wcwidth" +if test "x$ac_cv_func_wcwidth" = xyes +then : + printf "%s\n" "#define HAVE_WCWIDTH 1" >>confdefs.h + +fi + + + +# If requested, check for system-provided SHA-256. At least the following +# implementations are supported: +# +# OS Headers Library Type Function +# FreeBSD sys/types.h + sha256.h libmd SHA256_CTX SHA256_Init +# NetBSD sys/types.h + sha2.h SHA256_CTX SHA256_Init +# OpenBSD sys/types.h + sha2.h SHA2_CTX SHA256Init +# Solaris sys/types.h + sha2.h libmd SHA256_CTX SHA256Init +# MINIX 3 sys/types.h + sha2.h SHA256_CTX SHA256_Init +# Darwin CommonCrypto/CommonDigest.h CC_SHA256_CTX CC_SHA256_Init +# +# Note that Darwin's CC_SHA256_Update takes buffer size as uint32_t instead +# of size_t. +# +sha256_header_found=no +sha256_type_found=no +sha256_func_found=no +if test "x$enable_external_sha256" = "xyes" +then : + + # Test for Common Crypto before others, because Darwin has sha256.h + # too and we don't want to use that, because on older versions it + # uses OpenSSL functions, whose SHA256_Init is not guaranteed to + # succeed. + for ac_header in CommonCrypto/CommonDigest.h sha256.h sha2.h +do : + as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + sha256_header_found=yes ; break +fi + +done + if test "x$sha256_header_found" = xyes; then + ac_fn_c_check_type "$LINENO" "CC_SHA256_CTX" "ac_cv_type_CC_SHA256_CTX" "#ifdef HAVE_SYS_TYPES_H + # include + #endif + #ifdef HAVE_COMMONCRYPTO_COMMONDIGEST_H + # include + #endif + #ifdef HAVE_SHA256_H + # include + #endif + #ifdef HAVE_SHA2_H + # include + #endif +" +if test "x$ac_cv_type_CC_SHA256_CTX" = xyes +then : + +printf "%s\n" "#define HAVE_CC_SHA256_CTX 1" >>confdefs.h + +sha256_type_found=yes +fi +ac_fn_c_check_type "$LINENO" "SHA256_CTX" "ac_cv_type_SHA256_CTX" "#ifdef HAVE_SYS_TYPES_H + # include + #endif + #ifdef HAVE_COMMONCRYPTO_COMMONDIGEST_H + # include + #endif + #ifdef HAVE_SHA256_H + # include + #endif + #ifdef HAVE_SHA2_H + # include + #endif +" +if test "x$ac_cv_type_SHA256_CTX" = xyes +then : + +printf "%s\n" "#define HAVE_SHA256_CTX 1" >>confdefs.h + +sha256_type_found=yes +fi +ac_fn_c_check_type "$LINENO" "SHA2_CTX" "ac_cv_type_SHA2_CTX" "#ifdef HAVE_SYS_TYPES_H + # include + #endif + #ifdef HAVE_COMMONCRYPTO_COMMONDIGEST_H + # include + #endif + #ifdef HAVE_SHA256_H + # include + #endif + #ifdef HAVE_SHA2_H + # include + #endif +" +if test "x$ac_cv_type_SHA2_CTX" = xyes +then : + +printf "%s\n" "#define HAVE_SHA2_CTX 1" >>confdefs.h + +sha256_type_found=yes +fi + + if test "x$sha256_type_found" = xyes ; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing SHA256Init" >&5 +printf %s "checking for library containing SHA256Init... " >&6; } +if test ${ac_cv_search_SHA256Init+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char SHA256Init (); +int +main (void) +{ +return SHA256Init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' md +do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO" +then : + ac_cv_search_SHA256Init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext + if test ${ac_cv_search_SHA256Init+y} +then : + break +fi +done +if test ${ac_cv_search_SHA256Init+y} +then : + +else $as_nop + ac_cv_search_SHA256Init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_SHA256Init" >&5 +printf "%s\n" "$ac_cv_search_SHA256Init" >&6; } +ac_res=$ac_cv_search_SHA256Init +if test "$ac_res" != no +then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing SHA256_Init" >&5 +printf %s "checking for library containing SHA256_Init... " >&6; } +if test ${ac_cv_search_SHA256_Init+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char SHA256_Init (); +int +main (void) +{ +return SHA256_Init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' md +do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO" +then : + ac_cv_search_SHA256_Init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext + if test ${ac_cv_search_SHA256_Init+y} +then : + break +fi +done +if test ${ac_cv_search_SHA256_Init+y} +then : + +else $as_nop + ac_cv_search_SHA256_Init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_SHA256_Init" >&5 +printf "%s\n" "$ac_cv_search_SHA256_Init" >&6; } +ac_res=$ac_cv_search_SHA256_Init +if test "$ac_res" != no +then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + + + for ac_func in CC_SHA256_Init SHA256Init SHA256_Init +do : + as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + sha256_func_found=yes ; break +fi + +done + fi + fi + +fi + if test "x$sha256_func_found" = xno; then + COND_INTERNAL_SHA256_TRUE= + COND_INTERNAL_SHA256_FALSE='#' +else + COND_INTERNAL_SHA256_TRUE='#' + COND_INTERNAL_SHA256_FALSE= +fi + +if test "x$enable_external_sha256$sha256_func_found" = xyesno; then + as_fn_error $? "--enable-external-sha256 was specified but no supported external SHA-256 implementation was found" "$LINENO" 5 +fi + +# Check for SSE2 intrinsics. There is no run-time detection for SSE2 so if +# compiler options enable SSE2 then SSE2 support is required by the binaries. +# The compile-time check for SSE2 is done with #ifdefs because some compilers +# (ICC, MSVC) allow SSE2 intrinsics even when SSE2 isn't enabled. +ac_fn_check_decl "$LINENO" "_mm_movemask_epi8" "ac_cv_have_decl__mm_movemask_epi8" "#ifdef HAVE_IMMINTRIN_H +#include +#endif +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl__mm_movemask_epi8" = xyes +then : + +printf "%s\n" "#define HAVE__MM_MOVEMASK_EPI8 1" >>confdefs.h + +fi + +# For faster CRC on 32/64-bit x86 and E2K (see also crc64_fast.c): +# +# - Check for the CLMUL intrinsic _mm_clmulepi64_si128 in . +# Check also for _mm_set_epi64x for consistency with CMake build +# where it's needed to disable CLMUL with VS2013. +# +# - Check that __attribute__((__target__("ssse3,sse4.1,pclmul"))) works +# together with _mm_clmulepi64_si128 from . The attribute +# was added in GCC 4.4 but some GCC 4.x versions don't allow intrinsics +# with it. Exception: it must be not be used with EDG-based compilers +# like ICC and the compiler on E2K. +# +# If everything above is supported, runtime detection will be used to keep the +# binaries working on systems that don't support the required extensions. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if _mm_clmulepi64_si128 is usable" >&5 +printf %s "checking if _mm_clmulepi64_si128 is usable... " >&6; } +if test "x$enable_clmul_crc" = xno +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, --disable-clmul-crc was used" >&5 +printf "%s\n" "no, --disable-clmul-crc was used" >&6; } + +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +// CLMUL works on older E2K instruction set but it is slow due to emulation. +#if defined(__e2k__) && __iset__ < 6 +# error +#endif + +// Intel's old compiler (ICC) can define __GNUC__ but the attribute must not +// be used with it. The new Clang-based ICX needs the attribute. +// Checking for !defined(__EDG__) catches ICC and other EDG-based compilers. +#if (defined(__GNUC__) || defined(__clang__)) && !defined(__EDG__) +__attribute__((__target__("ssse3,sse4.1,pclmul"))) +#endif +__m128i my_clmul(__m128i a) +{ + const __m128i b = _mm_set_epi64x(1, 2); + return _mm_clmulepi64_si128(a, b, 0); +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + +printf "%s\n" "#define HAVE_USABLE_CLMUL 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi + +# Check for sandbox support. If one is found, set enable_sandbox=found. +case $enable_sandbox in #( + auto | capsicum) : + + +# On FreeBSD >= 11.x and Linux, Capsicum is uses . +# If this header is found, it is assumed to be the right one. +capsicum_header_found=no + for ac_header in sys/capsicum.h +do : + ac_fn_c_check_header_compile "$LINENO" "sys/capsicum.h" "ac_cv_header_sys_capsicum_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_capsicum_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_CAPSICUM_H 1" >>confdefs.h + capsicum_header_found=yes +fi + +done +if test "$capsicum_header_found" = no ; then + # On FreeBSD 10.x Capsicum uses . Such a header exists + # on Linux too but it describes POSIX.1e capabilities. Look for the + # declaration of cap_rights_limit to check if is + # a Capsicum header. + ac_fn_check_decl "$LINENO" "cap_rights_limit" "ac_cv_have_decl_cap_rights_limit" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_cap_rights_limit" = xyes +then : + capsicum_header_found=yes +fi +fi + +capsicum_lib_found=no +CAPSICUM_LIB= +if test "$capsicum_header_found" = yes ; then + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + # FreeBSD >= 10.x has Capsicum functions in libc. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char cap_rights_limit (); +int +main (void) +{ +return cap_rights_limit (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + capsicum_lib_found=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # Linux has Capsicum functions in libcaprights. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for cap_rights_limit in -lcaprights" >&5 +printf %s "checking for cap_rights_limit in -lcaprights... " >&6; } +if test ${ac_cv_lib_caprights_cap_rights_limit+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcaprights $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char cap_rights_limit (); +int +main (void) +{ +return cap_rights_limit (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_caprights_cap_rights_limit=yes +else $as_nop + ac_cv_lib_caprights_cap_rights_limit=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_caprights_cap_rights_limit" >&5 +printf "%s\n" "$ac_cv_lib_caprights_cap_rights_limit" >&6; } +if test "x$ac_cv_lib_caprights_cap_rights_limit" = xyes +then : + CAPSICUM_LIB=-lcaprights + capsicum_lib_found=yes +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi + + +if test "$capsicum_lib_found" = yes ; then + +printf "%s\n" "#define HAVE_CAPSICUM 1" >>confdefs.h + + enable_sandbox=found +else + : +fi + + ;; #( + *) : + ;; +esac +case $enable_sandbox in #( + auto | pledge) : + + + for ac_func in pledge +do : + ac_fn_c_check_func "$LINENO" "pledge" "ac_cv_func_pledge" +if test "x$ac_cv_func_pledge" = xyes +then : + printf "%s\n" "#define HAVE_PLEDGE 1" >>confdefs.h + enable_sandbox=found ; break +fi + +done + + ;; #( + *) : + ;; +esac + +# If a specific sandboxing method was explicitly requested and it wasn't +# found, give an error. +case $enable_sandbox in + auto | no | found) + ;; + *) + as_fn_error $? "$enable_sandbox support not found" "$LINENO" 5 + ;; +esac + + +############################################################################### +# If using GCC, set some additional AM_CFLAGS: +############################################################################### + +if test "$GCC" = yes ; then + echo + echo "GCC extensions:" +fi + +# Always do the visibility check but don't set AM_CFLAGS on Windows. +# This way things get set properly even on Windows. + + + CFLAG_VISIBILITY= + HAVE_VISIBILITY=0 + if test -n "$GCC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the -Werror option is usable" >&5 +printf %s "checking whether the -Werror option is usable... " >&6; } +if test ${gl_cv_cc_vis_werror+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_cc_vis_werror=yes +else $as_nop + gl_cv_cc_vis_werror=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS="$gl_save_CFLAGS" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5 +printf "%s\n" "$gl_cv_cc_vis_werror" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for simple visibility declarations" >&5 +printf %s "checking for simple visibility declarations... " >&6; } +if test ${gl_cv_cc_visibility+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fvisibility=hidden" + if test $gl_cv_cc_vis_werror = yes; then + CFLAGS="$CFLAGS -Werror" + fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern __attribute__((__visibility__("hidden"))) int hiddenvar; + extern __attribute__((__visibility__("default"))) int exportedvar; + extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); + extern __attribute__((__visibility__("default"))) int exportedfunc (void); + void dummyfunc (void); + int hiddenvar; + int exportedvar; + int hiddenfunc (void) { return 51; } + int exportedfunc (void) { return 1225736919; } + void dummyfunc (void) {} + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_cc_visibility=yes +else $as_nop + gl_cv_cc_visibility=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS="$gl_save_CFLAGS" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5 +printf "%s\n" "$gl_cv_cc_visibility" >&6; } + if test $gl_cv_cc_visibility = yes; then + CFLAG_VISIBILITY="-fvisibility=hidden" + HAVE_VISIBILITY=1 + fi + fi + + + +printf "%s\n" "#define HAVE_VISIBILITY $HAVE_VISIBILITY" >>confdefs.h + + +if test -n "$CFLAG_VISIBILITY" && test "$is_w32" = no; then + AM_CFLAGS="$AM_CFLAGS $CFLAG_VISIBILITY" +fi + +if test "$GCC" = yes +then : + + # Enable as much warnings as possible. These commented warnings won't + # work for this package though: + # * -Wunreachable-code breaks several assert(0) cases, which are + # backed up with "return LZMA_PROG_ERROR". + # * -Wcast-qual would break various things where we need a non-const + # pointer although we don't modify anything through it. + # * -Winline, -Wdisabled-optimization, -Wunsafe-loop-optimizations + # don't seem so useful here; at least the last one gives some + # warnings which are not bugs. + # * -Wconversion still shows too many warnings. + # + # The flags before the empty line are for GCC and many of them + # are supported by Clang too. The flags after the empty line are + # for Clang. + for NEW_FLAG in \ + -Wall \ + -Wextra \ + -Wvla \ + -Wc99-c11-compat \ + -Wformat=2 \ + -Winit-self \ + -Wmissing-include-dirs \ + -Wshift-overflow=2 \ + -Wstrict-overflow=3 \ + -Walloc-zero \ + -Wduplicated-cond \ + -Wfloat-equal \ + -Wundef \ + -Wshadow \ + -Wpointer-arith \ + -Wbad-function-cast \ + -Wwrite-strings \ + -Wdate-time \ + -Wsign-conversion \ + -Wfloat-conversion \ + -Wlogical-op \ + -Waggregate-return \ + -Wstrict-prototypes \ + -Wold-style-definition \ + -Wmissing-prototypes \ + -Wmissing-declarations \ + -Wredundant-decls \ + \ + -Wc99-compat \ + -Wc11-extensions \ + -Wc2x-compat \ + -Wc2x-extensions \ + -Wpre-c2x-compat \ + -Warray-bounds-pointer-arithmetic \ + -Wassign-enum \ + -Wconditional-uninitialized \ + -Wdocumentation \ + -Wduplicate-enum \ + -Wempty-translation-unit \ + -Wflexible-array-extensions \ + -Wmissing-variable-declarations \ + -Wnewline-eof \ + -Wshift-sign-overflow \ + -Wstring-conversion + do + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC accepts $NEW_FLAG" >&5 +printf %s "checking if $CC accepts $NEW_FLAG... " >&6; } + OLD_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $NEW_FLAG -Werror" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +void foo(void); void foo(void) { } +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + AM_CFLAGS="$AM_CFLAGS $NEW_FLAG" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS="$OLD_CFLAGS" + done + + # Check whether --enable-werror was given. +if test ${enable_werror+y} +then : + enableval=$enable_werror; +else $as_nop + enable_werror=no +fi + + if test "x$enable_werror" = "xyes"; then + AM_CFLAGS="$AM_CFLAGS -Werror" + fi + +fi + + +############################################################################### +# Create the makefiles and config.h +############################################################################### + +echo + +# Don't build the lib directory at all if we don't need any replacement +# functions. + if test -n "$LIBOBJS"; then + COND_GNULIB_TRUE= + COND_GNULIB_FALSE='#' +else + COND_GNULIB_TRUE='#' + COND_GNULIB_FALSE= +fi + + +# Add default AM_CFLAGS. + + +# This is needed for src/scripts. +xz=`echo xz | sed "$program_transform_name"` + + +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" + +ac_config_files="$ac_config_files src/scripts/xzdiff" + +ac_config_files="$ac_config_files src/scripts/xzgrep" + +ac_config_files="$ac_config_files src/scripts/xzmore" + +ac_config_files="$ac_config_files src/scripts/xzless" + + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +printf "%s\n" "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +if test -z "${COND_W32_TRUE}" && test -z "${COND_W32_FALSE}"; then + as_fn_error $? "conditional \"COND_W32\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_MAIN_ENCODER_TRUE}" && test -z "${COND_MAIN_ENCODER_FALSE}"; then + as_fn_error $? "conditional \"COND_MAIN_ENCODER\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_MAIN_DECODER_TRUE}" && test -z "${COND_MAIN_DECODER_FALSE}"; then + as_fn_error $? "conditional \"COND_MAIN_DECODER\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_LZMA1_TRUE}" && test -z "${COND_FILTER_LZMA1_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_LZMA1\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_LZMA1_TRUE}" && test -z "${COND_ENCODER_LZMA1_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_LZMA1\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_LZMA1_TRUE}" && test -z "${COND_DECODER_LZMA1_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_LZMA1\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_LZMA2_TRUE}" && test -z "${COND_FILTER_LZMA2_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_LZMA2\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_LZMA2_TRUE}" && test -z "${COND_ENCODER_LZMA2_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_LZMA2\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_LZMA2_TRUE}" && test -z "${COND_DECODER_LZMA2_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_LZMA2\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_DELTA_TRUE}" && test -z "${COND_FILTER_DELTA_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_DELTA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_DELTA_TRUE}" && test -z "${COND_ENCODER_DELTA_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_DELTA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_DELTA_TRUE}" && test -z "${COND_DECODER_DELTA_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_DELTA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_X86_TRUE}" && test -z "${COND_FILTER_X86_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_X86\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_X86_TRUE}" && test -z "${COND_ENCODER_X86_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_X86\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_X86_TRUE}" && test -z "${COND_DECODER_X86_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_X86\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_POWERPC_TRUE}" && test -z "${COND_FILTER_POWERPC_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_POWERPC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_POWERPC_TRUE}" && test -z "${COND_ENCODER_POWERPC_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_POWERPC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_POWERPC_TRUE}" && test -z "${COND_DECODER_POWERPC_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_POWERPC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_IA64_TRUE}" && test -z "${COND_FILTER_IA64_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_IA64\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_IA64_TRUE}" && test -z "${COND_ENCODER_IA64_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_IA64\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_IA64_TRUE}" && test -z "${COND_DECODER_IA64_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_IA64\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_ARM_TRUE}" && test -z "${COND_FILTER_ARM_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_ARM\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_ARM_TRUE}" && test -z "${COND_ENCODER_ARM_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_ARM\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_ARM_TRUE}" && test -z "${COND_DECODER_ARM_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_ARM\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_ARMTHUMB_TRUE}" && test -z "${COND_FILTER_ARMTHUMB_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_ARMTHUMB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_ARMTHUMB_TRUE}" && test -z "${COND_ENCODER_ARMTHUMB_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_ARMTHUMB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_ARMTHUMB_TRUE}" && test -z "${COND_DECODER_ARMTHUMB_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_ARMTHUMB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_ARM64_TRUE}" && test -z "${COND_FILTER_ARM64_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_ARM64\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_ARM64_TRUE}" && test -z "${COND_ENCODER_ARM64_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_ARM64\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_ARM64_TRUE}" && test -z "${COND_DECODER_ARM64_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_ARM64\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_SPARC_TRUE}" && test -z "${COND_FILTER_SPARC_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_SPARC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_SPARC_TRUE}" && test -z "${COND_ENCODER_SPARC_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_SPARC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_SPARC_TRUE}" && test -z "${COND_DECODER_SPARC_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_SPARC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_SIMPLE_TRUE}" && test -z "${COND_FILTER_SIMPLE_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_SIMPLE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_SIMPLE_TRUE}" && test -z "${COND_ENCODER_SIMPLE_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_SIMPLE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_SIMPLE_TRUE}" && test -z "${COND_DECODER_SIMPLE_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_SIMPLE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_LZ_TRUE}" && test -z "${COND_FILTER_LZ_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_LZ\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_LZ_TRUE}" && test -z "${COND_ENCODER_LZ_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_LZ\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_LZ_TRUE}" && test -z "${COND_DECODER_LZ_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_LZ\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_CHECK_CRC32_TRUE}" && test -z "${COND_CHECK_CRC32_FALSE}"; then + as_fn_error $? "conditional \"COND_CHECK_CRC32\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_CHECK_CRC64_TRUE}" && test -z "${COND_CHECK_CRC64_FALSE}"; then + as_fn_error $? "conditional \"COND_CHECK_CRC64\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_CHECK_SHA256_TRUE}" && test -z "${COND_CHECK_SHA256_FALSE}"; then + as_fn_error $? "conditional \"COND_CHECK_SHA256\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_MICROLZMA_TRUE}" && test -z "${COND_MICROLZMA_FALSE}"; then + as_fn_error $? "conditional \"COND_MICROLZMA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_LZIP_DECODER_TRUE}" && test -z "${COND_LZIP_DECODER_FALSE}"; then + as_fn_error $? "conditional \"COND_LZIP_DECODER\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ASM_X86_TRUE}" && test -z "${COND_ASM_X86_FALSE}"; then + as_fn_error $? "conditional \"COND_ASM_X86\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_SMALL_TRUE}" && test -z "${COND_SMALL_FALSE}"; then + as_fn_error $? "conditional \"COND_SMALL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_XZ_TRUE}" && test -z "${COND_XZ_FALSE}"; then + as_fn_error $? "conditional \"COND_XZ\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_XZDEC_TRUE}" && test -z "${COND_XZDEC_FALSE}"; then + as_fn_error $? "conditional \"COND_XZDEC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_LZMADEC_TRUE}" && test -z "${COND_LZMADEC_FALSE}"; then + as_fn_error $? "conditional \"COND_LZMADEC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_LZMAINFO_TRUE}" && test -z "${COND_LZMAINFO_FALSE}"; then + as_fn_error $? "conditional \"COND_LZMAINFO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_LZMALINKS_TRUE}" && test -z "${COND_LZMALINKS_FALSE}"; then + as_fn_error $? "conditional \"COND_LZMALINKS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_SCRIPTS_TRUE}" && test -z "${COND_SCRIPTS_FALSE}"; then + as_fn_error $? "conditional \"COND_SCRIPTS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DOC_TRUE}" && test -z "${COND_DOC_FALSE}"; then + as_fn_error $? "conditional \"COND_DOC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +printf %s "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5 +printf "%s\n" "done" >&6; } + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCCAS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_THREADS_TRUE}" && test -z "${COND_THREADS_FALSE}"; then + as_fn_error $? "conditional \"COND_THREADS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_SHARED_TRUE}" && test -z "${COND_SHARED_FALSE}"; then + as_fn_error $? "conditional \"COND_SHARED\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_SYMVERS_LINUX_TRUE}" && test -z "${COND_SYMVERS_LINUX_FALSE}"; then + as_fn_error $? "conditional \"COND_SYMVERS_LINUX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_SYMVERS_GENERIC_TRUE}" && test -z "${COND_SYMVERS_GENERIC_FALSE}"; then + as_fn_error $? "conditional \"COND_SYMVERS_GENERIC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +if test -z "${COND_INTERNAL_SHA256_TRUE}" && test -z "${COND_INTERNAL_SHA256_FALSE}"; then + as_fn_error $? "conditional \"COND_INTERNAL_SHA256\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_GNULIB_TRUE}" && test -z "${COND_GNULIB_FALSE}"; then + as_fn_error $? "conditional \"COND_GNULIB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else $as_nop + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. +as_nl=' +' +export as_nl +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi + +# The user is always right. +if ${PATH_SEPARATOR+false} :; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + printf "%s\n" "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else $as_nop + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else $as_nop + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by XZ Utils $as_me 5.4.5, which was +generated by GNU Autoconf 2.71. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to . +XZ Utils home page: ." + +_ACEOF +ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` +ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config='$ac_cs_config_escaped' +ac_cs_version="\\ +XZ Utils config.status 5.4.5 +configured by $0, generated by GNU Autoconf 2.71, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2021 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + printf "%s\n" "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + printf "%s\n" "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + printf "%s\n" "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + printf "%s\n" "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +FILECMD='`$ECHO "$FILECMD" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +lt_ar_flags='`$ECHO "$lt_ar_flags" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' +configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' +LD_RC='`$ECHO "$LD_RC" | $SED "$delay_single_quote_subst"`' +reload_flag_RC='`$ECHO "$reload_flag_RC" | $SED "$delay_single_quote_subst"`' +reload_cmds_RC='`$ECHO "$reload_cmds_RC" | $SED "$delay_single_quote_subst"`' +old_archive_cmds_RC='`$ECHO "$old_archive_cmds_RC" | $SED "$delay_single_quote_subst"`' +compiler_RC='`$ECHO "$compiler_RC" | $SED "$delay_single_quote_subst"`' +GCC_RC='`$ECHO "$GCC_RC" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag_RC='`$ECHO "$lt_prog_compiler_no_builtin_flag_RC" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic_RC='`$ECHO "$lt_prog_compiler_pic_RC" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl_RC='`$ECHO "$lt_prog_compiler_wl_RC" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static_RC='`$ECHO "$lt_prog_compiler_static_RC" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o_RC='`$ECHO "$lt_cv_prog_compiler_c_o_RC" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc_RC='`$ECHO "$archive_cmds_need_lc_RC" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes_RC='`$ECHO "$enable_shared_with_static_runtimes_RC" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec_RC='`$ECHO "$export_dynamic_flag_spec_RC" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec_RC='`$ECHO "$whole_archive_flag_spec_RC" | $SED "$delay_single_quote_subst"`' +compiler_needs_object_RC='`$ECHO "$compiler_needs_object_RC" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds_RC='`$ECHO "$old_archive_from_new_cmds_RC" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds_RC='`$ECHO "$old_archive_from_expsyms_cmds_RC" | $SED "$delay_single_quote_subst"`' +archive_cmds_RC='`$ECHO "$archive_cmds_RC" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds_RC='`$ECHO "$archive_expsym_cmds_RC" | $SED "$delay_single_quote_subst"`' +module_cmds_RC='`$ECHO "$module_cmds_RC" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds_RC='`$ECHO "$module_expsym_cmds_RC" | $SED "$delay_single_quote_subst"`' +with_gnu_ld_RC='`$ECHO "$with_gnu_ld_RC" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag_RC='`$ECHO "$allow_undefined_flag_RC" | $SED "$delay_single_quote_subst"`' +no_undefined_flag_RC='`$ECHO "$no_undefined_flag_RC" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_RC='`$ECHO "$hardcode_libdir_flag_spec_RC" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator_RC='`$ECHO "$hardcode_libdir_separator_RC" | $SED "$delay_single_quote_subst"`' +hardcode_direct_RC='`$ECHO "$hardcode_direct_RC" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute_RC='`$ECHO "$hardcode_direct_absolute_RC" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L_RC='`$ECHO "$hardcode_minus_L_RC" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var_RC='`$ECHO "$hardcode_shlibpath_var_RC" | $SED "$delay_single_quote_subst"`' +hardcode_automatic_RC='`$ECHO "$hardcode_automatic_RC" | $SED "$delay_single_quote_subst"`' +inherit_rpath_RC='`$ECHO "$inherit_rpath_RC" | $SED "$delay_single_quote_subst"`' +link_all_deplibs_RC='`$ECHO "$link_all_deplibs_RC" | $SED "$delay_single_quote_subst"`' +always_export_symbols_RC='`$ECHO "$always_export_symbols_RC" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds_RC='`$ECHO "$export_symbols_cmds_RC" | $SED "$delay_single_quote_subst"`' +exclude_expsyms_RC='`$ECHO "$exclude_expsyms_RC" | $SED "$delay_single_quote_subst"`' +include_expsyms_RC='`$ECHO "$include_expsyms_RC" | $SED "$delay_single_quote_subst"`' +prelink_cmds_RC='`$ECHO "$prelink_cmds_RC" | $SED "$delay_single_quote_subst"`' +postlink_cmds_RC='`$ECHO "$postlink_cmds_RC" | $SED "$delay_single_quote_subst"`' +file_list_spec_RC='`$ECHO "$file_list_spec_RC" | $SED "$delay_single_quote_subst"`' +hardcode_action_RC='`$ECHO "$hardcode_action_RC" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in AS \ +DLLTOOL \ +OBJDUMP \ +SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +FILECMD \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +sharedlib_from_linklib_cmd \ +AR \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_import \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +lt_cv_nm_interface \ +nm_file_list_spec \ +lt_cv_truncate_bin \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib \ +LD_RC \ +reload_flag_RC \ +compiler_RC \ +lt_prog_compiler_no_builtin_flag_RC \ +lt_prog_compiler_pic_RC \ +lt_prog_compiler_wl_RC \ +lt_prog_compiler_static_RC \ +lt_cv_prog_compiler_c_o_RC \ +export_dynamic_flag_spec_RC \ +whole_archive_flag_spec_RC \ +compiler_needs_object_RC \ +with_gnu_ld_RC \ +allow_undefined_flag_RC \ +no_undefined_flag_RC \ +hardcode_libdir_flag_spec_RC \ +hardcode_libdir_separator_RC \ +exclude_expsyms_RC \ +include_expsyms_RC \ +file_list_spec_RC; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +configure_time_dlsearch_path \ +configure_time_lt_sys_library_path \ +reload_cmds_RC \ +old_archive_cmds_RC \ +old_archive_from_new_cmds_RC \ +old_archive_from_expsyms_cmds_RC \ +archive_cmds_RC \ +archive_expsym_cmds_RC \ +module_cmds_RC \ +module_expsym_cmds_RC \ +export_symbols_cmds_RC \ +prelink_cmds_RC \ +postlink_cmds_RC; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' + +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile' + + + + + +# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. + OBSOLETE_ALL_LINGUAS="$ALL_LINGUAS" + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; + "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "src/liblzma/Makefile") CONFIG_FILES="$CONFIG_FILES src/liblzma/Makefile" ;; + "src/liblzma/api/Makefile") CONFIG_FILES="$CONFIG_FILES src/liblzma/api/Makefile" ;; + "src/xz/Makefile") CONFIG_FILES="$CONFIG_FILES src/xz/Makefile" ;; + "src/xzdec/Makefile") CONFIG_FILES="$CONFIG_FILES src/xzdec/Makefile" ;; + "src/lzmainfo/Makefile") CONFIG_FILES="$CONFIG_FILES src/lzmainfo/Makefile" ;; + "src/scripts/Makefile") CONFIG_FILES="$CONFIG_FILES src/scripts/Makefile" ;; + "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; + "debug/Makefile") CONFIG_FILES="$CONFIG_FILES debug/Makefile" ;; + "src/scripts/xzdiff") CONFIG_FILES="$CONFIG_FILES src/scripts/xzdiff" ;; + "src/scripts/xzgrep") CONFIG_FILES="$CONFIG_FILES src/scripts/xzgrep" ;; + "src/scripts/xzmore") CONFIG_FILES="$CONFIG_FILES src/scripts/xzmore" ;; + "src/scripts/xzless") CONFIG_FILES="$CONFIG_FILES src/scripts/xzless" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files + test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers + test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +printf "%s\n" "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`printf "%s\n" "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + printf "%s\n" "/* $configure_input */" >&1 \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +printf "%s\n" "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + printf "%s\n" "/* $configure_input */" >&1 \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +printf "%s\n" "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + case $CONFIG_FILES in #( + *\'*) : + eval set x "$CONFIG_FILES" ;; #( + *) : + set x $CONFIG_FILES ;; #( + *) : + ;; +esac + shift + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf + do + # Strip MF so we end up with the name of the file. + am_mf=`printf "%s\n" "$am_mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`$as_dirname -- "$am_mf" || +$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$am_mf" : 'X\(//\)[^/]' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$am_mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + am_filepart=`$as_basename -- "$am_mf" || +$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X/"$am_mf" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { echo "$as_me:$LINENO: cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles" >&5 + (cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } || am_rc=$? + done + if test $am_rc -ne 0; then + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE=\"gmake\" (or whatever is + necessary). You can also try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking). +See \`config.log' for more details" "$LINENO" 5; } + fi + { am_dirpart=; unset am_dirpart;} + { am_filepart=; unset am_filepart;} + { am_mf=; unset am_mf;} + { am_rc=; unset am_rc;} + rm -f conftest-deps.mk +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +# The names of the tagged configurations supported by this script. +available_tags='RC ' + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Assembler program. +AS=$lt_AS + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Object dumper program. +OBJDUMP=$lt_OBJDUMP + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shared archive member basename,for filename based shared library versioning on AIX. +shared_archive_member_spec=$shared_archive_member_spec + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# A file(cmd) program that detects file types. +FILECMD=$lt_FILECMD + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive (by configure). +lt_ar_flags=$lt_ar_flags + +# Flags to create an archive. +AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"} + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm into a list of symbols to manually relocate. +global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# The name lister interface. +nm_interface=$lt_lt_cv_nm_interface + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and where our libraries should be installed. +lt_sysroot=$lt_sysroot + +# Command to truncate a binary pipe. +lt_truncate_bin=$lt_lt_cv_truncate_bin + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Detected run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path + +# Explicit LT_SYS_LIBRARY_PATH set during ./configure time. +configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \$shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + + +ltmain=$ac_aux_dir/ltmain.sh + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + $SED '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + + cat <<_LT_EOF >> "$ofile" + +# ### BEGIN LIBTOOL TAG CONFIG: RC + +# The linker used to build libraries. +LD=$lt_LD_RC + +# How to create reloadable object files. +reload_flag=$lt_reload_flag_RC +reload_cmds=$lt_reload_cmds_RC + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds_RC + +# A language specific compiler. +CC=$lt_compiler_RC + +# Is the compiler the GNU compiler? +with_gcc=$GCC_RC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_RC + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_RC + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_RC + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_RC + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object_RC + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds_RC +archive_expsym_cmds=$lt_archive_expsym_cmds_RC + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds_RC +module_expsym_cmds=$lt_module_expsym_cmds_RC + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld_RC + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_RC + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_RC + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct_RC + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \$shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute_RC + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L_RC + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_RC + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic_RC + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath_RC + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_RC + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols_RC + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_RC + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_RC + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_RC + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds_RC + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds_RC + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec_RC + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_RC + +# ### END LIBTOOL TAG CONFIG: RC +_LT_EOF + + ;; + "po-directories":C) + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + # Treat a directory as a PO directory if and only if it has a + # POTFILES.in file. This allows packages to have multiple PO + # directories under different names or in different locations. + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + gt_tab=`printf '\t'` + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + ALL_LINGUAS=$OBSOLETE_ALL_LINGUAS + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang" | "$presentlang"_* | "$presentlang".* | "$presentlang"@*) + useit=yes + ;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done ;; + "src/scripts/xzdiff":F) chmod +x src/scripts/xzdiff ;; + "src/scripts/xzgrep":F) chmod +x src/scripts/xzgrep ;; + "src/scripts/xzmore":F) chmod +x src/scripts/xzmore ;; + "src/scripts/xzless":F) chmod +x src/scripts/xzless ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + +# Some warnings +if test x$tuklib_cv_physmem_method = xunknown; then + echo + echo "WARNING:" + echo "No supported method to detect the amount of RAM." + echo "Consider using --enable-assume-ram (if you didn't already)" + echo "or make a patch to add support for this operating system." +fi + +if test x$tuklib_cv_cpucores_method = xunknown; then + echo + echo "WARNING:" + echo "No supported method to detect the number of CPU cores." +fi + +if test "x$enable_threads$enable_small$have_func_attribute_constructor" \ + = xnoyesno; then + echo + echo "NOTE:" + echo "liblzma will be thread-unsafe due to the combination" + echo "of --disable-threads --enable-small when using a compiler" + echo "that doesn't support __attribute__((__constructor__))." +fi + diff --git a/xz-5.4.5/configure.ac b/xz-5.4.5/configure.ac new file mode 100644 index 000000000..1d1c81183 --- /dev/null +++ b/xz-5.4.5/configure.ac @@ -0,0 +1,1191 @@ +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. + +############################################################################### +# +# Author: Lasse Collin +# +# This file has been put into the public domain. +# You can do whatever you want with this file. +# +############################################################################### + +# NOTE: Don't add useless checks. autoscan detects this and that, but don't +# let it confuse you. For example, we don't care about checking for behavior +# of malloc(), stat(), or lstat(), since we don't use those functions in +# a way that would cause the problems the autoconf macros check. + +AC_PREREQ([2.69]) + +AC_INIT([XZ Utils], m4_esyscmd([/bin/sh build-aux/version.sh]), + [xz@tukaani.org], [xz], [https://tukaani.org/xz/]) +AC_CONFIG_SRCDIR([src/liblzma/common/common.h]) +AC_CONFIG_AUX_DIR([build-aux]) +AC_CONFIG_MACRO_DIR([m4]) +AC_CONFIG_HEADERS([config.h]) + +echo +echo "$PACKAGE_STRING" + +echo +echo "System type:" +# This is needed to know if assembler optimizations can be used. +AC_CANONICAL_HOST + +# We do some special things on Windows (32-bit or 64-bit) builds. +case $host_os in + mingw* | cygwin | msys) is_w32=yes ;; + *) is_w32=no ;; +esac +AM_CONDITIONAL([COND_W32], [test "$is_w32" = yes]) + +# We need to use $EXEEXT with $(LN_S) when creating symlinks to +# executables. Cygwin is an exception to this, since it is recommended +# that symlinks don't have the .exe suffix. To make this work, we +# define LN_EXEEXT. +# +# MSYS2 is treated the same way as Cygwin. It uses plain "msys" like +# the original MSYS when building MSYS/MSYS2-binaries. Hopefully this +# doesn't break things for the original MSYS developers. Note that this +# doesn't affect normal MSYS/MSYS2 users building non-MSYS/MSYS2 binaries +# since in that case the $host_os is usually mingw32. +case $host_os in + cygwin | msys) LN_EXEEXT= ;; + *) LN_EXEEXT='$(EXEEXT)' ;; +esac +AC_SUBST([LN_EXEEXT]) + +echo +echo "Configure options:" +AM_CFLAGS= + + +############# +# Debugging # +############# + +AC_MSG_CHECKING([if debugging code should be compiled]) +AC_ARG_ENABLE([debug], AS_HELP_STRING([--enable-debug], [Enable debugging code.]), + [], enable_debug=no) +if test "x$enable_debug" = xyes; then + AC_MSG_RESULT([yes]) +else + AC_DEFINE([NDEBUG], [1], [Define to 1 to disable debugging code.]) + AC_MSG_RESULT([no]) +fi + + +########### +# Filters # +########### + +m4_define([SUPPORTED_FILTERS], [lzma1,lzma2,delta,x86,powerpc,ia64,arm,armthumb,arm64,sparc])dnl +m4_define([SIMPLE_FILTERS], [x86,powerpc,ia64,arm,armthumb,arm64,sparc]) +m4_define([LZ_FILTERS], [lzma1,lzma2]) + +m4_foreach([NAME], [SUPPORTED_FILTERS], +[enable_filter_[]NAME=no +enable_encoder_[]NAME=no +enable_decoder_[]NAME=no +])dnl + +AC_MSG_CHECKING([which encoders to build]) +AC_ARG_ENABLE([encoders], AS_HELP_STRING([--enable-encoders=LIST], + [Comma-separated list of encoders to build. Default=all. + Available encoders:] + m4_translit(m4_defn([SUPPORTED_FILTERS]), [,], [ ])), + [], [enable_encoders=SUPPORTED_FILTERS]) +enable_encoders=`echo "$enable_encoders" | sed 's/,/ /g'` +if test "x$enable_encoders" = xno || test "x$enable_encoders" = x; then + enable_encoders=no + AC_MSG_RESULT([(none)]) +else + for arg in $enable_encoders + do + case $arg in m4_foreach([NAME], [SUPPORTED_FILTERS], [ + NAME) + enable_filter_[]NAME=yes + enable_encoder_[]NAME=yes + AC_DEFINE(HAVE_ENCODER_[]m4_toupper(NAME), [1], + [Define to 1 if] NAME [encoder is enabled.]) + ;;]) + *) + AC_MSG_RESULT([]) + AC_MSG_ERROR([unknown filter: $arg]) + ;; + esac + done + AC_DEFINE([HAVE_ENCODERS], [1], + [Define to 1 if any of HAVE_ENCODER_foo have been defined.]) + AC_MSG_RESULT([$enable_encoders]) +fi + +AC_MSG_CHECKING([which decoders to build]) +AC_ARG_ENABLE([decoders], AS_HELP_STRING([--enable-decoders=LIST], + [Comma-separated list of decoders to build. Default=all. + Available decoders are the same as available encoders.]), + [], [enable_decoders=SUPPORTED_FILTERS]) +enable_decoders=`echo "$enable_decoders" | sed 's/,/ /g'` +if test "x$enable_decoders" = xno || test "x$enable_decoders" = x; then + enable_decoders=no + AC_MSG_RESULT([(none)]) +else + for arg in $enable_decoders + do + case $arg in m4_foreach([NAME], [SUPPORTED_FILTERS], [ + NAME) + enable_filter_[]NAME=yes + enable_decoder_[]NAME=yes + AC_DEFINE(HAVE_DECODER_[]m4_toupper(NAME), [1], + [Define to 1 if] NAME [decoder is enabled.]) + ;;]) + *) + AC_MSG_RESULT([]) + AC_MSG_ERROR([unknown filter: $arg]) + ;; + esac + done + AC_DEFINE([HAVE_DECODERS], [1], + [Define to 1 if any of HAVE_DECODER_foo have been defined.]) + AC_MSG_RESULT([$enable_decoders]) +fi + +if test "x$enable_encoder_lzma2$enable_encoder_lzma1" = xyesno \ + || test "x$enable_decoder_lzma2$enable_decoder_lzma1" = xyesno; then + AC_MSG_ERROR([LZMA2 requires that LZMA1 is also enabled.]) +fi + +AM_CONDITIONAL(COND_MAIN_ENCODER, test "x$enable_encoders" != xno) +AM_CONDITIONAL(COND_MAIN_DECODER, test "x$enable_decoders" != xno) + +m4_foreach([NAME], [SUPPORTED_FILTERS], +[AM_CONDITIONAL(COND_FILTER_[]m4_toupper(NAME), test "x$enable_filter_[]NAME" = xyes) +AM_CONDITIONAL(COND_ENCODER_[]m4_toupper(NAME), test "x$enable_encoder_[]NAME" = xyes) +AM_CONDITIONAL(COND_DECODER_[]m4_toupper(NAME), test "x$enable_decoder_[]NAME" = xyes) +])dnl + +# The so called "simple filters" share common code. +enable_filter_simple=no +enable_encoder_simple=no +enable_decoder_simple=no +m4_foreach([NAME], [SIMPLE_FILTERS], +[test "x$enable_filter_[]NAME" = xyes && enable_filter_simple=yes +test "x$enable_encoder_[]NAME" = xyes && enable_encoder_simple=yes +test "x$enable_decoder_[]NAME" = xyes && enable_decoder_simple=yes +])dnl +AM_CONDITIONAL(COND_FILTER_SIMPLE, test "x$enable_filter_simple" = xyes) +AM_CONDITIONAL(COND_ENCODER_SIMPLE, test "x$enable_encoder_simple" = xyes) +AM_CONDITIONAL(COND_DECODER_SIMPLE, test "x$enable_decoder_simple" = xyes) + +# LZ-based filters share common code. +enable_filter_lz=no +enable_encoder_lz=no +enable_decoder_lz=no +m4_foreach([NAME], [LZ_FILTERS], +[test "x$enable_filter_[]NAME" = xyes && enable_filter_lz=yes +test "x$enable_encoder_[]NAME" = xyes && enable_encoder_lz=yes +test "x$enable_decoder_[]NAME" = xyes && enable_decoder_lz=yes +])dnl +AM_CONDITIONAL(COND_FILTER_LZ, test "x$enable_filter_lz" = xyes) +AM_CONDITIONAL(COND_ENCODER_LZ, test "x$enable_encoder_lz" = xyes) +AM_CONDITIONAL(COND_DECODER_LZ, test "x$enable_decoder_lz" = xyes) + + +################# +# Match finders # +################# + +m4_define([SUPPORTED_MATCH_FINDERS], [hc3,hc4,bt2,bt3,bt4]) + +m4_foreach([NAME], [SUPPORTED_MATCH_FINDERS], +[enable_match_finder_[]NAME=no +]) + +AC_MSG_CHECKING([which match finders to build]) +AC_ARG_ENABLE([match-finders], AS_HELP_STRING([--enable-match-finders=LIST], + [Comma-separated list of match finders to build. Default=all. + At least one match finder is required for encoding with + the LZMA1 and LZMA2 filters. Available match finders:] + m4_translit(m4_defn([SUPPORTED_MATCH_FINDERS]), [,], [ ])), [], + [enable_match_finders=SUPPORTED_MATCH_FINDERS]) +enable_match_finders=`echo "$enable_match_finders" | sed 's/,/ /g'` +if test "x$enable_encoder_lz" = xyes ; then + if test -z "$enable_match_finders"; then + AC_MSG_ERROR([At least one match finder is required for an LZ-based encoder.]) + fi + + for arg in $enable_match_finders + do + case $arg in m4_foreach([NAME], [SUPPORTED_MATCH_FINDERS], [ + NAME) + enable_match_finder_[]NAME=yes + AC_DEFINE(HAVE_MF_[]m4_toupper(NAME), [1], + [Define to 1 to enable] NAME [match finder.]) + ;;]) + *) + AC_MSG_RESULT([]) + AC_MSG_ERROR([unknown match finder: $arg]) + ;; + esac + done + AC_MSG_RESULT([$enable_match_finders]) +else + AC_MSG_RESULT([(none because not building any LZ-based encoder)]) +fi + + +#################### +# Integrity checks # +#################### + +m4_define([SUPPORTED_CHECKS], [crc32,crc64,sha256]) + +m4_foreach([NAME], [SUPPORTED_CHECKS], +[enable_check_[]NAME=no +])dnl + +AC_MSG_CHECKING([which integrity checks to build]) +AC_ARG_ENABLE([checks], AS_HELP_STRING([--enable-checks=LIST], + [Comma-separated list of integrity checks to build. + Default=all. Available integrity checks:] + m4_translit(m4_defn([SUPPORTED_CHECKS]), [,], [ ])), + [], [enable_checks=SUPPORTED_CHECKS]) +enable_checks=`echo "$enable_checks" | sed 's/,/ /g'` +if test "x$enable_checks" = xno || test "x$enable_checks" = x; then + AC_MSG_RESULT([(none)]) +else + for arg in $enable_checks + do + case $arg in m4_foreach([NAME], [SUPPORTED_CHECKS], [ + NAME) + enable_check_[]NAME=yes + AC_DEFINE(HAVE_CHECK_[]m4_toupper(NAME), [1], + [Define to 1 if] NAME + [integrity check is enabled.]) + ;;]) + *) + AC_MSG_RESULT([]) + AC_MSG_ERROR([unknown integrity check: $arg]) + ;; + esac + done + AC_MSG_RESULT([$enable_checks]) +fi +if test "x$enable_check_crc32" = xno ; then + AC_MSG_ERROR([For now, the CRC32 check must always be enabled.]) +fi + +m4_foreach([NAME], [SUPPORTED_CHECKS], +[AM_CONDITIONAL(COND_CHECK_[]m4_toupper(NAME), test "x$enable_check_[]NAME" = xyes) +])dnl + +AC_MSG_CHECKING([if external SHA-256 should be used]) +AC_ARG_ENABLE([external-sha256], AS_HELP_STRING([--enable-external-sha256], + [Use SHA-256 code from the operating system. + See INSTALL for possible subtle problems.]), + [], [enable_external_sha256=no]) +if test "x$enable_check_sha256" != "xyes"; then + enable_external_sha256=no +fi +if test "x$enable_external_sha256" = xyes; then + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) +fi + + +############# +# MicroLZMA # +############# + +AC_MSG_CHECKING([if MicroLZMA support should be built]) +AC_ARG_ENABLE([microlzma], AS_HELP_STRING([--disable-microlzma], + [Do not build MicroLZMA encoder and decoder. + It is needed by specific applications only, + for example, erofs-utils.]), + [], [enable_microlzma=yes]) +case $enable_microlzma in + yes | no) + AC_MSG_RESULT([$enable_microlzma]) + ;; + *) + AC_MSG_RESULT([]) + AC_MSG_ERROR([--enable-microlzma accepts only `yes' or `no'.]) + ;; +esac +AM_CONDITIONAL(COND_MICROLZMA, test "x$enable_microlzma" = xyes) + + +############################# +# .lz (lzip) format support # +############################# + +AC_MSG_CHECKING([if .lz (lzip) decompression support should be built]) +AC_ARG_ENABLE([lzip-decoder], AS_HELP_STRING([--disable-lzip-decoder], + [Disable decompression support for .lz (lzip) files.]), + [], [enable_lzip_decoder=yes]) +if test "x$enable_decoder_lzma1" != xyes; then + enable_lzip_decoder=no + AC_MSG_RESULT([no because LZMA1 decoder is disabled]) +elif test "x$enable_lzip_decoder" = xyes; then + AC_DEFINE([HAVE_LZIP_DECODER], [1], + [Define to 1 if .lz (lzip) decompression support is enabled.]) + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) +fi +AM_CONDITIONAL(COND_LZIP_DECODER, test "x$enable_lzip_decoder" = xyes) + + +########################### +# Assembler optimizations # +########################### + +AC_MSG_CHECKING([if assembler optimizations should be used]) +AC_ARG_ENABLE([assembler], AS_HELP_STRING([--disable-assembler], + [Do not use assembler optimizations even if such exist + for the architecture.]), + [], [enable_assembler=yes]) +if test "x$enable_assembler" = xyes; then + enable_assembler=no + case $host_os in + # Darwin should work too but only if not creating universal + # binaries. Solaris x86 could work too but I cannot test. + linux* | *bsd* | mingw* | cygwin | msys | *djgpp*) + case $host_cpu in + i?86) enable_assembler=x86 ;; + esac + ;; + esac +fi +case $enable_assembler in + x86 | no) + AC_MSG_RESULT([$enable_assembler]) + ;; + *) + AC_MSG_RESULT([]) + AC_MSG_ERROR([--enable-assembler accepts only `yes', `no', or `x86' (32-bit).]) + ;; +esac +AM_CONDITIONAL(COND_ASM_X86, test "x$enable_assembler" = xx86) + + +############# +# CLMUL CRC # +############# + +AC_ARG_ENABLE([clmul-crc], AS_HELP_STRING([--disable-clmul-crc], + [Do not use carryless multiplication for CRC calculation + even if support for it is detected.]), + [], [enable_clmul_crc=yes]) + + +##################### +# Size optimization # +##################### + +AC_MSG_CHECKING([if small size is preferred over speed]) +AC_ARG_ENABLE([small], AS_HELP_STRING([--enable-small], + [Make liblzma smaller and a little slower. + This is disabled by default to optimize for speed.]), + [], [enable_small=no]) +if test "x$enable_small" = xyes; then + AC_DEFINE([HAVE_SMALL], [1], [Define to 1 if optimizing for size.]) +elif test "x$enable_small" != xno; then + AC_MSG_RESULT([]) + AC_MSG_ERROR([--enable-small accepts only `yes' or `no']) +fi +AC_MSG_RESULT([$enable_small]) +AM_CONDITIONAL(COND_SMALL, test "x$enable_small" = xyes) + + +############# +# Threading # +############# + +AC_MSG_CHECKING([if threading support is wanted]) +AC_ARG_ENABLE([threads], AS_HELP_STRING([--enable-threads=METHOD], + [Supported METHODS are `yes', `no', `posix', `win95', and + `vista'. The default is `yes'. Using `no' together with + --enable-small makes liblzma thread unsafe.]), + [], [enable_threads=yes]) + +if test "x$enable_threads" = xyes; then + case $host_os in + mingw*) + case $host_cpu in + i?86) enable_threads=win95 ;; + *) enable_threads=vista ;; + esac + ;; + *) + enable_threads=posix + ;; + esac +fi + +case $enable_threads in + posix | win95 | vista) + AC_MSG_RESULT([yes, $enable_threads]) + ;; + no) + AC_MSG_RESULT([no]) + ;; + *) + AC_MSG_RESULT([]) + AC_MSG_ERROR([--enable-threads only accepts `yes', `no', `posix', `win95', or `vista']) + ;; +esac + +# We use the actual result a little later. + + +######################### +# Assumed amount of RAM # +######################### + +# We use 128 MiB as default, because it will allow decompressing files +# created with "xz -9". It would be slightly safer to guess a lower value, +# but most systems, on which we don't have any way to determine the amount +# of RAM, will probably have at least 128 MiB of RAM. +AC_MSG_CHECKING([how much RAM to assume if the real amount is unknown]) +AC_ARG_ENABLE([assume-ram], AS_HELP_STRING([--enable-assume-ram=SIZE], + [If and only if the real amount of RAM cannot be determined, + assume SIZE MiB. The default is 128 MiB. This affects the + default memory usage limit.]), + [], [enable_assume_ram=128]) +assume_ram_check=`echo "$enable_assume_ram" | tr -d 0123456789` +if test -z "$enable_assume_ram" || test -n "$assume_ram_check"; then + AC_MSG_RESULT([]) + AC_MSG_ERROR([--enable-assume-ram accepts only an integer argument]) +fi +AC_MSG_RESULT([$enable_assume_ram MiB]) +AC_DEFINE_UNQUOTED([ASSUME_RAM], [$enable_assume_ram], + [How many MiB of RAM to assume if the real amount cannot + be determined.]) + + +######################### +# Components to install # +######################### + +AC_ARG_ENABLE([xz], [AS_HELP_STRING([--disable-xz], + [do not build the xz tool])], + [], [enable_xz=yes]) +AM_CONDITIONAL([COND_XZ], [test x$enable_xz != xno]) + +AC_ARG_ENABLE([xzdec], [AS_HELP_STRING([--disable-xzdec], + [do not build xzdec])], + [], [enable_xzdec=yes]) +test "x$enable_decoders" = xno && enable_xzdec=no +AM_CONDITIONAL([COND_XZDEC], [test x$enable_xzdec != xno]) + +AC_ARG_ENABLE([lzmadec], [AS_HELP_STRING([--disable-lzmadec], + [do not build lzmadec + (it exists primarily for LZMA Utils compatibility)])], + [], [enable_lzmadec=yes]) +test "x$enable_decoder_lzma1" = xno && enable_lzmadec=no +AM_CONDITIONAL([COND_LZMADEC], [test x$enable_lzmadec != xno]) + +AC_ARG_ENABLE([lzmainfo], [AS_HELP_STRING([--disable-lzmainfo], + [do not build lzmainfo + (it exists primarily for LZMA Utils compatibility)])], + [], [enable_lzmainfo=yes]) +test "x$enable_decoder_lzma1" = xno && enable_lzmainfo=no +AM_CONDITIONAL([COND_LZMAINFO], [test x$enable_lzmainfo != xno]) + +AC_ARG_ENABLE([lzma-links], [AS_HELP_STRING([--disable-lzma-links], + [do not create symlinks for LZMA Utils compatibility])], + [], [enable_lzma_links=yes]) +AM_CONDITIONAL([COND_LZMALINKS], [test x$enable_lzma_links != xno]) + +AC_ARG_ENABLE([scripts], [AS_HELP_STRING([--disable-scripts], + [do not install the scripts xzdiff, xzgrep, xzless, xzmore, + and their symlinks])], + [], [enable_scripts=yes]) +AM_CONDITIONAL([COND_SCRIPTS], [test x$enable_scripts != xno]) + +AC_ARG_ENABLE([doc], [AS_HELP_STRING([--disable-doc], + [do not install documentation files to docdir + (man pages will still be installed)])], + [], [enable_doc=yes]) +AM_CONDITIONAL([COND_DOC], [test x$enable_doc != xno]) + + +############## +# Sandboxing # +############## + +AC_MSG_CHECKING([if sandboxing should be used]) +AC_ARG_ENABLE([sandbox], [AS_HELP_STRING([--enable-sandbox=METHOD], + [Sandboxing METHOD can be + `auto', `no', `capsicum', or `pledge'. + The default is `auto' which enables sandboxing if + a supported sandboxing method is found.])], + [], [enable_sandbox=auto]) +case $enable_sandbox in + auto) + AC_MSG_RESULT([maybe (autodetect)]) + ;; + no | capsicum | pledge) + AC_MSG_RESULT([$enable_sandbox]) + ;; + *) + AC_MSG_RESULT([]) + AC_MSG_ERROR([--enable-sandbox only accepts `auto', `no', `capsicum', or `pledge'.]) + ;; +esac + + +########################### +# PATH prefix for scripts # +########################### + +# The scripts can add a prefix to the search PATH so that POSIX tools +# or the xz binary is always in the PATH. +AC_ARG_ENABLE([path-for-scripts], + [AS_HELP_STRING([--enable-path-for-scripts=PREFIX], + [If PREFIX isn't empty, PATH=PREFIX:$PATH will be set in + the beginning of the scripts (xzgrep and others). + The default is empty except on Solaris the default is + /usr/xpg4/bin.])], + [], [ + case $host_os in + solaris*) enable_path_for_scripts=/usr/xpg4/bin ;; + *) enable_path_for_scripts= ;; + esac + ]) +if test -n "$enable_path_for_scripts" && test "x$enable_path_for_scripts" != xno ; then + enable_path_for_scripts="PATH=$enable_path_for_scripts:\$PATH" +else + enable_path_for_scripts= +fi +AC_SUBST([enable_path_for_scripts]) + + +############################################################################### +# Checks for programs. +############################################################################### + +echo +case $host_os in + solaris*) + # The gnulib POSIX shell macro below may pick a shell that + # doesn't work with xzgrep. Workaround by picking a shell + # that is known to work. + if test -z "$gl_cv_posix_shell" && test -x /usr/xpg4/bin/sh; then + gl_cv_posix_shell=/usr/xpg4/bin/sh + fi + ;; +esac +gl_POSIX_SHELL +if test -z "$POSIX_SHELL" && test "x$enable_scripts" = xyes ; then + AC_MSG_ERROR([No POSIX conforming shell (sh) was found.]) +fi + +echo +echo "Initializing Automake:" + +# We don't use "subdir-objects" yet because it breaks "make distclean" when +# dependencies are enabled (as of Automake 1.14.1) due to this bug: +# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=17354 +# The -Wno-unsupported is used to silence warnings about missing +# "subdir-objects". +AM_INIT_AUTOMAKE([1.12 foreign tar-v7 filename-length-max=99 -Wno-unsupported]) +AC_PROG_LN_S + +dnl # Autoconf >= 2.70 warns that AC_PROG_CC_C99 is obsolete. However, +dnl # we have to keep using AC_PROG_CC_C99 instead of AC_PROG_CC +dnl # as long as we try to be compatible with Autoconf 2.69. +AC_PROG_CC_C99 +if test x$ac_cv_prog_cc_c99 = xno ; then + AC_MSG_ERROR([No C99 compiler was found.]) +fi + +AM_PROG_CC_C_O +AM_PROG_AS +AC_USE_SYSTEM_EXTENSIONS + +AS_CASE([$enable_threads], + [posix], [ + echo + echo "POSIX threading support:" + AX_PTHREAD([:]) dnl We don't need the HAVE_PTHREAD macro. + LIBS="$LIBS $PTHREAD_LIBS" + AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS" + + dnl NOTE: PTHREAD_CC is ignored. It would be useful on AIX, + dnl but it's tricky to get it right together with + dnl AC_PROG_CC_C99. Thus, this is handled by telling the + dnl user in INSTALL to set the correct CC manually. + + AC_DEFINE([MYTHREAD_POSIX], [1], + [Define to 1 when using POSIX threads (pthreads).]) + + # These are nice to have but not mandatory. + # + # FIXME: xz uses clock_gettime if it is available and can do + # it even when threading is disabled. Moving this outside + # of pthread detection may be undesirable because then + # liblzma may get linked against librt even when librt isn't + # needed by liblzma. + OLD_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + AC_SEARCH_LIBS([clock_gettime], [rt]) + AC_CHECK_FUNCS([clock_gettime pthread_condattr_setclock]) + AC_CHECK_DECL([CLOCK_MONOTONIC], [AC_DEFINE( + [HAVE_CLOCK_MONOTONIC], [1], [Define to 1 if + `CLOCK_MONOTONIC' is declared in .])], [], + [[#include ]]) + CFLAGS=$OLD_CFLAGS + ], + [win95], [ + AC_DEFINE([MYTHREAD_WIN95], [1], [Define to 1 when using + Windows 95 (and thus XP) compatible threads. + This avoids use of features that were added in + Windows Vista.]) + ], + [vista], [ + AC_DEFINE([MYTHREAD_VISTA], [1], [Define to 1 when using + Windows Vista compatible threads. This uses + features that are not available on Windows XP.]) + ] +) +AM_CONDITIONAL([COND_THREADS], [test "x$enable_threads" != xno]) + +echo +echo "Initializing Libtool:" +LT_PREREQ([2.4]) +LT_INIT([win32-dll]) +LT_LANG([Windows Resource]) + +# This is a bit wrong since it is possible to request that only some libs +# are built as shared. Using that feature isn't so common though, and this +# breaks only on Windows (at least for now) if the user enables only some +# libs as shared. +AM_CONDITIONAL([COND_SHARED], [test "x$enable_shared" != xno]) + +##################### +# Symbol versioning # +##################### + +# NOTE: This checks if we are building shared or static library +# and if --with-pic or --without-pic was used. Thus this check +# must be after Libtool initialization. +AC_MSG_CHECKING([if library symbol versioning should be used]) +AC_ARG_ENABLE([symbol-versions], [AS_HELP_STRING([--enable-symbol-versions], + [Use symbol versioning for liblzma. Enabled by default on + GNU/Linux, other GNU-based systems, and FreeBSD.])], + [], [enable_symbol_versions=auto]) +if test "x$enable_symbol_versions" = xauto; then + case $host_os in + # NOTE: Even if one omits -gnu on GNU/Linux (e.g. + # i486-slackware-linux), configure will (via config.sub) + # append -gnu (e.g. i486-slackware-linux-gnu), and this + # test will work correctly. + gnu* | *-gnu* | freebsd*) + enable_symbol_versions=yes + ;; + *) + enable_symbol_versions=no + ;; + esac +fi + +# There are two variants for symbol versioning. +# See src/liblzma/validate_map.sh for details. +# +# On GNU/Linux, extra symbols are added in the C code. These extra symbols +# must not be put into a static library as they can cause problems (and +# even if they didn't cause problems, they would be useless). On other +# systems symbol versioning may be used too but there is no problem as only +# a linker script is specified in src/liblzma/Makefile.am and that isn't +# used when creating a static library. +# +# Libtool always uses -DPIC when building shared libraries by default and +# doesn't use it for static libs by default. This can be overridden with +# --with-pic and --without-pic though. As long as neither --with-pic nor +# --without-pic is used then we can use #ifdef PIC to detect if the file is +# being built for a shared library. +if test "x$enable_symbol_versions" = xno ; then + enable_symbol_versions=no + AC_MSG_RESULT([no]) +elif test "x$enable_shared" = xno ; then + enable_symbol_versions=no + AC_MSG_RESULT([no (not building a shared library)]) +else + case "$host_cpu-$host_os" in + microblaze*) + # GCC 12 on MicroBlaze doesn't support __symver__ + # attribute. It's simplest and safest to use the + # generic version on that platform since then only + # the linker script is needed. The RHEL/CentOS 7 + # compatibility symbols don't matter on MicroBlaze. + enable_symbol_versions=generic + ;; + *-linux*) + case "$pic_mode-$enable_static" in + default-*) + # Use symvers if PIC is defined. + have_symbol_versions_linux=2 + ;; + *-no) + # Not building static library. + # Use symvers unconditionally. + have_symbol_versions_linux=1 + ;; + *) + AC_MSG_RESULT([]) + AC_MSG_ERROR([ + On GNU/Linux, building both shared and static library at the same time + is not supported if --with-pic or --without-pic is used. + Use either --disable-shared or --disable-static to build one type + of library at a time. If both types are needed, build one at a time, + possibly picking only src/liblzma/.libs/liblzma.a from the static build.]) + ;; + esac + enable_symbol_versions=linux + AC_DEFINE_UNQUOTED([HAVE_SYMBOL_VERSIONS_LINUX], + [$have_symbol_versions_linux], + [Define to 1 to if GNU/Linux-specific details + are unconditionally wanted for symbol + versioning. Define to 2 to if these are wanted + only if also PIC is defined (allows building + both shared and static liblzma at the same + time with Libtool if neither --with-pic nor + --without-pic is used). This define must be + used together with liblzma_linux.map.]) + ;; + *) + enable_symbol_versions=generic + ;; + esac + AC_MSG_RESULT([yes ($enable_symbol_versions)]) +fi + +AM_CONDITIONAL([COND_SYMVERS_LINUX], + [test "x$enable_symbol_versions" = xlinux]) +AM_CONDITIONAL([COND_SYMVERS_GENERIC], + [test "x$enable_symbol_versions" = xgeneric]) + + +############################################################################### +# Checks for libraries. +############################################################################### + +dnl Support for _REQUIRE_VERSION was added in gettext 0.19.6. If both +dnl _REQUIRE_VERSION and _VERSION are present, the _VERSION is ignored. +dnl We use both for compatibility with other programs in the Autotools family. +echo +echo "Initializing gettext:" +AM_GNU_GETTEXT_REQUIRE_VERSION([0.19.6]) +AM_GNU_GETTEXT_VERSION([0.19.6]) +AM_GNU_GETTEXT([external]) + + +############################################################################### +# Checks for header files. +############################################################################### + +echo +echo "System headers and functions:" + +# There is currently no workarounds in this package if some of +# these headers are missing. +AC_CHECK_HEADERS([fcntl.h limits.h sys/time.h], + [], + [AC_MSG_ERROR([Required header file(s) are missing.])]) + +# immintrin.h allows the use of the intrinsic functions if they are available. +# cpuid.h may be used for detecting x86 processor features at runtime. +AC_CHECK_HEADERS([immintrin.h cpuid.h]) + + +############################################################################### +# Checks for typedefs, structures, and compiler characteristics. +############################################################################### + +AC_HEADER_STDBOOL + +AC_TYPE_UINT8_T +AC_TYPE_UINT16_T +AC_TYPE_INT32_T +AC_TYPE_UINT32_T +AC_TYPE_INT64_T +AC_TYPE_UINT64_T +AC_TYPE_UINTPTR_T + +AC_CHECK_SIZEOF([size_t]) + +# The command line tool can copy high resolution timestamps if such +# information is available in struct stat. Otherwise one second accuracy +# is used. +AC_CHECK_MEMBERS([ + struct stat.st_atim.tv_nsec, + struct stat.st_atimespec.tv_nsec, + struct stat.st_atimensec, + struct stat.st_uatime, + struct stat.st_atim.st__tim.tv_nsec]) + +AC_SYS_LARGEFILE +AC_C_BIGENDIAN + +# __attribute__((__constructor__)) can be used for one-time initializations. +# Use -Werror because some compilers accept unknown attributes and just +# give a warning. +# +# FIXME? Unfortunately -Werror can cause trouble if CFLAGS contains options +# that produce warnings for unrelated reasons. For example, GCC and Clang +# support -Wunused-macros which will warn about "#define _GNU_SOURCE 1" +# which will be among the #defines that Autoconf inserts to the beginning of +# the test program. There seems to be no nice way to prevent Autoconf from +# inserting the any defines to the test program. +AC_MSG_CHECKING([if __attribute__((__constructor__)) can be used]) +have_func_attribute_constructor=no +OLD_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -Werror" +AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ + __attribute__((__constructor__)) + static void my_constructor_func(void) { return; } +]])], [ + AC_DEFINE([HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR], [1], + [Define to 1 if __attribute__((__constructor__)) + is supported for functions.]) + have_func_attribute_constructor=yes + AC_MSG_RESULT([yes]) +], [ + AC_MSG_RESULT([no]) +]) +CFLAGS="$OLD_CFLAGS" + + +# The Win95 threading lacks a thread-safe one-time initialization function. +# The one-time initialization is needed for crc32_small.c and crc64_small.c +# create the CRC tables. So if small mode is enabled, the threading mode is +# win95, and the compiler does not support attribute constructor, then we +# would end up with a multithreaded build that is thread-unsafe. As a +# result this configuration is not allowed. +if test "x$enable_small$enable_threads$have_func_attribute_constructor" \ + = xyeswin95no; then + AC_MSG_ERROR([ + --enable-threads=win95 and --enable-small cannot be used + at the same time with a compiler that doesn't support + __attribute__((__constructor__))]) +fi + +############################################################################### +# Checks for library functions. +############################################################################### + +# Gnulib replacements as needed +gl_GETOPT + +# Find the best function to set timestamps. +AC_CHECK_FUNCS([futimens futimes futimesat utimes _futime utime], [break]) + +# This is nice to have but not mandatory. +AC_CHECK_FUNCS([posix_fadvise]) + +TUKLIB_PROGNAME +TUKLIB_INTEGER +TUKLIB_PHYSMEM +TUKLIB_CPUCORES +TUKLIB_MBSTR + +# If requested, check for system-provided SHA-256. At least the following +# implementations are supported: +# +# OS Headers Library Type Function +# FreeBSD sys/types.h + sha256.h libmd SHA256_CTX SHA256_Init +# NetBSD sys/types.h + sha2.h SHA256_CTX SHA256_Init +# OpenBSD sys/types.h + sha2.h SHA2_CTX SHA256Init +# Solaris sys/types.h + sha2.h libmd SHA256_CTX SHA256Init +# MINIX 3 sys/types.h + sha2.h SHA256_CTX SHA256_Init +# Darwin CommonCrypto/CommonDigest.h CC_SHA256_CTX CC_SHA256_Init +# +# Note that Darwin's CC_SHA256_Update takes buffer size as uint32_t instead +# of size_t. +# +sha256_header_found=no +sha256_type_found=no +sha256_func_found=no +AS_IF([test "x$enable_external_sha256" = "xyes"], [ + # Test for Common Crypto before others, because Darwin has sha256.h + # too and we don't want to use that, because on older versions it + # uses OpenSSL functions, whose SHA256_Init is not guaranteed to + # succeed. + AC_CHECK_HEADERS( + [CommonCrypto/CommonDigest.h sha256.h sha2.h], + [sha256_header_found=yes ; break]) + if test "x$sha256_header_found" = xyes; then + AC_CHECK_TYPES([CC_SHA256_CTX, SHA256_CTX, SHA2_CTX], + [sha256_type_found=yes], [], + [[#ifdef HAVE_SYS_TYPES_H + # include + #endif + #ifdef HAVE_COMMONCRYPTO_COMMONDIGEST_H + # include + #endif + #ifdef HAVE_SHA256_H + # include + #endif + #ifdef HAVE_SHA2_H + # include + #endif]]) + if test "x$sha256_type_found" = xyes ; then + AC_SEARCH_LIBS([SHA256Init], [md]) + AC_SEARCH_LIBS([SHA256_Init], [md]) + AC_CHECK_FUNCS([CC_SHA256_Init SHA256Init SHA256_Init], + [sha256_func_found=yes ; break]) + fi + fi +]) +AM_CONDITIONAL([COND_INTERNAL_SHA256], [test "x$sha256_func_found" = xno]) +if test "x$enable_external_sha256$sha256_func_found" = xyesno; then + AC_MSG_ERROR([--enable-external-sha256 was specified but no supported external SHA-256 implementation was found]) +fi + +# Check for SSE2 intrinsics. There is no run-time detection for SSE2 so if +# compiler options enable SSE2 then SSE2 support is required by the binaries. +# The compile-time check for SSE2 is done with #ifdefs because some compilers +# (ICC, MSVC) allow SSE2 intrinsics even when SSE2 isn't enabled. +AC_CHECK_DECL([_mm_movemask_epi8], + [AC_DEFINE([HAVE__MM_MOVEMASK_EPI8], [1], + [Define to 1 if _mm_movemask_epi8 is available.])], + [], +[#ifdef HAVE_IMMINTRIN_H +#include +#endif]) + +# For faster CRC on 32/64-bit x86 and E2K (see also crc64_fast.c): +# +# - Check for the CLMUL intrinsic _mm_clmulepi64_si128 in . +# Check also for _mm_set_epi64x for consistency with CMake build +# where it's needed to disable CLMUL with VS2013. +# +# - Check that __attribute__((__target__("ssse3,sse4.1,pclmul"))) works +# together with _mm_clmulepi64_si128 from . The attribute +# was added in GCC 4.4 but some GCC 4.x versions don't allow intrinsics +# with it. Exception: it must be not be used with EDG-based compilers +# like ICC and the compiler on E2K. +# +# If everything above is supported, runtime detection will be used to keep the +# binaries working on systems that don't support the required extensions. +AC_MSG_CHECKING([if _mm_clmulepi64_si128 is usable]) +AS_IF([test "x$enable_clmul_crc" = xno], [ + AC_MSG_RESULT([no, --disable-clmul-crc was used]) +], [ + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ +#include + +// CLMUL works on older E2K instruction set but it is slow due to emulation. +#if defined(__e2k__) && __iset__ < 6 +# error +#endif + +// Intel's old compiler (ICC) can define __GNUC__ but the attribute must not +// be used with it. The new Clang-based ICX needs the attribute. +// Checking for !defined(__EDG__) catches ICC and other EDG-based compilers. +#if (defined(__GNUC__) || defined(__clang__)) && !defined(__EDG__) +__attribute__((__target__("ssse3,sse4.1,pclmul"))) +#endif +__m128i my_clmul(__m128i a) +{ + const __m128i b = _mm_set_epi64x(1, 2); + return _mm_clmulepi64_si128(a, b, 0); +} + ]])], [ + AC_DEFINE([HAVE_USABLE_CLMUL], [1], + [Define to 1 if _mm_set_epi64x and + _mm_clmulepi64_si128 are usable. + See configure.ac for details.]) + AC_MSG_RESULT([yes]) + ], [ + AC_MSG_RESULT([no]) + ]) +]) + +# Check for sandbox support. If one is found, set enable_sandbox=found. +AS_CASE([$enable_sandbox], + [auto | capsicum], [ + AX_CHECK_CAPSICUM([enable_sandbox=found], [:]) + ] +) +AS_CASE([$enable_sandbox], + [auto | pledge], [ + AC_CHECK_FUNCS([pledge], [enable_sandbox=found ; break]) + ] +) + +# If a specific sandboxing method was explicitly requested and it wasn't +# found, give an error. +case $enable_sandbox in + auto | no | found) + ;; + *) + AC_MSG_ERROR([$enable_sandbox support not found]) + ;; +esac + + +############################################################################### +# If using GCC, set some additional AM_CFLAGS: +############################################################################### + +if test "$GCC" = yes ; then + echo + echo "GCC extensions:" +fi + +# Always do the visibility check but don't set AM_CFLAGS on Windows. +# This way things get set properly even on Windows. +gl_VISIBILITY +if test -n "$CFLAG_VISIBILITY" && test "$is_w32" = no; then + AM_CFLAGS="$AM_CFLAGS $CFLAG_VISIBILITY" +fi + +AS_IF([test "$GCC" = yes], [ + # Enable as much warnings as possible. These commented warnings won't + # work for this package though: + # * -Wunreachable-code breaks several assert(0) cases, which are + # backed up with "return LZMA_PROG_ERROR". + # * -Wcast-qual would break various things where we need a non-const + # pointer although we don't modify anything through it. + # * -Winline, -Wdisabled-optimization, -Wunsafe-loop-optimizations + # don't seem so useful here; at least the last one gives some + # warnings which are not bugs. + # * -Wconversion still shows too many warnings. + # + # The flags before the empty line are for GCC and many of them + # are supported by Clang too. The flags after the empty line are + # for Clang. + for NEW_FLAG in \ + -Wall \ + -Wextra \ + -Wvla \ + -Wc99-c11-compat \ + -Wformat=2 \ + -Winit-self \ + -Wmissing-include-dirs \ + -Wshift-overflow=2 \ + -Wstrict-overflow=3 \ + -Walloc-zero \ + -Wduplicated-cond \ + -Wfloat-equal \ + -Wundef \ + -Wshadow \ + -Wpointer-arith \ + -Wbad-function-cast \ + -Wwrite-strings \ + -Wdate-time \ + -Wsign-conversion \ + -Wfloat-conversion \ + -Wlogical-op \ + -Waggregate-return \ + -Wstrict-prototypes \ + -Wold-style-definition \ + -Wmissing-prototypes \ + -Wmissing-declarations \ + -Wredundant-decls \ + \ + -Wc99-compat \ + -Wc11-extensions \ + -Wc2x-compat \ + -Wc2x-extensions \ + -Wpre-c2x-compat \ + -Warray-bounds-pointer-arithmetic \ + -Wassign-enum \ + -Wconditional-uninitialized \ + -Wdocumentation \ + -Wduplicate-enum \ + -Wempty-translation-unit \ + -Wflexible-array-extensions \ + -Wmissing-variable-declarations \ + -Wnewline-eof \ + -Wshift-sign-overflow \ + -Wstring-conversion + do + AC_MSG_CHECKING([if $CC accepts $NEW_FLAG]) + OLD_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $NEW_FLAG -Werror" + AC_COMPILE_IFELSE([AC_LANG_SOURCE( + [[void foo(void); void foo(void) { }]])], [ + AM_CFLAGS="$AM_CFLAGS $NEW_FLAG" + AC_MSG_RESULT([yes]) + ], [ + AC_MSG_RESULT([no]) + ]) + CFLAGS="$OLD_CFLAGS" + done + + AC_ARG_ENABLE([werror], + AS_HELP_STRING([--enable-werror], [Enable -Werror to abort + compilation on all compiler warnings.]), + [], [enable_werror=no]) + if test "x$enable_werror" = "xyes"; then + AM_CFLAGS="$AM_CFLAGS -Werror" + fi +]) + + +############################################################################### +# Create the makefiles and config.h +############################################################################### + +echo + +# Don't build the lib directory at all if we don't need any replacement +# functions. +AM_CONDITIONAL([COND_GNULIB], test -n "$LIBOBJS") + +# Add default AM_CFLAGS. +AC_SUBST([AM_CFLAGS]) + +# This is needed for src/scripts. +xz=`echo xz | sed "$program_transform_name"` +AC_SUBST([xz]) + +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 +]) +AC_CONFIG_FILES([src/scripts/xzdiff], [chmod +x src/scripts/xzdiff]) +AC_CONFIG_FILES([src/scripts/xzgrep], [chmod +x src/scripts/xzgrep]) +AC_CONFIG_FILES([src/scripts/xzmore], [chmod +x src/scripts/xzmore]) +AC_CONFIG_FILES([src/scripts/xzless], [chmod +x src/scripts/xzless]) + +AC_OUTPUT + +# Some warnings +if test x$tuklib_cv_physmem_method = xunknown; then + echo + echo "WARNING:" + echo "No supported method to detect the amount of RAM." + echo "Consider using --enable-assume-ram (if you didn't already)" + echo "or make a patch to add support for this operating system." +fi + +if test x$tuklib_cv_cpucores_method = xunknown; then + echo + echo "WARNING:" + echo "No supported method to detect the number of CPU cores." +fi + +if test "x$enable_threads$enable_small$have_func_attribute_constructor" \ + = xnoyesno; then + echo + echo "NOTE:" + echo "liblzma will be thread-unsafe due to the combination" + echo "of --disable-threads --enable-small when using a compiler" + echo "that doesn't support __attribute__((__constructor__))." +fi diff --git a/xz-5.4.5/doc/api/annotated.html b/xz-5.4.5/doc/api/annotated.html new file mode 100644 index 000000000..4016c49f3 --- /dev/null +++ b/xz-5.4.5/doc/api/annotated.html @@ -0,0 +1,68 @@ + + + + + + + +liblzma (XZ Utils): Data Structures + + + + + + +

CZi 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