In this chapter, we use the cross-compile tools to build the final CLFS system. The installation of this software is straightforward. Although in many cases the installation instructions could be made shorter and more generic, we have opted to provide the full instructions for every package to minimize the possibilities for mistakes. The key to learning what makes a Linux system work is to know what each package is used for and why the user (or the system) needs it. For every installed package, a summary of its contents is given, followed by concise descriptions of each program and library the package installed.
If using compiler optimizations, please review the
optimization hint at http://hints.cross-lfs.org/index.php/Optimization.
Compiler optimizations can make a program run slightly faster, but
they may also cause compilation difficulties and problems when
running the program. If a package refuses to compile when using
optimization, try to compile it without optimization and see if
that fixes the problem. Even if the package
does compile when using optimization, there is the risk it may have
been compiled incorrectly because of the complex interactions between
the code and build tools. Also note that the -march
and -mtune options may cause problems with the toolchain
packages (Binutils, GCC and EGLIBC). The small potential gains achieved in
using compiler optimizations are often outweighed by the risks. First-time
builders of CLFS are encouraged to build without custom optimizations.
The subsequent system will still run very fast and be stable at the
same time.
The order that packages are installed in this chapter needs to be strictly followed to ensure that all package dependencies are fulfilled.
To keep track of which package installs particular files, a package manager can be used. For a general overview of different styles of package managers, please take a look at the next page.