INSTALL | INSTALL | |||
---|---|---|---|---|
skipping to change at line 29 | skipping to change at line 29 | |||
2.1. Static vs. dynamic linking of liblzma | 2.1. Static vs. dynamic linking of liblzma | |||
2.2. Optimizing xzdec and lzmadec | 2.2. Optimizing xzdec and lzmadec | |||
3. xzgrep and other scripts | 3. xzgrep and other scripts | |||
3.1. Dependencies | 3.1. Dependencies | |||
3.2. PATH | 3.2. PATH | |||
4. Troubleshooting | 4. Troubleshooting | |||
4.1. "No C99 compiler was found." | 4.1. "No C99 compiler was found." | |||
4.2. "No POSIX conforming shell (sh) was found." | 4.2. "No POSIX conforming shell (sh) was found." | |||
4.3. configure works but build fails at crc32_x86.S | 4.3. configure works but build fails at crc32_x86.S | |||
4.4. Lots of warnings about symbol visibility | 4.4. Lots of warnings about symbol visibility | |||
4.5. "make check" fails | ||||
4.6. liblzma.so (or similar) not found when running xz | ||||
0. Preface | 0. Preface | |||
---------- | ---------- | |||
If you aren't familiar with building packages that use GNU Autotools, | If you aren't familiar with building packages that use GNU Autotools, | |||
see the file INSTALL.generic for generic instructions before reading | see the file INSTALL.generic for generic instructions before reading | |||
further. | further. | |||
If you are going to build a package for distribution, see also the | If you are going to build a package for distribution, see also the | |||
file PACKAGERS. It contains information that should help making the | file PACKAGERS. It contains information that should help making the | |||
skipping to change at line 129 | skipping to change at line 131 | |||
this file (pass also ac_cv_prog_cc_c99= to configure). | this file (pass also ac_cv_prog_cc_c99= to configure). | |||
1.2.7. Windows | 1.2.7. Windows | |||
Building XZ Utils on Windows is supported under MinGW + MSYS, | Building XZ Utils on Windows is supported under MinGW + MSYS, | |||
MinGW-w64 + MSYS, and Cygwin. There is windows/build.bash to | MinGW-w64 + MSYS, and Cygwin. There is windows/build.bash to | |||
ease packaging XZ Utils with MinGW(-w64) + MSYS into a | ease packaging XZ Utils with MinGW(-w64) + MSYS into a | |||
redistributable .zip or .7z file. See windows/INSTALL-Windows.txt | redistributable .zip or .7z file. See windows/INSTALL-Windows.txt | |||
for more information. | for more information. | |||
It might be possible to build liblzma with a non-GNU toolchain too, | It may be possible to build liblzma with other toolchains too, but | |||
but that will probably require writing a separate makefile. Building | that will probably require writing a separate makefile. Building | |||
the command line tools with non-GNU toolchains will be harder than | the command line tools with non-GNU toolchains will be harder than | |||
building only liblzma. | building only liblzma. | |||
Even if liblzma is built with MinGW, the resulting DLL or static | Starting with XZ Utils 5.2.0, building liblzma (not the whole | |||
library can be used by other compilers and linkers, including MSVC. | XZ Utils) should work with MSVC 2013 update 2 or later using | |||
Thus, it shouldn't be a problem to use MinGW to build liblzma even | windows/config.h. No project files or makefiles are included yet, | |||
if you cannot use MinGW to build the rest of your project. See | so the build process isn't as convenient yet as it could be. | |||
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. | windows/README-Windows.txt for details. | |||
1.2.8. DOS | 1.2.8. DOS | |||
There is an experimental Makefile in the "dos" directory to build | There is an experimental Makefile in the "dos" directory to build | |||
XZ Utils on DOS using DJGPP. Support for long file names (LFN) is | XZ Utils on DOS using DJGPP. Support for long file names (LFN) is | |||
needed. See dos/README for more information. | needed. See dos/README for more information. | |||
GNU Autotools based build hasn't been tried on DOS. If you try, I | GNU Autotools based build hasn't been tried on DOS. If you try, I | |||
would like to hear if it worked. | would like to hear if it worked. | |||
skipping to change at line 241 | skipping to change at line 246 | |||
--disable-lzma-links | --disable-lzma-links | |||
Don't create symlinks for LZMA Utils compatibility. | Don't create symlinks for LZMA Utils compatibility. | |||
This includes lzma, unlzma, and lzcat. If scripts are | This includes lzma, unlzma, and lzcat. If scripts are | |||
installed, also lzdiff, lzcmp, lzgrep, lzegrep, lzfgrep, | installed, also lzdiff, lzcmp, lzgrep, lzegrep, lzfgrep, | |||
lzmore, and lzless will be omitted if this option is used. | lzmore, and lzless will be omitted if this option is used. | |||
--disable-scripts | --disable-scripts | |||
Don't install the scripts xzdiff, xzgrep, xzmore, xzless, | Don't install the scripts xzdiff, xzgrep, xzmore, xzless, | |||
and their symlinks. | 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 | --disable-assembler | |||
liblzma includes some assembler optimizations. Currently | liblzma includes some assembler optimizations. Currently | |||
there is only assembler code for CRC32 and CRC64 for | there is only assembler code for CRC32 and CRC64 for | |||
32-bit x86. | 32-bit x86. | |||
All the assembler code in liblzma is position-independent | All the assembler code in liblzma is position-independent | |||
code, which is suitable for use in shared libraries and | code, which is suitable for use in shared libraries and | |||
position-independent executables. So far only i386 | position-independent executables. So far only i386 | |||
instructions are used, but the code is optimized for i686 | instructions are used, but the code is optimized for i686 | |||
class CPUs. If you are compiling liblzma exclusively for | class CPUs. If you are compiling liblzma exclusively for | |||
skipping to change at line 297 | skipping to change at line 308 | |||
On some systems, there is no code to detect the amount of | On some systems, there is no code to detect the amount of | |||
RAM though. Using --enable-assume-ram one can set how much | RAM though. Using --enable-assume-ram one can set how much | |||
memory to assume on these systems. SIZE is given as MiB. | memory to assume on these systems. SIZE is given as MiB. | |||
The default is 128 MiB. | The default is 128 MiB. | |||
Feel free to send patches to add support for detecting | Feel free to send patches to add support for detecting | |||
the amount of RAM on the operating system you use. See | the amount of RAM on the operating system you use. See | |||
src/common/tuklib_physmem.c for details. | src/common/tuklib_physmem.c for details. | |||
--disable-threads | --enable-threads=METHOD | |||
Disable threading support. This makes some things | Threading support is enabled by default so normally there | |||
thread-unsafe, meaning that if multithreaded application | is no need to specify this option. | |||
calls liblzma functions from more than one thread, | ||||
something bad may happen. | Supported values for METHOD: | |||
Use this option if threading support causes you trouble, | yes Autodetect the threading method. If none | |||
or if you know that you will use liblzma only from | is found, configure will give an error. | |||
single-threaded applications and want to avoid dependency | ||||
on libpthread. | 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. 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, 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-symbol-versions | --enable-symbol-versions | |||
Use symbol versioning for liblzma. This is enabled by | Use symbol versioning for liblzma. This is enabled by | |||
default on GNU/Linux, other GNU-based systems, and | default on GNU/Linux, other GNU-based systems, and | |||
FreeBSD. | FreeBSD. | |||
--enable-debug | --enable-debug | |||
This enables the assert() macro and possibly some other | This enables the assert() macro and possibly some other | |||
run-time consistency checks. It makes the code slower, so | run-time consistency checks. It makes the code slower, so | |||
you normally don't want to have this enabled. | you normally don't want to have this enabled. | |||
skipping to change at line 379 | skipping to change at line 411 | |||
--------------------------- | --------------------------- | |||
3.1. Dependencies | 3.1. Dependencies | |||
POSIX shell (sh) and bunch of other standard POSIX tools are required | POSIX shell (sh) and bunch of other standard POSIX tools are required | |||
to run the scripts. The configure script tries to find a POSIX | 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 | 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 | gl_cv_posix_shell=/path/to/posix-sh as an argument to the configure | |||
script. | script. | |||
Some of the scripts require also mktemp. The original mktemp can be | xzdiff (xzcmp/lzdiff/lzcmp) may use mktemp if it is available. As | |||
found from <http://www.mktemp.org/>. On GNU, most will use the mktemp | a fallback xzdiff will use mkdir to securely create a temporary | |||
program from GNU coreutils instead of the original implementation. | directory. Having mktemp available is still recommended since the | |||
Both mktemp versions are fine for XZ Utils (and practically for | mkdir fallback method isn't as robust as mktemp is. The original | |||
everything else too). | mktemp can be found from <http://www.mktemp.org/>. 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 | 3.2. PATH | |||
The scripts assume that the required tools (standard POSIX utilities, | The scripts assume that the required tools (standard POSIX utilities, | |||
mktemp, and xz) are in PATH; the scripts don't set the PATH themselves. | mktemp, and xz) are in PATH; the scripts don't set the PATH themselves. | |||
Some people like this while some think this is a bug. Those in the | 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 | latter group can easily patch the scripts before running the configure | |||
script by taking advantage of a placeholder line in the scripts. | script by taking advantage of a placeholder line in the scripts. | |||
For example, to make the scripts prefix /usr/bin:/bin to PATH: | For example, to make the scripts prefix /usr/bin:/bin to PATH: | |||
skipping to change at line 449 | skipping to change at line 486 | |||
4.4. Lots of warnings about symbol visibility | 4.4. Lots of warnings about symbol visibility | |||
On some systems where symbol visibility isn't supported, GCC may | On some systems where symbol visibility isn't supported, GCC may | |||
still accept the visibility options and attributes, which will make | still accept the visibility options and attributes, which will make | |||
configure think that visibility is supported. This will result in | configure think that visibility is supported. This will result in | |||
many compiler warnings. You can avoid the warnings by forcing the | many compiler warnings. You can avoid the warnings by forcing the | |||
visibility support off by passing gl_cv_cc_visibility=no as an | visibility support off by passing gl_cv_cc_visibility=no as an | |||
argument to the configure script. This has no effect on the | argument to the configure script. This has no effect on the | |||
resulting binaries, but fewer warnings looks nicer and may allow | resulting binaries, but fewer warnings looks nicer and may allow | |||
using --enable-werror. | using --enable-werror. | |||
4.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. One fix | ||||
for this problem is 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. | ||||
4.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). | ||||
End of changes. 7 change blocks. | ||||
21 lines changed or deleted | 58 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |