summaryrefslogtreecommitdiff
path: root/INSTALL
diff options
context:
space:
mode:
authorLasse Collin <lasse.collin@tukaani.org>2022-11-09 14:41:56 +0200
committerLasse Collin <lasse.collin@tukaani.org>2022-11-09 14:41:56 +0200
commitdf8ad4af65a9c4846b108550d0083770a69dee64 (patch)
tree004486e560f3caca8ae444b52a08a7ed5cedcddf /INSTALL
parentc8ef089c149afaab413c3a51be827dd1d11afe0e (diff)
downloadxz-df8ad4af65a9c4846b108550d0083770a69dee64.tar.gz
Docs: Update INSTALL and also add new prohibited options to PACKAGERS.
Diffstat (limited to 'INSTALL')
-rw-r--r--INSTALL49
1 files changed, 41 insertions, 8 deletions
diff --git a/INSTALL b/INSTALL
index 7878512..a6c0551 100644
--- a/INSTALL
+++ b/INSTALL
@@ -316,6 +316,18 @@ XZ Utils Installation
| 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
@@ -359,15 +371,32 @@ XZ Utils Installation
code.
--enable-unaligned-access
- Allow liblzma to use unaligned memory access for 16-bit
- and 32-bit loads and stores. This should be enabled only
- when the hardware supports this, i.e. 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.
+ 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,
- and big endian PowerPC.
+ 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
@@ -456,6 +485,10 @@ XZ Utils Installation
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
@@ -518,7 +551,7 @@ XZ Utils Installation
liblzma, pass --enable-small to configure.
- Tell the compiler to optimize for size instead of speed.
- E.g. with GCC, put -Os into CFLAGS.
+ 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