In this section, we begin populating the LFS filesystem with the pieces that will constitute the final Linux system. The first step is to create a limited directory hierarchy, so that the programs compiled in Chapter 6 (as well as glibc and libstdc++ in Chapter 5) can be installed in their final location. We do this so those temporary programs will be overwritten when the final versions are built in Chapter 8.
Create the required directory layout by issuing the following
commands as root
:
mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin} for i in bin lib sbin; do ln -sv usr/$i $LFS/$i done case $(uname -m) in x86_64) mkdir -pv $LFS/lib64 ;; esac
mkdir -pv $LFS/usr/lib{,x}32 ln -sv usr/lib32 $LFS/lib32 ln -sv usr/libx32 $LFS/libx32
Programs in Chapter 6
will be compiled with a cross-compiler (more details can be found in
section Toolchain Technical Notes).
This cross-compiler will be installed in a special directory, to
separate it from the other programs. Still acting as root
, create that directory with this command:
mkdir -pv $LFS/tools
The LFS editors have deliberately decided not to use a /usr/lib64
directory. Several steps are taken to
be sure the toolchain will not use it. If for any reason this
directory appears (either because you made an error in following
the instructions, or because you installed a binary package that
created it after finishing LFS), it may break your system. You
should always be sure this directory does not exist.