aboutsummaryrefslogtreecommitdiffstats
path: root/chapter05
diff options
context:
space:
mode:
authorManuel Canales Esparcia <manuel@linuxfromscratch.org>2004-12-20 17:23:16 +0000
committerManuel Canales Esparcia <manuel@linuxfromscratch.org>2004-12-20 17:23:16 +0000
commitfba1478dba9095f0007730e844793ad38d9b5af2 (patch)
tree804a4ba4ebff2ca66f8f0284d2d5edf664507d46 /chapter05
parent67906555169af493bc63114cfd1a38667dda09f5 (diff)
Removed text in chapter 05 - second round.
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@4433 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Diffstat (limited to 'chapter05')
-rw-r--r--chapter05/adjusting.xml2
-rw-r--r--chapter05/gcc-pass1.xml91
-rw-r--r--chapter05/gcc-pass2.xml125
-rw-r--r--chapter05/gettext.xml37
-rw-r--r--chapter05/glibc.xml133
-rw-r--r--chapter05/grep.xml33
-rw-r--r--chapter05/gzip.xml7
-rw-r--r--chapter05/hostreqs.xml27
-rw-r--r--chapter05/introduction.xml54
-rw-r--r--chapter05/kernel-headers.xml61
-rw-r--r--chapter05/linux-libc-headers.xml6
-rw-r--r--chapter05/m4.xml7
12 files changed, 22 insertions, 561 deletions
diff --git a/chapter05/adjusting.xml b/chapter05/adjusting.xml
index 6d3aca31f..c3d584ab2 100644
--- a/chapter05/adjusting.xml
+++ b/chapter05/adjusting.xml
@@ -22,6 +22,8 @@ unset SPECFILE</userinput></screen>
<screen><userinput>rm -f /tools/lib/gcc/*/*/include/{pthread.h,bits/sigthread.h}</userinput></screen>
+<para>Test the tools:</para>
+
<screen><userinput>echo 'main(){}' &gt; dummy.c
cc dummy.c
readelf -l a.out | grep ': /tools'</userinput></screen>
diff --git a/chapter05/gcc-pass1.xml b/chapter05/gcc-pass1.xml
index 9fa5601bb..81f934e04 100644
--- a/chapter05/gcc-pass1.xml
+++ b/chapter05/gcc-pass1.xml
@@ -12,7 +12,6 @@
<secondary>tools, pass 1</secondary></indexterm>
<sect2 role="package"><title/>
-<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/gcc.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
@@ -20,25 +19,11 @@
<seglistitem><seg>4.4 SBU</seg><seg>300 MB</seg></seglistitem>
</segmentedlist>
-<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/gcc.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
-
</sect2>
<sect2 role="installation">
<title>Installation of GCC</title>
-<para>Unpack only the GCC-core tarball, as we won't be needing the C++ compiler
-nor the test suite here.</para>
-
-<para>This package is known to behave badly when you change its default
-optimization flags (including the <parameter>-march</parameter> and
-<parameter>-mcpu</parameter> options). Therefore, if you have defined any
-environment variables that override default optimizations, such as CFLAGS and
-CXXFLAGS, we recommend un-setting them when building GCC.</para>
-
-<para>The GCC documentation recommends building GCC outside of the source
-directory in a dedicated build directory:</para>
-
<screen><userinput>mkdir ../gcc-build
cd ../gcc-build</userinput></screen>
@@ -49,92 +34,16 @@ cd ../gcc-build</userinput></screen>
--with-local-prefix=/tools --disable-nls \
--enable-shared --enable-languages=c</userinput></screen>
-<para>The meaning of the configure options:</para>
-
-<variablelist>
-<varlistentry>
-<term><parameter>CC="gcc -B/usr/bin"</parameter></term>
-<listitem><para>This parameter fixes a possible problem with building GCC
-at this stage, first noticed in LFS 5.1.1. If our host uses a new version
-of Binutils than we compiled, the host compiler may try use features not
-supported by our new linker, causing compilation errors. By passing the -B
-flag to gcc, we cause the compiler to temporarily use the host's linker,
-which solves the problem.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><parameter>--with-local-prefix=/tools</parameter></term>
-<listitem><para>The purpose of this switch is to remove <filename class="directory">/usr/local/include</filename>
-from <command>gcc</command>'s include search path. This is not absolutely
-essential; however, we want to try to minimize the influence of the host
-system, so this a sensible thing to do.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><parameter>--enable-shared</parameter></term>
-<listitem><para>This switch may
-seem counter-intuitive at first. But using it allows the building of
-<filename>libgcc_s.so.1</filename> and <filename>libgcc_eh.a</filename>, and
-having <filename>libgcc_eh.a</filename> available ensures that the configure
-script for Glibc (the next package we compile) produces the proper results.
-Note that the GCC binaries will still be linked
-statically, as this is controlled by the <parameter>-static</parameter>
-value of BOOT_LDFLAGS in the next step.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><parameter>--enable-languages=c</parameter></term>
-<listitem><para>This option
-ensures that only the C compiler is built. The option is only needed when you
-have downloaded and unpacked the full GCC tarball.</para></listitem>
-</varlistentry>
-</variablelist>
-
<para>Continue with compiling the package:</para>
<screen><userinput>make BOOT_LDFLAGS="-static" bootstrap</userinput></screen>
-<para>The meaning of the make parameters:</para>
-
-<variablelist>
-<varlistentry>
-<term><parameter>BOOT_LDFLAGS="-static"</parameter></term>
-<listitem><para>This tells GCC to link its programs statically.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><parameter>bootstrap</parameter></term>
-<listitem><para>This target doesn't just
-compile GCC, but compiles it several times. It uses the programs compiled in
-a first round to compile itself a second time, and then again a third time.
-It then compares these second and third compiles to make sure it can
-reproduce itself flawlessly, which most probably means that it was
-compiled correctly.</para></listitem>
-</varlistentry>
-</variablelist>
-
-<para>Compilation is now complete, and at this point we would normally run the
-test suite. But, as mentioned before, the test suite framework is not in place
-yet. And there would be little point in running the tests anyhow, since the
-programs from this first pass will soon be replaced.</para>
-
<para>Now install the package:</para>
<screen><userinput>make install</userinput></screen>
-<para>As a finishing touch we'll create a symlink. Many programs and scripts
-run <command>cc</command> instead of <command>gcc</command>,
-a thing meant to keep programs generic and therefore usable on all kinds of
-Unix systems. Not everybody has the GNU C compiler installed. Simply running
-<command>cc</command> leaves the system administrator free to decide what
-C compiler to install, as long as there's a symlink pointing to it:</para>
-
<screen><userinput>ln -s gcc /tools/bin/cc</userinput></screen>
</sect2>
-<sect2 role="content"><title/>
-<para>The details on this package are found in <xref linkend="contents-gcc"/>.</para>
-</sect2>
-
</sect1>
diff --git a/chapter05/gcc-pass2.xml b/chapter05/gcc-pass2.xml
index 398d43f48..7c3f01d44 100644
--- a/chapter05/gcc-pass2.xml
+++ b/chapter05/gcc-pass2.xml
@@ -24,68 +24,18 @@
<sect2 role="installation">
<title>Re-installation of GCC</title>
-<para>The tools required to test GCC and Binutils are installed now: Tcl,
-Expect and DejaGNU. Therefore we can now rebuild GCC and Binutils, linking
-them against the new Glibc, and test them properly (if running the test suites
-in this chapter). One thing to note, however, is that these test suites are
-highly dependent on properly functioning pseudo terminals (PTYs) which are
-provided by your host. These days, PTYs are most commonly implemented via the
-<systemitem class="filesystem">devpts</systemitem> file system. You can quickly check if your host
-system is set up correctly in this regard by performing a simple test:</para>
+<para>Check if there is PTYs for the test suites:</para>
<screen><userinput>expect -c "spawn ls"</userinput></screen>
-<para>The response might be:</para>
-
-<blockquote><screen><computeroutput>The system has no more ptys. Ask your system administrator to create more.</computeroutput></screen></blockquote>
-
-<para>If you receive the above message, your host doesn't have its PTYs set up
-properly. In this case there is no point in running the test suites for GCC
-and Binutils until you are able to resolve the issue. You can consult the LFS
-Wiki at <ulink url="&wiki-root;"/> for more information on how to get PTYs
-working.</para>
-
-<para>This time we will build both the C and the C++ compilers, so you'll have
-to unpack both the core and the g++ tarballs (and testsuite too, if you want to
-run the tests). Unpacking them in your working directory, they will all unfold
-into a single <filename class="directory">gcc-&gcc-version;/</filename> subdirectory.</para>
-
-<para>First correct a problem and make an essential adjustment:</para>
-
<screen><userinput>patch -Np1 -i ../gcc-&gcc-version;-no_fixincludes-1.patch
patch -Np1 -i ../gcc-&gcc-version;-specs-2.patch</userinput></screen>
-<para>The first patch disables the GCC <command>fixincludes</command> script. We
-mentioned this briefly earlier, but a slightly more in-depth explanation of
-the fixincludes process is warranted here. Under normal circumstances, the GCC
-<command>fixincludes</command> script scans your system for header files that need to be fixed. It
-might find that some Glibc header files on your host system need to be fixed,
-fix them and put them in the GCC private include directory. Then, later on in
-<xref linkend="chapter-building-system"/>, after we've installed the newer
-Glibc, this private include directory would be searched before the system
-include directory, resulting in GCC finding the fixed headers from the host
-system, which would most likely not match the Glibc version actually used for
-the LFS system.</para>
-
-<para>The second patch changes GCC's default location of the dynamic linker
-(typically <filename>ld-linux.so.2</filename>). It also removes
-<filename class="directory">/usr/include</filename> from GCC's include search
-path. Patching now rather than adjusting the specs file after installation
-ensures that our new dynamic linker gets used during the actual build of GCC.
-That is, all the final (and temporary) binaries created during the build will
-link against the new Glibc.</para>
-
-<important><para>The above patches are <emphasis>critical</emphasis> in ensuring
-a successful overall build. Do not forget to apply them.</para></important>
-
<para>Create a separate build directory again:</para>
<screen><userinput>mkdir ../gcc-build
cd ../gcc-build</userinput></screen>
-<para>Before starting to build GCC, remember to unset any environment
-variables that override the default optimization flags.</para>
-
<para>Now prepare GCC for compilation:</para>
<screen><userinput>../gcc-&gcc-version;/configure --prefix=/tools \
@@ -94,83 +44,24 @@ variables that override the default optimization flags.</para>
--enable-__cxa_atexit --enable-languages=c,c++ \
--disable-libstdcxx-pch</userinput></screen>
-<para>The meaning of the new configure options:</para>
-
-<variablelist>
-<varlistentry>
-<term><parameter>--enable-clocale=gnu</parameter></term>
-<listitem><para>This option
-ensures the correct locale model is selected for the C++ libraries under all
-circumstances. If the configure script finds the <emphasis>de_DE</emphasis>
-locale installed, it will select the correct <emphasis>gnu</emphasis> locale
-model. However, people who don't install the <emphasis>de_DE</emphasis> locale
-would run the risk of building ABI incompatible C++ libraries due to the wrong
-<emphasis>generic</emphasis> locale model being selected.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><parameter>--enable-threads=posix</parameter></term>
-<listitem><para>This enables
-C++ exception handling for multi-threaded code.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><parameter>--enable-__cxa_atexit</parameter></term>
-<listitem><para>This option
-allows use of __cxa_atexit, rather than atexit, to register C++ destructors for
-local statics and global objects and is essential for fully standards-compliant
-handling of destructors. It also affects the C++ ABI and therefore results in
-C++ shared libraries and C++ programs that are interoperable with other Linux
-distributions.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><parameter>--enable-languages=c,c++</parameter></term>
-<listitem><para>This option
-ensures that both the C and C++ compilers are built.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><parameter>--disable-libstdcxx-pch</parameter></term>
-<listitem><para>Don't build the
-PCH (pre-compiled header) for libstdc++. It takes up a ton of space, and we
-have no use for it.</para></listitem>
-</varlistentry>
-</variablelist>
-
<para>Compile the package:</para>
<screen><userinput>make</userinput></screen>
-<para>There is no need to use the <parameter>bootstrap</parameter> target now,
-as the compiler we're using to compile this GCC was built from the exact same
-version of the GCC sources we used earlier.</para>
-
-<para>Compilation is now complete. As mentioned earlier, running the test suites
-for the temporary tools compiled in this chapter is not mandatory. If you want to run the GCC test suite anyway, the following command will do so:</para>
-
<screen><userinput>make -k check</userinput></screen>
-<para>The <parameter>-k</parameter> flag is used to make the test suite run
-through to completion and not stop at the first failure. The GCC test suite is
-very comprehensive and is almost guaranteed to generate a few failures. To get
-a summary of the test suite results, run this:</para>
+<para>To get a summary of the test suite results, run this:</para>
<screen><userinput>../gcc-&gcc-version;/contrib/test_summary</userinput></screen>
-<para>(For just the summaries, pipe the output through
-<userinput>grep -A7 Summ</userinput>.)</para>
+<para>For only the summaries, pipe the output through
+<userinput>grep -A7 Summ</userinput></para>
-<para>You can compare your results to those posted to the gcc-testresults
-mailing list for similar configurations to your own. For an example of how
+<para>Results can be compared to those posted to the gcc-testresults
+mailing list to see similar configurations to the one being built. For an example of how
current GCC-&gcc-version; should look on i686-pc-linux-gnu, see
<ulink url="http://gcc.gnu.org/ml/gcc-testresults/2004-11/msg00569.html"/>.</para>
-<para>Having a few unexpected failures often cannot be avoided. The GCC
-developers are usually aware of these, but haven't yet gotten around to fixing
-them. In short, unless your results are vastly different from those at the above
-URL, it is safe to continue.</para>
-
<para>And finally install the package:</para>
<screen><userinput>make install</userinput></screen>
@@ -183,8 +74,4 @@ GCC Specs patch.</para></note>
</sect2>
-<sect2 role="content"><title/>
-<para>The details on this package are found in <xref linkend="contents-gcc"/>.</para>
-</sect2>
-
</sect1>
diff --git a/chapter05/gettext.xml b/chapter05/gettext.xml
index d88a1a358..f430deb5f 100644
--- a/chapter05/gettext.xml
+++ b/chapter05/gettext.xml
@@ -12,7 +12,6 @@
<secondary>tools</secondary></indexterm>
<sect2 role="package"><title/>
-<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/gettext.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
@@ -20,8 +19,6 @@
<seglistitem><seg>0.5 SBU</seg><seg>55 MB</seg></seglistitem>
</segmentedlist>
-<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/gettext.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
-
</sect2>
<sect2 role="installation">
@@ -32,36 +29,12 @@
<screen><userinput>./configure --prefix=/tools --disable-libasprintf \
--disable-csharp</userinput></screen>
-<para>The meaning of the configure options:</para>
-
-<variablelist>
-<varlistentry>
-<term><parameter>--disable-libasprintf</parameter></term>
-<listitem><para>This flag tells
-Gettext that we don't want its asprintf library. Nothing in this chapter or the next
-requires this, and Gettext gets rebuilt later, so we exclude it to save
-time/space.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><parameter>--disable-csharp</parameter></term>
-<listitem><para>Gettext has a nasty
-habit of searching for a C# compiler on the host, and building bindings for it.
-We've already <quote>locked</quote> ourselves into the temporary tools though,
-which doesn't have a C# compiler.</para></listitem>
-</varlistentry>
-</variablelist>
-
-<para>Compile the programs:</para>
+<para>Compile the package:</para>
<screen><userinput>make</userinput></screen>
-<para>(If you want to test the results, then issue: <userinput>make
-check</userinput>. This takes a very long time, around 7 SBUs. Moreover, the
-Gettext test suite is known to experience failures under certain host
-conditions -- for example when it finds a Java compiler on the host (but an
-experimental patch to disable Java is available from the LFS Patches
-project).)</para>
+<para>To test the results, issue:
+<userinput>make check</userinput></para>
<para>And install the package:</para>
@@ -69,8 +42,4 @@ project).)</para>
</sect2>
-<sect2 role="content"><title/>
-<para>The details on this package are found in <xref linkend="contents-gettext"/>.</para>
-</sect2>
-
</sect1>
diff --git a/chapter05/glibc.xml b/chapter05/glibc.xml
index 3b7ac093a..b256792f1 100644
--- a/chapter05/glibc.xml
+++ b/chapter05/glibc.xml
@@ -12,7 +12,6 @@
<secondary>tools</secondary></indexterm>
<sect2 role="package"><title/>
-<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/glibc.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
@@ -20,25 +19,11 @@
<seglistitem><seg>11.8 SBU</seg><seg>800 MB</seg></seglistitem>
</segmentedlist>
-<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/glibc.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
-
</sect2>
<sect2 role="installation">
<title>Installation of Glibc</title>
-<para>This package is known to behave badly when you change its default
-optimization flags (including the <parameter>-march</parameter> and
-<parameter>-mcpu</parameter> options). Therefore, if you have defined any
-environment variables that override default optimizations, such as CFLAGS and
-CXXFLAGS, we recommend un-setting them when building Glibc.</para>
-
-<para>Basically, compiling Glibc in any other way than the book suggests
-is putting the stability of your system at risk.</para>
-
-<para>The Glibc documentation recommends building Glibc outside of the source
-directory in a dedicated build directory:</para>
-
<screen><userinput>mkdir ../glibc-build
cd ../glibc-build</userinput></screen>
@@ -49,104 +34,15 @@ cd ../glibc-build</userinput></screen>
--enable-kernel=2.6.0 --with-binutils=/tools/bin \
--without-gd --without-cvs --with-headers=/tools/include</userinput></screen>
-<para>The meaning of the configure options:</para>
-
-<variablelist>
-<varlistentry>
-<term><parameter>--disable-profile</parameter></term>
-<listitem><para>This builds the
-libraries without profiling information. Omit this option if you plan to do
-profiling on the temporary tools.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><parameter>--enable-add-ons</parameter></term>
-<listitem><para>This tells Glibc to use the add-on' that it can use like NPTL
-as its threading library.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><parameter>--enable-kernel=2.6.0</parameter></term>
-<listitem><para>This tells Glibc to compile the library for support of
-linux 2.6.x kernels.
-</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><parameter>--with-binutils=/tools/bin</parameter></term>
-<listitem><para>Strictly speaking this switch is not required. But it does ensure
-nothing can go wrong with regard to what Binutils programs get used during the
-Glibc build.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><parameter>--without-gd</parameter></term>
-<listitem><para>This prevents the build of the <command>memusagestat</command>
-program, which strangely enough insists on linking against the host's libraries
-(libgd, libpng, libz, and so forth). </para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><parameter>--without-cvs</parameter></term>
-<listitem><para>This is meant to prevent
-the Makefiles from attempting automatic CVS checkouts when using a CVS
-snapshot. But it's not actually needed these days. We use it because it
-suppresses an annoying but harmless warning about a missing
-<command>autoconf</command> program.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><parameter>--with-headers=/tools/include</parameter></term>
-<listitem><para>This forces glibc to use the linux-libc-headers installed
-in /tools/include, rather than those on the host, which may be too old to
-support needed functionality.</para></listitem>
-</varlistentry>
-
-</variablelist>
-
-<para>During this stage you might see the following warning:</para>
-
-<blockquote><screen><computeroutput>configure: WARNING:
-*** These auxiliary programs are missing or incompatible versions: msgfmt
-*** some features will be disabled.
-*** Check the INSTALL file for required versions.</computeroutput></screen></blockquote>
-
-<para>The missing or incompatible <command>msgfmt</command> program is
-generally harmless, but it's believed it can sometimes cause problems when
-running the test suite.</para>
-
<para>Compile the package:</para>
<screen><userinput>make</userinput></screen>
-<para>Compilation is now complete. As mentioned earlier, running the test suites
-for the temporary tools installed in this chapter is not mandatory. If you want
-to run the Glibc test suite though, the following command will do so:</para>
-
<screen><userinput>make check</userinput></screen>
<para>For a discussion of test failures that are of particular
importance, please see <xref linkend="ch-system-glibc"/>.</para>
-<para>In this chapter, some tests can be adversely affected by existing tools or
-environmental issues on the host system. In short, don't worry too much if you
-see Glibc test suite failures in this chapter. The Glibc in
-<xref linkend="chapter-building-system"/> is the one we'll ultimately end up
-using, so that is the one we would really like to see pass the tests (but even
-there some failures could still occur -- the <emphasis>math</emphasis> tests,
-for example).</para>
-
-<para>When experiencing a failure, make a note of it, then continue by reissuing
-the <command>make check</command>. The test suite should pick up where it left
-off and continue. You can circumvent this stop-start sequence by issuing a
-<command>make -k check</command>. If you do that though, be sure to log the
-output so that you can later peruse the log file and examine the total number of
-failures.</para>
-
-<para>Though it is a harmless message, the install stage of Glibc will at the
-end complain about the absence of <filename>/tools/etc/ld.so.conf</filename>.
-Prevent this confusing little warning with:</para>
-
<screen><userinput>mkdir /tools/etc
touch /tools/etc/ld.so.conf</userinput></screen>
@@ -154,30 +50,15 @@ touch /tools/etc/ld.so.conf</userinput></screen>
<screen><userinput>make install</userinput></screen>
-<para>Different countries and cultures have varying conventions for how to
-communicate. These conventions range from very simple ones, such as the format
-for representing dates and times, to very complex ones, such as the language
-spoken. The <quote>internationalization</quote> of GNU programs works by means
-of <emphasis>locales</emphasis>.</para>
-
-<note><para>If you are not running the test suites here in this chapter as per
-our recommendation, there is little point in installing the locales now. We'll
-be installing the locales in the next chapter.</para></note>
-
-<para>If you still want to install the Glibc locales anyway, the following
-command will do so:</para>
+<para>To install the Glibc locales, use the following
+command:</para>
<screen><userinput>make localedata/install-locales</userinput></screen>
<para>An alternative to running the previous command is to install only those
-locales which you need or want. This can be achieved by using the
-<command>localedef</command> command. Information on this can be found in
-the <filename>INSTALL</filename> file in the Glibc source. However, there are
-a number of locales that are essential for the tests of future packages to
-pass, in particular, the <emphasis>libstdc++</emphasis> tests from GCC. The
-following instructions, instead of the install-locales target above, will
-install the minimum set of locales necessary for the tests to run
-successfully:</para>
+locales which you need or want. The following instructions, instead of the
+install-locales target above, will install the minimum set of locales necessary
+for the tests to run successfully:</para>
<screen><userinput>mkdir -p /tools/lib/locale
localedef -i de_DE -f ISO-8859-1 de_DE
@@ -194,8 +75,4 @@ localedef -i ja_JP -f EUC-JP ja_JP</userinput></screen>
</sect2>
-<sect2 role="content"><title/>
-<para>The details on this package are found in <xref linkend="contents-glibc"/>.</para>
-</sect2>
-
</sect1>
diff --git a/chapter05/grep.xml b/chapter05/grep.xml
index 9fcdaca18..c95433cff 100644
--- a/chapter05/grep.xml
+++ b/chapter05/grep.xml
@@ -12,7 +12,6 @@
<secondary>tools</secondary></indexterm>
<sect2 role="package"><title/>
-<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/grep.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
@@ -20,8 +19,6 @@
<seglistitem><seg>0.1 SBU</seg><seg>5.8 MB</seg></seglistitem>
</segmentedlist>
-<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/grep.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
-
</sect2>
<sect2 role="installation">
@@ -32,39 +29,17 @@
<screen><userinput>./configure --prefix=/tools \
--disable-perl-regexp --with-included-regex</userinput></screen>
-<para>The meaning of the configure options:</para>
-
-<variablelist>
-<varlistentry>
-<term><parameter>--disable-perl-regexp</parameter></term>
-<listitem><para>This makes sure that <command>grep</command> does not
-get linked against a PCRE library that may be present on the host and would not be
-available once we enter the chroot environment.</para></listitem>
-</varlistentry>
-
-<varlistentry>
-<term><parameter>--with-included-regex</parameter></term>
-<listitem><para>This ensures that
-Grep uses its internal regular expression code. Without this switch, Grep will
-use the code from Glibc, which is known to be slightly buggy.</para></listitem>
-</varlistentry>
-</variablelist>
-
-<para>Compile the programs:</para>
+<para>Compile the package:</para>
<screen><userinput>make</userinput></screen>
-<para>(If you want to test the results, then issue:
-<userinput>make check</userinput>.)</para>
+<para>To test the results, issue:
+<userinput>make check</userinput></para>
-<para>Then install them and their documentation:</para>
+<para>Install the package:</para>
<screen><userinput>make install</userinput></screen>
</sect2>
-<sect2 role="content"><title/>
-<para>The details on this package are found in <xref linkend="contents-grep"/>.</para>
-</sect2>
-
</sect1>
diff --git a/chapter05/gzip.xml b/chapter05/gzip.xml
index 045648cf4..da725178b 100644
--- a/chapter05/gzip.xml
+++ b/chapter05/gzip.xml
@@ -12,7 +12,6 @@
<secondary>tools</secondary></indexterm>
<sect2 role="package"><title/>
-<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/gzip.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
@@ -20,8 +19,6 @@
<seglistitem><seg>0.1 SBU</seg><seg>2.6 MB</seg></seglistitem>
</segmentedlist>
-<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/gzip.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
-
</sect2>
<sect2 role="installation">
@@ -41,8 +38,4 @@
</sect2>
-<sect2 role="content"><title/>
-<para>The details on this package are found in <xref linkend="contents-gzip"/>.</para>
-</sect2>
-
</sect1>
diff --git a/chapter05/hostreqs.xml b/chapter05/hostreqs.xml
index fb34e8db7..119d796a3 100644
--- a/chapter05/hostreqs.xml
+++ b/chapter05/hostreqs.xml
@@ -7,31 +7,6 @@
<title>Host system requirements</title>
<?dbhtml filename="hostreqs.html"?>
-<para>Due to the experimental nature of the current book, the host must be
-running at <emphasis>least</emphasis> a 2.6.2 kernel compiled with GCC-3.0 or
-higher. There are two main reasons for the high requirement. Firstly, we make
-use of the Native Posix Threading Library (NPTL) whose testsuite will segfault
-if the host's kernel hasn't been compiled with GCC-3.0 or later. Secondly, the
-2.6.2 or later version of the kernel is required for the use of Udev. Udev
-creates devices dynamically by reading from the
-<systemitem class="filesystem">sysfs</systemitem> file system. Only very
-recently has support for this file system been implemented in most of the kernel
-drivers, however. We must be sure that all the critical system devices get
-created properly.</para>
-
-<para>In order to check that your host kernel meets the requirements outlined
-above, you can run the following command:</para>
-
-<screen><userinput>cat /proc/version</userinput></screen>
-
-<para>This will produce output similar to:</para>
-
-<blockquote><screen><computeroutput>Linux version 2.6.2 (user@host) (gcc version 3.4.0) #1 Tue Apr 20 21:22:18 GMT 2004</computeroutput></screen></blockquote>
-
-<para>If the results of the above command state that your host kernel wasn't
-compiled using a GCC-3.0 (or later) compiler, you will need to compile one
-yourself, and reboot your host to use the newly compiled kernel. Instructions
-for compiling the kernel and configuring the bootloader (assuming your host uses
-GRUB) are given in <xref linkend="chapter-bootable"/>.</para>
+<para>See testing.</para>
</sect1>
diff --git a/chapter05/introduction.xml b/chapter05/introduction.xml
index 78c883ecd..eaf2f7b2c 100644
--- a/chapter05/introduction.xml
+++ b/chapter05/introduction.xml
@@ -7,58 +7,6 @@
<title>Introduction</title>
<?dbhtml filename="introduction.html"?>
-<para>In this chapter we will compile and install a minimal
-Linux system. This system will contain just enough tools to be able
-to start constructing the final LFS system in the next chapter and allow
-a working environment with a little more user convenience than a minimum
-environment.</para>
-
-<para>The building of this minimal system is done in two steps: first we
-build a brand-new and host-independent toolchain (compiler, assembler,
-linker, libraries, and a few useful utilities), and then use this to build all 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 your host's production directories.
-Since the packages compiled here are merely temporary, we don't want
-them to pollute the soon-to-be LFS system.</para>
-
-<para>Before issuing the build instructions for a package, you are expected to
-have already unpacked it (explained shortly) as user <emphasis>lfs</emphasis>,
-and to have performed a <userinput>cd</userinput> into the created directory.
-The build instructions assume that you are using the <command>bash</command>
-shell.</para>
-
-<para>Several of the packages are patched before compilation, but only when
-the patch is needed to circumvent a problem. Often the patch is needed in
-both this and the next chapter, but sometimes in only one of them. Therefore,
-don't worry when instructions for a downloaded patch seem to be missing. Also,
-when applying a patch, you'll occasionally see warning messages about
-<emphasis>offset</emphasis> or <emphasis>fuzz</emphasis>. These warnings are
-nothing to worry about, as the patch was still successfully applied.</para>
-
-<para>During the compilation of most packages you will see many warnings
-scroll by on your screen. These are normal and can safely be ignored. They are
-just what they say they are: warnings -- mostly about deprecated, but not
-invalid, use of the C or C++ syntax. It's just that C standards have changed
-rather often and some packages still use the older standard, which is not
-really a problem.</para>
-
-<para>After installing each package you should delete its source and build
-directories, <emphasis>unless</emphasis> told otherwise. Deleting the sources
-saves space, but also prevents mis-configuration when the same package is
-reinstalled further on. Only for three packages you will need to keep the
-source and build directories around for a while, so their contents can be used
-by later commands. Do not miss the reminders.</para>
-
-<para>Now first check that your LFS environment variable is set up
-properly:</para>
-
-<screen><userinput>echo $LFS</userinput></screen>
-
-<para>Make sure the output shows the path to your LFS partition's mount
-point, which is <filename class="directory">/mnt/lfs</filename> if you
-followed our example.</para>
+<para>See testing.</para>
</sect1>
diff --git a/chapter05/kernel-headers.xml b/chapter05/kernel-headers.xml
deleted file mode 100644
index d18ac0020..000000000
--- a/chapter05/kernel-headers.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?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-kernel-headers" role="wrap">
-<title>Linux-&linux-version; headers</title>
-<?dbhtml filename="kernel-headers.html"?>
-
-<indexterm zone="ch-tools-kernel-headers">
-<primary sortas="a-Linux">Linux</primary>
-<secondary>tools, headers</secondary></indexterm>
-
-<sect2 role="package"><title/>
-
-<segmentedlist>
-<segtitle>&buildtime;</segtitle>
-<segtitle>&diskspace;</segtitle>
-<seglistitem><seg>0.1 SBU</seg><seg>186 MB</seg></seglistitem>
-</segmentedlist>
-
-</sect2>
-
-<sect2 role="installation">
-<title>Installation of the kernel headers</title>
-
-<para>As some packages need to refer to the kernel header files, we're going
-to unpack the kernel archive now, set it up, and copy the required files to a
-place where <command>gcc</command> can later find them.</para>
-
-<para>Prepare for the header installation with:</para>
-
-<screen><userinput>make mrproper</userinput></screen>
-
-<para>This ensures that the kernel tree is absolutely clean. The kernel team
-recommends that this command be issued prior to <emphasis>each</emphasis>
-kernel compilation. You shouldn't rely on the source tree being clean after
-un-tarring.</para>
-
-<para>Create the <filename>include/linux/version.h</filename> file:</para>
-
-<screen><userinput>make include/linux/version.h</userinput></screen>
-
-<para>Create the platform-specific <filename class="symlink">include/asm</filename>
-symlink:</para>
-
-<screen><userinput>make include/asm</userinput></screen>
-
-<para>Install the platform-specific header files:</para>
-
-<screen><userinput>mkdir /tools/glibc-kernheaders
-cp -HR include/asm /tools/glibc-kernheaders
-cp -R include/asm-generic /tools/glibc-kernheaders</userinput></screen>
-
-<para>Finally, install the cross-platform kernel header files:</para>
-
-<screen><userinput>cp -R include/linux /tools/glibc-kernheaders</userinput></screen>
-
-</sect2>
-
-</sect1>
diff --git a/chapter05/linux-libc-headers.xml b/chapter05/linux-libc-headers.xml
index a74ce26e3..bfbc637f3 100644
--- a/chapter05/linux-libc-headers.xml
+++ b/chapter05/linux-libc-headers.xml
@@ -24,12 +24,6 @@
<sect2 role="installation">
<title>Installation of Linux-Libc-Headers</title>
-<para>For years it has been common practice to use so-called <quote>raw</quote>
-kernel headers (straight from a kernel tarball) in <filename class="directory">/usr/include</filename>, but over the
-last few years, the kernel developers have taken a strong stance that such
-things should not be done. Thus was born the linux-libc-headers project,
-designed to maintain an API stable version of the Linux headers.</para>
-
<para>Install the header files:</para>
<screen><userinput>cp -R include/asm-i386 /tools/include/asm
diff --git a/chapter05/m4.xml b/chapter05/m4.xml
index 5907e5cfc..0a4757497 100644
--- a/chapter05/m4.xml
+++ b/chapter05/m4.xml
@@ -12,7 +12,6 @@
<secondary>tools</secondary></indexterm>
<sect2 role="package"><title/>
-<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/m4.xml" xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
@@ -20,8 +19,6 @@
<seglistitem><seg>0.1 SBU</seg><seg>3.0 MB</seg></seglistitem>
</segmentedlist>
-<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="../chapter06/m4.xml" xpointer="xpointer(/sect1/sect2[1]/segmentedlist[2])"/>
-
</sect2>
<sect2 role="installation">
@@ -44,8 +41,4 @@
</sect2>
-<sect2 role="content"><title/>
-<para>The details on this package are found in <xref linkend="contents-m4"/>.</para>
-</sect2>
-
</sect1>