aboutsummaryrefslogtreecommitdiff
path: root/INSTALL (follow)
AgeCommit message (Collapse)AuthorFilesLines
2022-11-14liblzma: Add fast CRC64 for 32/64-bit x86 using SSSE3 + SSE4.1 + CLMUL.Lasse Collin1-0/+12
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
2022-11-14liblzma: Use __attribute__((__constructor__)) if available.Lasse Collin1-1/+3
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.
2022-11-09Docs: Update INSTALL and also add new prohibited options to PACKAGERS.Lasse Collin1-8/+41
2020-03-15Update INSTALL for Windows and DOS and add preliminary info for z/OS.Lasse Collin1-10/+41
2019-09-24Scripts: Put /usr/xpg4/bin to the beginning of PATH on Solaris.Lasse Collin1-8/+35
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.
2016-12-26Document --enable-sandbox configure option in INSTALL.Lasse Collin1-0/+23
2016-03-13liblzma: Disable external SHA-256 by default.Lasse Collin1-0/+36
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.
2015-06-19Windows: Update the docs.Lasse Collin1-10/+19
2014-12-30Update Solaris notes in INSTALL.Lasse Collin1-0/+4
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.
2014-12-26Build: POSIX shell isn't required if scripts are disabled.Lasse Collin1-1/+2
2014-12-20Update INSTALL about the dependencies of the scripts.Lasse Collin1-5/+10
2014-12-20Windows: Update build instructions.Lasse Collin1-6/+9
2014-11-28Update INSTALL about a "make check" failure in test_scripts.sh.Lasse Collin1-7/+17
2014-04-25Build: Add --disable-doc to configure.Lasse Collin1-0/+6
2014-04-24Update INSTALL.Lasse Collin1-0/+25
Add a note about failing "make check". The source of the problem should be fixed in libtool (if it really is a libtool bug and not mine) but I'm unable to spend time on that for now. Thanks to Nelson H. F. Beebe for reporting the issue. Add a note about a possible need to run "ldconfig" after "make install".
2013-09-17Add native threading support on Windows.Lasse Collin1-10/+31
Now liblzma only uses "mythread" functions and types which are defined in mythread.h matching the desired threading method. Before Windows Vista, there is no direct equivalent to pthread condition variables. Since this package doesn't use pthread_cond_broadcast(), pre-Vista threading can still be kept quite simple. The pre-Vista code doesn't use anything that wasn't already available in Windows 95, so the binaries should run even on Windows 95 if someone happens to care.
2012-07-04Document --enable-symbol-versions in INSTALL.Lasse Collin1-0/+5
2012-04-19Docs: Update MINIX 3 information in INSTALL.Lasse Collin1-3/+5
2012-02-22Fix compiling with IBM XL C on AIX.Lasse Collin1-14/+22
2011-05-17Update INSTALL with a note about linker problem on OpenSolaris x86.Lasse Collin1-6/+17
2011-03-31Update INSTALL with another note about IRIX.Lasse Collin1-0/+4
2010-10-19Update docs.Lasse Collin1-61/+131
2010-09-10Updated INSTALL.Lasse Collin1-3/+4
2010-07-27Windows: build.sh is a bash script so name it correctly.Lasse Collin1-1/+1
2010-05-10Updated INSTALL.Lasse Collin1-5/+0
2010-03-07Change the default of --enable-assume-ram from 32 to 128 MiB.Lasse Collin1-3/+2
This is to allow files created with "xz -9" to be decompressed if the amount of RAM cannot be determined.
2010-01-31Updated INSTALL.Lasse Collin1-26/+26
2009-10-02Add support for --enable-assume-ram=SIZE.Lasse Collin1-0/+16
2009-09-22Added OpenVMS-specific information to INSTALL.Lasse Collin1-0/+11
2009-09-02Mention in INSTALL that --enable-small doesn't modify CFLAGS.Lasse Collin1-0/+4
2009-08-30Add more OS/2 specific info to INSTALL.Lasse Collin1-0/+5
2009-08-13Updated INSTALL and PACKAGERS to match the changesLasse Collin1-4/+16
made in --enable-dynamic.
2009-07-19Major documentation update.Lasse Collin1-0/+327
Installation and packaging instructions were added. README and other generic docs were revised. Some of the documentation files are now installed to $docdir.