aboutsummaryrefslogtreecommitdiffstats
path: root/chapter05/introduction.xml
blob: e70d143c7d54600c9658d6ba2a7b2582b5f5bf18 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../general.ent">
  %general-entities;
]>
<sect1 id="ch-tools-introduction">
<title>Introduction</title>
<?dbhtml filename="introduction.html"?>

<para>This chapter shows how to compile and install a minimal Linux
system. This system will contain just enough tools to start
constructing the final LFS system in <xref
linkend="chapter-building-system"/> and allow a working environment
with more user convenience than a minimum environment would.</para>

<para>There are two steps in building this minimal system. The first
step is to build a new and host-independent toolchain (compiler,
assembler, linker, libraries, and a few useful utilities).  The second
step uses this toolchain to build the other essential tools.</para>

<para>The files compiled in this chapter will be installed under the
<filename class="directory">$LFS/tools</filename> directory to keep
them separate from the files installed in the next chapter and the
host production directories. Since the packages compiled here are
temporary, we do not want them to pollute the soon-to-be LFS
system.</para>

<para>Before issuing the build instructions for a package, the package
should be unpacked (explained shortly) as user
<emphasis>lfs</emphasis>, and a <command>cd</command> into the
created directory should be performed. The build instructions assume
that the <command>bash</command> shell is in use.</para>

<para>Several of the packages are patched before compilation, but only
when the patch is needed to circumvent a problem. A patch is often
needed in both this and the next chapter, but sometimes in only one or
the other. Therefore, do not be concerned if instructions for a downloaded
patch seem to be missing. Warning messages about
<emphasis>offset</emphasis> or <emphasis>fuzz</emphasis> may
also be encountered when applying a patch. Do not worry about these
warnings, as the patch was still successfully applied.</para>

<para>During the compilation of most packages, there will be several
warnings that scroll by on the screen. These are normal and can safely
be ignored. These warnings are as they appear -- warnings about
deprecated, but not invalid, use of the C or C++ syntax. C standards
change fairly often, and some packages still use the older standard.
This is not a problem, but does prompt the warning.</para>

<para>After installing each package, delete its source and build
directories, unless specifically instructed otherwise. Deleting the
sources saves space and prevents mis-configuration when the same
package is reinstalled later. Only three of the packages need to
retain the source and build directories in order for their contents to
be used by later commands. Pay special attention to these
reminders.</para>

<para>Check one last time that the <envar>LFS</envar> environment 
variable is set up properly:</para>

<screen><userinput>echo $LFS</userinput></screen>

<para>Make sure the output shows the path to the LFS partition's mount
point, which is <filename class="directory">/mnt/lfs</filename>, using
our example.</para>

</sect1>