Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(533)

Unified Diff: INSTALL

Issue 7109015: Update XZ Utils to 5.0.3 (in deps) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/xz/
Patch Set: Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Doxyfile.in ('k') | INSTALL.generic » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: INSTALL
===================================================================
--- INSTALL (revision 50504)
+++ INSTALL (working copy)
@@ -7,20 +7,24 @@
1.1. Compilers
1.2. Platform-specific notes
1.2.1. IRIX
- 1.2.2. Tru64
- 1.2.3. Windows
- 1.2.4. DOS
- 1.2.5. OS/2
- 1.2.6. OpenVMS
+ 1.2.2. MINIX 3
+ 1.2.3. OpenVMS
+ 1.2.4. Solaris, OpenSolaris, and derivatives
+ 1.2.5. Tru64
+ 1.2.6. Windows
+ 1.2.7. DOS
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. Troubleshooting
4.1. "No C99 compiler was found."
- 4.1. "No POSIX conforming shell (sh) was found."
- 4.2. configure works but build fails at crc32_x86.S
+ 4.2. "No POSIX conforming shell (sh) was found."
+ 4.3. configure works but build fails at crc32_x86.S
+ 4.4. Lots of warnings about symbol visibility
0. Preface
@@ -65,22 +69,62 @@
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.2. Tru64
+1.2.2. 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 possibly some other versions too) has bugs in
+ /usr/include/stdint.h, which has to be patched before XZ Utils
+ can be compiled correctly. See
+ <http://gforge.cs.vu.nl/gf/project/minix/tracker/?action=TrackerItemEdit&tracker_item_id=537>.
+
+ XZ Utils doesn't have code to detect the amount of physical RAM and
+ number of CPU cores on MINIX 3.
+
+ See section 4.4 in this file about symbol visibility warnings (you
+ may want to pass gl_cv_cc_visibility=no to configure).
+
+
+1.2.3. 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.4. 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.
+
+
+1.2.5. Tru64
+
If you try to use the native C compiler on Tru64 (passing CC=cc to
- configure), it is possible that the configure script will complain
- that no C99 compiler was found even when the native compiler supports
- C99. You can safely override the test for C99 compiler by passing
- ac_cv_prog_cc_c99= as the argument to the configure script.
+ configure), you may need the workaround mention in section 4.1 in
+ this file (pass also ac_cv_prog_cc_c99= to configure).
-1.2.3. Windows
+1.2.6. Windows
- Building XZ Utils on Windows is supported under MinGW + MSYS and
- Cygwin. There is windows/build.sh to ease packaging XZ Utils with
- MinGW + MSYS into a redistributable .zip or .7z file. See
- windows/INSTALL-Windows.txt for more information.
+ Building XZ Utils on Windows is supported under MinGW + MSYS,
+ MinGW-w64 + MSYS, and Cygwin. There is windows/build.bash to
+ ease packaging XZ Utils with MinGW(-w64) + MSYS into a
+ redistributable .zip or .7z file. See windows/INSTALL-Windows.txt
+ for more information.
It might be possible to build liblzma with a non-GNU toolchain too,
but that will probably require writing a separate makefile. Building
@@ -94,7 +138,7 @@
windows/README-Windows.txt for details.
-1.2.4. DOS
+1.2.7. DOS
There is an experimental Makefile in the "dos" directory to build
XZ Utils on DOS using DJGPP. Support for long file names (LFN) is
@@ -104,24 +148,6 @@
would like to hear if it worked.
-1.2.5. OS/2
-
- To omit large number of harmless warnings about visibility support,
- pass gl_cv_cc_visibility=no as an argument to the configure script.
- This isn't mandatory since it should have no effect on the resulting
- binaries.
-
-
-1.2.6. OpenVMS
-
- XZ Utils can be built for OpenVMS, but the build system files are
- currently 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.3. Adding support for new platforms
If you have written patches to make XZ Utils to work on previously
@@ -139,7 +165,7 @@
2. configure options
--------------------
- In most cases, the defaults are what you want. Most of the 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.
@@ -192,6 +218,29 @@
the liblzma ABI, so this option should be used only when
it is known to not cause problems.
+ --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-assembler
liblzma includes some assembler optimizations. Currently
there is only assembler code for CRC32 and CRC64 for
@@ -235,13 +284,14 @@
--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 to set the default memory usage limit.
+ 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, which allows decompressing files
- created with "xz -9".
+ 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
@@ -258,28 +308,6 @@
single-threaded applications and want to avoid dependency
on libpthread.
- --enable-dynamic=TYPE
- Specify how command line tools should be linked against
- liblzma. Possible TYPES:
-
- yes All command line tools are linked against
- shared liblzma (if shared liblzma was built).
- This is equivalent to --enable-dynamic (i.e.
- no =TYPE).
-
- mixed Some tools are linked against static liblzma
- and some against shared liblzma. This is the
- default and recommended way.
-
- no All command line tools are linked against
- static liblzma (if static liblzma was built).
- This is equivalent to --disable-dynamic.
-
- This option is mostly useful for packagers, if distro
- policy requires linking against shared libaries. See the
- file PACKAGERS for more information about pros and cons
- of this option.
-
--enable-debug
This enables the assert() macro and possibly some other
run-time consistency checks. It makes the code slower, so
@@ -292,6 +320,52 @@
resulting binaries.
+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.
+ E.g. 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
---------------------------
@@ -342,7 +416,7 @@
support enough C99.
-4.1. "No POSIX conforming shell (sh) was found."
+4.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
@@ -351,7 +425,7 @@
script.
-4.2. configure works but build fails at crc32_x86.S
+4.3. configure works but build fails at crc32_x86.S
The easy fix is to pass --disable-assembler to the configure script.
@@ -367,3 +441,15 @@
correct configure triplet using the --build=CPU-COMPANY-SYSTEM option
(see INSTALL.generic).
+
+4.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.
+
« no previous file with comments | « Doxyfile.in ('k') | INSTALL.generic » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698