|
@@ -44,36 +44,18 @@
|
|
|
discusses the setup of an appropriate working environment. Please read
|
|
|
<xref linkend="chapter-final-preps"/> carefully as it explains several
|
|
|
important issues you need be aware of before beginning to
|
|
|
- work your way through <xref linkend="chapter-temporary-tools"/> and beyond.</para>
|
|
|
+ work your way through <xref linkend="chapter-cross-tools"/> and beyond.</para>
|
|
|
|
|
|
- <para><xref linkend="chapter-temporary-tools"/> explains the installation of
|
|
|
- a number of packages that are needed to resolve circular
|
|
|
- dependencies—for example, to compile a compiler, you need a compiler.
|
|
|
- or to unpack the tar package, you need tar.</para>
|
|
|
+ <para><xref linkend="chapter-cross-tools"/>, explains the installation of
|
|
|
+ the initial tool chain, (binutils, gcc, and glibc) using cross compilation
|
|
|
+ techniques to isolate the new tools from the host system.</para>
|
|
|
|
|
|
- <para><xref linkend="chapter-temporary-tools"/> also shows you how to
|
|
|
- build a C cross-compiling toolchain as a first step, including binutils
|
|
|
- and GCC. Cross-compiling is not absolutely needed since the machine we'll
|
|
|
- run LFS on is the same as the one we build on, but it has the advantage
|
|
|
- of clearly separating the already installed system and the future LFS one.
|
|
|
- The next step is to build Glibc, the C library. Glibc will be compiled by
|
|
|
- the toolchain programs built previously. Then, the missing bits for a
|
|
|
- C++ cross-compiling toolchain will be built. It is then possible to build
|
|
|
- packages that are needed to resolve circular dependencies in such a way
|
|
|
- that the produced executables and libraries are completely independent
|
|
|
- from the installed distribution.</para>
|
|
|
+ <para><xref linkend="chapter-temporary-tools"/> shows you how to
|
|
|
+ cross-compile basic utilities using the just built cross-toolchain.</para>
|
|
|
|
|
|
- <para>The remainder of <xref linkend="chapter-temporary-tools"/> adds
|
|
|
- the packages necessary to get a complete build environment. This is done
|
|
|
- after running the <command>chroot</command> (change root) program to enter
|
|
|
- a virtual environment and start a new shell whose root directory will be
|
|
|
- set to the LFS partition. This is very similar to rebooting and instructing
|
|
|
- the kernel to mount the LFS partition as the root partition. The system
|
|
|
- does not actually reboot, but instead uses <command>chroot</command>
|
|
|
- because creating a bootable system requires additional work which is not
|
|
|
- ecessary just yet. The major advantage is that <quote>chrooting</quote>
|
|
|
- allows to isolate the build process from the installed distribution, while
|
|
|
- using the installed kernel.</para>
|
|
|
+ <para><xref linkend="chapter-chroot-temporary-tools"/> then enters a
|
|
|
+ "chroot" environment and uses the previously built tools to build
|
|
|
+ the additional tools needed to build and test the final system.</para>
|
|
|
|
|
|
<para>This effort to isolate the new system from the host distribution may
|
|
|
seem excessive. A full technical explanation as to why this is done is
|